:root{--bg:#06141b;--surface:#0c2530;--surface2:#071c24;--line:#2b4a55;--text:#e7f3f1;--muted:#96b0b5;--teal:#54d9c3;--blue:#3da0e7;--green:#62d28d;--amber:#efb75b;--red:#ef6761;--shadow:0 18px 45px #0006;font:16px/1.45 Inter,Segoe UI,Arial,sans-serif;color-scheme:dark}
*{box-sizing:border-box}
body{margin:0;background:radial-gradient(circle at 12% 0,#0d3440 0,transparent 31%),var(--bg);color:var(--text)}
button,a,select,input,textarea{font:inherit}
button,a.primary-action{border:1px solid #41616a;border-radius:8px;padding:.66rem .85rem;background:#102d38;color:var(--text);cursor:pointer;text-decoration:none}
button:hover,a.primary-action:hover{border-color:var(--teal)}
.primary-action{background:linear-gradient(135deg,#176b68,#1c8d7f)!important;border-color:#56d8c2!important;font-weight:800}
.mast{position:sticky;top:0;z-index:20;min-height:6.6rem;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;padding:.8rem 1.6rem;border-bottom:1px solid #2d5360;background:#061820f2;backdrop-filter:blur(12px)}
.brand{display:flex;align-items:center;gap:.85rem;justify-self:start;padding:0;background:none;border:0;text-align:left}
.brand img{width:3.8rem;height:3.8rem;object-fit:contain}
.brand span{display:grid}
.brand strong{font-size:1.35rem}
.brand small{color:#9db4b8;font-size:.72rem;letter-spacing:.14em}
.audience-lockup{text-align:center}
.audience-lockup span{color:var(--teal);font-size:.72rem;font-weight:900;letter-spacing:.18em}
.audience-lockup h1{margin:.12rem 0;font-size:1.55rem;letter-spacing:.02em}
.mast-status{display:grid;justify-items:end;gap:.2rem;color:#a7bec2;font-size:.8rem}
.mast-status>b{padding:.35rem .55rem;border:1px solid #397062;border-radius:999px;color:#82e8d1;font-size:.68rem;letter-spacing:.08em}
.ready i{display:inline-block;width:.55rem;height:.55rem;margin-right:.35rem;border-radius:50%;background:var(--green);box-shadow:0 0 12px #62d28d}
.primary{position:sticky;top:6.6rem;z-index:19;display:flex;gap:.35rem;overflow:auto;padding:.55rem 1.2rem;border-bottom:1px solid #294954;background:#081a22f2;white-space:nowrap}
.primary button{border-color:transparent;background:transparent;color:#a9c0c4}
.primary button.active{border-color:#416a75;background:#12323d;color:white;box-shadow:inset 0 -2px var(--teal)}
main{max-width:1600px;margin:auto;padding:1.35rem}
.view{display:none}
.view.active{display:block}
.view-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}
.view-head h2{margin:.15rem 0;font-size:clamp(1.7rem,3vw,2.7rem);letter-spacing:-.035em}
.eyebrow{margin:0;color:#75abb5;font-size:.75rem;font-weight:900;letter-spacing:.15em}
.scenario-chip{display:grid;min-width:19rem;padding:.75rem 1rem;border:1px solid #365965;border-radius:9px;background:#102b36}
.scenario-chip span,.muted{color:var(--muted)}
.panel{padding:1rem;border:1px solid var(--line);border-radius:12px;background:linear-gradient(180deg,var(--surface),var(--surface2));box-shadow:0 12px 30px #0003}
.panel h3{margin:.2rem 0 .8rem;font-size:1.12rem}
.panel p{color:#bfd0d3}
.panel-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}
.status-grid{display:grid;grid-template-columns:repeat(5,minmax(9rem,1fr));gap:.7rem;margin-bottom:.8rem}
.status-card{display:grid;gap:.32rem;padding:.85rem;border:1px solid var(--line);border-radius:9px;background:var(--surface)}
.status-card span{color:var(--muted);font-size:.76rem;text-transform:uppercase}
.status-card small{color:#9db7bc}
.status-card.red{border-color:#8d3b3a}
.status-card.amber{border-color:#806633}
.status-card.green{border-color:#377553}
.overview-grid{display:grid;grid-template-columns:minmax(30rem,1.5fr) minmax(18rem,.75fr) minmax(17rem,.65fr);gap:.8rem}
.command-map{min-height:34rem}
.map-shell{height:29rem;overflow:hidden;border:1px solid var(--line);border-radius:9px;background:#06171e}
.map-shell.large{height:37rem}
.map-shell svg,.trace,.spectrum-chart{display:block;width:100%;height:100%}
.queue-item{display:grid;grid-template-columns:auto 1fr auto;gap:.65rem;padding:.75rem 0;border-bottom:1px solid var(--line)}
.queue-item i{width:.65rem;height:.65rem;margin-top:.3rem;border-radius:50%}
.queue-item i.red{background:var(--red);animation:blink 1.1s infinite}
.queue-item i.amber{background:var(--amber)}
.queue-item i.green{background:var(--green)}
.queue-item p{margin:.2rem 0;font-size:.78rem}
.queue-item time{color:var(--muted);font-size:.75rem}
.decision{display:flex;flex-direction:column;gap:.75rem}
.big-state{padding:1rem;border-left:4px solid var(--red);border-radius:7px;background:#321717}
.decision-state,.candidate-pill,.simulation-pill,.config-state{display:inline-flex;width:max-content;padding:.45rem .7rem;border-radius:999px;font-size:.72rem;font-weight:900;letter-spacing:.07em}
.decision-state.alert{background:#4b1919;color:#ffb8b4;animation:blink 1.1s infinite}
.candidate-pill{border:1px solid #806633;background:#332817;color:#ffd487}
.simulation-pill{border:1px solid #a46f35;background:#3b2917;color:#ffd28a}
.config-state{border:1px solid #397062;color:#82e8d1}
.two-col,.map-grid-layout{display:grid;grid-template-columns:minmax(38rem,1.6fr) minmax(19rem,.65fr);gap:.8rem}
.traces{display:grid;gap:.5rem}
.trace-title{display:flex;justify-content:space-between;gap:1rem}
.key{display:inline-block;width:1.5rem;height:.22rem;margin-right:.4rem;vertical-align:middle}
.key.target{background:var(--red)}
.key.reference{background:var(--teal)}
.key.background{background:var(--blue)}
.trace,.spectrum-chart{height:auto;border:1px solid var(--line);border-radius:8px;background:#06171e}
.grid-line{stroke:#a4bec2;stroke-width:1;opacity:.16}
.axis{stroke:#58747c;stroke-width:1}
.axis-label{fill:#9cb6ba;font-size:12px}
.trace-path{fill:none;stroke-width:3}
.facts{display:grid}
.fact{display:grid;grid-template-columns:1fr 1.35fr;gap:.8rem;padding:.55rem 0;border-bottom:1px solid var(--line)}
.fact span{color:var(--muted);font-size:.8rem}
.fact b{font-size:.82rem;overflow-wrap:anywhere}
.good-card,.boundary{display:grid;gap:.25rem;margin-top:.9rem;padding:.75rem;border-radius:7px}
.good-card{border-left:3px solid var(--green);background:#102e22}
.boundary{border-left:3px solid var(--amber);background:#302817}
.good-card span,.boundary span{color:#c3d4d6;font-size:.78rem}
.timeline{display:flex;align-items:center;gap:.65rem;padding:.5rem .65rem;border:1px solid var(--line);border-radius:9px;background:#0c2833}
.timeline input{width:min(35vw,27rem);accent-color:var(--teal)}
.select-label{display:grid;gap:.2rem;color:var(--muted);font-size:.75rem}
.select-label select{padding:.45rem;color:white;border:1px solid var(--line);border-radius:6px;background:#071c24}
.legend{display:flex;flex-wrap:wrap;gap:1rem;padding-top:.65rem;color:var(--muted);font-size:.75rem}
.table-wrap{max-height:26rem;overflow:auto}
table{width:100%;border-collapse:collapse;font-size:.78rem}
th,td{padding:.65rem .4rem;border-bottom:1px solid var(--line);text-align:left}
th{color:#85a7ad;text-transform:uppercase}
.formula-card{display:grid;gap:.25rem;margin-top:1rem;padding:1rem;border:1px solid #315d50;border-radius:8px;background:#09231e}
.formula-card b{color:#72f39c;font:800 1.25rem ui-monospace,Consolas,monospace;text-shadow:0 0 13px #48e88a66}
.formula-card.prominent b{font-size:1.7rem}
.formula-card small{color:#b7cbce}
.review-grid,.notification-grid,.guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}
.wide{grid-column:1/-1}
.matrix{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem}
.matrix>div{display:grid;gap:.25rem;padding:.75rem;border:1px solid var(--line);border-radius:8px;background:#071c24}
.matrix span{color:#aac1c5;font-size:.76rem}
.matrix strong.pass{color:#8ce6aa}
.matrix strong.caution{color:#f1cd84}
.sensor-bars{display:grid;gap:.6rem;margin-top:1rem}
.sensor-row{display:grid;grid-template-columns:3rem 1fr 3rem;gap:.5rem;align-items:center;font-size:.75rem}
.bar{height:.6rem;overflow:hidden;border-radius:999px;background:#06171e}
.bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--teal),var(--amber),var(--red))}
.context-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin-top:.8rem}
.context-card{border-top:3px solid var(--teal)}
.context-card dl{display:grid;grid-template-columns:1fr 1fr;gap:.45rem;margin:.5rem 0}
.context-card dt{color:var(--muted)}
.context-card dd{margin:0;font-weight:700}
.recipient-groups{display:grid;gap:.55rem}
.recipient{display:grid;grid-template-columns:auto 1fr;gap:.65rem;padding:.75rem;border:1px solid var(--line);border-radius:8px;background:#071c24}
.recipient:has(input:checked){border-color:var(--teal);background:#0b292c}
.recipient input{accent-color:var(--teal)}
.recipient span{display:grid}
.recipient small{color:var(--muted)}
.message-preview{min-height:12rem;padding:1rem;border:1px solid var(--line);border-left:4px solid var(--red);border-radius:8px;background:#06171e;color:#dff1ef;white-space:pre-wrap;font:700 .82rem/1.65 ui-monospace,Consolas,monospace}
.confirm{display:flex;gap:.55rem;align-items:flex-start;margin:.7rem 0;padding:.7rem;border-radius:7px;background:#302817;color:#f1d397}
.confirm input{margin-top:.25rem;accent-color:var(--teal)}
.button-row{display:flex;flex-wrap:wrap;gap:.5rem}
.button-row button:disabled{opacity:.45;cursor:not-allowed}
.audit-list{display:grid;gap:.5rem}
.audit-empty,.audit-entry{padding:.8rem;border:1px dashed var(--line);border-radius:8px}
.audit-empty{display:grid;text-align:center;color:var(--muted)}
.audit-entry{display:grid;grid-template-columns:1fr auto auto;gap:1rem;border-style:solid;border-left:4px solid var(--green);background:#0a211d}
.audit-entry.suppressed{border-left-color:var(--amber);background:#292318}
.audit-entry span,.audit-entry time{color:var(--muted);font-size:.72rem}
.category-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem}
.category{padding:.75rem;border:1px solid var(--line);border-radius:8px;background:#071c24}
.category b{display:block;font-size:.82rem}
.category code{color:#70b6c0;font-size:.68rem}
.guide-grid ol,ul{color:#c3d5d7;line-height:1.6}
textarea{width:100%;padding:.75rem;color:white;border:1px solid var(--line);border-radius:8px;background:#06171e}
footer{display:grid;grid-template-columns:1.3fr 1fr auto;gap:1.5rem;margin-top:2rem;padding:1.4rem;border-top:1px solid var(--line);background:#041017;color:#8faab0;font-size:.75rem}
footer>div{display:grid;gap:.2rem}
.footer-tags{display:flex;align-items:center;gap:.45rem}
.footer-tags span{padding:.42rem .65rem;border:1px solid #355862;border-radius:999px;color:#d7e7e6;font-weight:800}
#toast{position:fixed;right:1rem;bottom:1rem;z-index:30;max-width:26rem;padding:.75rem 1rem;border:1px solid #4f7c85;border-radius:8px;background:#123744;box-shadow:var(--shadow);transform:translateY(150%);transition:.25s}
#toast.show{transform:translateY(0)}
@keyframes blink{50%{opacity:.4}
}
@media(max-width:1150px){.mast{grid-template-columns:1fr 1fr}
.audience-lockup{grid-column:1/-1;grid-row:1}
.brand,.mast-status{grid-row:2}
.primary{top:9.5rem}
.overview-grid{grid-template-columns:1fr 1fr}
.command-map{grid-column:1/-1}
.two-col,.map-grid-layout{grid-template-columns:1fr}
.status-grid{grid-template-columns:repeat(3,1fr)}
.category-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:720px){.mast{position:relative;grid-template-columns:1fr;padding:1rem}
.audience-lockup,.brand,.mast-status{grid-column:1;grid-row:auto;justify-self:center;text-align:center}
.mast-status{justify-items:center}
.primary{top:0}
.view-head{align-items:flex-start;flex-direction:column}
.status-grid,.overview-grid,.review-grid,.notification-grid,.guide-grid,.context-grid,.category-grid{grid-template-columns:1fr}
.wide,.command-map{grid-column:auto}
.matrix{grid-template-columns:1fr 1fr}
.timeline{width:100%}
.timeline input{width:100%}
.map-shell{height:25rem}
.map-shell.large{height:28rem}
.fact{grid-template-columns:1fr}
.audit-entry{grid-template-columns:1fr}
footer{grid-template-columns:1fr}
.footer-tags{flex-wrap:wrap}
main{padding:.8rem}
}

/* v1.1 parity additions: spectrum controls, reference views and Google Maps runtime */
:focus-visible{outline:3px solid #71e8d3;outline-offset:3px}
.spectrum-toolbar{align-items:flex-end}
.controls{display:flex;align-items:flex-end;gap:.5rem;flex-wrap:wrap}
.controls label{display:grid;gap:.25rem;color:#8fabb0;font-size:.67rem}
.controls select{min-width:9rem;color:#eaf4f2;background:#0b2029;border:1px solid #365964;border-radius:.45rem;padding:.55rem}
.chart-wrap{position:relative}
.chart-wrap svg{width:100%;height:auto;background:#071820;border:1px solid #294b56;border-radius:.55rem}
.tooltip{position:absolute;z-index:5;pointer-events:none;background:#06131aee;border:1px solid #4b737d;border-radius:.45rem;padding:.45rem .6rem;font-size:.72rem;box-shadow:var(--shadow)}
.intro{max-width:62rem;color:#b4c9cc}
.chemical-inventory{display:grid;grid-template-columns:repeat(4,minmax(9rem,1fr));gap:.6rem}
.chemical-inventory>div{display:grid;gap:.4rem;padding:.8rem;background:#071820;border:1px solid #294b56;border-radius:.5rem}
.chemical-inventory span{color:#b8cdd0;font-size:.78rem}
.chemical-inventory b{color:#71f49c;font:800 1.08rem/1.35 ui-monospace,Consolas,monospace;text-shadow:0 0 13px #48e88a66}
.chemical-inventory .candidate{border-color:#8f3937;background:#25191b}
.chemical-inventory .candidate span{color:#ffd1ce}
.help-grid{display:grid;grid-template-columns:repeat(2,minmax(18rem,1fr));gap:.7rem}
.help-card{background:#0d2530;border:1px solid #294b56;border-radius:.55rem;padding:.9rem}
.help-card h2{font-size:.95rem;margin:0 0 .5rem}
.help-card dl{grid-template-columns:10rem 1fr;font-size:.76rem}
.help-card dt,.help-card dd{padding:.3rem 0;border-bottom:1px solid #223f48}
.config-state{padding:.38rem .5rem;border:1px solid #3c6570;border-radius:999px;color:#7ce0ce;font-size:.62rem;font-weight:900;letter-spacing:.08em}
.notification-note{margin:.7rem 0 0!important;font-size:.72rem}
.google-map-canvas,.google-map-3d{position:absolute;inset:0;width:100%;height:100%}
.google-map-3d[hidden],.google-map-canvas[hidden]{display:none}
.map-overlay-badge{position:absolute;z-index:4;left:.75rem;top:.75rem;display:grid;gap:.15rem;max-width:min(25rem,calc(100% - 4.7rem));padding:.55rem .7rem;border:1px solid #51717a;border-radius:.45rem;background:#071820e8;box-shadow:0 8px 24px #0007;pointer-events:none}
.map-overlay-badge b{font-size:.73rem;letter-spacing:.08em;color:#e4f2f0}
.map-overlay-badge span{font-size:.65rem;color:#9db8bd}
.map-fallback-note{position:absolute;z-index:4;left:.75rem;bottom:1.75rem;padding:.45rem .55rem;border:1px solid #765c2e;border-radius:.4rem;background:#2d2517e8;color:#f1cd84;font-size:.68rem}
.google-map-controls{position:absolute;z-index:6;right:.75rem;top:3.9rem;display:flex;gap:.3rem;padding:.3rem;border:1px solid #4c6870;border-radius:.5rem;background:#071820e8;box-shadow:0 8px 24px #0008}
.google-map-controls button{padding:.45rem .55rem;background:#0b2630;border-color:#3c5962;font-size:.68rem;font-weight:800}
.google-map-controls button.active{color:#06131a;background:var(--teal);border-color:#8af3df}
.google-map-setup{position:absolute;z-index:7;inset:0;display:grid;place-items:center;padding:1.1rem;background:#041117b8;backdrop-filter:blur(3px)}
.google-map-setup-card{width:min(29rem,100%);padding:1.25rem;border:1px solid #52717a;border-radius:.75rem;background:linear-gradient(180deg,#102d38f5,#081c24f8);box-shadow:0 20px 55px #000c}
.google-map-setup-card h3{margin:.3rem 0 .5rem;font-size:1.25rem}
.google-map-setup-card p{margin:.45rem 0 .8rem;color:#b8cdd0;font-size:.8rem;line-height:1.45}
.google-map-setup-card label{display:grid;gap:.35rem;color:#9db8bd;font-size:.72rem}
.google-map-setup-card input{width:100%;padding:.65rem .7rem;color:#eef8f6;background:#061820;border:1px solid #40636d;border-radius:.45rem}
.google-map-setup-card small{display:block;margin-top:.75rem;color:#86a5ab;font-size:.68rem}
.google-map-setup button:disabled{opacity:.55;cursor:wait}
.google-map-error:empty{display:none}
.google-map-error{padding:.5rem;border-left:3px solid var(--red);background:#391b1b;color:#ffc4c1!important}

@media(max-width:900px){
  .chemical-inventory{grid-template-columns:repeat(2,minmax(0,1fr))}
  .help-grid{grid-template-columns:1fr}
}
@media(max-width:720px){
  .controls{width:100%}
  .controls label,.controls select,.controls button{width:100%}
  .google-map-controls{left:.65rem;right:.65rem;top:auto;bottom:.65rem;justify-content:center}
  .google-map-controls button{flex:1}
  .map-overlay-badge{max-width:calc(100% - 1.5rem)}
  .google-map-setup{padding:.65rem}
  .google-map-setup-card{padding:.95rem}
  .google-map-setup-card .button-row{display:grid}
  .chemical-inventory{grid-template-columns:1fr}
  .help-card dl{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}
}
