:root{--accent:#2ca2ff;--bg:#0b1420;--bg-raised:#101b2b;--bg-card:#0e1826;--border:#1c2a3a;--border-strong:#24344a;--text:#e6edf3;--text-dim:#9fb3c8;--text-faint:#64748b;--ok:#2dd4bf;--warn:#fbbf24;--bad:#f87171;--neutral:#64748b;--mono:ui-monospace, "SF Mono", Menlo, monospace;--sans:-apple-system, "Segoe UI", Inter, Roboto, sans-serif;--fs-h1:19px;--fs-h2:15px;--fs-h3:13px;--fs-body:14px;--fs-detail:12.5px;--fs-small:12px;--fs-micro:11px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:14px/1.45 var(--sans)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}::selection{background:#2ca2ff40}.shell{grid-template:auto auto auto 1fr/max-content 1fr;height:100%;display:grid}.shell>.navbar{grid-area:2/1/auto/3}.shell>.ooda-bar{grid-row:3}.shell>.rail{grid-area:4/1;width:272px;overflow-y:auto}.shell>.rail:empty{display:none}.shell>.main{grid-area:4/2}.navbar{border-bottom:1px solid var(--border);background:var(--bg-raised);align-items:baseline;gap:2px;padding:0 12px;display:flex}.navbar a{color:var(--text-dim);border-bottom:2px solid #0000;padding:8px 13px 7px}.navbar a:hover{color:var(--text);text-decoration:none}.navbar a.active{color:var(--text);border-bottom-color:var(--accent)}.navbar a .rail-tag{float:none;margin-left:6px}.navbar .resume{font-size:var(--fs-small);color:var(--text-faint)}.ooda-bar{border-bottom:1px solid var(--border);background:var(--bg-raised);font-size:var(--fs-small);grid-column:1/3;align-items:baseline;gap:10px;padding:5px 16px;display:flex}.ooda-bar .station{color:var(--text-faint)}.ooda-bar .station.here{color:var(--accent);font-weight:650}.ooda-bar .station.done{color:var(--text-dim)}.topbar{border-bottom:1px solid var(--border);background:var(--bg-raised);grid-column:1/3;align-items:center;gap:16px;height:46px;padding:0 16px;display:flex}.wordmark{letter-spacing:.4px;font-weight:650}.wordmark b{color:var(--accent)}.palette-hint{color:var(--text-faint);border:1px solid var(--border);cursor:pointer;border-radius:5px;margin-left:auto;padding:3px 9px;font-size:12px}.palette-hint:hover{border-color:var(--border-strong);color:var(--text-dim)}.asof{color:var(--text-faint);font-family:var(--mono);font-size:11px}.rail{border-right:1px solid var(--border);background:var(--bg-raised);flex-direction:column;gap:2px;padding:10px 8px;display:flex}.rail a{color:var(--text-dim);border-radius:6px;padding:7px 12px;display:block}.rail a:hover{background:var(--bg-card);text-decoration:none}.rail a.active{background:var(--bg-card);color:var(--text);border-left:2px solid var(--accent);padding-left:10px}.rail .sep{background:var(--border);height:1px;margin:8px 4px}.rail a .rail-tag{float:right;color:var(--text-faint);letter-spacing:.5px;padding-top:3px;font-size:10px}.station-chip{border:1px solid var(--border-strong);background:var(--bg-card);color:var(--text-dim);font-size:var(--fs-small);border-radius:6px;align-items:baseline;gap:7px;padding:4px 11px;display:inline-flex}.station-chip:hover{border-color:var(--accent);color:var(--text);text-decoration:none}.station-chip .st{letter-spacing:.7px;text-transform:uppercase;color:var(--accent);font-size:10px}.main{padding:22px 26px;overflow:auto}h1{margin:0 0 4px;font-size:19px;font-weight:650}.sub{color:var(--text-dim);max-width:72ch;margin:0 0 18px}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:7px;padding:14px 16px}table{border-collapse:collapse;width:100%}th{text-align:left;color:var(--text-faint);border-bottom:1px solid var(--border);padding:6px 10px;font-size:12px;font-weight:500}td{border-bottom:1px solid var(--border);padding:8px 10px}tr.click{cursor:pointer}tr.click:hover td{background:#2ca2ff0d}tr.click:hover td:first-child,tr.click:hover td:first-child b{color:var(--accent)}.pill{color:var(--text-dim);background:#9fb3c814;border:1px solid #0000;border-radius:999px;padding:1px 9px;font-size:11px;display:inline-block}.mono{font-family:var(--mono);font-size:12.5px}button,input[type=text]{font:inherit}button{color:var(--text);cursor:pointer;background:linear-gradient(#1c2c42,#131f2f);border:1px solid #334962;border-radius:6px;padding:6px 13px;font-weight:550;box-shadow:0 1px 2px #0006,inset 0 1px #ffffff0f}button:hover{border-color:var(--accent);color:#fff}button:active{box-shadow:none;transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed;transform:none}button.primary{color:#06121f;background:linear-gradient(#45b2ff,#1e8fe6);border-color:#1e8fe6;font-weight:650}button.primary:hover{color:#041018}button.x{box-shadow:none;border:1px solid var(--border-strong);color:var(--text-dim);background:0 0;padding:3px 10px;font-weight:500}button.x:hover{color:var(--text);border-color:var(--accent)}input[type=text]{background:var(--bg);color:var(--text);border:1px solid var(--border-strong);border-radius:6px;width:100%;padding:7px 11px}input[type=text]:focus{border-color:var(--accent);outline:none}.overlay{z-index:50;background:#04090f99;justify-content:center;align-items:flex-start;padding-top:12vh;display:flex;position:fixed;inset:0}.palette{background:var(--bg-raised);border:1px solid var(--border-strong);border-radius:10px;width:560px;overflow:hidden;box-shadow:0 18px 60px #00000080}.palette input{border:none;border-bottom:1px solid var(--border);border-radius:0;padding:13px 16px;font-size:15px}.palette .results{max-height:44vh;overflow:auto}.palette .row{cursor:pointer;align-items:baseline;gap:10px;padding:9px 16px;display:flex}.palette .row.sel,.palette .row:hover{background:var(--bg-card)}.palette .kind{color:var(--text-faint);min-width:64px;font-size:11px}.empty-honest{border:1px dashed var(--border-strong);color:var(--text-dim);border-radius:7px;padding:14px 16px}.empty-honest b{color:var(--text)}.stub-phase{color:var(--text-faint);font-family:var(--mono);font-size:11px}h2{font-size:var(--fs-h2);margin:18px 0 8px;font-weight:650}h3{font-size:var(--fs-h3);margin:12px 0 6px;font-weight:600}.page-head{flex-wrap:wrap;align-items:baseline;gap:12px;margin:0 0 4px;display:flex}.page-head h1{margin:0}.page-actions{align-items:baseline;gap:8px;margin-left:auto;display:flex}.section-head{flex-wrap:wrap;align-items:baseline;gap:10px;margin:18px 0 8px;display:flex}.section-head h2{margin:0}.section-head .note{color:var(--text-faint);font-size:var(--fs-small)}.two-pane{grid-template-columns:minmax(280px,360px) 1fr;align-items:start;gap:16px;display:grid}@media (width<=900px){.two-pane{grid-template-columns:1fr}}.table-wrap{overflow-x:auto}.detail{font-size:var(--fs-detail)}.small{font-size:var(--fs-small)}.micro{font-size:var(--fs-micro);color:var(--text-faint)}select,textarea{font:inherit;background:var(--bg);color:var(--text);border:1px solid var(--border-strong);border-radius:6px;padding:6px 10px}select:focus,textarea:focus{border-color:var(--accent);outline:none}.badge{font-size:var(--fs-micro);font-family:var(--mono);border:1px solid var(--border-strong);color:var(--text-dim);border-radius:999px;align-items:center;gap:5px;padding:2px 9px;display:inline-flex}.badge.alarm{border-color:var(--warn);color:var(--warn)}.badge:hover{border-color:var(--accent);text-decoration:none}.rail-label{letter-spacing:.8px;text-transform:uppercase;color:var(--text-faint);padding:8px 12px 2px;font-size:10px}.rail .resume{font-size:var(--fs-small);color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;padding:2px 12px 6px;display:block;overflow:hidden}.cat-list{max-height:66vh;overflow-y:auto}.cat-list .row{content-visibility:auto;contain-intrinsic-size:auto 28px;cursor:pointer;font-size:var(--fs-detail);border-radius:5px;align-items:baseline;gap:8px;padding:5px 8px;display:flex}.cat-list .row:hover{background:var(--bg-raised)}.cat-list .row.sel{background:var(--bg-raised);box-shadow:inset 2px 0 0 var(--accent)}.cat-list .rows{color:var(--text-faint);font-family:var(--mono);font-size:var(--fs-micro);margin-left:auto}.maplibregl-popup .maplibregl-popup-content{border:1px solid var(--border-strong);font:12px/1.5 var(--mono);border-radius:7px;max-height:300px;padding:10px 12px;overflow-y:auto;box-shadow:0 6px 22px #00000080;background:var(--bg-raised)!important;color:var(--text)!important}.maplibregl-popup-anchor-bottom .maplibregl-popup-tip{border-top-color:var(--border-strong)}.maplibregl-popup-anchor-top .maplibregl-popup-tip{border-bottom-color:var(--border-strong)}.maplibregl-popup-anchor-left .maplibregl-popup-tip{border-right-color:var(--border-strong)}.maplibregl-popup-anchor-right .maplibregl-popup-tip{border-left-color:var(--border-strong)}.maplibregl-popup-close-button{color:var(--text-dim);font-size:16px;top:2px;right:4px}.maplibregl-ctrl-scale{border:1px solid var(--border-strong)!important;color:var(--text-dim)!important;font-size:10px!important;font-family:var(--mono)!important;background:#0b1420c7!important;border-top:none!important}.maplibregl-ctrl-attrib{background:#0b1420b8!important;font-size:10px!important}.maplibregl-ctrl-attrib a{color:var(--text-faint)!important}.maplibregl-ctrl-attrib-button{filter:invert(.8);background-color:var(--bg-card)!important}tr.book-selected td{background:#2ca2ff14}tr.book-selected td:first-child{box-shadow:inset 2px 0 0 var(--accent)}.main{position:relative}.stage,.stage>.stage-map{position:absolute;inset:0}.float-panel{z-index:5;border:1px solid var(--border-strong);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0d1624eb;border-radius:9px;position:absolute;box-shadow:0 10px 32px #00000073}.stage-left{width:284px;max-height:calc(100% - 24px);padding:12px;top:12px;left:12px;overflow-y:auto}.stage-right{width:330px;max-height:calc(100% - 24px);padding:10px 12px;top:12px;right:52px;overflow-y:auto}.stage-bottom{max-height:38%;padding:10px 12px;bottom:12px;left:12px;right:12px;overflow:auto}.stage h1{margin:0 0 6px;font-size:16px}.interro-window{resize:both;flex-direction:column;width:min(660px,100vw - 32px);min-width:300px;height:min(660px,100vh - 160px);min-height:220px;display:flex;overflow:hidden}.interro-head{border-bottom:1px solid var(--border-strong);cursor:grab;-webkit-user-select:none;user-select:none;background:#101b2be6;border-radius:9px 9px 0 0;flex:none;align-items:baseline;gap:8px;padding:7px 10px;display:flex}.interro-head:active{cursor:grabbing}.interro-body{flex:1;padding:6px 10px 10px;overflow-y:auto}.count-bar{opacity:.8;background:linear-gradient(90deg,#1e6091,#2ca2ff);border-radius:3px;flex:none;height:6px;display:inline-block}.interro-dock{gap:6px;padding:6px 8px;display:flex;bottom:14px;right:52px}.position-strip{width:252px;padding:9px 10px;top:12px;right:96px}@keyframes kxBoxIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){@keyframes kxBoxIn{0%{opacity:1}to{opacity:1}}}.coordinate-tabs,.coordinate-pager{flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0;display:flex}.coordinate-tabs [aria-selected=true]{border-color:var(--accent);color:var(--accent)}.coordinate-dataset{border-top:1px solid var(--border-strong);padding:12px 0}.coordinate-dataset h3{margin:0 0 8px;font-size:14px}.coordinate-record{background:var(--bg);border:1px solid var(--border);border-radius:6px;margin:8px 0;padding:10px}.coordinate-record-head{justify-content:space-between;gap:12px;margin-bottom:8px;font-size:12px;display:flex}.coordinate-record-head span{white-space:nowrap;color:var(--text-dim)}.coordinate-fields{margin:0;font-size:12px}.coordinate-fields>div{border-top:1px solid var(--border);grid-template-columns:minmax(130px,40%) minmax(0,1fr);gap:10px;padding:4px 0;display:grid}.coordinate-fields dt{color:var(--text-dim);overflow-wrap:anywhere}.coordinate-fields dd{overflow-wrap:anywhere;white-space:pre-wrap;margin:0}.coordinate-fields pre{white-space:pre-wrap;max-height:140px;margin:0;font-size:11px;overflow:auto}.observe-catalogue{z-index:9000;background:var(--bg);border:1px solid var(--border-strong);border-radius:10px;padding:20px;position:absolute;inset:10px;overflow:auto}.observe-catalogue>header{justify-content:space-between;align-items:center;gap:12px;display:flex}.location-context{border:1px solid var(--line,#293b4b);background:#15293859;border-radius:8px;margin:14px 0 20px;padding:12px}.location-section-title{margin:10px 0;font-size:14px}.location-area-list{flex-wrap:wrap;gap:6px;margin:10px 0;display:flex}.location-area-list button{text-align:left;white-space:normal;flex-direction:column;align-items:flex-start;max-width:100%;padding:7px 9px;display:flex}.location-area-list button span{opacity:.75;margin-top:3px;font-size:10px}.location-area-list button[aria-pressed=true]{background:#23a9e821;border-color:#23a9e8}.location-context-filters{flex-wrap:wrap;gap:10px;margin:12px 0;display:flex}.location-context-filters label{flex-direction:column;flex:1;gap:5px;min-width:160px;font-size:11px;display:flex}.location-context-filters input,.location-context-filters select{width:100%;min-width:0}.location-context .coordinate-record-head{align-items:flex-start;gap:12px}.location-context .coordinate-record-head span{white-space:normal;text-align:right;max-width:45%}.observe-stage .maplibregl-ctrl-attrib{max-width:min(440px,100vw - 24px);color:var(--text-dim)!important;box-sizing:border-box!important;margin-bottom:72px!important}.observe-stage .maplibregl-ctrl-attrib-inner{overflow-wrap:anywhere;max-height:140px;overflow:auto}@media (width<=700px){.observe-stage .maplibregl-ctrl-attrib{margin-bottom:calc(96px + env(safe-area-inset-bottom))!important}}.phone-only{display:none}@media (width<=760px),(width<=960px) and (height<=540px) and (pointer:coarse){html,body,#root{width:100%;min-width:0}.shell{height:var(--phone-height,100dvh);padding:env(safe-area-inset-top) env(safe-area-inset-right) 0 env(safe-area-inset-left);grid-template:auto auto auto minmax(0,1fr)/minmax(0,1fr)}.shell>.topbar{grid-column:1;gap:8px;min-width:0;height:48px;padding:0 12px}.topbar .wordmark{font-size:17px}.topbar .asof{display:none}.topbar .badge{white-space:nowrap;align-items:center;min-height:36px;display:inline-flex}.topbar .palette-hint{min-height:44px;font:inherit;padding:0 12px;font-size:13px}.shell>.navbar{scrollbar-width:none;overscroll-behavior-x:contain;grid-column:1;align-items:center;gap:0;min-width:0;padding:0 4px;overflow-x:auto}.navbar::-webkit-scrollbar{display:none}.navbar>a,.navbar>span{white-space:nowrap;flex-shrink:0}.navbar a{align-items:center;min-height:44px;padding:8px 12px;font-size:13px;display:inline-flex}.shell>.ooda-bar{white-space:nowrap;grid-column:1;min-width:0;overflow-x:auto}.ooda-bar>*{flex-shrink:0}.ooda-bar button{min-height:44px}.shell>.main{grid-area:4/1;min-width:0;min-height:0;padding:16px}.shell:has(>.rail:not(:empty)){grid-template-rows:auto auto auto auto minmax(0,1fr)}.shell>.rail:not(:empty){border-right:0;border-bottom:1px solid var(--border);grid-area:4/1;width:auto;max-height:24dvh}.shell:has(>.rail:not(:empty))>.main{grid-row:5}.phone-only{display:flex}.observe-stage{overflow:hidden}.observe-stage button,.observe-stage summary,.observe-stage select,.palette button{min-height:44px}.observe-stage button,.observe-stage summary{font-size:13px!important}.observe-stage button{touch-action:manipulation;min-width:44px}.observe-stage input:not([type=checkbox]),.observe-stage select,.palette input{min-height:44px;font-size:16px!important}.observe-stage input[type=checkbox]{flex-shrink:0;width:20px;height:20px}.observe-stage summary{padding:10px 0!important}.observe-stage .micro{font-size:12px;line-height:1.5}.phone-map-toolbar{z-index:12;pointer-events:none;align-items:flex-start;gap:6px;position:absolute;top:8px;left:8px;right:8px}.phone-map-toolbar button{pointer-events:auto;white-space:nowrap;background:#0c1927f5;border-color:#36526b;padding:0 10px;box-shadow:0 2px 8px #0005}.phone-map-toolbar button:first-child{text-overflow:ellipsis;overflow:hidden}.phone-map-toolbar button[aria-expanded=true]{border-color:var(--accent);color:var(--accent)}.phone-map-toolbar button:last-child{margin-left:auto}.phone-map-prompt{z-index:12;background:var(--panel);border-color:var(--accent);position:absolute;top:60px;left:8px;right:8px}.observe-stage>.stage-left,.observe-stage>.position-strip{display:none}.observe-stage[data-phone-panel=layers]>.stage-left,.observe-stage[data-phone-panel=position]>.position-strip{display:block}.observe-stage>.stage-left,.observe-stage>.position-strip,.observe-stage>.interro-window{min-width:0;max-width:100%;height:auto;min-height:0;padding:0 14px calc(12px + env(safe-area-inset-bottom));overscroll-behavior:contain;resize:none;background:#101e2e;border-bottom:0;border-radius:18px 18px 0 0;bottom:0;overflow:auto;box-shadow:0 -8px 32px #0007;z-index:30!important;width:100%!important;max-height:calc(100% - 64px)!important;top:auto!important;left:0!important;right:0!important}.observe-stage>.stage-left{height:72%}.phone-sheet-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.stage-left>.phone-sheet-head,.position-strip>.phone-sheet-head{z-index:2;background:#101e2e;padding:10px 0;position:sticky;top:0}.phone-sheet-head h1{margin:0;font-size:20px}.observe-stage [data-testid=world-presets]{gap:6px!important}.observe-stage [data-testid=world-presets] button{flex:1 0 28%}.observe-stage [data-testid=world-layer-picker] label{min-height:44px;font-size:13px!important}.observe-stage [data-testid=world-layer-picker] label>span{min-width:0}.observe-stage [data-testid=world-layer-picker] input[type=text]{width:100%}.observe-stage>.interro-window{height:63%;padding:0;display:flex;overflow:hidden}.observe-stage>.interro-window.phone-expanded{height:calc(100% - 64px)!important}.observe-stage .interro-head{cursor:default;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 10px}.observe-stage .interro-head .mono{font-size:12px!important}.observe-stage .interro-actions{gap:4px!important}.observe-stage .interro-actions button{padding:0 8px}.observe-stage .interro-body{padding:0 12px calc(14px + env(safe-area-inset-bottom));overscroll-behavior:contain;min-height:0}.phone-project-actions{flex-wrap:wrap;gap:6px;margin:6px 0 10px;display:flex}.phone-location-switch{flex:none;align-items:center;gap:8px;padding:0 12px 8px;display:flex}.phone-location-switch select{width:100%;min-width:0}.observe-stage .coordinate-tabs button{flex:auto}.observe-stage .coordinate-fields>div{grid-template-columns:minmax(100px,38%) minmax(0,1fr)}.observe-stage .coordinate-record{min-width:0}.observe-stage .location-context-filters label{flex-basis:100%;min-width:0}.observe-stage .interro-dock{display:none}.observe-stage>.observe-catalogue{padding:0 12px calc(16px + env(safe-area-inset-bottom));overscroll-behavior:contain;border-radius:0;inset:0}.observe-stage>.observe-catalogue>header{z-index:2;background:#101e2e;gap:10px;padding:10px 0;position:sticky;top:0}.observe-catalogue>header h2{margin:0;font-size:18px}.observe-catalogue>header button{flex-shrink:0}.observe-catalogue .dataset-controls{flex-wrap:wrap}.observe-catalogue td,.observe-catalogue th{font-size:12px}.observe-stage .maplibregl-ctrl-bottom-left{margin:0}.observe-stage .maplibregl-ctrl-bottom-left .maplibregl-ctrl.nav-globe-control{margin:0 0 calc(32px + env(safe-area-inset-bottom)) 8px}.observe-stage .nav-globe button{min-width:44px;min-height:44px}.observe-stage .nav-globe.collapsed{width:52px;height:52px}.observe-stage .navigation-timeline{left:8px;right:8px;bottom:calc(34px + env(safe-area-inset-bottom))}.observe-stage .navigation-timeline.collapsed{height:48px;left:auto}.observe-stage .navigation-timeline button{min-height:44px}.observe-stage .maplibregl-ctrl-bottom-left:has(.nav-globe:not(.collapsed)){z-index:20}.observe-stage .nav-globe-menu{width:min(310px,100vw - 16px);max-height:min(440px, calc(var(--phone-height,100dvh) - 190px));bottom:0;left:0}.observe-stage:has(.navigation-timeline:not(.collapsed)) .nav-globe-control{margin-bottom:calc(104px + env(safe-area-inset-bottom))!important}.observe-stage:has(.nav-globe:not(.collapsed)) .navigation-timeline.collapsed{max-width:104px}.observe-stage[data-phone-panel]:not([data-phone-panel=""])>.navigation-timeline,.observe-stage[data-phone-panel]:not([data-phone-panel=""]) .nav-globe-control{visibility:hidden;pointer-events:none}.observe-stage .maplibregl-ctrl-bottom-right{max-width:100%}.observe-stage .maplibregl-ctrl-attrib{max-width:calc(100vw - 12px);font-size:10px;line-height:16px}.observe-stage .maplibregl-ctrl-attrib-button{min-width:24px;min-height:24px}.shell>.overlay{padding:max(8px, env(safe-area-inset-top)) 8px;height:var(--phone-height,100dvh);z-index:10000;bottom:auto}.overlay>.palette{flex-direction:column;width:100%;max-height:100%;display:flex}.palette .phone-sheet-head{padding:6px 12px}.palette>input{flex-shrink:0}.palette .results{min-height:0;max-height:none;overflow-y:auto}.palette .row{min-height:44px}}@media (width<=380px){.phone-map-toolbar{gap:4px}.phone-map-toolbar button{padding:0 8px}.phone-map-toolbar button:first-child span{display:none}}@media (width<=960px) and (height<=540px) and (pointer:coarse){.shell>.topbar{height:40px}.shell>.navbar a{min-height:40px;padding-top:4px;padding-bottom:4px}.observe-stage>.stage-left,.observe-stage>.position-strip,.observe-stage>.interro-window,.observe-stage>.interro-window.phone-expanded{border-bottom:1px solid var(--border);border-radius:14px;bottom:8px;width:min(56%,440px)!important;height:auto!important;max-height:none!important;top:60px!important;left:auto!important;right:8px!important}.observe-stage .maplibregl-ctrl-bottom-left .nav-globe-control{margin-bottom:8px!important}.observe-stage .nav-globe:not(.collapsed){height:248px}.observe-stage .nav-globe:not(.collapsed) .nav-globe-footer{display:none}.observe-stage .nav-globe-menu{max-height:calc(var(--phone-height,100dvh) - 110px)}}
