:root{--bg: #e9e9e7;--panel: #ffffff;--line: #d3d3cf;--line-soft: #e4e4e1;--ink: #1d1d1b;--muted: #8b8b86;--orange: #f05a28;--orange-soft: #fde6dc;--map: #d4d4d0;--water: #e6e6e3;--mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase}button,input{font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--orange);outline-offset:1px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.muted{color:var(--muted)}.app{max-width:1280px;margin:0 auto;padding:10px}.topbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:var(--panel);border:1px solid var(--line);padding:8px 12px;margin-bottom:10px}.crumbs{display:flex;gap:8px;font-weight:600;letter-spacing:.14em}.crumbs .sep{color:var(--muted)}.crumb-current{color:var(--orange)}.demo-label{font-size:9px;letter-spacing:.16em;color:var(--muted);border:1px dashed var(--line);padding:2px 6px}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.clock{font-variant-numeric:tabular-nums;font-weight:600}.chip{border:1px solid var(--line);padding:3px 7px;color:var(--muted);font-variant-numeric:tabular-nums}.search{display:flex;align-items:center;gap:6px}.search input{width:170px;border:1px solid var(--line);background:#fafaf9;padding:4px 7px}.search input:focus{border-color:var(--orange);outline:none}.match-hint{color:var(--orange);font-size:10px}.alerts-btn{background:var(--orange);color:#fff;border:0;padding:5px 12px;font-weight:600;letter-spacing:.12em}.main{display:grid;grid-template-columns:200px minmax(0,1fr);grid-template-areas:"side map" "cards cards";gap:10px}.sidebar{grid-area:side;display:flex;flex-direction:column;gap:10px;min-width:0}.panel.map-panel{grid-area:map;padding:0;background:var(--map);overflow:hidden;min-width:0}.cards{grid-area:cards;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.panel{background:var(--panel);border:1px solid var(--line);padding:10px 12px}.panel-title{margin:0 0 8px;font-size:10px;font-weight:600;letter-spacing:.18em;color:var(--ink)}.side-panel{flex:1 1 auto}.side-panel.transit{flex:0 0 auto}.nav,.mini-list,.queue-list,.alerts{list-style:none;margin:0;padding:0}.nav-btn{width:100%;text-align:left;background:none;border:0;border-left:2px solid transparent;padding:5px 8px;letter-spacing:.14em}.nav-btn:hover{background:#f5f5f3}.nav-btn[aria-current=page]{border-left-color:var(--orange);color:var(--orange);background:#faf6f4}.mini-list{margin:8px 0 10px;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);max-height:150px;overflow-y:auto}.mini-row{width:100%;display:flex;justify-content:space-between;gap:6px;background:none;border:0;padding:3px 2px;font-size:10px;text-align:left}.mini-row:hover,.mini-row.is-active{color:var(--orange)}.replay-note{padding:6px 2px;font-size:10px;line-height:1.5}.layers{border:0;margin:0;padding:0}.check{display:flex;align-items:center;gap:8px;padding:3px 0;cursor:pointer}.check input{accent-color:var(--orange);margin:0}.chart,.spark,.wave,.ship,.density,.risk-bar{display:block;width:100%;height:auto}.chart .grid,.wave .grid{stroke:var(--line-soft);stroke-width:1}.chart .axis{stroke:var(--line)}.chart .step{fill:none;stroke:var(--orange);stroke-width:1.5}.tick{fill:var(--muted);font-size:8px;font-family:var(--mono);letter-spacing:.08em}.spark polyline{fill:none;stroke:var(--ink);stroke-width:1}.spark circle{fill:var(--orange)}.wave polyline{fill:none;stroke:var(--ink);stroke-width:.8}.wave-mark{stroke:var(--orange);stroke-width:.6;stroke-dasharray:2 2}.ship{margin:2px 0 8px}.ship .hull{fill:#f4f4f2;stroke:var(--ink);stroke-width:1}.ship .deck,.ship .super,.ship .bow,.ship .mast{fill:none;stroke:var(--ink);stroke-width:1}.ship .waterline{stroke:var(--orange);stroke-dasharray:3 3}.fields{margin:0;display:grid;grid-template-columns:1fr}.field{display:flex;justify-content:space-between;gap:8px;padding:3px 0;border-bottom:1px solid var(--line-soft)}.field dt{color:var(--muted);font-size:10px}.field dd{margin:0;text-align:right;font-weight:600}.accent,.field dd.accent{color:var(--orange)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:8px}.stat b{display:block;font-size:20px;font-weight:600;letter-spacing:0}.stat span{font-size:9px;color:var(--muted)}.stat--accent b{color:var(--orange)}.strip{display:flex;gap:2px;margin-bottom:6px}.block{flex:1;height:12px;border:1px solid var(--ink)}.block--transit{background:var(--orange);border-color:var(--orange)}.block--sel{outline:1px solid var(--ink);outline-offset:1px}.queue-list{margin-top:6px;max-height:168px;overflow-y:auto}.queue-row,.alert-row{width:100%;display:grid;align-items:center;gap:6px;background:none;border:0;border-bottom:1px solid var(--line-soft);padding:4px 2px;text-align:left;font-size:10px}.queue-row{grid-template-columns:20px 1fr auto 38px}.queue-row:hover,.alert-row:hover{background:#f7f7f5}.queue-row.is-active,.alert-row.is-active{background:#faf1ec}.q-pos,.q-eta{color:var(--muted)}.q-status{font-size:9px}.q-status--transit{color:var(--orange)}.empty{padding:6px 2px}.alerts{margin-top:6px}.alert-row{grid-template-columns:38px 1fr auto}.a-time{color:var(--muted)}.sev{font-size:9px;padding:1px 5px;border:1px solid var(--orange);letter-spacing:.1em}.sev--crit{background:var(--orange);color:#fff}.sev--warn{color:var(--orange)}.sev--info{border-color:var(--line);color:var(--muted)}.density .cell{fill:var(--line-soft)}.density .cell--on{fill:var(--orange)}.risk{display:flex;align-items:flex-end;justify-content:space-between;margin:12px 0 6px}.risk b{display:block;font-size:30px;font-weight:600;letter-spacing:0}.risk-band{color:var(--orange);border:1px solid var(--orange);padding:2px 6px;font-size:9px}.risk-track{fill:var(--line-soft)}.risk-fill{fill:var(--orange)}.map{display:block;width:100%;height:auto;font-family:var(--mono)}.map .map-chrome{pointer-events:none}.map text{font-family:var(--mono);letter-spacing:.08em}.water{fill:var(--water)}.terrain-dots--0{fill:#fff;fill-opacity:.55}.terrain-dots--1{fill:#fff;fill-opacity:.85}.terrain-dots--2{fill:#fff}.shore{fill:none;stroke:#fff;stroke-width:1.2}.lane-center{fill:none;stroke:#c4c4c0;stroke-width:1;stroke-dasharray:6 6}.gate line{stroke:var(--ink);stroke-width:1;stroke-dasharray:2 3}.gate text{font-size:10px;fill:var(--ink)}.gate--hot line{stroke:var(--orange);stroke-width:2.5;stroke-dasharray:none}.gate--hot text{fill:var(--orange)}.layer-tracks .track{fill:none;stroke:var(--orange);stroke-width:1.2;stroke-opacity:.55;stroke-dasharray:1 3;stroke-linecap:round}.layer-anch polygon{fill:#fff;fill-opacity:.25;stroke:var(--ink);stroke-width:1;stroke-dasharray:5 4}.layer-anch text{font-size:9px;fill:var(--ink)}.layer-dark circle{fill:none;stroke:var(--orange);stroke-width:1;stroke-dasharray:3 3}.layer-dark .dark-outer{stroke-opacity:.4}.layer-dark text{font-size:9px;fill:var(--orange);font-weight:600}.layer-bathy polyline{fill:none;stroke:#8fa3ad;stroke-width:.8}.layer-bathy text{font-size:8px;fill:#6f838d}.layer-weather rect{fill:#7b8f99}.barb line{stroke:#47555c;stroke-width:1.2}.barb circle{fill:#47555c}.barb text{font-size:8px;fill:#47555c}.vessel{cursor:pointer;outline:none}.vessel-hit{fill:transparent}.vessel-hull{fill:var(--ink);stroke:#fff;stroke-width:.8}.vessel--transit .vessel-hull{fill:var(--orange)}.vessel--clear .vessel-hull{fill:#777773}.vessel--selected .vessel-hull{stroke:var(--ink);stroke-width:1.2}.vessel:hover .vessel-hit,.vessel:focus-visible .vessel-hit{fill:#fff;fill-opacity:.6;stroke:var(--orange)}.map .dim{opacity:.18}.reticle-hair{stroke:var(--ink);stroke-width:.6;stroke-opacity:.35;stroke-dasharray:4 4}.reticle-box{fill:none;stroke:var(--ink);stroke-width:1.5}.reticle-tick{stroke:var(--orange);stroke-width:1}.reticle-label-box{fill:#fff;stroke:var(--line)}.reticle-label{font-size:10px;font-weight:600;fill:var(--ink)}.reticle-sub{font-size:8px;fill:var(--muted)}.depth-scale line{stroke:var(--ink);stroke-width:.8;stroke-opacity:.6}.depth-scale text{font-size:8px;fill:var(--muted)}.north circle{fill:#fff;stroke:var(--line)}.north path{fill:var(--orange)}.north text{font-size:9px;font-weight:600;fill:var(--ink)}.tape rect{fill:#fff;fill-opacity:.9;stroke:var(--line)}.tape line{stroke:var(--ink);stroke-width:1}.tape text{font-size:10px;fill:var(--ink)}.tape-caret{fill:var(--orange)}.tape .tape-readout-box{fill:var(--orange);stroke:none}.tape .tape-readout{fill:#fff;font-weight:600}.map-demo{font-size:9px;fill:var(--orange);letter-spacing:.16em}.map-scale{font-size:8px;fill:var(--muted)}@media(max-width:1100px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:820px){.main{grid-template-columns:minmax(0,1fr);grid-template-areas:"map" "side" "cards"}.sidebar{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.topbar-right{margin-left:0}}@media(max-width:560px){.cards{grid-template-columns:minmax(0,1fr)}}.transit .chart{max-width:260px}
