/*
  IC Command Board
  File: css/v20-consolidated.css
  Purpose: Later command-board styling overrides preserved for current behavior.
  Note: This file name is historical; planning and cleanup should stay version-agnostic.
*/
#mapTabsV20{position:absolute;top:12px;left:12px;z-index:30;display:flex;gap:6px;background:#0d1318cc;border:1px solid var(--line);border-radius:10px;padding:6px;box-shadow:0 8px 24px rgba(0,0,0,.45)}
#mapTabsV20 .btn{padding:6px 12px;font-weight:700;}
#mapTabsV20 .btn.active{background:var(--accent-d);border-color:var(--accent);color:#fff;}
.pin{background:transparent!important;z-index:5;}
.pin::before,.pin::after{display:none!important;content:none!important;}
.pin .v20-status-halo{position:absolute;left:50%;top:0;width:44px;height:44px;transform:translate(-50%,-7px);border-radius:999px;background:var(--ok);box-shadow:0 2px 8px rgba(0,0,0,.45);z-index:0;border:0 solid transparent;}
.pin.status-enroute .v20-status-halo{background:var(--warn);}
.pin.status-onscene .v20-status-halo{background:var(--bad);}
.pin.status-relocating .v20-status-halo{background:var(--accent);}
.pin.status-available .v20-status-halo{background:var(--ok);}
.pin .dot{position:relative;z-index:1;outline:none!important;}
.pin .tag{position:relative;z-index:2;}
.pin .unit-call-banner{position:relative;z-index:3;margin-top:2px;background:#ff2d2dcc;color:#fff;font-size:10px;font-weight:700;letter-spacing:.2px;padding:1px 6px;border-radius:4px;white-space:nowrap;border:1px solid #ffffff66;box-shadow:0 1px 4px rgba(0,0,0,.45);}
.pin.selected .dot{outline:none!important;}
.pin.selected .v20-status-halo{width:50px;height:50px;transform:translate(-50%,-10px);border:5px solid var(--sel);animation:v20SelectedPulse 1.7s ease-in-out infinite;}
@keyframes v20SelectedPulse{0%,100%{box-shadow:0 0 0 0 rgba(255,210,74,.34),0 2px 8px rgba(0,0,0,.45);}50%{box-shadow:0 0 0 8px rgba(255,210,74,.08),0 2px 8px rgba(0,0,0,.45);}}
.callStatusBtns{display:flex;gap:5px;flex-wrap:wrap;margin-top:5px;}
.callStatusBtns .btn{padding:3px 7px;font-size:11px;}
#relocateScrimV20{position:fixed;inset:0;background:#000a;display:none;align-items:center;justify-content:center;z-index:260;}
#relocateModalV20{background:var(--panel);border:1px solid var(--line);border-radius:10px;width:440px;max-width:94vw;padding:16px;box-shadow:0 20px 60px rgba(0,0,0,.65);}
#relocateModalV20 h3{margin:0 0 12px;letter-spacing:.5px;}
#relocateModalV20 .actions{display:flex;gap:8px;justify-content:flex-end;margin-top:14px;}
#relocateModalV20 .hintText{font-size:12px;color:var(--ink-dim);margin-top:4px;}
#rightLegend details summary{cursor:pointer;font-weight:700;color:var(--ink-dim);}

/* ---- pre-event cosmetics (CSS-only, reversible) ---- */
/* v51: Enroute is now visible and highlighted immediately when a unit is assigned. */
/* Call-card summary fields: shrink ISS / Call-Report, give Nature / Disposition the room */
.callSummaryFields{grid-template-columns:0.7fr 1.5fr;}
/* Related checkboxes on one row, single caption beneath */
.callRelated{display:flex;flex-wrap:wrap;align-items:center;gap:14px;}
.callRelated .relchk{margin:0;white-space:nowrap;}
/* Admin-only controls + version: hidden in the packaged Command build, shown in dev (body.ic-packaged set by the build script) */
body.ic-packaged .admin{display:none!important;}
body.ic-packaged #topbar .brand small{display:none!important;}

/* restore scroll on the Unit Status list (base.css had forced overflow:visible/hidden) */
#unitStatusList{overflow:auto!important;min-height:0!important;}
#side.unit-detail-open #unitStatusList{overflow:auto!important;}

/* Admin toggle: hide admin tools + version until Admin is pressed (default off) */
.btn.admin{display:none!important;}
body.admin-on .btn.admin{display:inline-block!important;}
#topbar .brand small{display:none;}
body.admin-on #topbar .brand small{display:none!important;}
#btnAdmin.active,#btnAdmin[aria-pressed="true"]{background:#2d6cdf;color:#fff;border-color:#2d6cdf;}
/* Unit Status Inside/Outside/All filter */
.statusHd{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.statusFilter{display:inline-flex;gap:2px;}
.statusFilter .sfBtn{font:inherit;font-size:10px;letter-spacing:.3px;padding:1px 7px;border:1px solid var(--line);background:var(--panel);color:var(--ink-dim);border-radius:3px;cursor:pointer;text-transform:uppercase;}
.statusFilter .sfBtn.active{background:#2d6cdf;color:#fff;border-color:#2d6cdf;}

.pin.pin-hidden{display:none;}                 /* off the map, not click/drag-able */
/* v46 dedication cleanup: the old recrow-talent flag was removed; gray now follows active dedication tiering. */
.recrow.recrow-ded-gray .rank,
.recrow.recrow-ded-gray .cs,
.recrow.recrow-ded-gray .dist{opacity:.45;}
.recrow.recrow-ded-gray .btn.primary{opacity:.7;}
.unitstatusgrid .usr.usr-dedicated-active .ucell{opacity:.55;}
.unitstatusgrid .usr.usr-dedicated-active .unitname::after{content:" DED";font-family:var(--sans);font-size:9px;letter-spacing:.5px;color:var(--ink-dim);margin-left:4px;}
/* ---- v42 header: grouped + flexed for varied monitor widths ---- */
#topbar{flex-wrap:wrap;row-gap:6px;}
#topbar .tb-group{display:inline-flex;align-items:center;gap:8px;}
#topbar .tb-brand{order:0;}
#topbar #phaseToggleV40{order:1;margin:0 10px;padding-left:12px;border-left:1px solid var(--line);}
#topbar .tb-log{order:2;}
#topbar .tb-load{order:3;margin:0 14px;}
#topbar #btnAddUnit{order:4;}
#topbar .spacer{order:5;}
#topbar .tb-admin{order:6;}            /* Admin-gated bracket: Import/Export/Map Pins */
#topbar #btnAdmin{order:7;margin-left:8px;}  /* the toggle that reveals the bracket */

/* neutered filter button: visible but inert when its side has no units */
.statusFilter .sfBtn.sf-empty{opacity:.35;pointer-events:none;}

/* Compact Load Map selector; long selected venue names truncate while dropdown remains readable. */
#venueSel{width:120px;max-width:135px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
/* v43: show common-place alias as context only after section resolution. */
.callLocContext{margin-top:2px;font-size:11px;line-height:1.2;color:var(--ink-dim);font-weight:400;}
.callLocGuide{margin-top:1px;font-size:10.5px;line-height:1.2;color:var(--ink-dim);font-weight:400;font-style:italic;}

/* v44: Parking-tab pin movement control. Separate right-justified section, same visual height family as the map tabs. */
.pinMoveToggle{display:inline-flex;align-items:center;gap:5px;color:var(--ink);font-size:12px;font-weight:700;white-space:nowrap;background:#0d1318cc;border:1px solid var(--line);border-radius:10px;padding:6px;box-shadow:0 8px 24px rgba(0,0,0,.45);}
.pinMoveDock{position:absolute;top:12px;right:12px;z-index:31;}
.pinMoveToggle[hidden]{display:none!important;}
.pinMoveToggle .pinMoveLabel{color:var(--ink-dim);font-size:11px;letter-spacing:.2px;margin:0 2px 0 1px;}
.pinMoveToggle .pinModeBtn{height:31px;padding:5px 10px;border-radius:6px;border:1px solid var(--line);background:var(--panel2);color:var(--ink);font-family:var(--font);font-size:12px;font-weight:700;line-height:1;}
.pinMoveToggle .pinModeBtn:hover{border-color:var(--accent-d);}
.pinMoveToggle .pinModeBtn.active{background:var(--accent-d);border-color:var(--accent);color:#fff;}
.pinMoveToggle.move-on .pinModeBtn[data-pin-mode="move"]{border-color:var(--warn);box-shadow:0 0 0 1px #f5a62333 inset;}

/* v44 header space: Event Start uses time-only visible input. Underlying datetime storage stays hidden. */
#phaseToggleV40 .phaseStartTimeInput{width:70px;background:var(--panel2);border:1px solid var(--line);color:var(--ink);border-radius:5px;padding:2px 4px;font-size:11px;}
#phaseToggleV40 .phaseStartHidden{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;}

/* v44: compact grouped admin controls in the header. */
#topbar .tb-label{font-size:11px;color:var(--ink-dim);letter-spacing:.5px;text-transform:uppercase;margin-right:2px;}
#topbar .tb-units,#topbar .tb-event{gap:5px;padding-left:8px;border-left:1px solid var(--line);}
#topbar .tb-units.admin,#topbar .tb-event.admin,#topbar .tb-load.admin{display:none!important;}
body.admin-on #topbar .tb-units.admin,body.admin-on #topbar .tb-event.admin,body.admin-on #topbar .tb-load.admin{display:inline-flex!important;}
#topbar .tb-event .btn,#topbar .tb-units .btn{padding-left:9px;padding-right:9px;}
#topbar #btnResetEvent{border-color:#5c2b2b;}
#topbar #btnResetEvent:hover{border-color:var(--bad);color:var(--bad);}
/* v44: Log modal report/action layout. */
#logModal .logActions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
#logModal .logActionSpacer{flex:1 1 auto;min-width:16px;}
#cmdSumModal .reportPre{white-space:pre-wrap;font-family:var(--mono);font-size:12px;line-height:1.35;background:var(--panel2,#111a22);border:1px solid var(--line,#26333d);border-radius:8px;padding:10px;max-height:58vh;overflow:auto;}
#cmdSumModal .reportTable th,#cmdSumModal .reportTable td{vertical-align:top;}
#cmdSumModal .reportTable td.notes{max-width:280px;}
#topbar .tb-units{order:6;}
#topbar .tb-event{order:7;}
#topbar #btnAdmin{order:8;}


/* v44: Autosave status lives in the Event Log modal instead of the header. */
#logModal .logSaveStatus{margin:0 0 10px;text-align:left;font-size:11px;color:var(--ink-dim);letter-spacing:.2px;}

/* v44 header/control refinements */
#topbar #btnAdmin{min-width:82px;}
#topbar .tb-load{margin-right:0;}
#topbar .spacer{min-width:8px;}
#topbar .tb-units{padding-left:8px;border-left:1px solid var(--line);} /* same section break as Event */
#topbar .tb-event{padding-left:8px;border-left:1px solid var(--line);}
#topbar .tb-log{margin-left:8px;margin-right:8px;}
#topbar #btnResetEvent{color:var(--bad)!important;border-color:var(--bad)!important;background:var(--panel2)!important;}
#topbar #btnResetEvent:hover{background:#3a1b1b!important;}
#phaseToggleV40 .phaseStartDisplay{min-width:54px;padding:4px 8px;font-family:var(--mono);text-align:center;}
#phaseToggleV40 .phaseStartPickerHidden{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;}

/* v44 Log modal close/header and destructive buttons */
#logModal .logModalHd{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 6px;}
#logModal .logX{background:transparent;border:0;color:var(--ink-dim);font-size:22px;line-height:1;cursor:pointer;padding:0 2px;}
#logModal .logX:hover{color:var(--ink);}
#logClear{color:var(--bad)!important;border-color:var(--bad)!important;background:var(--panel2)!important;}
#logClear:hover{background:#3a1b1b!important;}

/* v44 active call action layout */
.callHeaderActions{display:flex;flex-direction:column;align-items:flex-end;gap:5px;min-width:max-content;}
.callTopActions,.callDeleteRow{display:flex;justify-content:flex-end;gap:5px;}
.callDeleteBtn{color:var(--bad)!important;border-color:var(--bad)!important;background:var(--panel2)!important;}
.callDeleteBtn:hover{background:#3a1b1b!important;}
.callRelated{display:grid!important;grid-template-columns:minmax(100px,1fr) minmax(70px,1fr) minmax(85px,1fr);column-gap:16px;align-items:center;width:100%;}
.callRelated .relchk:first-child{justify-self:start;}
.callRelated .relchk:nth-child(2),.callRelated .relchk:nth-child(3){justify-self:center;}

/* v44 Call Summary preview table sizing */
#cmdSumModal .callSummaryTable{table-layout:fixed;width:100%;}
#cmdSumModal .callSummaryTable col.iss{width:54px;}
#cmdSumModal .callSummaryTable col.report{width:124px;}
#cmdSumModal .callSummaryTable col.units{width:110px;}
#cmdSumModal .callSummaryTable col.location{width:88px;}
#cmdSumModal .callSummaryTable col.dispo{width:auto;}
#cmdSumModal .callSummaryTable col.notes{width:auto;}
#cmdSumModal .callSummaryTable th,#cmdSumModal .callSummaryTable td{white-space:normal;word-break:break-word;}
#topbar .tb-units .tb-label{order:0;}
#topbar .tb-units #btnAddUnit{order:1;}
#topbar .tb-units #btnRoster{order:2;}


/* v44 refinement pass: header spacing, selected-state consistency, softer danger buttons. */
#topbar{column-gap:10px;}
#topbar .spacer{display:none!important;flex:0 0 0!important;width:0!important;min-width:0!important;}
#topbar .tb-log{margin-left:24px!important;margin-right:24px!important;}
#topbar .tb-load{margin-right:0!important;}
#topbar .tb-units,#topbar .tb-event{padding-left:10px!important;border-left:1px solid var(--line)!important;margin-left:0!important;}
#topbar .tb-units{order:5!important;}
#topbar .tb-event{order:6!important;}
#topbar #btnAdmin{order:7!important;}
#btnAdmin.active,#btnAdmin[aria-pressed="true"],.statusFilter .sfBtn.active{background:var(--accent-d)!important;border-color:var(--accent)!important;color:#fff!important;}
:root{--danger-soft:rgba(248,113,113,.85);--danger-soft-bg:#27191b;}
#topbar #btnResetEvent,#logClear,.callDeleteBtn{color:var(--danger-soft)!important;border-color:var(--danger-soft)!important;background:var(--panel2)!important;font-weight:600!important;}
#topbar #btnResetEvent:hover,#logClear:hover,.callDeleteBtn:hover{background:var(--danger-soft-bg)!important;}
#phaseToggleV40 .phaseStartTimeInput{width:58px!important;min-width:58px!important;height:28px;box-sizing:border-box;font-family:var(--mono);text-align:center;}
#phaseToggleV40 .phaseStartTimeInput::-webkit-calendar-picker-indicator{opacity:.75;cursor:pointer;}
#phaseToggleV40 .phaseStartDisplay,#phaseToggleV40 .phaseStartPickerHidden{display:none!important;}

/* v44 current refinement: right-justified Advanced, balanced admin reveal spacing, 24-hour Event Start text field. */
#topbar .spacer{display:block!important;flex:1 1 auto!important;width:auto!important;min-width:12px!important;order:6!important;}
#topbar .tb-brand{order:0!important;}
#topbar #phaseToggleV40{order:1!important;}
#topbar .tb-log{order:2!important;margin-left:24px!important;margin-right:24px!important;}
body.admin-on #topbar .tb-log{margin-left:12px!important;margin-right:12px!important;}
#topbar .tb-load{order:3!important;margin-left:0!important;margin-right:0!important;}
#topbar .tb-units{order:4!important;padding-left:10px!important;border-left:1px solid var(--line)!important;margin-left:0!important;}
#topbar .tb-event{order:5!important;padding-left:10px!important;border-left:1px solid var(--line)!important;margin-left:0!important;}
#topbar #btnAdmin{order:7!important;margin-left:10px!important;min-width:88px;}
#btnAdmin.active,#btnAdmin[aria-pressed="true"],.statusFilter .sfBtn.active{background:var(--accent-d)!important;border-color:var(--accent)!important;color:#fff!important;box-shadow:0 0 0 1px rgba(57,192,237,.25) inset;}

#phaseToggleV40 .phaseStartTextInput{width:50px;min-width:50px;height:28px;box-sizing:border-box;background:var(--panel2);border:1px solid var(--line);color:var(--ink);border-radius:5px;padding:2px 4px;font:11px var(--mono);text-align:center;}
#phaseToggleV40 .phaseStartTextInput:focus{outline:none;border-color:var(--accent);}
#phaseToggleV40 .phaseStartPickerBtn{width:28px;height:28px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:13px;}
#phaseToggleV40 .phaseStartTimePicker{position:absolute!important;width:1px!important;height:1px!important;opacity:.01!important;pointer-events:none!important;}
#phaseToggleV40 .phaseStartTimeInput{display:none!important;}

/* Close is a normal close action, not destructive. Use amber on hover; Delete stays red. */
.callTopActions [data-clear]:hover{border-color:var(--warn)!important;color:var(--warn)!important;background:rgba(245,166,35,.10)!important;}

/* Keep destructive buttons softer than full alert red. */
:root{--danger-soft:rgba(248,113,113,.82);--danger-soft-bg:#27191b;}
#topbar #btnResetEvent,#logClear,.callDeleteBtn{color:var(--danger-soft)!important;border-color:var(--danger-soft)!important;background:var(--panel2)!important;font-weight:500!important;}
#topbar #btnResetEvent:hover,#logClear:hover,.callDeleteBtn:hover{background:var(--danger-soft-bg)!important;}


/* v44: Version stays hidden on-page; Advanced shortens brand label only. */
#topbar .brand small, body.admin-on #topbar .brand small{display:none!important;}


/* Phase 1 nonfunctional cleanup: styles moved out of inline HTML without changing selectors/behavior. */
.venue-select{width:120px;max-width:135px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.row-spacer-top{margin-top:8px;}
.section-count{color:var(--accent);}
.zoom-fit{font-size:12px;}
.roster-scrim{position:fixed;inset:0;background:#000a;display:none;align-items:center;justify-content:center;z-index:100;}
.roster-modal{background:var(--panel);border:1px solid var(--line);border-radius:10px;width:560px;max-width:94vw;max-height:88vh;display:flex;flex-direction:column;padding:16px;box-shadow:0 20px 60px rgba(0,0,0,.6);}
.roster-title{margin:0 0 4px;letter-spacing:.5px;}
.roster-help{font-size:12px;color:var(--ink-dim);margin-bottom:10px;}
.roster-text{width:100%;height:120px;background:var(--panel2);border:1px solid var(--line);color:var(--ink);border-radius:6px;padding:8px;font-family:var(--mono);font-size:13px;}
.roster-parse-row{margin:10px 0;}
.roster-results{overflow:auto;flex:1 1 auto;}
.roster-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:12px;}

.responds-field{font-size:13px;}
.responds-checkbox{margin-right:6px;vertical-align:middle;}
.muted-text{color:var(--ink-dim);}
.derived-text{font-size:12px;color:var(--ink-dim);}
.log-title{margin:0;letter-spacing:.5px;}

/* v52 status colors: enroute=yellow, onscene=orange, atpatient=red, transferring=amber (available stays green) */
.statuspill.status-enroute{background:var(--sel);color:#231700;}
.statuspill.status-onscene{background:#ff7a1a;color:#231700;}
.statuspill.status-atpatient{background:var(--bad);color:#fff;}
.statuspill.status-transferring{background:var(--warn);color:#231700;}
.pin.status-enroute .v20-status-halo{background:var(--sel);}
.pin.status-onscene .v20-status-halo{background:#ff7a1a;}
.pin.status-atpatient .v20-status-halo{background:var(--bad);}
.pin.status-transferring .v20-status-halo{background:var(--warn);}
.callStatusBtns .btn.on-enroute{background:var(--sel);border-color:var(--sel);color:#231700;font-weight:700;}
.callStatusBtns .btn.on-onscene{background:#ff7a1a;border-color:#ff7a1a;color:#231700;font-weight:700;}
.callStatusBtns .btn.on-atpatient{background:var(--bad);border-color:var(--bad);color:#fff;font-weight:700;}
.callStatusBtns .btn.on-transferring{background:var(--warn);border-color:var(--warn);color:#231700;font-weight:700;}
.callStatusBtns .btn.on-available{background:var(--ok);border-color:var(--ok);color:#062712;font-weight:700;}
/* unit-details Delete: reads as delete at rest, full red border + text on hover */
#sDelete{color:rgba(248,113,113,.82)!important;border-color:rgba(248,113,113,.82)!important;background:var(--panel2)!important;font-weight:600!important;}
#sDelete:hover{border-color:var(--bad)!important;color:var(--bad)!important;background:#27191b!important;}


/* v48 UI + guardrails + append-only notes */
#topbar .tb-sync-toggle{order:6;display:inline-flex;align-items:center;gap:8px;font-size:12px;white-space:nowrap;margin-left:8px;}
#topbar .tb-sync-toggle label{display:inline-flex;align-items:center;gap:3px;color:var(--ink-dim);}
body.admin-on #topbar .tb-sync-toggle{display:none!important;}
.callDeleteBtn,.softDanger{color:var(--ink)!important;border-color:var(--line)!important;background:var(--panel2)!important;font-weight:500!important;}
.callDeleteBtn:hover,.softDanger:hover{color:var(--bad)!important;border-color:var(--bad)!important;background:var(--danger-soft-bg)!important;}
.callNotesStack{margin-top:8px;border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.02);padding:7px;}
.callNotesLabel{font-size:11px;color:var(--ink-dim);letter-spacing:.45px;text-transform:uppercase;margin-bottom:5px;}
.callNotesLabel span{text-transform:none;letter-spacing:0;opacity:.85;}
.callNoteEntries{display:flex;flex-direction:column;gap:5px;margin-bottom:6px;}
.callNoteEntry{position:relative;border:1px solid var(--line);border-radius:7px;background:var(--panel);padding:6px 30px 6px 7px;}
.callNoteEntry.locked{opacity:.68;}
.callNoteEntry.editing{padding-right:7px;border-color:var(--accent);}
.callNoteMeta{font-size:10px;color:var(--ink-dim);margin-bottom:3px;}
.callNoteText{white-space:pre-wrap;font-size:12px;color:var(--ink);line-height:1.35;}
.callNoteEditBtn{position:absolute;right:5px;top:5px;border:1px solid var(--line);background:var(--panel2);color:var(--ink-dim);border-radius:5px;cursor:pointer;font-size:12px;line-height:1;padding:3px 5px;}
.callNoteEditBtn:hover{color:var(--ink);border-color:var(--accent);}
.callNoteEditBtn:disabled{opacity:.4;cursor:not-allowed;}
.callNoteEditInput{width:100%;min-height:54px;box-sizing:border-box;background:var(--panel2);border:1px solid var(--line);border-radius:6px;color:var(--ink);font-family:var(--font);font-size:12px;padding:6px;}
.callNoteEditActions{display:flex;gap:6px;justify-content:flex-end;margin-top:5px;}
.callNoteAppendInput{margin-top:0!important;}
.callNoteHint,.callNoteEmpty{font-size:10px;color:var(--ink-dim);}
.callNoteLocked{color:var(--warn);font-weight:700;}
.pinMoveToggle.pinMoveDeferred{opacity:.55;filter:grayscale(.3);}
.pinMoveToggle.pinMoveDeferred .pinModeBtn[data-pin-mode="move"],.deferredFeature{opacity:.45!important;cursor:not-allowed!important;}
.statusbtns .btn:disabled,#sBack:disabled{opacity:.45;cursor:not-allowed;filter:grayscale(.35);}
#sClose{font-weight:700;}
body.icb-role-viewer #btnAdmin{display:none!important;}

.callNoteEditTypeRow{display:flex;align-items:center;gap:6px;margin-bottom:5px;font-size:11px;color:var(--ink-dim);}
.callNoteEditTypeRow select{background:var(--panel2);border:1px solid var(--line);border-radius:6px;color:var(--ink);font-size:12px;padding:3px 5px;}

/* v48 fix 1: mobile rollups, form alignment, hover feedback, note input spacing */
#dispatch .dispatchHd,.statusHd{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.paneRollBtn{padding:2px 7px!important;font-size:12px!important;line-height:1.2!important;min-width:28px;}
body.left-pane-collapsed #leftPane{flex:0 0 42px!important;min-width:42px!important;overflow:hidden!important;}
body.left-pane-collapsed #leftPane #dispatch{height:100%;border-bottom:0!important;}
body.left-pane-collapsed #leftPane #dispatch .dispatchHd{height:100%;writing-mode:vertical-rl;text-orientation:mixed;justify-content:flex-start;padding:10px 6px;}
body.left-pane-collapsed #leftPane #dispatch .dwrap,body.left-pane-collapsed #leftPane #activeCallsPanel{display:none!important;}
body.left-pane-collapsed #toggleLeftPane{writing-mode:horizontal-tb;margin-top:8px;}
body.right-pane-collapsed #side{flex:0 0 44px!important;min-width:44px!important;overflow:hidden!important;}
body.right-pane-collapsed #side #unitStatusBoard{height:100%;border-bottom:0!important;}
body.right-pane-collapsed #side .statusHd{height:100%;writing-mode:vertical-rl;text-orientation:mixed;justify-content:flex-start;padding:10px 6px;}
body.right-pane-collapsed #side .statusFilter,body.right-pane-collapsed #unitStatusList,body.right-pane-collapsed #sideHd,body.right-pane-collapsed #sideBody,body.right-pane-collapsed #rightLegend{display:none!important;}
body.right-pane-collapsed #toggleRightPane{writing-mode:horizontal-tb;margin-top:8px;}
.btn.primary:hover,#callGo:hover{border-color:var(--accent)!important;filter:brightness(1.12);box-shadow:0 0 0 1px rgba(57,192,237,.35) inset,0 0 12px rgba(57,192,237,.18);}
.field input[type="checkbox"],.field input[type="radio"],.relchk input[type="checkbox"]{width:auto!important;min-width:0!important;padding:0!important;margin:0 6px 0 0!important;vertical-align:middle;}
.responds-field{display:flex;align-items:flex-start;gap:6px;font-size:13px;line-height:1.35;}
.responds-field input{flex:0 0 auto;margin-top:2px!important;}
.ded-radio-label{display:flex!important;align-items:flex-start;gap:6px;font-size:13px!important;line-height:1.35;text-transform:none!important;letter-spacing:normal!important;color:var(--ink)!important;margin-bottom:7px!important;}
.ded-radio-label input{flex:0 0 auto;margin-top:2px!important;}
.callSummaryFields .callNoteInput{font-size:11.5px;padding-left:6px;padding-right:6px;}
.callSummaryFields .callNoteInput::placeholder{font-size:10.5px;}
.callNotesStack{padding-bottom:10px!important;}
.callNoteHint{display:block;margin-top:4px;line-height:1.25;padding-left:2px;}
.callNoteAppendInput{margin-bottom:2px!important;}
.callHeaderActions{display:flex;flex-direction:column;align-items:flex-end;gap:4px;}
.callTopActions{display:flex;gap:4px;align-items:center;}
.callLockBtn{padding:3px 7px!important;font-size:12px!important;}
.callLockBtn.lockedSelf{border-color:var(--accent)!important;background:var(--accent-d)!important;color:#fff!important;}
.callRecordLockNotice{margin-top:5px;font-size:11px;color:var(--warn);font-weight:700;}
.activecallcard.recordLockedOther input,.activecallcard.recordLockedOther textarea,.activecallcard.recordLockedOther select{pointer-events:none!important;opacity:.55!important;}
.activecallcard.recordLockedOther .callNoteEditBtn,.activecallcard.recordLockedOther .callSmallBtn:not([data-view]){pointer-events:none!important;opacity:.45!important;}

/* v48 fix 2: role gating, rollup placement, active-call edit panel, and mobile polish */
#zFit{text-transform:none!important;min-width:42px;}
#leftPane .dispatchHd,#leftPane .acHd{padding-left:10px!important;box-sizing:border-box;}
#leftPane .dispatchHd > span:first-child,#leftPane .acHd > span:first-child{margin-left:2px;}
.statusHd{justify-content:flex-start!important;gap:6px!important;}
.statusHd .statusTitle{margin-left:1px;}
.statusHd .statusFilter{margin-left:auto;}
.paneRollBtn{min-width:24px!important;padding:1px 6px!important;font-size:11px!important;line-height:1.15!important;}
body.right-pane-collapsed #side .statusHd{align-items:center;}
body.right-pane-collapsed #side .statusTitle{margin-left:0;}
body.left-pane-collapsed #leftPane .dispatchHd{padding-left:6px!important;}
.callEditPanel{margin:7px 0 6px;padding:6px 7px;border:1px solid var(--accent-d);border-radius:7px;background:rgba(57,192,237,.08);display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;color:var(--ink-dim);}
.callEditPanel label{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--ink-dim);text-transform:uppercase;letter-spacing:.35px;}
.callEditPanel select{background:var(--panel2);border:1px solid var(--line);border-radius:6px;color:var(--ink);font-size:12px;padding:3px 6px;}
.callSummaryFields{grid-template-columns:1fr 1.25fr!important;}
.callSummaryFields .callNoteInput::placeholder{font-size:9.8px!important;}
.recrow .dist:empty{display:none!important;}
#callGo{cursor:pointer;transition:filter .12s ease,box-shadow .12s ease,transform .12s ease;}
#callGo:hover{transform:translateY(-1px);}
body.icb-role-viewer #btnAdmin{display:none!important;}

/* v49 operations-state refinement: OOS and unit edit locks */
.statuspill.status-oos{background:#52616f;color:#f5f7fa;}
.pin.status-oos .v20-status-halo{background:#52616f;}
.statusbtns .btn.on-oos,.callStatusBtns .btn.on-oos{background:#52616f;border-color:#748392;color:#fff;font-weight:700;}
.unitLockNotice{margin-top:6px;font-size:11px;color:var(--warn);border:1px solid rgba(255,184,107,.45);border-radius:6px;padding:4px 6px;background:rgba(255,184,107,.08);}
#availablePromptScrim{position:fixed;inset:0;background:rgba(0,0,0,.62);display:flex;align-items:center;justify-content:center;z-index:400;}
.availablePromptModal{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;box-shadow:0 24px 70px rgba(0,0,0,.6);width:min(420px,94vw);}
.availablePromptModal h3{margin:0 0 6px;font-size:16px;}
.availablePromptModal p{margin:0 0 12px;color:var(--ink-dim);font-size:12px;}
.availablePromptActions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;}

/* v50 Nearby Call in the Area: possible duplicate / active-call pass-through guard */
.nearbyCallAreaNotice{margin:6px 0 7px;padding:6px 8px;border:1px solid rgba(224,160,32,.55);border-radius:8px;background:rgba(224,160,32,.12);color:var(--ink);font-size:11px;line-height:1.25;}
.recrow .dist{white-space:nowrap;}


/* v51 fix 1: unit-status rollup arrow corner alignment */
.statusHd{position:relative;padding-left:34px!important;box-sizing:border-box;min-height:30px;}
#toggleRightPane{position:absolute;left:6px;top:5px;margin:0!important;}
body.right-pane-collapsed #toggleRightPane{position:static;margin-top:8px!important;}
body.right-pane-collapsed #side .statusHd{padding-left:6px!important;}


/* v51 UI refinements: call edit fields, closed-call edit, and 24-hour workflow */
.callEditHint{margin:6px 0;padding:5px 7px;border:1px dashed var(--line);border-radius:7px;background:rgba(255,255,255,.03);font-size:11px;color:var(--ink-dim);}
.callEditPanelStack{display:block;margin:7px 0 6px;}
.callEditPanelTop{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:6px;font-size:11px;color:var(--ink-dim);}
.callEditPanelTop b{color:var(--ink);letter-spacing:.3px;}
.callEditPanelTop span{font-size:10px;color:var(--warn);}
.callEditGrid,.closedEditGrid{display:grid;grid-template-columns:1fr 1fr;gap:6px;}
.callEditGrid label,.closedEditGrid label{display:flex;flex-direction:column;gap:3px;font-size:10px;color:var(--ink-dim);text-transform:uppercase;letter-spacing:.35px;}
.callEditGrid label.wide,.closedEditGrid label.wide{grid-column:1 / -1;}
.callEditGrid select,.callEditGrid input,.closedEditGrid select,.closedEditGrid input,.closedEditGrid textarea{width:100%;box-sizing:border-box;background:var(--panel2);border:1px solid var(--line);border-radius:6px;color:var(--ink);font-size:12px;padding:5px 6px;font-family:var(--font);}
.callEditGrid input[readonly]{opacity:.8;border-style:dashed;color:var(--ink-dim);}
.callEditGrid .muted{font-size:9px;color:var(--warn);text-transform:none;letter-spacing:0;margin-left:4px;}
.closedEditPanel{margin-top:8px;padding:8px;border:1px solid var(--accent-d);border-radius:8px;background:rgba(57,192,237,.08);}
.closedEditGrid textarea{min-height:66px;resize:vertical;}
.closedRelated{margin-top:7px;}
.closedEditActions{display:flex;gap:7px;justify-content:flex-end;margin-top:8px;flex-wrap:wrap;}
.callLockBtn.lockedSelf{background:var(--accent-d);border-color:var(--accent);color:#fff;font-weight:700;}

/* v51 hotfix: keep Unit Legend rolled up by default; renderLegend preserves user-opened state. */
#rightLegend .unitLegendDetails{margin-top:8px;}
#rightLegend .unitLegendDetails summary{cursor:pointer;font-weight:700;color:var(--ink-dim);list-style:none;}
#rightLegend .unitLegendDetails summary::-webkit-details-marker{display:none;}
#rightLegend .unitLegendDetails summary::before{content:'▸';display:inline-block;margin-right:6px;transition:transform .15s ease;}
#rightLegend .unitLegendDetails[open] summary::before{transform:rotate(90deg);}
#rightLegend .legendItems{margin-top:6px;}

/* v51 hotfix 2: active-call status buttons and related flags must stay on one row in the narrow dispatch pane. */
.callStatusBtns{display:flex!important;gap:3px!important;flex-wrap:nowrap!important;align-items:center!important;margin-top:5px!important;}
.callStatusBtns .btn{padding:3px 5px!important;font-size:10.5px!important;line-height:1.2!important;white-space:nowrap!important;min-width:0!important;}
.callRelated{display:flex!important;flex-wrap:nowrap!important;justify-content:space-between!important;align-items:center!important;gap:8px!important;width:100%!important;margin:8px 0 4px!important;}
.callRelated .relchk{display:inline-flex!important;align-items:center!important;gap:5px!important;margin:0!important;white-space:nowrap!important;font-size:12px!important;line-height:1.2!important;}
.callRelated .relchk input[type="checkbox"]{margin:0!important;flex:0 0 auto!important;}


/* v51 hotfix 3: compact active-call assigned-unit controls and cleaner call edit / flags. */
.activecallcard .units{display:flex!important;flex-direction:column!important;gap:7px!important;margin-top:6px!important;}
.callAssignedUnit{display:block!important;min-width:0!important;}
.callAssignedUnitName{font-family:var(--mono);font-weight:700;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.callAssignedUnitHist{font-size:12px;color:var(--ink-dim);}
.callStatusBtns{width:100%!important;max-width:100%!important;display:flex!important;gap:2px!important;flex-wrap:nowrap!important;align-items:stretch!important;margin-top:2px!important;overflow:hidden!important;}
.callStatusBtns .btn{flex:1 1 0!important;min-width:0!important;max-width:100%!important;display:flex!important;align-items:center!important;justify-content:center!important;text-align:center!important;padding:3px 2px!important;font-size:9.25px!important;line-height:1.05!important;letter-spacing:0!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:clip!important;border-radius:7px!important;}
.callRelated{padding-top:2px!important;}
.callRelated .relchk{font-size:11.25px!important;gap:4px!important;}
.callRelated .relchk input[type="checkbox"]{width:14px!important;height:14px!important;}
.manualAssignRow .manualAssignSel::placeholder{color:transparent!important;}


/* v51 hotfix 4: closed-call edit fit, centered actions, tighter active status pills. */
.closedEditGrid{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  gap:6px 8px!important;
  width:100%!important;
  max-width:100%!important;
  overflow:hidden!important;
}
.closedEditGrid label,
.callEditGrid label{
  min-width:0!important;
  max-width:100%!important;
}
.closedEditGrid select,
.closedEditGrid input,
.closedEditGrid textarea,
.callEditGrid select,
.callEditGrid input{
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
.closedEditGrid input[type="datetime-local"]{
  font-size:10.5px!important;
  padding:5px 4px!important;
}
.closedEditGrid .dateField{
  min-width:0!important;
}
.closedEditActions{
  justify-content:center!important;
  align-items:center!important;
  gap:9px!important;
  width:100%!important;
  padding-top:2px!important;
}
.closedEditActions .btn{
  flex:0 0 auto!important;
}
.callStatusBtns{
  display:grid!important;
  grid-template-columns:.92fr 1.08fr 1.22fr 1.42fr 1.08fr!important;
  gap:3px!important;
  width:100%!important;
  max-width:100%!important;
  align-items:stretch!important;
  overflow:visible!important;
}
.callStatusBtns .btn{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
  display:flex!important;
  justify-content:center!important;
  align-items:center!important;
  text-align:center!important;
  padding:3px 1px!important;
  font-size:9.5px!important;
  line-height:1.05!important;
  letter-spacing:-.1px!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:clip!important;
}
.callEditGrid .muted{
  color:var(--warn)!important;
}

/* v51 hotfix 5: 24-hour date/time text fields and closed-call action button borders. */
.callEditGrid .dt24Input,
.closedEditGrid .dt24Input{
  font-family:var(--mono)!important;
  letter-spacing:-.2px!important;
}
.closedEditGrid input[type="datetime-local"]{
  font-size:inherit!important;
  padding:5px 6px!important;
}
.closedEditActions .closedReopenBtn{
  border-color:var(--warn)!important;
}
.closedEditActions .closedCancelBtn{
  border-color:var(--bad)!important;
}
.closedEditActions .closedReopenBtn:hover{
  border-color:var(--warn)!important;
  box-shadow:0 0 0 1px rgba(245,166,35,.18) inset!important;
}
.closedEditActions .closedCancelBtn:hover{
  border-color:var(--bad)!important;
  box-shadow:0 0 0 1px rgba(255,91,91,.18) inset!important;
}

/* v51 hotfix 7: right pane title cleanup and hover-only closed-call action borders. */
#side.side-empty #unitStatusBoard{
  flex:1 1 auto!important;
  min-height:0!important;
  display:flex!important;
  flex-direction:column!important;
}
#side.side-empty #unitStatusList{
  flex:1 1 auto!important;
  max-height:none!important;
}
#side.side-empty #sideHd,
#side.side-empty #sideBody{
  display:none!important;
}
.closedEditActions .closedReopenBtn,
.closedEditActions .closedCancelBtn{
  border-color:var(--line)!important;
}
.closedEditActions .closedReopenBtn:hover{
  border-color:var(--warn)!important;
  box-shadow:0 0 0 1px rgba(245,166,35,.18) inset!important;
}
.closedEditActions .closedCancelBtn:hover{
  border-color:var(--bad)!important;
  box-shadow:0 0 0 1px rgba(255,91,91,.18) inset!important;
}

/* v51 hotfix 7: custom 24-hour event-start picker. */
.evtStartPickerMenu{
  position:fixed;
  z-index:220;
  width:220px;
  background:var(--panel);
  border:1px solid var(--accent-d);
  border-radius:10px;
  box-shadow:0 16px 45px rgba(0,0,0,.55);
  padding:10px;
  color:var(--ink);
}
.evtStartPickerMenu .espTitle{
  font-weight:800;
  letter-spacing:.5px;
  margin-bottom:8px;
}
.evtStartPickerMenu .espRow{
  display:flex;
  align-items:end;
  justify-content:center;
  gap:8px;
}
.evtStartPickerMenu label{
  display:flex;
  flex-direction:column;
  gap:3px;
  font-size:10px;
  color:var(--ink-dim);
  text-transform:uppercase;
  letter-spacing:.5px;
}
.evtStartPickerMenu select{
  width:72px;
  background:var(--panel2);
  color:var(--ink);
  border:1px solid var(--line);
  border-radius:6px;
  padding:6px;
  font:16px var(--mono);
}
.evtStartPickerMenu .espColon{
  font:800 20px var(--mono);
  padding-bottom:6px;
}
.evtStartPickerMenu .espActions{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  margin-top:10px;
}
