:root {
  --bg: #071015;
  --panel: #0d191f;
  --panel-2: #13252d;
  --line: #263941;
  --text: #edf4f5;
  --muted: #82969d;
  --accent: #ff6433;
  --accent-soft: rgba(255, 107, 53, .14);
  --cyan: #2ed3c6;
  --green: #55d98a;
  --yellow: #f2c94c;
  --red: #ff5d67;
  --blue: #4ba3ff;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
* { box-sizing: border-box; }
body { margin: 0; min-width: 1180px; height: 100vh; overflow: hidden; color: var(--text); background: radial-gradient(circle at 78% 0%, #17333b, transparent 32%), var(--bg); }
button, input { font: inherit; }
button { color: inherit; }
.app-shell { height: 100vh; display: flex; flex-direction: column; }
.topbar { position:relative;isolation:isolate;z-index:2000;flex:0 0 74px;height:74px;display:flex;align-items:center;padding:0 22px;overflow:visible;border-bottom:1px solid #2b4149;background:linear-gradient(90deg,rgba(7,16,21,.98),rgba(10,25,31,.96));box-shadow:0 10px 28px rgba(0,0,0,.22);backdrop-filter:blur(16px); }
.brand { display: flex; align-items: center; gap: 12px; min-width: 280px; }
.brand-mark { display: grid; place-items: center; width: 44px; height: 44px; overflow:hidden; color:transparent; background: url("/assets/meldkamer-logo.png?v=20260729-white") center/contain no-repeat; font-size:0; font-weight:950; filter:drop-shadow(0 5px 10px rgba(71,223,212,.24)); }
.brand strong { display: block; font-size: 14px; letter-spacing: .14em; }
.brand span { display: block; margin-top: 2px; color: var(--muted); font-size: 11px; }
.shift-stats { margin-left: auto; display: flex; align-items: center; gap: 20px; }
.shift-stats > div { display: grid; gap: 2px; }
.shift-stats span { color: var(--muted); font-size: 9px; letter-spacing: .12em; text-transform: uppercase; }
.shift-stats strong { font-size: 15px; font-variant-numeric: tabular-nums; white-space:nowrap; }
.shift-stats > div:nth-child(4) { min-width:0;max-width:180px; }
#workAreaStatus { display:block;overflow:hidden;text-overflow:ellipsis; }
.shift-stats .connection { display: flex; align-items: center; gap: 7px; color: var(--green); font-size: 11px; }
.connection i { width: 7px; height: 7px; border-radius: 50%; background: var(--green); box-shadow: 0 0 10px var(--green); }
.screen-menu-wrap { position: relative; margin-left: 18px; }
.screen-menu-button { display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid #3a5058;border-radius:5px;color:#dce8ea;background:#13242b;cursor:pointer; }
.screen-menu-button:hover,.screen-menu-button[aria-expanded="true"] { border-color:var(--cyan);background:#172d35; }
.screen-menu-button span { color:var(--cyan);font-size:10px; }
.screen-menu { position:absolute;top:calc(100% + 12px);right:0;z-index:2100;width:330px;max-height:calc(100vh - 96px);overflow-y:auto;padding:8px;border:1px solid #38515a;border-radius:8px;background:rgba(10,24,30,.98);box-shadow:0 22px 55px #000b;backdrop-filter:blur(18px); }
.screen-menu::before { content:"";position:absolute;right:22px;top:-6px;width:10px;height:10px;border-left:1px solid #38515a;border-top:1px solid #38515a;background:#0b191f;transform:rotate(45deg); }
.screen-menu-title { padding:9px 10px 12px;border-bottom:1px solid var(--line); }
.screen-menu-title strong,.screen-menu-title span { display:block; }.screen-menu-title strong { font-size:12px; }.screen-menu-title span { margin-top:3px;color:var(--muted);font-size:9px; }
.screen-menu > button { display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:10px;width:100%;padding:10px;border:0;border-radius:5px;background:transparent;text-align:left;cursor:pointer; }
.screen-menu > button:hover { background:#162b33; }.screen-menu > button i { display:grid;place-items:center;width:28px;height:28px;border:1px solid #38515a;border-radius:5px;color:var(--cyan);font-style:normal;background:#102229; }
.screen-menu > button span strong,.screen-menu > button span small { display:block; }.screen-menu > button span strong { font-size:11px; }.screen-menu > button span small { margin-top:2px;color:var(--muted);font-size:8px; }.screen-menu > button b { color:var(--accent);font-size:14px; }
.multiplayer-button { display:flex;align-items:center;gap:7px;margin-left:8px;padding:10px 12px;border:1px solid rgba(85,217,138,.35);border-radius:5px;color:var(--green);background:rgba(85,217,138,.07);cursor:pointer;white-space:nowrap; }
.multiplayer-button i { width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 9px currentColor; }.multiplayer-button.connected { color:#071116;background:var(--green);border-color:var(--green);font-weight:800; }.multiplayer-button.connected i { box-shadow:none; }
.multiplayer-button.singleplayer { color:#65d9f5;border-color:rgba(101,217,245,.45);background:rgba(101,217,245,.09); }
.pause-button { margin-left: 8px; padding: 10px 15px; border: 1px solid var(--line); border-radius: 5px; background: var(--panel-2); cursor: pointer; }
.pause-button.paused { color:#fff;border-color:#d14a5f;background:#a92539;box-shadow:0 0 0 1px #651523 inset; }
@media (max-width:1450px) {
  .topbar { padding-inline:10px; }
  .brand { min-width:225px;gap:8px; }
  .brand strong { font-size:12px; }
  .brand span { max-width:175px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px; }
  .shift-stats { gap:10px; }
  .shift-stats > div:nth-child(4) { max-width:116px; }
  .shift-stats strong { font-size:12px; }
  #workAreaStatus { font-size:10px; }
  .screen-menu-wrap { margin-left:8px; }
  .screen-menu-button,.multiplayer-button { padding:8px 9px; }
  .pause-button { padding:8px 10px; }
  .operator-menu-button { min-width:132px; }
}
.operator-menu-wrap { position:relative;margin-left:8px; }
.operator-menu-button { display:flex;align-items:center;gap:8px;min-width:158px;height:42px;padding:5px 9px;border:1px solid #344b54;border-radius:6px;color:#e8f2f4;background:#102128;cursor:pointer;text-align:left; }
.operator-menu-button:hover,.operator-menu-button[aria-expanded="true"] { border-color:var(--cyan);background:#172d35; }
.operator-menu-button > b,.operator-menu-profile > b { display:grid;place-items:center;flex:0 0 auto;width:29px;height:29px;border-radius:50%;color:#061419;background:linear-gradient(145deg,#5de4dc,#28bdb3);font-size:11px; }
.operator-menu-button > span { min-width:0;flex:1; }.operator-menu-button strong,.operator-menu-button small { display:block;max-width:102px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }.operator-menu-button strong { font-size:10px; }.operator-menu-button small { margin-top:2px;color:#91a9b1;font-size:8px; }.operator-menu-button > i { color:var(--cyan);font-size:9px;font-style:normal; }
.operator-menu { position:absolute;right:0;top:calc(100% + 12px);z-index:1100;width:286px;padding:8px;border:1px solid #38515a;border-radius:8px;background:rgba(9,23,29,.99);box-shadow:0 22px 55px #000c;backdrop-filter:blur(18px); }
.operator-menu::before { content:"";position:absolute;right:24px;top:-6px;width:10px;height:10px;border-left:1px solid #38515a;border-top:1px solid #38515a;background:#0a181e;transform:rotate(45deg); }
.operator-menu-profile { display:flex;align-items:center;gap:10px;padding:10px 10px 13px;border-bottom:1px solid var(--line); }.operator-menu-profile strong,.operator-menu-profile small { display:block; }.operator-menu-profile strong { font-size:12px; }.operator-menu-profile small { margin-top:3px;color:var(--muted);font-size:9px;line-height:1.35; }
.operator-menu > button { display:grid;grid-template-columns:31px 1fr;align-items:center;gap:9px;width:100%;padding:11px 10px;border:0;border-radius:5px;color:#dce9ec;background:transparent;text-align:left;cursor:pointer; }.operator-menu > button:hover { background:#162b33; }.operator-menu > button i { display:grid;place-items:center;width:28px;height:28px;border:1px solid #3b5963;border-radius:5px;color:var(--cyan);font-style:normal;background:#102229; }.operator-menu > button strong,.operator-menu > button small { display:block; }.operator-menu > button strong { font-size:10px; }.operator-menu > button small { margin-top:2px;color:var(--muted);font-size:8px; }.operator-menu > button.danger { color:#ff9da3; }.operator-menu > button.danger i { border-color:rgba(255,93,103,.35);color:var(--red);background:rgba(255,93,103,.08); }
.workspace { position:relative;z-index:1;flex:1;min-height:0;display:grid;grid-template-columns:292px minmax(440px,.95fr) minmax(500px,1.35fr);grid-template-rows:minmax(0,66fr) minmax(0,34fr);gap:1px;background:var(--line); }
.panel { min-width: 0; overflow: hidden; background: linear-gradient(155deg,#0f1d23 0%,var(--panel) 58%); }
.calls-panel { grid-row: 1 / 3; display: flex; flex-direction: column; }
.map-panel { position: relative; grid-column: 3; grid-row: 1; }
.incidents-panel { grid-column: 2; grid-row: 2; display:flex;flex-direction:column; }
.resources-panel { grid-column: 3; grid-row: 2; display: flex; flex-direction: column; }
.panel-heading { display: flex; align-items: center; justify-content: space-between; min-height: 78px; padding: 17px 18px; border-bottom: 1px solid var(--line); background: linear-gradient(180deg,rgba(255,255,255,.018),transparent); }
.panel-heading > div:first-child { min-width:0; }
.panel-heading.compact { min-height: 64px; padding: 13px 18px; }
.eyebrow { display: block; margin-bottom: 4px; color: var(--accent); font-size: 9px; font-weight: 800; letter-spacing: .16em; }
h2 { margin: 0; font-size: 16px; letter-spacing: -.01em; }
.count-badge { display: grid; place-items: center; min-width: 28px; height: 28px; padding: 0 8px; border-radius: 15px; color: #091116; background: var(--accent); font-weight: 900; }
.call-queue { flex: 1; overflow-y: auto; padding: 10px; }
.call-card { position: relative; margin-bottom: 9px; padding: 14px 13px; border: 1px solid #2a414a; border-left: 3px solid var(--yellow); border-radius: 6px; background: linear-gradient(130deg,#13242b,#0f1d23); box-shadow: 0 7px 18px rgba(0,0,0,.13); cursor: pointer; transition: .18s ease; }
.call-card:hover { transform: translateX(3px); border-color: #3d565f; background: #152a32; }
.call-card.urgent { border-left-color: var(--red); }
.call-card.line-ordered .call-number { color:var(--cyan); }.call-card.line-oms .call-number { color:#ffad42; }.call-card.line-fire-non-emergency .call-number { color:#79b8ff; }
.call-card .call-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.call-card .call-number { color: var(--muted); font-size: 10px; }
.call-card .waiting { color: var(--yellow); font-size: 11px; font-variant-numeric: tabular-nums; }
.call-card strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
.call-card p { margin: 5px 0 0; color: var(--muted); font-size: 11px; }.call-card p b { margin-right: 5px; color: var(--accent); }
.anonymous-call { padding-right:78px;cursor:default; }.anonymous-call:hover { transform:none; }.anonymous-call .line-actions { position:absolute;right:9px;bottom:11px;display:flex;gap:5px; }.line-actions button { display:grid;place-items:center;width:30px;height:30px;border:0;border-radius:4px;color:white;cursor:pointer; }.answer-call { background:#16a84a; }.reject-call { background:#d93646; }.line-actions button:hover { filter:brightness(1.18); }
.call-card.claimed-call { opacity:.72;border-left-color:#69767c;background:#142128; }.call-card.claimed-call .waiting { color:#9cabb1;font-size:8px;font-weight:900; }.answer-call.claimed,.line-actions button:disabled { color:#c4ced1;background:#69767c;cursor:not-allowed;filter:none; }
.incoming-hint { padding: 13px 15px; border-top: 1px solid var(--line); color: var(--muted); font-size: 10px; }
.pulse { display: inline-block; width: 6px; height: 6px; margin-right: 6px; border-radius: 50%; background: var(--green); animation: pulse 1.7s infinite; }
@keyframes pulse { 50% { box-shadow: 0 0 0 5px rgba(85,217,138,0); } 0% { box-shadow: 0 0 0 0 rgba(85,217,138,.35); } }
.timer { color: var(--cyan); font: 700 17px ui-monospace, monospace; }
.empty-state { display: grid; place-items: center; align-content: center; height: calc(100% - 64px); color: var(--muted); text-align: center; }
.phone-icon { display: grid; place-items: center; width: 62px; height: 62px; border: 1px solid var(--line); border-radius: 50%; color: var(--accent); background: var(--accent-soft); font-size: 28px; }
.empty-state h3 { margin: 16px 0 3px; color: var(--text); font-size: 15px; }
.empty-state p { margin: 0; font-size: 12px; }
.hidden { display: none !important; }
.active-call { height: calc(100% - 64px); overflow-y: auto; }
.caller-strip { display: grid; grid-template-columns: .8fr 1.4fr 1fr; gap: 1px; background: var(--line); border-bottom: 1px solid var(--line); }
.caller-strip > div { padding: 10px 13px; background: #101f25; }
.caller-strip span { display: block; margin-bottom: 3px; color: var(--muted); font-size: 8px; letter-spacing: .1em; }
.caller-strip strong { font-size: 11px; }
.dialogue { min-height: 76px; max-height: 92px; overflow-y: auto; padding: 11px 18px 7px; background: linear-gradient(180deg,rgba(8,18,22,.45),transparent); }
.dialogue-line { display: flex; gap: 8px; margin-bottom: 8px; font-size: 11px; line-height: 1.4; }
.dialogue-line b { flex: 0 0 65px; color: var(--cyan); font-size: 9px; letter-spacing: .08em; }
.dialogue-line.caller b { color: var(--accent); }
.question-card { margin: 0 16px 8px; padding: 10px; border: 1px solid #2a414a; border-radius: 7px; background: linear-gradient(145deg,#09161b,#0d1b21); box-shadow: inset 0 1px 0 rgba(255,255,255,.025); }
.question-label { color: var(--muted); font-size: 8px; letter-spacing: .13em; }
.question-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.question-card h3 { margin: 4px 0 8px; font-size: 11px; }
.question-progress { padding: 5px 8px; border: 1px solid var(--line); border-radius: 12px; color: var(--cyan); font-size: 9px; font-weight: 800; }.question-progress.complete { color: var(--green); border-color: rgba(85,217,138,.4); }
.question-options { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.ask-button { min-height: 45px; padding: 7px 9px; border: 1px solid #2a414a; border-radius: 5px; color: #c8d7da; background: linear-gradient(145deg,#152831,#11232a); text-align: left; cursor: pointer; transition: .17s ease; }
.ask-button span { display: block; margin-bottom: 4px; color: var(--cyan); font-size: 7px; font-weight: 900; letter-spacing: .12em; }.ask-button strong { display: block; font-size: 10px; line-height: 1.3; }
.ask-button:hover { transform: translateY(-1px); border-color: var(--cyan); color: white; box-shadow: 0 6px 14px rgba(0,0,0,.18); }
.ask-button.asked { opacity: .55; border-color: rgba(85,217,138,.28); background: rgba(85,217,138,.055); cursor: default; }.ask-button.asked span { color: var(--green); }
.intake-classification { display:grid;grid-template-columns:.8fr .7fr 1.25fr auto;align-items:end;gap:7px;margin:0 16px 8px;padding:10px;border:1px solid #2d4650;border-radius:7px;background:#102128; }
.intake-classification label { color:#8299a2;font-size:7px;font-weight:900;letter-spacing:.09em;text-transform:uppercase; }
.intake-classification select { display:block;width:100%;height:34px;margin-top:5px;padding:0 8px;border:1px solid #3b5964;border-radius:4px;outline:0;color:#eef6f7;background:#17303a;font-size:9px; }
.intake-classification select:disabled { opacity:.48; }
.police-share-button { height:34px;padding:0 11px;border:1px solid #557dad;border-radius:4px;color:#a9d1ff;background:#16334d;font-size:8px;font-weight:900;cursor:pointer;white-space:nowrap; }
.police-share-button.shared { border-color:#55d98a;color:#071712;background:#55d98a; }
.intake-notepad { margin:0 16px 8px;border:1px solid #31505c;border-radius:7px;overflow:hidden;background:#09181e; }
.notepad-heading { display:flex;justify-content:space-between;padding:7px 9px;border-bottom:1px solid #29434d;color:var(--cyan);font-size:7px;font-weight:900;letter-spacing:.1em; }.notepad-heading small { color:#8299a2;font-weight:500;letter-spacing:0; }
.intake-note-log { display:flex;flex-wrap:wrap;gap:5px;min-height:29px;max-height:58px;overflow-y:auto;padding:6px 8px; }.intake-note-log span { padding:4px 6px;border-radius:3px;color:#a8bec6;background:#18303a;font-size:8px; }.intake-note-log time { margin-right:5px;color:var(--cyan);font-size:7px; }
.intake-notepad textarea { display:block;width:100%;min-height:42px;padding:8px;border:0;border-top:1px solid #29434d;outline:0;resize:none;color:white;background:#10242c;font-size:10px; }
.call-actions { display: flex; justify-content: flex-end; gap: 8px; padding: 0 16px 8px; }
.primary-button, .secondary-button, .dispatch-button { padding: 10px 13px; border-radius: 4px; cursor: pointer; }
.primary-button { border: 0; color: #071116; background: var(--accent); font-weight: 800; }
.primary-button:disabled, .dispatch-button:disabled { opacity: .35; cursor: not-allowed; }
button.pending,button[aria-busy="true"] { cursor:progress !important;opacity:.68; }
.phone-cell.pending { color:#fff !important;background:#687981 !important;filter:grayscale(1); }
.ask-button.pending,.comm-question-groups button.pending { box-shadow:inset 0 0 0 2px #79d8ff; }
.secondary-button { border: 1px solid var(--line); background: transparent; }
.overlay-heading { position: absolute; z-index: 500; top: 0; right: 0; left: 0; background: linear-gradient(#09171cf7,#09171ce8 75%,transparent); border: 0; pointer-events: none; }
.map-filters { display: flex; gap: 5px; pointer-events: auto; }
.map-filter-menu-wrap { position:relative; }
.map-filter-menu-button { display:flex;align-items:center;gap:5px;min-height:29px;padding:6px 9px;border:1px solid #46758a;border-radius:4px;color:#e4f5fa;background:#123243e8;font-size:9px;font-weight:850;cursor:pointer; }.map-filter-menu-button:hover,.map-filter-menu-button[aria-expanded="true"] { border-color:#6ed7f7;background:#19516a; }.map-filter-menu-button span { color:#51dbf3;font-size:13px;line-height:.7; }
.map-filter-menu { position:absolute;z-index:900;top:36px;right:0;width:255px;padding:10px;border:1px solid #426b7b;border-radius:6px;color:#ddecf0;background:#0b202aeF;box-shadow:0 12px 28px #000b; }.map-filter-menu.hidden { display:none; }.map-filter-menu-heading { display:flex;justify-content:space-between;align-items:baseline;margin:0 2px 8px; }.map-filter-menu-heading strong { color:#fff;font-size:12px; }.map-filter-menu-heading span { color:#82aab9;font-size:8px; }.map-filter-menu-actions { display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-bottom:8px; }.map-filter-menu-actions button { min-height:27px;border:1px solid #365968;border-radius:3px;color:#cce4ec;background:#15313d;font-size:8px;font-weight:800;cursor:pointer; }.map-filter-menu-actions button:hover { border-color:#55c9e8;color:#fff;background:#1b4b5e; }.map-filter-options { display:grid;gap:7px; }.map-filter-options fieldset { display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:0;padding:7px;border:1px solid #254450;border-radius:4px; }.map-filter-options legend { padding:0 4px;color:#61cfe8;font-size:8px;font-weight:900;letter-spacing:.06em;text-transform:uppercase; }.map-filter-option { display:flex;align-items:center;gap:6px;min-height:23px;color:#cfe0e6;font-size:9px;cursor:pointer; }.map-filter-option input { accent-color:#36c9ed; }.map-filter-option.unavailable { opacity:.34;cursor:not-allowed; }.map-filter-option .unit-dot.police { background:#5eb9ed; }.map-filter-option .unit-dot.incident { background:#ff8955; }.map-filter-option .unit-dot.bridge { width:8px;height:5px;border-radius:1px; }
.map-filter { display: flex; align-items: center; gap: 5px; padding: 6px 7px; border: 1px solid #344a52; border-radius: 4px; color: #70858d; background: rgba(7,16,21,.72); font-size: 8px; cursor: pointer; }.map-filter.active { color: #d7e3e6; border-color: #4b626a; background: #15272dcc; }
.weather-status-button { display:flex;align-items:center;gap:6px;min-height:29px;padding:5px 9px;border:1px solid #41606b;border-radius:4px;color:#d9e9ed;background:#10242dcc;font-size:9px;font-weight:800;cursor:pointer; }.weather-status-button i { display:grid;place-items:center;width:18px;height:18px;border-radius:50%;color:#08171d;background:#64c8e8;font-style:normal;font-size:11px; }.weather-status-button[data-weather="storm"] i { color:white;background:#7a64d8; }.weather-status-button[data-weather="slippery"] i { background:#d8f4ff; }.weather-status-button[data-weather="rain"] i,.weather-status-button[data-weather="fog"] i { background:#8baab6; }
.unit-dot.bridge { background:#45b9e5;box-shadow:0 0 0 2px #45b9e522; }
.bridge-map-span { filter:drop-shadow(0 1px 2px #001018); }
.bridge-map-span.active { filter:drop-shadow(0 0 4px rgba(39,215,121,.9)) drop-shadow(0 1px 2px #001018); }
.hospital-status-button { position:relative;display:flex;align-items:center;gap:6px;min-height:32px;padding:5px 9px;border:1px solid #356172;border-radius:4px;color:#cae4ed;background:#123240;cursor:pointer; }.hospital-status-button>span { color:#4fcaed;font-size:15px;font-weight:900; }.hospital-status-button>b { font-size:9px; }.hospital-status-button>i { display:grid;place-items:center;min-width:18px;height:18px;padding:0 4px;border-radius:10px;color:#08202a;background:#7a9aa6;font-style:normal;font-size:8px;font-weight:900; }.hospital-status-button.active { border-color:#e14c59;color:#fff;background:#49232a; }.hospital-status-button.active>i { color:white;background:#e23e4e; }
.bridge-map-tooltip { display:grid;gap:2px;min-width:150px; }.bridge-map-tooltip b { color:#eefaff;font-size:11px; }.bridge-map-tooltip span { color:#8cb3c2;font-size:8px; }
.unit-dot { width: 7px; height: 7px; border-radius: 50%; }
.unit-dot.ambulance { background: var(--yellow); }.unit-dot.fire { background: var(--red); }.unit-dot.hospital { background: var(--blue); }.unit-dot.unit { background: var(--cyan); }
.map-canvas { position: absolute; inset: 0; overflow: hidden; background: #0b171c; }
#realMap { width: 100%; height: 100%; background: #0d1a20; }
.leaflet-container { font-family: inherit; }.leaflet-tile-pane { filter: brightness(.55) saturate(.6) contrast(1.18) hue-rotate(155deg); }.leaflet-control-attribution { color: #668087 !important; background: rgba(7,16,21,.8) !important; font-size: 8px !important; }.leaflet-control-attribution a { color: #8aa0a6 !important; }
.leaflet-control-zoom a { border-color: #32464e !important; color: #d6e2e4 !important; background: #102027e8 !important; }
.map-div-icon { background: none; border: 0; }
.geo-unit-label { position:absolute;left:24px;top:1px;min-width:max-content;padding:5px 7px;border-left:4px solid #12a53a;color:white;background:#087f29;font-size:8px;font-weight:900;box-shadow:0 3px 9px #0008;white-space:nowrap; }.geo-marker.ambulance + .geo-unit-label { color:#171200;border-left-color:#f2c94c;background:#d9b333; }.geo-marker.police + .geo-unit-label { border-left-color:#75bfff;background:#1767a6; }
.geo-marker { display: grid; place-items: center; width: 26px; height: 26px; border: 2px solid #071116; border-radius: 50%; color: #071116; font-size: 9px; font-weight: 950; box-shadow: 0 4px 12px #0009; }.geo-marker.fireStation { background: #d84d54; color: white; }.geo-marker.ambulanceStation { background: #f0c74c; }.geo-marker.hospital { width:30px;height:30px;border:2px solid #176bab;border-radius:7px;background:#f4f9fc;box-shadow:0 0 0 2px rgba(23,107,171,.2),0 4px 12px #0009; }.hospital-map-icon { width:25px;height:25px; }.hospital-map-icon .hospital-building,.hospital-map-icon .hospital-wing { fill:#176bab; }.hospital-map-icon .hospital-cross { fill:#fff; }.hospital-map-icon .hospital-door { fill:#bfe1f4; }.geo-marker.fire { background: var(--red); color: white; box-shadow: 0 0 0 3px rgba(255,93,103,.22),0 4px 12px #0009; }.geo-marker.ambulance { background: var(--yellow); box-shadow: 0 0 0 3px rgba(242,201,76,.22),0 4px 12px #0009; }.geo-marker.police { color:white;background:#1683d8;box-shadow:0 0 0 3px rgba(22,131,216,.25),0 4px 12px #0009; }.geo-marker.incident { width: 31px; height: 31px; background: var(--accent); color: white; box-shadow: 0 0 0 7px rgba(255,100,51,.18),0 4px 14px #000b; animation: incidentPulse 1.5s infinite; }
.geo-marker.hospital.capacity-stop { position:relative;border-color:#e73f50;box-shadow:0 0 0 4px rgba(231,63,80,.3),0 4px 12px #0009; }.hospital-stop-badge { position:absolute;top:-8px;right:-14px;padding:2px 4px;border-radius:3px;color:white;background:#db2d40;font:900 6px system-ui;letter-spacing:.04em; }
.incident-map-div-icon { overflow:visible!important; }
.incident-map-composite { position:relative;display:block;width:32px;height:32px; }
.incident-onscene-units { position:absolute;z-index:3;top:38px;left:50%;display:grid;grid-template-columns:repeat(2,max-content);gap:2px;transform:translateX(-50%);filter:drop-shadow(0 2px 4px #000a); }
.incident-onscene-units b { min-width:48px;padding:3px 5px;border-left:3px solid #e33a43;border-radius:2px;color:#fff;background:#791e25;font:900 8px/1.1 Arial,sans-serif;text-align:center;white-space:nowrap; }
.incident-onscene-units b.ambulance { border-left-color:#f2c94c; }.incident-onscene-units b.fire { border-left-color:#ff5d67; }.incident-onscene-units b.police { border-left-color:#54aef2; }
.vehicle-map-div-icon { overflow:visible!important; }
.vehicle-map-card { position:relative;display:grid;grid-template-columns:17px 36px minmax(86px,1fr) 35px;align-items:center;box-sizing:border-box;width:180px;height:38px;border:3px solid #686b6d;border-radius:7px;color:#202326;background:#e7e9e9;box-shadow:inset 0 0 0 1px #fafafa,0 3px 9px #0009;font-family:Arial,sans-serif; }
.vehicle-map-card.ogs-active .vehicle-silhouette svg { animation:vehicleMapIconOgs .64s steps(1,end) infinite; }
@keyframes vehicleMapIconOgs { 0%,45% { fill:#111;filter:none; } 46%,100% { fill:#087ed7;filter:drop-shadow(0 0 4px #40c2ff); } }
@media (prefers-reduced-motion:reduce) { .vehicle-map-card.ogs-active .vehicle-silhouette svg { animation:none;fill:#087ed7;filter:drop-shadow(0 0 3px #40c2ff); } }
.vehicle-map-card::after { content:"";position:absolute;z-index:-1;left:79px;bottom:-11px;width:15px;height:15px;border-right:3px solid #686b6d;border-bottom:3px solid #686b6d;background:#e7e9e9;transform:rotate(45deg);clip-path:polygon(24% 24%,100% 24%,100% 100%); }
.vehicle-status-rail { align-self:center;justify-self:center;width:8px;height:27px;border-radius:3px;background:#d51219;box-shadow:inset -1px 0 rgba(0,0,0,.2); }
.vehicle-silhouette { display:grid;place-items:center;height:100%; }.vehicle-silhouette svg { width:31px;height:23px;overflow:visible;fill:#111; }.vehicle-silhouette .vehicle-cut { fill:#e7e9e9; }.vehicle-silhouette .vehicle-cross { fill:#e7e9e9; }
.vehicle-map-card strong { position:relative;z-index:1;overflow:hidden;padding:0 4px;color:#292c2f;font-size:14px;font-weight:900;letter-spacing:-.025em;text-overflow:ellipsis;white-space:nowrap; }
.vehicle-livery { align-self:stretch;border-left:1px solid #96999b;border-radius:0 3px 3px 0;background-position:center;background-size:cover;overflow:hidden; }
.vehicle-map-card.fire .vehicle-livery { background-image:url("assets/map-livery/brandweer.png"); }
.vehicle-map-card.ambulance .vehicle-livery { background-image:url("assets/map-livery/ambulance.png"); }
.vehicle-map-card.police .vehicle-livery { background-image:url("assets/map-livery/politie.png"); }
#realMap.map-zoom-district .vehicle-map-card { transform:scale(.78);transform-origin:50% 100%; }
#realMap.map-zoom-regional .vehicle-map-card { transform:scale(.62);transform-origin:50% 100%; }
#realMap.map-zoom-wide .vehicle-map-card { transform:scale(.5);transform-origin:50% 100%; }
.post-house { position:relative;display:block;width:34px;height:34px;clip-path:polygon(50% 0,100% 38%,88% 38%,88% 100%,12% 100%,12% 38%,0 38%);filter:drop-shadow(0 3px 4px #000b);cursor:help; }.post-house.available { background:#159447; }.post-house.empty { background:#cf3038; }.post-house::after { content:"";position:absolute;inset:2px;clip-path:inherit;border:1px solid rgba(255,255,255,.22); }.post-discipline-badge { position:absolute;z-index:2;top:6px;left:50%;display:grid;place-items:center;width:15px;height:15px;border-radius:50%;background:#f8fbfc;box-shadow:0 1px 3px #0008;transform:translateX(-50%); }.post-discipline-badge svg { width:12px;height:12px;overflow:visible; }.post-discipline-badge.ambulance .star-of-life { fill:#1674c5; }.post-discipline-badge.ambulance .medical-staff { fill:none;stroke:#fff;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round; }.post-discipline-badge.fire { color:#d62932; }.post-discipline-badge.fire path { fill:currentColor; }.post-discipline-badge.fire .fire-inner { fill:#ffb52f; }.post-door { position:absolute;z-index:2;bottom:3px;left:50%;width:7px;height:8px;border-radius:1px 1px 0 0;background:rgba(255,255,255,.88);transform:translateX(-50%); }
.leaflet-tooltip.post-tooltip { padding:0;border:1px solid #405864;border-radius:6px;color:white;background:#10242d;box-shadow:0 9px 24px #000b; }.leaflet-tooltip.post-tooltip::before { border-top-color:#405864; }.post-tooltip-content { min-width:230px; }.post-tooltip-content > b,.post-tooltip-content > span { display:block;padding:8px 10px; }.post-tooltip-content > b { padding-bottom:3px;font-size:12px; }.post-tooltip-content > span { padding-top:0;color:#8eabb6;font-size:8px; }.post-tooltip-unit { display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:8px;min-height:36px;padding:5px 8px;border-top:1px solid #29414c; }.post-tooltip-unit strong { font-size:9px; }.post-tooltip-unit small { color:#a9bec6;font-size:8px; }.post-status { display:grid;place-items:center;width:28px;height:26px;border-radius:3px;font-weight:900; }.post-status.s1 { background:#e98b17; }.post-status.s2 { background:#cf3038; }.post-status.s3 { background:#2469d8; }.post-status.s4 { background:#7447bd; }.post-status.s5 { color:#092313;background:#70d987; }.post-status.s6 { background:#087a35; }.post-status.s8 { background:#68727b; }.post-tooltip-empty { padding:10px;border-top:1px solid #29414c;color:#91aab4;font-size:9px; }
.leaflet-popup-content-wrapper,.leaflet-popup-tip { color: var(--text); background: #12242b; }.leaflet-popup-content-wrapper { border: 1px solid #334a53; border-radius: 7px; box-shadow: 0 10px 28px #0009; }.map-popup { min-width: 170px; }.map-popup span { display:block;color:var(--accent);font-size:8px;font-weight:900;letter-spacing:.1em;text-transform:uppercase; }.map-popup strong { display:block;margin:4px 0;font-size:12px; }.map-popup p { margin:0 0 5px;color:#aebfc3;font-size:10px; }.map-popup small { color:#71868d;font-size:8px; }
.map-status { position:absolute; right:10px; bottom:24px; z-index:500; display:flex; gap:12px; padding:7px 9px; border:1px solid #344a52; border-radius:4px; color:#81949b; background:rgba(7,16,21,.84); font-size:8px; pointer-events:none; }.map-status b { color:var(--cyan); }
.map-load-error { height:100%; display:grid; place-content:center; gap:5px; color:var(--muted); text-align:center; }.map-load-error strong { color:var(--text); }
.water { fill: #0d3544; stroke: #15546a; stroke-width: 2; }
.province-shapes path { stroke: #48636c; stroke-width: 2; }
.province-shapes .friesland { fill: #142d34; }.province-shapes .groningen { fill: #173138; }.province-shapes .drenthe { fill: #12282f; }
.roads path { fill: none; stroke-linecap: round; }.roads.major path { stroke: #52626a; stroke-width: 8; }.roads.minor path { stroke: #32464e; stroke-width: 3; }
.district-labels text { fill: #557079; font-size: 10px; letter-spacing: .12em; }
.province-names text { fill: #6f8991; font-size: 13px; font-weight: 800; }
.city-labels text { fill: #9db0b5; font-size: 10px; }
.map-marker { position: absolute; transform: translate(-50%, -50%); display: grid; place-items: center; width: 22px; height: 22px; border: 2px solid #091419; border-radius: 50%; color: #071116; font-size: 8px; font-weight: 900; box-shadow: 0 2px 8px #0008; transition: left 1s linear, top 1s linear; }
.map-marker.ambulance { background: var(--yellow); }.map-marker.fire { background: var(--red); color: white; }.map-marker.command { background: var(--blue); color: white; }
.incident-marker { position: absolute; transform: translate(-50%, -100%); width: 30px; height: 38px; display: grid; place-items: center; clip-path: polygon(50% 100%, 0 45%, 5% 17%, 22% 2%, 78% 2%, 95% 17%, 100% 45%); background: var(--accent); font-weight: 900; box-shadow: 0 0 0 8px rgba(255,107,53,.15); animation: incidentPulse 1.5s infinite; }
@keyframes incidentPulse { 50% { filter: brightness(1.4); } }
.incident-list { flex:1;min-height:0;overflow-y:auto;padding:10px; }
.incidents-panel > .panel-heading { display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px; }
.incidents-panel > .panel-heading h2 { overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.incident-heading-actions { display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:max-content; }
.incident-heading-actions button { display:inline-flex;align-items:center;justify-content:center;gap:6px;height:34px;margin:0;white-space:nowrap; }
.incident-heading-actions button span { display:grid;place-items:center;width:17px;height:17px;border-radius:50%;font-size:12px;font-weight:900;line-height:1; }
.incident-heading-actions button b { font-size:9px;letter-spacing:.035em; }
@media(max-width:820px){.incident-heading-actions{gap:5px}.incident-heading-actions button{min-width:34px;padding:0 7px}.incident-heading-actions button b{display:none}.hospital-status-button>i{position:absolute;top:-5px;right:-5px}}
.bridge-menu-button { border:1px solid #397895;color:#cbeefa;background:#174a61; }.bridge-menu-button:hover { border-color:#5ac0e6;background:#1c607c; }
.assistance-button { padding:0 11px;border:1px solid #d49b34;border-radius:5px;color:#ffe1a1;background:#59401b;font-weight:900;cursor:pointer; }
.assistance-button span { color:#ffdfa0;background:#3a2b17; }
.assistance-button:hover:not(:disabled) { border-color:#ffd369;background:#72501d; }
.assistance-button:disabled { opacity:.38;cursor:not-allowed; }
.incident-section-label { padding:7px 11px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:#76909a;background:#0a171c;font-size:7px;font-weight:900;letter-spacing:.14em; }
.speech-dock { flex:0 0 auto;max-height:46%;overflow:hidden;border-bottom:1px solid #355365;background:#0b2634; }.speech-dock > header { display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-bottom:1px solid #315365;background:#12394c; }.speech-dock > header span,.speech-dock > header strong { display:block; }.speech-dock > header span { color:#7fa6b7;font-size:7px;letter-spacing:.14em; }.speech-dock > header strong { margin-top:2px;font-size:11px; }.speech-dock > header b { display:grid;place-items:center;min-width:24px;height:24px;border-radius:12px;color:#061419;background:var(--cyan);font-size:10px; }.speech-request-list { max-height:220px;overflow-y:auto;padding:5px; }.speech-empty { padding:18px;color:#72919e;font-size:9px;text-align:center; }.speech-request-card { display:grid;grid-template-columns:43px 1fr auto;align-items:stretch;margin-bottom:4px;border:1px solid #426171;background:#17394a;box-shadow:0 5px 12px #0004; }.speech-request-card.s9 { border-color:#d8424c;background:#54242b;animation:speechUrgent 1.15s infinite; }.speech-code { display:grid;place-content:center;text-align:center;background:#1692aa; }.speech-request-card.s9 .speech-code { background:#d52f3a; }.speech-code b { font-size:18px;line-height:1; }.speech-code span { margin-top:3px;font-size:6px;font-weight:900;letter-spacing:.08em; }.speech-message { min-width:0;padding:8px; }.speech-message > span,.speech-message > strong { display:block; }.speech-message > span { color:#8fb0be;font-size:7px; }.speech-message > strong { margin-top:4px;font-size:9px;line-height:1.35; }.speech-open,.speech-ack,.speech-address button { border:0;color:white;background:#315d72;font-size:8px;cursor:pointer; }.speech-open { width:60px;border-left:1px solid #4a6c7d; }.speech-ack { margin-top:7px;padding:6px 8px;background:#197d55; }.speech-address { display:flex;gap:4px;margin-top:7px; }.speech-address input { width:76px;padding:6px;border:1px solid #658697;color:white;background:#0d2b39;font-size:8px; }.speech-address button { padding:6px; }.speech-request-card button:hover { filter:brightness(1.18); }@keyframes speechUrgent { 50% { box-shadow:0 0 0 2px rgba(255,93,103,.28); } }
.intake-handover-dock { flex:0 0 auto;max-height:315px;overflow:hidden;border-bottom:1px solid #355365;background:#10272f; }.intake-handover-dock > header { display:flex;align-items:center;justify-content:space-between;padding:7px 10px;border-bottom:1px solid #31505c;background:#173640; }.intake-handover-dock header span,.intake-handover-dock header strong { display:block; }.intake-handover-dock header span { color:#7fa6b7;font-size:7px;letter-spacing:.14em; }.intake-handover-dock header strong { margin-top:2px;font-size:10px; }.intake-handover-dock header b { display:grid;place-items:center;min-width:22px;height:22px;border-radius:11px;color:#061419;background:var(--yellow);font-size:9px; }.handover-feed { max-height:265px;overflow-y:auto;padding:5px 8px; }.handover-line { display:grid;grid-template-columns:36px 1fr;gap:6px;padding:5px 2px;border-bottom:1px solid #29434d;font-size:8px;line-height:1.35; }.handover-line time { color:var(--cyan); }.handover-line.police { color:#a9d1ff; }
.incident-empty { height: 100%; display: grid; place-items: center; color: var(--muted); font-size: 12px; }
.incident-card { display: grid; grid-template-columns: 72px 1fr auto; gap: 12px; align-items: center; padding: 11px 12px; margin-bottom: 7px; border: 1px solid var(--line); border-radius: 5px; background: #112027; cursor: pointer; }
.incident-card.selected { border-color: var(--accent); background: var(--accent-soft); }
.incident-card.assistance-incident { border-color:#e5ad43;box-shadow:inset 4px 0 0 #e5ad43; }
.incident-assistance-badge { display:block;width:max-content;margin-top:5px;padding:3px 5px;border-radius:3px;color:#221600;background:#f0bc4f;font-size:7px;font-weight:1000;letter-spacing:.08em; }
.incident-card.editing { border-color:var(--cyan);box-shadow:inset 3px 0 0 var(--cyan); }
.incident-card.scheduled-transport { border-color:#8c7838;box-shadow:inset 3px 0 0 #e0bd4f;background:#171d1e; }
.incident-card.scheduled-transport .incident-state { color:#f0ce64;font-weight:800;max-width:150px; }
.incident-card .transport-information { margin-top:7px;padding-top:6px;border-top:1px solid #33454c;line-height:1.55;color:#b9cbd0; }
.incident-card .transport-information b { display:inline;color:#f0ce64;font-size:9px;letter-spacing:.08em;margin-right:4px; }
.incident-card .pickup-time { display:inline-block;padding:1px 4px;border-radius:3px; }
.incident-card .pickup-time.due { color:#fff;background:#b8212e;font-weight:900;box-shadow:0 0 0 1px #ff5a67; }
.incident-card .pickup-time.due b { color:#fff; }
.incident-card.pickup-due { border-color:#e64754;box-shadow:inset 3px 0 0 #e64754; }
.priority { display: inline-grid; place-items: center; width: 38px; height: 24px; border-radius: 3px; color: white; font-size: 10px; font-weight: 900; background: var(--red); }
.priority.p2 { background: var(--yellow); color: #171200; }
.incident-card strong { display: block; font-size: 12px; }.incident-card p { margin: 3px 0 0; color: var(--muted); font-size: 10px; }
.incident-card .incident-state { color: var(--cyan); font-size: 10px; text-align: right; }
.incident-assigned-units { display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin-top:7px;padding-top:6px;border-top:1px solid #293c43; }
.incident-assigned-units > span { margin-right:2px;color:#6e8891;font-size:7px;font-weight:900;letter-spacing:.11em; }
.incident-assigned-units b { display:inline-block;padding:3px 6px;border-radius:3px;color:white;font-size:8px;line-height:1.1; }
.incident-assigned-units b.s1 { background:#e98b17; }.incident-assigned-units b.s2 { background:#cf3038; }.incident-assigned-units b.s3 { background:#2469d8; }.incident-assigned-units b.s4 { background:#7447bd; }.incident-assigned-units b.s5 { color:#092313;background:#70d987; }.incident-assigned-units b.s6 { background:#087a35; }.incident-assigned-units b.s7 { background:#168fa8; }.incident-assigned-units b.s8 { background:#68727b; }.incident-assigned-units b.s9 { background:#d52f3a; }
.incident-assigned-units.empty em { color:#607780;font-size:8px;font-style:normal; }
.resource-summary { color: var(--green); font-size: 10px; }
.resource-heading-tools { display:flex;align-items:flex-end;gap:12px; }
.resource-heading-tools label { color:#718890;font-size:7px;font-weight:900;letter-spacing:.1em;text-transform:uppercase; }
.resource-heading-tools select,.resource-heading-tools input { display:block;min-width:112px;height:30px;margin-top:4px;padding:0 8px;border:1px solid #39515a;border-radius:4px;outline:0;color:#dce9ec;background:#12262e;font-size:9px; }
.resource-heading-tools select { cursor:pointer; }
.resource-heading-tools input { width:min(280px,26vw);min-width:190px;text-transform:none;letter-spacing:0; }
.resource-heading-tools input::placeholder { color:#61777e; }
.resource-heading-tools input:focus { border-color:var(--cyan);box-shadow:0 0 0 2px #20c7c322; }
.resource-heading-tools .resource-summary { padding-bottom:7px;white-space:nowrap; }
.resource-table-wrap { flex: 1; min-height: 0; overflow: auto; }
.resource-table { width: 100%; min-width: 1020px; border-collapse: collapse; font-size: 10px; }
.resource-table th { position: sticky; top: 0; z-index: 2; padding: 8px 10px; color: var(--muted); background: #0a171c; font-size: 8px; letter-spacing: .08em; text-align: left; }
.resource-table td { padding: 7px 10px; border-top: 1px solid #1b2d34; }.resource-table td small { display:block;margin-top:2px;color:#61777e;font-size:7px;text-transform:uppercase; }
.resource-table tr.busy { opacity: .6; }
.resource-table tr.redirectable { box-shadow:inset 3px 0 0 #e98b17; }
.resource-table .resource-empty-row td { padding:28px 16px;color:#789099;text-align:center; }
.resource-table .resource-empty-row strong { color:#dbe9ed; }
.cancel-unit-button { min-width:78px;padding:5px 7px;border:1px solid #b4575e;border-radius:4px;color:#ffd5d8;background:#612a30;font-size:8px;font-weight:900;line-height:1.15;cursor:pointer; }
.cancel-unit-button span { color:#e7adb1;font-size:7px;font-weight:700; }
.cancel-unit-button:hover:not(:disabled) { border-color:#ff737d;background:#81323a; }
.cancel-unit-button:disabled { opacity:.35;cursor:not-allowed; }
.resource-no-action { color:#637a83; }
.resource-incident-link { min-width:105px; }.resource-incident-link strong { display:block;color:var(--cyan);font-size:9px; }.resource-incident-link > span { color:#637a83; }
.resource-table input { accent-color: var(--accent); }
.resource-dia-toggle{display:inline-flex;align-items:center;gap:4px;padding:4px 6px;border:1px solid #315466;border-radius:4px;color:#8ed7ff;font-size:8px;font-weight:900;letter-spacing:.06em;cursor:pointer}.resource-dia-toggle:has(input:checked){border-color:#26b8eb;background:#114257;color:#d6f6ff}.resource-dia-toggle input{margin:0;cursor:pointer}
.resource-table .duty-cell { min-width: 118px; }
.resource-table .duty-cell strong { display:block; color:#d7e6eb; font-size:9px; white-space:nowrap; }
.resource-table .duty-cell.duty-in strong { color:#66d39a; }
.resource-table .duty-cell.duty-running strong { color:#f1b65e; }
.resource-table .duty-cell.duty-out strong { color:#899ba2; }
.resource-table tr.duty-ended td:nth-child(3) > strong { color:#ff6868; }
.resource-table .duty-cell.duty-special strong { color:#7eb8db; }
.resource-table .duty-cell.duty-volunteer strong { color:#e6bd68; }
.status-select { width:100%;min-width:145px;padding:5px 6px;border:1px solid #3a5058;border-radius:3px;color:white;font-size:8px;font-weight:800;cursor:pointer; }.status-detail { display:block!important;margin-top:3px!important;color:#8da4ad!important;text-transform:none!important; }
.radio-status-display { display:flex;align-items:center;gap:7px;min-width:145px;padding:5px 7px;border-radius:3px;color:white;font-size:8px;font-weight:900; }.radio-status-display b { display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#0003;font-size:11px; }.radio-status-display.s7 { background:#168fa8; }.radio-status-display.s9 { background:#d52f3a;animation:speechUrgent 1.15s infinite; }
.status-select.s1,.station-code.s1,.geo-marker.unit-status-s1,.geo-unit-label.unit-status-s1,.vehicle-status-rail.unit-status-s1 { background:#e98b17; }.status-select.s2,.station-code.s2,.geo-marker.unit-status-s2,.geo-unit-label.unit-status-s2,.vehicle-status-rail.unit-status-s2 { background:#cf3038; }.status-select.s3,.station-code.s3,.geo-marker.unit-status-s3,.geo-unit-label.unit-status-s3,.vehicle-status-rail.unit-status-s3 { background:#2469d8; }.status-select.s4,.station-code.s4,.geo-marker.unit-status-s4,.geo-unit-label.unit-status-s4,.vehicle-status-rail.unit-status-s4 { background:#7447bd; }.status-select.s5,.station-code.s5,.geo-marker.unit-status-s5,.geo-unit-label.unit-status-s5,.vehicle-status-rail.unit-status-s5 { color:#092313;background:#70d987; }.status-select.s6,.station-code.s6,.geo-marker.unit-status-s6,.geo-unit-label.unit-status-s6,.vehicle-status-rail.unit-status-s6 { background:#087a35; }.status-select.s7,.station-code.s7,.geo-marker.unit-status-s7,.geo-unit-label.unit-status-s7,.vehicle-status-rail.unit-status-s7 { color:white;background:#168fa8; }.status-select.s8,.station-code.s8,.geo-marker.unit-status-s8,.geo-unit-label.unit-status-s8,.vehicle-status-rail.unit-status-s8 { background:#68727b; }.status-select.s9,.station-code.s9,.geo-marker.unit-status-s9,.geo-unit-label.unit-status-s9,.vehicle-status-rail.unit-status-s9 { color:white;background:#d52f3a;animation:speechUrgent 1.15s infinite; }
.simulation-strip button.active { color:#061419;background:var(--yellow);box-shadow:inset 0 -2px #9f6810; }
.simulation-strip #commPlayButton.running { color:#fff;background:#188648;box-shadow:inset 0 -2px #0a542b; }
.simulation-strip #commPauseButton.paused { color:#fff;background:#b82d42;box-shadow:inset 0 -2px #701726; }
.header-speed { display:flex;overflow:hidden;border:1px solid #477084;border-radius:4px;background:#0a202a; }.header-speed button { min-width:29px;height:28px;border:0;border-right:1px solid #355665;color:#a9c1cb;background:transparent;font-size:8px;font-weight:900;cursor:pointer; }.header-speed button:last-child { border-right:0; }.header-speed button.active { color:#07171b;background:var(--yellow); }
.dispatch-footer { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 58px; padding: 9px 13px; border-top: 1px solid var(--line); background: #0a171c; }
.dispatch-choice-note { max-width:390px;color:var(--muted);font-size:9px;line-height:1.4; }
.dispatch-button { flex: 0 0 auto; border: 0; color: #061216; background: var(--cyan); font-size: 10px; font-weight: 900; }
.toast-container { position:fixed;right:18px;bottom:18px;z-index:4000;display:grid;gap:8px; }
.toast { width: 310px; padding: 12px 14px; border-left: 3px solid var(--cyan); border-radius: 5px; background: #15272f; box-shadow: 0 12px 30px #0008; animation: toastIn .25s ease; }
.toast.error { border-color: var(--red); }.toast strong { display: block; font-size: 11px; }.toast span { color: var(--muted); font-size: 10px; }
@keyframes toastIn { from { opacity: 0; transform: translateX(15px); } }

.modal-backdrop { position:fixed;inset:0;z-index:2000;display:grid;place-items:center;padding:24px;background:rgba(2,8,11,.76);backdrop-filter:blur(9px); }
#multiplayerModal { z-index:5100; }
.assistance-modal { position:relative;width:min(520px,100%);padding:28px;border:1px solid #5c6745;border-radius:10px;color:#eaf5f7;background:linear-gradient(145deg,#15282d,#0a171b 72%);box-shadow:0 30px 90px #000d; }
.dispatch-creation-modal { position:relative;width:min(560px,calc(100vw - 28px));padding:30px;border:1px solid #397b94;border-radius:11px;color:#eaf5f7;background:linear-gradient(145deg,#14303a,#09171d 72%);box-shadow:0 30px 90px #000d; }
.dispatch-creation-modal h2 { margin:5px 0 0;font-size:24px; }
.dispatch-creation-modal > label { display:block;margin-top:17px;color:#a9c1c8;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase; }
.dispatch-creation-modal > select { display:block;width:100%;margin-top:7px;padding:13px;border:1px solid #416b79;border-radius:5px;color:#fff;background:#0a2028;font-size:14px;outline:0; }
.dispatch-creation-modal > select:focus { border-color:#56c8e9;box-shadow:0 0 0 3px #56c8e922; }
.dispatch-creation-options { display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px; }
.dispatch-creation-options button { display:flex;align-items:flex-start;gap:12px;min-height:122px;padding:17px;border:1px solid #315766;border-radius:8px;color:#eaf5f7;background:#102832;text-align:left;cursor:pointer;transition:border-color .15s,background .15s,transform .15s; }
.dispatch-creation-options button:hover { border-color:#55c6e6;background:#163844;transform:translateY(-1px); }
.dispatch-creation-options i { display:grid;flex:0 0 37px;place-items:center;width:37px;height:37px;border-radius:7px;color:#062027;background:#45d6d3;font-style:normal;font-size:17px;font-weight:900; }
.dispatch-creation-options button:last-child i { color:#241700;background:#f2be38;font-size:11px;letter-spacing:.04em; }
.dispatch-creation-options span,.dispatch-creation-options strong,.dispatch-creation-options small { display:block; }
.dispatch-creation-options strong { font-size:15px; }
.dispatch-creation-options small { margin-top:6px;color:#9fb7bf;font-size:11px;line-height:1.45; }
.dispatch-modal-note { min-height:18px;margin:14px 0 0;color:#8eabb5;font-size:11px;line-height:1.45; }
.vws-dispatch-modal .assistance-actions { margin-top:22px; }
@media (max-width:560px) { .dispatch-creation-options { grid-template-columns:1fr; }.dispatch-creation-modal { padding:23px; } }
.assistance-modal h2 { margin:5px 0 0;font-size:22px; }
.assistance-modal > label { display:block;margin-top:15px;color:#a9c1c8;font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase; }
.assistance-modal select { display:block;width:100%;margin-top:6px;padding:12px;border:1px solid #566248;border-radius:4px;color:white;background:#173039;font-size:12px;outline:0; }
.assistance-modal select:focus { border-color:#e5ad43;box-shadow:0 0 0 3px #e5ad4322; }
.bridge-modal { position:relative;display:flex;flex-direction:column;width:min(720px,calc(100vw - 28px));max-height:min(780px,calc(100vh - 34px));padding:27px;border:1px solid #397b94;border-radius:10px;color:#eaf5f7;background:linear-gradient(145deg,#142d37,#08171d 74%);box-shadow:0 30px 90px #000d; }
.bridge-modal h2 { margin:5px 0 0;font-size:23px; }.bridge-search-label { display:block;margin:15px 0 10px;color:#91b1bd;font-size:9px;font-weight:900;letter-spacing:.09em;text-transform:uppercase; }.bridge-search-label input { display:block;width:100%;height:42px;margin-top:6px;padding:0 12px;border:1px solid #365d6b;border-radius:4px;outline:0;color:white;background:#0b2028;font-size:12px; }.bridge-search-label input:focus { border-color:#51bce3;box-shadow:0 0 0 3px #51bce322; }
.capacity-modal,.weather-modal { position:relative;display:flex;flex-direction:column;width:min(720px,calc(100vw - 28px));max-height:min(780px,calc(100vh - 34px));padding:27px;border:1px solid #397b94;border-radius:10px;color:#eaf5f7;background:linear-gradient(145deg,#142d37,#08171d 74%);box-shadow:0 30px 90px #000d; }.capacity-modal h2,.weather-modal h2 { margin:5px 0 0;font-size:23px; }.capacity-list { min-height:160px;overflow-y:auto;margin-top:15px;padding-right:4px; }.capacity-stop { display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:8px;padding:14px;border:1px solid #743b42;border-radius:6px;background:#321d22; }.capacity-stop span,.capacity-stop strong,.capacity-stop p { display:block; }.capacity-stop span { color:#ff808b;font-size:8px;font-weight:900;letter-spacing:.1em; }.capacity-stop strong { margin-top:4px;font-size:13px; }.capacity-stop p { margin:5px 0 0;color:#d6b5b9;font-size:10px; }.capacity-stop>b { padding:7px 10px;border-radius:4px;color:white;background:#d93648;font-size:9px;letter-spacing:.08em; }.capacity-summary { padding:12px;color:#829da7;text-align:center;font-size:9px; }.capacity-empty { display:grid;place-items:center;align-content:center;min-height:190px;text-align:center; }.capacity-empty i { display:grid;place-items:center;width:42px;height:42px;border-radius:50%;color:#072319;background:#34cf84;font-style:normal;font-size:25px;font-weight:900; }.capacity-empty strong { margin-top:12px;font-size:14px; }.capacity-empty span { margin-top:5px;color:#88a4ae;font-size:10px; }.weather-modal-content { margin-top:18px; }.weather-current { display:flex;align-items:center;gap:16px;padding:18px;border:1px solid #365b69;border-radius:8px;background:#102a34; }.weather-current>i { display:grid;place-items:center;width:58px;height:58px;border-radius:50%;color:#08202a;background:#6fc9e6;font-style:normal;font-size:28px; }.weather-current span,.weather-current strong { display:block; }.weather-current span { color:#79a8b7;font-size:8px;font-weight:900;letter-spacing:.1em; }.weather-current strong { margin-top:4px;font-size:18px; }.weather-current p { margin:6px 0 0;color:#b4cbd2;font-size:11px;line-height:1.5; }.weather-effects { display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px; }.weather-effects>div { padding:13px;border:1px solid #294650;border-radius:6px;background:#0c2027; }.weather-effects span,.weather-effects strong { display:block; }.weather-effects span { color:#7e9aa4;font-size:8px;text-transform:uppercase; }.weather-effects strong { margin-top:5px;color:#57d4eb;font-size:13px; }
.bridge-list { min-height:130px;overflow-y:auto;border:1px solid #294c59;border-radius:5px;background:#08171d; }.bridge-list-item { display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;min-height:58px;padding:9px 11px;border-bottom:1px solid #213f4a; }.bridge-list-item:last-child { border-bottom:0; }.bridge-list-item.requested { box-shadow:inset 4px 0 #ffc64c;background:#173441; }.bridge-list-item strong,.bridge-list-item span { display:block; }.bridge-list-item strong { font-size:11px; }.bridge-list-item span { margin-top:4px;color:#83a5b1;font-size:8px; }.bridge-list-item button { min-width:116px;padding:9px 10px;border:1px solid #4a8296;border-radius:4px;color:white;background:#1c637e;font-size:9px;font-weight:900;cursor:pointer; }.bridge-list-item button:hover:not(:disabled) { background:#2385a8; }.bridge-list-item button:disabled { cursor:default;opacity:.45; }.bridge-list-empty { display:grid;place-items:center;min-height:130px;color:#6f909d;font-size:10px; }
.assistance-explanation { margin:14px 0 0;padding:11px;border-left:3px solid #e5ad43;color:#9fb2b8;background:#e5ad430b;font-size:10px;line-height:1.5; }
.assistance-explanation b { color:#ffd777; }
.assistance-actions { display:flex;justify-content:flex-end;gap:8px;margin-top:20px; }
.multiplayer-modal { position:relative;width:min(650px,100%);max-height:calc(100vh - 48px);overflow-y:auto;padding:30px;border:1px solid #39525b;border-radius:11px;background:linear-gradient(145deg,#12252c,#09161b 70%);box-shadow:0 30px 90px #000d; }
.multiscreen-modal { position:relative;width:min(620px,100%);max-height:calc(100vh - 48px);overflow-y:auto;padding:30px;border:1px solid #39525b;border-radius:11px;background:linear-gradient(145deg,#12252c,#09161b 70%);box-shadow:0 30px 90px #000d; }
.multiscreen-modal h2 { margin:5px 0 0;font-size:23px; }
.multiscreen-progress { display:grid;grid-template-columns:auto 1fr;align-items:center;gap:14px;margin:2px 0 14px;color:#b8cbd3;font-size:9px;font-weight:800; }
.multiscreen-progress i { height:5px;overflow:hidden;border-radius:5px;background:#273b43; }.multiscreen-progress b { display:block;width:0;height:100%;background:var(--cyan);transition:width .2s ease; }
.multiscreen-panel-list { display:grid;gap:7px; }.multiscreen-panel-row { display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:11px;padding:10px 11px;border:1px solid var(--line);border-radius:6px;background:#102129; }
.multiscreen-panel-row > i { display:grid;place-items:center;width:30px;height:30px;border-radius:4px;color:#06232a;background:#58cce7;font-style:normal;font-weight:900; }.multiscreen-panel-row strong,.multiscreen-panel-row span { display:block; }.multiscreen-panel-row strong { font-size:11px; }.multiscreen-panel-row span { margin-top:3px;color:var(--muted);font-size:8px; }
.multiscreen-panel-row.opened { border-color:rgba(46,211,198,.45);background:rgba(46,211,198,.07); }.multiscreen-panel-row.opened > i { background:var(--green); }.multiscreen-panel-row button { min-width:90px;padding:8px 10px;border:1px solid #4b6974;border-radius:4px;color:white;background:#1a3943;font-size:9px;font-weight:800;cursor:pointer; }.multiscreen-panel-row button:hover { border-color:var(--cyan); }.multiscreen-panel-row.opened button { color:#09271f;background:#60d78c; }
.multiscreen-warning { display:flex;gap:6px;margin-top:12px;padding:10px 12px;border-left:3px solid var(--red);color:#ffc4c8;background:rgba(255,93,103,.08);font-size:9px; }.multiscreen-warning span { color:#d8a8ac; }
.multiscreen-actions { display:flex;justify-content:flex-end;gap:8px;margin-top:17px; }.multiscreen-actions button { min-width:150px; }
.modal-close { position:absolute;right:16px;top:14px;width:32px;height:32px;border:1px solid var(--line);border-radius:50%;color:var(--muted);background:#102129;font-size:20px;cursor:pointer; }.modal-close:hover { color:white;border-color:var(--cyan); }
.multiplayer-modal h2 { margin-top:5px;font-size:23px; }.modal-intro { max-width:540px;margin:9px 0 22px;color:var(--muted);font-size:12px;line-height:1.55; }
.field-label { display:block;margin-bottom:7px;color:#a7b9bd;font-size:9px;font-weight:800;letter-spacing:.12em; }
.lobby-input { width:100%;padding:12px;border:1px solid #334b54;border-radius:5px;outline:0;color:var(--text);background:#09171c; }.lobby-input:focus { border-color:var(--cyan);box-shadow:0 0 0 3px rgba(46,211,198,.08); }
.lobby-choice { display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px; }.lobby-choice section { padding:18px;border:1px solid var(--line);border-radius:7px;background:#102129; }.choice-icon { display:grid;place-items:center;width:34px;height:34px;border-radius:7px;color:#071116;background:var(--cyan);font-size:20px;font-weight:900; }.lobby-choice section:last-child .choice-icon { color:white;background:var(--accent); }.lobby-choice h3 { margin:12px 0 4px;font-size:14px; }.lobby-choice p { min-height:31px;margin:0 0 14px;color:var(--muted);font-size:10px;line-height:1.45; }.lobby-choice button { width:100%;margin-top:9px; }.room-code-input { text-align:center;text-transform:uppercase;font:800 17px ui-monospace,monospace;letter-spacing:.28em; }
.lobby-choice #joinRoomButton:disabled { opacity:.38;cursor:not-allowed; }
.lobby-choice #joinRoomButton.room-active { border-color:#5ff0a1;color:#061610;background:linear-gradient(135deg,#5ff0a1,#2ed3c6);box-shadow:0 0 0 2px rgba(95,240,161,.16),0 0 22px rgba(46,211,198,.48);font-weight:900;animation:joinRoomReady 1.35s ease-in-out infinite alternate; }
.room-code-input.room-active { border-color:#5ff0a1;box-shadow:0 0 0 3px rgba(95,240,161,.12); }
.room-code-status { display:block;min-height:14px;margin-top:7px;color:var(--muted);font-size:9px;line-height:1.45; }
.room-code-status.active { color:#72f3ad;font-weight:800; }
.room-code-status.invalid { color:#ff9da4; }
@keyframes joinRoomReady { from { box-shadow:0 0 0 2px rgba(95,240,161,.12),0 0 12px rgba(46,211,198,.28); } to { box-shadow:0 0 0 3px rgba(95,240,161,.2),0 0 26px rgba(46,211,198,.62); } }
.lobby-error { margin:13px 0 0;padding:10px;border-left:3px solid var(--red);color:#ffc4c8;background:rgba(255,93,103,.08);font-size:10px; }
.room-code-card { display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:14px;padding:17px;border:1px solid rgba(46,211,198,.35);border-radius:8px;background:rgba(46,211,198,.07); }.room-code-card span { color:var(--muted);font-size:9px;letter-spacing:.13em; }.room-code-card strong { color:var(--cyan);font:900 26px ui-monospace,monospace;letter-spacing:.2em; }.room-code-card button { padding:8px 10px;border:1px solid #3b5961;border-radius:4px;background:#132a31;cursor:pointer; }
.room-status { display:flex;align-items:center;gap:11px;margin:14px 0;padding:13px;border:1px solid var(--line);border-radius:7px;background:#0c1b21; }.room-status i { width:10px;height:10px;border-radius:50%;background:var(--green);box-shadow:0 0 12px var(--green); }.room-status strong,.room-status span { display:block; }.room-status strong { font-size:12px; }.room-status span { margin-top:3px;color:var(--muted);font-size:9px; }
.players-heading { display:flex;justify-content:space-between;align-items:center;margin:19px 0 8px;color:var(--muted);font-size:9px;letter-spacing:.12em; }.players-heading b { display:grid;place-items:center;min-width:24px;height:24px;border-radius:12px;color:#071116;background:var(--green); }
.player-list { display:grid;gap:6px; }.player-row { display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:5px;background:#102129; }.player-avatar { display:grid;place-items:center;width:29px;height:29px;border-radius:50%;color:#071116;background:var(--cyan);font-weight:900; }.player-row strong { flex:1;font-size:11px; }.player-row span { color:var(--muted);font-size:8px;text-transform:uppercase; }
.network-hint { margin:16px 0 0;color:var(--muted);font-size:9px;line-height:1.5; }.network-hint code { color:var(--cyan); }

/* Losse werkvensters voor een opstelling met meerdere beeldschermen. */
body.multi-screen-mode:not(.panel-window) .workspace { display:none; }
body.multi-screen-mode:not(.panel-window) #appShell::after {
  content:"MULTISCHERM ACTIEF · gebruik ‘Schermen’ om panelen te openen of naar voren te halen";
  display:grid;place-items:center;height:calc(100vh - 76px);padding:30px;
  color:#789aa9;background:radial-gradient(circle at 50% 20%,#102d3a,#07171d 62%);
  font-size:11px;font-weight:800;letter-spacing:.12em;text-align:center;
}
body.panel-window { min-width:0;width:100vw;height:100vh;background:var(--bg); }
body.panel-window .topbar { display:none; }
body.panel-window .workspace { display:block;height:100vh;background:var(--bg); }
body.panel-window .panel { display:none;width:100%;height:100%;border:0; }
body.panel-window.panel-only-map .map-panel { display:block; }
body.panel-window.panel-only-incidents .incidents-panel { display:block; }
body.panel-window.panel-only-resources .resources-panel { display:flex; }
body.panel-window.panel-only-communications .communications-panel { display:block; }
body.panel-window.panel-only-desk .desk-panel { display:block; }
body.panel-window.panel-only-status .status-panel { display:block; }
body.panel-window.panel-only-p2000 .p2000-panel { display:flex; }
body.panel-window .panel-heading { min-height:72px;padding:15px 18px; }
body.panel-window .panel-heading h2 { font-size:18px; }
body.panel-window .incident-list { height:calc(100% - 72px); }
body.panel-window .active-call { height:calc(100% - 72px); }
body.panel-window .toast-container { right:12px;bottom:12px; }
body.panel-window.panel-only-map .overlay-heading { min-height:72px; }

.auxiliary-panel { display:none; }
.ops-windowbar { height:44px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;border-bottom:1px solid #315162;background:#0c2b40; }.ops-windowbar strong { font-size:13px; }.ops-windowbar span { color:#8fb1c0;font-size:10px; }
.simulation-strip { height:42px;display:flex;align-items:center;gap:1px;padding:5px 8px;border-bottom:1px solid #315162;background:#143f5d; }.simulation-strip button { height:30px;padding:0 15px;border:1px solid #52758a;background:#315d78;font-size:10px;cursor:pointer; }.simulation-strip span { margin-left:auto;color:#98b5c2;font-size:10px;letter-spacing:.08em; }
.communications-layout { height:calc(100% - 86px);display:grid;grid-template-columns:minmax(420px,1fr) minmax(570px,1.15fr); }
.comm-sidebar { min-width:0;border-right:2px solid #477087;background:#0c3450;overflow:auto; }.comm-tabs { height:42px;display:flex;align-items:center;gap:30px;padding:0 15px;border-bottom:1px solid #477087;background:#214b68;font-size:11px; }.comm-tabs span { color:#a8bdc7; }
.comm-call-queue { min-height:64px; }.comm-line { display:grid;grid-template-columns:43px 1fr 43px;align-items:center;min-height:58px;border-bottom:1px solid #315b73;background:#365d72; }.comm-line:hover { filter:brightness(1.08); }.comm-line .phone-cell,.comm-line .comm-reject { align-self:stretch;border:0;color:white;font-size:18px;cursor:pointer; }.comm-line .phone-cell { background:#118d34; }.comm-line .comm-reject { background:#a52332; }.comm-line div { padding-left:10px; }.comm-line div strong,.comm-line div span { display:block;color:white; }.comm-line div strong { font-size:11px; }.comm-line div span { margin-top:3px;font-size:9px; }
.comm-line.line-ordered { background:#49bfd1; }.comm-line.line-ordered .phone-cell { background:#16859a; }.comm-line.line-oms { background:#e9a13f; }.comm-line.line-oms .phone-cell { background:#a86514; }.comm-line.line-fire-non-emergency { background:#68a9df; }.comm-line.line-fire-non-emergency .phone-cell { background:#2a6d9f; }
.comm-line .phone-cell { background:#16a84a!important; }
.comm-line.claimed-line { color:#bac5c9;background:#4c5960;filter:saturate(.35); }.comm-line.claimed-line:hover { filter:saturate(.35); }.comm-line.claimed-line .phone-cell,.comm-line.claimed-line .comm-reject { color:#d3dbde!important;background:#69767c!important;cursor:not-allowed; }.comm-line.claimed-line div span { color:#d3dbde;font-weight:800; }
.talkgroup-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:3px;padding:230px 3px 4px; }.talkgroup-card { min-height:96px;border:1px solid #496b7d;background:#284e68; }.talkgroup-card header { display:flex;justify-content:space-between;padding:5px 7px;color:#b7d0db;background:#3c6680;font-size:9px; }.talkgroup-card header i { color:#33df65;font-style:normal; }.talkgroup-card div { display:grid;place-content:center;height:68px;padding:6px;text-align:center; }.talkgroup-card strong { font-size:11px; }.talkgroup-card small { margin-top:4px;color:#c1d0d6;font-size:8px; }
.comm-workarea { min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden;background:#0b3857; }.standard-prompts { flex:none;background:#244e6a; }.prompt-title { display:flex;justify-content:space-between;padding:12px 17px;border-bottom:1px solid #52778e; }.prompt-title span { color:#b5c9d2;font-size:9px; }.prompt-grid { display:grid;grid-template-columns:repeat(4,1fr); }.prompt-grid button { min-height:48px;border:1px solid #668aa0;color:white;background:#4d7894;font-size:10px;cursor:pointer; }.prompt-grid button:hover { background:#628fa9; }
.comm-empty { flex:1;display:grid;place-items:center;align-content:center;min-height:0;color:#8eacbb;text-align:center; }.comm-empty span { font-size:48px; }.comm-empty strong { margin-top:10px;color:white; }.comm-empty p { font-size:10px; }
.connected-call { display:flex;align-items:center;justify-content:space-between;min-height:65px;padding-left:20px;color:white;background:#c91a22; }.connected-call button { align-self:stretch;width:120px;border:0;color:white;background:#ff4954;font-size:25px;cursor:pointer; }
.connected-call.overdue { background:#8f1018;box-shadow:inset 5px 0 #ffc62e; }.connected-call.overdue strong::after { content:"  · ALARMERING CONTROLEREN";color:#ffd55c;font-size:9px;letter-spacing:.05em; }
.connected-call.disconnected { background:#51252a;box-shadow:inset 5px 0 #ffbf36; }.connected-call .comm-callback { width:auto;min-width:125px;margin-left:auto;padding:0 18px;color:#062218;background:#39d78a;font-size:11px;font-weight:900; }.connected-call .comm-callback:disabled { color:#b7c5c9;background:#52636a;cursor:wait; }
.comm-active { flex:1;min-height:0;display:grid;grid-template-rows:auto auto auto 34px minmax(0,1fr);overflow:hidden; }.comm-question-groups { display:grid;grid-template-columns:repeat(5,minmax(0,1fr));max-height:160px;overflow-x:hidden;overflow-y:auto; }.comm-question-groups button { min-width:0;min-height:50px;padding:6px;border:1px solid #668aa0;color:white;background:#4d7894;font-size:9px;line-height:1.3;overflow-wrap:anywhere;cursor:pointer; }.comm-question-groups button:hover { background:#668fa7; }.comm-question-groups button.asked { opacity:.48;background:#36586c;cursor:default; }
.comm-question-groups button.instruction { border-color:#32b991;background:#19745f; }.comm-question-groups button.instruction:hover { background:#218d73; }
.comm-intake-hint { padding:8px 14px;border-bottom:1px solid #52778e;color:#b8d5e1;background:#173f59;font-size:9px;line-height:1.45; }
.comm-dialogue-title { display:grid;place-items:center;padding:0 10px;text-align:center;color:#8eb1c0;font-size:10px; }.comm-dialogue { min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:12px;padding:8px 15px 22px;scrollbar-gutter:stable; }.comm-bubble { max-width:82%;padding:10px 12px;border-radius:10px;color:#173140;background:#f4f7f8;font-size:11px;line-height:1.45; }.comm-bubble.operator { align-self:flex-end;color:white;background:#0878dd; }
.comm-bubble.system { align-self:center;max-width:92%;border:1px solid #8c5f2b;color:#ffd995;background:#392a1a;text-align:center;font-size:10px;font-weight:800; }
@media(max-width:760px){.weather-effects{grid-template-columns:1fr}.capacity-modal,.weather-modal{padding:20px}.hospital-status-button b{display:none}.weather-status-button span{display:none}}
.desk-toolbar { height:46px;display:flex;align-items:center;gap:8px;padding:6px 14px;border-bottom:1px solid #385a6b;background:#103a56; }.desk-toolbar span { margin-right:auto;font-size:12px;font-weight:800; }.desk-toolbar button { padding:8px 12px;border:1px solid #55798d;color:white;background:#315b77;cursor:pointer; }.desk-toolbar .primary-button { border-color:var(--accent);color:#071116;background:var(--accent); }.desk-toolbar button:disabled { opacity:.4;cursor:not-allowed; }
.desk-panel { position:relative; }
.desk-referral-choice { position:absolute;z-index:40;top:82px;right:14px;display:grid;grid-template-columns:minmax(180px,1fr) repeat(3,auto);align-items:center;gap:7px;width:min(620px,calc(100% - 28px));padding:10px;border:1px solid #63b9d5;border-radius:5px;background:#0c2939;box-shadow:0 12px 30px #001018cc; }.desk-referral-choice div strong,.desk-referral-choice div span { display:block; }.desk-referral-choice div strong { color:#fff;font-size:11px; }.desk-referral-choice div span { margin-top:2px;color:#8fb2c1;font-size:8px; }.desk-referral-choice button { padding:9px 11px;border:1px solid #55798d;color:white;background:#315b77;cursor:pointer; }.desk-referral-choice button:hover { border-color:var(--cyan);background:#3e7593; }
.desk-layout { height:calc(100% - 90px);display:grid;grid-template-columns:minmax(310px,1fr) minmax(310px,1fr) minmax(310px,1fr);background:#0c3450;transition:grid-template-columns .18s ease; }
.desk-layout.layout-form { grid-template-columns:minmax(440px,1.65fr) minmax(280px,.8fr) minmax(260px,.7fr); }
.desk-layout.layout-notes { grid-template-columns:minmax(300px,.8fr) minmax(280px,.75fr) minmax(440px,1.55fr); }
.desk-width-controls { display:flex;gap:2px;margin-right:6px; }.desk-width-controls button { padding:6px 8px;font-size:8px; }.desk-width-controls button.active { color:#071116;background:var(--cyan); }
.desk-form-column,.desk-resources-column,.desk-documentation { min-width:0;overflow-y:auto;border-right:1px solid #466b7f; }.desk-form-column { padding:12px; }.desk-section-title { margin:8px 0 7px;color:#77b4d0;font-size:8px;font-weight:900;letter-spacing:.14em; }.desk-form-column label { display:block;margin-bottom:7px;color:#9cb7c3;font-size:8px; }.desk-form-column input,.desk-form-column select,.desk-form-column textarea,.desk-documentation textarea { display:block;width:100%;margin-top:4px;padding:9px;border:1px solid #55798d;border-radius:0;outline:0;color:white;background:#315b77;font-size:10px; }.desk-form-column input:focus,.desk-form-column select:focus,.desk-form-column textarea:focus,.desk-documentation textarea:focus { border-color:#61c8ed;background:#376781; }.desk-form-column textarea { min-height:58px;resize:vertical; }.desk-row { display:grid;grid-template-columns:1fr 1.5fr;gap:7px; }
.desk-classification-field { position:relative;z-index:8; }.desk-classification-suggestions { position:absolute;top:100%;left:0;right:0;max-height:236px;overflow:auto;background:#0c2633;border:1px solid #5ca8c4;box-shadow:0 10px 24px #0009; }.desk-classification-suggestions.hidden { display:none; }.desk-classification-suggestions button { display:block;width:100%;padding:9px 11px;border:0;border-bottom:1px solid #315365;text-align:left;background:#102f3e;color:#f4fbff;font:inherit;font-size:11px;cursor:pointer; }.desk-classification-suggestions button:hover,.desk-classification-suggestions button:focus { background:#1d5268;color:#fff;outline:0; }.classification-no-match { display:block;padding:10px 11px;color:#9ab6c3;font-size:10px; }
.desk-incident-linker { padding:8px;border-left:3px solid var(--cyan);background:#123f58; }.desk-incident-linker small { display:block;margin-top:5px;color:#83a9b8;font-size:7px;line-height:1.35; }
.desk-section-heading { display:flex;align-items:center;justify-content:space-between;min-height:48px;padding:10px 16px;border-bottom:1px solid #466b7f;background:#143d59; }.desk-section-heading strong { font-size:14px; }.desk-section-heading span { color:#8eacba;font-size:8px; }.desk-unit-list { padding:8px; }.desk-unit { display:grid;grid-template-columns:34px 1fr auto;align-items:center;margin-bottom:4px;border:1px solid #446a7e;background:#234d68; }.desk-unit b { align-self:stretch;display:grid;place-items:center;background:#263caf; }.desk-unit.available b { background:#0aaa29; }.desk-unit div { padding:8px; }.desk-unit strong,.desk-unit small { display:block; }.desk-unit strong { font-size:10px; }.desk-unit small { margin-top:2px;color:#aac0ca;font-size:8px; }.desk-unit span { padding-right:10px;color:#b8cbd3;font-size:8px; }.desk-task { display:grid;grid-template-columns:22px 1fr auto;align-items:center;min-height:50px;padding:8px 14px;border-bottom:1px solid #31586f;font-size:10px; }.desk-task span { padding:4px 7px;border-radius:3px;color:#b5d8e7;background:#285a78;font-size:7px; }.desk-events { padding:14px;color:#99b4bf;font-size:9px;line-height:1.55; }
.desk-handover-note { margin:14px;padding:16px;border:1px solid #3f6a7e;color:#b7ccd5;background:#173f58;font-size:10px;line-height:1.6; }
.desk-event { margin-bottom:7px;padding:8px 10px;border-left:3px solid #4a819c;background:#173f58; }.desk-event.pager { border-left-color:#f0ad32;background:#203f50; }.desk-event b { color:#7fb5ca; }.desk-event span { margin-left:8px;color:#f3c45a;font-weight:900;letter-spacing:.05em; }.desk-event p { margin:4px 0 0;color:#edf6f8;font-size:9px;line-height:1.45; }
.major-coordination{margin:0 0 14px;border:1px solid #e75a37;border-radius:6px;overflow:hidden;background:#0b2b3b;color:#eff9fc}.major-coordination.potential{border-color:#e9ad35}.major-coordination header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;background:linear-gradient(90deg,#7e261f,#173f58)}.major-coordination.potential header{background:linear-gradient(90deg,#5d441a,#173f58)}.major-coordination header small{display:block;color:#ffbd7b;font-size:9px;font-weight:900;letter-spacing:.16em}.major-coordination header h3{margin:2px 0 0;font-size:16px}.major-coordination header>strong{padding:5px 8px;border-radius:10px;background:#092331;color:#7de5dd;font-size:10px}.major-hint{margin:0;padding:12px 14px;color:#d7e9ef;font-size:11px;line-height:1.5}.methane-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:#365d6f}.methane-grid div{display:grid;grid-template-columns:30px 1fr;align-items:start;gap:8px;padding:8px 10px;background:#123a50}.methane-grid b{display:grid;place-items:center;width:25px;height:25px;border-radius:4px;background:#ee5d34;color:#fff;font-size:13px}.methane-grid span{font-size:10px;line-height:1.4}.major-task-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;padding:10px}.major-task-grid button{display:flex;align-items:center;gap:7px;min-height:36px;padding:7px 9px;border:1px solid #3d6678;border-radius:4px;background:#173e52;color:#dbeaf0;text-align:left;font-size:10px}.major-task-grid button:hover{border-color:#63d9d1}.major-task-grid button.done{border-color:#218d72;background:#164d49;color:#fff}.major-task-grid button span{font-size:14px;color:#ffd057}@media(max-width:700px){.methane-grid,.major-task-grid{grid-template-columns:1fr}}
.desk-documentation { display:grid;grid-template-rows:48px auto 40px minmax(140px,1fr);border:0;background:#0a2d46; }
.desk-note-composer { padding:12px 14px;border-bottom:1px solid #466b7f;background:#123b55; }.desk-note-composer label { display:block;margin-bottom:6px;color:#9fc1d0;font-size:9px;font-weight:800; }.desk-note-composer textarea { display:block;width:100%;min-height:72px;margin:0;padding:9px;border:1px solid #55798d;color:white;background:#315b77;resize:vertical;font-size:11px;line-height:1.45;outline:0; }.desk-note-composer textarea:focus { border-color:#61c8ed;background:#376781; }.desk-note-composer textarea:disabled { opacity:.55; }.desk-note-composer small { display:block;margin-top:6px;color:#83a5b4;font-size:8px;line-height:1.4; }
.desk-official-heading { display:flex;align-items:center;justify-content:space-between;padding:8px 14px;border-bottom:1px solid #466b7f;background:#0e3149; }.desk-official-heading strong { font-size:11px; }.desk-official-heading span { color:#75a4b8;font-size:8px; }
.desk-official-notes { min-height:0;overflow-y:auto;padding:8px;background:#08273b; }.desk-official-note { margin-bottom:6px;border-left:3px solid #35bde8;background:#123c55; }.desk-official-note.command { border-left-color:#f09a3e; }.desk-official-note div { display:flex;gap:8px;padding:6px 9px 0;color:#7fa7b8;font-size:8px; }.desk-official-note div strong { color:#b9d2dc; }.desk-official-note p { margin:0;padding:5px 9px 8px;color:#eef7fa;font-size:10px;line-height:1.45;white-space:pre-wrap; }.desk-note-empty { padding:18px;color:#7698a8;text-align:center;font-size:9px; }
.status-tabs { display:flex;align-items:center;gap:3px;padding:6px 10px;border-bottom:1px solid #3b5b6d;background:#172f42; }.status-tabs button { padding:8px 12px;border:0;color:#8fa6b2;background:transparent;cursor:pointer; }.status-tabs button.active { color:white;background:#0b3959; }.status-tabs span { margin-left:auto;color:#8ba6b2;font-size:9px; }
.ambulance-duty-info { padding:6px 12px;border-bottom:1px solid #315267;background:#10283a;color:#90afc0;font-size:9px;letter-spacing:.02em; }
.shift-start-choice { margin:16px 0;padding:16px;border:1px solid #315f74;border-radius:8px;background:linear-gradient(135deg,#0b2f40,#092431);display:grid;gap:12px;color:#e8f5f8;box-shadow:inset 0 1px #5da3b222; }
.shift-start-choice > strong { display:flex;align-items:center;gap:8px;font-size:14px;font-weight:900;letter-spacing:.01em; }.shift-start-choice > strong::before { content:"DIENST";padding:4px 6px;border-radius:3px;color:#061d29;background:#49d4dc;font-size:8px;letter-spacing:.12em; }
.shift-time-controls { display:flex;gap:9px;align-items:end;flex-wrap:wrap; }.shift-start-choice label { display:grid;gap:5px;min-width:128px;color:#a9cad6;font-size:10px;font-weight:800;letter-spacing:.07em;text-transform:uppercase; }.shift-start-choice label span { padding-left:1px; }
.shift-start-choice select,.shift-start-choice button { appearance:none;min-height:42px;padding:0 13px;border:1px solid #4e8095;border-radius:5px;color:#f4fbfc;background:#123e53;font:800 12px system-ui,sans-serif;line-height:1;cursor:pointer;transition:background .16s,border-color .16s,transform .16s; }.shift-start-choice select { padding-right:30px;background:#102f41 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23b9e6ef' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 11px center; }.shift-start-choice select:focus,.shift-start-choice button:focus-visible { outline:0;border-color:#58d6e2;box-shadow:0 0 0 3px #36b9c933; }
.shift-start-choice button:hover { border-color:#6fddea;background:#18536a;transform:translateY(-1px); }.shift-now-button { display:inline-flex;align-items:center;justify-content:center;gap:7px;color:#bfeaf0!important;background:#173f52!important; }.shift-now-button i { color:#4ce2d0;font-size:17px;font-style:normal; }.shift-day-choice { display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px!important;align-items:stretch!important; }.shift-day-choice button { display:flex;align-items:center;justify-content:center;gap:7px;min-width:0;border-color:#3e687b!important;color:#b8d3dc!important;background:#0e3142!important; }.shift-day-choice button i { padding:3px 5px;border-radius:3px;color:#83b5c3;background:#1b485a;font-size:8px;font-style:normal;letter-spacing:.04em; }.shift-day-choice button.active { border-color:#4ee0d5!important;color:#fff!important;background:linear-gradient(135deg,#167e7f,#195c74)!important;box-shadow:inset 0 0 0 1px #9ff3e333; }.shift-day-choice button.active i { color:#092d35;background:#75efe0; }.shift-start-choice small { padding-top:2px;color:#9ab9c5;font-size:10px;line-height:1.45; }
.duty-roster-field { display:grid;gap:3px;margin-bottom:5px;font-size:10px;color:#9eb7c1; }.duty-roster-field input { min-width:190px;padding:6px;border:1px solid #3d6577;background:#0b2633;color:#e9f5f8;border-radius:3px; }
.ambulance-duty-info strong { color:#d7edf7; }
.station-status-grid { height:calc(100% - 111px);display:grid;grid-template-columns:repeat(3,minmax(260px,1fr));align-content:start;gap:9px;overflow-y:auto;padding:10px;background:#111f2f; }.station-block { min-width:0;background:#233247; }.station-block h3 { margin:0;padding:10px 12px;border-bottom:1px solid #3b4c60;font-size:11px; }.station-block h3 small { float:right;color:#8ea9b7;font-size:7px;letter-spacing:.1em; }.station-unit-row { display:grid;grid-template-columns:48px 1fr auto;align-items:center;min-height:39px;border-bottom:1px solid #35465a; }.station-code { align-self:stretch;display:grid;place-items:center;background:#343940;font-weight:900; }.station-unit-row strong { padding-left:10px;font-size:9px; }.station-unit-row span:last-child { padding-right:10px;color:#adc0cd;font-size:8px; }

.desk-login { position:fixed;inset:0;z-index:3000;color:#eef7fa;background:radial-gradient(circle at 35% 10%,#1d5c81,#0b3858 48%,#082f4b); }.login-topbar { height:78px;display:flex;align-items:center;gap:12px;padding:0 28px;border-bottom:1px solid #47758f;background:linear-gradient(90deg,#2374a6,#075287); }.login-topbar div strong,.login-topbar div span { display:block; }.login-topbar div span { margin-top:3px;color:#a8d0e5;font-size:10px; }.login-topbar b { margin-left:auto;font-size:10px;letter-spacing:.15em; }.login-content { height:calc(100% - 78px);display:grid;grid-template-columns:2fr 1fr;gap:20px;padding:28px; }.login-content > section { max-width:1050px; }.login-content h1 { margin:4px 0 7px;font-size:27px; }.login-content > section > p { margin:0 0 18px;color:#a7c3d1;font-size:11px; }.login-name-label { display:block;margin-bottom:5px;color:#a9c7d5;font-size:9px;letter-spacing:.1em; }.login-name-input { width:min(420px,100%);padding:11px;border:1px solid #5b88a0;color:white;background:#164c6d;outline:0; }.desk-choices { display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:18px;margin-top:26px; }.desk-choice { position:relative;min-height:126px;padding:45px 16px 14px;border:1px solid #4c7890;color:white;background:#214f6e;text-align:left;cursor:pointer; }.desk-choice:hover { border-color:#58c9f2;background:#28617f; }.desk-choice .signal-light { position:absolute;top:-22px;right:20px;width:24px;height:60px;border:4px solid #18384a;border-radius:4px;background:linear-gradient(#e73d39 0 25%,#f1ca26 25% 50%,#49c646 50% 75%,#37b7ed 75%);box-shadow:0 6px 13px #0008; }.desk-choice strong,.desk-choice span { display:block; }.desk-choice strong { font-size:14px; }.desk-choice span { margin-top:7px;color:#aac8d6;font-size:9px; }.desk-choice em { position:absolute;left:15px;top:14px;font:900 20px ui-monospace,monospace;font-style:normal; }.login-content aside { border:1px solid #315d78;background:#072d47; }.session-heading { display:flex;justify-content:space-between;padding:16px;border-bottom:1px solid #315d78;background:#214c69; }.session-heading strong { font-size:12px; }.session-heading span { color:#81d998;font-size:9px; }.session-heading i { display:inline-block;width:7px;height:7px;border-radius:50%;background:#35db60; }.login-session-list { padding:12px; }.login-session-list p { color:#779baa;font-size:10px; }.login-person { display:flex;align-items:center;gap:10px;padding:10px;border-bottom:1px solid #244b63; }.login-person b { display:grid;place-items:center;width:28px;height:28px;border-radius:50%;color:#08314c;background:#5bcaf0; }.login-person strong,.login-person span { display:block; }.login-person strong { font-size:10px; }.login-person span { color:#8eb0bf;font-size:8px; }
.online-room-gate { grid-column:1/-1;display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:15px;min-height:92px;padding:17px 19px;border:1px solid #53bc83;border-radius:6px;background:linear-gradient(90deg,#12534f,#103f55);box-shadow:0 10px 28px #001d2b66; }
.online-room-gate > i { display:grid;place-items:center;width:40px;height:40px;border-radius:50%;color:#092b20;background:#55d98a;box-shadow:0 0 15px #55d98a77;font-style:normal; }
.online-room-gate strong,.online-room-gate span { display:block; }.online-room-gate strong { font-size:13px; }.online-room-gate span { margin-top:5px;color:#afd0d8;font-size:9px;line-height:1.45; }
.online-room-gate button { min-height:42px;padding:10px 14px;border:1px solid #76e4a5;border-radius:4px;color:#09271b;background:#55d98a;cursor:pointer;font-size:10px;font-weight:900; }
.desk-choice.occupied { border-color:#6b7280;color:#9cadb5;background:#193545;cursor:not-allowed;filter:saturate(.45); }
.desk-choice.occupied .signal-light { opacity:.45;filter:grayscale(.65); }
.desk-choice.occupied > span { color:#e4a4aa; }.desk-choice.occupied > small { display:block;margin-top:8px;color:#ff8d96;font-size:9px;font-weight:900; }
.desk-choice.own-desk { border-color:#55d98a;box-shadow:inset 0 0 0 2px #55d98a33; }
.desk-choice.pending { opacity:.65;cursor:wait; }
.login-role-choice { display:grid;grid-template-columns:1fr 1fr;gap:10px;width:min(680px,100%);margin-top:18px; }.login-role-choice button { padding:15px;border:1px solid #4c7890;color:#c4dae4;background:#143f5c;text-align:left;cursor:pointer; }.login-role-choice button.active { border-color:#59d1f5;color:white;background:#216789;box-shadow:0 0 0 2px rgba(89,209,245,.12); }.login-role-choice strong,.login-role-choice span { display:block; }.login-role-choice strong { font-size:13px; }.login-role-choice span { margin-top:4px;color:#9dbdcc;font-size:9px; }.login-dispatch-settings { display:grid;grid-template-columns:1fr 1fr;gap:10px;width:min(680px,100%);margin-top:10px;padding:12px;border:1px solid #40728c;background:#103b57; }.login-dispatch-settings label { color:#acd0df;font-size:9px; }.login-dispatch-settings select { display:block;width:100%;margin-top:5px;padding:10px;border:1px solid #5b88a0;color:white;background:#164c6d; }
.login-play-mode-options { display:grid;grid-template-columns:repeat(2,minmax(280px,1fr));gap:12px;width:min(980px,100%);margin-top:12px; }
.login-multiplayer-choice { display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:12px;width:100%;margin:0;padding:13px 15px;border:1px solid #4c8094;border-radius:6px;color:#d8edf3;background:#0d4059;text-align:left;cursor:pointer;box-shadow:0 8px 20px #00263a55; }
.login-multiplayer-choice:hover { border-color:#66d99a;background:#12516b; }.login-multiplayer-choice.active { border-color:#55d98a;background:#145d62;box-shadow:0 0 0 2px rgba(85,217,138,.18); }
.login-multiplayer-choice > i { display:grid;place-items:center;width:34px;height:34px;border-radius:50%;color:#55d98a;background:#0a2e42;box-shadow:inset 0 0 0 1px #4a7b8d;font-style:normal; }.login-multiplayer-choice.active > i { color:#09251a;background:#55d98a;box-shadow:0 0 13px #55d98a88; }
.login-multiplayer-choice span,.login-multiplayer-choice b,.login-multiplayer-choice strong,.login-multiplayer-choice small { display:block; }.login-multiplayer-choice b { color:#55d98a;font-size:7px;letter-spacing:.15em; }.login-multiplayer-choice strong { margin-top:3px;font-size:12px; }.login-multiplayer-choice small { margin-top:3px;color:#9fc1ce;font-size:8px;line-height:1.4; }.login-multiplayer-choice em { min-width:82px;padding:7px 9px;border:1px solid #5a8fa3;border-radius:4px;color:#cfe8ef;background:#153f54;font-size:8px;font-weight:900;font-style:normal;text-align:center; }.login-multiplayer-choice.active em { border-color:#55d98a;color:#082217;background:#55d98a; }
@media (max-width:1050px) { .login-play-mode-options { grid-template-columns:1fr; } }
.session-save-modal { position:relative;width:min(620px,calc(100vw - 30px));padding:28px;border:1px solid #41616b;border-radius:8px;color:#eaf5f7;background:#0a2028;box-shadow:0 28px 80px #000c; }
.session-save-modal h2 { margin:7px 0 8px;font-size:24px; }.session-save-modal>p { margin:0 0 18px;color:#93adb5;font-size:10px;line-height:1.5; }
.session-save-modal label { display:block;margin-top:12px;color:#a9c1c8;font-size:8px;font-weight:900;letter-spacing:.08em; }.session-save-modal input,.session-save-modal select { display:block;width:100%;margin-top:6px;padding:12px;border:1px solid #3b5b65;border-radius:4px;color:white;background:#102e38;outline:0; }.session-save-modal input:focus,.session-save-modal select:focus { border-color:var(--cyan); }
.session-save-account { margin-top:15px;padding:12px;border:1px solid #294750;border-radius:4px;color:#aac2c9;background:#0d2932;font-size:9px; }.session-save-account b { color:var(--cyan); }
.session-save-error { padding:10px!important;border:1px solid #963841!important;color:#ffb6bb!important;background:#39171b!important; }.session-save-actions { display:flex;justify-content:flex-end;gap:8px;margin-top:20px; }.session-save-actions button { padding:11px 14px;border-radius:4px;cursor:pointer;font-size:9px;font-weight:900; }.danger-button { margin-right:auto;border:1px solid #91404a;color:#ff9aa1;background:#32191d; }

.operator-intake:not(.panel-window) .workspace { grid-template-columns:minmax(700px,1fr);grid-template-rows:minmax(0,1fr) minmax(0,1fr); }
.operator-intake:not(.panel-window) .communications-panel { display:block;grid-column:1;grid-row:1; }
.operator-intake:not(.panel-window) .desk-panel { display:block;grid-column:1;grid-row:2; }
.operator-intake:not(.panel-window) .map-panel,.operator-intake:not(.panel-window) .incidents-panel,.operator-intake:not(.panel-window) .resources-panel { display:none; }
.operator-intake:not(.panel-window) .speech-dock { display:none; }
.operator-intake .intake-handover-dock { display:none; }
.operator-intake [data-open-panel="resources"],.operator-intake [data-open-panel="status"] { display:none; }
.operator-intake .standard-prompts,.operator-intake .talkgroup-grid { display:none; }
.operator-intake .communications-layout { height:calc(100% - 86px);grid-template-columns:minmax(260px,.55fr) minmax(520px,1.45fr); }
.operator-intake .comm-question-groups { grid-template-columns:repeat(3,minmax(0,1fr)); }
.operator-intake .comm-workarea { overflow:hidden; }
.incident-create-button { padding:0 11px;border:1px solid #62c8eb;border-radius:5px;color:#052a3e;background:#5ed2f4;font-weight:900;cursor:pointer;box-shadow:0 4px 12px #001d2b66; }
.incident-create-button span { color:white;background:#177fa8; }
.incident-create-button:hover { color:white;background:#2189b4; }
.operator-intake .incident-create-button { display:none; }
.desk-close-manual { margin-left:auto;padding:6px 11px;border:1px solid #7aa0b3;color:#e9f6fa;background:#194d68;cursor:pointer; }
.desk-close-manual:hover { border-color:#62d2f5;background:#226783; }
.operator-dispatch:not(.panel-window) .workspace { grid-template-columns:clamp(520px,36vw,620px) minmax(640px,1fr);grid-template-rows:minmax(0,62fr) minmax(0,38fr); }
.operator-dispatch:not(.panel-window) .incidents-panel { grid-column:1;grid-row:1 / 3; }
.operator-dispatch:not(.panel-window) .map-panel { grid-column:2;grid-row:1; }
.operator-dispatch:not(.panel-window) .resources-panel { grid-column:2;grid-row:2; }
.operator-dispatch [data-open-panel="desk"] { display:none; }
body.operator-dispatch.dispatch-manual-entry:not(.panel-window) .desk-panel { display:block;position:fixed;z-index:3600;inset:58px 12px 12px;box-shadow:0 20px 60px #00111dcc; }
body.operator-dispatch.dispatch-manual-entry:not(.panel-window)::after { content:"";position:fixed;z-index:3500;inset:58px 0 0;pointer-events:none;background:#00131dcc; }
body.panel-window.panel-only-desk .desk-close-manual:not(.hidden) { display:block; }
body.panel-window .desk-login { display:none; }

/* Landelijk meldkamernetwerk */
.network-home { position:fixed;inset:0;z-index:4200;min-width:980px;color:#edf7fa;background:#071c2a; }
#settingsPasswordModal { z-index:4800; }
.network-homebar { height:76px;display:flex;align-items:center;gap:22px;padding:0 24px;border-bottom:1px solid #3a6c86;background:linear-gradient(90deg,#2374a6,#075287 62%,#063f68);box-shadow:0 8px 30px #00121d88; }
.network-brand { display:flex;align-items:center;gap:12px; }.network-brand strong,.network-brand span { display:block; }.network-brand strong { font-size:13px;letter-spacing:.05em; }.network-brand span { margin-top:3px;color:#acd1e4;font-size:9px; }
.network-status { display:flex;align-items:center;gap:8px;margin-left:auto;padding:8px 12px;border:1px solid #4c7c95;border-radius:4px;color:#a9cbd9;background:#0a456b;font-size:9px; }.network-status i { width:7px;height:7px;border-radius:50%;background:#46de75;box-shadow:0 0 9px #46de75; }.network-status b { padding-left:8px;border-left:1px solid #5a8397;color:white; }
.network-settings-button { display:flex;align-items:center;gap:7px;padding:10px 14px;border:1px solid #6f98ac;border-radius:4px;color:white;background:#174e6c;cursor:pointer;font-weight:800; }.network-settings-button:hover { border-color:#64d4fa;background:#1d607f; }.network-settings-button span { font-size:15px; }
.network-home-layout { height:calc(100% - 76px);display:grid;grid-template-columns:350px minmax(0,1fr); }
.network-room-sidebar { overflow:auto;padding:25px 22px 20px;border-right:1px solid #31556a;background:linear-gradient(165deg,#0c354e,#08283c 70%); }.network-room-sidebar h1 { margin:5px 0 8px;font-size:27px; }.network-room-sidebar > p { margin:0 0 18px;color:#93b4c2;font-size:10px;line-height:1.65; }
.control-room-list { display:grid;gap:5px; }.control-room-list button { display:grid;grid-template-columns:12px 1fr;align-items:center;gap:10px;width:100%;padding:10px 11px;border:1px solid transparent;border-radius:4px;color:#d9eaf0;background:#0d2d40;text-align:left;cursor:pointer; }.control-room-list button:hover { border-color:#3f7893;background:#123d55; }.control-room-list button.active { border-color:#54cafa;background:#175978;box-shadow:inset 3px 0 #55d5ff,0 5px 14px #001e2b88; }.control-room-list button i { width:8px;height:8px;border:2px solid #6ec9ec;border-radius:50%;background:#0a2637; }.control-room-list button.active i { background:#55d5ff;box-shadow:0 0 9px #55d5ff; }.control-room-list strong,.control-room-list small { display:block; }.control-room-list strong { font-size:10px; }.control-room-list small { margin-top:3px;color:#86a9b8;font-size:8px; }
.network-map-area { position:relative;min-width:0;overflow:hidden;background:#061b28; }.network-map-area #networkMap { position:absolute;inset:0;z-index:0;background:#0b2533; }.network-map-area #networkMap .leaflet-tile-pane { filter:saturate(.65) brightness(.68) contrast(1.08) hue-rotate(160deg); }.network-map-area #networkMap::after { content:"";position:absolute;inset:0;z-index:400;pointer-events:none;background:linear-gradient(90deg,#061b2866,transparent 28%),linear-gradient(0deg,#061b2890,transparent 35%); }
.network-map-legend { position:absolute;z-index:600;top:15px;left:15px;display:flex;gap:6px;padding:7px;border:1px solid #4b7184;border-radius:5px;background:#071f2de8;box-shadow:0 8px 20px #00131c99; }.network-map-legend span { display:flex;align-items:center;gap:5px;padding:4px 6px;color:#b5ced8;font-size:8px; }.network-map-legend i { width:8px;height:8px;border-radius:50%;background:#47aee6; }.network-map-legend i.fire { background:#ed5865; }.network-map-legend i.ambulance { background:#e7bc3c; }.network-map-legend i.hospital { background:#51bdf2; }
.network-marker { display:grid;place-items:center;width:28px;height:28px;border:2px solid #d7edf5;border-radius:50%;color:white;background:#1675a8;box-shadow:0 3px 10px #00151fdd;font:900 11px system-ui;transition:opacity .18s,filter .18s,transform .18s,box-shadow .18s; }.network-marker.control.dimmed { opacity:.24;filter:saturate(.25) brightness(.72);transform:scale(.82);box-shadow:0 2px 5px #00151f88; }.leaflet-marker-icon:hover .network-marker.control.dimmed { opacity:.72;filter:saturate(.7) brightness(.95);transform:scale(.96); }.network-marker.control.selected { width:36px;height:36px;border-color:#fff;background:#1bb7e9;box-shadow:0 0 0 6px #1bb7e933,0 4px 16px #00151f; }.network-marker.fire { background:#bd2735; }.network-marker.ambulance { color:#14202a;background:#efbd2c; }.network-marker.hospital { background:#278fc7; }.network-tooltip { border:1px solid #4f8399!important;color:white!important;background:#082b3d!important;box-shadow:0 5px 15px #00151fcc!important;font-size:9px!important; }.network-tooltip:before { border-top-color:#082b3d!important; }.network-tooltip strong,.network-tooltip span,.network-tooltip small { display:block; }.network-tooltip span { margin-top:3px;color:#9bc1d0; }.network-tooltip small { margin-top:3px;color:#61d9ee; }
.network-facility-popup .leaflet-popup-content-wrapper,.network-facility-popup .leaflet-popup-tip { color:#edf7fa;background:#10242d; }.network-facility-popup .leaflet-popup-content { width:auto!important;margin:0; }.network-facility-popup .leaflet-popup-close-button { z-index:3;color:#a9c5cf!important; }.network-post-detail { min-width:280px; }.network-facility-detail { min-width:260px;padding:14px 15px; }.network-facility-detail > b,.network-facility-detail > small { display:block; }.network-facility-detail > b { padding-right:18px;font-size:13px; }.network-facility-detail > small { margin-top:4px;color:#8faab5;font-size:8px; }.network-care-list { display:flex;flex-wrap:wrap;gap:4px;margin-top:10px;padding-top:9px;border-top:1px solid #29414c; }.network-care-list span { padding:4px 6px;border-radius:3px;color:#d9f2fb;background:#17618a;font-size:7px;font-weight:800; }.network-care-list em { color:#8faab5;font-size:8px;font-style:normal; }
.network-map-area .post-house { cursor:pointer; }
.selected-room-card { position:absolute;z-index:650;left:18px;right:18px;bottom:18px;padding:18px;border:1px solid #4d788e;border-radius:7px;background:linear-gradient(145deg,#0c3d57f4,#082b3ff5);box-shadow:0 15px 45px #00121ddd;backdrop-filter:blur(8px); }.selected-room-heading { display:flex;align-items:flex-start;gap:20px; }.selected-room-heading h2 { margin:4px 0 3px;font-size:20px; }.selected-room-heading p { margin:0;color:#92b5c4;font-size:9px; }.selected-room-heading button { margin-left:auto;min-width:190px; }
.selected-room-regions { display:flex;flex-wrap:wrap;gap:6px;margin-top:13px; }.selected-room-regions span { display:flex;align-items:center;gap:6px;padding:6px 9px;border:1px solid #396d84;border-radius:3px;color:#cbe0e8;background:#0d3045;font-size:8px; }.selected-room-regions b { color:#54d4f7;font-family:ui-monospace,monospace; }
.selected-room-stats { display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:11px; }.selected-room-stats div { padding:8px 10px;border-left:3px solid #3b99bd;background:#092a3d; }.selected-room-stats b,.selected-room-stats span { display:block; }.selected-room-stats b { font-size:16px; }.selected-room-stats span { margin-top:2px;color:#84a7b6;font-size:7px;text-transform:uppercase;letter-spacing:.08em; }
.selected-room-coverage { display:flex;align-items:center;gap:9px;margin-top:10px;padding:8px 10px;border:1px solid #355e72;background:#092537; }.selected-room-coverage i { width:9px;height:9px;border-radius:50%;background:#e4ad32;box-shadow:0 0 8px #e4ad32; }.selected-room-coverage i.ready { background:#43d977;box-shadow:0 0 8px #43d977; }.selected-room-coverage strong,.selected-room-coverage small { display:block; }.selected-room-coverage strong { font-size:8px; }.selected-room-coverage small { margin-top:2px;color:#87a9b7;font-size:7px; }
.settings-password-card { position:relative;width:min(430px,calc(100vw - 40px));padding:26px;border:1px solid #4f7a91;border-radius:7px;color:#edf7fa;background:#0b334a;box-shadow:0 24px 80px #001019; }.settings-password-card h2 { margin:6px 0 8px; }.settings-password-card > p { color:#9ab8c5;font-size:9px;line-height:1.55; }.settings-password-card label { display:block;margin:16px 0 5px;color:#bcd3dc;font-size:8px; }.settings-password-card input { width:100%;padding:12px;border:1px solid #527d92;color:white;background:#09283b;outline:0; }.settings-password-card .primary-button { width:100%;margin-top:13px; }.settings-password-error { color:#ff7880!important; }
.network-admin { position:fixed;inset:0;z-index:4600;color:#edf7fa;background:#071c2a; }.network-admin > header { height:72px;display:flex;align-items:center;padding:0 22px;border-bottom:1px solid #41718a;background:linear-gradient(90deg,#1f6f9f,#074b78); }.admin-header-actions { display:flex;gap:7px;margin-left:auto; }.admin-header-actions button,.admin-import { padding:9px 11px;border:1px solid #6b94a8;border-radius:3px;color:white;background:#174c68;cursor:pointer;font-size:8px;font-weight:800; }.admin-header-actions .danger { border-color:#b55c64;background:#813341; }.admin-import input { display:none; }
.network-admin-layout { height:calc(100% - 72px);display:grid;grid-template-columns:235px minmax(0,1fr); }.network-admin-layout > nav { padding:20px 14px;border-right:1px solid #31566b;background:#092b40; }.network-admin-layout > nav > span { display:block;padding:0 8px 9px;color:#76a8bc;font-size:7px;letter-spacing:.16em; }.network-admin-layout > nav > button { width:100%;padding:11px;border:0;border-left:3px solid transparent;color:#b7d0d9;background:transparent;text-align:left;cursor:pointer;font-size:9px;font-weight:800; }.network-admin-layout > nav > button:hover { background:#103a50; }.network-admin-layout > nav > button.active { border-left-color:#52d2f8;color:white;background:#174b65; }.admin-security-note { margin-top:20px;padding:11px;border:1px solid #554f36;background:#2e2a19; }.admin-security-note b { color:#f0c84b;font-size:7px;letter-spacing:.12em; }.admin-security-note p { margin:5px 0 0;color:#bcb89f;font-size:7px;line-height:1.55; }
.network-admin-layout > main { min-width:0;overflow:auto;padding:22px;background:radial-gradient(circle at 85% 0,#17394755,transparent 30%),#071f2e; }.admin-titlebar { display:flex;align-items:flex-end;gap:20px;padding-bottom:16px;border-bottom:1px solid #315467; }.admin-titlebar h1 { margin:4px 0 0;text-transform:capitalize; }.admin-titlebar p { margin:4px 0 0;color:#7fa2b0;font-size:8px; }.admin-titlebar > button { margin-left:auto; }
.admin-table { display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px;padding-top:14px; }.admin-table > button { display:flex;align-items:center;gap:10px;min-height:62px;padding:11px;border:1px solid #31586c;color:white;background:#0c3044;text-align:left;cursor:pointer; }.admin-table > button:hover { border-color:#58badc;background:#12445c; }.admin-table > button span { min-width:0; }.admin-table strong,.admin-table small { display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }.admin-table strong { font-size:9px; }.admin-table small { margin-top:4px;color:#7fa2b1;font-size:7px; }.admin-table i { margin-left:auto;padding:4px 6px;border-radius:8px;color:#d1a94c;background:#44391c;font-size:6px;font-style:normal;text-transform:uppercase; }.admin-table i.verified { color:#6ce49a;background:#153d2a; }.admin-empty { color:#7896a3;font-size:9px; }
.admin-editor-form { width:min(720px,calc(100vw - 50px));max-height:calc(100vh - 50px);overflow:auto;padding:24px;border:1px solid #527d92;border-radius:7px;color:white;background:#0b334a;box-shadow:0 20px 70px #001019; }.admin-editor-form h2 { margin:5px 0 16px; }.admin-editor-fields { display:grid;grid-template-columns:1fr 1fr;gap:10px; }.admin-editor-fields label { color:#a9c5d0;font-size:8px; }.admin-editor-fields label > span { display:block;margin-bottom:5px; }.admin-editor-fields input { width:100%;padding:10px;border:1px solid #497387;color:white;background:#09283a;outline:0; }.admin-editor-fields input:focus { border-color:#59d4f8; }.admin-editor-fields .admin-checkbox { display:flex;align-items:center;gap:8px;align-self:end;min-height:37px;padding:0 10px;border:1px solid #497387;background:#09283a; }.admin-editor-fields .admin-checkbox input { width:auto; }.admin-editor-fields .admin-checkbox span { margin:0; }.admin-editor-actions { display:grid;grid-template-columns:auto 1fr auto auto;gap:8px;margin-top:18px;padding-top:14px;border-top:1px solid #41677a; }.admin-editor-actions button { padding:9px 12px;border:1px solid #60889b;color:white;background:#143f55;cursor:pointer; }.admin-editor-actions .danger { border-color:#b85963;background:#74303b; }

/* Gegevensbeheer wordt bewust ruimer weergegeven. Op dit scherm is
   overzicht belangrijker dan dezelfde informatiedichtheid als de meldtafel. */
.network-admin > header { height:86px;padding:0 30px; }
.network-admin > header .network-brand strong { font-size:17px; }
.network-admin > header .network-brand span { font-size:11px; }
.admin-header-actions { gap:11px; }
.admin-header-actions button,.admin-import {
  min-height:42px;padding:11px 16px;font-size:11px;
}
.network-admin-layout {
  height:calc(100% - 86px);
  grid-template-columns:290px minmax(0,1fr);
}
.network-admin-layout > nav { padding:28px 20px; }
.network-admin-layout > nav > span { padding:0 12px 13px;font-size:10px; }
.network-admin-layout > nav > button {
  min-height:48px;padding:14px 15px;font-size:13px;
}
.admin-security-note { margin-top:28px;padding:16px; }
.admin-security-note b { font-size:10px; }
.admin-security-note p { margin-top:8px;font-size:10px;line-height:1.65; }
.network-admin-layout > main { padding:30px 34px; }
.admin-titlebar { padding-bottom:22px; }
.admin-titlebar .eyebrow { font-size:10px; }
.admin-titlebar h1 { margin-top:7px;font-size:34px;line-height:1.1; }
.admin-titlebar p { margin-top:8px;font-size:11px; }
.admin-titlebar > button {
  min-height:46px;padding:12px 19px;font-size:13px;
}
.admin-table {
  grid-template-columns:repeat(auto-fill,minmax(380px,1fr));
  gap:13px;padding-top:20px;
}
.admin-table > button {
  gap:15px;min-height:92px;padding:17px 18px;border-radius:3px;
}
.admin-table strong { font-size:14px; }
.admin-table small { margin-top:7px;font-size:10px; }
.admin-table i {
  padding:6px 9px;border-radius:12px;font-size:8px;letter-spacing:.04em;
}
.admin-empty { font-size:13px; }
.fleet-assignment-admin { padding-top:20px; }
.fleet-assignment-toolbar { display:grid;grid-template-columns:minmax(290px,420px) 1fr auto;align-items:end;gap:18px;padding:18px;border:1px solid #31586c;background:#0c3044; }
.fleet-assignment-toolbar label { display:grid;gap:8px;color:#a9c5d0;font-size:12px;font-weight:800; }
.fleet-assignment-toolbar select,.fleet-assignment-table input,.fleet-assignment-table select { width:100%;min-height:44px;padding:9px 11px;border:1px solid #497387;color:white;background:#09283a;font:inherit; }
.fleet-assignment-toolbar b,.fleet-assignment-toolbar span { display:block; }.fleet-assignment-toolbar b { font-size:18px; }.fleet-assignment-toolbar span { margin-top:5px;color:#8cb0c0;font-size:12px; }
.fleet-assignment-toolbar .primary-button { min-height:44px;white-space:nowrap; }
.fleet-assignment-help { margin:14px 0;padding:13px 15px;border-left:3px solid #54d3f7;color:#b8d4de;background:#10394d;font-size:12px;line-height:1.5; }
.fleet-assignment-table-wrap { overflow:auto;border:1px solid #31586c; }.fleet-assignment-table { width:100%;min-width:900px;border-collapse:collapse; }
.fleet-assignment-table th { padding:12px 14px;color:#85acbc;background:#0b293b;font-size:11px;letter-spacing:.06em;text-align:left;text-transform:uppercase; }.fleet-assignment-table td { padding:10px 12px;border-top:1px solid #284b5d; }
.fleet-assignment-table tr:hover td { background:#10394d; }.fleet-assignment-table button { min-height:40px;padding:8px 13px;border:1px solid #5d9ab3;color:white;background:#18536f;cursor:pointer;font-size:12px;font-weight:800; }.fleet-assignment-table button:hover { background:#227092; }
.fleet-empty { padding:28px!important;color:#8faab6;text-align:center;font-size:13px; }
.fleet-transfer-list { margin-top:16px;border:1px solid #31586c;background:#0b2b3e; }.fleet-transfer-list summary { padding:14px 16px;cursor:pointer;color:white;font-size:13px;font-weight:800; }.fleet-transfer-list p { margin:0;padding:0 16px 12px;color:#96b4c0;font-size:12px; }.fleet-transfer-list > div { display:flex;flex-wrap:wrap;gap:8px;padding:0 16px 16px; }.fleet-transfer-list button { padding:10px 12px;border:1px solid #3e6d82;color:#e6f4f8;background:#123f55;cursor:pointer;font-size:12px;text-align:left; }.fleet-transfer-list button:hover { border-color:#56c6e7;background:#19536c; }.fleet-transfer-list button span { display:block;margin-top:4px;color:#86abb9;font-size:10px; }.fleet-transfer-list em { color:#91acb6;font-size:12px; }
.admin-editor-form {
  width:min(920px,calc(100vw - 64px));padding:32px;
}
.admin-editor-form h2 { margin:7px 0 22px;font-size:26px; }
.admin-editor-fields { gap:16px 18px; }
.admin-editor-fields label { font-size:12px; }
.admin-editor-fields label > span { margin-bottom:8px; }
.admin-editor-fields input {
  min-height:46px;padding:12px 14px;font-size:13px;
}
.admin-editor-fields .admin-checkbox {
  min-height:46px;padding:0 14px;
}
.admin-editor-actions { gap:11px;margin-top:25px;padding-top:19px; }
.admin-editor-actions button {
  min-height:43px;padding:11px 17px;font-size:12px;
}
.settings-password-card { width:min(520px,calc(100vw - 40px));padding:34px; }
.settings-password-card h2 { font-size:25px; }
.settings-password-card > p { font-size:12px; }
.settings-password-card label { font-size:11px; }
.settings-password-card input { min-height:48px;font-size:15px; }
.settings-password-card .primary-button { min-height:46px;font-size:13px; }
@media (max-width:1100px) {
  .network-home-layout { grid-template-columns:300px minmax(0,1fr); }
  .selected-room-stats { grid-template-columns:1fr 1fr; }
  .network-admin-layout { grid-template-columns:250px minmax(0,1fr); }
  .network-admin-layout > main { padding:24px; }
  .admin-table { grid-template-columns:repeat(auto-fill,minmax(310px,1fr)); }
}
@media (max-width:800px) { .fleet-assignment-toolbar { grid-template-columns:1fr;align-items:stretch; }.fleet-assignment-toolbar .primary-button { width:100%; } }

/* De samengevoegde werkplek gebruikt dezelfde diepblauwe operationele
   kleurlaag als de losse meldkamerpanelen. De indeling blijft compact. */
body.single-screen-mode:not(.panel-window) {
  --bg:#062b43;
  --panel:#0a3450;
  --panel-2:#16465f;
  --line:#3c6175;
  background:radial-gradient(circle at 72% 0%,#1a6082,transparent 34%),#062b43;
}
body.single-screen-mode:not(.panel-window) .topbar {
  border-bottom-color:#48758b;
  background:linear-gradient(90deg,#145c86,#0a4167 58%,#082f4c);
  box-shadow:0 10px 28px #00172580;
}
body.single-screen-mode:not(.panel-window) .workspace { background:#3c6175; }
body.single-screen-mode:not(.panel-window) .panel { background:linear-gradient(155deg,#12415e 0%,#0a3450 65%,#082c44); }
body.single-screen-mode:not(.panel-window) .panel-heading {
  border-bottom-color:#466f84;
  background:linear-gradient(180deg,#174d6b,#103b56);
}
body.single-screen-mode:not(.panel-window) .overlay-heading { background:linear-gradient(#0d3c5bf5,#0b3551e8 76%,transparent); }
body.single-screen-mode:not(.panel-window) .incident-section-label,
body.single-screen-mode:not(.panel-window) .resource-table th { color:#89afbf;background:#0b2d45; }
body.single-screen-mode:not(.panel-window) .incident-list,
body.single-screen-mode:not(.panel-window) .resource-table-wrap { background:#082d45; }
body.single-screen-mode:not(.panel-window) .incident-card {
  border-color:#3e687c;
  background:linear-gradient(135deg,#174a66,#103b55);
  box-shadow:0 6px 16px #001b2a55;
}
body.single-screen-mode:not(.panel-window) .incident-card:hover { border-color:#62a0bb;background:#1a526f; }
body.single-screen-mode:not(.panel-window) .incident-card.selected { border-color:var(--accent);background:#294b58; }

/* Operationele opschaling: gedeeld door intake, uitgifte en radioverkeer. */
.incident-escalation-dock { flex:0 0 auto;border-bottom:1px solid #355365;background:#102f3e; }
.incident-escalation-dock > header { display:flex;align-items:center;justify-content:space-between;padding:7px 10px;border-bottom:1px solid #315365; }
.incident-escalation-dock > header span,.incident-escalation-dock > header strong { display:block; }
.incident-escalation-dock > header span { color:#f7a24a;font-size:7px;font-weight:900;letter-spacing:.13em; }
.incident-escalation-dock > header strong { margin-top:2px;font-size:10px; }
.incident-escalation-dock > header small { color:#88a8b6;font-size:7px; }
.escalation-choice-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px; }
.escalation-choice-grid.compact { display:flex;gap:4px;padding:6px 8px;overflow-x:auto; }
.escalation-choice-grid button { min-width:0;padding:7px 8px;border:1px solid #52778b;color:#dceaf0;background:#234d61;text-align:left;cursor:pointer; }
.escalation-choice-grid.compact button { flex:1 0 auto;padding:5px 7px;font-size:8px;text-align:center; }
.escalation-choice-grid button strong,.escalation-choice-grid button span { display:block; }
.escalation-choice-grid button strong { font-size:9px; }
.escalation-choice-grid button span { margin-top:3px;color:#9eb9c5;font-size:7px;line-height:1.3; }
.escalation-choice-grid button.grip { border-color:#52778b;background:#234d61; }
.escalation-choice-grid button.active { border-color:#ff742f;background:#8c321e;box-shadow:inset 3px 0 0 #ffb13b; }
.escalation-choice-grid button.grip.active { border-color:#ffcf4b;background:#7c5615; }
.escalation-choice-grid button:hover { filter:brightness(1.15); }
.escalation-picker-sections { display:grid;gap:6px; }
.fire-escalation-picker { display:grid;gap:6px; }
.escalation-group-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px; }
.escalation-group-grid button,.escalation-level-grid button,.escalation-grip-row button {
  min-width:0;padding:8px;border:1px solid #52778b;color:#dceaf0;background:#234d61;text-align:left;cursor:pointer;
}
.escalation-group-grid button strong,.escalation-group-grid button span,
.escalation-level-grid button strong,.escalation-level-grid button span,
.escalation-grip-row button strong,.escalation-grip-row button span { display:block; }
.escalation-group-grid button strong,.escalation-level-grid button strong,.escalation-grip-row button strong { font-size:9px; }
.escalation-group-grid button span,.escalation-level-grid button span,.escalation-grip-row button span { margin-top:3px;color:#9eb9c5;font-size:7px;line-height:1.3; }
.escalation-group-grid button.active { border-color:#49c8df;background:#15536a;box-shadow:inset 3px 0 0 #49c8df; }
.escalation-level-panel { border:1px solid #3f6679;background:#0d2937; }
.escalation-level-panel > header { display:flex;align-items:center;justify-content:space-between;padding:6px 8px;border-bottom:1px solid #34566a; }
.escalation-level-panel > header strong { color:#f7a24a;font-size:9px; }
.escalation-level-panel > header span { color:#88a8b6;font-size:7px; }
.escalation-level-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;padding:6px; }
.escalation-level-grid button.active { border-color:#ff742f;background:#8c321e;box-shadow:inset 3px 0 0 #ffb13b; }
.escalation-grip-row { display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px; }
.escalation-grip-row button { width:100%;border-color:#52778b;background:#234d61; }
.escalation-grip-row button.active { border-color:#ffcf4b;background:#7c5615; }
.fire-escalation-picker.compact .escalation-group-grid { display:flex;gap:4px;padding:6px 8px;overflow-x:auto; }
.fire-escalation-picker.compact .escalation-group-grid button { flex:1 0 auto;padding:5px 7px;text-align:center; }
.fire-escalation-picker.compact .escalation-level-panel { margin:0 8px 6px; }
.fire-escalation-picker.compact .escalation-level-grid { display:flex;overflow-x:auto; }
.fire-escalation-picker.compact .escalation-level-grid button { flex:1 0 auto;padding:5px 7px;text-align:center; }
.escalation-picker-sections > .escalation-choice-grid.medical { padding:0; }
.escalation-picker-sections > .escalation-choice-grid.medical.compact { padding:6px 8px; }
.incident-escalation-dock .escalation-grip-row { padding:0 8px 6px; }
@media (max-width:900px) {
  .escalation-group-grid,.escalation-level-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .escalation-grip-row { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
.escalation-empty { padding:9px;border:1px dashed #4d7081;color:#88a9b7;background:#102d3b;font-size:8px;text-align:center; }
.incident-escalation-badges { display:flex;flex-wrap:wrap;gap:4px;margin-top:5px; }
.incident-escalation-badge { display:inline-block;padding:2px 5px;border:1px solid #ff7d38;color:#ffe7d8;background:#71301f;font-size:7px;font-weight:900;letter-spacing:.06em;text-transform:uppercase; }
.incident-escalation-badge.grip { border-color:#ffd04d;color:#fff2b9;background:#695019; }
.incident-escalation-badge.major{border-color:#ff5a42;color:#fff;background:#8f201c}.incident-card.major-incident{box-shadow:inset 4px 0 #ff5a42}
.desk-escalation-controls { margin-bottom:6px; }
.desk-escalation-note { margin:0 0 8px;color:#7899a7;font-size:7px;line-height:1.45; }
body.single-screen-mode:not(.panel-window) .resource-table td { border-top-color:#31586d;background:#0e3852; }
body.single-screen-mode:not(.panel-window) .resource-table tr:nth-child(even) td { background:#103d58; }
body.single-screen-mode:not(.panel-window) .resource-table tr:hover td { background:#174c68; }
body.single-screen-mode:not(.panel-window) .dispatch-footer { border-top-color:#466f84;background:#0b3049; }
body.single-screen-mode:not(.panel-window) .speech-dock { background:#0b3550; }
body.single-screen-mode:not(.panel-window) .intake-handover-dock { background:#103d58; }
body.single-screen-mode:not(.panel-window) .screen-menu-button,
body.single-screen-mode:not(.panel-window) .pause-button,
body.single-screen-mode:not(.panel-window) .operator-menu-button { border-color:#5a8296;background:#174d69; }
body.single-screen-mode:not(.panel-window) .header-speed { border-color:#62899b;background:#0b3450; }

.panel-layout-controls { display:flex;align-items:center;gap:3px;margin-left:auto;pointer-events:auto; }.panel-layout-controls button { min-width:30px;height:26px;padding:0 7px;border:1px solid #486878;border-radius:3px;color:#c9dbe2;background:#183c50;font-size:8px;font-weight:800;cursor:pointer; }.panel-layout-controls button:hover { border-color:var(--cyan);color:white; }.panel-maximized { position:fixed!important;inset:0!important;z-index:2500!important;width:100vw!important;height:100vh!important;display:block!important; }
body.has-maximized-panel .topbar { display:none; }
body.has-maximized-panel .workspace { z-index:2500; }

/* Meldtafelkeuze: herkenbare centralist en vierkleurig meldkamerstoplicht. */
.login-content { overflow:auto; }
.desk-choice { min-height:132px;padding:50px 16px 14px; }
.desk-choice:hover,.desk-choice.selected { border-color:#58c9f2;background:#28617f;box-shadow:0 0 0 2px rgba(88,201,242,.12); }
.desk-choice .signal-light { box-sizing:border-box;top:-28px;right:18px;width:34px;height:94px;margin:0;padding:8px 6px 9px;border:4px solid #112b3b;border-radius:8px;background:linear-gradient(90deg,#183d52,#0b2230 50%,#17384a);box-shadow:0 8px 16px #0009,inset 0 0 0 1px #456274; }
.desk-choice .signal-light::before { content:"";position:absolute;left:5px;right:5px;top:-7px;height:7px;border-radius:4px 4px 0 0;background:#0a202c; }
.desk-choice .signal-light::after { content:"";position:absolute;left:12px;bottom:-15px;width:10px;height:14px;border-radius:0 0 3px 3px;background:#17384a;box-shadow:0 12px 0 -2px #102a38; }
.signal-light i { display:block;width:14px;height:14px;margin:0 auto 5px;border:1px solid #07151d;border-radius:50%;box-shadow:inset 0 1px 2px #fff5,0 0 5px currentColor; }
.signal-light i:last-child { margin-bottom:0; }
.signal-red { color:#ff4c50;background:#ed3036; }.signal-yellow { color:#ffe46a;background:#f0c928; }.signal-green { color:#62ed7f;background:#38c956; }.signal-blue { color:#55d9ff;background:#20b7e5; }
.desk-choice em { display:flex;align-items:center;gap:6px;font-size:16px; }.desk-choice em svg { width:25px;height:25px;fill:currentColor; }.desk-choice em b { font-size:17px; }
.workspace-mode-choice { width:min(780px,100%);margin-top:18px;padding:17px;border:1px solid #5a8ca4;border-radius:7px;background:#0d3852;box-shadow:0 12px 28px #001b2c80; }
.workspace-mode-choice h2 { margin:3px 0 4px;font-size:17px; }.workspace-mode-choice > div > p { margin:0;color:#9fc1d1;font-size:9px; }
.workspace-mode-buttons { display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px; }
.workspace-mode-buttons button { display:grid;grid-template-columns:42px 1fr;align-items:center;gap:10px;padding:13px;border:1px solid #4d7790;border-radius:5px;color:white;background:#164d6b;text-align:left;cursor:pointer; }.workspace-mode-buttons button:hover { border-color:#58d6ff;background:#1f6485; }
.workspace-mode-buttons i { display:grid;place-items:center;width:38px;height:38px;border-radius:50%;color:#062637;background:#63d6f5;font:900 19px ui-monospace;font-style:normal; }.workspace-mode-buttons strong,.workspace-mode-buttons small { display:block; }.workspace-mode-buttons strong { font-size:12px; }.workspace-mode-buttons small { margin-top:4px;color:#acd0df;font-size:8px;line-height:1.4; }
.popup-hint { margin:11px 0 0!important;padding-top:10px;border-top:1px solid #315d78;color:#e4c46c!important; }

/* P2000-monitor: livefeed met prioriteit, melding en gealarmeerde ontvangers. */
.p2000-panel { flex-direction:column;min-height:0;color:#dce5e8;background:#0b1115; }
.p2000-windowbar { flex:none;display:flex;align-items:center;justify-content:space-between;min-height:68px;padding:11px 18px;border-bottom:1px solid #27343b;background:#10191e; }
.p2000-brand { display:flex;align-items:center;gap:12px; }.p2000-brand strong,.p2000-brand small { display:block; }.p2000-brand strong { font-size:17px;letter-spacing:-.02em; }.p2000-brand small { margin-top:3px;color:#819098;font-size:9px; }
.p2000-pulse { position:relative;width:34px;height:34px;border:2px solid #e32d40;border-radius:50%;box-shadow:0 0 18px #e32d4033; }.p2000-pulse::before { content:"";position:absolute;left:5px;right:5px;top:15px;height:2px;background:#e32d40;box-shadow:6px -6px 0 -1px #e32d40,11px 5px 0 -1px #e32d40;transform:skewY(-36deg); }
.p2000-live { display:flex;align-items:center;gap:8px;color:#94a2a8;font-size:9px;letter-spacing:.12em; }.p2000-live i { width:8px;height:8px;border-radius:50%;background:#27ca71;box-shadow:0 0 9px #27ca71; }.p2000-live b { display:grid;place-items:center;min-width:28px;height:24px;border-radius:12px;color:#dce5e8;background:#26333a; }
.p2000-toolbar { flex:none;display:grid;grid-template-columns:180px 180px minmax(260px,1fr) auto;align-items:end;gap:10px;padding:10px 18px;border-bottom:1px solid #26343a;background:#151f24; }.p2000-toolbar label { color:#839199;font-size:8px;font-weight:800;letter-spacing:.08em;text-transform:uppercase; }.p2000-toolbar select,.p2000-toolbar input { display:block;width:100%;height:36px;margin-top:5px;padding:0 10px;border:1px solid #35464e;border-radius:4px;outline:0;color:#e7eef0;background:#0d1519; }.p2000-toolbar select:focus,.p2000-toolbar input:focus { border-color:#5d8b9d; }.p2000-toolbar > span { align-self:center;color:#6f7d83;font-size:8px; }
.p2000-feed { flex:1;min-height:0;overflow-y:auto;padding:13px 18px 30px;background:#0b1115; }
.p2000-message { position:relative;max-width:1100px;margin:0 auto 10px;border:1px solid #27343a;border-left:4px solid #e23c4d;border-radius:5px;background:#111a1f;box-shadow:0 5px 16px #0004; }.p2000-message.ambulance { border-left-color:#e5b93d; }.p2000-message.multi { border-left-color:#4ba4e8; }
.p2000-message > header { display:flex;align-items:center;gap:10px;min-height:35px;padding:6px 11px;border-bottom:1px solid #26343a;color:#7f8f96;font-size:9px; }.p2000-message > header time { color:#dce6e9;font-size:12px;font-weight:900; }.p2000-message > header span { margin-right:auto; }
.p2000-priority { min-width:32px;padding:5px 8px;border-radius:3px;text-align:center;color:white;background:#66737a; }.p2000-priority.p1 { background:#df3044; }.p2000-priority.p2 { color:#181400;background:#e4b92f; }.p2000-priority.p3 { background:#3e86b4; }
.p2000-message-body { display:grid;grid-template-columns:38px 1fr;align-items:center;gap:11px;padding:12px; }.p2000-service-mark { display:grid;place-items:center;width:36px;height:36px;border-radius:50%;color:white;background:#d83245;font-weight:900; }.p2000-message.ambulance .p2000-service-mark { color:#1b1706;background:#e1b531; }.p2000-message.multi .p2000-service-mark { background:#398fc9; }.p2000-message-body strong { font-size:12px;line-height:1.45; }.p2000-message-body p { margin:5px 0 0;color:#7f9097;font-size:8px;text-transform:uppercase;letter-spacing:.06em; }
.p2000-recipients { border-top:1px solid #253239;background:#0d1519; }.p2000-recipients > div { display:grid;grid-template-columns:90px minmax(180px,.55fr) 1fr;align-items:center;gap:10px;min-height:38px;padding:7px 12px;border-bottom:1px solid #1e2a30; }.p2000-recipients span { color:#68777e;font-size:7px;letter-spacing:.1em; }.p2000-recipients strong { color:#cdd8dc;font:800 9px ui-monospace,monospace; }.p2000-recipients small { color:#7f9097;font-size:8px; }
.p2000-empty { display:grid;place-items:center;align-content:center;gap:7px;min-height:240px;color:#63737a;text-align:center;font-size:10px; }.p2000-empty strong { color:#9aa8ad;font-size:13px; }.p2000-empty span { font-size:9px; }
@media(max-width:760px){.p2000-toolbar{grid-template-columns:1fr 1fr}.p2000-search{grid-column:1 / -1}.p2000-toolbar>span{display:none}.p2000-recipients>div{grid-template-columns:75px 1fr}.p2000-recipients small{grid-column:2}}

@media (max-width: 900px) {
  body.panel-window .question-options { grid-template-columns:1fr; }
  body.panel-window .caller-strip { grid-template-columns:1fr 1fr; }
  body.panel-window .caller-strip > div:last-child { display:none; }
  body.panel-window .map-filters { flex-wrap:wrap;justify-content:flex-end; }
}

/* Leesbaarheid op meldkamerschermen: kleine bedienings- en informatietekst één
   stap groter, zonder de paneelindeling of kaartmarkeringen op te blazen. */
body { font-size:14px; }
.speech-mmt-actions{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:8px}
.speech-mmt-actions button{padding:7px;border:1px solid #518093;color:#fff;background:#245a70;font-size:9px;font-weight:800;cursor:pointer}
.speech-mmt-actions button[data-action="mmt-cancel"]{background:#7a343b;border-color:#bd5962}
.speech-mmt-actions input{grid-column:1 / -1;min-width:0;padding:7px;border:1px solid #658697;color:white;background:#0d2b39;font-size:9px}
.eyebrow,.question-label,.desk-section-title,.incident-section-label { font-size:10px; }
.call-card .call-number,.call-card .waiting,.incoming-hint { font-size:11px; }
.caller-strip span,.dialogue-line b,.question-progress { font-size:10px; }
.caller-strip strong,.dialogue-line,.question-card h3 { font-size:12px; }
.ask-button span { font-size:9px; }
.ask-button strong { font-size:11px; }
.intake-classification label,.notepad-heading,.desk-form-column label { font-size:10px; }
.intake-classification select,.police-share-button,.intake-note-log span { font-size:11px; }
.intake-note-log time { font-size:9px; }
.comm-question-groups button { font-size:11px;line-height:1.35; }
.desk-form-column input,.desk-form-column select,.desk-form-column textarea,.desk-documentation textarea { font-size:12px; }
.desk-toolbar button,.desk-width-controls button { font-size:11px; }
.handover-line,.incident-assigned-units b,.resource-table th,.resource-table td small { font-size:9px; }
.resource-table,.resource-heading-tools select,.resource-heading-tools input,.status-select,.radio-status-display { font-size:11px; }
.login-name-label,.login-role-choice span,.login-dispatch-settings label { font-size:11px; }
.login-name-label b { margin-left:5px;color:#ffd16a;font-size:9px;text-transform:uppercase; }
.login-name-input.invalid { border-color:#ff6670;box-shadow:0 0 0 3px rgba(255,93,103,.18); }
.desk-toolbar #deskWithdrawAlarmButton { margin:0;border-color:#ff727b;color:white;background:#8e2932; }

body.public-event-entry #deskLogin .login-content{display:block;padding:clamp(28px,6vw,80px)}
body.public-event-entry #deskLogin .login-content>section{max-width:980px;margin:0 auto}
body.public-event-entry #deskLogin .login-content>section>:not(#workspaceModeChoice){display:none!important}
body.public-event-entry #deskLogin .login-content>aside{display:none!important}
body.public-event-entry #workspaceModeChoice{display:block!important;margin:0;padding:clamp(28px,5vw,58px);border:1px solid #376170;border-radius:8px;background:linear-gradient(145deg,#0c2b37,#081d26);box-shadow:0 35px 90px rgba(0,0,0,.4)}
body.public-event-entry #workspaceModeChoice>div:first-child{text-align:center}
body.public-event-entry #workspaceModeChoice>div:first-child h2{font-size:clamp(25px,3vw,40px)}
body.public-event-entry #workspaceModeChoice>div:first-child p{color:#55dfd4;font-size:13px;font-weight:850}
body.public-event-entry .workspace-mode-buttons{max-width:760px;margin:30px auto 0}

.post-discipline-badge.helicopter{color:#0b4f8a;font:900 12px/15px Arial,sans-serif;letter-spacing:-.5px;}
.post-discipline-badge.police{background:#eef4fb;color:#174b87;border:1px solid #1e67ac;font:900 10px/15px Arial,sans-serif;}
.unit-dot.police{background:#2267b1;}
.post-house.helicopter .post-door{background:rgba(255,255,255,.88);}

/* P2000: compacte Nederlandse pagerkaart met tijd, prio, capcodes en voertuigen. */
.p2000-message{display:grid;grid-template-columns:86px minmax(0,1fr);gap:10px;max-width:1200px;min-height:72px;padding:8px 12px 9px;border:1px solid #3c4144;border-left:4px solid #e1464d;border-radius:6px;background:#303030;box-shadow:0 3px 10px #0007;color:#d5d8da}
.p2000-message.ambulance{border-left-color:#9b9224}.p2000-message.mmt{border-left-color:#bc5ee8}.p2000-message.multi{border-left-color:#3f91c4}.p2000-message.bridge{border-left-color:#228f7c}
.p2000-timestamp{display:grid;align-content:start;justify-items:start;padding-top:1px}.p2000-timestamp time{color:#f5f7f8;font-size:15px;font-weight:950;line-height:1.15}.p2000-timestamp span{margin-top:5px;color:#8d969a;font-size:10px}
.p2000-copy{min-width:0}.p2000-copy>header{display:flex;align-items:baseline;gap:9px;min-height:24px}.p2000-copy>header strong{min-width:0;color:#ff4545;font-size:17px;font-weight:900;line-height:1.2;overflow-wrap:anywhere}.p2000-message.ambulance .p2000-copy>header strong{color:#ffe300}.p2000-message.mmt .p2000-copy>header strong{color:#e570ff}.p2000-message.multi .p2000-copy>header strong{color:#72bff0}.p2000-message.bridge .p2000-copy>header strong{color:#20c7a7}
.p2000-priority{min-width:auto;padding:0;border:0;border-radius:0;color:#aeb5b8!important;background:transparent!important;font-size:10px;font-style:italic;font-weight:900;white-space:nowrap}.p2000-priority.p1{color:#ff6c73!important}.p2000-priority.p5{color:#9aa2a5!important}
.p2000-capcodes{margin-top:3px}.p2000-capcodes>div{display:grid;grid-template-columns:74px minmax(0,1fr);gap:8px;min-height:18px;align-items:baseline}.p2000-capcodes b{color:#899397;font:500 12px/1.35 ui-monospace,Consolas,monospace;text-align:right}.p2000-capcodes span{color:#9fa8ac;font-size:12px;line-height:1.35}.p2000-capcodes .p2000-vehicle-line{display:block;padding-left:82px;min-height:17px}.p2000-vehicle-line i{color:#8a9296;font-size:12px;line-height:1.35}
@media(max-width:760px){.p2000-message{grid-template-columns:70px;padding-inline:8px}.p2000-timestamp time{font-size:13px}.p2000-copy>header strong{font-size:14px}.p2000-capcodes>div{grid-template-columns:64px 1fr}.p2000-capcodes b,.p2000-capcodes span,.p2000-vehicle-line i{font-size:10px}.p2000-capcodes .p2000-vehicle-line{padding-left:72px}}
