:root {
  --navy: #081d49; --navy-soft: #112b58; --blue: #0065a9; --blue-hover: #004e87;
  --cyan: #00aae8; --red: #bb2535; --ink: #182d4d; --muted: #536781;
  --canvas: #f3f6fb; --paper: #fff; --line: #dce4ef; --field-line: #8192a9;
  --radius: 12px; --shadow: 0 12px 32px #081d4910;
  --white: #fff; --selection: #153c72; --soft: #eaf2fc; --open-bg: #fff0f1;
  --space-sm: 8px; --space-md: 16px; --space-lg: 24px; --radius-control: 8px; --radius-panel: 12px;
}
body { background: var(--canvas); color: var(--ink); font-family: 'Segoe UI', Inter, system-ui, sans-serif; line-height: 1.5; }
/* Agency selection and forms share the suite's existing spacing and colors. */
.topbar { gap: 24px; }
.topbar > label { display: flex; flex: 1 1 350px; min-width: 0; }
.topbar > label select { min-width: 0; max-width: 100%; }
.agency-chooser { display: grid; gap: 16px; }
.agency-chooser > select { width: 100%; min-width: 0; }
.agency-chooser > button { justify-self: start; }
.setup-target { display: grid; gap: 8px; max-width: 480px; margin-bottom: 24px; }
.setup-form { display: grid; gap: 24px; }
.setup-form h2 { margin-top: 0; }
.search-field { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px; margin: 16px 0; }
.search-field > label { flex: 1 1 240px; min-width: 0; }
.search-field > button { flex: 0 0 auto; }
.neris-search select { width: 100%; }
.setup-admin-list { display: grid; gap: 12px; margin-bottom: 16px; }
.setup-admin { border: 1px solid var(--line); padding: 16px; border-radius: var(--radius-control); }
.setup-admin h4 { margin: 0; }
.setup-result:not(:empty) { padding: 20px; background: var(--soft); border-radius: var(--radius-panel); }
.call-report-intro { padding: 4px 0 16px; }
.call-report-intro h3 { margin: 8px 0; font-size: 20px; }
.call-report-layout { grid-template-columns: minmax(220px, .65fr) minmax(0, 1.35fr); align-items: start; }
.call-facts { background: var(--canvas); border: 1px solid var(--line); border-radius: var(--radius-panel); min-width: 0; }
.call-facts h3 { font-size: 16px; margin: 0 0 12px; }
.call-facts h3:not(:first-child) { border-top: 1px solid var(--line); padding-top: 20px; margin-top: 20px; }
.call-facts dl { margin: 0; display: grid; gap: 4px; }
.call-facts dt { font-size: 12px; color: var(--muted); }
.call-facts dd { margin: 0 0 10px; overflow-wrap: anywhere; }
.call-caller, .call-unit { margin: 14px 0; }
.call-unit dl { margin-top: 8px; }
.call-report-section { padding: 16px; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius-panel); }
.call-report-section h3 { margin: 0; }
.call-attendance-summary { display: grid; margin-top: 14px; }
.call-attendance-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 14px; border-top: 1px solid var(--line); padding: 12px 0; align-items: center; font-size: 13px; }
.call-attendance-row strong { overflow-wrap: anywhere; }
.neris-type-tree { max-height: 320px; overflow: auto; margin-top: 12px; padding: 8px; border: 1px solid var(--line); border-radius: var(--radius-control); }
.neris-type-tree details { margin: 4px 0; }
.neris-type-tree summary { display: list-item; min-height: 32px; padding: 4px; cursor: pointer; font-size: 13px; font-weight: 600; }
.neris-type-tree [role=group] { padding-left: 18px; }
.neris-type-tree .neris-type { display: flex; align-items: flex-start; gap: 8px; font-size: 13px; padding: 6px 0; }
.neris-type-tree summary .neris-type { display: inline-flex; margin: 0; padding: 0; vertical-align: middle; }
.neris-type-tree .neris-type input { flex: 0 0 auto; }
.neris-choice { display: flex; align-items: flex-start; gap: 6px; min-width: 0; }
.neris-choice .neris-type { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.neris-type-tree summary .neris-choice { display: inline-flex; max-width: calc(100% - 18px); vertical-align: middle; }
.neris-choice-help { flex: 0 0 auto; width: 28px; min-height: 28px; padding: 2px; border-radius: 50%; margin-top: 3px; font-weight: 700; }
.neris-usage { margin-left: auto; white-space: nowrap; font-size: 11px; color: var(--muted); }
.neris-common { border-bottom: 1px solid var(--line); padding-bottom: 8px; margin-bottom: 8px !important; }
.neris-common > summary { color: var(--blue); }
.neris-help-flyout { position: fixed; inset: 0 0 0 auto; margin: 0; box-sizing: border-box; width: min(560px, 100vw); max-width: 100vw; height: 100dvh; max-height: 100dvh; padding: 0; border: 0; border-left: 1px solid var(--line); border-radius: 0; background: var(--paper); color: var(--ink); box-shadow: -12px 0 48px #0003; }
.neris-help-flyout[open] { display: flex; flex-direction: column; }
.neris-help-flyout::backdrop { background: #0e172957; }
.neris-help-flyout header { flex: 0 0 auto; padding: 24px; border-bottom: 1px solid var(--line); background: var(--canvas); }
.neris-help-flyout h2 { margin: 0; font-size: 21px; }
.neris-help-flyout label { display: grid; gap: 8px; margin-top: 20px; font-size: 13px; font-weight: 600; }
.neris-help-flyout input { box-sizing: border-box; width: 100%; min-height: 44px; }
.neris-help-flyout a { color: var(--blue); font-size: 13px; }
.neris-help-results { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 0 24px 24px; }
.neris-help-entry { padding: 22px 0; border-bottom: 1px solid var(--line); overflow-wrap: anywhere; }
.neris-help-entry h3 { margin: 0 0 8px; font-size: 16px; }
.neris-help-entry code { display: block; font-size: 11px; color: var(--muted); white-space: normal; }
.neris-help-entry p { font-size: 14px; line-height: 1.6; }
.neris-help-description { font-weight: 600; }
.neris-help-entry button[aria-pressed=true] { border-color: var(--blue); color: var(--blue); }
@media (max-width: 600px) {
  .neris-help-flyout header { padding: 18px; }
  .neris-help-results { padding: 0 18px 18px; }
  .neris-help-flyout h2 { font-size: 18px; }
  .neris-usage { white-space: normal; }
}
.close-response [hidden] { display: none !important; }
.attendance-dialog-grid > .attendance-panel { display: flex; flex-direction: column; height: 66vh; max-height: none; overflow: hidden; padding: 0; background: var(--canvas); }
.attendance-panel-header { flex: 0 0 auto; padding: 16px; background: var(--paper); border-bottom: 1px solid var(--line); }
.attendance-panel-header .muted { font-size: 12px; margin: 8px 0; }
.attendance-panel-header h3 { font-size: 16px; }
.attendance-scroll { flex: 1 1 auto; min-height: 0; overflow: auto; padding: 12px; margin-top: 0; align-content: start; }
.attendance-person, .tree-leaf { border-color: var(--line); background: var(--paper); color: var(--ink); }
.tree-member.attendance-person { display: flex; border: 1px solid var(--line); padding: 9px; margin: 6px 0; font-size: 13px; }
.tree-member.attendance-person button { flex: 0 0 auto; }
.assignment-tree summary { min-height: 32px; color: var(--ink); }
.tree-leaf > .row { flex-wrap: wrap; }
.tree-leaf [role=group] { padding-left: 0; }
.drop-target { background: var(--soft) !important; border-color: var(--blue) !important; }
.attendance-only-grid { grid-template-columns: minmax(260px, 1fr) minmax(360px, 1.3fr); }
.equipment-assignment-grid { grid-template-columns: minmax(230px, .7fr) minmax(0, 1.5fr); }
.attendance-only-grid > .attendance-panel:last-child, .equipment-assignment-grid > .attendance-panel:last-child { grid-column: auto; }
.attendance-member { flex-wrap: nowrap; align-items: center; }
.attendance-member > div { flex: 1 1 auto; min-width: 0; }
.attendance-member strong { overflow-wrap: anywhere; }
.attendance-member > button { flex: 0 0 auto; }
.equipment-accordion { border: 1px solid var(--line); border-radius: var(--radius-control); background: var(--paper); margin-bottom: 12px; }
.equipment-accordion > summary { padding: 12px 16px; cursor: pointer; }
.equipment-accordion > summary strong { margin-right: 16px; }
.equipment-accordion > summary span { color: var(--muted); font-size: 12px; }
.equipment-body { display: grid; gap: 12px; padding: 16px; border-top: 1px solid var(--line); }
.equipment-body label { display: grid; gap: 6px; font-size: 13px; }
.equipment-body select, .equipment-body textarea { width: 100%; min-width: 0; box-sizing: border-box; }
.equipment-seat { grid-template-columns: minmax(110px, .45fr) minmax(0, 1fr); align-items: center; }
.equipment-body > button { justify-self: start; }
@media (max-width: 1000px) {
  .attendance-dialog-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .attendance-dialog-grid > .attendance-panel:last-child { height: 55vh; }
}
@media (max-width: 700px) {
  .call-report-layout { grid-template-columns: 1fr; }
  .call-attendance-row { grid-template-columns: minmax(0,1fr) auto; gap: 6px; }
  .call-attendance-row strong { grid-column: 1/-1; }
  .attendance-dialog-grid { grid-template-columns: 1fr; }
  .equipment-seat { grid-template-columns: 1fr; }
  .attendance-dialog-grid > .attendance-panel, .attendance-dialog-grid > .attendance-panel:last-child { height: 48vh; min-height: 290px; }
  .equipment-assignment-grid > .attendance-panel:first-child { height: auto; min-height: 0; max-height: 28vh; }
  .search-field > button { flex: 1 1 auto; }
}

/* Command uses the compact Mobile layout on phones. Desktop panes keep their layout. */
.command-mobile-header,.command-mobile-navigation,.command-incident-toolbar{display:none}
@media(max-width:760px){
  .shell{display:block;background:var(--canvas)}
  .shell>.sidebar,.shell>.workspace>.topbar{display:none}
  .shell>.command-mobile-header{position:sticky;top:0;z-index:60;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:60px;padding:8px max(16px,env(safe-area-inset-left));background:var(--navy);border-bottom:3px solid #f5ac38;color:#fff}
  .command-mobile-header>a{display:inline-flex;align-items:center;min-height:44px;color:#fff;font-size:19px;font-weight:750;text-decoration:none}
  .command-mobile-header>span{font-size:12px;font-weight:700;letter-spacing:.06em}
  .shell>.command-mobile-navigation{position:fixed;inset:auto 0 0;z-index:100;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:12px max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--line)}
  .command-mobile-navigation>button{min-height:44px;padding:8px;border-color:transparent;background:#eaf2fc;color:#0065a9;font-size:14px;font-weight:650}
  .command-mobile-navigation>button[aria-current=page]{background:#0065a9;color:#fff}
  .shell>.workspace>main{padding:16px 16px calc(100px + env(safe-area-inset-bottom));min-height:calc(100dvh - 60px)}
  .shell .page-heading{min-height:0;margin-bottom:12px;padding:0;background:none;border:0;border-radius:0;align-items:stretch;gap:12px}
  .shell [hidden]{display:none!important}
  .shell .page-heading>div:first-child{padding-right:0;min-width:0}.shell .page-heading .eyebrow{display:none}
  .shell .page-heading h1{font-size:24px;margin:8px 0;line-height:1.2;color:var(--navy);overflow-wrap:anywhere}
  .shell .page-heading .muted{margin:4px 0;font-size:14px;line-height:1.4}.shell .page-heading>.row{gap:8px}
  .shell button,.shell input,.shell select,.shell summary{min-height:44px;scroll-margin-bottom:110px}.shell input,.shell select,.shell textarea{font-size:16px}
  .shell .panel{border-radius:12px}.shell .panel-head,.shell .panel-body{padding:16px}.shell .panel-head h2{font-size:16px}
  .command-mobile-context h2,.command-mobile-tools h2{font-size:16px;margin:0 0 12px}.command-mobile-context label{display:grid;gap:8px;margin:12px 0}
  .command-mobile-context select{width:100%}.command-mobile-tools{display:grid;gap:8px}.command-mobile-tools>button{text-align:left}
  .command-mobile-tools .suite-switcher{width:100%}.command-mobile-tools .suite-switcher>summary{color:var(--ink)}
  .command-mobile-tools .suite-menu{position:static;max-width:100%;width:100%;margin-top:8px}.command-mobile-tools .suite-menu a{min-height:64px}
  .shell .incident-tabs{gap:8px;padding-bottom:8px}.shell .incident-tabs button{padding:8px 12px;font-size:13px}
  .shell .incident-filters{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}.shell .incident-filters>input,.shell .incident-filters>.muted{grid-column:1/-1}
  .shell .incident-filters>select{width:100%;min-width:0;font-size:14px}.shell .incident-filters>.muted{font-size:12px}
  .shell .incident-grid-shell{border:0;background:transparent;overflow:hidden;box-shadow:none}.shell .incident-grid-head{display:none}
  .shell .incident-virtual-grid{height:min(62dvh,560px);min-width:0!important;width:100%}.shell .incident-grid-canvas{min-width:0;width:100%}
  .shell .incident-grid-row{width:100%;min-width:0!important;height:164px;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:28px minmax(0,1fr) 44px;gap:6px 8px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fff}
  .shell .incident-grid-row>div{padding:0;min-width:0}.shell .incident-grid-row>div:first-child{grid-column:1;grid-row:1}.shell .incident-grid-row>div:first-child strong{font-size:12px}.shell .incident-grid-row>div:first-child p{font-size:11px;margin:0}
  .shell .incident-grid-row>div:nth-child(2){grid-column:1/-1;grid-row:2}.shell .incident-grid-row>div:nth-child(2)>strong{font-size:17px;line-height:1.35}.shell .incident-grid-row>div:nth-child(2)>p{font-size:14px;margin:3px 0 0}
  .shell .incident-grid-row>div:nth-child(3){grid-column:2;grid-row:1;align-self:start;justify-self:end;font-size:12px;color:#a92535;font-weight:700}
  .shell .incident-grid-row>div:nth-child(4){grid-column:1;grid-row:3;align-self:center}.shell .incident-grid-row>div:nth-child(5){grid-column:2;grid-row:3;gap:6px;flex-wrap:nowrap}
  .shell .incident-row-actions>.badge{display:none}.shell .incident-row-actions button{min-height:44px;padding:8px 10px;font-size:14px}
  .shell .incident-workspace{display:flex;flex-direction:column;gap:12px;min-height:0}.shell .command-incident-toolbar{display:flex;justify-content:space-between;gap:8px}
  .shell .command-incident-toolbar>button{font-size:13px;padding:8px 10px}.shell .incident-workspace-menu{display:none;position:static;min-height:0;margin:0;padding:12px;background:#fff;color:var(--ink);grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .shell .command-tools-open>.incident-workspace-menu{display:grid}.shell .incident-workspace-menu .eyebrow{display:none}.shell .incident-workspace-menu>button,.shell .incident-workspace-close button{background:#eaf2fc;border-color:transparent;color:#0065a9;padding:8px;font-size:13px}
  .shell .incident-workspace-menu>button[aria-current=page]{background:#0065a9;color:#fff}.shell .incident-workspace-close{margin:0;padding:0;grid-column:1/-1}
  .shell .incident-workspace[data-pane="Incident details"] .incident-workspace-title>.page-heading{display:none}.shell .incident-call-choice{margin:0 0 12px;font-size:13px}
  .command-mobile-incident{display:grid;gap:12px}.command-mobile-incident h1{font-size:24px;line-height:1.2;color:var(--navy);margin:0;overflow-wrap:anywhere}
  .command-incident-address{font-size:16px;margin:0;overflow-wrap:anywhere}.command-incident-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;color:var(--muted)}
  .command-incident-meta>span{min-width:0;overflow-wrap:anywhere}.command-incident-actions{gap:8px}.command-incident-actions>button{flex:1 1 120px;padding:10px;font-size:14px}
  .command-incident-section{margin:0;overflow:hidden}.command-incident-section>summary{min-height:48px;display:list-item;list-style-position:inside;padding:14px 16px;cursor:pointer;font-weight:700}
  .command-incident-section-body{padding:0 16px 16px;overflow-wrap:anywhere}.command-incident-section-body p{font-size:14px;margin:8px 0}.command-incident-section-body article+article{border-top:1px solid var(--line);padding-top:8px;margin-top:12px}
  .command-incident-facts{display:grid;grid-template-columns:minmax(85px,.65fr) minmax(0,1fr);gap:10px;margin:0;font-size:14px}.command-incident-facts dt{color:var(--muted);font-size:13px}.command-incident-facts dd{margin:0;overflow-wrap:anywhere}
  .command-incident-section .table-wrap{padding:0;margin:0;max-width:100%;overflow:auto}.command-incident-section th,.command-incident-section td{padding:10px 4px;font-size:13px}
  .shell .call-report-shell{position:static;top:auto}.shell .chief-responders{table-layout:fixed}.shell .chief-responders th,.shell .chief-responders td{white-space:normal;overflow-wrap:anywhere}
  .shell .call-report-shell>form{height:max(260px,calc(var(--call-report-height,100dvh) - 84px - env(safe-area-inset-bottom)))}
  body:has(.shell) #notice{bottom:calc(76px + env(safe-area-inset-bottom));margin:0;border-radius:0;max-width:100%}
}
button, input, select, textarea { font: inherit; }
button, summary, a.action { min-height: 44px; }
button { border-color: var(--line); border-radius: 8px; padding: 10px 16px; color: var(--ink); transition: background .15s, border-color .15s; }
button:hover { background: #edf3fb; border-color: #b0c1d8; }
button.primary { background: var(--blue); border-color: var(--blue); color: white; }
button.primary:hover { background: var(--blue-hover); border-color: var(--blue-hover); }
button.danger, .error { color: var(--red); }
.error:empty { display: none; }
button.small { min-height: 44px; }
input, select, textarea { min-height: 44px; border-color: var(--field-line); border-radius: 8px; color: var(--ink); background: white; }
input[type=checkbox] { min-height: 18px; accent-color: var(--blue); }
input:focus-visible, select:focus-visible, textarea:focus-visible, button:focus-visible, a:focus-visible, summary:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }
a { color: var(--blue); }
.shell { grid-template-columns: 264px minmax(0,1fr); }
.sidebar { position: sticky; top: 0; height: 100dvh; overflow-y: auto; background: var(--navy); color: #c5d3ea; padding: 28px 18px 20px; gap: 30px; }
.sidebar-brand { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.brand { gap: 12px; color: white; line-height: 1.35; }
.brand-mark { width: 48px; height: 48px; object-fit: contain; clip-path: none; background: none; border-radius: 10px; flex-shrink: 0; }
.brand-copy { min-width: 0; }
.brand-copy strong { display: block; font-size: 15px; font-weight: 650; }
.brand-copy small { display: block; margin-top: 5px; font-size: 9px; font-weight: 650; letter-spacing: 1.3px; color: #b0c4e2; }
.navigation { display: flex; flex-direction: column; gap: 14px; flex: 1; }
.eyebrow { color: var(--muted); font-size: 10px; letter-spacing: 1.5px; }
.sidebar .eyebrow, .nav-section { color: #9fb5d6; padding: 0 14px; font-size: 10px; text-transform: uppercase; letter-spacing: 1.3px; }
.nav-section { margin: 20px 0 8px; }
.sidebar nav { display: grid; gap: 6px; }
.sidebar nav button { display: flex; align-items: center; gap: 13px; min-height: 46px; padding: 12px 14px; border-radius: 8px; color: #c5d3ea; font-size: 14px; font-weight: 500; }
.sidebar nav button:hover { background: #173666; }
.sidebar nav button[aria-current=page] { color: white; background: #153c72; box-shadow: inset 3px 0 var(--cyan); font-weight: 650; }
.nav-icon { width: 19px; height: 19px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.sidebar-footer { margin-top: auto; padding-top: 24px; color: #9fb5d6; line-height: 1.6; }
.sidebar-footer > small { display: block; margin: 18px 10px 0; font-size: 10px; }
.nav-toggle { display: none; }
.topbar { min-height: 88px; background: white; border-color: var(--line); padding: 18px 36px; }
.topbar label { flex-direction: column; align-items: flex-start; gap: 4px; font-size: 10px; text-transform: uppercase; letter-spacing: 1px; color: var(--muted); }
.topbar select { width: min(350px,100%); border: 0; background: #f3f6fb; font-size: 14px; font-weight: 600; text-transform: none; letter-spacing: 0; padding: 8px 12px; }
.topbar .account { position: relative; display: block; flex-shrink: 0; }
.account summary { display: flex; align-items: center; gap: 10px; cursor: pointer; padding: 4px; border-radius: 8px; list-style: none; }
.account summary::after { content: '⌄'; color: var(--muted); padding-left: 12px; }
summary::-webkit-details-marker { display: none; }
.avatar { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; color: var(--navy); background: #e9f1fc; font-weight: 700; }
.account-name { display: grid; gap: 2px; text-align: left; }
.account-name strong { font-size: 13px; }
.account-name small { color: var(--muted); font-size: 11px; }
.account-menu { position: absolute; right: 0; top: calc(100% + 10px); z-index: 1001; width: 200px; padding: 8px; background: white; border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow); }
.account-menu button { display: block; width: 100%; border: 0; text-align: left; }
.suite-switcher { position: relative; }
.suite-switcher summary { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 10px 14px; border: 1px solid #49658d; border-radius: 8px; cursor: pointer; font-size: 13px; font-weight: 600; color: white; }
.suite-switcher summary::after { content: '⌄'; }
.suite-menu { position: absolute; z-index: 1002; width: 340px; max-width: calc(100vw - 32px); top: calc(100% + 8px); left: 0; padding: 16px 10px 10px; border-radius: 12px; border: 1px solid var(--line); box-shadow: 0 16px 48px #081d4926; background: white; color: var(--ink); }
.suite-menu .eyebrow { display: block; padding: 0 10px 10px; color: var(--muted); }
.suite-menu a { display: flex; gap: 12px; align-items: center; padding: 10px; border-radius: 8px; color: var(--ink); text-decoration: none; }
.suite-menu a:hover, .suite-menu a[aria-current=page] { background: #edf4fc; }
.suite-menu img { flex-shrink: 0; border-radius: 9px; }
.suite-menu strong { display: block; font-size: 13px; }
.suite-menu small { display: block; color: var(--muted); font-size: 11px; margin-top: 3px; }
.suite-arrow { margin-left: auto; color: var(--blue); }
.sidebar-footer .suite-menu { top: auto; bottom: calc(100% + 8px); width: 224px; }
.sidebar-footer .suite-menu a { flex-wrap: wrap; }
.sidebar-footer .suite-menu a > span:not(.suite-arrow) { flex: 1; min-width: 105px; }
.workspace main { padding: 32px 36px 48px; max-width: 1600px; }
.page-heading { align-items: center; min-height: 110px; padding: 24px 28px; margin-bottom: 24px; border: 1px solid var(--line); border-radius: var(--radius); background: white url('/admin-assets/icon.svg') no-repeat calc(100% - 24px) center / 74px; }
.page-heading > div:first-child { min-width: 0; padding-right: 80px; }
.page-heading:has(> button), .page-heading:has(> .row) { background-image: none; }
.page-heading:has(> button) > div:first-child, .page-heading:has(> .row) > div:first-child { padding-right: 0; }
h1 { font-size: clamp(26px,2.3vw,34px); font-weight: 650; color: var(--navy); line-height: 1.2; letter-spacing: -.9px; margin: 8px 0; }
h2 { color: var(--navy); font-size: 19px; }
.muted { color: var(--muted); font-size: 13px; }
.metrics { gap: 18px; }
.metric { border-color: var(--line); border-radius: var(--radius); padding: 22px 24px; position: relative; overflow: hidden; }
.metric strong { font-size: 36px; color: var(--navy); font-variant-numeric: tabular-nums; }
.metric span { color: var(--muted); font-size: 11px; }
.metric::after { content: ''; position: absolute; inset: 0 0 auto; height: 3px; background: #a6bbd8; }
.metric.accent { border-top: 1px solid var(--line); }
.metric.accent::after { background: #dd3848; }
.metric:last-child::after { background: var(--blue); }
.panel { border-color: var(--line); border-radius: var(--radius); box-shadow: 0 2px 4px #081d4903; }
.panel-head { border-color: var(--line); padding: 22px 24px; }
.panel-head h2 { margin-bottom: 4px; }
.panel-body { padding: 24px; }
.badge { background: #eaf2fc; color: #254f7e; border-radius: 5px; padding: 5px 9px; }
.badge.open { background: #fff0f1; color: #a92535; }
.open-call { border-color: var(--line); border-left-color: #d93245; border-radius: 10px; padding: 20px; }
.open-call h3 { color: var(--navy); font-variant-numeric: tabular-nums; }
.open-call .muted { font-size: 12px; }
th { background: #f6f8fc; color: var(--muted); padding: 14px 22px; }
td { border-color: var(--line); }
tr:hover td { background: #f6f9fe; }
.empty { color: var(--muted); }
.map-range { background: #f9fbfe; padding-top: 16px; }
.map-range label { font-size: 11px; color: var(--muted); }
.table-footer, .map-toolbar, .map-status { border-color: var(--line); color: var(--muted); }
dialog, .incident-dialog { color: var(--ink); border-color: var(--line); border-radius: 16px; box-shadow: 0 30px 100px #081d4933; }
dialog::backdrop, .incident-dialog::backdrop { background: #081d4999; }
.form-actions { border-color: var(--line); }
#notice { background: var(--navy); color: white; border-radius: 10px; box-shadow: var(--shadow); margin: 16px; max-width: calc(100% - 32px); }
.login { min-height: 100dvh; grid-template-columns: minmax(0,1.05fr) minmax(0,1fr); background: white; }
.login-story { position: relative; isolation: isolate; padding: 40px clamp(28px,5vw,76px); display: flex; flex-direction: column; justify-content: space-between; gap: 48px; background: var(--navy); overflow: hidden; min-width: 0; }
.login-story::before { content: ''; position: absolute; z-index: -1; right: -10px; top: 24%; width: min(440px,75%); aspect-ratio: 1; background: url('/admin-assets/icon.svg') center / contain no-repeat; opacity: .15; pointer-events: none; }
.login-story::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: linear-gradient(90deg,var(--cyan),#006cb8 65%,#e43d45); }
.login-story-top { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.login-story-top .suite-menu { left: auto; right: 0; }
.login-story-top .suite-switcher { margin-left: auto; }
.login-story-copy { position: relative; max-width: 490px; }
.login-story .eyebrow { color: #a5c9ed; font-size: 10px; }
.login-story h1 { font-size: clamp(42px,4.3vw,64px); line-height: 1.08; letter-spacing: -2px; color: white; margin: 20px 0 24px; }
.login-story p { max-width: 390px; font-size: 17px; line-height: 1.7; color: #c6d5ec; }
.login-highlights { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 32px; }
.login-highlights span { border: 1px solid #44618b; color: #d4e3f6; border-radius: 6px; padding: 8px 10px; font-size: 11px; }
.login-company { display: flex; align-items: center; gap: 18px; }
.login-company img { object-fit: contain; width: 112px; height: auto; border-radius: 6px; background: white; padding: 6px; }
.login-company span { color: #b4c7e3; font-size: 11px; max-width: 145px; }
.login-form { width: 100%; min-width: 0; max-width: none; align-self: stretch; margin: 0; padding: 48px; display: flex; align-items: center; justify-content: center; background: white; }
.login-form-inner { width: min(380px,100%); }
.login-form h2 { font-size: 34px; letter-spacing: -1px; margin: 10px 0; }
.login-form form { display: grid; gap: 20px; margin-top: 30px; }
.login-form label { font-size: 13px; color: var(--ink); }
.login-form input { min-height: 50px; }
.login-form form > button { min-height: 50px; width: 100%; }
.login-form [role=alert]:empty { display: none; }
.login-form [role=alert] { padding: 12px; background: #fff1f2; border-radius: 8px; }
.login-help { margin-top: 24px; padding-top: 22px; border-top: 1px solid var(--line); font-size: 12px; color: var(--muted); }
/* Standalone authenticator page uses the same readable form surface. */
#app > main.login-form { display: grid; min-height: 100dvh; align-content: center; justify-content: center; gap: 16px; }
#app > main.login-form > .brand { color: var(--ink); }
#app > main.login-form > form { width: min(380px,calc(100vw - 48px)); }
@media (max-width: 1100px) {
  .shell { grid-template-columns: 230px minmax(0,1fr); }
  .sidebar { padding: 24px 14px; }
  .brand-copy strong { font-size: 13px; }
  .topbar, .workspace main { padding-left: 24px; padding-right: 24px; }
  .login-story-top { flex-wrap: wrap; }
}
@media (max-width: 760px) {
  .shell { display: block; }
  .sidebar { position: relative; height: auto; overflow: visible; padding: 16px; gap: 0; }
  .sidebar-brand .brand-copy strong { font-size: 15px; }
  .nav-toggle { display: block; background: #153361; border-color: #4e6d96; color: white; min-width: 66px; }
  .nav-toggle:hover { background: #244675; }
  .nav-toggle:focus-visible, .sidebar summary:focus-visible { outline-color: #6ccaff; }
  .navigation { display: none; padding-top: 26px; }
  .sidebar.is-open .navigation { display: flex; }
  .sidebar nav { display: grid; grid-template-columns: 1fr 1fr; overflow: visible; }
  .sidebar nav .nav-section { grid-column: 1/-1; }
  .sidebar nav button { white-space: normal; padding: 12px; font-size: 13px; }
  .sidebar-footer { display: block; padding-top: 14px; margin-top: 0; }
  .sidebar-footer .suite-menu { width: 340px; }
  .topbar { min-height: 82px; flex-wrap: nowrap; padding: 12px 16px; align-items: center; gap: 10px; }
  .topbar label { font-size: 9px; min-width: 0; flex: 1; }
  .topbar select { max-width: 100%; width: 100%; font-size: 13px; }
  .topbar .account { display: block; }
  .topbar .account summary { gap: 4px; }
  .topbar .account span { flex-basis: auto; text-align: left; }
  .account-name { display: none; }
  .account summary::after { padding-left: 3px; }
  .account summary { min-height: 48px; }
  .workspace main { padding: 20px 16px 36px; }
  .page-heading { min-height: 100px; padding: 20px; background-size: 56px; background-position: calc(100% - 16px) center; gap: 12px; align-items: flex-start; }
  .page-heading > div:first-child { padding-right: 50px; }
  .page-heading .muted { font-size: 12px; }
  .page-heading h1 { font-size: 27px; }
  .metrics { gap: 8px; }
  .metric { padding: 18px 12px; }
  .metric span { font-size: 9px; letter-spacing: .4px; }
  .metric strong { font-size: 28px; margin-top: 4px; }
  .panel-head, .panel-body { padding: 18px 16px; }
  .panel-head { align-items: flex-start; }
  .panel-head h2 { font-size: 17px; }
  .open-call-list { padding: 12px; }
  .open-call { padding: 16px; }
  .open-call .primary { padding: 10px 12px; }
  .map-range label { flex: 1 1 130px; }
  .login { grid-template-columns: 1fr; }
  .login-story { min-height: auto; padding: 24px; gap: 28px; }
  .login-story-top { flex-wrap: wrap; }
  .login-story-top .brand-copy strong { font-size: 13px; }
  .login-story-top summary { font-size: 12px; padding: 8px 10px; gap: 10px; }
  .login-story h1 { font-size: 38px; letter-spacing: -1.3px; margin: 14px 0; }
  .login-story p { font-size: 14px; margin-bottom: 0; }
  .login-story::before { width: 210px; top: 80px; }
  .login-highlights, .login-company { display: none; }
  .login-form { padding: 32px 24px 40px; }
  .login-form h2 { font-size: 29px; }
  .login-form form { margin-top: 24px; gap: 18px; }
  .table-footer { flex-wrap: wrap; gap: 12px; }
  .review-panel .table-wrap { padding: 12px; }
  .review-panel table, .review-panel tbody { display: block; }
  .review-panel thead { display: none; }
  .review-panel tr { display: grid; padding: 12px; border: 1px solid var(--line); border-radius: 8px; margin-bottom: 10px; }
  .review-panel td { display: flex; align-items: center; justify-content: space-between; gap: 16px; border: 0; padding: 7px 4px; }
  .review-panel td::before { content: attr(data-label); color: var(--muted); font-size: 11px; font-weight: 600; }
  .review-panel td:last-child { justify-content: flex-end; }
  .review-panel td:last-child::before { display: none; }
}
@media (max-width: 380px) {
  .brand-copy small { font-size: 8px; letter-spacing: .8px; }
  .login-story-top .brand-mark { width: 40px; height: 40px; }
  .login-story-top { gap: 8px; }
  .login-story-top .suite-switcher summary { gap: 6px; }
  .sidebar nav { grid-template-columns: 1fr; }
  .page-heading h1 { font-size: 24px; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; } }
/* The same incident panes are hosted by StationLine Command and the desktop WebView. */
.incident-workspace{display:grid;grid-template-columns:205px minmax(0,1fr);gap:24px;min-height:calc(100vh - 155px);align-items:stretch}
.incident-workspace-menu{display:flex;flex-direction:column;gap:9px;background:var(--navy,#081d49);padding:24px 14px;border-radius:14px;color:white;align-self:start;position:sticky;top:20px;min-height:calc(100vh - 155px)}
.incident-workspace-menu .eyebrow{color:#b4c6e5;margin-bottom:16px}
.incident-workspace-menu>button,.incident-workspace-close button{background:transparent;color:white;border-color:#ffffff35;text-align:left;width:100%}
.incident-workspace-menu>button[aria-current=page]{background:#2464d1;border-color:#2464d1}
.incident-workspace-close{margin-top:auto;padding-top:30px}
.incident-workspace-body,.incident-workspace-content{min-width:0}
.incident-overview{display:grid;gap:18px}
.workspace-panel{padding:24px}
.workspace-panel>form>.row:first-child{margin-bottom:20px}
.workspace-panel .close-response{padding:22px}
.attachment-details{margin-top:24px}
.attachment-details th{white-space:nowrap}
.attachment-sort{border:0;background:transparent;padding:0;font-size:inherit;color:inherit;white-space:nowrap}
.attachment-name{border:0;background:transparent;text-align:left;color:#1755b0;padding:0;overflow-wrap:anywhere}
.attachment-upload input{max-width:100%}
.attachment-preview{margin-top:20px}
.attachment-preview img{max-width:100%;max-height:650px;object-fit:contain}
.attachment-preview iframe{width:100%;height:650px;border:1px solid #d8e1ee;border-radius:8px}
.desktop-workspace{background:#f4f7fb;margin:0}
.desktop-workspace #app{padding:24px}
.desktop-workspace .incident-workspace,.desktop-workspace .incident-workspace-menu{min-height:calc(100vh - 48px)}
.desktop-workspace .incident-workspace-menu{top:24px}
@media(max-width:900px){.incident-workspace{grid-template-columns:160px minmax(0,1fr);gap:14px}.workspace-panel{padding:16px}.workspace-panel .call-report-layout{grid-template-columns:1fr}.workspace-panel .close-response{padding:16px}.incident-workspace .page-heading h1{font-size:25px}}
@media(max-width:650px){.incident-workspace{display:block}.incident-workspace-menu{position:static;min-height:0;display:grid;grid-template-columns:1fr 1fr;margin-bottom:18px}.incident-workspace-menu .eyebrow{grid-column:1/-1;margin:0}.incident-workspace-close{grid-column:1/-1;padding-top:8px}.attachment-upload{flex-wrap:wrap}.workspace-panel>form>.row:first-child{flex-wrap:wrap}.incident-workspace .table-wrap{max-width:100%}}

.inventory-building details{margin:16px 0;border:1px solid #dce4ef;border-radius:8px;padding:14px}.inventory-building summary{cursor:pointer;font-weight:650}.inventory-building details[open] summary{margin-bottom:16px}.inventory-building .property-json{white-space:pre-wrap;overflow-wrap:anywhere}

/* The shared web and desktop Call Report keeps every entry section in one form. */
.workspace-panel.call-report-shell, .incident-dialog.call-report-shell { padding: 0; overflow: hidden; }
.workspace-panel.call-report-shell { position: sticky; top: 16px; }
.call-report-shell > form { display: grid; grid-template-rows: auto minmax(0,1fr) auto; height: var(--call-report-height,calc(100dvh - 32px)); padding: 0; gap: 0; min-width: 0; }
.incident-dialog.call-report-shell > form { height: 92dvh; }
.call-report-header { padding: 16px 20px 12px; border-bottom: 1px solid var(--line); background: var(--paper); max-height: 45dvh; overflow: auto; }
.call-report-header h2 { margin: 0; font-size: 20px; overflow-wrap: anywhere; }
.call-report-header .call-overview { margin-top: 12px; }
.call-report-header .call-report-meta { margin-top: 8px; }
.call-report-scroll { overflow: auto; min-height: 0; padding: 20px; scroll-padding-block: 16px; }
.call-report-footer { padding: 12px 20px; border-top: 1px solid var(--line); background: var(--paper); box-shadow: 0 -4px 12px #081d4908; max-height: 40dvh; overflow: auto; }
.call-report-footer .form-actions { margin: 0; flex-wrap: wrap; align-items: center; }
.call-report-footer .call-report-back { margin-right: auto; }
.call-report-footer .error { margin: 0 0 10px; }
.call-report-footer .error:empty { display: none; }
.call-type-filter { margin: 10px 0; }
.call-type-filter-row { display: flex; gap: 8px; }
.call-type-filter-row input { width: 100%; }
.call-type-status { min-height: 20px; font-size: 12px; }
.call-report-entry { container-type: inline-size; gap: 16px; min-width: 0; }
.workspace-panel .call-report-entry { padding: 0; }
.call-overview { padding: 12px 16px; border: 1px solid var(--line); border-radius: var(--radius-panel); background: var(--canvas); }
.call-overview h3 { margin: 0 0 8px; font-size: 14px; }
.call-overview dl { display: grid; grid-template-columns: max-content minmax(0,1fr) max-content minmax(0,1fr); gap: 2px 12px; margin: 0; align-items: baseline; }
.call-overview dl > div { display: contents; }
.call-overview dt { text-align: right; color: var(--ink); font-size: 13px; font-weight: 600; white-space: nowrap; }
.call-overview dt::after { content: ':'; }
.call-overview dd { margin: 0; text-align: right; font-size: 13px; font-weight: 400; overflow-wrap: anywhere; }
.call-report-meta { display: flex; flex-wrap: wrap; gap: 4px 24px; padding: 0 4px; }
.call-report-meta p { margin: 0; font-size: 12px; }
.call-report-accordion { border: 1px solid var(--line); border-radius: var(--radius-panel); background: var(--paper); min-width: 0; }
.call-report-accordion > summary { display: flex; align-items: center; gap: 12px; min-height: 54px; padding: 14px 20px; cursor: pointer; list-style: none; border-radius: var(--radius-panel); }
.call-report-accordion > summary::-webkit-details-marker { display: none; }
.call-report-accordion > summary::before { content: ''; border-right: 2px solid var(--blue); border-bottom: 2px solid var(--blue); width: 8px; height: 8px; transform: rotate(-45deg); flex: 0 0 auto; }
.call-report-accordion[open] > summary::before { transform: rotate(45deg); }
.call-report-accordion > summary:hover { background: var(--canvas); }
.call-report-accordion > summary:focus-visible { outline: 3px solid var(--blue); outline-offset: 2px; }
.call-report-accordion > summary h3 { margin: 0; font-size: 16px; }
.call-report-section-body { padding: 20px; border-top: 1px solid var(--line); }
.call-neris-columns { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.call-neris-column { min-width: 0; }
.call-neris-column h4 { font-size: 14px; margin: 0; }
.call-neris-column > select { width: 100%; margin-top: 8px; }
.call-neris-column > label { margin-top: 12px; }
.call-action-choice { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 4px; padding: 4px; margin: 10px 0 0; min-inline-size: 0; border: 1px solid var(--line); border-radius: var(--radius-control); background: var(--canvas); }
.call-action-choice label { position: relative; min-width: 0; cursor: pointer; }
.call-action-choice input { position: absolute; inset: 0; margin: 0; padding: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.call-action-choice span { display: flex; align-items: center; justify-content: center; min-height: 44px; padding: 8px; border: 1px solid transparent; border-radius: 6px; color: var(--muted); font-size: 13px; text-align: center; pointer-events: none; }
.call-action-choice input:checked + span { background: var(--paper); border-color: var(--blue); color: var(--blue-hover); box-shadow: 0 1px 3px #081d4910; }
.call-action-choice input:focus-visible + span { outline: 3px solid var(--blue); outline-offset: 2px; }
.call-action-choice label:hover span { color: var(--blue-hover); }
.call-neris-column .neris-type-tree { min-height: 200px; max-height: 330px; }
.call-attendance-columns { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: 20px; align-items: start; }
.call-attendance-columns > div { min-width: 0; }
.call-attendance-columns .attendance-panel { padding: 0; overflow: visible; border: 1px solid var(--line); border-radius: var(--radius-control); background: var(--canvas); }
.call-attendance-columns .attendance-panel-header { border-radius: var(--radius-control) var(--radius-control) 0 0; }
.call-attendance-columns .attendance-panel-header h3 { margin: 0; }
.call-attendance-columns .attendance-scroll { max-height: 520px; min-height: 100px; }
.attendance-panel-subheading { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 14px 16px 0; }
.attendance-panel-subheading h4 { margin: 0; font-size: 13px; }
.member-picker-label { margin: 14px 0 6px; }
.member-picker { position: relative; }
.member-picker-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; }
.member-picker-row input { width: 100%; min-height: 44px; font-size: 14px; }
.member-picker-row button { min-width: 64px; }
.member-picker-options { position: absolute; top: calc(100% + 4px); left: 0; right: 0; z-index: 20; max-height: 260px; overflow: auto; padding: 4px; border: 1px solid var(--field-line); border-radius: var(--radius-control); background: var(--paper); box-shadow: var(--shadow); }
.member-picker-option { cursor: pointer; min-height: 40px; padding: 9px 10px; font-size: 13px; border-radius: 4px; overflow-wrap: anywhere; }
.member-picker-option:hover, .member-picker-option[aria-selected=true] { background: var(--soft); color: var(--blue-hover); }
.member-picker-status:empty { display: none; }
.call-report-change-reason { padding-top: 4px; }
@container (max-width: 680px) { .call-neris-columns, .call-attendance-columns { grid-template-columns: 1fr; } }
@media (max-width: 700px) {
  .call-report-header, .call-report-footer { padding: 12px; }
  .call-report-header h2 { font-size: 17px; }
  .call-report-scroll { padding: 12px; }
  .call-report-footer .form-actions button { flex: 1 1 auto; }
  .call-overview { padding: 12px; }
  .call-overview dl { grid-template-columns: max-content minmax(0,1fr); }
  .call-report-section-body { padding: 14px; }
  .call-neris-columns, .call-attendance-columns { grid-template-columns: 1fr; }
  .call-report-accordion > summary { padding: 14px; }
  .call-attendance-columns .attendance-scroll { max-height: 420px; }
}
/* Station announcements use the same centered rich text in the editor and display. */
.station-message-editor { min-height: 240px; padding: 28px; border: 1px solid var(--line, #cbd5e1); border-radius: 8px; text-align: center; background: #fff; color: #17283b; overflow-wrap: anywhere; }
.station-message-editor:focus-visible { outline: 3px solid #267496; outline-offset: 2px; }
.station-message-editor ul, .station-message-editor ol { list-style-position: inside; padding-inline: 0; }
