:root{font-family:Inter,Segoe UI,Arial,sans-serif;color-scheme:dark;--bg:#0b1220;--side:#0e192b;--card:#152238;--line:#273950;--text:#ecf3ff;--muted:#8ea1ba;--blue:#39b5e8;--input:#101c2f;--green:#52d9a5}body.light{color-scheme:light;--bg:#f1f5fa;--side:#fff;--card:#fff;--line:#dbe4ee;--text:#16253b;--muted:#687a8e;--blue:#0876b4;--input:#f7faff;--green:#148f66}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}button{cursor:pointer}.layout{display:flex;min-height:100vh}aside{width:242px;background:var(--side);border-right:1px solid var(--line);padding:27px 18px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{font-weight:900;font-size:25px;letter-spacing:1px}.accent{color:var(--blue)}.caption,.eyebrow{font-size:10px;letter-spacing:2px;color:var(--muted);font-weight:700;margin-top:8px}.caption{margin-bottom:45px}nav{display:grid;gap:8px}.nav{width:100%;text-align:left;border:0;background:transparent;color:var(--muted);padding:15px 16px;border-radius:10px}.nav.active,.nav:hover{background:#2198ce20;color:var(--blue)}.sidefoot{margin-top:auto;color:var(--muted);font-size:11px;line-height:2}.sidefoot small{font-size:10px}.dot{display:inline-block;width:7px;height:7px;background:var(--green);border-radius:50%}main{padding:30px 38px;flex:1;min-width:0}header{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:32px}h1{font-size:29px;margin:8px 0 0;letter-spacing:-.7px}h2{margin:5px 0 0}h3{font-size:15px;margin:0 0 18px}.actions{display:flex;gap:10px;align-items:center}.chip,.primary{border:1px solid var(--line);border-radius:9px;padding:11px 15px;background:var(--card);color:var(--text)}.primary{background:#098fc8;border-color:#098fc8;color:white;font-weight:700}.primary:hover{background:#087aa9}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:23px}.card,.panel{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:21px}.metric{font-size:32px;font-weight:800;margin:14px 0 4px}.sub{font-size:12px;color:var(--muted)}.tag{font-size:10px;letter-spacing:1.2px;color:var(--muted);font-weight:700}.panels{display:grid;grid-template-columns:1.5fr 1fr;gap:20px}.map{height:335px;background:radial-gradient(ellipse at 52% 45%,#173c56 0%,#10243a 40%,#0b1b2c 85%);border-radius:10px;display:flex;align-items:center;justify-content:center;text-align:center;color:#b7d3e6;border:1px dashed #38617b}.light .map{background:#d8edf7;color:#3e718c}.empty{color:var(--muted);padding:30px 8px;text-align:center;line-height:1.8}.tablewrap{overflow:auto}.table{width:100%;border-collapse:collapse;text-align:left}.table th{font-size:10px;letter-spacing:1px;color:var(--muted);padding:13px;border-bottom:1px solid var(--line)}.table td{padding:14px 13px;border-bottom:1px solid var(--line);font-size:13px}.table tr:last-child td{border:0}.vname{font-weight:750}.pill{display:inline-block;border:1px solid var(--line);padding:5px 9px;border-radius:20px;font-size:11px;color:var(--muted)}.pill.on{color:var(--green);border-color:#35ad8266}.rowactions{display:flex;gap:7px;flex-wrap:wrap}.small{padding:6px 9px;font-size:12px}.notice{padding:13px 17px;border:1px solid var(--blue);border-radius:9px;margin-bottom:20px;color:var(--blue)}footer{margin-top:35px;color:var(--muted);font-size:11px}dialog{background:var(--card);color:var(--text);border:1px solid var(--line);border-radius:16px;width:min(820px,96vw);max-height:90vh;padding:26px}dialog::backdrop{background:#000a}.dialoghead,.dialogactions{display:flex;justify-content:space-between;align-items:center}.fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:23px 0;max-height:60vh;overflow:auto;padding:2px}.field{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--muted)}.field input,.field textarea{border:1px solid var(--line);border-radius:8px;background:var(--input);color:var(--text);padding:11px;min-width:0}.field.wide{grid-column:1/-1}.field.check{justify-content:end;flex-direction:row-reverse;align-items:center}.dialogactions{justify-content:flex-end;gap:10px}.hint{font-size:12px;color:var(--muted);margin-bottom:16px}.statusline{margin-bottom:18px;font-size:12px;color:var(--muted)}@media(max-width:950px){.cards{grid-template-columns:repeat(2,1fr)}.panels{grid-template-columns:1fr}aside{width:185px}main{padding:22px}}@media(max-width:640px){.layout{display:block}aside{position:relative;height:auto;width:auto;padding:15px}.caption,.sidefoot{display:none}nav{display:flex;overflow:auto;margin-top:14px}.nav{white-space:nowrap;padding:10px}.brand{font-size:20px}header{align-items:flex-start;flex-direction:column}main{padding:17px}.cards{grid-template-columns:repeat(2,1fr)}.fields{grid-template-columns:1fr 1fr}.actions{flex-wrap:wrap}}

/* v0.2 — compact navigation, top KPIs and map-first dashboard */
@media(min-width:641px){
  aside{width:174px;flex:0 0 174px;padding:22px 11px}
  .brand{font-size:21px;letter-spacing:.4px}
  .caption{font-size:8px;letter-spacing:1px;margin-bottom:25px}
  .nav{padding:12px 10px;font-size:12px}
  .sidefoot{font-size:9px}.sidefoot small{font-size:9px}
  main{padding:20px 25px}
}
header{margin-bottom:14px}
h1{font-size:25px;margin-top:3px}
.cards{gap:10px;margin-bottom:11px}
.card{padding:10px 14px;border-radius:10px;min-height:75px}
.card .metric{font-size:23px;margin:5px 0 0}
.card .tag{font-size:9px;letter-spacing:.6px}
.card .sub{font-size:10px;margin-top:2px}
.statusline{margin-bottom:10px;font-size:11px}
.panels{display:flex;flex-direction:column;gap:12px}
.panels>.panel{width:100%;padding:14px 18px}
.panels>.panel:first-child{order:0}
.panels>.panel:last-child{order:1}
.panels h3{margin-bottom:10px}
.map{height:clamp(420px,58vh,780px);width:100%}
@media(max-width:640px){
  .cards{gap:8px}
  .card{padding:10px}
  .card .metric{font-size:22px}
  .card .sub{font-size:9px}
  .map{height:55vh;min-height:360px}
}

/* v0.3 — interactive map and one-click vessel focus */
.fleet-grid{display:grid;grid-template-columns:minmax(0,1fr) 255px;gap:12px;align-items:stretch}
.fleet-grid>.panel{min-width:0;padding:14px}
.map-header,.rail-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.map-header h3,.rail-title h3{margin:0}
.fleet-map{height:clamp(440px,62vh,820px);width:100%;border:1px solid var(--line);border-radius:9px;background:#14243a;z-index:0}
.map-unavailable{display:grid;place-items:center;padding:24px;color:var(--muted)}
.map-hint{margin:10px 0 0}
.map-message{margin-top:9px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;color:var(--muted);font-size:12px}
.fleet-rail{display:flex;flex-direction:column;gap:10px}
.ship-search{width:100%;border:1px solid var(--line);background:var(--input);color:var(--text);border-radius:9px;padding:11px 12px;outline-offset:2px}
.ship-list{display:flex;flex-direction:column;gap:7px;max-height:clamp(350px,55vh,735px);overflow-y:auto}
.ship-item{display:flex;align-items:center;gap:9px;text-align:left;width:100%;background:var(--input);color:var(--text);border:1px solid var(--line);border-radius:10px;padding:10px;min-height:61px}
.ship-item:hover,.ship-item.selected{border-color:var(--blue);background:color-mix(in srgb,var(--blue) 12%,var(--input))}
.ship-item:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.ship-icon{font-size:20px;flex:none}.ship-text{display:flex;flex-direction:column;gap:5px;min-width:0;flex:1}.ship-text strong,.ship-text small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ship-text strong{font-size:12px}.ship-text small{font-size:10px;color:var(--muted)}
.ship-state{height:8px;width:8px;border-radius:50%;background:#778399;flex:none}.ship-state.has-position{background:var(--green)}
.rail-empty{color:var(--muted);padding:20px 6px;font-size:12px;text-align:center}
.directory-panel{margin-top:12px}.leaflet-container{font-family:Inter,Segoe UI,Arial,sans-serif}
@media(max-width:980px){.fleet-grid{grid-template-columns:minmax(0,1fr) 205px}}
@media(max-width:760px){.fleet-grid{grid-template-columns:1fr}.fleet-map{height:440px}.ship-list{max-height:260px}.ship-item{min-height:54px}}

/* v0.3.3 — COG-oriented ship markers */
.fleet-vessel-marker {background:transparent;border:0}
.fleet-vessel-marker svg {display:block;filter:drop-shadow(0 2px 3px rgba(0,0,0,.55))}

/* v0.3.4: compact speed + departure/destination below each ship */
.ship-item{min-height:78px}
.ship-text{gap:4px}
.ship-route{display:flex;align-items:center;gap:5px;width:100%;min-width:0;font-size:10px;color:var(--muted);line-height:1.35}
.route-port{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:0 1 auto}
.route-arrow{flex:none;color:var(--blue);font-weight:700}
@media(max-width:760px){.ship-item{min-height:72px}}

/* v0.4 AIS monitor / equipment */
.equipment-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.equipment-head select,.upload-form select,.upload-form input{background:var(--input);color:var(--text);border:1px solid var(--line);padding:9px;border-radius:8px;max-width:100%}.equipment-card{padding:16px 0;border-top:1px solid var(--line)}.equipment-card h4{margin:12px 0 9px}.manual-list{display:flex;gap:8px;flex-wrap:wrap}.manual{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:8px;padding:5px 8px}.manual a{color:var(--blue);font-size:12px}.upload-form{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px}.route-source{font-size:8px;color:var(--blue);white-space:nowrap}.equipment-card .sub{line-height:1.6}#equipment-dialog{max-width:720px}

/* v0.4.2: all manuals listed directly underneath each machine */
.document-stack{display:flex;flex-direction:column;gap:7px;margin:10px 0}
.document-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 13px;border:1px solid var(--line);border-radius:9px;background:var(--input)}
.document-main{min-width:0;overflow-wrap:anywhere;line-height:1.6}
.document-main a{color:var(--blue);font-weight:600;text-decoration:none}
.document-main a:hover{text-decoration:underline}
.document-meta{font-size:11px;opacity:.7;margin-left:22px}
.doc-error{font-size:11px;color:#e06464}
.upload-feedback{font-size:12px;opacity:.85}

/* v0.5 — department navigation, certificates, spare parts */
.dept-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:15px;border-bottom:1px solid var(--line);padding-bottom:12px}
.dept-tab{border:1px solid var(--line);background:var(--input);color:var(--muted);border-radius:9px;padding:10px 18px;min-width:115px;font-weight:650}
.dept-tab.active{color:var(--blue);border-color:var(--blue);background:color-mix(in srgb,var(--blue) 12%,var(--input))}
.dept-hint{margin:8px 0 17px}
.equipment-head select,.certificate-card select,.field select{color:var(--text);background:var(--input);border:1px solid var(--line);border-radius:8px;padding:10px;max-width:100%}
.cert-intro{margin:5px 0 14px;line-height:1.6}
.cert-summary{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}
.certificate-grid{display:grid;gap:10px}
.certificate-card{display:flex;align-items:center;gap:16px;border:1px solid var(--line);padding:15px;background:var(--input);border-radius:10px;min-width:0}
.certificate-icon{font-size:23px;flex:none}
.certificate-body{flex:1;min-width:0;overflow-wrap:anywhere}
.certificate-body>a{font-weight:700;color:var(--blue);text-decoration:none;margin-right:8px}
.certificate-body>a:hover{text-decoration:underline}
.certificate-body p{margin:7px 0;line-height:1.6}
.certificate-actions{display:flex;gap:6px;align-self:center;flex-wrap:wrap}
.status-critical{border-color:#d25b6188;color:#f07178}
.status-warning{border-color:#e6b35c88;color:#e6b35c}
.status-good{border-color:#35ad8266;color:var(--green)}

#certificate-progress{color:var(--muted);font-size:12px}
#certificate-dialog .fields,#part-dialog .fields{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:620px){.certificate-card{align-items:flex-start;gap:10px;flex-wrap:wrap}.certificate-actions{margin-left:35px}#certificate-dialog .fields,#part-dialog .fields{grid-template-columns:1fr}}

/* FleetOS v0.5.1 — compact, bilingual engine spare-part category tabs */
.part-category-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:15px 0 6px}
.part-category-tab{display:inline-flex;align-items:center;gap:9px;justify-content:space-between;border:1px solid var(--line);background:var(--input);color:var(--muted);padding:9px 13px;border-radius:9px;font-size:12px;line-height:1.3;min-height:40px;text-align:left;transition:background .12s ease,border-color .12s ease}
.part-category-tab.active{color:var(--blue);border-color:var(--blue);background:color-mix(in srgb,var(--blue) 12%,var(--input));font-weight:700}
.part-category-tab:hover{border-color:var(--blue)}
.part-category-tab:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.category-count{border:1px solid var(--line);border-radius:10px;font-size:11px;color:var(--muted);min-width:25px;padding:2px 5px;text-align:center}
.part-category-help{margin:2px 0 16px;line-height:1.5}
.field[hidden]{display:none!important}
@media(max-width:640px){.part-category-tab{flex:1 1 145px}.part-category-tabs{gap:6px}}

/* FleetOS v0.5.2 - AIS coverage and message diagnostics */
.ais-diagnostic-panel{margin-bottom:12px}.ais-diagnostic-panel .table{min-width:680px}.ais-diagnostic-panel .ais-hint{margin:7px 0 14px;line-height:1.6}.ais-original-panel>.panel+ .panel{margin-top:12px}

/* v0.5.3: AIS feed telemetry without crowding the fleet map. */
.ais-transport{border:1px solid var(--line);background:var(--input);padding:15px 18px;border-radius:11px;margin-bottom:14px}
.ais-telemetry{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:7px 16px;margin:12px 0;font-size:12px;color:var(--muted)}
.ais-telemetry b{color:var(--text)}
.ais-transport .sub{line-height:1.55;margin:5px 0}


/* FleetOS v0.5.4 — Last known AIS position + port status */
.ship-item.position-stale{border-style:dashed}
.ship-item.position-stale .ship-icon{opacity:.45}
.ship-item.position-delayed .ship-icon{opacity:.75}
.ship-operational{color:var(--text)!important;font-size:10px;white-space:normal!important;line-height:1.35}
.ship-text .ship-operational{overflow:visible;text-overflow:clip}
.ship-state.freshness-fresh{background:#2bd09a}
.ship-state.freshness-delayed{background:#f0b854}
.ship-state.freshness-stale{background:#9ca3af;opacity:.55}
.ship-state.freshness-missing{background:#59677d}
.fleet-legend{display:flex;flex-wrap:wrap;align-items:center;gap:7px 15px;padding:10px 0 2px;font-size:11px;color:var(--muted)}
.fleet-legend>span{display:inline-flex;gap:6px;align-items:center}
.legend-dot{display:inline-block;height:9px;width:9px;border-radius:50%}
.legend-dot.freshness-fresh{background:#2bd09a}
.legend-dot.freshness-delayed{background:#f0b854}
.legend-dot.freshness-stale{background:#9ca3af;opacity:.55}
.vessel-popup{line-height:1.7;max-width:300px}
.vessel-popup b{font-weight:700}
.vessel-popup .ship-route{font-size:11px;color:#42566b}
.fleet-rail .ship-item{min-height:89px}

.ship-item.position-manual{border-style:solid;border-color:#9b72d4}
.ship-state.freshness-manual{background:#9b72d4}
.legend-dot.freshness-manual{background:#9b72d4}
.fleet-vessel-marker{background:transparent;border:0}

.ais-test-actions{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}.ais-test-actions button{min-height:38px;padding:8px 14px;border:1px solid var(--line,#415673);border-radius:8px;cursor:pointer}.ais-test-actions button:disabled{opacity:.45;cursor:not-allowed}

/* v0.6.1: ETA in quick vessel selector and vessel popup */
.ship-text .ship-eta{color:var(--text);font-size:10px;opacity:.9;line-height:1.4}
.vessel-popup .ship-eta{display:block;color:#344054;font-size:11px}
.fleet-rail .ship-item{min-height:104px}

/* v0.6.3: compact, keyboard-accessible collapsible sidebar groups */
#fleet-nav{display:flex;flex-direction:column;gap:5px;align-items:stretch}
#fleet-nav .nav{font-size:12px;min-height:37px;padding:9px 9px;white-space:normal;line-height:1.25}
#fleet-nav .nav-parent{display:flex;align-items:center;justify-content:space-between;gap:4px;font-weight:650;color:var(--text)}
#fleet-nav .nav-parent.parent-active{color:var(--blue)}
#fleet-nav .nav-children{display:flex;flex-direction:column;gap:3px;margin:2px 0 5px 10px;padding-left:8px;border-left:1px solid var(--line)}
#fleet-nav .nav-children[hidden]{display:none}
#fleet-nav .nav-child{padding:8px 7px;font-size:11.5px;min-height:34px}
#fleet-nav .nav-chevron{font-size:16px;transition:transform .15s ease;line-height:1}
#fleet-nav .nav-parent[aria-expanded="true"] .nav-chevron{transform:rotate(180deg)}
#fleet-nav button:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
@media(max-width:640px){#fleet-nav{display:flex;flex-direction:column;overflow:visible}#fleet-nav .nav{white-space:normal}aside{height:auto}}

/* v0.6.4 Vessel List: expandable voyage and manual onboard quantity report */
.vessel-expander{display:flex;align-items:center;gap:11px;text-align:left;border:0;background:transparent;color:var(--text);padding:6px;cursor:pointer;min-width:190px}
.vessel-expander strong,.vessel-expander small{display:block}.vessel-expander small{font-size:11px;color:var(--muted);margin-top:5px}
.vessel-chevron{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:7px;width:29px;height:29px;flex-shrink:0;transition:transform .15s}
.vessel-expander[aria-expanded="true"] .vessel-chevron{transform:rotate(180deg)}
.vessel-expander:hover strong{color:var(--blue)}.vessel-detail-row td{padding:0 8px 16px!important;background:var(--bg);border-bottom:1px solid var(--line)!important}
.vessel-detail-box{padding:19px;border:1px solid var(--line);background:var(--card);border-radius:12px}
.vessel-voyage-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}
.vessel-voyage-grid>div{border:1px solid var(--line);background:var(--input);padding:12px;border-radius:9px;min-width:0;overflow-wrap:anywhere}
.vessel-voyage-grid small,.vessel-voyage-grid strong,.vessel-voyage-grid em{display:block}.vessel-voyage-grid small,.vessel-voyage-grid em{font-size:11px;color:var(--muted);font-style:normal}
.vessel-voyage-grid strong{margin:7px 0;font-size:15px}.vessel-voyage-grid .ship-eta{font-size:14px;color:var(--text)}
.rob-header{margin-bottom:12px}.rob-header h4{margin:0 0 5px}.rob-header small{color:var(--muted)}
.rob-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}
.rob-fields label{display:flex;flex-direction:column;gap:7px;color:var(--text);font-size:12px;min-width:0}
.rob-fields label span small{color:var(--muted)}.rob-fields input{width:100%;min-width:0;border:1px solid var(--line);border-radius:8px;background:var(--input);color:var(--text);padding:10px;font-size:15px}
.rob-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:17px}.rob-footer small{color:var(--muted);line-height:1.6}
@media(max-width:1000px){.rob-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.vessel-voyage-grid{grid-template-columns:1fr}.rob-fields{grid-template-columns:1fr 1fr}.rob-footer{flex-direction:column;align-items:stretch}}

/* v0.6.5 Vessel list: latest manually reported fuel and fresh water */
.vessel-report-table th{white-space:nowrap}
.vessel-report-table .rob-summary-number{font-weight:750;font-size:14px;font-variant-numeric:tabular-nums}
.vessel-report-table .rob-summary-number small{color:var(--muted);font-weight:500;font-size:11px}
.vessel-report-table .rob-no-report{color:var(--muted)}
.vessel-report-table td{vertical-align:middle}
@media(max-width:950px){.vessel-report-table{min-width:830px}}
/* FleetOS v0.7 modular operations */
.ops-main{padding:22px}.ops-toolbar,.ops-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}.ops-toolbar label{display:flex;align-items:center;gap:12px;font-size:14px}.ops-toolbar select{max-width:280px}.ops-muted{opacity:.68;font-size:12px}.ops-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:20px}.ops-stat{border:1px solid var(--border,#304259);border-radius:12px;padding:15px;display:flex;flex-direction:column;gap:7px}.ops-stat strong{font-size:26px}.ops-stat span{opacity:.72;font-size:13px}.ops-table{overflow-x:auto}.ops-table table{width:100%;border-collapse:collapse;min-width:670px}.ops-table th,.ops-table td{text-align:left;border-bottom:1px solid var(--border,#304259);padding:13px 10px;font-size:13px}.ops-table th{opacity:.8}.ops-table td button{margin-right:5px;margin-bottom:5px}.ops-placeholder{padding:45px 20px;text-align:center;max-width:700px;margin:auto;line-height:1.7}.ops-placeholder h3{margin:12px}.ops-form{display:grid;grid-template-columns:1fr 1fr;gap:15px;padding:14px 0}.ops-form label{display:flex;flex-direction:column;gap:6px;font-size:13px}.ops-form input,.ops-form textarea,.ops-form select{width:100%;box-sizing:border-box}#ops-dialog{width:min(780px,94vw);max-height:90vh;overflow-y:auto}#ops-dialog form{padding:20px}#ops-dialog .dialoghead{display:flex;align-items:center;justify-content:space-between}#ops-dialog .dialogactions{margin-top:18px;display:flex;justify-content:end}@media(max-width:670px){.ops-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.ops-form{grid-template-columns:1fr}}
.ops-equipment-history{margin-top:16px;padding:12px;border:1px solid var(--border,#304259);border-radius:10px}.ops-equipment-history summary{cursor:pointer;font-weight:600}.ops-equipment-history ul{padding-left:18px;line-height:1.8}
/* v0.8 PMS and expiry cells */
.pms-header,.pms-info{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}.pms-header h2{margin:5px 0 9px}.pms-header>label{display:grid;gap:8px}.pms-header select{min-width:210px;max-width:100%}.pms-eyebrow{font-size:12px;letter-spacing:2px;opacity:.65}.pms-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.pms-tab{border:1px solid var(--border,#36445a);border-radius:9px;background:transparent;color:inherit;padding:11px 14px;cursor:pointer}.pms-tab.pms-active{background:#176b9d;color:white;border-color:#176b9d}.pms-info{padding:14px;border:1px solid var(--border,#36445a);border-radius:12px}.pms-info form{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.pms-info form label{display:grid;gap:6px}.pms-info input{width:145px}.pms-tablewrap{overflow-x:auto}.pms-table{width:100%;min-width:790px;border-collapse:collapse}.pms-table th,.pms-table td{padding:12px 10px;border-bottom:1px solid var(--border,#344155);text-align:left;font-size:13px;vertical-align:top}.pms-table th{opacity:.75}.pms-period{white-space:pre-line}.pms-history{padding:15px;border:1px solid var(--border,#36445a);border-radius:12px;margin-top:22px}.pms-history summary{cursor:pointer;font-weight:600}.pms-history .pms-tablewrap{margin-top:15px}#pms-dialog{max-width:min(790px,95vw);max-height:90vh;overflow:auto}#pms-dialog form{padding:20px}#pms-dialog .dialoghead{display:flex;justify-content:space-between;align-items:center}.pms-wide{grid-column:1/-1}.expiry-status{display:inline-block;padding:5px 8px;border-radius:7px;font-size:12px;white-space:nowrap}.expiry-ok{background:#14532d;color:#dcfce7}.expiry-soon{background:#854d0e;color:#fef9c3}.expiry-over{background:#7f1d1d;color:#fee2e2}

/* FleetOS v0.8.4 — PMS-only visual redesign, inherits dark/light theme tokens. */
.pms-workspace{--pms-line:var(--line,#35465a);--pms-accent:var(--blue,#37a5db);color:var(--text);font-size:14px}
.pms-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px;border:1px solid var(--pms-line);border-radius:17px;background:linear-gradient(115deg,color-mix(in srgb,var(--blue,#238cbb) 16%,var(--card)),var(--card));margin-bottom:16px}
.pms-hero h2{font-size:clamp(22px,2.7vw,31px);letter-spacing:-.5px;margin:5px 0 9px}.pms-hero p{font-size:12px;line-height:1.6;max-width:500px;color:var(--muted);margin:0}.pms-overline{font-size:10px;letter-spacing:2px;font-weight:800;color:var(--pms-accent)}
.pms-select-label{display:flex;flex-direction:column;gap:9px;font-size:12px;font-weight:700;flex:0 1 250px}.pms-select-label select{width:100%;min-width:160px}
.pms-machines{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 20px}.pms-machine{border:1px solid var(--pms-line);color:var(--text);background:var(--card);padding:10px 14px;border-radius:9px;font-size:12px;font-weight:700;min-height:42px;cursor:pointer}.pms-machine.active{color:#fff;background:#186b9f;border-color:#186b9f}
.pms-overview{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.pms-stat{background:var(--card);border:1px solid var(--pms-line);border-radius:12px;padding:15px 13px;min-width:0}.pms-stat>small{color:var(--muted);display:block;font-size:11px;line-height:1.5;min-height:34px}.pms-stat strong{display:block;font-size:26px;line-height:1.2;margin-top:6px}.pms-stat strong small{font-size:14px;color:var(--muted)}.pms-stat.accent-red{border-top:3px solid #e96c6c}.pms-stat.accent-amber{border-top:3px solid #dda842}.pms-stat.accent-green{border-top:3px solid #37ad84}
.pms-controlbar{background:var(--card);border:1px solid var(--pms-line);padding:15px 18px;border-radius:12px;margin:14px 0;display:flex;align-items:center;justify-content:space-between;gap:16px}.pms-source{font-size:12px;font-weight:700;line-height:1.7}.pms-source small{color:var(--muted);font-weight:400}.pms-controlbar form{display:flex;align-items:end;gap:8px}.pms-controlbar form label{font-size:11px;display:grid;gap:6px}.pms-controlbar form input{max-width:135px}
.pms-filterbar{display:flex;align-items:end;gap:10px;margin:24px 0 14px;flex-wrap:wrap}.pms-filterbar label{display:grid;gap:7px;font-size:11px;font-weight:700}.pms-filterbar input,.pms-filterbar select{min-height:39px}.pms-search{flex:1 1 260px}.pms-search input{width:100%}
.pms-listhead{display:flex;justify-content:space-between;align-items:center;margin:0 0 9px;gap:9px}.pms-listhead>span{color:var(--muted);font-size:11px}.pms-counter{font-size:11px;color:var(--muted);font-weight:400}
.pms-tasklist{display:flex;flex-direction:column;gap:8px}.pms-task{background:var(--card);border:1px solid var(--pms-line);border-radius:12px;overflow:hidden}.pms-task.is-open{border-color:var(--pms-accent)}.pms-task-main{display:grid;grid-template-columns:52px minmax(0,1fr) 165px 140px 18px;gap:12px;align-items:center;width:100%;color:var(--text);background:transparent;border:0;padding:15px 14px;cursor:pointer;text-align:left}.pms-task-main:hover{background:color-mix(in srgb,var(--blue,#2393bf) 7%,transparent)}.pms-task-num{font-size:11px;color:var(--muted);font-weight:800}.pms-task-name{min-width:0}.pms-task-name strong{font-size:13px;display:block;margin-bottom:5px}.pms-task-name small{color:var(--muted);font-size:11px;line-height:1.45;display:block}.pms-task-next{font-size:11px;color:var(--muted);text-align:right}.pms-arrow{font-size:19px;transition:transform .15s}.pms-task.is-open .pms-arrow{transform:rotate(180deg)}
.pms-pill{font-size:10px;font-weight:750;line-height:1.5;padding:6px 8px;border-radius:7px;text-align:center;background:var(--input);border:1px solid var(--pms-line)}.pms-pill.over{background:color-mix(in srgb,#d94545 15%,var(--card));border-color:#bc6767}.pms-pill.soon{background:color-mix(in srgb,#dba337 16%,var(--card));border-color:#bd9b55}.pms-pill.ok{background:color-mix(in srgb,#2fa87d 14%,var(--card));border-color:#42a889}
.pms-task-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;gap:15px;padding:17px 18px;border-top:1px solid var(--pms-line);background:var(--input)}.pms-task-details>div>small{font-size:10px;color:var(--muted);display:block;margin-bottom:7px}.pms-task-details>div>strong{font-size:12px}.pms-detail-actions{display:flex;gap:8px;grid-column:1/-1;justify-content:flex-end;flex-wrap:wrap}.pms-empty{padding:26px;text-align:center;background:var(--card);border:1px dashed var(--pms-line);border-radius:12px;color:var(--muted)}
@media(max-width:1100px){.pms-overview{grid-template-columns:repeat(3,minmax(0,1fr))}.pms-task-main{grid-template-columns:40px minmax(0,1fr) 133px 16px}.pms-task-next{display:none}}
@media(max-width:760px){.pms-hero{display:block}.pms-select-label{margin-top:16px}.pms-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.pms-controlbar{display:block}.pms-controlbar form{margin-top:14px}.pms-task-main{grid-template-columns:35px minmax(0,1fr) 16px}.pms-pill{grid-column:2;text-align:left;width:max-content;max-width:100%}.pms-arrow{grid-column:3;grid-row:1}.pms-task-details{grid-template-columns:1fr}.pms-machines{gap:6px}}

/* FleetOS v0.8.5 – compact, expandable PMS maintenance table */
.pms-maintenance-wrap{border:1px solid var(--pms-line);border-radius:12px;background:var(--card);overflow-x:auto;margin-bottom:10px}
.pms-maintenance-table{width:100%;min-width:990px;border-collapse:separate;border-spacing:0;font-size:12px;color:var(--text)}
.pms-maintenance-table thead th{position:sticky;top:0;z-index:2;background:var(--input);color:var(--muted);font-size:11px;letter-spacing:.02em;padding:12px;text-align:left;border-bottom:1px solid var(--pms-line);white-space:nowrap}
.pms-maintenance-table thead button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;font-weight:700;padding:0;text-align:left}
.pms-maintenance-table td{border-bottom:1px solid var(--pms-line);padding:10px 12px;vertical-align:middle;line-height:1.4}
.pms-maintenance-table .pms-main-row{cursor:pointer}
.pms-maintenance-table .pms-main-row:hover,.pms-maintenance-table .pms-main-row.is-open{background:color-mix(in srgb,var(--blue,#2596d0) 9%,var(--card))}
.pms-maintenance-table td:nth-child(2){min-width:210px;max-width:390px}
.pms-maintenance-table td:nth-child(2) strong{font-size:12px;display:block}
.pms-maintenance-table td:nth-child(2) small{color:var(--muted);font-size:11px;display:block;margin-top:3px}
.pms-maintenance-table .pms-col-id{font-weight:800;color:var(--muted);white-space:nowrap}
.pms-expand-btn{background:var(--input);border:1px solid var(--pms-line);color:var(--text);border-radius:8px;min-width:34px;min-height:34px;cursor:pointer}
.pms-expand-row td{padding:0;background:var(--input)}
.pms-expand-content{padding:16px 18px}
.pms-cylinder-tag{display:inline-block;font-size:10px;color:var(--muted);border:1px solid var(--pms-line);border-radius:5px;padding:2px 6px;margin-top:5px}
.pms-cylinder-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px;flex-wrap:wrap}
.pms-cylinder-heading small{color:var(--muted)}
.pms-cylinder-table{min-width:740px;background:var(--card);border-radius:8px;overflow:hidden}
.pms-cylinder-table td,.pms-cylinder-table th{padding:9px 11px}
.pms-cylinder-table td:last-child{text-align:right}
.pms-maintenance-table .pms-task-details{border:1px solid var(--pms-line);border-radius:10px;margin-top:14px;background:var(--card)}
.pms-maintenance-table .pms-pill{display:inline-block;white-space:normal;font-size:10px}
@media(max-width:850px){.pms-maintenance-table{min-width:950px}.pms-expand-content{padding:10px}}

/* FleetOS v0.8.6 — Excel-like cylinder matrix: one maintenance row, one column per cylinder. */
.pms-matrix-key{display:flex;align-items:center;flex-wrap:wrap;gap:9px 18px;margin:12px 0;color:var(--muted);font-size:11px}
.pms-matrix-key>span{display:inline-flex;align-items:center;gap:6px}.pms-keydot{width:9px;height:9px;display:inline-block;border-radius:50%;background:#8393ab}.pms-keydot.ok{background:#26b685}.pms-keydot.soon{background:#e0a43f}.pms-keydot.over{background:#e46b6b}
.pms-matrix-key small{flex-basis:100%;font-size:11px;color:var(--muted)}
.pms-matrix-scroll{max-width:100%;overflow:auto;border:1px solid var(--pms-line);border-radius:12px;background:var(--card);margin-bottom:15px;scrollbar-color:var(--pms-accent) var(--card)}
.pms-matrix{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:12px;color:var(--text)}
.pms-matrix th,.pms-matrix td{border-bottom:1px solid var(--pms-line);border-right:1px solid var(--pms-line);padding:7px;vertical-align:middle}
.pms-matrix th{position:sticky;top:0;z-index:4;white-space:nowrap;background:var(--input);color:var(--text);font-size:11px;padding:12px 8px;text-align:center}
.pms-matrix .pms-matrix-no{position:sticky;left:0;z-index:2;min-width:50px;width:50px;text-align:center;background:var(--card);font-weight:800}
.pms-matrix .pms-matrix-task{position:sticky;left:50px;z-index:2;min-width:225px;width:225px;max-width:225px;background:var(--card)}
.pms-matrix thead .pms-matrix-no,.pms-matrix thead .pms-matrix-task{z-index:6;background:var(--input)}
.pms-matrix .pms-matrix-period{min-width:120px;width:120px;text-align:center;color:var(--muted);white-space:normal}
.pms-matrix .pms-matrix-cyl{min-width:126px;width:126px;max-width:126px;text-align:center}
.pms-matrix-row:nth-child(even) .pms-matrix-no,.pms-matrix-row:nth-child(even) .pms-matrix-task{background:color-mix(in srgb,var(--pms-accent) 5%,var(--card))}
.pms-matrix-taskbtn{display:block;text-align:left;width:100%;padding:4px 2px;background:none;color:var(--text);border:0;cursor:pointer}
.pms-matrix-taskbtn strong{font-size:12px;display:block}.pms-matrix-taskbtn small{color:var(--muted);font-size:11px;line-height:1.35;display:block;margin-top:3px;white-space:normal}.pms-matrix-taskbtn em{font-style:normal;color:var(--pms-accent);font-size:10px;margin-top:5px;display:block}
.pms-matrix-cell{width:100%;min-height:70px;border:1px solid var(--pms-line);background:var(--input);border-radius:8px;padding:7px;text-align:left;color:var(--text);cursor:pointer;display:flex;flex-direction:column;gap:4px;line-height:1.2}
.pms-matrix-cell:hover,.pms-matrix-cell:focus-visible{outline:2px solid var(--pms-accent);outline-offset:1px}.pms-matrix-cell-status{font-size:11px;font-weight:750}.pms-matrix-cell-hour{font-size:10px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.pms-matrix-cell.ok{border-color:#268d71}.pms-matrix-cell.ok .pms-matrix-cell-status{color:#3bbe94}.pms-matrix-cell.soon{border-color:#b6893d}.pms-matrix-cell.soon .pms-matrix-cell-status{color:#ddb155}.pms-matrix-cell.over{border-color:#bf6262}.pms-matrix-cell.over .pms-matrix-cell-status{color:#ef8282}
.pms-matrix-general{background:color-mix(in srgb,var(--blue) 6%,var(--card));min-width:500px}.pms-matrix-general>div{display:flex;align-items:center;flex-wrap:wrap;gap:14px;color:var(--muted);font-size:11px}.pms-matrix-general .chip{margin-left:auto}
.pms-matrix-detail>td{background:var(--input);padding:13px!important}.pms-matrix-detail-inner{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.pms-matrix-detail-inner strong{font-size:12px}.pms-matrix-detail-inner p{font-size:11px;color:var(--muted);margin:4px 0}.pms-matrix-detail-inner span{font-size:11px;color:var(--muted)}.pms-matrix-detail-inner button{margin-left:auto}
@media(max-width:760px){.pms-matrix .pms-matrix-task{min-width:155px;width:155px;max-width:155px;left:42px}.pms-matrix .pms-matrix-no{width:42px;min-width:42px}.pms-matrix .pms-matrix-cyl{min-width:112px;width:112px}}

/* FleetOS v0.8.7 — editable all-cylinder sheet; no cylinder select in M/E. */
.pms-grid-quickentry{margin:14px 0 10px;background:var(--card);border:1px solid var(--pms-line);border-radius:13px;padding:15px}
.pms-grid-entry-title{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.pms-grid-entry-title strong{display:block;color:var(--text);font-size:15px}
.pms-grid-entry-title small{display:block;color:var(--muted);font-size:12px;margin-top:4px;line-height:1.5}
.pms-grid-entry-title .primary{white-space:nowrap}
.pms-grid-save-all b{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;margin-left:5px;border-radius:10px;background:#0e3556}
.pms-grid-entry-fields{display:grid;grid-template-columns:170px minmax(150px,240px) minmax(160px,1fr);gap:12px;margin-top:14px}
.pms-grid-entry-fields label{font-size:11px;color:var(--muted);display:flex;flex-direction:column;gap:5px}
.pms-grid-entry-fields input{font-family:inherit;box-sizing:border-box;width:100%;min-width:0;padding:9px 10px;color:var(--text);background:var(--input);border:1px solid var(--pms-line);border-radius:7px;font-size:12px;color-scheme:dark}
.pms-grid-hint{margin:9px 0 0;color:var(--muted);font-size:11px;line-height:1.5}
.pms-matrix-editable{max-height:650px;min-height:260px}
.pms-matrix-editable .pms-matrix{font-variant-numeric:tabular-nums}
.pms-matrix-editable .pms-matrix-cyl{min-width:164px;width:164px;max-width:164px}
.pms-matrix-editable .pms-matrix-task{min-width:225px;width:225px}
.pms-matrix-editable .pms-matrix-row{height:118px}
.pms-matrix-entry{width:100%;box-sizing:border-box;min-height:104px;display:flex;flex-direction:column;gap:5px;border:1px solid var(--pms-line);border-radius:8px;padding:9px 7px;background:var(--input)}
.pms-matrix-entry.ok{border-color:#218567}.pms-matrix-entry.soon{border-color:#9d7b40}.pms-matrix-entry.over{border-color:#a14b52}
.pms-matrix-entry .pms-matrix-cell-status{font-size:11px;color:var(--muted);font-weight:700}
.pms-matrix-entry.ok .pms-matrix-cell-status{color:#42bc95}.pms-matrix-entry.soon .pms-matrix-cell-status{color:#e8b257}.pms-matrix-entry.over .pms-matrix-cell-status{color:#ee8383}
.pms-matrix-entry .pms-matrix-cell-hour{line-height:1.2;font-size:10px;color:var(--muted);white-space:normal}
.pms-matrix-entry .pms-matrix-cell-hour b{color:var(--text);font-weight:650}
.pms-cell-edit{display:flex;gap:4px;align-items:stretch;margin-top:2px}
.pms-cell-edit input,.pms-general-edit input{box-sizing:border-box;min-width:0;flex:1;width:68px;background:var(--card);border:1px solid var(--pms-line);border-radius:5px;padding:7px 4px;font-size:11px;color:var(--text);font-family:inherit}
.pms-save-one{flex:0 0 27px;font-weight:900;font-size:15px;border:1px solid var(--pms-line);border-radius:5px;background:var(--card);color:var(--pms-accent);cursor:pointer}
.pms-save-one:hover,.pms-save-one:focus-visible{background:var(--pms-accent);color:#06121e}
.pms-matrix .pms-matrix-cyl{vertical-align:top}
.pms-matrix .pms-matrix-cyl:has(input:not(:placeholder-shown)){background:color-mix(in srgb,var(--pms-accent) 8%,var(--card))}
.pms-general-line{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:4px 2px}
.pms-general-tag{font-size:11px;font-weight:800;color:var(--text)}
.pms-general-edit{display:flex;gap:7px;max-width:295px;align-items:center;margin-left:auto}
.pms-general-edit input{min-width:130px;padding:9px}
.pms-matrix-editable .pms-matrix-task,.pms-matrix-editable .pms-matrix-no{box-shadow:1px 0 0 var(--pms-line)}
.pms-matrix-editable .pms-cyl-head{font-size:11px;letter-spacing:.04em}
@media(max-width:850px){.pms-grid-entry-fields{grid-template-columns:1fr 1fr}.pms-grid-entry-fields .pms-grid-entry-note{grid-column:1/-1}.pms-matrix-editable .pms-matrix-task{min-width:155px;width:155px}}
@media(max-width:460px){.pms-grid-entry-fields{grid-template-columns:1fr}.pms-grid-entry-fields .pms-grid-entry-note{grid-column:auto}.pms-grid-entry-title .primary{width:100%}}

/* FleetOS v0.8.71 — actionable fleet operations, reports & PMS per-cell history */
.fleetos-health-intro{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:19px;padding:21px 24px;border-radius:13px;background:linear-gradient(112deg,color-mix(in srgb,var(--blue) 13%,var(--card)),var(--card));border:1px solid var(--line)}
.fleetos-health-intro h2{margin:6px 0;font-size:23px;letter-spacing:-.45px}.fleetos-health-intro p{margin:0;color:var(--muted);line-height:1.5;font-size:12px;max-width:740px}
.fleetos-overline{font-size:10px;letter-spacing:1.8px;color:var(--blue);font-weight:800}
.fleetos-health-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:19px}
.fleetos-health-kpi{background:var(--card);border:1px solid var(--line);border-top:3px solid var(--blue);border-radius:12px;padding:15px;min-width:0}
.fleetos-health-kpi.red{border-top-color:#df7070}.fleetos-health-kpi.amber{border-top-color:#e2ad59}.fleetos-health-kpi small{display:block;color:var(--muted);font-size:11px;min-height:18px}
.fleetos-health-kpi strong{display:block;font-size:28px;margin-top:5px;font-variant-numeric:tabular-nums}
.fleetos-dashboard-table{overflow:auto;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.fleetos-dashboard-table table{width:100%;border-collapse:separate;border-spacing:0;min-width:820px}
.fleetos-dashboard-table th,.fleetos-dashboard-table td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}
.fleetos-dashboard-table thead th{font-size:11px;color:var(--muted);background:var(--input);position:sticky;top:0;z-index:1}
.fleetos-dashboard-table thead th small{font-size:9px;display:block;line-height:1.8;font-weight:400;letter-spacing:0}
.fleetos-dashboard-table tbody th{font-size:12px}.fleetos-dashboard-table tbody th small{font-size:10px;display:block;color:var(--muted);margin-top:4px}
.fleetos-dashboard-table tbody tr:last-child th,.fleetos-dashboard-table tbody tr:last-child td{border-bottom:0}
.fleetos-dashboard-table tbody tr:hover{background:color-mix(in srgb,var(--blue) 6%,var(--card))}
.fleetos-health-badge{min-width:35px;min-height:33px;font-size:12px;font-weight:750;border-radius:8px;border:1px solid var(--line);color:var(--text);background:var(--input);padding:5px 7px;white-space:nowrap;cursor:pointer}
.fleetos-health-badge.good{color:#53bb9c;border-color:#347962}.fleetos-health-badge.warning{color:#e3ac50;border-color:#916c32;background:color-mix(in srgb,#c99633 9%,var(--card))}
.fleetos-health-badge.danger{color:#f17b7b;border-color:#b65d65;background:color-mix(in srgb,#be4848 11%,var(--card))}
.fleetos-health-badge:hover,.fleetos-health-badge:focus-visible{outline:1px solid var(--blue);outline-offset:2px}
.fleetos-health-badge span{font-size:9px;margin-left:3px;opacity:.6}.fleetos-pms-signals{display:flex;align-items:center;gap:6px}
.fleetos-needs-config{font-size:11px;color:var(--muted);margin-left:5px;font-weight:700}.fleetos-mini{font-size:10px;color:var(--muted);margin-left:8px}
.fleetos-dashboard-foot,.fleetos-export-note{color:var(--muted);font-size:11px;line-height:1.6;margin-top:13px}
.fleetos-reports-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin:18px 0}
.fleetos-reports-fields label{display:grid;gap:8px;color:var(--muted);font-size:12px;font-weight:700}
.fleetos-reports-fields select{min-width:0;width:100%;background:var(--input);color:var(--text);border:1px solid var(--line);border-radius:9px;padding:12px}
.fleetos-report-actions{display:flex;gap:10px;flex-wrap:wrap}
.pms-export-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;background:var(--card);border:1px solid var(--pms-line);border-radius:10px;padding:10px 14px;margin:13px 0 3px}
.pms-export-toolbar span{font-size:11px;font-weight:700;color:var(--muted)}.pms-export-toolbar>div{display:flex;gap:8px}.pms-export-toolbar .chip{padding:9px 12px;font-size:11px}
.pms-cell-history{font-size:10px;text-align:left;color:var(--blue);background:transparent;border:0;padding:0 2px;min-height:20px;cursor:pointer;display:block}.pms-cell-history:hover{text-decoration:underline}
.pms-record-list{margin:14px 0;max-height:260px;overflow:auto}.pms-record-list h4{margin:0 0 9px}
#pms-dialog:has(.pms-record-list){width:min(940px,96vw)}#pms-dialog .ops-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin:12px 0}
#pms-dialog .ops-form label,#pms-dialog .pms-usage-controls label{display:grid;gap:6px;font-size:11px;color:var(--muted)}
#pms-dialog .ops-form input,#pms-dialog .ops-form textarea,#pms-dialog .pms-usage-controls input,#pms-dialog .pms-usage-controls select{background:var(--input);border:1px solid var(--line);border-radius:8px;padding:10px;color:var(--text);width:100%;min-width:0}
.pms-usage-controls{display:grid;grid-template-columns:minmax(0,2fr) minmax(120px,1fr);gap:13px;margin:14px 0 3px}
.pms-usage-notice{color:var(--muted);font-size:11px;line-height:1.55}
@media(max-width:900px){.fleetos-health-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.fleetos-health-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.fleetos-health-intro{padding:15px;display:block}.fleetos-health-intro>button{margin-top:12px}.fleetos-reports-fields{grid-template-columns:1fr}.pms-usage-controls{grid-template-columns:1fr}#pms-dialog .ops-form{grid-template-columns:1fr}}

/* v0.8.72: preliminary alerts are visibly distinct from verified maintenance due dates */
.pms-stat-warning{font-size:11px!important;font-weight:750!important;color:#f2b6a0!important;margin-top:8px;line-height:1.4!important;min-height:0!important}
.pms-provisional-warning{display:flex;gap:14px;align-items:flex-start;padding:16px 18px;margin:14px 0;background:color-mix(in srgb,#b75b36 12%,var(--card));border:1px solid #c98a57;border-left:5px solid #de8d4f;border-radius:12px;line-height:1.5}
.pms-provisional-warning strong{font-size:14px;color:var(--text)}
.pms-provisional-warning p{margin:5px 0 0;font-size:12px;color:var(--text)}
.pms-provisional-icon{font-size:22px;line-height:1}
.pms-matrix-entry.previewOver{border:2px dashed #e58e62;background:color-mix(in srgb,#bf573a 15%,var(--input))}
.pms-matrix-entry.previewOver .pms-matrix-cell-status{color:#ffad87}
.pms-matrix-entry.previewSoon{border:2px dashed #dcb75e;background:color-mix(in srgb,#b18b34 9%,var(--input))}
.pms-matrix-entry.previewSoon .pms-matrix-cell-status{color:#e5c77c}
.pms-pill.previewOver{border:1px dashed #db855e;background:color-mix(in srgb,#bd664d 16%,var(--card));color:var(--text)}
.pms-pill.previewSoon{border:1px dashed #d8ba6d;background:color-mix(in srgb,#aa8b3e 12%,var(--card));color:var(--text)}
.pms-keydot.previewOver{background:#e58e62}

/* v0.8.72 — Provisional checks from the ISM maintenance intervals. */
.pms-stat-preview-note{font-size:11px!important;font-weight:600!important;color:var(--muted)!important;margin-top:6px}
.pms-matrix-entry.previewOk{border:1px dashed #2d937b;background:color-mix(in srgb,#299a7d 7%,var(--input))}
.pms-matrix-entry.previewOk .pms-matrix-cell-status{color:#8cd5bf}
.pms-pill.previewOk{border:1px dashed #3a9779;background:color-mix(in srgb,#3a9779 9%,var(--card));color:var(--text)}
.pms-keydot.previewSoon{background:#d8ba6d}
.pms-keydot.previewOk{background:#67bba1}
.pms-provisional-warning{overflow-wrap:anywhere}
.pms-stat-warning{white-space:normal}
@media(max-width:840px){.pms-provisional-warning{padding:12px;gap:8px}}

.fleetos-health-badge.preliminary{border:1px dashed #d28c57;background:color-mix(in srgb,#b9673d 14%,var(--card));color:var(--text)}
/* v0.8.73 — additive operations enhancements. Existing PMS matrix styling untouched. */
.up-bell{position:relative;white-space:nowrap}.up-bell span{display:inline-flex;align-items:center;justify-content:center;min-width:23px;height:22px;padding:2px 5px;border-radius:20px;background:#e5a23a;color:#091526;font-weight:800;font-size:11px}
.up-alert-popup{position:fixed;z-index:220;top:72px;right:24px;width:min(430px,calc(100% - 32px));max-height:80vh;overflow:auto;border:1px solid #44607c;border-radius:16px;background:#142239;color:#f4f7fc;box-shadow:0 16px 45px #0007;padding:18px}.up-alert-popup header{display:flex;justify-content:space-between;align-items:center}.up-alert-scroller{max-height:50vh;overflow:auto;display:grid;gap:8px}.up-alert-row{width:100%;text-align:left;background:#1a2b45;border:1px solid #34516d;border-left:4px solid #e0a63c;border-radius:10px;padding:12px;color:#edf5ff;cursor:pointer}.up-alert-row.danger{border-left-color:#ff6868}.up-alert-row b,.up-alert-row small{display:block;overflow-wrap:anywhere}.up-alert-row small{color:#b6c9e0;margin-top:5px}.up-alert-footer{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:14px}
.up-hero{border-radius:16px;background:linear-gradient(120deg,#1c4663,#16253e 70%);border:1px solid #31516e;padding:24px;margin-bottom:18px}.up-hero h2{font-size:clamp(22px,3vw,30px);margin:10px 0 7px}.up-hero p{color:#bdd3e6;margin:0;line-height:1.6}.up-tag{font-size:10px;letter-spacing:2px;font-weight:800;color:#58d9fc}.up-sub,.up-muted{color:#9cb4d1;font-size:12px}.up-filterbar{display:flex;align-items:end;flex-wrap:wrap;gap:18px;margin:16px 0 21px}.up-filterbar label{display:grid;gap:6px;font-size:12px;min-width:210px}.up-filterbar select,.up-form-strip input,.up-form-strip select,.up-dialog input,.up-dialog select,.up-dialog textarea,#up-pms-note-form textarea,#up-pms-note-form input,#up-pms-note-form select{background:#101b2d;color:#f3f7fc;border:1px solid #375273;border-radius:8px;padding:10px;min-width:0;font-size:14px;color-scheme:dark}.up-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:14px}.up-card{border:1px solid #30465e;background:#17253b;border-radius:14px;padding:18px;min-width:0}.up-card b{overflow-wrap:anywhere}.up-card p,.up-card small{color:#a9bed3;line-height:1.5}.up-card small{display:block;margin-top:5px}.up-card-top{display:flex;align-items:start;justify-content:space-between;gap:10px}.up-pill{font-size:11px;border:1px solid #4e6176;padding:5px 10px;border-radius:100px;white-space:nowrap}.up-good{color:#56d6a7;border-color:#377d6a}.up-danger{color:#ff8888;border-color:#b46161}.up-thumb-row{display:flex;gap:9px;flex-wrap:wrap;margin:13px 0}.up-thumb-row img{width:80px;height:66px;border-radius:8px;object-fit:cover;border:1px solid #47627e}.up-upload-label{display:block;cursor:pointer;border:1px dashed #4b79a0;padding:10px 12px;border-radius:10px;margin:10px 0;color:#62c9ff}.up-upload-label input{display:block;margin-top:7px;max-width:100%;font-size:12px}.up-mini-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:10px 12px;border:1px solid #30445c;border-radius:9px;margin:8px 0;color:#dcecff}.up-mini-row small{display:block;color:#9fb9cf}.up-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px}.up-calendar-nav{display:flex;justify-content:center;align-items:center;gap:22px;margin:15px 0}.up-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin:10px 0 22px}.up-day{min-height:78px;background:#192a42;border:1px solid #334e68;border-radius:9px;padding:7px;min-width:0}.up-day span{font-size:11px;color:#b9cee2}.up-day a{display:block;font-size:10px;overflow-wrap:anywhere;color:#ffca81;padding:2px 0}.up-table-wrap{overflow-x:auto}.up-table{width:100%;border-collapse:collapse;min-width:550px}.up-table td,.up-table th{padding:13px;text-align:left;border-bottom:1px solid #30435e}.up-table td small{display:block;color:#8daec8}.up-table a{color:#5fcdff}.up-archived{opacity:.55}.up-form-strip{display:flex;align-items:end;gap:10px;flex-wrap:wrap;padding:14px;background:#192a43;border:1px solid #3a516b;border-radius:12px;margin:15px 0}.up-form-strip label{display:grid;gap:6px;min-width:125px;flex:1;font-size:12px}.up-dialog{border:1px solid #436382;border-radius:16px;background:#15243b;color:#eff7ff;max-width:min(670px,94%);width:580px;padding:20px}.up-dialog form{display:grid;gap:14px}.up-dialog label{display:grid;gap:6px}.up-dialog::backdrop{background:#0009}.up-warning{background:#55401c;border-left:4px solid #f1b847;border-radius:10px;padding:13px;margin:13px 0;color:#ffebbe}.up-error{color:#ff9191!important}#up-pms-attachments{border-top:1px solid #3a536c;padding:20px 0;margin:18px 0}#up-pms-attachments label{display:grid;gap:6px;margin:10px 0}#up-pms-attachments select{background:#15283b;color:#f2f5f7;padding:9px;border:1px solid #45627d;border-radius:8px}
@media(max-width:640px){.up-calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr))}.up-day{min-height:46px;padding:3px}.up-day a{font-size:8px}.up-form-strip label{min-width:100%}.up-alert-popup{right:12px;top:54px}}

/* FleetOS v0.8.75: local vector chart-like overview (NOT for marine navigation). */
.fleet-map.offline-map{position:relative;overflow:hidden;background:#102339;touch-action:none}
.fleet-map.offline-map .offline-map-svg{display:block;width:100%;height:100%;cursor:grab;touch-action:none}
.fleet-map.offline-map .offline-map-svg.dragging{cursor:grabbing}
.offline-ocean{fill:#102339}body.light .offline-ocean{fill:#d9eaf3}
.offline-grid path{stroke:#2b4d67;stroke-width:.16;fill:none;opacity:.6;vector-effect:non-scaling-stroke}body.light .offline-grid path{stroke:#9cb7c7}
.offline-land path{fill:#315369;stroke:#668ba0;stroke-width:.15;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
body.light .offline-land path{fill:#a7c6b5;stroke:#769e90}
.offline-ocean-labels text{fill:#6d9ab5;font-size:4px;font-weight:700;letter-spacing:1px;opacity:.45;pointer-events:none}body.light .offline-ocean-labels text{fill:#547f9b}
.offline-ship-marker{cursor:pointer;outline:none}
.offline-ship-marker:focus{filter:drop-shadow(0 0 6px #55bbfa)}
.offline-map-controls{position:absolute;z-index:4;top:12px;left:12px;display:grid;gap:5px}
.offline-map-controls button{width:39px;height:39px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--text);font-size:23px;font-weight:700;line-height:1}
.offline-map-controls button:hover{border-color:var(--blue)}
.offline-map-credit{position:absolute;right:8px;bottom:6px;pointer-events:none;font-size:10px;color:#c6dbea;background:#071726b3;padding:4px 8px;border-radius:6px;z-index:2}
.offline-map-popup{position:absolute;z-index:5;transform:translate(-50%,-100%);background:var(--card);color:var(--text);border:1px solid var(--blue);border-radius:10px;max-width:min(300px,85%);min-width:190px;padding:12px 15px;font-size:12px;line-height:1.7;box-shadow:0 8px 28px #0007;max-height:65%;overflow:auto}
.offline-map-popup[hidden]{display:none}
.pms-cylinder-config{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 16px;background:var(--card);border:1px solid var(--line);border-radius:12px;margin:11px 0}
.pms-cylinder-config>div:first-child{display:grid;gap:4px}
.pms-cylinder-config small{font-size:11px;color:var(--muted)}
.pms-cyl-stepper{display:flex;align-items:center;gap:9px;flex:none}
.pms-cyl-stepper button{height:38px;width:39px;display:grid;place-items:center;background:var(--input);color:var(--text);border-radius:8px;border:1px solid var(--line);font-size:25px}
.pms-cyl-stepper button:hover{border-color:var(--blue)}
.pms-cyl-stepper output{min-width:28px;text-align:center;font-size:22px;font-weight:800}
@media(max-width:600px){.pms-cylinder-config{flex-wrap:wrap}.offline-map-credit{font-size:9px;max-width:66%;text-align:right}}

/* v0.8.76 — adaptive chart-inspired map + obvious machine cylinder control */
.hybrid-map{position:relative;isolation:isolate;overflow:hidden;background:#102339}
.hybrid-map .hybrid-base-svg,.hybrid-map .hybrid-marker-svg{position:absolute;inset:0;width:100%;height:100%}
.hybrid-map .hybrid-base-svg{z-index:0;pointer-events:none}
.hybrid-map .hybrid-tile-layer{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none}
.hybrid-map .hybrid-tile-layer[hidden]{display:none}
.hybrid-map .hybrid-tile-layer img{position:absolute;display:block;max-width:none;object-fit:fill;user-select:none;pointer-events:none}
.hybrid-map .hybrid-marker-svg{z-index:2;cursor:grab;touch-action:none}
.hybrid-map .hybrid-marker-svg.dragging{cursor:grabbing}
.hybrid-map .offline-map-controls{z-index:5}
.hybrid-map .hybrid-mode-control{position:absolute;top:13px;right:13px;z-index:5;color:#d5eaff;background:rgba(10,26,43,.93);border:1px solid #446886;border-radius:9px;padding:7px 10px;box-shadow:0 2px 15px #0007}
.hybrid-mode-control label{display:grid;gap:3px;font-size:10px;font-weight:800;letter-spacing:.08em}
.hybrid-mode-control select{background:transparent;color:#e6f3ff;border:0;font-size:11px;font-weight:700;min-width:110px;outline-offset:3px}
.hybrid-mode-control option{background:#122a42;color:#e6f3ff}
.hybrid-map .offline-map-credit{z-index:6}
.hybrid-map .offline-map-popup{z-index:7}
.pms-cylinder-config{background:linear-gradient(110deg,#173b51,#15314a);border:1px solid #397a9c;padding:15px 21px;box-shadow:inset 0 0 0 1px #234b64;margin:13px 0 20px;color:#f2faff}
.pms-cylinder-config strong{font-size:15px}
.pms-cylinder-config small{color:#b9d7ee}
.pms-cyl-stepper{gap:0;overflow:hidden;border:1px solid #66b4dc;border-radius:11px;background:#071e33;box-shadow:0 0 0 3px #224760}
.pms-cyl-stepper button{width:54px;height:45px;border:0;border-radius:0;background:#19465e;color:white;font-size:31px;line-height:1;cursor:pointer}
.pms-cyl-stepper button:hover,.pms-cyl-stepper button:focus-visible{background:#237fa1}
.pms-cyl-stepper button:disabled{opacity:.5;cursor:wait}
.pms-cyl-stepper output{display:grid;place-items:center;min-width:56px;color:#fff;font-size:24px}
.pms-machine-count-hint{padding:3px 0 0;font-size:12px;color:#addaf7}
@media(max-width:650px){.pms-cylinder-config{padding:12px}.hybrid-map .hybrid-mode-control{right:8px;top:8px}.hybrid-mode-control select{min-width:88px}}

.hybrid-map .hybrid-tile-layer img[hidden]{display:none!important}

/* FleetOS 0.8.76a — compact cylinder count, same functionality. */
.pms-workspace .pms-cylinder-config{
  display:flex; align-items:center; justify-content:flex-end; width:max-content;
  max-width:100%; min-height:0; padding:5px 7px 5px 12px;
  margin:6px 0 12px auto; gap:10px;
  border:1px solid var(--line); border-radius:9px;
  background:var(--card); box-shadow:none; color:var(--text);
}
.pms-cylinder-config .pms-cylinder-label{
  font-size:12px; font-weight:600; white-space:nowrap; color:var(--muted);
}
.pms-workspace .pms-cyl-stepper{
  display:flex; align-items:center; gap:0; border:1px solid var(--line);
  border-radius:7px; overflow:hidden; background:var(--input); box-shadow:none;
}
.pms-workspace .pms-cyl-stepper button{
  width:34px; height:32px; padding:0; font-size:20px; font-weight:600;
  line-height:1; background:transparent; border:0; color:var(--text);
}
.pms-workspace .pms-cyl-stepper button:hover,
.pms-workspace .pms-cyl-stepper button:focus-visible{background:var(--blue);color:#fff}
.pms-workspace .pms-cyl-stepper output{
  min-width:30px; font-size:15px; font-weight:700; color:var(--text);
}
@media(max-width:420px){
  .pms-workspace .pms-cylinder-config{margin-right:0;padding-left:8px;gap:6px}
}

/* FleetOS 0.8.76b: OpenFreeMap vector canvas inside existing map viewport. */
.hybrid-map .hybrid-tile-layer .fleet-vector-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.hybrid-map .hybrid-tile-layer .maplibregl-control-container{display:none}

/* FleetOS 0.8.77 — Company ISM register / purchase workflow */
.ism-workflow{display:grid;gap:14px;min-width:0;padding:8px 0 22px;color:var(--text,#e4edff)}
.wf-head{display:flex;justify-content:space-between;align-items:center;gap:22px;flex-wrap:wrap;padding:22px;background:linear-gradient(130deg,rgba(25,67,94,.6),rgba(22,37,65,.6));border:1px solid rgba(96,147,182,.25);border-radius:14px}
.wf-head h2{margin:3px 0 6px;font-size:25px}.wf-head p{margin:0;color:#a9c0d7;font-size:13px;line-height:1.5}
.wf-head label{display:grid;gap:5px;min-width:190px;font-size:12px;color:#b1cde4}
.wf-head input{font-size:15px;padding:9px;border-radius:7px;max-width:250px;color:#e8f3ff;background:#12283f;border:1px solid #42617b}
.wf-eyebrow{font-size:11px;font-weight:800;color:#5ed4ff;letter-spacing:.14em}
.wf-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.wf-summary>div{border:1px solid rgba(105,145,172,.28);border-radius:11px;padding:14px;background:rgba(11,29,49,.45);display:grid;gap:6px}
.wf-summary small{font-size:12px;color:#9db3cc}.wf-summary strong{font-size:26px}.wf-summary .wf-alert{border-top:3px solid #f9b23b}.wf-notice{padding:12px 15px;border:1px solid #6d6130;border-radius:9px;background:rgba(142,116,28,.13);color:#efd9a4;font-size:12px;line-height:1.6}
.wf-ism-group{min-width:0;border:1px solid #2d455e;border-radius:10px;overflow:hidden;background:rgba(12,28,48,.55)}
.wf-ism-group>summary{cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:15px 17px;background:#172d47;font-weight:700}
.wf-ism-group>summary small{font-size:11px;font-weight:500;color:#9cb9d3}
.wf-table-wrap{width:100%;overflow-x:auto}.wf-table{border-collapse:collapse;width:100%;font-size:13px;min-width:670px}
.wf-table th,.wf-table td{padding:11px 10px;text-align:left;border-bottom:1px solid rgba(114,156,192,.16);vertical-align:middle}
.wf-table th{font-size:11px;font-weight:800;color:#93b4d3;background:#112438;white-space:nowrap}
.wf-table tr:hover td{background:rgba(46,91,136,.12)}.wf-table td small{display:block;color:#8eaecb;font-size:11px;margin-top:3px;max-width:320px}
.wf-state{display:inline-block;border-radius:7px;padding:5px 8px;font-size:11px;font-weight:700;white-space:nowrap}
.wf-done{background:rgba(25,155,111,.16);color:#6de0a6}.wf-missing{background:rgba(201,84,78,.16);color:#ffb4ab}
.wf-uploaded{background:rgba(209,151,43,.16);color:#ffd18b}.wf-conditional{background:rgba(111,137,160,.18);color:#adbed0}
.wf-frequency{display:inline-block;border:1px solid #3e5a73;border-radius:6px;padding:3px 7px;font-size:11px;color:#c0dcf5}
.wf-actions{min-width:220px}.wf-actions button,.wf-actions a{margin:3px 5px 3px 0;display:inline-flex;text-decoration:none;align-items:center}
.wf-actions details{font-size:12px}.wf-actions details summary{cursor:pointer;margin-top:6px;color:#85bce5}
#wf-dialog{background:#122840;color:#e7f4ff;border:1px solid #54748b;border-radius:12px;max-width:650px;width:calc(100% - 24px);padding:22px;max-height:90%;overflow:auto}
#wf-dialog::backdrop{background:rgba(1,8,20,.75)}#wf-dialog h2{margin:0 0 14px}
.wf-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.wf-form label{display:grid;gap:5px;font-size:12px;color:#b6cee5}
.wf-form input,.wf-form select,.wf-form textarea{width:100%;min-width:0;box-sizing:border-box;background:#0c2036;border:1px solid #48647c;padding:10px;border-radius:7px;color:#f2f8ff;font:inherit;font-size:14px}
.wf-form label:has(textarea){grid-column:1/-1}.wf-dialog-actions{margin-top:20px;display:flex;justify-content:flex-end;gap:9px}
@media(max-width:850px){.wf-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.wf-form{grid-template-columns:1fr}}
@media(max-width:480px){.wf-summary{grid-template-columns:1fr 1fr}.wf-head{padding:13px}.wf-head h2{font-size:20px}}
/* FleetOS v0.8.78 — daily vessel reports, linked equipment, analytics, workflow controls */
.next-view{display:grid;gap:18px;min-width:0;color:var(--text,#edf4ff)}
.next-head{border-radius:15px;padding:22px 24px;background:linear-gradient(110deg,rgba(22,99,153,.28),rgba(17,35,60,.25));border:1px solid var(--line,#294560)}
.next-head h2{font-size:clamp(20px,2vw,30px);margin:6px 0 8px;font-weight:800}
.next-head p,.next-help,.next-card small{color:var(--muted,#9caec4);font-size:12px;line-height:1.5}
.next-eyebrow{letter-spacing:.15em;font-size:10px;font-weight:750;color:#59d0ff}
.next-toolbar{display:flex;flex-wrap:wrap;align-items:end;gap:14px;padding:8px 0}
.next-toolbar label,.next-card label{display:flex;flex-direction:column;gap:6px;font-size:12px;min-width:160px}
.next-toolbar select,.next-toolbar input,.next-field input,.next-card select,.next-manual input,.next-remarks textarea{background:var(--card,#0c1c32);border:1px solid var(--line,#294560);border-radius:9px;color:var(--text,#edf4ff);padding:10px 12px;font:inherit;min-width:0}
.next-toolbar select,.next-card select{min-width:180px;max-width:100%}
.next-status,.next-tag{font-size:12px;color:#a8c5e0;border:1px solid var(--line,#294560);border-radius:12px;padding:10px 12px}
.next-route,.next-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.next-route>div,.next-kpi,.next-card{padding:17px;border:1px solid var(--line,#294560);border-radius:13px;background:rgba(13,28,49,.44);min-width:0}
.next-route small{display:block;color:var(--muted,#9eb2c7);font-size:11px;margin-bottom:7px}
.next-route strong{font-size:14px;overflow-wrap:anywhere}
.next-grid{display:grid;grid-template-columns:repeat(3,minmax(140px,1fr));gap:12px;margin:12px 0}
.next-field{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600}
.next-field small{font-weight:400;color:#8fb0c7}
.next-field input{width:100%;font-size:16px}
.next-remarks{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600}
.next-remarks textarea{width:100%;min-height:86px}
.next-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:14px 0}
.next-manual{border:1px dashed var(--line,#294560);border-radius:10px;padding:10px 14px}
.next-manual summary{cursor:pointer}
.next-alert{border:1px solid #9a6824;background:rgba(164,93,27,.10);color:#ffca7d;padding:11px;border-radius:9px;font-size:12px}
.next-view h3{font-size:16px;margin:4px 0 12px}
.next-scroll{max-width:100%;overflow:auto;border:1px solid var(--line,#294560);border-radius:12px}
.next-scroll table{width:100%;min-width:730px;border-collapse:collapse}
.next-scroll th,.next-scroll td{padding:12px;border-bottom:1px solid var(--line,#294560);text-align:left;font-size:12px}
.next-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.next-card ul{padding-left:18px;max-height:320px;overflow:auto}
.next-card li{padding:7px 0;border-bottom:1px solid rgba(139,182,210,.1);overflow-wrap:anywhere;font-size:13px}
.next-card label{margin:14px 0}
.next-card p{font-size:13px;line-height:1.6}
.next-card button{margin-top:7px}
.next-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}
.next-kpi small{display:block;color:var(--muted,#9eb2c7);font-size:11px;margin-bottom:12px}
.next-kpi strong{font-size:27px;font-weight:800}
.next-analytics-compliance{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.next-analytics-compliance strong{font-size:30px}
.next-analytics-compliance p{margin:0;color:var(--muted,#9eb2c7);font-size:12px}
.next-meter{height:10px;background:#20334c;border-radius:20px;overflow:hidden;flex:1;min-width:180px}
.next-meter span{display:block;height:100%;background:#2eb4ac}
.wf-settings{margin:14px 0}.wf-settings .wf-form{display:flex;flex-wrap:wrap;gap:14px;margin:14px 0}.wf-settings .wf-form label{display:grid;gap:5px}
.wf-settings input[type="date"]{padding:9px;background:var(--card,#11223c);color:var(--text,#edf4ff);border:1px solid #375171;border-radius:8px}
.wf-hint{font-size:12px;color:var(--muted,#9eb2c7);margin:10px 0}
.wf-ism-group td small{display:block;margin-top:5px;color:var(--muted,#9eb2c7)}
.wf-delivery-note{font-size:11px;margin:8px 0;overflow-wrap:anywhere}
@media(max-width:1050px){.next-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.next-grid{grid-template-columns:repeat(2,minmax(140px,1fr))}}
@media(max-width:650px){.next-split,.next-grid,.next-route,.next-kpis{grid-template-columns:1fr}.next-head{padding:15px}.next-toolbar{display:grid}.next-route{gap:8px}}

/* v0.8.78: optional, late-arriving purchase Delivery Notes */
.wf-delivery-note-pending { color:#ffc86b; background:rgba(244,174,54,.1);border:1px solid rgba(244,174,54,.28);border-radius:8px;padding:7px 9px; margin:7px 0;font-size:12px; }
.wf-delivery-note {font-size:12px;margin:6px 0;line-height:1.5;}

/* v0.8.78 - Analytics comparisons use real outstanding record counts, not invented fleet scores. */
.next-signals{display:grid;gap:9px;margin-top:12px}
.next-signal{display:grid;grid-template-columns:minmax(130px,210px) minmax(0,1fr) 42px;align-items:center;gap:12px;font-size:12px}
.next-signal>span{overflow-wrap:anywhere}
.next-signal>strong{text-align:right;font-size:13px}
.next-signal-track{height:9px;border-radius:50px;background:rgba(91,121,155,.22);overflow:hidden}
.next-signal-track span{display:block;height:100%;background:linear-gradient(90deg,#269fc7,#e7a74f);border-radius:50px}
@media(max-width:650px){.next-signal{grid-template-columns:minmax(90px,130px) minmax(0,1fr) 24px;gap:7px}}

/* v0.8.79: independent scrolling for expanded sidebar sections */
@media(min-width:641px){
 .layout>aside{overflow:hidden;min-height:0;}
 #fleet-nav{min-height:0;flex:1 1 auto;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:var(--line) transparent;overscroll-behavior:contain;padding-right:4px;align-content:start;}
 .layout>aside .sidefoot{flex:0 0 auto;margin-top:10px;padding-top:9px;border-top:1px solid var(--line);}
 .layout>aside .caption{flex-shrink:0;margin-bottom:17px;}
}
@media(max-width:640px){.layout>aside{overflow:visible;}.layout>aside #fleet-nav{overflow:visible;}}
.next-status-chip{display:inline-flex;align-items:center;gap:5px;border-radius:30px;padding:4px 9px;border:1px solid var(--line);font-size:11px;}
.next-status-chip.submitted{color:#88caff;border-color:#528bd6}.next-status-chip.acknowledged{color:#70e8ad;border-color:#278f6c}.next-status-chip.returned{color:#ffbd69;border-color:#bd862a}
.next-office-details{font-size:12px;max-width:520px;line-height:1.7;white-space:normal}.next-office-details summary{cursor:pointer;color:var(--blue)}
.next-office-actions{display:flex;gap:7px;flex-wrap:wrap}.next-office-actions button{white-space:nowrap}
/* v0.8.86 — Office Inbox: paired quantity tiles, retaining remarks and correction reason. */
.next-office-inbox .next-office-report-cell{width:52%;min-width:360px;vertical-align:top}
.next-office-inbox .next-office-report-cell .next-office-details{max-width:none;width:100%;min-width:0;line-height:1.45}
.next-office-inbox .next-office-details>summary{display:list-item;font-size:12px;font-weight:700;padding:3px 0;white-space:nowrap}
.next-office-route{display:grid;gap:4px;margin:12px 0;color:var(--text,#edf4ff);overflow-wrap:anywhere}
.next-office-route b{color:var(--muted,#9eb2c7);font-weight:650}
.next-office-quantities{display:grid;gap:9px;margin:12px 0}
.next-office-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;min-width:0}
.next-office-value,.next-office-text-card{min-width:0;border:1px solid var(--line,#294560);background:color-mix(in srgb,var(--card,#10233b) 80%,transparent);border-radius:10px;padding:11px 13px;box-sizing:border-box}
.next-office-label{display:block;color:var(--muted,#9fbad3);font-weight:600;font-size:12px;line-height:1.35;margin-bottom:6px}
.next-office-value strong{display:block;color:var(--text,#edf4ff);font-size:16px;font-weight:800;line-height:1.3;overflow-wrap:anywhere}
.next-office-value .next-office-unit{color:var(--muted,#9fbad3);font-size:11px;font-weight:600;white-space:nowrap}
.next-office-extra{width:calc(50% - 4.5px);min-width:0}
.next-office-notes{display:grid;gap:9px;margin-top:9px}
.next-office-text-card{overflow-wrap:anywhere;white-space:pre-wrap;line-height:1.5;font-size:12px;color:var(--text,#edf4ff)}
@media(min-width:1400px){.next-office-notes{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.next-office-inbox .next-office-report-cell{min-width:320px}.next-office-value,.next-office-text-card{padding:9px 10px}}


.next-form-fieldset{border:0;padding:0;margin:0;min-width:0}.next-form-fieldset:disabled{opacity:.72}.next-form-fieldset:disabled button{cursor:not-allowed}

/* v0.8.81a: two donut charts — one shared tank for domestic/transit fuel, one freshwater tank. */
.tank-capacity-heading{padding:10px 12px;border-radius:10px;border:1px solid #365575;background:rgba(29,99,150,.09);display:flex;flex-direction:column;gap:4px}
.tank-capacity-heading small{font-size:12px;color:var(--muted,#8da7bd);line-height:1.4}
.tank-readout{display:flex;align-items:center;gap:13px;min-width:0}
.tank-readout-fuel{min-width:270px}
.tank-readout-water{flex-direction:column;gap:3px;min-width:110px}
.tank-gauge{--fuel-domestic:#ffb052;--fuel-transit:#489ded;--water-color:#25c6b9;--gauge-bg:#344660;--gauge-cut:#18263b;display:inline-grid;place-items:center;position:relative;width:98px;height:98px;flex:0 0 98px;vertical-align:middle;isolation:isolate}
.tank-gauge-ring{position:absolute;inset:1px;border-radius:50%;background:conic-gradient(from -90deg,var(--fuel-domestic) 0% var(--segment-one),var(--fuel-transit) var(--segment-one) var(--segment-two),var(--gauge-bg) var(--segment-two) 100%)}
.tank-gauge.water .tank-gauge-ring{background:conic-gradient(from -90deg,var(--water-color) 0% var(--segment-one),var(--gauge-bg) var(--segment-one) 100%)}
/* Delicate radial separations give the doughnut its 'sliced' appearance. */
.tank-gauge-ring::after{content:"";position:absolute;inset:0;border-radius:50%;background:repeating-conic-gradient(from -90deg,transparent 0deg 43.9deg,var(--gauge-cut) 44deg 45deg);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 13px),#000 calc(100% - 12px));mask:radial-gradient(farthest-side,transparent calc(100% - 13px),#000 calc(100% - 12px))}
.tank-gauge-inner{position:relative;border-radius:50%;width:67px;height:67px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;background:var(--gauge-cut);color:var(--text,#f6fafc);text-align:center;padding:2px}
.tank-gauge-inner b{font-size:14px;line-height:1.15;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.3px;white-space:nowrap}
.tank-gauge.compact .tank-gauge-inner b{font-size:11px;letter-spacing:-.5px}
.tank-gauge-inner small{font-size:10px;line-height:1.4;color:var(--muted,#adc2d6)}
.tank-gauge.overfill .tank-gauge-inner{box-shadow:inset 0 0 0 2px #f06b72}
.tank-readout-info{display:flex;flex-direction:column;gap:6px;white-space:nowrap}
.tank-legend-item{display:grid;grid-template-columns:8px minmax(39px,auto) auto;align-items:center;gap:5px;font-size:11px;color:var(--muted,#adc2d6)}
.tank-legend-item strong{font-size:11px;color:var(--text,#f6fafc);font-weight:700;font-variant-numeric:tabular-nums}
.tank-legend-dot{display:inline-block;width:8px;height:8px;border-radius:2px}
.tank-legend-dot.domestic{background:#ffb052}.tank-legend-dot.transit{background:#489ded}
.tank-capacity-note{font-size:10px;color:var(--muted,#a4b7c9);line-height:1.2}
.tank-capacity-note.overfill{color:#ff8f92;font-weight:800}
.vessel-report-table td:has(.tank-readout){padding-top:9px;padding-bottom:9px}
.vessel-report-table td:has(.tank-readout-water){text-align:center}
body.light .tank-gauge{--gauge-bg:#d6e3ee;--gauge-cut:#f0f5fa}
@media(max-width:1100px){.tank-gauge{width:86px;height:86px;flex-basis:86px}.tank-gauge-inner{width:59px;height:59px}.tank-gauge-inner b{font-size:12px}.tank-readout-fuel{min-width:245px}.tank-readout{gap:9px}}
/* v0.8.81 — first-run manager setup, sign-in and account management */
body.fleet-auth-blocked .layout{filter:blur(6px);pointer-events:none;user-select:none}
#fleet-login-layer{position:fixed;inset:0;z-index:99999;background:rgba(8,17,32,.93);display:grid;place-items:center;padding:20px;overflow:auto}
.fleet-auth-card{width:min(450px,100%);border:1px solid #35628a;background:#16243b;border-radius:18px;padding:28px 30px;color:#eaf4fc;box-shadow:0 26px 100px rgba(0,0,0,.55)}
.fleet-auth-logo{font-size:25px;font-weight:900;letter-spacing:.8px}.fleet-auth-logo span{color:#35b0ff}
.fleet-auth-card h2{font-size:20px;margin:20px 0 10px}.fleet-auth-card p,.fleet-auth-card small{color:#9dbbd4}
.fleet-auth-card form{display:flex;flex-direction:column;gap:13px;margin:16px 0}
.fleet-auth-card label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:700}
.fleet-auth-card input{box-sizing:border-box;width:100%;background:#0b182b;border:1px solid #335373;border-radius:8px;color:#eef8ff;padding:12px;font:inherit}
.fleet-auth-card button{width:100%;min-height:42px}
.fleet-auth-error{color:#ff9c92!important;min-height:1em;line-height:1.4}
#fleet-account-dialog{width:min(1000px,calc(100vw - 24px));max-height:90vh;overflow:auto;border:1px solid #315370;border-radius:12px;background:#13233b;color:#e8f3fb;padding:20px}
#fleet-account-dialog::backdrop{background:rgba(0,0,0,.75)}
#fleet-account-dialog .fleet-account-actions{display:flex;justify-content:flex-end;margin-bottom:12px}
.fleet-add-account{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;align-items:end}
.fleet-add-account label{display:flex;flex-direction:column;gap:5px;font-size:12px}
.fleet-add-account label[hidden]{display:none}
.fleet-add-account input,.fleet-add-account select{min-width:0;width:100%;box-sizing:border-box;background:#0b182b;border:1px solid #365271;color:#eaf5fc;border-radius:7px;padding:9px}
.fleet-ship-portal{max-width:1100px}.fleet-ship-portal .fields{margin-bottom:15px}
body.light #fleet-account-dialog{background:#f4f9fd;color:#183149}
body.light #fleet-account-dialog input,body.light #fleet-account-dialog select{background:#fff;color:#183149}
aside[hidden],#add[hidden]{display:none!important}

/* v0.8.81b · Compact in-page, timestamped report history */
.next-history-table{min-width:830px}
.next-amount-summary{display:flex;flex-wrap:wrap;gap:9px 18px;align-items:center}
.next-amount-summary>div{display:grid;gap:2px;white-space:nowrap}
.next-amount-summary small{color:var(--muted,#9caec4);font-size:10px}
.next-amount-summary strong{font-size:12px}
.next-history-details{margin-bottom:7px;max-width:440px}
.next-history-details summary{cursor:pointer;color:#69caff;font-weight:650}
.next-history-details[open]{border:1px solid var(--line,#294560);border-radius:9px;padding:9px;background:rgba(13,28,49,.60)}
.next-history-details p{overflow-wrap:anywhere;font-size:12px;line-height:1.5}
.next-history-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:12px 0}
.next-history-values>div{display:grid;gap:3px}
.next-history-values small{color:var(--muted,#9caec4)}
.next-history-values strong{font-size:12px}
@media(max-width:660px){.next-history-values{grid-template-columns:1fr}.next-amount-summary{gap:5px}}

/* v0.8.81b: explicitly identify physical tank capacity below each circular chart */
.tank-capacity-note{font-size:11px;line-height:1.4;white-space:normal;max-width:220px}
.tank-readout-water .tank-capacity-note{max-width:174px;text-align:center}

/* FleetOS 0.8.82 — manager-facing role/user editor, adaptive to narrow laptops. */
#fleet-account-dialog [hidden],aside [hidden]{display:none!important}
.fleet-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 20px;position:sticky;top:0;background:inherit;padding:7px 0;z-index:2}
.fleet-tabs .selected{border-color:#3eafef;background:rgba(58,165,224,.18)}
#fleet-account-dialog section[data-auth-pane]{display:block}
#fleet-account-dialog section[data-auth-pane][hidden]{display:none!important}
#fleet-account-dialog .fleet-add-account{grid-template-columns:repeat(auto-fit,minmax(195px,1fr));margin:15px 0}
#fleet-account-dialog label{line-height:1.4}
#fleet-account-dialog label select[multiple]{height:115px}
#fleet-account-dialog .fleet-advanced-permissions{grid-column:1/-1;min-width:0;padding:12px;border:1px solid #395b7a;border-radius:10px}
#fleet-account-dialog .fleet-add-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;grid-column:1/-1}
.fleet-permission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:9px;margin:15px 0}
.fleet-permission-grid fieldset{min-width:0;border:1px solid #395470;border-radius:8px;padding:10px}
.fleet-permission-grid legend{font-size:12px;font-weight:700;letter-spacing:.04em;padding:0 5px}
.fleet-perm-row{display:flex!important;flex-direction:row!important;align-items:center;gap:9px;padding:3px 0;font-size:12px!important}
.fleet-perm-row select{max-width:122px;font-size:11px}
.fleet-perm-row input[type=checkbox]{width:15px!important;flex:none}
.fleet-role-head{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.fleet-role-head label{display:flex;flex-direction:column;gap:5px}
.fleet-role-head input,.fleet-role-head select{width:100%;background:#0b182b;color:#eaf5fc;border:1px solid #365271;border-radius:7px;padding:9px;box-sizing:border-box}
.fleet-role-line{display:flex;gap:10px;align-items:center;justify-content:space-between;border-bottom:1px solid #314963;padding:10px 0}
.fleet-role-line .rowactions{display:flex;gap:7px;flex-wrap:wrap}
body.light .fleet-role-head input,body.light .fleet-role-head select{background:white;color:#183149}

.fleet-ship-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px;margin-top:14px}
.fleet-ship-summary details{padding:15px!important}.fleet-ship-summary ul{padding-left:20px;max-height:230px;overflow:auto}
.fleet-ship-summary li{margin:6px 0}
.fleet-ship-portal #fleet-ship-switch{display:block;margin:8px 0 16px;padding:8px;border-radius:7px;background:#142740;color:#e2f3ff;border:1px solid #375270}
.fleet-ship-portal #fleet-dept-report[hidden]{display:none!important}

/* RBAC: keep hidden navigation and editing controls hidden even if their style classes specify display. */
aside [hidden], .fleet-layout [hidden], #content [hidden], dialog [hidden], button[hidden], form[hidden], details[hidden], input[hidden] { display:none !important; }

/* v0.8.85 · top navigation: horizontal categories and one-click floating submenus */
.layout{display:flex;flex-direction:column;min-height:100vh}
.layout>aside.fleet-topbar{
 position:sticky;top:0;z-index:1050;width:100%;height:auto;min-height:66px;
 flex:0 0 auto;overflow:visible!important;border-right:0;border-bottom:1px solid var(--line);
 padding:0 clamp(14px,2.4vw,34px);background:var(--side);
 box-shadow:0 7px 26px rgba(0,0,0,.09);
}
.fleet-topbar-inner{width:100%;max-width:1920px;margin:0 auto;min-height:66px;display:flex;align-items:center;gap:clamp(15px,2vw,34px)}
.fleet-identity{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;padding-right:clamp(12px,2vw,26px);border-right:1px solid var(--line)}
.fleet-topbar .brand{display:flex;align-items:center;gap:5px;font-size:17px;line-height:1.1;letter-spacing:.25px;white-space:nowrap}.fleet-topbar .brand-name{font-weight:900}.fleet-topbar .brand-anchor{font-size:19px;line-height:1}
.fleet-topbar .caption{margin:0;font-size:8px;letter-spacing:1.4px;white-space:nowrap;color:var(--muted)}
#fleet-nav{
 display:flex;flex:1 1 auto;flex-direction:row;flex-wrap:wrap;align-items:center;align-content:center;
 min-width:0;min-height:58px;height:auto;gap:5px;overflow:visible!important;
 padding:5px 0;margin:0;
}
#fleet-nav .nav-group{position:relative;display:flex;align-items:center;flex:0 0 auto;margin:0}
#fleet-nav .nav-group[hidden]{display:none!important}
#fleet-nav .nav{
 width:auto;min-height:36px;display:inline-flex;align-items:center;justify-content:center;
 gap:9px;text-align:center;white-space:nowrap;border:1px solid transparent;
 padding:9px 12px;border-radius:8px;background:transparent;color:var(--muted);
 font-size:12px;font-weight:600;line-height:1.1;transition:color .14s,background .14s,border-color .14s;
}
#fleet-nav .nav-parent{color:var(--text);justify-content:space-between;gap:9px}
#fleet-nav .nav-parent>span:first-child{display:flex;gap:6px;align-items:center;white-space:nowrap}
#fleet-nav .nav:hover,#fleet-nav .nav-parent[aria-expanded="true"],#fleet-nav .nav.active{
 color:var(--blue);background:color-mix(in srgb,var(--blue) 13%,var(--side));
 border-color:color-mix(in srgb,var(--blue) 22%,transparent);
}
#fleet-nav .nav-parent.parent-active{color:var(--blue)}
#fleet-nav .nav-chevron{font-size:15px;line-height:1;color:var(--muted);transform:none;transition:transform .18s}
#fleet-nav .nav-parent[aria-expanded="true"] .nav-chevron{transform:rotate(180deg);color:var(--blue)}
#fleet-nav .nav-children{
 position:fixed;z-index:1080;top:var(--flyout-top,65px);left:var(--flyout-left,12px);
 width:var(--flyout-width,278px);max-height:min(73vh,600px);overflow-y:auto;overflow-x:hidden;
 display:flex;flex-direction:column;align-items:stretch;gap:3px;
 margin:0;padding:8px;border:1px solid #354a68;border-radius:12px;
 background:#142238;color:#e8f3fc;box-shadow:0 18px 42px #0008;
 scrollbar-width:thin;scrollbar-color:#4c6687 transparent;
}
#fleet-nav .nav-children[hidden]{display:none!important}
#fleet-nav .nav-child{
 width:100%;min-height:37px;display:flex;align-items:center;justify-content:flex-start;
 padding:10px 11px;border-radius:8px;color:#c8d8e9;text-align:left;white-space:normal;
 font-size:12px;font-weight:500;line-height:1.25;
}
#fleet-nav .nav-child::before{content:'›';color:#749ac0;font-size:15px;font-weight:800;line-height:1;flex:0 0 auto}
#fleet-nav .nav-child:hover,#fleet-nav .nav-child.active{color:#77d2ff;background:#234360;border-color:transparent}
#fleet-nav .nav-child[hidden]{display:none!important}
#fleet-nav button:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.layout>aside .sidefoot{display:none}
.layout>main{width:100%;flex:1 0 auto;min-width:0;padding:clamp(15px,2vw,27px) clamp(14px,2.4vw,38px)}
.layout>main>header{display:flex;align-items:center;justify-content:space-between;flex-direction:row;gap:14px;margin-bottom:16px}
.layout>main>header .eyebrow{margin-top:0}
.layout>main>header h1{font-size:clamp(20px,2vw,26px);margin:4px 0 0}
.layout>main>header .actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap;flex:0 0 auto}
.layout>main>header .actions .chip,.layout>main>header .actions .primary{
 min-height:32px;line-height:1.15;font-size:11px;border-radius:8px;padding:7px 10px;white-space:nowrap;
}
.layout>main>header .actions #account,.layout>main>header .actions #theme{width:34px;padding:7px 5px;text-align:center}
.layout>main>header .actions #add{box-shadow:0 4px 12px rgba(4,145,201,.13)}
body.light #fleet-nav .nav-children{background:#fff;color:#1b324a;border-color:#d4e0ed;box-shadow:0 17px 35px #15273b24}
body.light #fleet-nav .nav-child{color:#40536c}
body.light #fleet-nav .nav-child:hover,body.light #fleet-nav .nav-child.active{color:#0775af;background:#e5f4fe}
@media(max-width:1100px){
 .fleet-topbar-inner{flex-wrap:wrap;gap:3px;align-items:center;padding:9px 0}
 .fleet-identity{width:100%;border-right:0;padding:0 5px 6px;flex-direction:row;align-items:baseline;gap:12px}
 .fleet-topbar .caption{font-size:8px}
 #fleet-nav{min-height:38px;padding:0;gap:4px}
 #fleet-nav .nav{padding:8px 10px;font-size:11px;min-height:33px}
}
@media(max-width:640px){
 .layout{display:flex;flex-direction:column}
 .layout>aside.fleet-topbar{position:sticky;top:0;height:auto;overflow:visible!important;padding:0 11px}
 .fleet-topbar .brand{font-size:15px}
 .fleet-topbar .caption{font-size:7px;letter-spacing:.65px}
 #fleet-nav{display:flex;flex-wrap:wrap;gap:4px;margin:0;overflow:visible!important}
 #fleet-nav .nav{font-size:10.5px;padding:7px 8px;min-height:32px;white-space:nowrap}
 #fleet-nav .nav-children{max-height:min(67vh,520px)}
 #fleet-nav .nav-child{font-size:12px;min-height:38px;padding:10px 12px;white-space:normal}
 .layout>main{padding:13px 12px}
 .layout>main>header{flex-direction:row;align-items:flex-start;flex-wrap:wrap;gap:9px}
 .layout>main>header .actions{width:100%;justify-content:flex-start;gap:5px}
 .layout>main>header .actions .chip,.layout>main>header .actions .primary{min-height:30px;font-size:11px;padding:6px 9px}
}

/* Keep the notification panel above the sticky navigation on small screens. */
.up-alert-popup{z-index:1200}

/* v0.8.85 · desktop toolbar shares the navigation row, aligned hard right. */
.fleet-topbar-inner{gap:clamp(10px,1.2vw,22px)}
#fleet-nav{flex-wrap:nowrap;gap:1px}
#fleet-nav .nav{padding:9px clamp(6px,.65vw,12px);gap:6px}
.fleet-utilities{
 margin-left:auto;flex:0 0 auto;display:flex;align-items:center;justify-content:flex-end;
 gap:6px;min-height:52px;padding-left:14px;border-left:1px solid var(--line);
}
.fleet-utilities .chip,.fleet-utilities .primary{
 min-width:34px;height:35px;min-height:35px;padding:0 10px;
 display:inline-flex;align-items:center;justify-content:center;gap:6px;
 border-radius:9px;font-size:11px;line-height:1.1;white-space:nowrap;
}
.fleet-utilities .chip{background:transparent;border-color:transparent;color:var(--muted)}
.fleet-utilities .chip:hover,.fleet-utilities .chip:focus-visible{background:color-mix(in srgb,var(--blue) 13%,var(--side));border-color:var(--line);color:var(--text)}
.fleet-util-svg{width:17px;height:17px;display:block;flex:0 0 auto}
.fleet-utilities .fleet-icon-button{width:35px;padding:0;position:relative}
.fleet-utilities .fleet-account-control{max-width:118px;padding:3px 8px 3px 4px;gap:7px}
.fleet-account-avatar{
 width:27px;height:27px;flex:0 0 27px;border-radius:8px;
 background:color-mix(in srgb,var(--blue) 20%,var(--side));color:var(--blue);
 display:flex;align-items:center;justify-content:center;font-weight:800;letter-spacing:-.4px;font-size:11px;
 border:1px solid color-mix(in srgb,var(--blue) 20%,transparent);
}
.fleet-account-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:650;color:var(--text);max-width:65px}
.fleet-utilities #lang{font-weight:700;min-width:57px}
.fleet-utilities #lang .fleet-util-svg{color:var(--muted)}
.fleet-utilities #theme .theme-moon{display:none}
.fleet-utilities #theme[data-mode="light"] .theme-moon{display:block}
.fleet-utilities #theme[data-mode="light"] .theme-sun{display:none}
.fleet-util-divider{height:20px;width:1px;background:var(--line);flex:0 0 auto;margin:0 3px}
.fleet-utilities .fleet-add-control{min-width:89px;padding:0 11px;font-weight:750;background:#078cbe;border-color:#078cbe}
.fleet-utilities .fleet-add-control:hover{background:#0876a9}
.fleet-add-plus{font-size:17px;line-height:1;font-weight:500}
.fleet-utilities #up-bell .up-bell-count{
 position:absolute;right:-3px;top:-3px;border-radius:8px;
 min-width:17px;height:16px;padding:0 4px;font-size:10px;font-weight:850;
 background:#efae45;color:#12202f;box-shadow:0 0 0 2px var(--side);pointer-events:none;
}
.fleet-utilities button:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.layout>main>header{justify-content:flex-start}
@media(max-width:1450px){
 .fleet-topbar-inner{flex-wrap:wrap;justify-content:space-between;gap:0 8px;padding:8px 0 3px}
 .fleet-identity{order:0;border-right:0}
 .fleet-utilities{order:1;margin-left:auto}
 #fleet-nav{order:2;flex:1 0 100%;min-height:38px;flex-wrap:wrap;padding:4px 0 2px;gap:2px}
 #fleet-nav .nav{padding:8px 11px}
}
@media(max-width:1100px){
 .fleet-identity{width:auto;flex-direction:column;align-items:flex-start;padding-right:4px}
 .fleet-topbar-inner{gap:0 5px}
 .fleet-topbar .caption{font-size:8px}
 .fleet-utilities{border-left:0;padding-left:0;gap:4px}
 #fleet-nav{min-height:35px}
}
@media(max-width:640px){
 .layout>aside.fleet-topbar{padding:0 10px}
 .fleet-topbar-inner{gap:2px 5px}
 .fleet-topbar .brand{font-size:15px}
 .fleet-topbar .caption{font-size:7px}
 .fleet-utilities{gap:1px;min-height:37px}
 .fleet-utilities .chip,.fleet-utilities .primary{height:31px;min-height:31px;padding:0 5px;min-width:29px;border-radius:7px}
 .fleet-utilities .fleet-icon-button{width:30px}
 .fleet-utilities .fleet-account-control{padding:2px;max-width:30px}
 .fleet-utilities .fleet-account-avatar{width:25px;height:25px;flex-basis:25px;border-radius:6px}
 .fleet-account-name{display:none}
 .fleet-util-divider{margin:0 1px;height:17px}
 .fleet-utilities #lang{min-width:42px;gap:3px}
 .fleet-utilities #lang .fleet-util-svg{width:14px;height:14px}
 .fleet-utilities .fleet-add-control{min-width:30px;width:30px;padding:0}
 .fleet-utilities .fleet-add-control [data-i="addVessel"]{display:none}
 #fleet-nav{width:100%;flex:1 0 100%;padding-top:4px;gap:2px}
 #fleet-nav .nav{font-size:10.5px;padding:7px 7px;min-height:31px}
 .layout>main>header{flex-direction:column;align-items:flex-start}
}
@media(max-width:390px){
 .fleet-topbar .caption{display:none}
 .fleet-utilities .fleet-account-control{max-width:27px;min-width:27px}
 .fleet-utilities .fleet-icon-button{width:27px;min-width:27px}
}

.fleet-nav-icon{width:14px;height:14px;display:block;flex:0 0 14px;color:currentColor}


/* v0.8.86 — Daily Report: manual departure, side-by-side segmented tank gauges. */
.next-daily-route-port label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700}
.next-daily-route-port input{box-sizing:border-box;width:100%;min-width:0;padding:9px 10px;border-radius:8px;border:1px solid var(--line,#294560);background:var(--input,#0d2136);color:var(--text,#edf4ff);font:inherit;font-size:14px}
.next-daily-route-port>small{margin:9px 0 0;line-height:1.5;overflow-wrap:anywhere}
.next-daily-route-port b{color:var(--text,#edf4ff)}
.next-daily-quantity-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(480px,1fr);align-items:start;gap:14px;margin:12px 0}
.next-daily-quantity-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0}
.next-daily-gauges{display:grid;grid-template-columns:minmax(270px,1.5fr) minmax(162px,1fr);gap:10px;min-width:0}
.next-daily-gauge-card{min-width:0;border:1px solid var(--line,#294560);background:color-mix(in srgb,var(--card,#10233b) 84%,transparent);border-radius:12px;padding:12px;box-sizing:border-box}
.next-daily-gauge-card h4{margin:0 0 10px;font-size:12px;letter-spacing:.01em}
.next-daily-gauge-card .tank-readout-fuel{min-width:0;gap:8px}
.next-daily-gauge-card .tank-readout-info{min-width:0;white-space:normal}
.next-daily-gauge-card .tank-legend-item{grid-template-columns:8px minmax(32px,auto) auto;gap:4px}
.next-daily-gauge-card .tank-capacity-note{max-width:100%;overflow-wrap:anywhere}
.next-daily-gauge-card .tank-readout-water{min-width:0}
@media(max-width:1250px){.next-daily-quantity-layout{grid-template-columns:1fr}.next-daily-quantity-fields{grid-template-columns:repeat(4,minmax(0,1fr))}.next-daily-gauges{grid-template-columns:minmax(280px,1.35fr) minmax(165px,1fr)}}
@media(max-width:700px){.next-daily-quantity-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.next-daily-gauges{grid-template-columns:repeat(2,minmax(0,1fr))}.next-daily-gauge-card .tank-readout-fuel{flex-wrap:wrap}}
@media(max-width:450px){.next-daily-gauges{grid-template-columns:1fr}.next-daily-gauge-card .tank-readout-fuel{flex-wrap:nowrap}}
/* Readability of machinery selectors in the Equipment / PMS section. */
.pms-workspace .pms-machine{font-size:15px;line-height:1.4;padding:12px 17px;font-weight:750}
.equipment-card h4{font-size:17px;line-height:1.4}

/* 0.8.87: Equipment titles / company-maintained ISM editor */
.equipment-card .equipment-name{font-size:clamp(20px,1.35vw,25px);line-height:1.45;letter-spacing:.15px;font-weight:800;display:inline-block;margin-bottom:4px}
.wf-catalog-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:10px 0}
.wf-catalog-actions .chip{font-size:12px}
.wf-ism-group>summary .wf-catalog-actions{display:inline-flex;margin:0 8px;vertical-align:middle}
.wf-ism-group summary .wf-catalog-actions button{font-weight:600}
.wf-attachments{display:flex;flex-wrap:wrap;gap:5px;margin:5px 0}
.wf-attachments a{max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wf-dialog-note{color:var(--muted);font-size:12px}

/* FleetOS v0.8.88 — consistent Engine ISM columns across ALL section tables.
   Each section is its own <table>: without fixed layout, the browser shifts
   column starts according to the longest form name / status in that section.
   Keep the five columns on one grid, with local horizontal scrolling on
   narrow screens (no effect on Deck ISM or the other FleetOS tables). */
.ism-workflow > .wf-ism-group:not(.wf-settings) > .wf-table-wrap > .wf-table {
  table-layout: fixed;
  min-width: 1260px;
}
.ism-workflow > .wf-ism-group:not(.wf-settings) > .wf-table-wrap > .wf-table th:nth-child(1) { width: 15%; } /* Kod */
.ism-workflow > .wf-ism-group:not(.wf-settings) > .wf-table-wrap > .wf-table th:nth-child(2) { width: 35%; } /* Form / dönem */
.ism-workflow > .wf-ism-group:not(.wf-settings) > .wf-table-wrap > .wf-table th:nth-child(3) { width: 8%; }  /* Sıklık */
.ism-workflow > .wf-ism-group:not(.wf-settings) > .wf-table-wrap > .wf-table th:nth-child(4) { width: 24%; } /* Gönderim */
.ism-workflow > .wf-ism-group:not(.wf-settings) > .wf-table-wrap > .wf-table th:nth-child(5) { width: 18%; } /* İşlem */
.ism-workflow > .wf-ism-group:not(.wf-settings) > .wf-table-wrap > .wf-table td:nth-child(2) {
  overflow-wrap: anywhere;
}

/* FleetOS 0.8.89 — Purchase requisition lists and dated photo annexes. */
.pb-root{display:grid;gap:13px;min-width:0;margin-bottom:15px;color:var(--text)}
.pb-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:18px;padding:20px 23px;background:linear-gradient(120deg,color-mix(in srgb,var(--blue) 10%,var(--card)),var(--card));border:1px solid var(--line);border-radius:13px}
.pb-heading h2{font-size:24px;margin:5px 0}.pb-heading p{margin:4px 0;font-size:13px;color:var(--muted);line-height:1.6}
.pb-tabs{display:flex;gap:9px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:10px}
.pb-tab{background:var(--card);color:var(--muted);padding:11px 17px;border:1px solid var(--line);border-radius:10px;font-size:13px;font-weight:700}
.pb-tab.active,.pb-tab:hover{border-color:var(--blue);color:var(--blue);background:color-mix(in srgb,var(--blue) 12%,var(--card))}
.pb-body{min-width:0;display:grid;gap:12px}.pb-filter-label{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;font-size:12px;color:var(--muted);padding:6px 1px}
.pb-filter-label span:first-child{font-weight:800;color:var(--blue)}
.pb-batch{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden;min-width:0}
.pb-batch-head{padding:16px 19px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;background:color-mix(in srgb,var(--blue) 7%,var(--card));border-bottom:1px solid var(--line)}
.pb-batch-head h3{font-size:16px;margin:5px 0}.pb-batch-head p{font-size:12px;color:var(--muted);margin:5px 0;white-space:pre-wrap}.pb-batch-key{font-weight:750;font-size:11px;letter-spacing:.5px;color:var(--blue)}
.pb-muted{font-size:12px;color:var(--muted);font-weight:400}.pb-scroll{width:100%;overflow-x:auto}.pb-lines{width:100%;min-width:840px;border-collapse:collapse;table-layout:fixed;font-size:12px}
.pb-lines th,.pb-lines td{text-align:left;vertical-align:middle;border-bottom:1px solid var(--line);padding:11px 12px;overflow-wrap:anywhere}
.pb-lines th{font-size:11px;color:var(--muted);background:color-mix(in srgb,var(--blue) 5%,var(--card))}
.pb-lines th:nth-child(1){width:52px}.pb-lines th:nth-child(2){width:26%}.pb-lines th:nth-child(3){width:15%}.pb-lines th:nth-child(4){width:12%}.pb-lines th:nth-child(5){width:15%}.pb-lines th:nth-child(6){width:auto}
.pb-lines td small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.pb-line-actions{display:flex;gap:5px;flex-wrap:wrap}.pb-line-actions .chip{padding:5px 8px;font-size:11px;text-decoration:none}
.pb-empty{border:1px dashed var(--line);background:var(--card);padding:25px;border-radius:12px;color:var(--muted);font-size:13px;text-align:center}
.pb-photo-selection{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}
.pb-photo-card{display:grid;gap:7px;text-align:left;color:var(--text);background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px;align-content:start;min-height:150px}
.pb-photo-card:hover{border-color:var(--blue)}.pb-photo-card span:not(.pb-photo-icon),.pb-photo-card small{color:var(--muted);font-size:12px}
.pb-photo-icon{font-size:28px}.pb-legacy{border:1px solid var(--line);border-radius:10px;padding:12px 16px;margin:12px 0;background:var(--card)}
.pb-legacy>summary{font-size:13px;font-weight:750;cursor:pointer;color:var(--blue)}.pb-legacy .ism-workflow{margin-top:14px}
#pb-dialog{background:var(--card);color:var(--text);width:min(1180px,96vw);max-height:91vh;overflow-y:auto;border:1px solid var(--line);border-radius:15px;padding:20px 24px}
#pb-dialog::backdrop{background:rgba(1,8,20,.8)}
.pb-dialog-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin:0 0 15px}
.pb-dialog-head h2{font-size:22px;margin:6px 0}.pb-dialog-head p{font-size:12px;color:var(--muted);line-height:1.5}
.pb-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.pb-fields label,.pb-upload-row label{display:grid;gap:7px;font-size:12px;color:var(--muted);font-weight:600;min-width:0}
.pb-fields input,.pb-fields select,.pb-fields textarea,.pb-upload-row input{background:var(--input);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:10px 12px;min-width:0;width:100%;font-size:13px;box-sizing:border-box}
.pb-fields input:focus,.pb-fields select:focus,.pb-fields textarea:focus{outline:1px solid var(--blue);border-color:var(--blue)}
.pb-fields .pb-span2{grid-column:span 2}.pb-fields .pb-span3{grid-column:span 3}.pb-batch-meta{border:1px solid var(--line);border-radius:10px;padding:14px;background:color-mix(in srgb,var(--blue) 3%,var(--card))}
.pb-list-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:18px 0 10px}.pb-list-head h3{margin:0;font-size:16px}
#pb-rows{display:grid;gap:12px}.pb-edit-row{border:1px solid var(--line);padding:14px;border-radius:10px;background:color-mix(in srgb,var(--blue) 4%,var(--card))}
.pb-item-head{display:flex;justify-content:space-between;align-items:center;gap:9px;margin-bottom:12px;font-size:13px}
.pb-dialog-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--line);padding-top:16px;margin-top:22px}
.pb-dialog-foot>span{color:var(--muted);font-size:12px;max-width:600px}.pb-dialog-foot>div{display:flex;gap:9px}
.pb-gallery-help{font-size:12px;padding:12px 15px;border:1px solid var(--line);border-radius:9px;color:var(--muted)}
.pb-upload-row{display:flex;gap:13px;align-items:end;flex-wrap:wrap;margin:15px 0}.pb-upload-row label{flex:1;min-width:230px}.pb-upload-row button{white-space:nowrap}
.pb-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:14px;margin:17px 0}
.pb-figure{min-width:0;margin:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--input)}
.pb-figure img{width:100%;height:180px;object-fit:contain;display:block;background:color-mix(in srgb,var(--bg) 70%,#111)}
.pb-figure figcaption{display:grid;gap:5px;padding:10px 11px;overflow-wrap:anywhere;font-size:11px}.pb-figure figcaption small{color:var(--muted)}
.pb-figure figcaption button{justify-self:start;margin-top:7px}
@media(max-width:760px){.pb-heading{padding:14px}.pb-heading h2{font-size:19px}.pb-tabs{gap:5px}.pb-tab{font-size:12px;padding:9px}.pb-fields{grid-template-columns:1fr 1fr}.pb-fields .pb-span2,.pb-fields .pb-span3{grid-column:span 2}#pb-dialog{padding:16px}}
@media(max-width:440px){.pb-fields{grid-template-columns:1fr}.pb-fields .pb-span2,.pb-fields .pb-span3{grid-column:auto}.pb-dialog-foot>div{width:100%}.pb-dialog-foot>div>*{flex:1}}

/* Purchase requisitions: reveal the horizontal table scroll affordance on narrow displays. */
.pb-scroll-hint{display:none}
@media(max-width:760px){.pb-scroll-hint{display:block;padding:8px 14px;font-size:11px;font-weight:650;color:var(--muted);background:color-mix(in srgb,var(--blue) 4%,var(--card));}}

/* Dawn Maritime v0.8.90 — long-form brand wordmark. */
.fleet-identity{min-width:0}.fleet-topbar .brand-name{letter-spacing:.15px}.fleet-auth-logo{white-space:nowrap}
@media(max-width:700px){.fleet-topbar .brand{font-size:16px}.fleet-topbar .brand-anchor{font-size:18px}}
