/* Nexus Fleet section explorer. Deliberately scoped; approved Orbit palette. */
.nfv { --nv-ink:#122e34; --nv-muted:#58716e; --nv-paper:#f4f6f2; --nv-card:#fff; --nv-line:#dce5de; --nv-mint:#00c3a9; --nv-tint:#e5f6ef; --nv-amber:#f1aa3e; color:var(--nv-ink); font:15px/1.45 Inter,system-ui,sans-serif; }
.nfv *, .nfv *::before, .nfv *::after {box-sizing:border-box;}
.nfv [hidden] {display:none!important;}
.nfv-heading {display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 18px;}
.nfv-eyebrow {font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.13em;color:var(--nv-muted);}
.nfv h3 {font-size:27px;letter-spacing:-.035em;line-height:1.2;font-weight:650;margin:4px 0 0;}
.nfv-caption {font-size:12px;color:var(--nv-muted);}
.nfv-layout {display:grid;grid-template-columns:minmax(285px,.9fr) minmax(0,1.15fr);gap:24px;align-items:start;}
.nfv-overview {background:var(--nv-paper);border:1px solid var(--nv-line);border-radius:24px;padding:12px;min-width:0;}
.nfv-canvas {position:relative;border-radius:18px;padding:27px 0 25px;}
.nfv-model-stage {position:relative;height:360px;}
.nfv-vehicle {display:block;width:210px;height:360px;max-width:100%;margin:0 auto;}
.nfv-front {position:absolute;top:7px;left:0;right:0;text-align:center;font-size:11px;font-weight:700;letter-spacing:.13em;color:var(--nv-muted);}
.nfv-drawing-caption {position:absolute;bottom:3px;left:0;right:0;text-align:center;font-size:11px;color:var(--nv-muted);}
.nfv-hotspot {appearance:none;display:grid;grid-template-columns:8px minmax(0,1fr);gap:0 7px;align-items:center;text-align:left;min-height:54px;border:1px solid var(--nv-line);border-radius:12px;padding:10px 11px;background:var(--nv-card);font:inherit;color:var(--nv-ink);cursor:pointer;transition:background .15s,border-color .15s;}
.nfv-hotspot span:not(.nfv-indicator) {font-size:12px;line-height:1.25;font-weight:650;}
.nfv-hotspot small {grid-column:2;font-size:11px;color:var(--nv-muted);line-height:1.3;margin-top:3px;}
.nfv-hotspot:hover {border-color:#86aea0;}
.nfv-hotspot[aria-pressed="true"] {background:var(--nv-ink);border-color:var(--nv-ink);color:#f4f6f2;}
.nfv-hotspot[aria-pressed="true"] small {color:#c8dcd3;}
.nfv-hotspot:focus-visible {outline:3px solid #00a990;outline-offset:3px;}
.nfv-indicator {height:7px;width:7px;border-radius:50%;background:#a1b0aa;}
.nfv-due .nfv-indicator,.nfv-check .nfv-indicator {background:var(--nv-amber);}
.nfv-within .nfv-indicator {background:var(--nv-mint);}
.nfv-hotspots .nfv-hotspot {position:absolute;width:106px;box-shadow:0 4px 12px #102a2e0a;padding:10px 8px;}
.nfv-at-lf,.nfv-at-rf {top:var(--nv-front-axle);transform:translateY(-50%)}.nfv-at-lr,.nfv-at-rr {top:var(--nv-rear-axle);transform:translateY(-50%)}.nfv-at-lf,.nfv-at-lr{left:2px}.nfv-at-rf,.nfv-at-rr{right:2px}
/* Tandem axles are close: place labels outside the axle gap so wrapped
   status text cannot overlap its neighbour. Keep the wheel geometry intact. */
.nfv-model-stage:has([data-vehicle-model="trailer"]) :is(.nfv-at-lf,.nfv-at-rf) {transform:translateY(-100%);}
.nfv-model-stage:has([data-vehicle-model="trailer"]) :is(.nfv-at-lr,.nfv-at-rr) {transform:none;}
.nfv-systems {display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:7px;}
.nfv-systems .nfv-hotspot:first-child {grid-column:1/-1;}
.nfv-inspector {min-width:0;}
.nfv-inspector-head {display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:57px;margin-bottom:15px;}
.nfv h4 {font-size:21px;font-weight:650;letter-spacing:-.025em;margin:3px 0 0;}
.nfv-result-count {white-space:nowrap;background:var(--nv-paper);border:1px solid var(--nv-line);font-size:11px;padding:5px 10px;border-radius:30px;color:var(--nv-muted);}
.nfv-controls {display:flex;align-items:flex-end;flex-wrap:wrap;gap:12px;margin-bottom:15px;}
.nfv-search-label {font-size:11px;font-weight:600;flex:1 1 190px;color:var(--nv-muted);}
.nfv-search-label input {display:block;width:100%;line-height:1.3;font-family:inherit;font-size:16px;color:var(--nv-ink);background:var(--nv-card);border:1px solid var(--nv-line);border-radius:11px;min-height:48px;padding:10px 12px;margin-top:5px;}
.nfv-attention {display:flex;align-items:center;gap:7px;font-size:12px;min-height:48px;cursor:pointer;}
.nfv-attention input {width:17px;height:17px;accent-color:#137e6e;}
.nfv [data-nfv-results] {display:flex;flex-direction:column;gap:12px;}
.nfv-empty {padding:30px 20px;border:1px dashed var(--nv-line);border-radius:16px;color:var(--nv-muted);font-size:13px;}
.nfv-empty strong {color:var(--nv-ink);display:block;font-size:15px;}.nfv-empty p {margin:7px 0 0;}
.nfv-clear {appearance:none;margin-top:15px;min-width:48px;min-height:48px;padding:10px 16px;border:1px solid var(--nv-line);border-radius:11px;background:var(--nv-card);color:var(--nv-ink);font:inherit;font-size:13px;font-weight:650;cursor:pointer;}
.nfv-clear:focus-visible,.nfv-search-label input:focus-visible,.nfv-attention input:focus-visible {outline:3px solid #00a990;outline-offset:3px;}
.nfv-live {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;}
@media(max-width:760px){.nfv-layout{grid-template-columns:1fr;gap:22px}.nfv-overview{display:grid;grid-template-columns:minmax(0,1fr) minmax(135px,.6fr);gap:10px}.nfv-systems{grid-template-columns:1fr;align-content:start;margin-top:0}.nfv-systems .nfv-hotspot:first-child{grid-column:auto}.nfv-hotspots .nfv-hotspot{width:90px;padding:9px 6px}.nfv-hotspot span:not(.nfv-indicator){font-size:11px}}
@media(max-width:520px){.nfv-overview{display:block;padding:10px}.nfv-systems{grid-template-columns:1fr 1fr}.nfv-systems .nfv-hotspot:first-child{grid-column:1/-1}.nfv-model-stage{height:330px}.nfv-vehicle{height:330px;width:192.5px}.nfv-hotspots .nfv-hotspot{width:94px}.nfv-caption{max-width:95px;text-align:right}.nfv h3{font-size:24px}.nfv-hotspot span:not(.nfv-indicator){font-size:12px}.nfv-heading{margin-bottom:14px}}
@media(prefers-reduced-motion:reduce){.nfv *{transition:none!important;}}
