:root{
  color-scheme:dark;
  --bg:#020d12;
  --bg2:#04161d;
  --panel:#061b23;
  --panel2:#08242d;
  --line:#164556;
  --line2:#1f6377;
  --text:#e9f7fa;
  --muted:#7396a2;
  --blue:#025add;
  --cyan:#31dbe1;
  --teal:#45e4b0;
  --amber:#e0b34c;
  --red:#ff426d;
  --ground:#6fd08c;
  --maritime:#38dce7;
  --air:#61a8ff;
  --space:#c7a85e;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
  --sans:Inter,Arial,Helvetica,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:#01080c;color:var(--text);font-family:var(--sans)}
body{background:radial-gradient(circle at 50% -12%,#0a3542 0,transparent 35%),linear-gradient(180deg,#031017,#01080c 70%)}
button,input,select,textarea{font:inherit}
button,a{outline-offset:3px}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--cyan)}
.app-shell{min-height:100vh;display:flex;flex-direction:column}
.topbar{min-height:66px;border-bottom:1px solid var(--line);background:#011117ee;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 18px;position:sticky;top:0;z-index:20;backdrop-filter:blur(12px)}
.brand-block{display:flex;align-items:center;gap:14px;min-width:320px}
.menu-mark{width:28px;height:36px;border:0;background:transparent;padding:3px;display:flex;flex-direction:column;justify-content:space-around;cursor:pointer}
.menu-mark span{height:2px;background:var(--cyan);box-shadow:0 0 8px #31dbe166;transform-origin:left}
.menu-mark span:nth-child(1){width:24px;transform:rotate(-4deg)}.menu-mark span:nth-child(2){width:17px}.menu-mark span:nth-child(3){width:24px;transform:rotate(4deg)}
.brand-title{font:700 17px/1 var(--mono);letter-spacing:.26em}.brand-title b{font-weight:900}
.brand-sub{margin-top:7px;color:#4fb6c4;font:700 7px/1 var(--mono);letter-spacing:.23em}
.status-ribbon{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.chip,.top-button{min-height:28px;border:1px solid var(--line2);background:#05202a;color:#9ac1cc;border-radius:3px;padding:7px 9px;font:700 8px/1 var(--mono);letter-spacing:.08em;text-decoration:none;white-space:nowrap}
.chip{display:inline-flex;align-items:center;gap:7px}.chip b{color:#dffaff}.chip i{width:6px;height:6px;border-radius:50%;background:#68818a}.chip.live i,.chip.online i{background:var(--cyan);box-shadow:0 0 9px var(--cyan)}.chip.warn i{background:var(--amber);box-shadow:0 0 8px #e0b34c88}.chip.off i{background:var(--red)}
.chip.authority{border-color:#7b5f1b;color:#e5bd5e;background:#1b1708}
.top-button{cursor:pointer}.top-button:hover{color:#fff;border-color:var(--cyan);background:#07303c}
.clock{font:800 12px var(--mono);letter-spacing:.05em;color:#d7f8fb}
.primary-nav{height:38px;border-bottom:1px solid var(--line);display:flex;align-items:stretch;padding-left:18px;background:#03141a}
.nav-item{border:0;border-right:1px solid #0c3441;background:transparent;color:#5e8995;padding:0 18px;font:700 8px var(--mono);letter-spacing:.12em;cursor:pointer;position:relative}
.nav-item:hover{color:#c8f5f7}.nav-item.active{color:#eaffff;background:#05212a}.nav-item.active:after{content:"";position:absolute;height:2px;background:var(--cyan);left:0;right:0;bottom:0;box-shadow:0 0 8px var(--cyan)}
.domain-bar{display:grid;grid-template-columns:1.2fr repeat(4,1fr);gap:1px;border-bottom:1px solid var(--line);background:#0b303b;padding:1px}
.domain-button{position:relative;min-height:58px;border:0;background:#04171d;color:#7798a1;text-align:left;padding:9px 30px 8px 13px;cursor:pointer;transition:.15s}
.domain-button:hover{background:#08242d;color:#d8f5f7}.domain-button.active{background:linear-gradient(90deg,#07303b,#061e27);color:#fff;box-shadow:inset 0 -2px 0 var(--cyan)}
.domain-button span{position:absolute;right:10px;top:10px;color:#285867;font:700 8px var(--mono)}
.domain-button b{display:block;font:800 11px var(--mono);letter-spacing:.07em;text-transform:uppercase}.domain-button small{display:block;margin-top:6px;font:7px var(--mono);letter-spacing:.08em;color:#557d88}
.domain-button i{position:absolute;right:10px;bottom:10px;width:7px;height:7px;border-radius:50%;background:#536a70}.domain-button i.online{background:var(--teal);box-shadow:0 0 8px var(--teal)}.domain-button i.offline{background:var(--red)}
main{flex:1;padding:12px;min-width:0}.view{display:none}.view.active{display:block}
.metric-grid{display:grid;grid-template-columns:repeat(6,minmax(150px,1fr));gap:7px;margin-bottom:9px}
.metric{min-height:68px;border:1px solid var(--line);border-left:3px solid var(--cyan);background:linear-gradient(145deg,#061c24,#04151b);padding:10px 11px;position:relative;overflow:hidden}
.metric:after{content:"";position:absolute;right:-35px;bottom:-55px;width:100px;height:100px;border:1px solid #14505f;border-radius:50%}
.metric span{display:block;color:#5f909d;font:700 7px var(--mono);letter-spacing:.12em}.metric strong{display:inline-block;margin-top:8px;font:800 21px var(--mono);letter-spacing:-.04em}.metric small{display:block;margin-top:4px;color:#3f6873;font:6px var(--mono);letter-spacing:.05em}.metric.danger{border-left-color:var(--red)}.metric.confidence{border-left-color:var(--amber)}
.overview-grid{display:grid;grid-template-columns:220px minmax(620px,1fr) 265px;gap:9px;min-height:540px}
.panel{border:1px solid var(--line);background:linear-gradient(155deg,#061a22,#031319);min-width:0;box-shadow:0 12px 36px #0004}
.panel-head{min-height:50px;border-bottom:1px solid var(--line);padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:#062029}
.panel-head h2{font:800 13px var(--sans);margin:3px 0 0;letter-spacing:.01em}.eyebrow{display:block;color:var(--cyan);font:700 6px var(--mono);letter-spacing:.15em}
.count-badge,.mode-tag{border:1px solid #26788a;background:#082e39;color:#76e7ed;border-radius:999px;padding:5px 8px;font:800 8px var(--mono)}.count-badge.warn{border-color:#8d2850;color:#ff6688;background:#28101a}.mode-tag{border-radius:3px;color:#d6b860;border-color:#735d22;background:#191506}
.domain-stack{padding:8px;display:grid;gap:7px}
.domain-card{border:1px solid #154350;background:#04171d;padding:10px;position:relative;cursor:pointer;transition:.15s}.domain-card:hover{border-color:#31869a;background:#08242d}.domain-card.online{border-left:3px solid var(--teal)}.domain-card.offline{border-left:3px solid var(--red)}
.domain-card .domain-top{display:flex;justify-content:space-between;gap:8px}.domain-card b{font:800 10px var(--mono);letter-spacing:.06em}.domain-card em{font:700 7px var(--mono);font-style:normal;color:#5b8490}.domain-card p{font:7px/1.45 var(--mono);color:#628691;margin:7px 0}.domain-card footer{display:flex;align-items:center;justify-content:space-between;border:0;padding:0;background:transparent;color:#4b7884;font:7px var(--mono)}.domain-card a{color:var(--cyan);text-decoration:none}.domain-card a:hover{text-decoration:underline}
.authority-note{border-top:1px solid var(--line);margin-top:5px;padding:12px;background:#101506}.authority-note b{color:#d1ad55;font:800 8px var(--mono);letter-spacing:.12em}.authority-note p{color:#8d876e;font:7px/1.5 var(--mono);margin:7px 0 0}
.route-picture-panel{display:flex;flex-direction:column}.route-head{min-height:58px}.route-actions{display:flex;gap:5px}.route-actions button,.panel-head button,.planner-actions button{border:1px solid #22657a;background:#062530;color:#8dc3ce;padding:7px 10px;font:700 7px var(--mono);letter-spacing:.08em;cursor:pointer}.route-actions button:hover,.panel-head button:hover,.planner-actions button:hover{border-color:var(--cyan);color:#fff}.route-actions button.accent,.planner-actions button.accent{background:#063943;color:#bffcff;border-color:#2ebbc2}
.route-canvas-wrap{position:relative;flex:1;min-height:380px;background:radial-gradient(circle at 70% 20%,#09313b,#031218 57%),linear-gradient(#041820,#020c11);overflow:hidden}
#routeCanvas{width:100%;height:100%;min-height:390px;display:block}.route-legend{position:absolute;left:10px;right:10px;bottom:8px;display:flex;justify-content:flex-end;gap:15px;color:#47727c;font:6px var(--mono);letter-spacing:.07em}.route-legend i{display:inline-block;vertical-align:middle;margin-right:5px}.legend-line{width:18px;height:2px;background:var(--cyan)}.legend-node{width:7px;height:7px;border:1px solid var(--amber);transform:rotate(45deg)}.legend-blocked{width:7px;height:7px;background:var(--red)}
.route-strip{border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));min-height:72px}.leg-strip{padding:10px;border-right:1px solid var(--line);position:relative}.leg-strip:last-child{border-right:0}.leg-strip span{font:700 6px var(--mono);color:#5b8893;letter-spacing:.09em}.leg-strip b{display:block;margin-top:5px;font:800 9px var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.leg-strip small{display:block;margin-top:6px;color:#50727c;font:6px var(--mono)}.leg-strip.blocked{box-shadow:inset 0 -2px 0 var(--red)}.leg-strip.validated{box-shadow:inset 0 -2px 0 var(--teal)}
.condition-list{padding:8px;display:grid;gap:6px;max-height:380px;overflow:auto}.condition{border:1px solid #17424f;border-left:3px solid var(--amber);padding:9px;background:#05181e}.condition.critical{border-left-color:var(--red)}.condition.good{border-left-color:var(--teal)}.condition span{color:#527f8a;font:700 6px var(--mono);letter-spacing:.1em}.condition b{display:block;margin:5px 0;font:800 9px var(--mono);line-height:1.35}.condition p{margin:0;color:#52747d;font:6px/1.45 var(--mono)}
.posture-bars{border-top:1px solid var(--line);padding:12px}.posture-bars label{display:flex;justify-content:space-between;align-items:center;color:#5a8490;font:7px var(--mono);margin-top:9px}.posture-bars label:first-child{margin-top:0}.posture-bars label b{color:#dffaff}.bar{height:4px;background:#112e36;margin-top:5px;overflow:hidden}.bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--teal),var(--amber),var(--red));transition:width .25s}
.route-table-panel{margin-top:9px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-family:var(--mono)}th{text-align:left;color:#4d7b86;font-size:6px;letter-spacing:.12em;padding:9px;border-bottom:1px solid var(--line)}td{padding:9px;border-bottom:1px solid #0d3340;color:#8fb0b8;font-size:7px;vertical-align:top}td strong{color:#e6f8fa;font-size:8px}.status-pill{display:inline-block;border:1px solid #276879;color:#7fd6df;border-radius:999px;padding:4px 6px;font:700 6px var(--mono)}.status-pill.blocked{border-color:#8b2849;color:#ff6685}.status-pill.authorized{border-color:#29765d;color:#67dda8}.table-action{color:var(--cyan);background:transparent;border:0;font:700 7px var(--mono);cursor:pointer}
.planner-grid{display:grid;grid-template-columns:minmax(620px,1.35fr) minmax(360px,.65fr);gap:9px}.planner-intro{padding:12px;border-bottom:1px solid var(--line);color:#6c929b;font:8px/1.55 var(--mono)}.quick-fields{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:12px}.quick-fields label,.editor-label{color:#5f8791;font:700 7px var(--mono);letter-spacing:.08em}.quick-fields input,.quick-fields select{display:block;width:100%;margin-top:6px;border:1px solid #194856;background:#031319;color:#dff8fb;padding:8px}.editor-label{display:block;padding:0 12px 12px}.editor-label textarea{width:100%;height:430px;margin-top:6px;resize:vertical;border:1px solid #194856;background:#020d12;color:#9fe7e8;padding:12px;font:8px/1.55 var(--mono);tab-size:2}.planner-actions{display:flex;justify-content:flex-end;gap:7px;padding:0 12px 12px}.planner-result-panel{min-height:600px}.empty-state{padding:35px 20px;text-align:center;color:#66858e;font:8px/1.6 var(--mono)}.empty-state b{color:#b9d8dd;font-size:10px}.result-summary{padding:12px}.result-hero{border:1px solid #1e6273;background:#06232c;padding:12px}.result-hero span{color:#6395a0;font:7px var(--mono)}.result-hero b{display:block;margin:7px 0;font:800 17px var(--mono)}.result-hero p{margin:0;color:#648892;font:7px/1.5 var(--mono)}.result-leg{border:1px solid #14424f;margin-top:7px;padding:9px}.result-leg header{display:flex;justify-content:space-between;font:700 7px var(--mono)}.result-leg h3{font:800 10px var(--mono);margin:7px 0}.result-leg p{font:7px/1.45 var(--mono);color:#60838c;margin:3px 0}
.handoff-panel{min-height:650px}.handoff-board{padding:12px;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:9px}.handoff-card{border:1px solid #1a4f5e;background:#041820;min-height:180px;padding:12px;position:relative}.handoff-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--amber)}.handoff-card.accepted:before{background:var(--teal)}.handoff-card.failed:before{background:var(--red)}.handoff-card .handoff-title{display:flex;justify-content:space-between;gap:10px}.handoff-card h3{margin:0;font:800 11px var(--mono)}.handoff-card .flow{margin:17px 0;display:grid;grid-template-columns:1fr 30px 1fr;align-items:center;text-align:center}.handoff-card .flow b{border:1px solid #1b5362;padding:9px;font:800 8px var(--mono)}.handoff-card .flow i{font-style:normal;color:var(--amber)}.handoff-card dl{display:grid;grid-template-columns:85px 1fr;gap:5px;margin:0;font:7px var(--mono)}.handoff-card dt{color:#527985}.handoff-card dd{margin:0;color:#9ab7be}.handoff-card .handoff-actions{display:flex;gap:6px;margin-top:12px}.handoff-card button{border:1px solid #255f70;background:#062530;color:#9bd0d8;padding:6px 8px;font:700 6px var(--mono);cursor:pointer}
.integration-grid{display:grid;grid-template-columns:1fr 390px;gap:9px}.architecture-panel{min-height:560px}.architecture-diagram{padding:26px;display:flex;flex-direction:column;align-items:center;gap:8px}.arch-node{border:1px solid #205e70;background:#05212a;min-width:300px;max-width:680px;padding:14px;text-align:center}.arch-node b{display:block;font:800 11px var(--mono);letter-spacing:.05em}.arch-node span{display:block;margin-top:7px;color:#638995;font:7px var(--mono)}.arch-node.nav{border-color:var(--cyan);box-shadow:0 0 20px #31dbe122}.arch-node.core{border-color:#216b89}.arch-node.domains{border-color:#886b29}.arch-node.truth{border-color:#2c765c}.arch-node.effects{border-color:var(--blue)}.arch-row{width:100%;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.arch-row .arch-node{min-width:0}.arch-arrow{font:800 18px var(--mono);color:#3b8190}.arch-arrow.split{font-size:13px;letter-spacing:.25em}.service-registry{padding:9px;display:grid;gap:7px}.service-row{border:1px solid #164451;background:#041820;padding:10px}.service-row header{display:flex;justify-content:space-between;gap:8px}.service-row b{font:800 9px var(--mono)}.service-row em{font:700 7px var(--mono);font-style:normal}.service-row p{margin:7px 0;color:#577c86;font:7px/1.45 var(--mono);word-break:break-all}.service-row small{font:6px var(--mono);color:#3f6872}.contract-panel{margin-top:9px}.contract-grid{display:grid;grid-template-columns:repeat(4,1fr)}.contract-grid article{padding:14px;border-right:1px solid var(--line);min-height:120px}.contract-grid article:last-child{border-right:0}.contract-grid b{font:800 8px var(--mono);color:var(--cyan);letter-spacing:.12em}.contract-grid p{font:8px/1.55 var(--mono);color:#668993;margin:9px 0}
.domain-detail{border:1px solid var(--line);background:#04171d;min-height:600px}.domain-detail-head{padding:22px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.domain-detail-head h1{font:900 30px var(--mono);margin:7px 0}.domain-detail-head p{max-width:780px;color:#6b929d;font:9px/1.55 var(--mono)}.domain-detail-head a{border:1px solid var(--cyan);background:#06313b;color:#d9feff;text-decoration:none;padding:10px 14px;font:800 8px var(--mono)}.domain-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:12px}.domain-detail-card{border:1px solid #174653;background:#051920;padding:14px}.domain-detail-card h2{font:800 12px var(--mono);margin:0 0 10px}.domain-detail-card pre{white-space:pre-wrap;word-break:break-word;color:#78abb5;font:7px/1.55 var(--mono)}
footer{min-height:32px;border-top:1px solid var(--line);display:flex;align-items:center;gap:18px;padding:8px 14px;color:#3f6b75;background:#021017;font:7px var(--mono);letter-spacing:.08em}.toast{position:fixed;right:18px;bottom:18px;z-index:50;max-width:420px;padding:12px 14px;border:1px solid #2a7382;background:#062630;color:#d9fbfd;font:8px/1.5 var(--mono);box-shadow:0 16px 50px #0008;opacity:0;transform:translateY(12px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:none}.toast.error{border-color:#a42d50;background:#2a101a}
@media(max-width:1280px){.overview-grid{grid-template-columns:200px minmax(520px,1fr) 235px}.metric-grid{grid-template-columns:repeat(3,1fr)}.status-ribbon .authority{display:none}}
@media(max-width:980px){.topbar{align-items:flex-start;position:static}.status-ribbon{justify-content:flex-start}.domain-bar{grid-template-columns:1fr 1fr 1fr}.domain-button:first-child{grid-column:span 3}.overview-grid,.planner-grid,.integration-grid{grid-template-columns:1fr}.domain-stack{grid-template-columns:repeat(2,1fr)}.condition-list{max-height:none}.metric-grid{grid-template-columns:repeat(2,1fr)}.arch-row,.contract-grid{grid-template-columns:1fr}.contract-grid article{border-right:0;border-bottom:1px solid var(--line)}}
@media(max-width:620px){main{padding:6px}.topbar{padding:10px;display:block}.brand-block{min-width:0}.status-ribbon{margin-top:12px}.chip.authority,.top-button[href="/open-cop/"]{display:none}.primary-nav{overflow:auto;padding-left:0}.nav-item{padding:0 12px;white-space:nowrap}.domain-bar{grid-template-columns:1fr 1fr}.domain-button:first-child{grid-column:span 2}.metric-grid{grid-template-columns:1fr 1fr}.overview-grid{display:block}.overview-grid>.panel{margin-bottom:7px}.domain-stack{grid-template-columns:1fr}.route-canvas-wrap{min-height:330px}.route-strip{grid-template-columns:1fr 1fr}.quick-fields{grid-template-columns:1fr 1fr}.planner-actions{flex-wrap:wrap}.handoff-board{grid-template-columns:1fr}.domain-detail-grid{grid-template-columns:1fr}.domain-detail-head{display:block}.domain-detail-head a{display:inline-block;margin-top:12px}footer{flex-wrap:wrap}}
.result-meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.result-meta i{border:1px solid #21596a;padding:5px 7px;color:#73a7b1;font:700 6px var(--mono);font-style:normal;letter-spacing:.08em}.decision-button{border:1px solid #2c7c8d;background:#07313b;color:#dffbfc;padding:8px 10px;font:800 7px var(--mono);letter-spacing:.06em;cursor:pointer}.decision-button.route-authorize{margin-top:12px;border-color:#a4873d;background:#342b12;color:#ffe6a0}.leg-decision-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}.leg-decision-actions button{border:1px solid #2a6777;background:#062630;color:#9ed7de;padding:6px 8px;font:700 6px var(--mono);cursor:pointer}.leg-decision-actions button:last-child{border-color:#713047;background:#241019;color:#ff9cb2}
.route-decision-actions{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin-top:12px}.route-decision-actions .decision-button.route-authorize{margin-top:0}
.acceptance-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:12px}.acceptance-record{border:1px solid #284d58;background:#03141a;padding:8px}.acceptance-record.accepted{border-color:#28725d;background:#052019}.acceptance-record.rejected{border-color:#7b3048;background:#261019}.acceptance-record header{display:flex;justify-content:space-between;gap:8px;color:#6f97a0;font:700 6px var(--mono)}.acceptance-record.accepted header span{color:#52ddb1}.acceptance-record.rejected header span{color:#ff7895}.acceptance-record p{margin:7px 0 3px;color:#a4c0c6;font:7px/1.4 var(--mono)}.acceptance-record small{display:block;min-height:24px;color:#567b84;font:6px/1.4 var(--mono)}.acceptance-actions{display:flex;gap:5px;margin-top:8px}.acceptance-actions button{flex:1;border-color:#28725d;color:#91eccd}.acceptance-actions button.reject{border-color:#7b3048;color:#ff9cb2;background:#251018}.route-authorization{margin-top:11px;border:1px solid #927631;background:#27210f;padding:9px}.route-authorization.pending{border-color:#365762;background:#061a20}.route-authorization span{display:block;color:#b89441;font:700 6px var(--mono);letter-spacing:.08em}.route-authorization.pending span{color:#628790}.route-authorization b{font-size:9px;margin:5px 0}.route-authorization p{font-size:6px}.result-handoffs{margin-top:12px;border-top:1px solid #1c4c59;padding-top:10px}.result-handoffs>h3{margin:0 0 7px;color:#719ca5;font:800 7px var(--mono);letter-spacing:.08em}.result-handoff{border:1px solid #193f4a;background:#03151b;padding:8px;margin-top:6px}.result-handoff header{display:flex;justify-content:space-between;gap:8px;font:700 7px var(--mono)}.result-handoff p{margin:6px 0 3px;color:#a3c1c7;font:7px var(--mono)}.result-handoff small{color:#60838c;font:6px/1.45 var(--mono)}
@media(max-width:620px){.acceptance-grid{grid-template-columns:1fr}}
