:root{--navy:#071a35;--navy2:#0d2b52;--accent:#2f6fed;--page:#f4f7fb;--menu-hover:rgba(47,111,237,.1)}
html,body{min-height:100%}body{background:var(--page);overflow-x:hidden}
.bg-navy{background:linear-gradient(135deg,var(--navy),var(--navy2))}.text-navy{color:var(--navy)}
.navbar-brand{font-weight:700;letter-spacing:.2px}.brand-mark{display:inline-grid;place-items:center;width:2rem;height:2rem;border-radius:.6rem;background:rgba(255,255,255,.16);font-size:.78rem;letter-spacing:.04em}
.app-shell{max-width:1600px;margin:0 auto}.app-offcanvas{--bs-offcanvas-width:320px}.app-menu{display:grid;gap:.25rem}.app-menu-heading{margin:.9rem .75rem .35rem;color:var(--bs-secondary-color);font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.app-menu-link{display:flex;align-items:center;gap:.75rem;padding:.7rem .8rem;border-radius:.7rem;color:var(--bs-body-color);font-weight:500;text-decoration:none}.app-menu-link:hover{background:var(--menu-hover);color:var(--accent)}.app-menu-link.active{background:var(--navy2);color:#fff}.menu-icon{display:inline-grid;place-items:center;width:1.5rem;color:inherit;font-size:1.05rem}
.card{border:0;box-shadow:0 .15rem .8rem rgba(7,26,53,.08);border-radius:.85rem}.card-header{border-bottom-color:var(--bs-border-color-translucent)}
.btn{border-radius:.6rem}.btn-primary{background:var(--navy2);border-color:var(--navy2)}.btn-primary:hover{background:var(--navy);border-color:var(--navy)}
.form-control,.form-select{border-radius:.6rem}.table{--bs-table-bg:transparent}.table thead th{color:var(--bs-secondary-color);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.table>:not(caption)>*>*{padding:.8rem .85rem;vertical-align:middle}.ticket-id{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:600}.message{overflow-wrap:anywhere}.rich-editor{min-height:160px;max-height:420px;overflow:auto}.rich-editor:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25);border-color:#86b7fe}.rich-toolbar{display:flex;flex-wrap:wrap;gap:.25rem}.badge-status-new{background:#6c757d}.badge-status-open{background:#0d6efd}.badge-status-pending{background:#fd7e14}.badge-status-resolved{background:#198754}.badge-status-closed{background:#212529}.sla-date{font-variant-numeric:tabular-nums}
@media (min-width:992px){.navbar-toggler{display:none!important}.app-offcanvas{visibility:visible!important;transform:none!important;position:fixed!important;top:57px!important;bottom:0!important;left:0!important;right:auto!important;width:260px!important;height:auto!important;border-right:1px solid var(--bs-border-color);border-left:0;background:var(--bs-body-bg);z-index:1020}.app-offcanvas .offcanvas-header{display:none}.app-offcanvas .offcanvas-body{overflow-y:auto}.offcanvas-backdrop{display:none!important}.app-shell{max-width:none!important;width:calc(100% - 260px)!important;margin-left:260px!important;margin-right:0!important;padding-left:1.5rem!important;padding-right:1.5rem!important}footer{width:calc(100% - 260px)!important;margin-left:260px!important;padding-left:1.5rem!important;padding-right:1.5rem!important}.navbar .container-fluid{padding-left:1rem!important}.app-menu-link{font-size:.93rem}}
@media (max-width:767.98px){.app-shell{padding-top:1rem!important}.d-flex.justify-content-between{gap:.75rem;align-items:flex-start!important}.d-flex.justify-content-between>.btn{white-space:nowrap}.card-body{padding:1rem}.display-6{font-size:2rem}.ticket-table thead{display:none}.ticket-table,.ticket-table tbody,.ticket-table tr,.ticket-table td{display:block;width:100%}.ticket-table tr{padding:.85rem;border-bottom:1px solid var(--bs-border-color);position:relative}.ticket-table tr:last-child{border-bottom:0}.ticket-table td{display:grid;grid-template-columns:7.2rem 1fr;gap:.75rem;padding:.28rem .1rem;border:0;text-align:left}.ticket-table td::before{content:attr(data-label);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--bs-secondary-color)}.ticket-table td[data-label="Subject"]{display:block;font-size:1rem;padding-bottom:.55rem}.ticket-table td[data-label="Subject"]::before{display:none}.ticket-table td[data-label="Ticket"]{position:absolute;right:.85rem;top:.85rem;display:block;width:auto;padding:0}.ticket-table td[data-label="Ticket"]::before{display:none}.table-responsive{border-radius:inherit}.navbar-brand span:last-child{max-width:55vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
[data-bs-theme=dark]{--page:#07111f;--menu-hover:rgba(110,168,254,.12)}[data-bs-theme=dark] .bg-navy{background:#020b18}[data-bs-theme=dark] .text-navy{color:#9ec5fe!important}[data-bs-theme=dark] .card{box-shadow:0 .15rem .8rem rgba(0,0,0,.35)}[data-bs-theme=dark] .btn-primary{background:#245ea8;border-color:#245ea8}[data-bs-theme=dark] .app-menu-link.active{background:#245ea8}

.rich-editor{min-height:180px;overflow:auto}.rich-toolbar{display:flex;flex-wrap:wrap;gap:.35rem}.rich-editor:empty:before{content:'Write your message…';color:var(--bs-secondary-color)}


/* Help Desk 3.1.1 dark-theme consistency pass */
:root{
  --surface-raised:var(--bs-body-bg);
  --surface-subtle:var(--bs-tertiary-bg);
  --surface-muted:var(--bs-secondary-bg);
  --surface-editor:var(--bs-body-bg);
  --surface-header:var(--bs-tertiary-bg);
}
.card,.modal-content,.dropdown-menu,.offcanvas,.list-group-item{background-color:var(--surface-raised);color:var(--bs-body-color)}
.card-header,.card-footer,.modal-header,.modal-footer{background-color:var(--surface-header);color:var(--bs-body-color)}
.dropdown-divider,.modal-header,.modal-footer{border-color:var(--bs-border-color)}
.dropdown-item,.dropdown-item-text{color:var(--bs-body-color)}
.dropdown-item:hover,.dropdown-item:focus{background-color:var(--bs-tertiary-bg);color:var(--bs-emphasis-color)}
.form-control,.form-select,.form-check-input,.input-group-text{background-color:var(--bs-body-bg);color:var(--bs-body-color);border-color:var(--bs-border-color)}
.form-control:focus,.form-select:focus{background-color:var(--bs-body-bg);color:var(--bs-body-color)}
.form-control:disabled,.form-control[readonly],.form-select:disabled{background-color:var(--bs-secondary-bg);color:var(--bs-secondary-color);opacity:1}
.form-control::placeholder{color:var(--bs-secondary-color);opacity:.8}
.table{--bs-table-color:var(--bs-body-color);--bs-table-bg:transparent;--bs-table-border-color:var(--bs-border-color)}
.table-hover>tbody>tr:hover>*{--bs-table-bg-state:var(--bs-tertiary-bg);--bs-table-color-state:var(--bs-emphasis-color)}
.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-bg-type:var(--bs-tertiary-bg);--bs-table-color-type:var(--bs-body-color)}
.list-group-item{border-color:var(--bs-border-color)}
.list-group-item-action:hover,.list-group-item-action:focus{background-color:var(--bs-tertiary-bg);color:var(--bs-emphasis-color)}
.rich-toolbar{padding:.5rem;border:1px solid var(--bs-border-color);border-bottom:0;border-radius:.6rem .6rem 0 0;background:var(--bs-tertiary-bg);margin-bottom:0!important}
.rich-editor{background:var(--surface-editor);color:var(--bs-body-color);border-color:var(--bs-border-color)!important;border-radius:0 0 .6rem .6rem!important}
.rich-editor blockquote,.message blockquote{margin:.75rem 0;padding:.35rem .85rem;border-left:3px solid var(--bs-border-color);background:var(--bs-tertiary-bg);color:var(--bs-secondary-color)}
.rich-editor a,.message a{color:var(--bs-link-color)}
code,pre{color:var(--bs-code-color)}
pre{background:var(--bs-tertiary-bg);border:1px solid var(--bs-border-color);border-radius:.5rem;padding:.75rem}
.alert{border-color:color-mix(in srgb,currentColor 20%,transparent)}
.btn-close{filter:none}
[data-bs-theme=dark] .btn-close{filter:var(--bs-btn-close-white-filter)}
[data-bs-theme=dark]{
  --page:#07111f;
  --menu-hover:rgba(110,168,254,.12);
  --surface-raised:#0d1828;
  --surface-subtle:#111f31;
  --surface-muted:#17263a;
  --surface-editor:#0a1524;
  --surface-header:#101d2e;
}
[data-bs-theme=dark] body{background:#07111f;color:#dee6f1}
[data-bs-theme=dark] .card{border:1px solid #203148;box-shadow:0 .2rem 1rem rgba(0,0,0,.32)}
[data-bs-theme=dark] .card-header,[data-bs-theme=dark] .card-footer{border-color:#203148}
[data-bs-theme=dark] .bg-navy{background:linear-gradient(135deg,#020914,#071a35)}
[data-bs-theme=dark] .text-muted,[data-bs-theme=dark] .text-body-secondary{color:#9daec3!important}
[data-bs-theme=dark] .border,[data-bs-theme=dark] .border-top,[data-bs-theme=dark] .border-bottom,[data-bs-theme=dark] .border-start,[data-bs-theme=dark] .border-end{border-color:#26384f!important}
[data-bs-theme=dark] .app-offcanvas{background:#091422!important;border-color:#203148!important}
[data-bs-theme=dark] .app-menu-heading{color:#8ea2bb}
[data-bs-theme=dark] .app-menu-link{color:#d7e2ef}
[data-bs-theme=dark] .app-menu-link:hover{background:#10243d;color:#9ec5fe}
[data-bs-theme=dark] .app-menu-link.active{background:#245ea8;color:#fff}
[data-bs-theme=dark] .dropdown-menu{border-color:#26384f;box-shadow:0 .5rem 1.5rem rgba(0,0,0,.4)}
[data-bs-theme=dark] .modal-content{border-color:#26384f;box-shadow:0 1rem 3rem rgba(0,0,0,.45)}
[data-bs-theme=dark] .form-control,[data-bs-theme=dark] .form-select,[data-bs-theme=dark] .input-group-text{background:#0a1524;border-color:#31445e;color:#e5edf6}
[data-bs-theme=dark] .form-control:focus,[data-bs-theme=dark] .form-select:focus{background:#0a1524;color:#fff;border-color:#4e86d8;box-shadow:0 0 0 .25rem rgba(78,134,216,.18)}
[data-bs-theme=dark] .form-control:disabled,[data-bs-theme=dark] .form-control[readonly],[data-bs-theme=dark] .form-select:disabled{background:#132238;color:#aebdd0}
[data-bs-theme=dark] .form-check-input{background-color:#0a1524;border-color:#405673}
[data-bs-theme=dark] .form-check-input:checked{background-color:#2f6fed;border-color:#2f6fed}
[data-bs-theme=dark] .rich-toolbar{background:#101d2e;border-color:#31445e}
[data-bs-theme=dark] .rich-editor{background:#08121f!important;color:#e5edf6!important;border-color:#31445e!important}
[data-bs-theme=dark] .rich-toolbar .btn-outline-secondary{--bs-btn-color:#c7d4e4;--bs-btn-border-color:#405673;--bs-btn-hover-bg:#223651;--bs-btn-hover-border-color:#587397;--bs-btn-hover-color:#fff}
[data-bs-theme=dark] .table{--bs-table-color:#dce5ef;--bs-table-border-color:#26384f}
[data-bs-theme=dark] .table thead th{color:#9fb0c5}
[data-bs-theme=dark] .table-hover>tbody>tr:hover>*{--bs-table-bg-state:#12243a;--bs-table-color-state:#fff}
[data-bs-theme=dark] .list-group-item{background:#0d1828;border-color:#26384f;color:#dce5ef}
[data-bs-theme=dark] .list-group-item-action:hover,[data-bs-theme=dark] .list-group-item-action:focus{background:#12243a;color:#fff}
[data-bs-theme=dark] .list-group-item.active{background:#245ea8;border-color:#245ea8;color:#fff}
[data-bs-theme=dark] .alert-info{--bs-alert-color:#c8e3ff;--bs-alert-bg:#102a43;--bs-alert-border-color:#1f4e75}
[data-bs-theme=dark] .alert-secondary{--bs-alert-color:#d2dae4;--bs-alert-bg:#202a36;--bs-alert-border-color:#394655}
[data-bs-theme=dark] .alert-success{--bs-alert-color:#c9f2d7;--bs-alert-bg:#123322;--bs-alert-border-color:#245b3d}
[data-bs-theme=dark] .alert-warning{--bs-alert-color:#ffe7ad;--bs-alert-bg:#3b2d0f;--bs-alert-border-color:#745819}
[data-bs-theme=dark] .alert-danger{--bs-alert-color:#ffd1d6;--bs-alert-bg:#3b171b;--bs-alert-border-color:#742b34}
[data-bs-theme=dark] code{color:#ff9fcf}
[data-bs-theme=dark] a:not(.btn):not(.app-menu-link):not(.dropdown-item):not(.list-group-item){color:#8bb9ff}
[data-bs-theme=dark] .badge-status-closed{background:#59636f}
[data-bs-theme=dark] .badge-status-new{background:#657180}
[data-bs-theme=dark] hr{border-color:#31445e;opacity:.65}
[data-bs-theme=dark] ::selection{background:#2f6fed;color:#fff}

/* Help Desk 3.2 workspace separation */
.workspace-badge{font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:.28rem .5rem;border-radius:999px;background:rgba(255,255,255,.16);color:#fff;border:1px solid rgba(255,255,255,.2)}
.admin-workspace .app-offcanvas{background:var(--bs-tertiary-bg)}
.admin-workspace .app-menu-heading:first-child{margin-top:.25rem}
.admin-stat-card{transition:transform .12s ease,box-shadow .12s ease;color:inherit}
.admin-stat-card:hover{transform:translateY(-2px);box-shadow:0 .35rem 1rem rgba(0,0,0,.12)}
[data-bs-theme=dark] .admin-workspace .app-offcanvas{background:#0b1727!important}
[data-bs-theme=dark] .admin-stat-card:hover{box-shadow:0 .4rem 1.2rem rgba(0,0,0,.38)}
@media (max-width:767.98px){.workspace-badge{display:none}.admin-workspace .navbar-brand span:nth-child(2){max-width:42vw}}

/* Enhanced ticket editor — 3.2.1 */
.rich-toolbar{align-items:center;position:sticky;top:0;z-index:3}
.rich-toolbar .btn{min-width:2.1rem}
.rich-format-select{width:auto;min-width:8.5rem;flex:0 0 auto}
.rich-editor{min-height:220px;line-height:1.55;padding:1rem}
.rich-editor h2,.message h2{font-size:1.35rem;margin-top:1rem}
.rich-editor h3,.message h3{font-size:1.15rem;margin-top:.9rem}
.rich-editor pre,.message pre{padding:.75rem 1rem;border-radius:.5rem;background:var(--bs-tertiary-bg);overflow:auto}
.rich-editor code,.message code{padding:.1rem .3rem;border-radius:.25rem;background:var(--bs-tertiary-bg);font-size:.9em}
.rich-editor hr,.message hr{border-color:var(--bs-border-color);opacity:1}
.rich-editor-fullscreen{position:fixed!important;inset:1rem;z-index:1090;background:var(--bs-body-bg);padding:1rem;border:1px solid var(--bs-border-color);border-radius:.75rem;box-shadow:var(--bs-box-shadow-lg);display:flex;flex-direction:column}
.rich-editor-fullscreen .rich-toolbar{position:static;flex:0 0 auto}
.rich-editor-fullscreen .rich-editor{flex:1 1 auto;max-height:none;min-height:0}
.rich-editor-open{overflow:hidden}
@media(max-width:575.98px){.rich-toolbar{gap:.4rem}.rich-toolbar .ms-auto{margin-left:0!important}.rich-format-select{width:100%;order:-1}.rich-editor-fullscreen{inset:.35rem;padding:.5rem}}
[data-bs-theme=dark] .rich-editor-fullscreen{background:#08121f;border-color:#31445e}

/* Integrated WebRTC/SIP phone */
.phone-launcher{position:fixed;right:1.25rem;bottom:1.25rem;z-index:1040}.phone-launcher .btn{width:3.5rem;height:3.5rem;font-size:1.4rem}.dial-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.dial-pad .btn{min-height:3.25rem;font-size:1.15rem}.service-workspace #sipPhone{--bs-offcanvas-width:min(390px,100vw)}#sipRemoteAudio{display:none}[data-bs-theme="dark"] #sipPhone .card,[data-bs-theme="dark"] #sipPhone .alert{border-color:var(--bs-border-color)}

/* Standalone SIP phone */
.sip-page-dialpad{max-width:360px;grid-template-columns:repeat(3,1fr);gap:.75rem}.sip-page-dialpad .btn{min-height:64px;font-size:1.25rem}

.badge-status-change_control{background:var(--bs-warning-bg-subtle);color:var(--bs-warning-text-emphasis);border:1px solid var(--bs-warning-border-subtle)}


/* Administration navigation refresh — 3.9.1 */
.admin-nav-groups{display:grid;gap:.35rem}
.admin-menu-trigger{width:100%;border:0;background:transparent;text-align:left}
.admin-menu-chevron{margin-left:auto;font-size:1.2rem;line-height:1;opacity:.65}
.admin-nav-group .admin-submenu{min-width:245px;border-radius:.7rem;box-shadow:0 .75rem 2rem rgba(18,38,63,.16)}
.admin-submenu-title{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.055em;color:var(--bs-secondary-color);padding:.35rem .75rem .55rem}
.admin-submenu .dropdown-item{border-radius:.45rem;padding:.55rem .75rem}
.admin-submenu .dropdown-item.active{background:var(--bs-primary);color:#fff}
.admin-config-launcher{border-style:dashed}
.admin-config-launcher-title{color:var(--bs-emphasis-color)}
.admin-config-modal .modal-dialog{max-width:min(860px,calc(100vw - 2rem))}
.admin-config-modal .modal-body>.card>.card-body{padding:1.5rem}
.admin-config-modal .modal-body>.card>.card-header{border-radius:0}
[data-bs-theme=dark] .admin-nav-group .admin-submenu{box-shadow:0 .8rem 2rem rgba(0,0,0,.48)}
@media (max-width:991.98px){
  .admin-nav-group .admin-submenu{position:static!important;transform:none!important;width:100%;margin:.25rem 0 .5rem!important;box-shadow:none}
  .admin-menu-chevron{transform:rotate(90deg)}
}


/* Admin submenu reliability fix — 3.9.2 */
@media (min-width:992px){
  .admin-workspace .app-offcanvas,
  .admin-workspace .app-offcanvas .offcanvas-body,
  .admin-workspace .app-menu{overflow:visible!important}
  .admin-workspace .admin-nav-group{position:relative}
  .admin-workspace .admin-submenu{
    z-index:1085;
    margin-left:.35rem!important;
  }
}
@media (max-width:991.98px){
  .admin-workspace .app-offcanvas .offcanvas-body{overflow-y:auto!important;overflow-x:hidden!important}
  .admin-workspace .admin-nav-group{width:100%}
  .admin-workspace .admin-submenu.show{display:block}
}


/* Ticket workspace — 4.0.0 */
.ticket-workspace{
  --ticket-main:68%;
  display:grid;
  grid-template-columns:minmax(0,var(--ticket-main)) 10px minmax(280px,1fr);
  align-items:start;
  gap:0;
}
.ticket-main-column{min-width:0;padding-right:1rem}
.ticket-side-column{min-width:0;padding-left:1rem}
.ticket-column-resizer{
  align-self:stretch;
  cursor:col-resize;
  position:relative;
  min-height:240px;
  touch-action:none;
}
.ticket-column-resizer::before{
  content:"";
  position:absolute;
  top:0;bottom:0;left:4px;
  width:2px;
  border-radius:2px;
  background:var(--bs-border-color);
  transition:background .15s,width .15s,left .15s;
}
.ticket-column-resizer:hover::before,
.ticket-column-resizer.is-dragging::before{background:var(--bs-primary);width:4px;left:3px}
.ticket-reply-card{border:1px solid var(--bs-border-color);box-shadow:0 .25rem 1rem rgba(7,26,53,.1)}
@media(max-width:991.98px){
  .ticket-workspace{display:block}
  .ticket-main-column,.ticket-side-column{padding:0}
  .ticket-column-resizer{display:none}
  .ticket-side-column{margin-top:1rem}
}


/* Live service desk updates and escalation — 4.1.0 */
.notification-bell-menu{width:min(360px,92vw);max-height:480px;overflow:auto}
.ticket-live-changed{animation:ticketLivePulse 3.5s ease-out}
@keyframes ticketLivePulse{
  0%{background:var(--bs-warning-bg-subtle)}
  100%{background:transparent}
}
.live-updated-badge{vertical-align:middle}
.card.border-danger{border:1px solid var(--bs-danger)!important}


/* Omni-channel routing — 4.2.0 */
.badge-status-solving{background:#6f42c1;color:#fff}
.omni-status-dot{display:inline-block;width:.55rem;height:.55rem;border-radius:50%;background:currentColor;vertical-align:.05rem}
#omniOfferModal .modal-header{border-bottom-color:rgba(255,255,255,.12)}
#omniOfferModal .ticket-id{font-size:.8rem}
[data-bs-theme=dark] .badge-status-solving{background:#8d6bd1;color:#fff}
