:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#152334;background:#eef2f6;line-height:1.45;--nav:#17324d;--accent:#1769aa;--border:#d8e1e8;--muted:#637588;--panel:#fff}*{box-sizing:border-box}body{margin:0;background:#eef2f6;color:#152334}a{color:#155f98}.app-layout{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:#142d45;color:white;padding:1.2rem 1rem;display:flex;flex-direction:column;gap:.6rem;overflow:auto}.brand{font-size:1.35rem;font-weight:800;color:white;text-decoration:none}.channel-label{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:#9fb5c8;margin:.2rem 0 .25rem}.admin-label{margin-top:1rem}.side-nav{display:grid;gap:.25rem}.side-nav a{color:#eaf2f8;text-decoration:none;padding:.58rem .65rem;border-radius:8px}.side-nav a:hover{background:#ffffff15}.mobile-companion-link{border:1px solid #ffffff24;margin-top:.35rem}.user-panel{margin-top:auto;padding-top:1rem;border-top:1px solid #ffffff22;display:grid;gap:.25rem}.user-panel small{color:#b7c7d5;overflow-wrap:anywhere}.user-panel .link-button{color:white}.web-shell{min-width:0;padding:0 1.4rem 2rem}.workspace-header{height:70px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);margin-bottom:1.2rem;background:#eef2f6;position:sticky;top:0;z-index:4}.workspace-header>div:first-child{display:flex;gap:.8rem;align-items:baseline}.workspace-header span{color:var(--muted);font-size:.9rem}.workspace-actions{display:flex;gap:.6rem}.page-heading{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin:.4rem 0 1rem}.page-heading h1{margin:.1rem 0 .25rem;font-size:1.75rem}.page-heading p{margin:0;color:var(--muted)}.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:1rem;box-shadow:0 2px 10px #13263c0a;margin-bottom:1rem}.narrow{max-width:520px;margin:5rem auto}.login-card{padding:1.4rem}.stack{display:grid;gap:.85rem}.compact{gap:.55rem}.button,button,input,textarea,select{font:inherit;border-radius:8px;border:1px solid #b7c6d2;padding:.68rem .75rem;background:white}.button,button{cursor:pointer;text-decoration:none;color:#17324d;text-align:center;font-weight:700}.primary{background:var(--accent)!important;color:white!important;border-color:var(--accent)!important}.danger{background:#a22f2f!important;color:white!important;border-color:#a22f2f!important}.link-button{border:0;background:transparent;padding:0;text-align:left}.button-row,.form-actions{display:flex;gap:.65rem;flex-wrap:wrap;align-items:center}label{display:grid;gap:.35rem;font-weight:650}.checkbox{display:flex;flex-direction:row;gap:.5rem;align-items:center;font-weight:500}.checkbox input{width:auto}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;align-items:end}.two-form{grid-template-columns:1fr 1fr}.full{grid-column:1/-1}.filter-grid{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:.8rem;align-items:end}.table-wrap{overflow:auto}.table-wrap.wide{max-width:100%}table{width:100%;border-collapse:collapse;font-size:.93rem}th,td{text-align:left;padding:.72rem .65rem;border-bottom:1px solid #e5ebef;vertical-align:top}th{font-size:.78rem;color:#586a7c;text-transform:uppercase;letter-spacing:.035em;background:#f7f9fb;position:sticky;top:0}tbody tr:hover{background:#f8fafc}.badge{display:inline-block;padding:.14rem .48rem;border-radius:999px;background:#e7eef3;font-size:.78rem;text-transform:capitalize;white-space:nowrap}.badge.in_progress{background:#e6efff}.badge.resolved{background:#e5f5ec}.badge.closed{background:#e7e7e7}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.9rem;margin-bottom:1rem}.kpi{background:white;border:1px solid var(--border);border-radius:12px;padding:1rem;display:grid;gap:.15rem}.kpi span,.kpi small{color:var(--muted)}.kpi strong{font-size:2rem}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem}.span-2{grid-column:span 2}.section-title{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.section-title h2,.card h2,.card h3{margin-top:0}.section-title p{margin-top:-.35rem;color:var(--muted)}.section-heading{margin-top:1.5rem}.widget-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.bar-list{display:grid;gap:.45rem}.bar-list>div{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid #edf1f4;padding:.45rem 0}.bar-list.large>div strong{font-size:1.15rem}.configuration-card{margin-top:1rem}.wizard{max-width:900px}.wizard-step{display:grid;grid-template-columns:44px 1fr;gap:1rem}.step-number{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#e6eff8;color:#164e7d;font-weight:800}.wizard-step h2{margin:.05rem 0 .8rem}.report-result{max-width:760px}.status-pill{padding:.35rem .65rem;border-radius:999px;font-size:.82rem;font-weight:700}.status-pill.ok{background:#e5f5ec;color:#24613f}.status-pill.warn{background:#fff1d7;color:#795313}.permission-toggle{min-width:66px;padding:.35rem .55rem;font-size:.8rem}.permission-toggle.allowed{background:#e6f5ed;color:#1d5d3b;border-color:#bddfca}.permission-toggle.denied{background:#f7e7e7;color:#7c2d2d;border-color:#e5c2c2}.rbac-table th:not(:first-child),.rbac-table td:not(:first-child){text-align:center}.case-grid{display:grid;gap:.75rem}.case-card{display:block;background:white;border:1px solid var(--border);border-radius:10px;padding:.9rem;color:inherit;text-decoration:none}.case-card:hover{border-color:#86a7c0}.case-card-top{display:flex;justify-content:space-between;gap:1rem;margin-bottom:.35rem}.muted{color:var(--muted)}.two-col{display:grid;grid-template-columns:1.1fr .9fr;gap:1rem}.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.action-grid form{display:grid;gap:.45rem}.timeline article{border-left:3px solid #d5e0e7;padding:0 0 1rem 1rem;margin-left:.35rem}.timeline article span{display:block;color:var(--muted);font-size:.88rem}.timeline article p{margin:.35rem 0}.timeline small{color:#7a8a99}.result{white-space:pre-wrap;font:inherit;background:#f6f8fa;padding:.8rem;border-radius:8px}.examples{margin-top:.8rem;color:var(--muted)}dl{display:grid;grid-template-columns:max-content 1fr;gap:.38rem .8rem}dt{font-weight:700}dd{margin:0}.mobile-workspace{max-width:720px}.mobile-actions{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-bottom:1rem}.empty{text-align:center;padding:2rem}.shell{padding:1rem}.assistant-card{max-width:900px}
@media(max-width:1050px){.app-layout{grid-template-columns:210px 1fr}.dashboard-grid{grid-template-columns:1fr 1fr}.span-2{grid-column:span 1}.widget-grid{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr 1fr}.filter-grid{grid-template-columns:1fr 1fr}.filter-grid .form-actions{grid-column:1/-1}.kpi-grid{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.app-layout{display:block}.sidebar{position:static;height:auto;padding:.8rem}.channel-label,.admin-label,.user-panel small{display:none}.side-nav{display:flex;gap:.3rem;overflow:auto}.side-nav a{white-space:nowrap;background:#ffffff0d}.sidebar .admin-label+.side-nav{display:none}.user-panel{margin-top:.5rem;padding-top:.6rem;display:flex;justify-content:space-between;align-items:center}.web-shell{padding:0 .75rem 1.5rem}.workspace-header{height:auto;padding:.65rem 0;position:static}.workspace-header>div:first-child span{display:none}.workspace-actions .button:first-child{display:none}.page-heading{align-items:flex-start}.page-heading h1{font-size:1.45rem}.kpi-grid,.dashboard-grid,.widget-grid,.two-col,.action-grid,.form-grid,.two-form,.filter-grid{grid-template-columns:1fr}.span-2,.full{grid-column:auto}.mobile-actions{grid-template-columns:1fr 1fr}.card{border-radius:10px;padding:.85rem}.button,button{min-height:44px}input,textarea,select{font-size:16px}.table-wrap{margin:0 -.85rem;padding:0 .85rem}.workspace-header{border-bottom:0;margin-bottom:.6rem}.rbac-table{font-size:.82rem}.mobile-workspace{max-width:none}.case-card-top{display:grid;gap:.4rem}}

#pwa-install[hidden]{display:none}
/* Governed report charts retain readable labels and signed values. */
.report-chart { display: grid; gap: 1rem; }
.report-chart > div { display: grid; grid-template-columns: minmax(8rem, 1fr) minmax(5rem, 2fr) auto; gap: .75rem; align-items: center; }
.report-chart meter { width: 100%; height: 1.25rem; }
.widget details { margin-top: 1rem; }
.widget summary { cursor: pointer; }
select[multiple] { min-height: 7rem; }
@media (max-width: 600px) { .report-chart > div { grid-template-columns: 1fr; gap: .25rem; } }

@media(max-width:720px){.side-nav a,summary,input:not([type=checkbox]):not([type=hidden]),select{min-height:44px}.side-nav a,summary{display:flex;align-items:center}.case-card .button-row{margin-top:.75rem}#log-time{scroll-margin-top:1rem}}

.context-help-link{display:inline-flex;align-items:center;min-height:44px;min-width:44px;font-weight:700;text-decoration:underline}
.sidebar .context-help-link{color:white;align-self:flex-start}
.public-help-link{margin:.5rem 1rem}
.page-help{scroll-margin-top:90px;margin-top:2rem}
.page-help li{margin:.65rem 0}.page-help:target{outline:3px solid #1769aa;outline-offset:3px}
.shell>.page-help{max-width:800px;margin:2rem auto;padding:1.4rem}
@media(max-width:720px){.page-help{scroll-margin-top:1rem}.shell>.page-help{margin:1rem}}
