
:root{--bg:#0b1822;--panel:#132b39;--line:#31576b;--text:#f1f7f9;--muted:#a9bfca;--blue:#197da9;--cyan:#39b8e8;--red:#d95058;--yellow:#e2aa31;--green:#29aa68}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top right,#15516b 0,var(--bg) 45rem);color:var(--text);font:16px Arial,sans-serif;line-height:1.45}.wrap{width:min(100% - 32px,1180px);margin:auto;padding:18px 0 60px}.topnav{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 30px}.topnav a{padding:8px 10px;color:#d6e7ed;background:#132a38;border:1px solid var(--line);border-radius:8px;text-decoration:none;font-size:12px;font-weight:bold}.topnav a:hover,.topnav a.active{color:#fff;background:#176d91}.eyebrow{margin:0 0 6px;color:#8cd3ef;text-transform:uppercase;letter-spacing:.14em;font-size:11px;font-weight:800}h1{margin:0;font-size:clamp(32px,5vw,48px);line-height:1.05}.sub{margin:10px 0 23px;color:var(--muted);font-size:16px}.panel{padding:20px;background:rgba(19,43,57,.95);border:1px solid var(--line);border-radius:18px;box-shadow:0 18px 45px rgba(0,0,0,.17)}#fleet-map{height:min(62vh,580px);min-height:370px;border-radius:12px;overflow:hidden;background:#0c202b}.legend{display:flex;flex-wrap:wrap;gap:16px;margin:13px 0;color:var(--muted);font-size:13px}.dot{display:inline-block;width:10px;height:10px;margin-right:4px;border-radius:50%}.stopped{background:var(--red)}.slow{background:var(--yellow)}.moving{background:var(--green)}.missing{background:#81919a}.status{margin:0 0 15px;color:var(--muted);font-size:13px}.regions{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:11px}.region{padding:12px;background:#0f2330;border:1px solid rgba(49,87,107,.75);border-radius:12px}.region h2{margin:0 0 7px;color:#c3e8f6;font-size:14px}.region h2 small{color:var(--muted);font-weight:normal}.boat{display:flex;gap:8px;padding:8px 0;border-top:1px solid rgba(49,87,107,.65);cursor:pointer}.boat:first-of-type{border-top:0}.boat:hover strong{text-decoration:underline}.boat i{display:block;flex:0 0 10px;width:10px;height:10px;margin-top:5px;border-radius:50%}.boat strong,.boat small{display:block}.boat strong{font-size:13px}.boat small{color:var(--muted);font-size:11px}.leaflet-div-icon,.vessel-marker{background:transparent!important;border:0!important}.vessel-marker{width:220px!important;height:32px!important;margin:0!important;overflow:visible!important}.ship-label{display:inline-flex!important;align-items:center;gap:5px;min-width:max-content;padding:3px 7px 3px 3px;background:rgba(255,255,255,.97);border:1px solid rgba(16,48,63,.38);border-radius:8px;box-shadow:0 2px 6px rgba(0,0,0,.6);color:#0a1b25;font:700 12px Arial}.ship-label .dot{display:inline-block!important;flex:0 0 14px;width:14px;height:14px;margin:0;border:2px solid #fff}.ship-name{max-width:150px;overflow:hidden;text-overflow:ellipsis}.fish-mark{width:17px;height:14px;fill:#1679a4;stroke:#0a4561;stroke-width:.8}.leaflet-popup-content{color:#112630;line-height:1.45}@media(max-width:650px){.wrap{width:min(100% - 22px,1180px);padding-top:12px}.topnav{margin-bottom:20px}.topnav a{padding:7px 8px;font-size:11px}#fleet-map{height:420px;min-height:0}.panel{padding:13px}.regions{grid-template-columns:1fr}.legend{gap:10px;font-size:12px}}
.vessel-marker{width:16px!important;height:16px!important;margin-left:-8px!important;margin-top:-8px!important}.position-dot{position:absolute;left:0;top:0;width:16px;height:16px;border:2px solid white;border-radius:50%;box-shadow:0 1px 5px #123}.vessel-marker .ship-label{position:absolute;left:23px;top:8px;transform:translateY(-50%);padding:3px 7px;white-space:nowrap}.ship-name{max-width:none}

.fleet-controls{display:flex;align-items:end;flex-wrap:wrap;gap:10px;margin:16px 0}.fleet-controls label{display:grid;gap:4px;font-size:13px}.fleet-controls select,.fleet-controls button{min-height:42px;border:1px solid #477286;border-radius:8px;background:#132b39;color:#f1f7f9;padding:8px 12px;font:inherit}.coverage{font-size:13px;color:#b8cdd6;margin:0 0 18px}.coverage summary{cursor:pointer}.coverage p{max-width:850px}.boat-name{display:block;background:none;border:0;padding:0;color:inherit;font:700 13px Arial;text-align:left;cursor:pointer}.boat-name:disabled{cursor:default;opacity:1}.boat-name:hover{text-decoration:underline}.external{font-size:11px;color:#88d3f1}.topnav{margin-bottom:18px}h1{font-size:32px}@media(max-width:650px){.wrap{width:calc(100% - 16px)}.panel{padding:8px}h1{font-size:27px}#fleet-map{height:56svh;min-height:310px}.fleet-controls select{max-width:230px}}

.fleet-controls{align-items:center}.company-picker{flex:1;min-width:0;margin:0;padding:0;border:0}.company-picker legend{padding:0;margin-bottom:6px;color:var(--muted);font-size:13px}.company-options{display:flex;flex-wrap:wrap;gap:6px}.fleet-controls .company-choice{display:flex;align-items:center;gap:7px;min-height:38px;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:#132b39;color:var(--text);cursor:pointer;font-size:13px}.company-choice:has(input:checked){border-color:#46bce7;background:#16465b}.company-choice:focus-within{outline:2px solid #8cd3ef;outline-offset:2px}.company-choice input{width:16px;height:16px;margin:0;accent-color:#20a6d7;cursor:pointer}.company-all{font-weight:bold}.fleet-controls button:disabled{opacity:.5;cursor:default}@media(max-width:650px){.fleet-controls{gap:8px}.company-picker{flex-basis:100%}.fleet-controls .company-choice{font-size:12px;min-height:36px;padding:6px 8px}.fleet-controls button{min-height:36px;font-size:12px;padding:6px 10px}}

.fleet-name-layer{position:absolute;top:0;left:0;pointer-events:none}.fleet-name-lines{position:absolute;inset:0;overflow:visible;pointer-events:none}.fleet-name-leader{stroke:#18323e;stroke-width:1;stroke-opacity:.6}.fleet-name-highlight{stroke:#0087bb;stroke-width:2;fill:none;pointer-events:none}.fleet-vessel-name{position:absolute;display:block;width:max-content;max-width:none;height:20px;padding:0 2px;border:0;border-radius:0;box-shadow:none;background:none;color:white;font:800 13px/20px Arial,sans-serif;white-space:nowrap;-webkit-text-stroke:2px #111;paint-order:stroke fill;text-shadow:0 1px 2px #0008;pointer-events:auto;cursor:pointer}.fleet-vessel-name:focus-visible{outline:1px dashed #0087bb;outline-offset:2px}.fleet-vessel-name:hover,.fleet-vessel-name.fleet-name-active{color:#c5f3ff;z-index:2}

/* Stable map navigation and compact, readable overview. */
.map-toolbar,.map-views{display:flex;align-items:center;flex-wrap:wrap;gap:7px}.map-toolbar{justify-content:space-between;margin-bottom:10px;min-height:36px}.map-toolbar button{min-height:36px;padding:7px 11px;border:1px solid #477286;border-radius:8px;background:#132b39;color:var(--text);font:600 12px Arial;cursor:pointer}.map-toolbar button:hover{background:#19516a}.map-toolbar button:focus-visible{outline:2px solid #8cd3ef;outline-offset:2px}.map-toolbar button:disabled{opacity:.5;cursor:default}.map-toolbar button[hidden]{display:none}.map-caption{display:flex;justify-content:space-between;flex-wrap:wrap;gap:3px 12px;margin:8px 0;color:var(--muted);font-size:12px}.status:empty{display:none}#fleet-map{background:#abd3df;isolation:isolate}.fleet-name-layer{contain:layout style}.fleet-vessel-name{max-width:calc(100% - 6px);overflow:hidden;text-overflow:ellipsis}.leaflet-container{font-family:Arial,sans-serif}.leaflet-popup-content{max-width:min(270px,60vw)}
.leaflet-popup-content{max-height:230px;overflow-y:auto}
@media(max-width:650px){.map-toolbar{gap:6px}.map-toolbar button{min-height:38px;padding:7px 9px}.map-caption{font-size:11px}#fleet-map{height:58svh;min-height:360px}.fleet-vessel-name{font-size:12px}}

.facility-mark{position:absolute;left:18px;top:-3px;display:grid;place-items:center;width:27px;height:22px;border:1px solid #fff;border-radius:6px;background:#0c6275;box-shadow:0 1px 4px #1239}.facility-mark .fish-mark,.facility-legend .fish-mark{display:block;width:23px;height:17px;fill:#ecfcff;stroke:#ecfcff;stroke-width:.7}.fish-mark .fish-eye{fill:#0c6275;stroke:none}.facility-legend{display:inline-flex;align-items:center;gap:5px}.facility-legend .fish-mark{padding:1px;border-radius:4px;background:#0c6275}.health-result{margin:10px 0;font-size:12px}.health-result small{display:inline-block;margin:3px 0 5px;color:#50626a;font-size:11px}.ais-popup-details{font-size:11px}.ais-popup-details summary{cursor:pointer;color:#0c6275}
