:root{--bg-0: #0a0c0f;--bg-1: #111419;--bg-2: #171c22;--bg-3: #212831;--line-0: #212831;--line-1: #333c47;--line-inset: #1a2027;--text-primary: #e7ecf1;--text-secondary: #a6b1bd;--text-muted: #7a8592;--text-disabled: #4e5761;--text-inverse: #0a0c0f;--c-own: #35cdd6;--c-ai: var(--c-own);--c-unclassified: #8e9aa7;--c-caution: #e0a83f;--c-hostile: #ef5b5b;--c-sensor: #45c07f;--c-own-dim: rgba(53, 205, 214, .13);--c-ai-dim: rgba(53, 205, 214, .13);--c-unclassified-dim: rgba(142, 154, 167, .12);--c-caution-dim: rgba(224, 168, 63, .14);--c-hostile-dim: rgba(239, 91, 91, .15);--c-sensor-dim: rgba(69, 192, 127, .13);--c-own-line: rgba(53, 205, 214, .42);--c-caution-line: rgba(224, 168, 63, .42);--c-hostile-line: rgba(239, 91, 91, .45);--c-sensor-line: rgba(69, 192, 127, .42);--uncertain-opacity: .45;--uncertain-dash: 4 3;--uncertain-dash-css: 4px 3px;--flash-color: rgba(231, 236, 241, .14);--flash-duration: .18s;--focus-ring: #35cdd6;--shadow-1: 0 1px 2px rgba(0, 0, 0, .5);--shadow-2: 0 4px 14px rgba(0, 0, 0, .45);--shadow-3: 0 20px 48px rgba(0, 0, 0, .6);--font-sans: system-ui, -apple-system, "Segoe UI", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--fs-xs: clamp(10.5px, .18vw + 8px, 11.5px);--fs-sm: clamp(11.5px, .22vw + 8.5px, 12.5px);--fs-md: clamp(12.5px, .28vw + 9px, 13.5px);--fs-lg: clamp(14px, .36vw + 9.5px, 16px);--fs-xl: clamp(17px, .5vw + 10px, 21px);--fs-prose: clamp(12.5px, .3vw + 9px, 14px);--lh-tight: 1.3;--lh-body: 1.5;--lh-prose: 1.6;--ls-caps: .08em;--sp-0: 2px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--bw: 1px;--r-0: 2px;--r-1: 4px;--r-2: 6px;--r-3: 8px;--panel-header-h: 32px;--topbar-h: 46px;--transport-h: 64px;--hit-min: 26px;--board-row-h: 40px;--threat-bar-h: 5px;--col-board: clamp(324px, 23vw, 432px);--col-dialog: clamp(320px, 22vw, 416px);--console-gap: 10px}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;text-align:right;white-space:nowrap}.num--3ch{min-width:3ch}.num--5ch{min-width:5ch}.num--score{min-width:3ch}.num--delta{min-width:5ch}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg-0);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--fs-md);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}table{border-collapse:collapse}ul,ol{list-style:none}svg{display:block}*{scrollbar-width:thin;scrollbar-color:var(--line-1) transparent}*::-webkit-scrollbar{width:9px;height:9px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--line-1);border:2px solid transparent;background-clip:content-box;border-radius:99px}*::-webkit-scrollbar-thumb:hover{background:var(--text-disabled);background-clip:content-box}:focus{outline:none}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px;border-radius:var(--r-1)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.global-shell{display:grid;grid-template-rows:var(--topbar-h) minmax(0,1fr);height:100vh;min-width:0;min-height:0;background:var(--bg-0)}.global-shell__content,.global-shell__mode,.console-mode-content{position:relative;min-width:0;min-height:0;height:100%}.global-shell__mode[hidden]{display:none}.topbar{display:flex;align-items:center;gap:var(--sp-3);padding:0 var(--sp-4);background:var(--bg-1);border-bottom:var(--bw) solid var(--line-0);font-size:var(--fs-sm);white-space:nowrap}.global-topbar>*{flex:none}.topbar__brand{display:inline-flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-md);font-weight:700;letter-spacing:.16em;color:var(--text-primary)}.topbar__brand:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--c-own)}.topbar__sep{width:var(--bw);height:18px;padding:0;background:var(--line-0);color:transparent;overflow:hidden}.topbar__spacer{flex:1 1 auto;min-width:var(--sp-2)}.topbar__breadcrumb{display:inline-flex;align-items:center;gap:var(--sp-2);color:var(--text-secondary);font-size:var(--fs-sm)}.topbar__breadcrumb-screen{color:var(--text-primary)}.topbar__breadcrumb-detail{color:var(--text-muted);font-family:var(--font-mono)}.topbar__mode-slot,.topbar__utility-slot,.topbar__account-cluster{display:inline-flex;align-items:center;gap:var(--sp-2)}.topbar__account-sep{color:var(--line-1)}.topbar__user{display:inline-flex;align-items:center;height:24px;padding:0 var(--sp-2);border-radius:var(--r-0);background:var(--bg-2);color:var(--text-secondary);font-size:var(--fs-xs);letter-spacing:var(--ls-caps)}.topbar__status-slot{display:inline-block;color:var(--c-caution);font-size:var(--fs-xs);letter-spacing:var(--ls-caps)}.topbar__utility-icon{color:var(--c-own)}.topbar__inventory-summary,.topbar__layout-reset{display:inline-flex;align-items:center;gap:var(--sp-1);color:var(--text-muted);font-size:var(--fs-xs)}.scenario-picker{display:inline-flex;align-items:center;gap:var(--sp-2)}.scenario-picker__caption{color:var(--text-muted);font-size:var(--fs-xs);letter-spacing:var(--ls-caps)}.scenario-picker__select{max-width:40ch}.console{display:grid;grid-template-columns:var(--col-board) minmax(0,1fr) var(--col-dialog);grid-template-rows:minmax(0,1fr) var(--transport-h);grid-template-areas:"board stage dialog" "transport transport transport";gap:var(--console-gap);height:100%;min-width:0;min-height:0;padding:var(--console-gap);background:var(--bg-0);overflow:hidden}.console__stage{grid-area:stage;min-width:0;min-height:0}.console__board{grid-area:board;display:grid;grid-template-rows:minmax(0,1fr);gap:var(--console-gap);min-width:0;min-height:0}.console[data-detail-open=true] .console__board{grid-template-rows:minmax(0,auto) minmax(0,1fr)}.console[data-detail-open=true] .console__board-primary{max-height:42vh}.console__board-primary,.console__board-detail{min-width:0;min-height:0;display:flex}.console__board-primary>*,.console__board-detail>*{flex:1 1 auto;min-width:0;min-height:0}.console[data-detail-open=true] .console__board-primary>.panel{height:auto;max-height:100%}.console__dialog{grid-area:dialog;min-width:0;min-height:0}.console__transport{grid-area:transport;min-width:0}.console__stage>.map-wrap{height:100%}.panel{display:flex;flex-direction:column;min-width:0;min-height:0;height:100%;background:var(--bg-1);border:var(--bw) solid var(--line-0);border-radius:var(--r-2);overflow:hidden}.panel-header{display:flex;align-items:center;gap:var(--sp-2);flex:0 0 var(--panel-header-h);padding:0 var(--sp-3);background:var(--bg-2);border-bottom:var(--bw) solid var(--line-0);font-size:var(--fs-xs);letter-spacing:var(--ls-caps);color:var(--text-secondary);white-space:nowrap}.panel-header__title{font-weight:700;color:var(--text-primary);text-transform:uppercase}.panel-header__spacer{flex:1 1 auto}.panel-header__status{display:inline-flex;align-items:center;height:18px;padding:0 var(--sp-2);border-radius:var(--r-0);background:var(--bg-3);color:var(--text-muted);font-size:var(--fs-xs);letter-spacing:var(--ls-caps)}.panel-header__status[data-tone=caution]{color:var(--c-caution);background:var(--c-caution-dim)}.panel-body{flex:1 1 auto;min-height:0;overflow:auto;padding:var(--sp-3)}.panel-body--flush{padding:0;overflow:hidden}.panel-section{padding:var(--sp-2) 0;border-bottom:var(--bw) solid var(--line-inset)}.panel-section:last-child{border-bottom:none}.panel-section__label{margin-bottom:var(--sp-1);color:var(--text-muted);font-size:var(--fs-xs);font-weight:600;letter-spacing:var(--ls-caps);text-transform:uppercase}.panel-empty,.panel-loading,.panel-error{display:flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:64px;height:100%;padding:var(--sp-4);color:var(--text-muted);font-size:var(--fs-sm);text-align:center}.panel-error{color:var(--c-hostile)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-1);min-height:var(--hit-min);padding:0 var(--sp-3);background:var(--bg-2);border:var(--bw) solid var(--line-1);border-radius:var(--r-1);font-size:var(--fs-sm);color:var(--text-primary);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .11s ease,border-color .11s ease,color .11s ease}.btn:hover:not(:disabled){background:var(--bg-3);border-color:var(--line-1)}.btn:active:not(:disabled){background:var(--bg-0)}.btn[aria-pressed=true],.btn[data-active=true]{border-color:var(--c-own-line);background:var(--c-own-dim);color:var(--c-own)}.btn:disabled{color:var(--text-disabled);border-color:var(--line-0);background:var(--bg-1);cursor:not-allowed}.btn--compact{min-height:22px;padding:0 var(--sp-2);font-size:var(--fs-xs)}.btn--primary{background:var(--c-own);border-color:var(--c-own);color:var(--text-inverse);font-weight:600}.btn--primary:hover:not(:disabled){background:var(--c-own);filter:brightness(1.12)}.btn--primary:disabled{background:var(--bg-2);border-color:var(--line-0);color:var(--text-disabled);filter:none}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:26px;padding:0;background:transparent;border:0;border-radius:var(--r-1);color:var(--text-secondary);cursor:pointer;transition:background .11s ease,color .11s ease}.icon-btn>svg{width:12px;height:12px;fill:currentColor}.icon-btn:hover:not(:disabled){background:var(--bg-3);color:var(--text-primary)}.icon-btn[data-active=true]{background:var(--c-own-dim);color:var(--c-own)}.icon-btn:disabled{color:var(--text-disabled);cursor:not-allowed}.seg{display:inline-flex;gap:2px;padding:2px;background:var(--bg-2);border:var(--bw) solid var(--line-0);border-radius:var(--r-1)}.seg__item{min-width:32px;height:22px;padding:0 var(--sp-2);background:transparent;border:0;border-radius:var(--r-0);color:var(--text-muted);font-size:var(--fs-xs);text-align:center;cursor:pointer;transition:background .11s ease,color .11s ease}.seg__item:hover:not(:disabled){color:var(--text-primary)}.seg__item[aria-pressed=true]{background:var(--c-own-dim);color:var(--c-own)}.seg__item:disabled{color:var(--text-disabled);cursor:not-allowed}.mode-toggle{display:inline-flex;gap:2px;padding:2px;background:var(--bg-1);border:var(--bw) solid var(--line-0);border-radius:var(--r-1)}.mode-toggle__option{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:22px;padding:0 var(--sp-2);background:transparent;border:0;border-radius:var(--r-0);color:var(--text-muted);font-size:var(--fs-xs);letter-spacing:var(--ls-caps);text-transform:uppercase;cursor:pointer;transition:background .11s ease,color .11s ease}.mode-toggle__option:hover{color:var(--text-primary)}.mode-toggle__option[aria-pressed=true]{background:var(--c-own-dim);color:var(--c-own)}.mode-toggle__option--icon svg{width:13px;height:13px;stroke-width:1.25}.app-mode-nav{display:inline-flex;gap:2px;padding:2px;background:var(--bg-2);border:var(--bw) solid var(--line-0);border-radius:var(--r-1)}.app-mode-nav__tab{min-height:24px;padding:0 var(--sp-3);background:transparent;border:0;border-radius:var(--r-0);color:var(--text-muted);font-size:var(--fs-sm);cursor:pointer;transition:background .11s ease,color .11s ease}.app-mode-nav__tab:hover{color:var(--text-primary)}.app-mode-nav__tab[aria-pressed=true]{background:var(--bg-0);color:var(--text-primary);box-shadow:inset 0 0 0 1px var(--line-1);cursor:default}.text-input,.select{width:100%;min-height:var(--hit-min);padding:0 var(--sp-2);background:var(--bg-0);border:var(--bw) solid var(--line-1);border-radius:var(--r-1);color:var(--text-primary);font-size:var(--fs-sm);transition:border-color .11s ease}.select{width:auto;padding-right:var(--sp-1);cursor:pointer}textarea.text-input{padding:var(--sp-2);line-height:var(--lh-body);resize:vertical}.text-input:hover:not(:disabled),.select:hover:not(:disabled){border-color:var(--text-disabled)}.text-input:focus-visible,.select:focus-visible{border-color:var(--c-own);outline-offset:-1px}.text-input::placeholder{color:var(--text-muted)}.text-input:disabled,.select:disabled{background:var(--bg-1);color:var(--text-disabled);cursor:not-allowed}.btn-row{display:flex;flex-wrap:wrap;gap:var(--sp-1)}.badge{display:inline-flex;align-items:center;height:18px;padding:0 var(--sp-2);border:var(--bw) solid transparent;border-radius:var(--r-0);background:var(--bg-3);color:var(--text-secondary);font-size:var(--fs-xs);letter-spacing:var(--ls-caps);white-space:nowrap}.badge--ai{color:var(--c-own);background:var(--c-own-dim);border-color:var(--c-own-line)}.badge--state{background:transparent;border-color:var(--line-1);border-style:dashed;color:var(--text-muted)}.badge[data-threat-level=hostile]{color:var(--c-hostile);border-color:var(--c-hostile-line);background:var(--c-hostile-dim)}.badge[data-threat-level=caution]{color:var(--c-caution);border-color:var(--c-caution-line);background:var(--c-caution-dim)}.badge[data-threat-level=unclassified]{color:var(--c-unclassified);border-color:var(--line-1);background:var(--c-unclassified-dim)}.badge[data-threat-level=own],.badge[data-tone=sensor]{color:var(--c-sensor);border-color:var(--c-sensor-line);background:var(--c-sensor-dim)}.state-chip{display:inline-flex;align-items:center;gap:var(--sp-2);height:22px;padding:0 var(--sp-3);border-radius:var(--r-0);background:var(--bg-2);color:var(--text-secondary);font-size:var(--fs-xs);letter-spacing:var(--ls-caps);white-space:nowrap}.state-chip__dot{width:6px;height:6px;border-radius:50%;background:var(--text-muted)}.state-chip[data-state=playing]{color:var(--c-sensor)}.state-chip[data-state=playing] .state-chip__dot{background:var(--c-sensor)}.state-chip[data-state=busy]{color:var(--c-caution)}.state-chip[data-state=busy] .state-chip__dot{background:var(--c-caution)}.link-state{display:inline-flex;align-items:center;gap:var(--sp-2);color:var(--text-muted);font-size:var(--fs-xs);letter-spacing:var(--ls-caps)}.link-state__dot{width:6px;height:6px;border-radius:50%;background:var(--text-disabled)}.link-state[data-connected=true]{color:var(--c-sensor)}.link-state[data-connected=true] .link-state__dot{background:var(--c-sensor)}.rank{display:inline-block;min-width:2ch;font-weight:700;font-variant-numeric:tabular-nums;text-align:center}.rank[data-rank="1"]{color:var(--c-hostile)}.rank[data-rank="2"]{color:var(--c-caution)}.slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:var(--hit-min);background:transparent;cursor:pointer}.slider::-webkit-slider-runnable-track{height:2px;background:var(--line-1);border-radius:2px}.slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:10px;height:14px;margin-top:-6px;background:var(--text-secondary);border:var(--bw) solid var(--bg-0);border-radius:var(--r-0)}.slider::-moz-range-track{height:2px;background:var(--line-1);border-radius:2px}.slider::-moz-range-thumb{width:10px;height:14px;background:var(--text-secondary);border:var(--bw) solid var(--bg-0);border-radius:var(--r-0)}.slider-row{display:grid;grid-template-columns:minmax(6ch,auto) 1fr minmax(6ch,auto);align-items:center;gap:var(--sp-2);font-size:var(--fs-xs)}.slider-row__label{color:var(--text-muted);letter-spacing:var(--ls-caps);text-transform:uppercase}.term{position:relative;border-bottom:var(--bw) dotted var(--text-muted);cursor:help}.term:hover:after,.term:focus-visible:after{content:attr(data-tip);position:absolute;left:0;bottom:calc(100% + 4px);z-index:40;width:max-content;max-width:40ch;padding:var(--sp-2);background:var(--bg-0);border:var(--bw) solid var(--line-1);border-radius:var(--r-1);box-shadow:var(--shadow-2);color:var(--text-secondary);font-size:var(--fs-xs);font-weight:400;letter-spacing:.01em;text-transform:none;text-align:left;white-space:normal;line-height:var(--lh-body);pointer-events:none}.term[data-placement=bottom]:hover:after,.term[data-placement=bottom]:focus-visible:after{bottom:auto;top:calc(100% + 4px)}.text-note{color:var(--text-secondary);font-size:var(--fs-xs);line-height:var(--lh-body)}.text-note--muted{color:var(--text-muted)}.text-note--caution{color:var(--c-caution)}@keyframes state-flash{0%{background-color:var(--flash-color)}to{background-color:transparent}}.flash-once{animation:state-flash var(--flash-duration) ease-out 1}.u-uncertain{opacity:var(--uncertain-opacity)}.u-uncertain-border{border-style:dashed}.board__scroll{flex:1 1 auto;min-height:0;overflow:auto}.board .panel-empty{min-height:calc(var(--board-row-h) * 2)}.board__table{width:100%;table-layout:fixed}.board__col-rank{width:40px}.board__col-target{width:82px}.board__col-score{width:auto}.board__col-num{width:46px}.board__table th{position:sticky;top:0;z-index:1;height:26px;padding:0 var(--sp-1);background:var(--bg-1);border-bottom:var(--bw) solid var(--line-1);color:var(--text-muted);font-size:var(--fs-xs);font-weight:600;letter-spacing:var(--ls-caps);white-space:nowrap}.board__table th>i{margin-left:3px;color:var(--text-disabled);font-size:9px;font-style:normal;letter-spacing:0}.board__table td{height:var(--board-row-h);padding:0 var(--sp-1);border-bottom:var(--bw) solid var(--line-inset);color:var(--text-primary);font-size:var(--fs-sm);vertical-align:middle;white-space:nowrap}.board__th-left,.board__td-left{text-align:left}.board__th-center,.board__td-center{text-align:center}.board__th-right,.board__td-right{text-align:right}.board__td-right{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--text-secondary)}.board__target{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:-.03em}.board__table th:first-child,.board__table td:first-child{padding-left:var(--sp-3)}.board__table th:last-child,.board__table td:last-child{padding-right:var(--sp-3)}.board__table tbody tr{cursor:pointer;transition:background .11s ease}.board__table tbody tr:hover{background:var(--bg-2)}.board__table tbody tr[data-selected=true]{background:var(--c-own-dim);box-shadow:inset 2px 0 0 var(--c-own)}.board__table tbody tr[data-stale=true] td{color:var(--text-disabled)}.board__table tbody tr:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}.rank-chip{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:var(--bw) solid var(--line-1);border-radius:var(--r-0);background:var(--bg-2);color:var(--text-secondary);font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:700;vertical-align:middle}.rank-chip[data-rank="1"]{border-color:var(--c-hostile);background:var(--c-hostile-dim);color:var(--c-hostile)}.rank-chip[data-rank="2"]{border-color:var(--c-caution-line);background:var(--c-caution-dim);color:var(--c-caution)}.rank-delta{margin-left:3px;color:var(--text-muted);font-family:var(--font-mono);font-size:9px;vertical-align:middle;animation:rank-delta-fade 5s ease-out forwards}.rank-delta[data-dir=up]{color:var(--c-hostile)}.rank-delta[data-dir=down]{color:var(--c-sensor)}@keyframes rank-delta-fade{0%,70%{opacity:1}to{opacity:0}}.score{display:grid;grid-template-columns:3ch 1ch minmax(24px,1fr);align-items:center;gap:3px}.score__value{color:var(--text-primary);font-family:var(--font-mono);font-size:var(--fs-md);font-variant-numeric:tabular-nums;font-weight:700;text-align:right}.score__trend{color:var(--text-disabled);font-size:9px;text-align:center}.score__trend[data-trend=up]{color:var(--c-hostile)}.score__trend[data-trend=down]{color:var(--c-sensor)}.score__track{display:block;height:var(--threat-bar-h);min-width:0;border-radius:99px;background:var(--bg-3);overflow:hidden}.score__fill{display:block;height:100%;border-radius:99px;transition:width .28s ease}.score__fill[data-band=low]{background:var(--c-unclassified)}.score__fill[data-band=mid]{background:var(--c-caution)}.score__fill[data-band=high]{background:var(--c-hostile)}.board__skeleton{display:grid;gap:var(--sp-1);padding:var(--sp-3)}.board__skeleton-row{height:var(--board-row-h);border-radius:var(--r-1);background:var(--bg-2);animation:skeleton-pulse 1.2s ease-in-out infinite alternate}@keyframes skeleton-pulse{0%{opacity:.45}to{opacity:.9}}.ai-chat{display:flex;flex-direction:column;min-height:0}.ai-chat__scroll{flex:1 1 auto;min-height:0;overflow-y:auto;padding:var(--sp-3)}.ai-chat__feed{display:flex;flex-direction:column;gap:var(--sp-4)}.chat-bubble{display:flex;flex-direction:column;gap:3px;max-width:100%}.chat-bubble--user{align-items:flex-end}.chat-bubble__body{display:flex;flex-direction:column;gap:var(--sp-2);width:100%;padding:var(--sp-2) var(--sp-3);background:var(--bg-2);border:var(--bw) solid var(--line-0);border-left:2px solid var(--line-1);border-radius:var(--r-1);text-align:left;cursor:pointer;transition:border-color .11s ease,background .11s ease}.chat-bubble--ai .chat-bubble__body{border-left-color:var(--c-own-line)}.chat-bubble--user{align-self:flex-end;max-width:88%}.chat-bubble--user .chat-bubble__body{background:var(--bg-3);border-left:var(--bw) solid var(--line-0);border-radius:var(--r-1);cursor:default}.chat-bubble__body--static{cursor:default}.chat-bubble__body:hover{border-color:var(--line-1)}.chat-bubble--ai .chat-bubble__body:hover{border-left-color:var(--c-own)}.chat-bubble[data-active=true] .chat-bubble__body{background:var(--bg-3);border-left-color:var(--c-own)}.chat-bubble[data-llm=true] .chat-bubble__body{border-left-color:var(--c-own)}.chat-bubble__meta{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-xs);letter-spacing:var(--ls-caps)}.chat-bubble__spacer{flex:1 1 auto}.chat-bubble__time{color:var(--c-own);font-family:var(--font-mono);text-align:left}.chat-bubble__moment{color:var(--text-muted)}.chat-bubble__moment[data-kind=rank-change],.chat-bubble__moment[data-kind=threat-level]{color:var(--c-caution)}.chat-bubble__judge{color:var(--text-disabled);font-size:10px;text-transform:uppercase}.chat-bubble__judge[data-generating=true]{color:var(--c-own)}.chat-bubble__text{color:var(--text-primary);font-size:var(--fs-prose);line-height:var(--lh-prose);white-space:pre-wrap}.chat-bubble__caveat{padding-left:var(--sp-2);border-left:2px solid var(--c-caution-line);color:var(--c-caution);font-size:var(--fs-xs);line-height:var(--lh-body)}.chat-bubble__note{padding-left:var(--sp-2);color:var(--c-sensor);font-size:var(--fs-xs);line-height:var(--lh-body)}.chat-bubble__note[data-tone=fail]{color:var(--c-hostile)}.chat-bubble__note[data-tone=idle]{color:var(--text-muted)}.chat-bubble__actions{display:flex;align-items:center;gap:var(--sp-1);padding-left:2px}.chat-action{height:22px;padding:0 var(--sp-2);background:transparent;border:var(--bw) solid transparent;border-radius:var(--r-0);color:var(--text-muted);font-size:var(--fs-xs);cursor:pointer;transition:background .11s ease,color .11s ease,border-color .11s ease}.chat-action:hover:not(:disabled){background:var(--bg-2);color:var(--text-primary)}.chat-action:disabled{color:var(--text-disabled);cursor:not-allowed}.chat-action--llm{border-color:var(--c-own-line);color:var(--c-own)}.chat-action--llm:hover:not(:disabled){background:var(--c-own-dim);color:var(--c-own)}.chat-action--agree:hover:not(:disabled){background:var(--c-sensor-dim);color:var(--c-sensor)}.chat-action--dispute:hover:not(:disabled),.chat-action--dispute[aria-expanded=true]{background:var(--c-caution-dim);color:var(--c-caution)}.chat-bubble__trace{display:flex;flex-direction:column;gap:var(--sp-2);margin-left:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-left:var(--bw) solid var(--line-1)}.chat-bubble__phase{display:flex;flex-direction:column;gap:2px}.chat-bubble__phase-label{color:var(--text-muted);font-size:var(--fs-xs);font-weight:600;letter-spacing:var(--ls-caps);text-transform:uppercase}.chat-bubble__phase li{color:var(--text-secondary);font-size:var(--fs-xs);line-height:var(--lh-body)}.chat-bubble__phase li[data-tone=caution]{color:var(--c-caution)}.chat-bubble__phase li[data-tone=alert]{color:var(--c-hostile)}.chat-investigation{display:flex;flex-direction:column;gap:2px;margin-left:var(--sp-2);padding-left:var(--sp-3);border-left:var(--bw) dashed var(--c-own-line)}.chat-investigation__step{position:relative;color:var(--text-secondary);font-size:var(--fs-xs);line-height:1.7}.chat-investigation__step:before{content:"";position:absolute;left:calc(var(--sp-3) * -1 - 3px);top:8px;width:5px;height:5px;border-radius:50%;background:var(--c-own)}.chat-investigation--static{border-left-style:solid;border-left-color:var(--line-1)}.chat-investigation--static .chat-investigation__step:before{background:var(--text-disabled)}.chat-correction,.chat-knowledge{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);background:var(--bg-2);border:var(--bw) solid var(--line-1);border-radius:var(--r-1)}.chat-correction{border-left:2px solid var(--c-caution)}.chat-knowledge{border-left:2px solid var(--c-sensor)}.chat-correction__row,.chat-knowledge__row{display:flex;align-items:center;gap:var(--sp-2)}.chat-correction__rank{display:flex;align-items:center;gap:var(--sp-2);flex:1 1 auto;color:var(--text-muted);font-size:var(--fs-xs);letter-spacing:var(--ls-caps)}.chat-correction__submit,.chat-knowledge__register{flex:none}.chat-correction__comment,.chat-knowledge__text{min-height:56px}.chat-knowledge__label{color:var(--c-sensor);font-size:var(--fs-xs);font-weight:600;letter-spacing:var(--ls-caps)}.chat-knowledge__row{justify-content:flex-end}.ai-chat__composer{flex:0 0 auto;padding:var(--sp-2) var(--sp-3) var(--sp-3);border-top:var(--bw) solid var(--line-0);background:var(--bg-1)}.ai-chat__form{display:flex;align-items:center;gap:var(--sp-2)}.ai-chat__input{flex:1 1 auto;min-width:0;min-height:32px}.ai-chat__send{flex:none;width:34px;min-height:32px;padding:0}.transport{display:flex;align-items:center;gap:var(--sp-3);height:100%;padding:0 var(--sp-4);background:var(--bg-1);border:var(--bw) solid var(--line-0);border-radius:var(--r-2)}.transport__controls{display:inline-flex;gap:2px;padding:2px;background:var(--bg-2);border:var(--bw) solid var(--line-0);border-radius:var(--r-1)}.transport__track{position:relative;flex:1 1 auto;min-width:120px;height:26px}.transport__rail,.transport__rail-fill{position:absolute;top:11px;height:4px;border-radius:99px;pointer-events:none}.transport__rail{left:0;right:0;background:var(--bg-3)}.transport__rail-fill{left:0;background:var(--c-own);opacity:.75}.transport__range{position:absolute;top:0;right:0;bottom:0;left:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:100%;margin:0;background:transparent;cursor:pointer}.transport__range::-webkit-slider-runnable-track{height:26px;background:transparent}.transport__range::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:4px;height:20px;margin-top:3px;border:0;border-radius:2px;background:var(--text-primary);box-shadow:0 0 0 1px var(--bg-0)}.transport__range::-moz-range-track{height:26px;background:transparent}.transport__range::-moz-range-thumb{width:4px;height:20px;border:0;border-radius:2px;background:var(--text-primary);box-shadow:0 0 0 1px var(--bg-0)}.transport__range:disabled{cursor:not-allowed}.transport__markers{position:absolute;left:0;right:0;bottom:0;height:7px;pointer-events:none}.transport__marker{position:absolute;bottom:0;width:9px;height:7px;padding:0;translate:-50% 0;border:0;background:var(--text-disabled);clip-path:polygon(50% 0,100% 100%,0 100%);cursor:pointer;pointer-events:auto}.transport__marker[data-kind=reorder]{background:var(--c-hostile);opacity:.45}.transport__marker[data-kind=reorder][data-passed=true]{opacity:1}.transport__marker[data-kind=set][data-passed=true]{background:var(--text-secondary)}.transport__marker:hover{background:var(--text-primary);opacity:1}.transport__readout{display:inline-flex;align-items:baseline;gap:var(--sp-1);flex:none}.transport__clock{color:var(--text-primary);font-size:var(--fs-lg);font-variant-numeric:tabular-nums;letter-spacing:.02em}.transport__total{color:var(--text-muted);font-size:var(--fs-sm)}.map-wrap{position:relative;display:flex;flex-direction:column;min-width:0;min-height:0;--bg-0: #060b12;--bg-1: #0a121c;--bg-2: #101b28;--bg-3: #17263a;--line-0: #16232f;--line-1: #24384c;--line-inset: #131f2b;--text-primary: #e4edf4;--text-secondary: #9db0c2;--text-muted: #6c8092}.map-wrap>.panel{flex:1 1 auto;min-height:0}.tactical-map-stage{position:relative}.tactical-map{display:block}.ownship-status{position:absolute;top:calc(var(--panel-header-h) + var(--sp-3));left:var(--sp-3);max-width:calc(100% - 2 * var(--sp-3));z-index:5;display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--sp-1) var(--sp-3);padding:var(--sp-1) var(--sp-3);border:var(--bw) solid var(--line-1);border-radius:var(--r-1);background:color-mix(in srgb,var(--bg-1) 82%,transparent);color:var(--text-secondary);font-size:var(--fs-xs);letter-spacing:var(--ls-caps);white-space:nowrap;pointer-events:none}.ownship-status__id{color:var(--c-own);font-weight:700}.sym{fill:none;stroke-width:1.5}.sym[data-threat-level=own]{stroke:var(--c-own)}.sym[data-threat-level=unclassified]{stroke:var(--c-unclassified)}.sym[data-threat-level=caution]{stroke:var(--c-caution)}.sym[data-threat-level=hostile]{stroke:var(--c-hostile)}.sym[data-tone=sensor]{stroke:var(--c-sensor)}.sym[data-uncertain=true]{stroke-dasharray:var(--uncertain-dash);opacity:var(--uncertain-opacity)}.sym--solid[data-threat-level=hostile]{fill:var(--c-hostile)}.sym--solid[data-threat-level=caution]{fill:var(--c-caution)}.sym--grid{stroke:#2b4356;stroke-width:1}.sym-label--grid{fill:var(--text-muted);font-size:10px}.sym-fill--hostile{fill:url(#pat-hostile-hatch)}.sym-fill--caution{fill:url(#pat-caution-dots)}.sym-fill--uncertain{fill:url(#pat-uncertain-diag)}.sym-label{fill:var(--text-secondary);stroke:none;font-family:var(--font-mono);font-size:11px;letter-spacing:.04em}.sym-label--strong{fill:var(--text-primary);font-weight:700}.tactical-map [role=button]{cursor:pointer}.tactical-map circle[role=button]:hover,.tactical-map circle[role=button]:focus-visible{stroke:var(--c-own);stroke-opacity:.55}.tactical-map--3d{cursor:grab;touch-action:none}.tactical-map--3d:active{cursor:grabbing}.t3d-layer-plane{fill:var(--c-own-dim);stroke:var(--c-own);stroke-width:.75;stroke-dasharray:var(--uncertain-dash);stroke-opacity:.5}.t3d-layer-label{fill:var(--c-own)}.t3d-guide{stroke-dasharray:2 4;opacity:.4}.t3d-depth-band{stroke-width:1;stroke-dasharray:var(--uncertain-dash-css)}.t3d-depth-band[data-threat-level=hostile]{stroke:var(--c-hostile)}.t3d-depth-band[data-threat-level=caution]{stroke:var(--c-caution)}.t3d-depth-band[data-threat-level=unclassified]{stroke:var(--c-unclassified)}.t3d-controls{position:absolute;right:var(--sp-3);bottom:var(--sp-3);z-index:5;display:flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1);border:var(--bw) solid var(--line-1);border-radius:var(--r-1);background:color-mix(in srgb,var(--bg-1) 86%,transparent)}.t3d-controls__readout{padding:0 var(--sp-1);color:var(--text-secondary);font-size:var(--fs-xs);letter-spacing:var(--ls-caps)}.tactical-sim{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.tactical-sim__canvas{display:block;width:100%;height:100%;touch-action:none}.tactical-sim__hud{position:absolute;left:var(--sp-3);bottom:var(--sp-3);display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-1) var(--sp-3);border:var(--bw) solid var(--line-1);border-radius:var(--r-1);background:color-mix(in srgb,var(--bg-1) 86%,transparent);pointer-events:auto}.tactical-sim__hint{color:var(--text-muted);font-size:var(--fs-xs)}.tactical-sim__loading{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--text-muted);font-size:var(--fs-sm)}.range-ring-control{cursor:pointer;outline:none;touch-action:none}.range-ring-control__hit-track{fill:transparent}.range-ring-control__track{stroke:var(--text-secondary);stroke-width:.9}.range-ring-control__tick{stroke:var(--line-1);stroke-width:.65;pointer-events:none}.range-ring-control__tick[data-endpoint=true]{stroke:var(--text-muted);stroke-width:.8}.range-ring-control__thumb{fill:var(--c-own);stroke:var(--bg-0);stroke-width:1.25;pointer-events:none}.range-ring-control:hover .range-ring-control__thumb,.range-ring-control:focus-visible .range-ring-control__thumb{stroke:var(--focus-ring);stroke-width:1.75}.range-ring-control:active .range-ring-control__thumb{fill:var(--focus-ring)}.range-ring-control__value{fill:var(--c-own);cursor:default;pointer-events:none}.target-detail{display:flex;flex-direction:column;width:100%;min-height:0;background:var(--bg-1);border:var(--bw) solid var(--line-0);border-radius:var(--r-2);overflow:hidden}.target-detail__header{flex:0 0 auto;gap:var(--sp-2);height:auto;min-height:var(--panel-header-h);padding:var(--sp-1) var(--sp-2) var(--sp-1) var(--sp-3)}.target-detail__header>div{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);min-width:0}.target-detail__headline{color:var(--text-secondary);font-size:var(--fs-xs);letter-spacing:var(--ls-caps)}.target-detail__body{flex:1 1 auto;min-height:0;overflow:auto}.target-detail__facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--bw);padding:var(--bw);background:var(--line-inset);border-bottom:var(--bw) solid var(--line-0)}.target-detail__facts>div{display:flex;flex-direction:column;gap:1px;padding:var(--sp-2) var(--sp-3);background:var(--bg-1)}.target-detail__facts span{color:var(--text-muted);font-size:10px;letter-spacing:var(--ls-caps)}.target-detail__facts b{color:var(--text-primary);font-family:var(--font-mono);font-size:var(--fs-md);font-weight:600;font-variant-numeric:tabular-nums;text-align:left}.target-detail__section{display:grid;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3) var(--sp-3)}.target-detail__weights{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-1) var(--sp-3);padding-top:var(--sp-2);border-top:var(--bw) solid var(--line-inset);font-size:var(--fs-xs)}.target-detail__weights>div{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-2);color:var(--text-muted)}.target-detail__weights b{color:var(--text-secondary);font-weight:600}.target-detail__classification{display:grid;gap:var(--sp-1);padding-top:var(--sp-2);border-top:var(--bw) solid var(--line-inset)}.target-detail__graph{display:grid;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3) var(--sp-3)}.target-detail__graph svg{width:100%;height:84px;border:var(--bw) solid var(--line-inset);border-radius:var(--r-1);background:var(--bg-0)}.target-detail__rank-line{stroke:var(--c-caution);stroke-width:1;stroke-dasharray:var(--uncertain-dash)}.target-detail__graph-markers{display:flex;flex-wrap:wrap;gap:var(--sp-1)}.target-detail__events{display:grid}.target-detail__event{display:grid;grid-template-columns:8ch 11ch minmax(0,1fr);gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border:0;border-bottom:var(--bw) solid var(--line-inset);background:transparent;color:var(--text-secondary);font-size:var(--fs-xs);text-align:left;cursor:pointer}.target-detail__event:hover{background:var(--bg-2)}.target-detail__event span:last-child{white-space:normal;line-height:var(--lh-body)}.ro-section{border-bottom:var(--bw) solid var(--line-inset)}.ro-section>summary{padding:var(--sp-2) var(--sp-3);color:var(--text-muted);font-size:var(--fs-xs);font-weight:600;letter-spacing:var(--ls-caps);text-transform:uppercase;cursor:pointer;-webkit-user-select:none;user-select:none}.ro-section>summary:hover{background:var(--bg-2);color:var(--text-secondary)}.ro-section__body{padding:var(--sp-3);overflow-x:auto}.data-table{width:100%;font-size:var(--fs-sm);line-height:var(--lh-tight)}.data-table th{padding:var(--sp-1) var(--sp-2);border-bottom:var(--bw) solid var(--line-1);color:var(--text-muted);font-size:var(--fs-xs);font-weight:600;letter-spacing:var(--ls-caps);text-align:right}.data-table th:first-child,.data-table td:first-child{text-align:left}.data-table td{padding:var(--sp-1) var(--sp-2);border-bottom:var(--bw) solid var(--line-inset);color:var(--text-primary);font-variant-numeric:tabular-nums;text-align:right}.data-table tr:last-child td{border-bottom:none}.data-table tr[data-selected=true]{background:var(--c-own-dim);box-shadow:inset 2px 0 0 var(--c-own)}.data-table tr[data-uncertain=true] td{color:var(--text-secondary);font-style:italic}.data-table tr[data-stale=true] td{color:var(--text-disabled)}.data-table tr[tabindex]{cursor:pointer}.data-table tr[tabindex]:hover{background:var(--bg-2)}.data-table tr[data-event-type=rank-reorder] td:first-child{color:var(--c-hostile);font-weight:700}.data-table tr[data-event-type=rank-set-change] td{color:var(--text-secondary)}.kv{display:grid;grid-template-columns:minmax(10ch,auto) 1fr;gap:0 var(--sp-2);font-size:var(--fs-xs);line-height:1.7}.kv dt{color:var(--text-muted);letter-spacing:var(--ls-caps);text-transform:uppercase}.kv dd{color:var(--text-primary);font-variant-numeric:tabular-nums;text-align:right}.prob-bar{display:grid;grid-template-columns:minmax(9ch,auto) 1fr minmax(5ch,auto);align-items:center;gap:var(--sp-2);font-size:var(--fs-xs);color:var(--text-secondary)}.prob-bar__track{height:5px;border-radius:99px;background:var(--bg-3);overflow:hidden}.prob-bar__fill{display:block;height:100%;border-radius:99px;background:var(--text-muted)}.prob-bar__fill[data-threat-level=hostile]{background:var(--c-hostile)}.prob-bar__fill[data-threat-level=caution]{background:var(--c-caution)}.prob-bar__fill[data-threat-level=unclassified]{background:var(--c-unclassified)}.prob-bar__fill[data-tone=sensor]{background:var(--c-sensor)}.evidence-contribution{display:grid;gap:var(--sp-1);min-width:0}.evidence-contribution__row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr) minmax(64px,1.4fr) 5ch;align-items:center;gap:var(--sp-2);min-width:0;padding-bottom:var(--sp-0);border-bottom:var(--bw) solid var(--line-inset)}.evidence-contribution__node,.evidence-contribution__observation{min-width:0;font-size:var(--fs-xs);overflow-wrap:anywhere}.evidence-contribution__node{color:var(--text-primary)}.evidence-contribution__observation{color:var(--text-secondary)}.evidence-contribution__track{position:relative;display:block;height:12px;min-width:0}.evidence-contribution__baseline,.evidence-contribution__axis,.evidence-contribution__fill{position:absolute;display:block;pointer-events:none}.evidence-contribution__baseline{top:6px;left:0;right:0;border-top:var(--bw) solid var(--line-1)}.evidence-contribution__axis{top:1px;bottom:1px;left:50%;border-left:var(--bw) solid var(--text-disabled)}.evidence-contribution__fill{top:4px;width:var(--contribution-width);height:5px;border-radius:99px}.evidence-contribution__fill[data-direction=threatening]{left:50%;background:var(--c-hostile)}.evidence-contribution__fill[data-direction=mitigating]{right:50%;background:var(--c-sensor)}.evidence-contribution__fill[data-direction=neutral]{left:50%;width:0}.evidence-contribution__row>.num{justify-self:end;font-size:var(--fs-xs)}.evidence-contribution__row[data-direction=threatening]>.num{color:var(--c-hostile)}.evidence-contribution__row[data-direction=mitigating]>.num{color:var(--c-sensor)}.evidence-contribution--compact{gap:var(--sp-2)}.evidence-contribution--compact .evidence-contribution__row{grid-template-columns:minmax(0,1fr) auto;gap:2px var(--sp-2);padding-bottom:var(--sp-1)}.evidence-contribution--compact .evidence-contribution__node,.evidence-contribution--compact .evidence-contribution__observation{overflow-wrap:normal}.evidence-contribution--compact .evidence-contribution__observation{color:var(--text-muted);font-family:var(--font-mono);text-align:right}.evidence-contribution--compact .evidence-contribution__track{align-self:center}.evidence-contribution--compact .evidence-contribution__row>.num{align-self:center}.threat-score-history{margin:var(--sp-1) 0}.threat-score-history__label{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--sp-1);color:var(--text-muted);font-size:var(--fs-xs);letter-spacing:var(--ls-caps)}.threat-score-spark{display:block;width:100%;height:34px;border:var(--bw) solid var(--line-inset);border-radius:var(--r-1);background:var(--bg-0)}.threat-score-spark__baseline{stroke:var(--line-1);stroke-width:1}.threat-score-spark__line{fill:none;stroke:var(--c-hostile);stroke-width:1.5}.threat-score-spark__cursor{stroke:var(--c-own);stroke-width:1}.threat-score-spark__point{fill:var(--c-hostile);stroke:var(--bg-0);stroke-width:1}.measure-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;padding:var(--sp-5);background:#040609b8}.measure-panel{display:flex;flex-direction:column;gap:var(--sp-5);width:min(640px,100%);max-height:100%;overflow-y:auto;padding:var(--sp-5);background:var(--bg-1);border:var(--bw) solid var(--line-1);border-radius:var(--r-3);box-shadow:var(--shadow-3)}.measure-panel__head{display:flex;align-items:baseline;gap:var(--sp-3)}.measure-panel__title{color:var(--text-primary);font-size:var(--fs-lg);font-weight:700}.measure-panel__sub{color:var(--text-muted);font-size:var(--fs-xs)}.measure-body{display:flex;flex-direction:column;gap:var(--sp-5)}.measure-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-2)}.measure-tile{display:flex;flex-direction:column;gap:2px;padding:var(--sp-3);border:var(--bw) solid var(--line-0);border-radius:var(--r-1);background:var(--bg-2)}.measure-tile__value{color:var(--text-primary);font-size:var(--fs-xl);text-align:left}.measure-tile__label{color:var(--text-secondary);font-size:var(--fs-xs)}.measure-tile__hint{color:var(--text-muted);font-size:10px;line-height:1.5}.measure-section{display:flex;flex-direction:column;gap:var(--sp-2)}.measure-section__title{margin:0;color:var(--text-secondary);font-size:var(--fs-sm);font-weight:600}.measure-meter{display:flex;flex-direction:column;gap:var(--sp-1)}.measure-meter__head{display:flex;justify-content:space-between;gap:var(--sp-2);font-size:var(--fs-sm)}.measure-meter__label{color:var(--text-secondary)}.measure-meter__value{color:var(--text-primary)}.measure-meter__track{height:8px;border-radius:99px;background:var(--bg-3);overflow:hidden}.measure-meter__fill{height:100%;border-radius:99px;transition:width .28s ease}.measure-meter__fill[data-tone=ai]{background:var(--c-own)}.measure-meter__fill[data-tone=muted]{background:var(--text-disabled)}.measure-edge{margin:var(--sp-1) 0 0;color:var(--text-muted);font-size:var(--fs-sm)}.measure-edge[data-positive=true]{color:var(--c-sensor);font-weight:600}.measure-spark{display:flex;align-items:flex-end;gap:2px;height:64px;padding:var(--sp-2);border:var(--bw) solid var(--line-0);border-radius:var(--r-1);background:var(--bg-2)}.measure-spark__bar{flex:1;min-width:3px;min-height:2px;border-radius:2px 2px 0 0;background:var(--c-sensor)}.auth-screen{display:grid;place-items:center;width:100%;height:100vh;padding:var(--sp-5);background:var(--bg-0)}.auth-card{display:flex;flex-direction:column;gap:var(--sp-4);width:min(360px,100%);padding:var(--sp-6) var(--sp-5) var(--sp-5);background:var(--bg-1);border:var(--bw) solid var(--line-0);border-radius:var(--r-3)}.auth-card__brand{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);padding-bottom:var(--sp-2)}.auth-card__mark{width:52px;height:52px}.auth-card__title{margin:0;color:var(--text-primary);font-size:22px;font-weight:700;letter-spacing:.3em;text-indent:.3em}.auth-banner{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border:var(--bw) solid var(--c-hostile-line);border-radius:var(--r-1);background:var(--c-hostile-dim);color:var(--text-primary);font-size:var(--fs-sm);line-height:var(--lh-body)}.auth-banner__retry{flex:none;height:22px;padding:0 var(--sp-3);border:var(--bw) solid var(--c-hostile-line);border-radius:var(--r-0);background:transparent;color:var(--text-primary);font-size:var(--fs-xs);cursor:pointer}.auth-banner__retry:hover{background:var(--c-hostile-dim)}.auth-form{display:flex;flex-direction:column;gap:var(--sp-3)}.auth-field{display:flex;flex-direction:column;gap:var(--sp-1)}.auth-field__label{color:var(--text-secondary);font-size:var(--fs-xs);letter-spacing:var(--ls-caps)}.auth-field__input{width:100%;min-height:34px;padding:0 var(--sp-3);background:var(--bg-0);border:var(--bw) solid var(--line-1);border-radius:var(--r-1);color:var(--text-primary);font-size:var(--fs-md);transition:border-color .11s ease}.auth-field__input:focus-visible{border-color:var(--c-own);outline-offset:-1px}.auth-field__input:disabled{background:var(--bg-1);color:var(--text-disabled)}.auth-error{margin:0;padding:var(--sp-2);border-radius:var(--r-1);background:var(--c-hostile-dim);color:var(--c-hostile);font-size:var(--fs-sm);line-height:var(--lh-body)}.auth-submit{margin-top:var(--sp-1);min-height:36px;padding:0 var(--sp-3);border:var(--bw) solid var(--c-own);border-radius:var(--r-1);background:var(--c-own);color:var(--text-inverse);font-size:var(--fs-md);font-weight:700;cursor:pointer;transition:filter .11s ease}.auth-submit:hover:not(:disabled){filter:brightness(1.12)}.auth-submit:disabled{background:var(--bg-2);border-color:var(--line-0);color:var(--text-disabled);cursor:not-allowed;filter:none}.auth-mode-switch{align-self:center;padding:var(--sp-1);border:0;background:none;color:var(--text-muted);font-size:var(--fs-sm);cursor:pointer;transition:color .11s ease}.auth-mode-switch:hover:not(:disabled){color:var(--c-own)}.auth-splash{color:var(--text-secondary);font-size:var(--fs-prose)}@media(max-width:1600px){:root{--col-board: clamp(346px, 26vw, 400px);--col-dialog: clamp(300px, 21vw, 340px)}}@media(max-width:1360px){:root{--console-gap: 8px}.scenario-picker__caption{display:none}.transport{gap:var(--sp-2);padding:0 var(--sp-3)}}@media(prefers-reduced-motion:reduce){.flash-once,.rank-delta,.board__skeleton-row{animation:none}.board__skeleton-row{opacity:.7}.score__fill,.measure-meter__fill{transition:none}}.studio-root{display:flex;flex-direction:column;height:100%;background:var(--bg-0)}.st-topbar{flex:0 0 var(--topbar-h)}.st-topbar__user{display:inline-block;min-width:14ch;text-align:right;font-size:var(--fs-xs);letter-spacing:var(--ls-caps);color:var(--text-secondary);white-space:nowrap}.st-main{flex:1 1 auto;min-height:0;overflow:auto;padding:var(--sp-3);background:var(--bg-0)}.studio-editor-route{height:100%;min-height:0}.st-list{display:flex;flex-direction:column;gap:var(--sp-3);max-width:1280px;margin:0 auto}.st-main>[hidden]{display:none}.st-panel{height:auto}.st-editor{display:grid;grid-template-columns:minmax(0,58fr) minmax(360px,42fr);gap:var(--sp-3);height:100%;min-height:0}.st-editor__map{display:flex;flex-direction:column;min-width:0;min-height:480px;border:var(--bw) solid var(--line-0);border-radius:var(--r-2);background:var(--bg-1);overflow:hidden;position:relative}.st-editor__map-body{flex:1 1 auto;min-height:0;position:relative}.st-map-hint{flex:0 0 auto;padding:var(--sp-2) var(--sp-3);border-top:var(--bw) solid var(--line-inset);color:var(--text-muted);font-size:var(--fs-xs)}.st-editor__forms{display:flex;flex-direction:column;gap:var(--sp-3);min-width:0;min-height:0;overflow:auto}.st-map-editor[data-edit-mode=move]{cursor:move}.st-map-editor[data-edit-mode=course]{cursor:crosshair}.st-map-editor[data-edit-mode=add]{cursor:copy}.st-preview{display:flex;flex-direction:column;height:100%;min-height:0}.st-preview__map{flex:1 1 auto;min-height:0;position:relative;display:flex;flex-direction:column}.st-preview__map>.panel{flex:1 1 auto;min-height:0}.st-preview__controls{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2);border-top:var(--bw) solid var(--line-inset);font-size:var(--fs-xs)}.st-preview__scrub{flex:1}.st-preview__kinematics{flex:0 0 auto;max-height:104px;border-top:var(--bw) solid var(--line-inset)}.st-preview__kinematics th,.st-preview__kinematics td{padding-block:var(--sp-0)}.st-field{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-0) 0;font-size:var(--fs-sm)}.st-field__label{flex:0 0 10ch;font-size:var(--fs-xs);letter-spacing:var(--ls-caps);color:var(--text-muted);text-transform:uppercase}.st-field__input{flex:1 1 auto;min-width:0;max-width:18ch}.st-field__input--wide{max-width:none}.st-field__input.num{text-align:right;font-variant-numeric:tabular-nums}.st-field__unit{font-size:var(--fs-xs);color:var(--text-muted);min-width:3ch}.st-grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 var(--sp-3)}.st-target-form,.st-event-form,.st-simple-entity{margin-top:var(--sp-2);padding-top:var(--sp-2);border-top:var(--bw) solid var(--line-inset)}.st-readonly{min-width:14ch;color:var(--text-secondary);font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:var(--ls-caps)}.st-advanced-settings{margin-top:var(--sp-2);padding-top:var(--sp-1);border-top:var(--bw) solid var(--line-inset)}.st-advanced-settings>summary{color:var(--text-muted);cursor:pointer;font-size:var(--fs-xs);letter-spacing:var(--ls-caps)}.st-advanced-settings[open]>summary{margin-bottom:var(--sp-1)}.st-map-only-note,.st-mode-reason{margin:var(--sp-1) 0 var(--sp-2)}.st-classification{margin:var(--sp-2) 0;padding:var(--sp-1) 0;border-top:var(--bw) solid var(--line-inset)}.st-issues{display:flex;flex-direction:column;gap:var(--sp-0)}.st-login{display:flex;justify-content:center;padding-top:10vh}.st-login__card{width:min(440px,92vw)}@media(max-width:1100px){.st-editor{grid-template-columns:minmax(0,1fr)}}.bn-lab{display:grid;grid-template-columns:268px minmax(0,1fr) 360px;gap:var(--console-gap);height:100%;min-height:0;padding:var(--console-gap);background:var(--bg-0)}.bn-lab__main{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0;min-height:0}.bn-lab__toolbar{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2);background:var(--bg-1);border:var(--bw) solid var(--line-0);border-radius:var(--r-2)}.bn-lab__toolbar-sep{width:var(--bw);height:18px;background:var(--line-1)}.bn-lab__spacer{flex:1 1 auto}.bn-lab__hint{color:var(--text-muted);font-size:var(--fs-xs);text-align:right}.bn-lab__banner{margin:0;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-1);font-size:var(--fs-sm)}.bn-lab__banner--error{background:var(--c-hostile-dim);border:var(--bw) solid var(--c-hostile-line);color:var(--text-primary)}.bn-lab__issues{display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-3);margin:0;padding:var(--sp-2) var(--sp-3);list-style:none;background:var(--bg-1);border:var(--bw) solid var(--line-0);border-radius:var(--r-1);font-size:var(--fs-xs);color:var(--text-secondary)}.bn-lab__issue--error{color:var(--c-hostile)}.bn-lab__issue--warning{color:var(--c-caution)}.bn-lab__issue strong{font-family:var(--font-mono)}.bn-canvas{position:relative;flex:1 1 auto;min-height:0;background:var(--bg-1);border:var(--bw) solid var(--line-0);border-radius:var(--r-2);overflow:hidden}.bn-canvas__surface{width:100%;height:100%;display:block;touch-action:none;cursor:grab}.bn-canvas__zoom{position:absolute;right:var(--sp-2);top:var(--sp-2);z-index:2;display:flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1);background:var(--bg-2);border:var(--bw) solid var(--line-0);border-radius:var(--r-1)}.bn-canvas__zoom-value{min-width:4ch;color:var(--text-secondary);font-size:var(--fs-xs)}.bn-canvas__empty{position:absolute;inset:auto 0 50% 0;margin:0;text-align:center;color:var(--text-muted);font-size:var(--fs-sm);pointer-events:none}.bn-edge{fill:none;stroke:var(--line-1);stroke-width:1.5}.bn-edge--pending{stroke:var(--c-own);stroke-dasharray:var(--uncertain-dash)}.bn-edge__head{fill:var(--line-1)}.bn-node__body{fill:var(--bg-2)}.bn-node__outline{fill:none;stroke:var(--line-1);stroke-width:1}.bn-node--selected .bn-node__outline{stroke:var(--c-own);stroke-width:1.5}.bn-node--evidence .bn-node__outline{stroke:var(--c-sensor)}.bn-node--link-target .bn-node__outline{stroke:var(--c-own);stroke-width:2}.bn-node__header{fill:var(--bg-3);cursor:move}.bn-node__label{fill:var(--text-primary);font-size:11.5px;font-family:var(--font-sans);pointer-events:none}.bn-node__pin{fill:var(--c-sensor);font-size:9.5px;font-family:var(--font-sans);pointer-events:none}.bn-node__link-handle{fill:var(--bg-1);stroke:var(--c-own);stroke-width:1.2;cursor:crosshair}.bn-node__link-handle:hover{fill:var(--c-own-dim)}.bn-state{cursor:pointer}.bn-state__hit{fill:transparent}.bn-state:hover .bn-state__hit{fill:var(--flash-color)}.bn-state__bar{fill:var(--c-own-dim);stroke:var(--c-own-line);stroke-width:.5;pointer-events:none}.bn-state--observed .bn-state__bar{fill:var(--c-sensor-dim);stroke:var(--c-sensor-line)}.bn-state__name,.bn-state__value{font-size:10.5px;fill:var(--text-secondary);pointer-events:none}.bn-state__value{text-anchor:end;font-family:var(--font-mono);fill:var(--text-primary)}.bn-state--observed .bn-state__name,.bn-state--observed .bn-state__value{fill:var(--c-sensor)}.bn-models,.bn-inspector{display:flex;flex-direction:column;gap:var(--sp-3);min-height:0;padding:var(--sp-3);background:var(--bg-1);border:var(--bw) solid var(--line-0);border-radius:var(--r-2);overflow-y:auto}.bn-models h2,.bn-inspector h2{margin:0 0 var(--sp-2);font-size:var(--fs-sm);letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--text-muted)}.bn-inspector h3{margin:0;font-size:var(--fs-sm);color:var(--text-secondary)}.bn-models__section+.bn-models__section,.bn-inspector__section+.bn-inspector__section{padding-top:var(--sp-3);border-top:var(--bw) solid var(--line-inset)}.bn-field{display:block;margin-bottom:var(--sp-2)}.bn-field__label{display:block;margin-bottom:var(--sp-1);font-size:var(--fs-xs);color:var(--text-muted)}.bn-field__input{width:100%;padding:var(--sp-1) var(--sp-2);background:var(--bg-2);border:var(--bw) solid var(--line-1);border-radius:var(--r-1);color:var(--text-primary);font:inherit;font-size:var(--fs-sm)}.bn-field__input--id{font-family:var(--font-mono)}.bn-field__input:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-1px}.bn-models__actions{display:flex;gap:var(--sp-2)}.bn-models__actions .btn{flex:1 1 auto}.bn-models__state,.bn-models__empty{margin:var(--sp-2) 0 0;font-size:var(--fs-xs);color:var(--text-muted)}.bn-models__list,.bn-models__presets{display:flex;flex-direction:column;gap:var(--sp-1);margin:0;padding:0;list-style:none}.bn-models__list li,.bn-models__presets li{display:flex;align-items:stretch;gap:var(--sp-1)}.bn-models__list li.is-current .bn-models__open{border-color:var(--c-own-line);background:var(--c-own-dim)}.bn-models__open{flex:1 1 auto;display:flex;flex-direction:column;gap:2px;padding:var(--sp-2);text-align:left;background:var(--bg-2);border:var(--bw) solid var(--line-0);border-radius:var(--r-1);color:var(--text-primary);font:inherit;cursor:pointer}.bn-models__open:hover{background:var(--bg-3)}.bn-models__name{font-size:var(--fs-sm)}.bn-models__meta,.bn-models__summary{font-size:var(--fs-xs);color:var(--text-muted);text-align:left}.bn-inspector__head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.bn-inspector__head h2{margin:0;text-transform:none;color:var(--text-primary);font-size:var(--fs-lg)}.bn-inspector__section-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);margin-bottom:var(--sp-2)}.bn-inspector__placeholder,.bn-inspector__note,.bn-inspector__hint{margin:0 0 var(--sp-2);font-size:var(--fs-xs);color:var(--text-muted)}.bn-inspector__error{margin:0 0 var(--sp-2);font-size:var(--fs-xs);color:var(--c-hostile)}.bn-state-list,.bn-parent-list{display:flex;flex-direction:column;gap:var(--sp-1);margin:0 0 var(--sp-2);padding:0;list-style:none}.bn-state-list li,.bn-parent-list li{display:flex;align-items:center;gap:var(--sp-1)}.bn-parent-list li span{flex:1 1 auto;font-size:var(--fs-sm);color:var(--text-secondary)}.bn-inspector__row-actions{display:flex;gap:var(--sp-2);margin-top:var(--sp-2)}.bn-cpt-scroll{overflow-x:auto;border:var(--bw) solid var(--line-inset);border-radius:var(--r-1)}.bn-cpt{width:100%;border-collapse:collapse;font-size:var(--fs-xs)}.bn-cpt th,.bn-cpt td{padding:2px 3px;border-bottom:var(--bw) solid var(--line-inset);white-space:nowrap}.bn-cpt thead th{position:sticky;top:0;background:var(--bg-3);color:var(--text-secondary);font-weight:500;text-align:center}.bn-cpt__parent-head,.bn-cpt__parent-cell{background:var(--bg-2);color:var(--text-muted);font-weight:400;text-align:left}.bn-cpt__input{width:100%;min-width:42px;box-sizing:border-box;padding:2px 4px;background:var(--bg-1);border:var(--bw) solid var(--line-0);border-radius:var(--r-0);color:var(--text-primary);font-family:var(--font-mono);font-size:var(--fs-xs);text-align:center}.bn-cpt__input:focus-visible{outline:1px solid var(--focus-ring);outline-offset:0}.bn-cpt td{text-align:center}.bn-cpt__sum{color:var(--text-muted);text-align:center}.bn-cpt__sum--off{color:var(--c-caution)}.bn-presence{display:flex;align-items:center;gap:var(--sp-2);padding:0 var(--sp-2);font-size:var(--fs-xs);color:var(--text-muted);white-space:nowrap}.bn-presence__dot{width:7px;height:7px;border-radius:50%;background:var(--text-disabled);flex:0 0 auto}.bn-presence--online .bn-presence__dot{background:var(--c-sensor)}.bn-presence--connecting .bn-presence__dot{background:var(--c-caution)}.bn-presence--offline .bn-presence__dot{background:var(--c-hostile)}.bn-presence--online .bn-presence__text{color:var(--c-sensor)}.bn-presence--offline .bn-presence__text{color:var(--c-hostile)}.bn-presence__list{display:flex;gap:var(--sp-1);margin:0;padding:0;list-style:none}.bn-presence__list li{display:flex;align-items:center;min-width:var(--hit-min);height:20px;padding:0 var(--sp-1);border:var(--bw) solid;border-radius:var(--r-0);font-family:var(--font-mono);font-size:var(--fs-xs)}.bn-presence__self{color:var(--text-muted)}.bn-node__peer-ring{fill:none;stroke-width:1.5;opacity:.75}
