/* Banner vertical rhythm: the three children of .v018-persistent-banner — the
   DISPATCH:/ADMIN: label, the message, and the Expires stamp — are different
   font sizes and weights. align-items:center centres each BOX, but with
   inherited line-heights their line boxes differ in height, so the text inside
   them sits at different offsets and the bar reads as bottom- or top-heavy.
   One explicit line-height across all three makes them share a rhythm. */
/* Cape Rock Roleplay CAD v0.18.1.1 */
#connectionStatus::before{content:'●';display:inline-block;margin-right:6px;font-size:.75em;vertical-align:1px}
#connectionStatus.connection-ok::before{color:#4ecb71}#connectionStatus.connection-lost::before{color:#e05858}
.v018-banner-stack{position:sticky;left:0;right:0;top:var(--v018-banner-top,72px);z-index:1150;display:flex;flex-direction:column;gap:2px;pointer-events:none}.v018-persistent-banner{min-height:34px;display:flex;align-items:center;gap:10px;padding:6px 18px;line-height:1.25;border-bottom:1px solid var(--border,#3c4652);background:var(--panel,#161b22);box-shadow:0 2px 10px #0004;pointer-events:auto}.v018-admin-banner{font-weight:600}.v018-dispatch-banner{background:var(--panel-2,#202833)}.v018-persistent-banner small{white-space:nowrap;opacity:.8;line-height:1.25}.v018-banner-message{flex:1;min-width:0;margin:0;text-align:center;font-weight:800;line-height:1.25;white-space:normal;overflow-wrap:anywhere}.v018-banner-style-red{background:#b42318;color:#ffeb3b}.v018-banner-style-yellow{background:#ffd54f;color:#111}.v018-banner-style-green{background:#43a047;color:#111}.v018-banner-style-blue{background:#1e5aa8;color:#c7ccd1}.v018-banner-style-white{background:#fff;color:#111}.v018-banner-style-orange{background:#f57c00;color:#111}.v018-banner-style-magenta{background:#b000b5;color:#fff}.v018-banner-style-hazard{background:repeating-linear-gradient(135deg,#111 0 20px,#f2c300 20px 40px);color:#fff;text-shadow:0 1px 2px #000,0 0 4px #000}.v018-disabled-feature{opacity:.62;filter:grayscale(.35)}
@media(max-width:760px){.v018-health-grid,.v018-target-choices{grid-template-columns:1fr}.v018-banner-stack{top:56px}.v018-dispatch-alert-button{right:8px;top:66px}.v018-persistent-banner{padding:5px 9px}.v018-persistent-banner small{display:none}}

/* v0.18 user-persistent dispatch sizing */
.v018-grid-resizer{width:14px;cursor:col-resize;align-self:stretch;border-radius:7px;position:relative;touch-action:none;background:color-mix(in srgb,var(--line) 22%,transparent);border:1px solid color-mix(in srgb,var(--line) 65%,transparent)}
.v018-grid-resizer::after{content:"⋮";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:22px;font-weight:900;line-height:1}
.v018-grid-resizer:hover,.v018-grid-resizer.dragging{background:color-mix(in srgb,var(--accent) 18%,transparent);border-color:var(--accent)}.v018-grid-resizer:hover::after,.v018-grid-resizer.dragging::after{color:var(--accent)}
.dispatch-grid.v018-resizable-grid,.law-dispatch-grid.v018-resizable-grid{grid-template-columns:minmax(320px,var(--v018-left,57%)) 14px minmax(300px,1fr);gap:8px}
.v018-resizable-table{table-layout:fixed!important;min-width:720px}
.v018-resizable-table th{position:relative}
.v018-col-resizer{position:absolute;z-index:3;top:0;right:-6px;width:12px;height:100%;cursor:col-resize;touch-action:none;background:transparent}
.v018-col-resizer::after{content:"";position:absolute;right:5px;top:12%;bottom:12%;width:3px;border-radius:3px;background:color-mix(in srgb,var(--line) 85%,transparent)}
.v018-col-resizer:hover::after,.v018-col-resizer.dragging::after{background:var(--accent);width:4px}
.v018-unit-tag-inline{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}
.v018-unit-tag-chip{display:inline-flex;align-items:center;padding:2px 6px;border:1px solid var(--line);border-radius:999px;font-size:10px;font-weight:700;letter-spacing:.03em}
.v018-address-history-list{display:grid;gap:8px}
.v018-address-history-row{display:grid;grid-template-columns:minmax(110px,.7fr) minmax(180px,1.4fr) auto;gap:10px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:6px}
.v018-cross-readonly{border-left:3px solid var(--accent);padding-left:10px}
.activity-view-tabs{margin:8px 0 12px}
@media(max-width:980px){.dispatch-grid.v018-resizable-grid,.law-dispatch-grid.v018-resizable-grid{grid-template-columns:1fr;gap:12px}.v018-grid-resizer{display:none}.v018-col-resizer{display:none}}
.v018-response-recommendation{display:grid;gap:4px;padding:9px 10px;margin-bottom:10px;border:1px solid var(--line);border-radius:6px;background:rgba(255,255,255,.025)}
.v018-response-recommendation small{color:var(--muted)}

/* D-012 — units attached to a LINKED incident. Deliberately quieter than the
   incident's own Assigned Units: they belong to another incident and another
   dispatcher, and the panel fails at its job the moment someone mistakes one for
   a unit they can command. */
.linked-units-section-title{opacity:.85}
.linked-units-panel{border:1px dashed var(--border,#3c4652);border-radius:8px;padding:8px 10px;margin:0 0 10px}
.linked-units-panel>.muted{margin:0 0 8px;font-size:12px}
.linked-units-group+.linked-units-group{margin-top:8px;padding-top:8px;border-top:1px solid var(--border,#3c4652)}
.linked-units-origin{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:13px}
.linked-unit-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:4px 0}
.linked-unit-identity{display:flex;align-items:baseline;gap:8px;min-width:0}
.linked-unit-identity small{opacity:.75}

/* The ⚑ sits beside the priority pill in the call head. A row of its own above the
   head pushed the call number down and left a gap the owner noticed immediately. */
.law-call-head-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}

/* Active incident flags, shown beside the call number rather than a window away.
   Each carries its own configured colours, so the strip must not restyle them. */
.incident-flag-strip{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 10px}
.incident-flag-chip{display:inline-flex;align-items:baseline;gap:6px;padding:3px 10px;border-radius:999px;font-size:12px;line-height:1.35;max-width:100%}
.incident-flag-chip strong{white-space:nowrap}
.incident-flag-chip small{opacity:.85;overflow-wrap:anywhere}

/* Fire unit terminal: the ⚑ sits beside the status pill, mirroring the Law panel. */
.unit-assignment-head-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
