:root{
  --ui:"Helvetica Neue",Helvetica,Arial,sans-serif;
  --mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace;
  --dock-height:344px;
}

body,.command-shell,button,input,select,textarea{font-family:var(--ui)}
.command-shell:after{display:none}
.command-brand b,.command-brand small,.workspace-tabs button,.operation-title strong,.operation-title i,
.system-state,.panel-heading,.layer b,.layer small,.asset-search input,.asset-copy b,.asset-copy small,
.asset-status,.network-health,.map-toolbar button b,.map-readout,.cop-summary,.detail-identity span,
.detail-identity>b,.telemetry-grid,.signal-row,.task-actions,.sensor-actions,.alerts,.agency-ribbon,
.agency-badge{font-family:var(--mono)}

/* The city switch is deliberately isolated from the toolbar/readout. */
.city-switcher{
  left:auto;right:12px;top:12px;transform:none;
  width:330px;height:44px;background:#080d11ee;border:1px solid #34434d;
  box-shadow:0 12px 34px #0008;z-index:17;
}
.city-switcher button{flex:1;padding:0 12px;font:600 10px/1 var(--ui);letter-spacing:.04em;text-transform:none}
.map-readout{display:none!important}
.cop-summary{top:66px}
.mission-strip{display:none!important}

/* Bottom mission-control drawer. It replaces the old timeline and never blocks the map when closed. */
.ops-dock{
  display:block!important;position:absolute;z-index:18;
  left:12px;right:12px;top:auto;bottom:12px;width:auto;min-width:0;
  height:var(--dock-height);max-height:calc(100% - 84px);
  transform:translateY(calc(100% - 52px));
  border:1px solid #34434d;background:#080d11f7;
  box-shadow:0 -18px 70px #000b;backdrop-filter:blur(18px);
  transition:transform .38s cubic-bezier(.2,.78,.22,1);
  overflow:hidden;
}
.ops-dock.open{transform:translateY(0)}
.ops-dock .dock-bar{
  height:51px;display:grid;grid-template-columns:minmax(240px,1.4fr) repeat(3,minmax(92px,.52fr)) minmax(138px,.65fr);
  align-items:stretch;padding:0;border:0;border-bottom:1px solid #2a3842;
  color:#e7ecee;font-family:var(--ui);letter-spacing:0;
}
.dock-toggle,.dock-primary{border:0;background:transparent;color:#e8edef;cursor:pointer}
.dock-toggle{display:grid;grid-template-columns:36px 1fr;align-items:center;text-align:left;padding:0 14px;border-right:1px solid #2a3842}
.dock-toggle>i{width:25px;height:25px;display:grid;place-items:center;border:1px solid #425460;font-style:normal;font:500 13px var(--mono);transition:transform .35s}
.ops-dock.open .dock-toggle>i{transform:rotate(180deg)}
.dock-toggle>span{display:flex;flex-direction:column;gap:3px}
.dock-toggle small{color:#72838e;font:600 8px/1 var(--mono);letter-spacing:.12em}
.dock-toggle b{font:600 13px/1 var(--ui);letter-spacing:.01em}
.dock-live{display:grid;grid-template-columns:auto 1fr;grid-template-rows:1fr 1fr;align-items:end;column-gap:7px;padding:8px 12px;border-right:1px solid #2a3842}
.dock-live>i{width:5px;height:5px;border-radius:50%;background:#70d5a4;align-self:center;box-shadow:0 0 12px #70d5a4}
.dock-live>span{font:600 7px/1 var(--mono);color:#70d5a4;align-self:center}
.dock-live>b{grid-row:1/3;font:500 20px/1 var(--ui);letter-spacing:-.03em;align-self:center}
.dock-live>small{font:600 7px/1.1 var(--mono);color:#6f818c;align-self:start}
.dock-primary{display:flex;align-items:center;justify-content:center;gap:8px;background:#101a21;font:600 10px/1 var(--ui)}
.dock-primary span{color:#70d5a4;font:500 18px var(--mono)}
.dock-primary:hover{background:#17242c}

.ops-dock>.dock-body{height:calc(100% - 51px);display:grid!important;grid-template-columns:148px minmax(0,1fr)!important}
.dock-tabs{display:flex;flex-direction:column;border-right:1px solid #293740;background:#070b0f;padding:10px 0}
.dock-tabs button{height:39px;border:0;border-left:2px solid transparent;background:transparent;color:#71818b;text-align:left;padding:0 16px;font:500 11px/1 var(--ui);cursor:pointer}
.dock-tabs button:hover{color:#dfe5e8;background:#0d1419}
.dock-tabs button.active{color:#f3f5f6;border-left-color:#7f9dff;background:#10171c}
.dock-tabs .dock-collapse{margin-top:auto;color:#71818b;font:600 8px/1 var(--mono);text-transform:uppercase;letter-spacing:.08em}
.dock-panel{display:none;min-width:0;min-height:0;overflow:auto}
.dock-panel.active{display:block!important;width:100%}

.response-command-grid{display:grid;grid-template-columns:1.08fr 1.18fr .9fr;height:100%}
.response-overview,.response-actions,.response-eta{min-width:0;padding:18px;border-right:1px solid #293740}
.eyebrow{display:block;color:#7290f6;font:600 8px/1 var(--mono);letter-spacing:.12em}
.response-overview h2{margin:12px 0 8px;font:500 24px/1.03 var(--ui);letter-spacing:-.035em;text-transform:none}
.response-overview p{margin:0;color:#8797a1;font:400 11px/1.55 var(--ui);max-width:480px}
.force-availability{display:grid!important;grid-template-columns:repeat(4,1fr);margin-top:18px;border:1px solid #293740}
.force-availability span{min-width:0;padding:10px;border-right:1px solid #293740;color:inherit;font:inherit}
.force-availability span:last-child{border:0}
.force-availability b{display:block;margin:0 0 4px;color:#f1f4f5;font:500 17px/1 var(--ui)}
.force-availability small{display:block;color:#63747e;font:600 6px/1.25 var(--mono);letter-spacing:.08em}

.response-actions{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#293740;padding:0}
.ops-dock .response-actions [data-response]{min-height:0;border:0;background:#0a1015;color:#e7ebed;padding:16px;display:grid;grid-template-columns:26px 1fr;text-align:left;cursor:pointer}
.ops-dock .response-actions [data-response]:hover{background:#111b22}
.ops-dock .response-actions [data-response] span{grid-row:1/3;color:#7191ff;font:600 8px/1 var(--mono)}
.ops-dock .response-actions [data-response] b{font:500 13px/1.2 var(--ui);text-transform:none}
.ops-dock .response-actions [data-response] small{margin-top:6px;color:#687983;font:500 8px/1.3 var(--ui)}
.ops-dock .response-eta{overflow:auto;background:#080d11;padding:0}
.ops-dock .response-eta>small{display:block;padding:14px;color:#71828c;font:600 7px/1.45 var(--mono);border-bottom:1px solid #293740}
.ops-dock .response-eta>div{display:grid;grid-template-columns:1fr auto;gap:5px;padding:12px 14px;border-bottom:1px solid #202c34}
.ops-dock .response-eta span{grid-column:1/-1;color:#758690;font:600 7px/1 var(--mono)}
.ops-dock .response-eta b{font:500 11px/1 var(--ui)}
.ops-dock .response-eta em{color:#70d5a4;font:600 8px/1 var(--mono);font-style:normal}

.technical-flow,.network-technical{display:grid;grid-template-columns:repeat(4,1fr);height:calc(100% - 46px)}
.technical-flow article,.network-technical section{padding:20px;border-right:1px solid #293740}
.technical-flow article:last-child,.network-technical section:last-child{border:0}
.technical-flow span,.network-technical span,.incident-method>span{color:#7191ff;font:600 7px/1 var(--mono);letter-spacing:.1em}
.technical-flow b,.network-technical b{display:block;margin:14px 0 10px;font:500 17px/1.1 var(--ui)}
.technical-flow p,.network-technical p{margin:0;color:#8797a1;font:400 10px/1.5 var(--ui)}
.technical-flow small,.network-technical small{display:block;margin-top:16px;color:#60717b;font:600 6px/1.35 var(--mono);letter-spacing:.07em}
.technical-actions{height:46px;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #293740}
.technical-actions button{border:0;border-right:1px solid #293740;background:#0a1116;color:#95a3ab;font:500 10px/1 var(--ui);cursor:pointer}
.technical-actions button:hover{background:#131e25;color:#fff}
.network-technical section>div{height:3px;background:#1b2830;margin-top:17px}.network-technical section>div i{display:block;width:var(--value);height:100%;background:linear-gradient(90deg,#6f8fff,#70d5a4)}

.incident-workflow{display:grid;grid-template-columns:1.05fr .85fr 1.1fr;height:100%}
.incident-workflow>section{border-right:1px solid #293740;min-width:0}
.incident-builder{display:grid!important;grid-template-columns:1fr 1fr;align-content:start;padding:18px;border:0}
.incident-builder label{padding:0 8px 12px 0;border:0;display:block}
.incident-builder label:nth-child(2){padding-right:0}
.incident-builder label span{display:block;margin-bottom:6px;color:#6f808a;font:600 7px/1 var(--mono)}
.incident-builder select{height:38px;width:100%;border:1px solid #34434d;background:#080d11;color:#e4eaed;padding:0 10px;font:500 10px var(--ui)}
#incident-plan{grid-column:1/-1;min-height:58px;border:1px solid #354650;background:#101920;color:#fff;padding:10px 12px;display:grid;grid-template-columns:25px 1fr;text-align:left;cursor:pointer}
#incident-plan span{grid-row:1/3;color:#70d5a4;font:500 18px var(--mono)}#incident-plan b{font:500 12px var(--ui)}#incident-plan small{margin-top:4px;color:#71818b;font:500 8px var(--ui)}
.incident-builder .emergency-control{grid-column:1/-1;height:40px;margin-top:10px;border:1px solid #6e3034;background:#261014;color:#ffafb3;padding:0 10px;display:flex;gap:10px}
.incident-method{padding:20px}.incident-method ol{list-style:none;margin:16px 0 0;padding:0}.incident-method li{display:grid;grid-template-columns:68px 1fr;padding:9px 0;border-bottom:1px solid #26343d}.incident-method li b{font:500 10px var(--ui)}.incident-method li small{color:#758690;font:400 8px/1.4 var(--ui)}
.incident-workflow .incident-plan{border:0;background:#070b0f;overflow:auto}
.incident-workflow .incident-plan header{display:flex;justify-content:space-between;padding:13px;border-bottom:1px solid #293740;font:600 8px var(--mono)}
.incident-workflow .incident-plan p,.incident-workflow .incident-plan footer{padding:10px 13px;margin:0;color:#84949e;font:500 8px/1.4 var(--ui)}
.incident-workflow .incident-plan>div{display:grid;grid-template-columns:1fr auto;gap:5px;padding:10px 13px;border-bottom:1px solid #202b33}
.incident-workflow .incident-plan span{grid-column:1/-1;color:#71828c;font:600 7px var(--mono)}.incident-workflow .incident-plan b{font:500 10px var(--ui)}.incident-workflow .incident-plan em{font:600 8px var(--mono);color:#70d5a4;font-style:normal}

@media(max-width:1280px){
  :root{--dock-height:390px}
  .city-switcher{width:280px}
  .dock-live:nth-of-type(2){display:none}
  .ops-dock .dock-bar{grid-template-columns:minmax(220px,1.3fr) repeat(2,minmax(90px,.55fr)) minmax(126px,.65fr)}
  .response-command-grid{grid-template-columns:1fr 1.1fr}.response-eta{display:none}
  .technical-flow,.network-technical{grid-template-columns:1fr 1fr;overflow:auto}.technical-flow article,.network-technical section{min-height:128px;border-bottom:1px solid #293740}
}

@media(max-width:820px){
  :root{--dock-height:min(72dvh,560px)}
  .city-switcher{left:8px;right:8px;top:8px;width:auto;height:38px}
  .city-switcher button{font-size:9px}
  .map-toolbar{top:52px!important}
  .cop-summary{top:101px!important}
  .ops-dock{left:8px;right:8px;bottom:8px;max-height:calc(100% - 54px);transform:translateY(calc(100% - 48px))}
  .ops-dock .dock-bar{height:47px;grid-template-columns:minmax(0,1fr) 76px 96px}
  .dock-live{display:none!important}.dock-primary{font-size:8px}.dock-toggle{padding:0 9px;grid-template-columns:30px 1fr}.dock-toggle small{font-size:6px}.dock-toggle b{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ops-dock>.dock-body{height:calc(100% - 47px);grid-template-columns:1fr!important;grid-template-rows:48px minmax(0,1fr)}
  .dock-tabs{display:grid;grid-template-columns:repeat(4,1fr);border-right:0;border-bottom:1px solid #293740;padding:0}.dock-tabs button{height:48px;padding:0;text-align:center;border-left:0;border-bottom:2px solid transparent;font-size:9px}.dock-tabs button.active{border-left:0;border-bottom-color:#7f9dff}.dock-tabs .dock-collapse{display:none}
  .response-command-grid{display:block;overflow:auto}.response-overview,.response-actions,.response-eta{border-right:0;border-bottom:1px solid #293740}.response-overview{padding:14px}.response-overview h2{font-size:20px}.force-availability{grid-template-columns:1fr 1fr}.response-actions{height:220px}.response-eta{display:block;max-height:170px}
  .technical-flow,.network-technical{grid-template-columns:1fr;height:auto}.technical-actions{position:sticky;bottom:0}.incident-workflow{display:block;overflow:auto}.incident-workflow>section{border-right:0;border-bottom:1px solid #293740}.incident-builder{grid-template-columns:1fr}.incident-builder label,#incident-plan,.incident-builder .emergency-control{grid-column:1}.incident-method{padding:16px}
}

@media(max-width:480px){
  .map-toolbar{max-width:calc(100vw - 16px)}
  .ops-dock .dock-bar{grid-template-columns:minmax(0,1fr) 86px}.dock-primary span{display:none}
  .force-availability{grid-template-columns:1fr 1fr}.response-actions{grid-template-columns:1fr 1fr}
}

@media(prefers-reduced-motion:reduce){.ops-dock{transition:none}}
