@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&family=Inter:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--bg:#161616;--panel:#222222;--line:#3a3a3a;--text:#eeeeee;--muted:#a0a0a0;--accent:#e2e2e2;--silver:#d4d4d4;--secondary:#bcbcbc;--mono:'IBM Plex Mono',monospace}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px Inter,Arial,sans-serif;background-image:radial-gradient(ellipse at 70% 0,#30303040,transparent 65%)}[hidden]{display:none!important}button,input,a{font:inherit}button,a{transition:background .15s,color .15s}button{border:1px solid var(--line);background:transparent;color:var(--text);padding:9px 13px;cursor:pointer;font:11px var(--mono);letter-spacing:.7px}button:hover{background:#363636;color:white}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}button:disabled{opacity:.3;cursor:default}a{color:var(--accent)}header{height:88px;display:flex;align-items:center;gap:40px;padding:0 38px;border-bottom:1px solid var(--line);background:#1b1b1bf0}.brand{display:flex;gap:14px;align-items:center;letter-spacing:4px;font-size:17px;font-weight:600;white-space:nowrap}.brand-mark{display:block;width:40px;height:40px;object-fit:contain;flex-shrink:0}.brand div span{display:block;font:9px var(--mono);letter-spacing:3.8px;color:var(--muted);margin-top:7px}nav{display:flex;height:100%;gap:26px}.nav{border:0;border-bottom:2px solid transparent;padding:0 5px;color:var(--muted)}.nav.active{border-color:var(--silver);color:var(--silver)}.header-end{margin-left:auto;display:flex;align-items:center;gap:22px;font:11px var(--mono);color:var(--muted)}main{padding:32px 38px 12px;max-width:1900px;margin:auto}.page-title{display:flex;align-items:center;justify-content:flex-end;margin-bottom:27px}.eyebrow{font:10px var(--mono);letter-spacing:2px;color:var(--silver)}h1{font-family:'Barlow Condensed',Inter,sans-serif;font-weight:500;font-size:38px;margin:8px 0 0;letter-spacing:.7px}.connection{font:10px var(--mono);color:var(--accent);letter-spacing:1px;border:1px solid #555555;border-radius:20px;padding:8px 13px}.connection:before{content:'●';margin-right:8px}.connection.error{color:#e6b980;border-color:#94744b}.metrics{margin-bottom:22px;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.metrics article{background:linear-gradient(115deg,#292929,#202020);border:1px solid var(--line);border-top:2px solid var(--silver);padding:20px 24px 15px;position:relative;overflow:hidden}.metrics article:nth-child(2){border-top-color:var(--secondary)}.metrics article:nth-child(3){border-top-color:var(--accent)}.metrics article:after{content:'';position:absolute;width:140px;height:140px;border:1px solid #ffffff08;transform:rotate(35deg);right:-50px;top:40px}.metric-label{font:11px var(--mono);letter-spacing:1.2px;color:#c6c6c6}.metric-label>span{color:var(--muted);margin-right:14px}.metric-value{display:flex;align-items:baseline;gap:13px;margin:10px 0 15px}.metric-value strong{font:500 clamp(34px,3.9vw,62px) 'Barlow Condensed',sans-serif;letter-spacing:1px;font-variant-numeric:tabular-nums}.metric-value>span{font:12px var(--mono);color:var(--silver)}article:nth-child(2) .metric-value>span{color:var(--secondary)}article:nth-child(3) .metric-value>span{color:var(--accent)}.metric-foot{border-top:1px solid #ffffff0a;padding-top:12px;color:var(--muted);font:9px var(--mono);letter-spacing:1.4px;display:flex;justify-content:space-between}.metric-foot span{font-size:15px}.baseline-note{font:10px var(--mono);color:var(--muted);padding:12px 0 22px}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 345px;gap:18px}.map-panel,.fleet-panel,.detail,#ledger{border:1px solid var(--line);background:var(--panel)}.panel-heading{height:51px;display:flex;justify-content:space-between;align-items:center;padding:0 18px;border-bottom:1px solid var(--line);font:11px var(--mono);letter-spacing:1px}.panel-heading button{border:0;color:var(--muted);padding:6px}.live-dot{display:inline-block;background:var(--accent);box-shadow:0 0 12px #ffffff20;width:6px;height:6px;border-radius:50%;margin-right:9px}.muted{color:var(--muted)}#map{height:480px;position:relative;background:radial-gradient(ellipse at center,#292929,#181818);background-image:linear-gradient(#88888818 1px,transparent 1px),linear-gradient(90deg,#88888818 1px,transparent 1px);background-size:60px 60px}#map-message{position:absolute;top:45%;left:10%;width:80%;text-align:center;font:12px var(--mono);color:var(--muted);z-index:2;pointer-events:none}.map-footer{display:flex;justify-content:flex-end;padding:12px 16px;font:9px var(--mono);color:var(--secondary);letter-spacing:.3px}.map-footer>span:last-child{color:var(--muted)}.search{margin:16px 16px 12px;display:flex;gap:10px;align-items:center;border:1px solid var(--line);padding:10px 12px;background:#191919}.search>span{font-size:20px;color:var(--muted)}input{background:transparent;border:0;color:var(--text);min-width:0;outline:0}.search input{width:100%;font-size:12px}input::placeholder{color:#949494}.filters{display:flex;gap:7px;padding:0 16px 12px}.filters button{font-size:9px;padding:6px 12px;border-radius:3px;color:var(--muted)}.filters .selected{background:#ffffff14;border-color:#ffffff50;color:var(--accent)}.boat-list{overflow:auto;height:342px}.boat-row{display:block;width:100%;padding:18px;border-width:1px 0 0;text-align:left;background:transparent}.boat-row.selected{background:#ffffff08;border-left:3px solid var(--accent);padding-left:15px}.boat-top{display:flex;align-items:center;justify-content:space-between}.hull{font:600 23px 'Barlow Condensed',sans-serif;letter-spacing:.7px}.tag{font:9px var(--mono);border:1px solid #555555;padding:4px 6px;border-radius:3px;color:var(--accent)}.tag.stale{color:var(--muted);border-color:var(--line)}.boat-meta{font:10px var(--mono);color:var(--muted);margin-top:9px;line-height:1.8}.boat-status{display:flex;gap:14px;font:10px var(--mono);margin-top:9px}.battery-bar{height:3px;background:#3c3c3c;margin-top:12px}.battery-bar span{height:100%;display:block;background:var(--accent)}.versions-health{border-top:1px solid var(--line);padding:11px 16px;color:var(--muted);font:9px var(--mono);line-height:1.5}.detail{margin-top:18px}.detail .panel-heading{color:var(--silver)}#detail-body{display:grid;grid-template-columns:220px 1fr 1fr;gap:28px;padding:24px}.vessel-card{background:radial-gradient(ellipse at center,#66666625,transparent 70%);display:flex;align-items:center;justify-content:center;gap:25px}.vessel-card img{height:170px;image-rendering:auto;filter:drop-shadow(0 0 16px #dddddd20)}.vessel-card strong{font:500 46px 'Barlow Condensed',sans-serif}.vessel-card small{display:block;font:10px var(--mono);color:var(--muted);margin-top:6px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}dt{font:9px var(--mono);color:var(--muted);letter-spacing:.8px;margin-bottom:6px}dd{margin:0;font:14px var(--mono)}.detail h3{font:11px var(--mono);color:var(--secondary);margin:0 0 18px}#query{display:flex;gap:20px;align-items:end;padding:20px;flex-wrap:wrap}#query label{font:10px var(--mono);color:var(--muted)}#query input{display:block;border:1px solid var(--line);padding:10px;margin-top:8px;font:12px var(--mono);width:160px}.primary{display:inline-flex;justify-content:space-between;gap:25px;align-items:center;background:var(--silver);color:#181818;border:0;padding:13px 18px;text-decoration:none;font:12px var(--mono)}.primary:hover{background:#f0f0f0;color:#161616}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;font:12px var(--mono)}th,td{padding:17px 22px;text-align:right;border-bottom:1px solid var(--line)}th{font-size:9px;letter-spacing:.7px;color:var(--muted);background:#1c1c1c}th:first-child,td:first-child{text-align:left}td:first-child{color:var(--accent)}tbody tr:hover{background:#2b2b2b}.pagination{padding:18px;display:flex;justify-content:space-between;align-items:center;color:var(--muted);font:10px var(--mono)}footer{display:flex;justify-content:flex-end;padding:23px 0 8px;font:9px var(--mono);letter-spacing:1px;color:var(--muted)}.login{height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#292929,#161616 65%)}.login-card{max-width:560px;padding:45px;border:1px solid var(--line);border-top:3px solid var(--silver);background:#202020}.login h1{font-size:58px}.login p{color:var(--muted);line-height:1.9;margin:22px 0 30px}.login .primary{width:100%}.login .muted{font:10px var(--mono);margin-bottom:0}.orbital{font-size:80px;color:var(--accent);margin-top:20px}.contact{width:12px;height:12px;border:2px solid #e2e2e2;border-radius:50%;background:#303030;cursor:pointer;box-shadow:0 0 0 6px #ffffff12}.contact.stale{border-color:#929292;background:#343434}.contact-label{position:absolute;left:16px;top:-6px;font:10px var(--mono);background:#202020e8;padding:3px 5px;white-space:nowrap;color:var(--text)}.empty{padding:28px 20px;color:var(--muted);line-height:1.7;font:12px var(--mono)}.danger{color:#f58e7b}.mapboxgl-ctrl-logo{opacity:.65}@media(max-width:1100px){header{padding:0 20px;gap:20px}main{padding:24px 20px}.header-end #utc-clock{display:none}.workspace{grid-template-columns:minmax(0,1fr) 280px}.metric-value strong{font-size:46px}.map-footer{font-size:8px}#detail-body{grid-template-columns:140px 1fr 1fr;gap:18px}.vessel-card{gap:12px}}@media(max-width:760px){header{height:auto;min-height:90px;flex-wrap:wrap;padding:15px 18px;gap:15px}.brand{font-size:13px}.header-end{margin-left:auto}.header-end button{font-size:9px}nav{order:3;width:100%;height:32px}.nav{font-size:10px}main{padding:24px 14px}.page-title h1{font-size:30px}.page-title .eyebrow{font-size:8px;letter-spacing:1px}.connection{font-size:8px;padding:7px}.metrics{gap:8px}.metrics article{padding:12px}.metric-label{font-size:8px;letter-spacing:0}.metric-label>span{display:none}.metric-value{gap:5px;flex-wrap:wrap}.metric-value strong{font-size:34px}.metric-value>span{font-size:9px}.metric-foot{font-size:7px;letter-spacing:0}.workspace{display:flex;flex-direction:column}#map{height:370px}.boat-list{height:auto;max-height:350px}#detail-body{grid-template-columns:1fr}.vessel-card{min-height:150px}.vessel-card img{height:120px}.baseline-note{font-size:8px;line-height:1.6}.map-footer>span:last-child{display:none}footer{line-height:1.8;font-size:8px;gap:15px}.login-card{margin:16px;padding:28px}.login h1{font-size:46px}}

