@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700&family=IBM+Plex+Sans:wght@400;450;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap');
:root{--paper:#f5f3ed;--white:#fffefa;--ink:#193238;--muted:#526368;--line:#d0d6d1;--marine:#102f37;--accent:#a94428;--gold:#edb967;--green:#296947;--soft:#e8ede7;--sans:'IBM Plex Sans',sans-serif;--display:'Barlow Condensed',sans-serif;--mono:'IBM Plex Mono',monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-color:#758981 var(--paper)}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.55 var(--sans);caret-color:var(--accent)}::selection{background:var(--gold);color:var(--ink)}a{color:inherit;text-underline-offset:4px}button,input,select{font:inherit}button,a,input,select,summary{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:4px}h1,h2,h3,p{margin-top:0}h1{font:600 clamp(38px,3.5vw,62px)/1.03 var(--display);letter-spacing:-.025em;margin-bottom:16px;text-wrap:balance}h1 span{color:var(--muted)}h2{font:600 24px/1.18 var(--display);margin-bottom:14px;letter-spacing:.015em}h3{font-size:16px;line-height:1.3;margin-bottom:8px}p{max-width:72ch;margin-bottom:14px}button{border:0}input,select{max-width:100%;width:100%;border:1px solid #a6b4ae;background:var(--white);color:var(--ink);border-radius:2px;min-height:42px;padding:9px 10px}input::placeholder{color:#62716c;opacity:1}input[type=range]{padding:0;border:0;accent-color:var(--ink)}input[type=checkbox]{width:17px;min-height:17px;accent-color:var(--ink)}label{display:block;font-size:12px;font-weight:500;margin:14px 0 5px}select{cursor:pointer}summary{cursor:pointer;font-weight:600;padding:16px 0}details{border-bottom:1px solid var(--line)}details p{font-size:14px;color:var(--muted)}.skip{position:fixed;top:-100px;padding:12px;background:var(--gold);z-index:9999}.skip:focus{top:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.masthead{background:var(--marine);color:#edf4ef;display:flex;align-items:center;min-height:82px;padding:0 34px;gap:42px;border-bottom:3px solid var(--gold)}.wordmark{display:flex;align-items:center;gap:11px;text-decoration:none;white-space:nowrap;font:600 28px/1 var(--display);letter-spacing:.055em}.wordmark svg{width:28px;height:36px;stroke:var(--gold);stroke-width:1.6;fill:none}.brand-light{font-weight:500;color:var(--gold);margin-left:4px}.masthead nav{display:flex;align-self:stretch;gap:26px}.masthead nav a{display:flex;align-items:center;text-decoration:none;font-size:13px;font-weight:500;color:#c4d4d3;border-bottom:3px solid transparent;padding-top:3px;white-space:nowrap}.masthead nav a[aria-current=page]{color:#fff;border-bottom-color:var(--gold)}.masthead nav a:hover{color:var(--gold)}.mast-end{margin-left:auto;text-align:right;font-size:11px;min-width:170px}.mast-end time{display:block;font-family:var(--mono);color:#b9cdcc;letter-spacing:.03em}.connection{color:var(--gold)}.connection.live{color:#afdbc0}.connection.error{color:#ffc1ab}.notice{background:#f7e4bc;border-bottom:1px solid #c6ad7b;padding:10px 34px;font-size:13px;color:#473916}.notice.error{background:#f4dcd2;color:#5d2c1f}.notice[hidden],.view[hidden]{display:none}.view{padding:30px 34px 0}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:26px}.page-heading p{color:var(--muted);font-size:14px;margin:0}.heading-actions{display:flex;gap:15px;flex-direction:column;align-items:flex-end;padding-bottom:4px}.heading-actions label{margin:0}.heading-actions select{width:170px}.primary,.secondary{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:43px;padding:10px 16px;border-radius:2px;font-size:13px;font-weight:500;text-decoration:none;line-height:1.3;white-space:normal}.primary{background:var(--ink);color:#fff}.primary:hover{background:#27515a}.secondary{background:transparent;color:var(--ink);border:1px solid #92a39a}.secondary:hover{background:var(--soft)}.text-link,.text-button{font-size:13px;font-weight:500}.text-button{background:transparent;text-decoration:underline;text-underline-offset:4px;padding:10px 0;color:var(--ink)}.full{width:100%}.small{font-size:12px;color:var(--muted);line-height:1.6}.tiny{font:11px var(--mono);color:var(--muted)}.desk-strip{display:flex;align-items:center;gap:30px;padding:13px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:12px;margin-bottom:20px}.desk-strip strong{font:500 21px var(--mono);margin-right:7px}.strip-note{margin-left:auto;max-width:340px;font-size:11px;color:var(--muted)}.fleet-workspace{display:grid;grid-template-columns:252px minmax(300px,1fr) 282px;min-height:610px;border:1px solid var(--line);background:var(--white)}.fleet-panel,.evidence-panel{padding:20px;min-width:0}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}.panel-heading h2{margin:0}.panel-heading select{width:auto;min-height:36px;font-size:12px;padding:6px}.rule{border-top:1px solid var(--line);padding-top:19px;margin-top:22px}.check{display:flex;align-items:center;gap:7px;font-size:12px;margin-top:12px}.area-note{font-size:12px;color:var(--muted);padding:13px 0;line-height:1.5}.vessel-list{max-height:275px;overflow:auto}.vessel-row{display:block;text-align:left;width:100%;background:none;color:var(--ink);border-bottom:1px solid var(--line);padding:12px 3px}.vessel-row:hover,.vessel-row.selected{background:var(--soft)}.vessel-row strong{display:block;font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vessel-row small{display:block;font:10px var(--mono);margin-top:5px;color:var(--muted)}.map-wrap{position:relative;min-height:610px;background:#deebe7;border-left:1px solid var(--line);border-right:1px solid var(--line)}#fleet-map{height:100%;min-height:610px;position:absolute;inset:0}.map-key{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:center;flex-wrap:wrap;gap:10px;background:var(--white);padding:9px 14px;font-size:10px;border-top:1px solid var(--line);z-index:500}.map-key span:last-child{margin-left:auto;color:var(--muted)}.symbol{width:8px;height:8px;display:inline-block;border-radius:50%}.tanker-symbol{background:var(--accent)}.other-symbol{background:#668777}.map-fallback{padding:90px 35px;font-size:15px;text-align:center}.vessel-detail p{font-size:13px;color:var(--muted)}.vessel-detail h3{padding-top:13px}.detail-table{margin:10px 0;display:grid;grid-template-columns:1fr 1.4fr;gap:8px;font-size:12px}.detail-table dt{color:var(--muted)}.detail-table dd{margin:0;overflow-wrap:anywhere}.empty{font-size:13px;color:var(--muted);line-height:1.6;padding:15px 0}.lead{border-top:1px solid var(--line);padding:12px 0;font-size:12px}.lead b{display:block}.lead span{display:block;font:10px var(--mono);color:var(--muted);padding-top:5px}#encounter-list{max-height:270px;overflow:auto}.footnote{display:flex;justify-content:space-between;gap:20px;font-size:11px;color:var(--muted);padding:13px 0 22px}.lab-layout{display:grid;grid-template-columns:260px minmax(320px,1fr) 276px;gap:0;border:1px solid var(--line);background:var(--white)}.lab-controls,.review-panel{padding:20px}.lab-controls .primary{margin:18px 0 12px}.form-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:end;min-width:0}.scene-list{max-height:350px;overflow:auto}.scene-row{background:transparent;display:block;width:100%;text-align:left;padding:12px 5px;border-bottom:1px solid var(--line);color:var(--ink);font-size:12px}.scene-row:hover,.scene-row.active{background:var(--soft)}.scene-row small{display:block;color:var(--muted);font-size:10px}.scene-row .tiny{display:block;line-height:1.5;margin-top:5px;overflow-wrap:anywhere}.image-stage{border-left:1px solid var(--line);border-right:1px solid var(--line);min-width:0;background:var(--marine);color:#f0f4ef;display:flex;flex-direction:column}.image-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:11px;min-height:56px;padding:10px 14px;border-bottom:1px solid #3d565c}.image-toolbar>div{display:flex;align-items:center;gap:8px}.inline-label{display:inline;margin:0;color:#c9d6d4;font-size:10px;white-space:nowrap}.image-toolbar select{padding:5px;width:64px;min-height:32px;font-size:11px}.canvas-scroll{height:600px;overflow:auto;position:relative;display:flex;align-items:flex-start;justify-content:flex-start}.canvas-scroll #image-empty{align-self:center;text-align:center;padding:60px 40px;color:#c6d6d5;width:100%}#image-empty h2{color:#fff;font:500 34px var(--display)}#image-empty p{font-size:13px;max-width:390px;margin:0 auto}#image-empty svg{stroke:#859e9e;stroke-width:1;fill:none;width:100px;margin-bottom:20px}#scene-canvas{display:block;image-rendering:pixelated;flex:none;max-width:none;cursor:crosshair}#scene-canvas[hidden]{display:none}.image-meta{font:10px/1.6 var(--mono);padding:12px 16px;color:#c7d7d6;border-top:1px solid #3d565c;overflow-wrap:anywhere}.range-caption{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin:0 0 16px}.count-summary{font:11px/1.6 var(--mono);padding:14px 0;border-bottom:1px solid var(--line)}.object-list{max-height:420px;overflow:auto;margin-bottom:16px}.object-item{padding:13px 0;border-bottom:1px solid var(--line)}.object-item strong{font-size:12px}.object-item p{font-size:11px;color:var(--muted);margin:5px 0}.object-item select{font-size:11px;min-height:32px;padding:5px;margin:7px 0}.object-item .object-actions{display:flex;gap:6px}.object-item button{padding:6px 9px;font-size:11px;background:var(--soft);color:var(--ink);min-height:33px}.object-item.selected{background:#faf0dc}.object-item[data-review=ship] strong{color:var(--green)}.object-item[data-review=rejected]{opacity:.65}.balance-explainer{display:grid;grid-template-columns:1fr 2fr;gap:40px;padding:23px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:28px}.balance-explainer strong{font:500 27px var(--display);align-self:center}.balance-explainer p{font-size:13px;margin:0;color:var(--muted)}.balance-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:50px}.balance-numbers{margin:22px 0}.balance-numbers>div{display:flex;justify-content:space-between;gap:20px;padding:13px 0;border-bottom:1px solid var(--line);align-items:baseline}.balance-numbers dt{font-size:13px}.balance-numbers dd{font:500 19px var(--mono);margin:0}.flow-result{font-size:13px;padding:15px 0;margin-bottom:0}.price-readout{display:flex;align-items:baseline;gap:18px;padding:15px 0}.price-readout strong{font:500 32px var(--mono);letter-spacing:-.04em}.price-readout span{font-size:12px;color:var(--muted)}#price-chart{min-height:230px;width:100%}#price-chart svg{display:block;width:100%;height:auto;overflow:visible}.ledger-heading{display:flex;align-items:center;gap:25px;margin-top:44px;border-top:1px solid var(--line);padding:26px 0 18px}.ledger-heading>div{margin-right:auto}.ledger-heading h2{margin-bottom:5px}.ledger-heading p{font-size:12px;color:var(--muted);margin:0}.file-button{margin:0;cursor:pointer;align-self:center}.table-scroll{overflow-x:auto;background:var(--white);border:1px solid var(--line)}table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}th{font-size:11px;font-weight:500;color:var(--muted);background:#eef0e9;padding:12px 15px;white-space:nowrap}td{padding:14px 15px;border-top:1px solid var(--line);min-width:110px}td small{display:block;color:var(--muted);font-size:10px;margin-top:4px}td.empty{text-align:center;padding:35px}.transfer-form{padding-bottom:18px}.form-row{display:flex;flex-wrap:wrap;gap:15px;align-items:flex-end}.form-row label{flex:1;min-width:150px}.form-row button{margin-bottom:1px}.forecast-section{display:grid;grid-template-columns:1.15fr .7fr 1fr;gap:35px;margin:38px 0 30px;padding-top:28px;border-top:1px solid var(--line)}.forecast-section p{font-size:13px;color:var(--muted)}.forecast-controls label:first-child{margin-top:0}.forecast-controls .file-button{margin-top:15px}.forecast-result{padding:20px;background:var(--soft);font-size:13px;overflow-wrap:anywhere}.forecast-result strong{display:block;font:500 24px var(--display);margin-bottom:10px}.forecast-result dl{display:grid;grid-template-columns:1.2fr 1fr;gap:8px;font-size:12px}.forecast-result dd{margin:0;font-family:var(--mono)}.sources-layout{display:grid;grid-template-columns:minmax(300px,1.5fr) minmax(280px,.7fr);gap:70px;margin:10px 0 40px}.source-settings{padding:24px;background:var(--soft);align-self:start}.source-settings .primary{margin-top:22px}.source-register{border-top:1px solid var(--line)}.source-item{display:grid;grid-template-columns:1.1fr .6fr 1.7fr;gap:24px;padding:19px 0;border-bottom:1px solid var(--line);font-size:12px;align-items:baseline}.source-item b{font-size:13px}.source-item small{display:block;color:var(--muted);font-size:11px}.source-state{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.02em}.source-state.connected{color:var(--green)}.source-state.error{color:var(--accent)}.section-gap{margin-top:32px}.source-links{display:flex;flex-direction:column;gap:13px;font-size:12px}footer{margin:30px 34px 0;padding:20px 0 26px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;font-size:10px;font-weight:500;letter-spacing:.04em}.footer-muted,footer>span:last-child{color:var(--muted);font-weight:400}.leaflet-popup-content{font:12px/1.6 var(--sans)}.leaflet-container{font-family:var(--sans)}.leaflet-control-attribution{bottom:29px!important}.leaflet-control-zoom a{background:var(--white)!important;color:var(--ink)!important}.ship-icon{background:transparent;border:0}.ship-icon svg{overflow:visible;filter:drop-shadow(0 1px 2px #0003)}.busy{cursor:progress!important}
@media(min-width:1700px){.view,footer{max-width:1732px;margin-left:auto;margin-right:auto}.fleet-workspace{grid-template-columns:285px minmax(600px,1fr) 310px}.map-wrap,#fleet-map{min-height:700px}}
@media(max-width:1250px){.masthead{gap:24px;padding:0 24px}.masthead nav{gap:18px}.mast-end{min-width:130px}.view{padding:25px 24px 0}.fleet-workspace{grid-template-columns:225px minmax(260px,1fr) 235px}.fleet-panel,.evidence-panel{padding:16px}.lab-layout{grid-template-columns:235px minmax(260px,1fr) 230px}.lab-controls,.review-panel{padding:15px}.desk-strip{gap:20px}.strip-note{max-width:230px}.sources-layout{gap:40px}}
@media(max-width:1000px){.masthead{flex-wrap:wrap;gap:0;min-height:auto;padding:17px 24px 0}.wordmark{margin-bottom:15px}.masthead nav{order:3;width:100%;min-height:48px;justify-content:space-between}.mast-end{margin-left:auto;margin-bottom:15px}.fleet-workspace{grid-template-columns:235px 1fr}.evidence-panel{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:15px 30px}.evidence-panel>.panel-heading:first-child,.evidence-panel>.vessel-detail{grid-column:1}.evidence-panel>.rule{grid-column:2;grid-row:1;border-top:0;padding:0;margin:0}.evidence-panel>.small{grid-column:2;grid-row:2}.evidence-panel>#encounter-list{grid-column:2;grid-row:3}.vessel-detail{grid-row:2/4}.lab-layout{grid-template-columns:240px 1fr}.review-panel{grid-column:1/-1;display:block}.object-list{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;max-height:350px}.review-panel>input,.review-panel>.range-caption{max-width:300px}.review-panel>.primary,.review-panel>.secondary{max-width:250px}.canvas-scroll{height:580px}.balance-grid{gap:30px}.balance-numbers dd{font-size:16px}.strip-note{display:none}.forecast-section{grid-template-columns:1fr 1fr}.forecast-result{grid-column:1/-1}.ledger-heading{flex-wrap:wrap}.ledger-heading>div{width:100%}.sources-layout{grid-template-columns:1.2fr 1fr;gap:25px}.source-item{grid-template-columns:1fr .7fr;gap:8px}.source-item>div:last-child{grid-column:1/-1}}
@media(max-width:700px){body{font-size:14px}.masthead{padding:15px 18px 0}.wordmark{font-size:25px}.wordmark svg{width:23px}.mast-end{min-width:100px;font-size:9px}.masthead nav{gap:10px}.masthead nav a{font-size:11px}.view{padding:23px 18px 0}.page-heading{display:block;margin-bottom:22px}.page-heading h1{font-size:43px}.page-heading p{font-size:13px}.heading-actions{margin-top:18px;align-items:flex-start;flex-direction:row;flex-wrap:wrap}.page-heading>a{margin-top:18px}.desk-strip{gap:15px;flex-wrap:wrap}.desk-strip>span{font-size:10px}.desk-strip strong{font-size:17px}.fleet-workspace{display:flex;flex-direction:column}.fleet-panel{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;padding:15px}.fleet-panel>.panel-heading:first-child,.fleet-panel>.area-note,.fleet-panel>.rule,.fleet-panel>.vessel-list{grid-column:1/-1}.fleet-panel>label[for=region]{grid-column:1;grid-row:2}.fleet-panel>#region{grid-column:1;grid-row:3}.fleet-panel>label[for=vessel-search]{grid-column:2;grid-row:2}.fleet-panel>#vessel-search{grid-column:2;grid-row:3}.fleet-panel .vessel-list{max-height:160px;display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.fleet-panel .rule{margin-top:5px;padding-top:10px}.fleet-panel .area-note{padding:5px 0}.map-wrap,#fleet-map{min-height:410px}.map-wrap{border-left:0;border-right:0;border-top:1px solid var(--line)}.evidence-panel{display:block}.evidence-panel .rule{border-top:1px solid var(--line);margin-top:20px;padding-top:20px}.footnote{display:block}.footnote span{display:block;margin-bottom:7px}.lab-layout{display:block}.lab-controls{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.lab-controls h2,.lab-controls>.small,.lab-controls>.scene-list,.lab-controls>.primary{grid-column:1/-1}.lab-controls>label[for=provider]{grid-column:1/-1}.lab-controls>#provider{grid-column:1/-1}.lab-controls>.form-pair{grid-column:1/-1}.scene-list{max-height:180px}.image-stage{border:0}.canvas-scroll{height:450px}.image-toolbar{flex-wrap:wrap}.object-list{grid-template-columns:1fr 1fr}.balance-explainer{display:block;padding:20px 0}.balance-explainer strong{display:block;margin-bottom:12px}.balance-grid{display:block}.price-panel{margin-top:30px;padding-top:25px;border-top:1px solid var(--line)}.balance-numbers dd{font-size:18px}.forecast-section{display:block}.forecast-controls{max-width:350px;margin:20px 0}.forecast-result{margin-top:20px}.sources-layout{display:flex;flex-direction:column}.source-settings{order:-1}.source-item{grid-template-columns:1fr .6fr}.ledger-heading{gap:14px}.ledger-heading .secondary{min-height:43px}.form-row{display:block}.form-row button{margin-top:16px}footer{margin:25px 18px 0;display:block}footer>span{display:block;margin-bottom:8px}.notice{padding:10px 18px}.map-key span:last-child{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
@media print{.masthead{background:#fff;color:#000;display:block;padding:0}.wordmark{color:#000}.masthead nav,.mast-end,.heading-actions,button,.file-button,.source-settings,.lab-controls,.review-panel{display:none!important}.view{padding:15px 0}.view[hidden]{display:none!important}footer{margin:0}.map-wrap{min-height:400px}details{break-inside:avoid}.table-scroll{overflow:visible}.balance-grid,.sources-layout,.forecast-section{display:block}.price-panel,.forecast-result{break-inside:avoid}}

.map-fallback{position:absolute;left:12px;right:12px;bottom:35px;padding:10px 14px;background:var(--paper,#f5f4ee);color:var(--ink,#16333b);font-size:12px;z-index:500;border:1px solid #aebbb8}.map-wrap{position:relative}.review-panel #annotate-object{margin-top:10px}[aria-pressed=true]{outline:2px solid #b77b19}#scene-canvas{touch-action:none}.forecast-controls .text-button{display:block;margin-top:12px}

/* Intrinsic date controls must not force narrow grid columns wider. */
.form-pair{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.form-pair>div{min-width:0}
.lab-controls .form-pair:has(input[type=date]){grid-template-columns:1fr}
/* Fit follows the available width even when a hidden pane becomes visible. */
.image-stage:has(#image-zoom option[value="fit"]:checked) #scene-canvas{width:auto!important;height:auto!important;max-width:100%}

.sat-symbol{background:#1b6f96;border-radius:1px;transform:rotate(45deg)}.sat-symbol.cluttered{background:transparent;border:1.5px solid #1b6f96}.tile-symbol{border:1.5px dashed #1b6f96;border-radius:0;width:11px;height:11px}
.sat-icon svg{display:block}
.watch-list{display:grid;gap:0;margin-bottom:12px}.watch-row{display:grid;grid-template-columns:1fr auto;gap:2px 10px;text-align:left;background:none;border-top:1px solid var(--line);padding:10px 0;font-size:12px;color:var(--ink)}.watch-row:hover b{text-decoration:underline}.watch-row b{font-weight:600}.watch-row small{grid-column:1/-1;font:10px var(--mono);color:var(--muted)}.watch-row .n{font:500 16px var(--mono);align-self:center}
textarea{width:100%;max-width:100%;border:1px solid #a6b4ae;background:var(--white);color:var(--ink);border-radius:2px;padding:9px 10px;font:12px/1.4 var(--mono);resize:vertical}
textarea:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
.snapshot-banner{padding:10px 34px;background:var(--gold);color:var(--marine);font-size:13px;font-weight:500}.snapshot-banner a{font-weight:600}
@media(max-width:700px){.snapshot-banner{padding:10px 16px}}
/* Keep the map a fixed working height; side panels scroll instead of stretching it. */
.fleet-workspace{height:clamp(640px,80vh,880px);grid-template-rows:minmax(0,1fr)}
.fleet-panel,.evidence-panel{overflow:auto;overscroll-behavior:contain;min-height:0}
.watch-list,#encounter-list{max-height:320px;overflow:auto}
@media(max-width:1250px){.fleet-workspace{height:auto;grid-template-rows:auto}.map-wrap,#fleet-map{min-height:560px}.evidence-panel{display:block;overflow:visible}.evidence-panel>*{grid-column:auto;grid-row:auto}}
@media(max-width:1000px){.fleet-panel{overflow:visible}}

/* Oil at sea */
.estimate-badge{font:500 11px var(--mono);background:var(--soft);border:1px solid var(--line);padding:6px 10px}
.estimate{display:grid;gap:22px;margin-bottom:34px}
.est-hero{display:grid;grid-template-columns:minmax(260px,1fr) 2fr;gap:30px;align-items:end;padding:22px 24px;background:var(--marine);color:#edf4ef}
.est-figure{display:grid;gap:4px}.est-label{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#b9ccc4}
.est-figure strong{font:600 clamp(40px,4.5vw,64px)/1 var(--display);color:var(--gold)}
.est-range{font:500 13px var(--mono)}.est-asof{font-size:12px;color:#b9ccc4}
.est-deltas{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:0}.est-deltas dt{font-size:11px;color:#b9ccc4;text-transform:uppercase;letter-spacing:.05em}
.est-deltas dd{margin:4px 0 0;font:500 18px var(--mono)}.est-deltas .up{color:#9fe0b9}.est-deltas .down{color:#f2a58f}
.est-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:22px}
.est-block{background:var(--white);border:1px solid var(--line);padding:20px;min-width:0}
.est-block h3{font:600 20px/1.2 var(--display);letter-spacing:.015em;margin-bottom:12px}
.est-table{width:100%;border-collapse:collapse;font-size:13px}.est-table th{font:500 11px var(--sans);color:var(--muted);text-align:left;border-bottom:1px solid var(--line);padding:6px 8px 6px 0}
.est-table td{border-bottom:1px solid var(--line);padding:7px 8px 7px 0;vertical-align:top}.est-table td.num{font:500 13px var(--mono);white-space:nowrap}
.est-table tr.total td{font-weight:600;border-top:2px solid var(--ink)}
.est-bars{display:grid;gap:8px}.est-bar{display:grid;grid-template-columns:110px 1fr 120px;gap:10px;align-items:center;font-size:12px}
.est-bar .track{height:12px;background:var(--soft);position:relative}.est-bar .range{position:absolute;top:0;bottom:0;background:#e7c690}.est-bar .mid{position:absolute;top:-2px;bottom:-2px;width:3px;background:var(--accent)}
.est-bar .v{font:500 12px var(--mono);text-align:right}
.est-corr{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.est-corr div{border:1px solid var(--line);padding:10px;display:grid;gap:3px}
.est-corr b{font:500 20px var(--mono)}.est-corr span{font-size:11px;color:var(--muted)}
.stocks{display:grid;grid-template-columns:1fr 1fr;gap:22px}.stocks svg{width:100%;height:auto}
.stock-head{display:flex;justify-content:space-between;align-items:baseline;font-size:12px}.stock-head b{font:500 18px var(--mono)}
.inline-select{display:flex;align-items:center;gap:6px;margin:0;font-size:12px}.inline-select select{width:auto;min-height:32px;padding:4px 6px;font-size:12px}
.proj-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.proj-card{border:1px solid var(--line);padding:12px;display:grid;gap:4px}.proj-card b{font:500 22px var(--mono)}.proj-card span{font-size:11px;color:var(--muted)}.proj-card .h{font:600 12px var(--sans);color:var(--ink);text-transform:uppercase;letter-spacing:.05em}
.dest-map-wrap{position:relative;height:430px;border:1px solid var(--line)}#dest-map{position:absolute;inset:0;background:#dfe9ea}
.dest-bars{position:absolute;top:10px;right:10px;z-index:500;width:min(300px,45%);max-height:calc(100% - 20px);overflow:auto;background:rgb(255 254 250/.94);border:1px solid var(--line);padding:10px 12px;display:grid;gap:6px;font-size:11px}
.dest-bar{display:grid;grid-template-columns:1fr 46px;gap:2px 8px;align-items:center}.dest-bar .t{height:7px;background:var(--soft);grid-column:1/-1}.dest-bar .t i{display:block;height:100%;background:#a94428}.dest-bar b{font:500 11px var(--mono);text-align:right}
@media(max-width:700px){.proj-cards{grid-template-columns:1fr}.dest-map-wrap{height:520px}.dest-bars{top:auto;bottom:10px;right:10px;left:10px;width:auto;max-height:45%}}
.est-vessels summary,.est-block>summary{font:600 18px var(--display);padding:4px 0}
.ledger-divider{display:flex;justify-content:space-between;align-items:end;border-top:3px solid var(--ink);padding-top:22px;margin-bottom:18px}.ledger-divider h2{margin:0}
.strip-estimate{margin-left:auto;text-decoration:none;font-size:12px;border:1px solid var(--line);padding:4px 10px;background:var(--white)}.strip-estimate:hover{border-color:var(--ink)}
.scene-queue{display:flex;align-items:center;gap:8px}.queue-button{background:none;color:inherit;border:1px solid #4d6b72;padding:3px 9px;font-size:12px}.queue-button:hover{border-color:var(--gold)}
.keys kbd{font:500 11px var(--mono);border:1px solid var(--line);border-bottom-width:2px;padding:0 4px;background:var(--white)}
.class-badge{display:inline-block;font:500 10px var(--mono);padding:2px 6px;margin-bottom:6px;border:1px solid}
.class-badge.tanker_likely{color:#a94428;border-color:#a94428;background:#fbeee9}.class-badge.tanker_possible{color:#8a5a00;border-color:#c9922b;background:#fdf5e4}.class-badge.other_unknown{color:var(--muted);border-color:var(--line)}
.object-item.reviewed-tanker{box-shadow:inset 3px 0 0 #296947}.object-actions button.on{background:var(--ink);color:#fff}
@media(max-width:1000px){.est-hero{grid-template-columns:1fr}.est-deltas{grid-template-columns:repeat(2,1fr)}.est-grid{grid-template-columns:1fr}.stocks{grid-template-columns:1fr}.est-corr{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.est-hero{padding:18px}.est-bar{grid-template-columns:80px 1fr 90px}.strip-estimate{margin-left:0}}
.est-table td,.est-table th{min-width:0;padding-left:0}
.est-block{overflow-x:auto}
@media(max-width:700px){.est-table{font-size:12px}.est-table td.num{white-space:normal;font-size:12px}.est-table th:nth-child(2),.est-table td:nth-child(2){padding-right:6px}.est-block{padding:14px}.est-deltas dd{font-size:15px}}

/* Labelling flow */
.est-gap{margin:12px 0 0;padding:10px 12px;background:#f4dcd2;border-left:3px solid #a94428;color:#5d2c1f;font-size:13px;max-width:62ch}
.gap-row td:first-child small{display:block;color:#a94428;font:10px var(--mono);margin-top:3px}
.view-ctl{background:var(--white);border:1px solid #9aa9a3;box-shadow:0 1px 4px #0002;padding:8px;display:grid;gap:9px;width:200px}
.view-ctl .seg{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--ink)}
.view-ctl .seg button{background:var(--white);color:var(--ink);font-size:12px;font-weight:600;padding:7px 0;min-height:0}
.view-ctl .seg button+button{border-left:1px solid var(--ink)}.view-ctl .seg button[aria-pressed=true]{background:var(--ink);color:#fff}
.view-base{font:10px var(--mono);color:var(--muted)}
.gfw-switch{display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:start;margin:0;font-size:12px;font-weight:600;cursor:pointer}
.gfw-switch input[type=checkbox]{width:16px;min-height:16px;margin:2px 0 0;padding:0}
.gfw-switch small{display:block;font:10px var(--mono);color:var(--muted);font-weight:400}
.minimap{width:min-content;background:var(--white);border:1px solid #9aa9a3;box-shadow:0 1px 5px #0003;padding:3px;margin-bottom:40px!important}.minimap.off{display:none}
.minimap-map{width:190px;height:130px;cursor:pointer}.minimap-cap{display:block;font:10px var(--mono);color:var(--muted);padding:3px 2px 0}
@media(max-width:700px){.minimap-map{width:128px;height:88px}.view-ctl{width:164px}}
.scan-ctl{background:var(--white);border:1px solid #9aa9a3;padding:6px;display:grid;gap:3px;max-width:225px;box-shadow:0 1px 4px #0002}
.scan-ctl button{background:var(--ink);color:#fff;font-size:12px;font-weight:600;padding:7px 10px}.scan-ctl button:disabled{background:#8a9a95}
.scan-ctl span{font:10px var(--mono);color:var(--muted);line-height:1.3}
.scan-progress{display:flex;align-items:flex-start;gap:7px;margin-top:3px;padding:6px;background:#e7f0ef;border-left:3px solid #1b6f96}
.scan-progress[hidden]{display:none}
.scan-progress #scan-progress-text{color:var(--ink);overflow-wrap:anywhere}
.scan-pulse{width:7px;height:7px;flex:none;margin-top:3px;border-radius:50%;background:#1b6f96;animation:scan-pulse 1.4s ease-in-out infinite}
@keyframes scan-pulse{50%{opacity:.3}}
@media(prefers-reduced-motion:reduce){.scan-pulse{animation:none}}
.pill-count{font:500 12px var(--mono);background:var(--gold);color:var(--marine);padding:2px 8px;border-radius:10px;margin-left:8px}
.heading-links{display:flex;gap:18px;align-items:center}
.lab-context{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(180px,260px) auto auto;gap:18px;align-items:center;background:var(--marine);color:#edf4ef;padding:12px 18px;margin-bottom:0;border-bottom:3px solid var(--gold)}
.lab-context[hidden]{display:none}.back-link{color:var(--gold);font-weight:600;font-size:13px;text-decoration:none}.back-link:hover{text-decoration:underline}
.lab-where{display:grid;min-width:0}.lab-where b{font:600 18px var(--display);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lab-where .tiny{color:#b9ccc4}
.lab-progress{display:grid;gap:4px}.lab-progress .tiny{color:#b9ccc4}.lab-progress .bar{height:6px;background:#2d4a51}.lab-progress .bar i{display:block;height:100%;width:0;background:var(--gold);transition:width .25s}
.lab-context .scene-queue span{color:#b9ccc4}.lab-context .text-button{color:#edf4ef;padding:0}
.lab-layout.labelling{grid-template-columns:minmax(0,1fr) 340px}.lab-layout.labelling .lab-controls{display:none}
.hull-card{border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:12px}
.hull-card-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.hull-card-head h2{margin:0;font-size:22px}
.chip-wrap{position:relative;margin:10px 0;background:#0b1f24;aspect-ratio:1;max-width:100%}#hull-chip{display:block;width:100%;height:auto;image-rendering:pixelated}
.chip-scale{position:absolute;left:8px;bottom:8px;font:500 10px var(--mono);color:#fff;border-bottom:2px solid #fff;padding-bottom:2px}
.hull-suggestion{font-size:13px;margin:0 0 10px}.hull-suggestion b{font-weight:600}
.label-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.label-btn{display:grid;justify-items:center;gap:3px;padding:10px 4px;min-height:58px;font-weight:600;font-size:13px;border:2px solid transparent;background:var(--soft);color:var(--ink)}
.label-btn kbd{font:500 10px var(--mono);border:1px solid #9aa9a3;padding:0 4px;background:var(--white)}
.label-btn.tanker{border-color:#a94428}.label-btn.tanker:hover,.label-btn.tanker.on{background:#a94428;color:#fff}
.label-btn.other{border-color:#1b6f96}.label-btn.other:hover,.label-btn.other.on{background:#1b6f96;color:#fff}
.label-btn.reject{border-color:#7a8883}.label-btn.reject:hover,.label-btn.reject.on{background:#5b6864;color:#fff}
.hull-list-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.hull-list-head h2{margin:0;font-size:18px}.hull-list-head .check{margin:0}
.object-list .hull-row{display:grid;grid-template-columns:10px 1fr auto;gap:8px;align-items:center;width:100%;text-align:left;background:none;border-bottom:1px solid var(--line);padding:8px 2px;font-size:12px;color:var(--ink)}
.hull-row:hover{background:var(--soft)}.hull-row.selected{background:#faf0dc}.hull-row .dot{width:10px;height:10px;border-radius:50%;background:#c9d1ce}
.hull-row .dot.tanker{background:#a94428}.hull-row .dot.other{background:#1b6f96}.hull-row .dot.rejected{background:#5b6864}.hull-row .dot.unlabelled{background:transparent;border:2px solid #9aa9a3}
.hull-row small{color:var(--muted);font:10px var(--mono)}.hull-row .sug{font:500 10px var(--mono);white-space:nowrap}
.lab-tools{margin-top:14px}.lab-tools summary{font-size:13px}
@media(max-width:1000px){.lab-context{grid-template-columns:1fr 1fr;gap:10px}.lab-layout.labelling{display:block}}
@media(max-width:700px){.lab-context{grid-template-columns:1fr;padding:12px}.heading-actions{align-items:stretch}.heading-links{justify-content:space-between}}
.chip-wrap{max-width:300px}
@media(max-width:1000px){
  .lab-layout.labelling{display:flex;flex-direction:column}
  .lab-layout.labelling .review-panel{order:-1;border-bottom:1px solid var(--line)}
  .hull-card{display:grid;grid-template-columns:minmax(180px,260px) minmax(0,1fr);gap:4px 18px;align-items:start}
  .hull-card-head{grid-column:1/-1}.hull-card .chip-wrap{grid-row:2/span 3;margin:6px 0}
  .hull-card .label-buttons{align-self:end}
}
@media(max-width:560px){.hull-card{display:block}.hull-card .chip-wrap{max-width:240px;margin:8px auto}}
