:root{
  --app-primary:#0B3A6E;--app-secondary:#10233F;--app-accent:#D4AF37;--app-sidebar:#071827;--app-navbar:#0A2540;
  --app-bg:#F5F7FA;--app-surface:#FFFFFF;--app-text:#182230;--app-muted:#667085;
}
*{box-sizing:border-box}
body{font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--app-text)}
.app-body{background:var(--app-bg);min-height:100vh}
a{color:var(--app-primary)}a:hover{color:var(--app-secondary)}
.app-navbar{background:var(--app-navbar);box-shadow:0 2px 12px rgba(15,23,42,.16)}
.app-navbar .navbar-brand{color:#fff;line-height:1.1}.app-navbar .navbar-brand:hover{color:#fff}.app-navbar .navbar-brand small{font-size:.66rem;font-weight:400;opacity:.72;margin-top:.12rem}
.brand-mark{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:9px;background:var(--app-accent);color:#162033;font-size:.72rem;font-weight:800;letter-spacing:.04em}
.top-notification{color:rgba(255,255,255,.88);text-decoration:none;font-size:.84rem}.top-notification:hover{color:#fff}
.top-ai-analyst{display:inline-flex;align-items:center;gap:.38rem;padding:.34rem .62rem;border:1px solid color-mix(in srgb,var(--app-accent) 78%,white);border-radius:.65rem;background:color-mix(in srgb,var(--app-accent) 17%,transparent);color:#fff;text-decoration:none;font-size:.8rem;font-weight:650;line-height:1;white-space:nowrap;transition:.15s ease}.top-ai-analyst:hover,.top-ai-analyst.active{background:var(--app-accent);border-color:var(--app-accent);color:#172033;box-shadow:0 3px 12px rgba(0,0,0,.15);transform:translateY(-1px)}.ai-analyst-spark{font-size:1rem;line-height:1;color:var(--app-accent)}.top-ai-analyst:hover .ai-analyst-spark,.top-ai-analyst.active .ai-analyst-spark{color:#172033}@media(max-width:575.98px){.top-ai-analyst{padding:.34rem .5rem}.top-notification{font-size:.78rem}}
.app-sidebar{min-height:calc(100vh - 59px);background:var(--app-sidebar);position:sticky;top:59px;height:calc(100vh - 59px);overflow-y:auto;padding-left:.65rem;padding-right:.65rem}
.app-sidebar a,.app-sidebar .section{display:block}.app-sidebar a{padding:.57rem .72rem;color:rgba(255,255,255,.76);text-decoration:none;border-radius:.55rem;margin:.08rem 0;font-size:.9rem;transition:.15s ease}
.app-sidebar a:hover{background:rgba(255,255,255,.10);color:#fff}.app-sidebar a.active{background:var(--app-primary);color:#fff;font-weight:600;box-shadow:0 4px 14px rgba(0,0,0,.12)}
.app-sidebar .section{font-size:.68rem;text-transform:uppercase;letter-spacing:.09em;color:rgba(255,255,255,.42);margin:.95rem .7rem .28rem;font-weight:700}
/* v2.2.4 grouped / collapsible sidebar navigation */
.sidebar-nav{display:block}.sidebar-dashboard-link{margin-bottom:.5rem!important;background:rgba(255,255,255,.055);font-weight:700}.sidebar-group{margin:.18rem 0;border-radius:.65rem}.sidebar-group-toggle{width:100%;border:0;background:transparent;color:rgba(255,255,255,.78);display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.58rem .7rem;border-radius:.58rem;font-size:.78rem;font-weight:750;text-align:left;letter-spacing:.025em;transition:background .15s ease,color .15s ease}.sidebar-group-toggle:hover,.sidebar-group-toggle:focus{background:rgba(255,255,255,.09);color:#fff;outline:0}.sidebar-group.is-active>.sidebar-group-toggle{color:#fff;background:rgba(255,255,255,.07)}.sidebar-group-meta{display:inline-flex;align-items:center;gap:.42rem;flex:0 0 auto}.sidebar-group-count{min-width:1.4rem;height:1.4rem;padding:0 .34rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,.1);color:rgba(255,255,255,.66);font-size:.65rem;font-weight:700}.sidebar-chevron{display:inline-block;font-size:1rem;line-height:1;transition:transform .18s ease;transform:rotate(180deg)}.sidebar-group-toggle.collapsed .sidebar-chevron{transform:rotate(0deg)}.sidebar-group-items{padding:.08rem 0 .35rem .45rem;border-left:1px solid rgba(255,255,255,.11);margin-left:.72rem}.sidebar-group-items a{font-size:.86rem;padding:.48rem .64rem;margin:.06rem 0}.sidebar-group-items a.active{box-shadow:none}.sidebar-group-items strong{font-weight:700}
.card{background:var(--app-surface);border-radius:.8rem}.card-header,.card-footer{border-color:rgba(100,116,139,.14)}
.text-muted{color:var(--app-muted)!important}.table{--bs-table-bg:transparent;--bs-table-color:var(--app-text)}.table thead th{font-size:.76rem;text-transform:uppercase;letter-spacing:.04em;color:var(--app-muted);background:color-mix(in srgb,var(--app-bg) 72%,white);border-bottom-width:1px}
.btn-primary{--bs-btn-bg:var(--app-primary);--bs-btn-border-color:var(--app-primary);--bs-btn-hover-bg:var(--app-secondary);--bs-btn-hover-border-color:var(--app-secondary);--bs-btn-active-bg:var(--app-secondary);--bs-btn-active-border-color:var(--app-secondary)}
.btn-outline-primary{--bs-btn-color:var(--app-primary);--bs-btn-border-color:var(--app-primary);--bs-btn-hover-bg:var(--app-primary);--bs-btn-hover-border-color:var(--app-primary)}
.form-control:focus,.form-select:focus,.form-check-input:focus{border-color:var(--app-primary);box-shadow:0 0 0 .2rem color-mix(in srgb,var(--app-primary) 18%,transparent)}.form-check-input:checked{background-color:var(--app-primary);border-color:var(--app-primary)}
.kpi-card{min-height:125px}.placeholder-chart{height:260px;border:1px dashed #cbd5e1;border-radius:.7rem;display:flex;align-items:center;justify-content:center;color:var(--app-muted);background:linear-gradient(180deg,var(--app-bg),var(--app-surface))}.print-sheet{max-width:1100px}
/* Theme selector */
.theme-preset-card{display:flex;gap:.8rem;border:1px solid rgba(100,116,139,.22);border-radius:.8rem;padding:1rem;cursor:pointer;background:var(--app-surface);height:100%;transition:.15s ease}.theme-preset-card:hover{border-color:var(--app-primary);transform:translateY(-1px)}.theme-preset-card.selected{border:2px solid var(--app-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--app-primary) 10%,transparent)}.theme-preset-card .theme-radio{margin-top:.18rem}.theme-check{opacity:0;color:var(--app-primary);font-weight:800}.theme-preset-card.selected .theme-check{opacity:1}.theme-swatch{width:30px;height:20px;border-radius:.35rem;border:1px solid rgba(15,23,42,.08)}
.theme-preview{--p-primary:#0B3A6E;--p-secondary:#10233F;--p-accent:#D4AF37;--p-sidebar:#071827;--p-navbar:#0A2540;--p-bg:#F5F7FA;--p-surface:#fff;--p-text:#182230;--p-muted:#667085;border:1px solid rgba(100,116,139,.2);border-radius:.8rem;overflow:hidden;background:var(--p-bg);color:var(--p-text)}.preview-navbar{background:var(--p-navbar);color:#fff;padding:.7rem .8rem;display:flex;justify-content:space-between;font-size:.72rem}.preview-navbar strong{color:#fff}.preview-navbar:before{content:"";display:inline-block;width:12px;height:12px;border-radius:3px;background:var(--p-accent);margin-right:.35rem}.preview-body{min-height:210px}.preview-sidebar{width:34%;background:var(--p-sidebar);padding:.7rem .45rem}.preview-sidebar span{display:block;color:rgba(255,255,255,.72);font-size:.62rem;padding:.38rem .45rem;border-radius:.35rem;margin-bottom:.16rem}.preview-sidebar span.active{background:var(--p-primary);color:#fff}.preview-content{padding:.8rem;background:var(--p-bg)}.preview-heading{font-weight:700;font-size:.82rem}.preview-card{background:var(--p-surface);border-radius:.5rem;padding:.6rem;box-shadow:0 1px 4px rgba(15,23,42,.08)}.preview-card small{display:block;color:var(--p-muted);font-size:.56rem}.preview-card strong{font-size:.78rem}.preview-button{border:0;border-radius:.4rem;background:var(--p-primary);color:#fff;font-size:.62rem;padding:.42rem .65rem}

/* Developer / support attribution */
.app-developer-footer{border-top:1px solid color-mix(in srgb,var(--app-muted) 22%,transparent);padding:1rem 0 .25rem;color:var(--app-muted);font-size:.78rem;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.45rem 1rem}.app-developer-footer strong{color:var(--app-text);font-weight:650}.developer-links{display:flex;flex-wrap:wrap;gap:.38rem;align-items:center}.developer-links a{color:var(--app-muted);text-decoration:none}.developer-links a:hover{color:var(--app-primary);text-decoration:underline}.public-support-footer{font-size:.76rem;color:#6c757d}.public-support-footer a{color:inherit;text-decoration:none}.public-support-footer a:hover{text-decoration:underline}.print-developer-footer{font-size:.7rem;color:#6c757d;border-top:1px solid #dee2e6;margin-top:1.5rem;padding-top:.65rem;text-align:center}.support-card a{text-decoration:none}
@media(max-width:767.98px){main.print-main{padding-left:1rem!important;padding-right:1rem!important}.display-6{font-size:1.8rem}}
@media print{body{background:#fff!important}.no-print,.app-sidebar,.navbar{display:none!important}.print-main{width:100%!important;max-width:none!important;margin:0!important;padding:0!important}.print-sheet{box-shadow:none!important;max-width:none!important;padding:0!important}.container-fluid{padding:0!important}.row>*{width:100%!important}}
/* Global institution branding / printable documents */
.app-navbar-logo{width:36px;height:36px;object-fit:contain;border-radius:7px;background:#fff;padding:2px}.branding-logo-preview{min-height:150px;border:1px dashed rgba(100,116,139,.35);border-radius:.75rem;display:grid;place-items:center;background:#fafafa}.branding-logo-preview img{max-width:100%;max-height:145px;object-fit:contain;padding:.5rem}.print-brand-header{display:none;justify-content:space-between;gap:1.25rem;align-items:flex-start;border-bottom:2px solid #1f2937;padding-bottom:.8rem;margin-bottom:1rem;color:#111827}.print-brand-header.always-visible{display:flex}.print-brand-identity{display:flex;gap:.9rem;align-items:flex-start;min-width:0}.print-brand-logo-wrap{width:84px;min-width:84px;display:flex;align-items:flex-start;justify-content:center}.print-brand-logo{max-width:82px;max-height:74px;object-fit:contain}.print-brand-details{font-size:.78rem;line-height:1.35}.print-brand-name{font-weight:800;font-size:1.25rem;line-height:1.1;margin-bottom:.15rem}.print-brand-slogan{font-style:italic;color:#64748b;margin-bottom:.2rem}.print-document-meta{text-align:right;min-width:170px;font-size:.8rem}.print-document-title{font-weight:800;font-size:1.15rem;letter-spacing:.05em;text-transform:uppercase}.print-header-note{display:none;font-size:.76rem;text-align:center;padding:.35rem .5rem;margin:-.45rem 0 .8rem;background:#f8fafc;border:1px solid #e2e8f0}.print-header-note.always-visible{display:block}.institution-print-footer{font-size:.72rem;color:#475569;text-align:center;margin-top:1.25rem;padding-top:.5rem;border-top:1px solid #e2e8f0}.compact-preview{padding:.65rem;margin:0}.compact-preview .print-brand-logo-wrap{width:58px;min-width:58px}.compact-preview .print-brand-logo{max-width:56px;max-height:48px}.compact-preview .print-brand-name{font-size:1rem}
@media print{.print-brand-header{display:flex!important}.print-header-note{display:block!important}.app-developer-footer{display:none!important}.institution-print-footer,.print-developer-footer{display:block!important}.print-brand-name{font-size:15pt}.print-brand-details{font-size:8.5pt}.print-document-title{font-size:12pt}.print-brand-logo{max-width:75px;max-height:65px}}
.print-document-footer{display:none}.print-document-footer.always-visible{display:block}@media print{.print-document-footer{display:block!important}}

/* v2.0.5 Settings Hub */
.settings-hub-card{transition:transform .16s ease,box-shadow .16s ease;border-top:4px solid var(--app-primary)!important;background:var(--app-surface)}
.settings-card-link:hover .settings-hub-card{transform:translateY(-3px);box-shadow:0 .75rem 1.5rem rgba(0,0,0,.10)!important}
.settings-hub-icon{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:1.45rem;background:color-mix(in srgb,var(--app-primary) 12%,white);color:var(--app-primary)}
.settings-card-link .fw-semibold{color:var(--app-primary)}

/* v2.0.10 CCTV live monitor */
.security-camera-card{overflow:hidden}.security-view-surface{background:#0b1018;min-height:240px;aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;position:relative}.security-live-media{width:100%;height:100%;object-fit:cover;background:#000}.security-live-frame{width:100%;height:100%;border:0;background:#000}.security-view-placeholder{width:100%;height:100%;min-height:240px;display:flex;align-items:center;justify-content:center;text-align:center;padding:1.5rem;color:#cbd5e1;background:linear-gradient(135deg,#0f172a,#1e293b)}
@media (max-width:767.98px){.security-view-surface,.security-view-placeholder{min-height:210px}}


/* v2.2.8 developer/institution brand separation */
.developer-brand-logo{display:block;object-fit:contain;background:#fff;border-radius:.45rem;padding:.18rem;box-shadow:0 1px 4px rgba(15,23,42,.09)}
.developer-brand-logo.contact{width:68px;max-width:68px;max-height:40px;flex:0 0 auto}
.developer-support-lockup{display:flex;align-items:center;gap:.7rem;min-width:0}
.developer-contact-copy{min-width:0;text-align:left}.developer-contact-copy a{overflow-wrap:anywhere}
.developer-brand-lockup{display:flex;align-items:center;gap:.7rem;min-width:0}.developer-brand-copy{min-width:0}.developer-brand-copy a{overflow-wrap:anywhere}
.license-developer-lockup{display:flex;gap:.7rem;align-items:center;flex-wrap:wrap}
.login-institution-brand{margin-bottom:.25rem}.login-institution-logo{display:block;max-width:180px;max-height:88px;object-fit:contain;margin:0 auto .85rem}
.print-developer-footer-inner{display:flex;align-items:center;justify-content:center;gap:.42rem;flex-wrap:wrap}.print-developer-logo{width:42px;max-height:24px;object-fit:contain}
.activation-developer-lockup{display:flex;align-items:center;gap:.7rem}.developer-brand-logo.activation-contact{width:72px;max-height:42px;flex:0 0 auto}
@media(max-width:575.98px){.developer-brand-logo.contact{width:58px;max-height:34px}.developer-support-lockup{align-items:flex-start}.activation-developer-lockup{align-items:flex-start}}
@media print{.print-developer-logo{display:inline-block!important}.developer-brand-logo{box-shadow:none}}

/* v2.2.7 first-time buyer-bound activation */
.activation-shell{min-height:100vh;display:grid;place-items:center;padding:2rem 1rem;background:radial-gradient(circle at top right,color-mix(in srgb,var(--app-primary) 12%,white),var(--app-bg) 48%)}
.activation-dialog{width:min(1080px,100%);display:grid;grid-template-columns:minmax(300px,.82fr) minmax(0,1.35fr);overflow:hidden;border-radius:1.15rem;background:var(--app-surface);border:1px solid color-mix(in srgb,var(--app-muted) 18%,transparent)}
.activation-brand-panel{background:linear-gradient(145deg,var(--app-navbar),var(--app-secondary));color:#fff;padding:2.2rem;display:flex;flex-direction:column;justify-content:center}.activation-brand-panel a{color:#fff}.activation-product{font-weight:800;font-size:1.08rem}.activation-version{opacity:.75;font-size:.82rem;margin-bottom:1.4rem}.activation-brand-panel h1{font-size:2rem;font-weight:800}.activation-developer-card{border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.08);border-radius:.85rem;padding:1rem 1.1rem}.activation-form-panel{padding:2.2rem}.activation-key-input{font-size:.78rem;line-height:1.35;word-break:break-all}.activation-request{border-top:1px solid color-mix(in srgb,var(--app-muted) 20%,transparent);padding-top:1.2rem}.activation-request textarea{font-size:.7rem;line-height:1.25}
@media(max-width:800px){.activation-dialog{grid-template-columns:1fr}.activation-brand-panel,.activation-form-panel{padding:1.4rem}.activation-brand-panel h1{font-size:1.55rem}.activation-developer-card{display:block}}