.contact{padding:0;min-width:12px}.contact.close{width:24px;height:24px;border-color:transparent;background:transparent;box-shadow:none}.contact.close .contact-label{top:28px;left:20px}
@media(max-width:500px){.metrics{grid-template-columns:1fr;gap:9px}.metrics article{display:grid;grid-template-columns:1fr auto;align-items:center;padding:14px 16px}.metric-label{font-size:10px;letter-spacing:.6px;max-width:120px;line-height:1.6}.metric-value{margin:0;flex-wrap:nowrap;gap:8px}.metric-value strong{font-size:38px}.metric-foot{display:none}.metric-value>span{font-size:10px}.page-title{gap:12px}.detail-grid dd{overflow-wrap:anywhere}}

.fleet-panel{min-width:0;align-self:start}
.fleet-panel .detail{margin:0;border:0}
.fleet-panel .detail .panel-heading{gap:12px;font-size:10px}
.fleet-panel #detail-body{display:flex;flex-direction:column;gap:24px;padding:18px;max-height:515px;overflow-y:auto}
.fleet-panel .vessel-card{min-height:110px;justify-content:flex-start;gap:22px}
.fleet-panel .vessel-card img{height:110px}
.fleet-panel .vessel-card strong{font-size:36px}
.fleet-panel .detail-grid{gap:16px 12px;margin-bottom:0}
.fleet-panel .detail-grid>div{min-width:0}
.fleet-panel .detail-grid dd{font-size:12px;overflow-wrap:anywhere}
.fleet-panel #detail-ledger{margin-top:12px}
@media(max-width:760px){.fleet-panel{align-self:stretch}.fleet-panel #detail-body{max-height:none}}

@media(min-width:761px){
 #app{min-height:100dvh;display:flex;flex-direction:column}
 #app>header{flex-shrink:0}
 #app>main{width:100%;flex:1;display:flex;flex-direction:column}
 #operations{flex:1;display:flex;flex-direction:column}
 .workspace{flex:1}
 .map-panel{display:flex;flex-direction:column;min-width:0}
 .map-panel>.panel-heading,.map-footer{flex-shrink:0}
 #map{flex:1;min-height:480px}
}

.map-actions{display:flex;align-items:center;gap:10px;white-space:nowrap}
.map-expanded-open{overflow:hidden}
.workspace.map-expanded{position:fixed;inset:0;z-index:1000;display:block}
.workspace.map-transition{position:relative;z-index:1000}
.workspace.map-expanded.map-transition{position:fixed}
.map-transition>.map-panel,.map-transition>.fleet-panel{transform-origin:top left;will-change:transform}
.map-expanded>.map-panel{width:100%;height:100%;display:flex;flex-direction:column;border:0}
.map-expanded #map{flex:1;height:auto;min-height:0}
.map-expanded .map-panel>.panel-heading{flex-shrink:0;background:#1b1b1bf0}
.map-expanded .map-footer{flex-shrink:0}
.map-expanded>.fleet-panel{position:absolute;right:24px;top:75px;width:345px;max-height:calc(100dvh - 125px);overflow-y:auto;background:#222222ed;backdrop-filter:blur(16px);box-shadow:0 16px 48px #0008}
.map-expanded .fleet-panel #detail-body{max-height:none}
.map-expanded .maplibregl-ctrl-top-right{right:auto;left:0}
@media(max-width:760px){
 .map-panel>.panel-heading{padding:0 12px;font-size:9px;gap:8px}
 .map-actions{gap:4px}.map-actions button{font-size:9px;padding:6px}
 .map-expanded>.fleet-panel{right:12px;top:auto;bottom:46px;width:min(300px,calc(100vw - 24px));max-height:42dvh}
 .map-expanded .boat-list{max-height:none}
}

#notifications{border:1px solid var(--line);background:var(--panel);min-width:0}
.push-settings{padding:22px;display:flex;gap:24px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}
.push-settings h2{font:500 23px 'Barlow Condensed',sans-serif;margin:0 0 10px}
.push-settings p{color:var(--muted);font-size:12px;line-height:1.6;max-width:760px;margin:5px 0}
.push-settings button{flex-shrink:0}
.report-card{padding:22px;border-bottom:1px solid var(--line)}
.report-selected{background:#ffffff06;border-left:2px solid var(--accent)}
.report-heading{display:flex;justify-content:space-between;gap:16px;font:12px var(--mono)}
.report-heading a{text-decoration:none}.report-heading span{color:var(--muted);font-size:10px}
.report-card p{line-height:1.7}.report-card details{margin-top:18px}
.report-card summary{cursor:pointer;font:10px var(--mono);color:var(--muted)}
#notification-error{padding:0 22px}#older-notifications{margin:18px 22px}
@media(max-width:1100px){header{gap:16px}nav{gap:14px}.header-end{gap:12px}.nav{font-size:10px}}
@media(max-width:760px){.push-settings{flex-direction:column;align-items:stretch;padding:18px}.report-heading{flex-direction:column}.report-card{padding:18px}nav{justify-content:space-between;gap:4px}.nav{font-size:9px}}


.service-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#e9c85b;vertical-align:middle;margin-left:5px;box-shadow:0 0 7px #e9c85b30}.service-due-label{color:#e9c85b;white-space:nowrap}
#maintenance{border:1px solid var(--line);background:var(--panel);min-width:0}#maintenance small{display:block;color:var(--muted);font-size:10px;line-height:1.5;margin-top:5px;white-space:pre-wrap;max-width:440px}#maintenance td{vertical-align:top}#maintenance td:nth-child(2),#maintenance th:nth-child(2){text-align:left}.maintenance-filters{display:flex;align-items:end;flex-wrap:wrap;gap:18px;padding:20px}.maintenance-filters label,dialog label{display:flex;flex-direction:column;gap:8px;font:10px var(--mono);color:var(--muted)}.maintenance-filters select,dialog select,dialog input,dialog textarea{background:#191919;border:1px solid var(--line);color:var(--text);padding:10px;font:12px var(--mono);min-width:150px}.maintenance-filters .maintenance-check{flex-direction:row;align-items:center;padding:10px 0}.maintenance-section{padding:20px;border-top:1px solid var(--line)}.maintenance-section summary{cursor:pointer;font:11px var(--mono);margin-bottom:14px}.maintenance-note{font:11px var(--mono);color:var(--muted);line-height:1.7;padding:0 20px}#maintenance-error{padding:0 20px}dialog{color:var(--text);background:var(--panel);border:1px solid var(--line);width:min(560px,calc(100vw - 32px));max-height:90vh;padding:24px}dialog::backdrop{background:#0009}dialog form{display:grid;gap:16px}dialog h2{font-size:18px;margin:0}dialog .maintenance-note{padding:0;margin:0}dialog select,dialog input,dialog textarea{width:100%;min-width:0}dialog textarea{resize:vertical}.maintenance-dialog-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}#detail-maintenance{margin-top:10px}
@media(min-width:761px){header{gap:24px}nav{gap:18px}.header-end{gap:14px}}
@media(max-width:1250px){.header-end #utc-clock{display:none}header{gap:16px}nav{gap:10px}.nav{font-size:10px}.brand{font-size:14px;letter-spacing:2px}.header-end{gap:8px}}
@media(max-width:760px){nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));height:auto;gap:0 12px}.nav{font-size:9px;padding:10px 5px}#maintenance-count{font-size:9px}.maintenance-filters{gap:12px}.maintenance-filters select{min-width:130px}}

@media(min-width:761px){
 .workspace:not(.map-expanded)>.fleet-panel{position:relative;align-self:stretch;display:flex;flex-direction:column;min-height:0}
 .workspace:not(.map-expanded) .fleet-panel>#directory,.workspace:not(.map-expanded) .fleet-panel>#detail{position:absolute;inset:0;display:flex;flex-direction:column;flex:1;min-height:0}
 .workspace:not(.map-expanded) .fleet-panel .boat-list,.workspace:not(.map-expanded) .fleet-panel #detail-body{flex:1;height:0;min-height:0;max-height:none}
 .workspace:not(.map-expanded) .fleet-panel .panel-heading,.workspace:not(.map-expanded) .fleet-panel .search,.workspace:not(.map-expanded) .fleet-panel .filters,.workspace:not(.map-expanded) .fleet-panel .versions-health{flex-shrink:0}
}
