:root{color-scheme:dark}body{margin:0;background:#081e24;color:#f4f6f2;padding:20px;font-family:system-ui,sans-serif}#tablet-preview{max-width:1360px;margin:auto}.simulation-intro{max-width:1360px;margin:0 auto 22px;display:flex;justify-content:space-between;gap:16px;align-items:center;font-size:13px;color:#9fbbb6}.simulation-intro a{color:#c5ded8;text-decoration:none;min-height:48px;display:flex;align-items:center}.simulation-footnote{max-width:1200px;margin:18px auto;font-size:12px;line-height:1.6;color:#9fbbb6;text-align:center}.nft-demo-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:14px;padding:16px 20px;border:1px solid #304b4f;border-radius:18px;background:#102c32;color:#c4dad4;font-size:12px}.nft-demo-toolbar>span>b{font-size:12px;letter-spacing:.15em;display:block;color:#f4f6f2}.nft-demo-toolbar small{display:block;margin-top:5px;color:#a6bbb7}.nft-demo-toolbar>div{display:flex;flex-wrap:wrap;gap:8px}.nft-demo-toolbar button{min-height:48px;min-width:48px;padding:10px 16px;border-radius:10px;border:1px solid #48665f;background:#1a3a3e;color:#f4f6f2;font:inherit;cursor:pointer}.nft-demo-toolbar button[aria-pressed=true]{background:#00c3a9;color:#062d29;border-color:#00c3a9}.nft-demo-toolbar button:focus-visible,.nft-demo-toolbar input:focus-visible{outline:3px solid #f1aa3e;outline-offset:3px}.nft-sim-controls{flex-basis:100%;align-items:center;border-top:1px solid #304b4f;padding-top:12px}.nft-sim-controls label{display:flex;align-items:center;gap:12px;margin-left:auto}.nft-sim-controls input{accent-color:#00c3a9;width:130px;min-height:38px}.nft-sim-controls output{min-width:48px;font-variant-numeric:tabular-nums}#tablet-preview:fullscreen{padding:12px;box-sizing:border-box;background:#081e24;overflow:auto;max-width:none}.nft-drive{height:390px}.nft-inspect{min-height:390px}.nft-inspect-model .nft-model{min-height:250px}.nft-brand .fleet-original-brand{margin-right:6px}.nft-component-list{max-height:290px;overflow:auto;scrollbar-color:#57766b #18383b}.nft .nft-component summary{min-height:64px}.nft .nft-footer button{min-height:60px}.nft-demo-toolbar [data-tour][aria-pressed=true]::after{content:' · ON'}
@media(min-width:1000px){.nft .nft-footer button{min-height:76px;min-width:76px}.nft-footer nav{gap:23px}.nft-drive{grid-template-columns:.85fr 1.2fr 1fr}.nft-speed b{font-size:160px}.nft-speed span{font-size:24px}.nft-speed-panel>p{font-size:16px;max-width:210px}.nft-runtime .nft-eyebrow{font-size:13px}.nft-runtime strong{font-size:30px}}
@media(max-width:800px){body{padding:10px}.simulation-intro{margin-bottom:8px}.simulation-intro>span{display:none}.nft-demo-toolbar{padding:12px}.nft-sim-controls label{margin-left:0}.nft-drive{height:310px}}
@media(max-width:679px){.nft-drive{height:auto}.nft-sim-controls{gap:7px!important}.nft-demo-toolbar button{padding:10px 12px}.nft-sim-controls label{width:100%;justify-content:space-between}.nft-inspect{min-height:0}}
@media(min-width:680px) and (max-height:550px){body{padding:8px}.simulation-intro,.simulation-footnote{display:none}.nft-demo-toolbar{padding:8px 12px;margin-bottom:8px;gap:6px}.nft-demo-toolbar>span{display:none}.nft-sim-controls{flex-basis:auto;border:0;padding:0}.nft-sim-controls label,[data-fullscreen]{display:none}.nft-demo-toolbar button{font-size:11px;padding:8px;min-height:48px}.nft-drive{height:232px}.nft-inspect{min-height:250px}.nft-inspect-model .nft-model{min-height:150px}.nft .nft-footer button{min-height:48px}.nft-component-list{max-height:155px}.nft-header{min-height:50px}.nft .nft-body{padding:10px}.nft-components h2{font-size:20px}}

@media(min-width:680px) and (max-height:420px){.nft-drive{height:222px}.nft-body{padding-top:8px!important;padding-bottom:8px!important}}
@media(min-width:680px) and (max-height:550px){.nft-speed-panel{padding:4px}.nft-speed{margin-top:0}.nft-speed b{font-size:80px}.nft-speed span{font-size:14px;margin:3px 0}.nft-speed-panel>p{min-height:26px}.nft-runtime{padding-top:6px}.nft-runtime strong{font-size:20px}}

/* The demo starts in Driver; presentation controls stay behind one disclosure. */
.nft-demo-toolbar{position:relative;flex-wrap:nowrap;font-size:14px;padding:12px 16px;gap:16px}
.nft-demo-toolbar [hidden]{display:none!important}
.nft-demo-status{flex:1;min-width:0}.nft-demo-status b{letter-spacing:.08em!important;font-size:14px!important}.nft-demo-status small{font-size:12px}
.nft-demo-toolbar>.nft-demo-actions{flex-wrap:nowrap;align-items:center}
.nft-demo-views{flex-wrap:nowrap!important;padding:4px;background:#081e24;border-radius:14px}
.nft-demo-toolbar button,.nft-demo-options summary{font-size:14px;min-height:48px}
.nft-demo-options summary{display:flex;align-items:center;justify-content:center;padding:10px 16px;box-sizing:border-box;border:1px solid #48665f;border-radius:10px;background:#1a3a3e;color:#f4f6f2;cursor:pointer;list-style:none;white-space:nowrap}
.nft-demo-options summary::-webkit-details-marker{display:none}.nft-demo-options summary::after{content:'+';font-size:20px;margin-left:12px}.nft-demo-options[open] summary::after{content:'−'}
.nft-demo-options summary:focus-visible{outline:3px solid #f1aa3e;outline-offset:3px}
.nft-demo-options[open] .nft-sim-controls{display:grid;grid-template-columns:1fr 1fr;position:absolute;top:calc(100% + 8px);right:0;width:min(580px,calc(100vw - 40px));box-sizing:border-box;padding:20px;background:#102c32;border:1px solid #57766b;border-radius:16px;box-shadow:0 16px 44px #0008;z-index:40;gap:20px;max-height:70vh;overflow:auto}
.nft-sim-controls fieldset{border:0;padding:0;margin:0;min-width:0}.nft-sim-controls legend{font-weight:700;font-size:14px;margin-bottom:10px}.nft-sim-controls fieldset>div{display:flex;flex-wrap:wrap;gap:8px}.nft-sim-controls small{font-size:12px;line-height:1.5}.nft-sim-controls label{display:flex;flex-wrap:wrap;margin:10px 0}.nft-sim-controls input{flex:1;min-width:80px;width:110px;min-height:48px}.nft-sim-controls [data-fullscreen]{display:inline-flex;align-items:center}
.simulation-embedded{padding:10px}.simulation-embedded .simulation-intro{display:none}.simulation-embedded .simulation-footnote{margin:12px auto;font-size:12px}
@media(min-width:1000px){.nft-demo-toolbar button,.nft-demo-options summary{min-height:76px;min-width:76px}.nft-demo-views{gap:23px!important}.nft-demo-toolbar>.nft-demo-actions{gap:23px}.nft-demo-options .nft-sim-controls button{min-height:48px}}
@media(max-width:900px){.nft-demo-status small{display:none}.nft-demo-toolbar{gap:10px}.nft-demo-toolbar button,.nft-demo-options summary{padding:10px 12px}}
@media(max-width:679px){.nft-demo-toolbar{flex-wrap:wrap;gap:10px;padding:12px}.nft-demo-status{flex-basis:100%}.nft-demo-toolbar>.nft-demo-actions{flex:1;justify-content:flex-end;flex-wrap:wrap}.nft-demo-views{flex:1}.nft-demo-views button{flex:1}.nft-demo-options[open] .nft-sim-controls{grid-template-columns:1fr;max-height:65vh;width:100%}.nft-demo-options summary{white-space:normal}.nft-sim-controls label{width:auto}}
@media(min-width:680px) and (max-height:550px){.nft-demo-toolbar>.nft-demo-status{display:none}.nft-demo-toolbar{padding:6px 10px}.nft-demo-toolbar>.nft-demo-actions{margin-left:auto}.nft-demo-options[open] .nft-sim-controls{max-height:calc(100vh - 90px)}.nft-demo-toolbar button,.nft-demo-options summary{min-height:48px}}
/* Leave a distinct line for GPS freshness above the runtime divider. */
@media(min-width:1000px) and (min-height:551px){.nft-speed{margin-top:12px}.nft-speed b{font-size:clamp(112px,12vw,148px)}.nft-speed-panel>p{flex-shrink:0;margin-bottom:10px;line-height:1.4}.nft-runtime{padding-top:12px}}


/* A real running cockpit inside the homepage's landscape device frame. The
   outer page owns full-size controls; standalone tablet behavior is unchanged. */
.simulation-display{padding:0}
.simulation-display .simulation-intro,.simulation-display .simulation-footnote,.simulation-display .nft-demo-toolbar,.simulation-display .nft-footer{display:none}
.simulation-display .nft{border:0;border-radius:12px;box-shadow:none}
.simulation-display .nft-header{height:68px;padding:10px 22px}
.simulation-display .nft-edition{display:none}
.simulation-display .nft-body{padding:20px}
.simulation-display .nft-drive{height:412px;grid-template-columns:.76fr 1fr 1.25fr;grid-template-rows:minmax(0,1fr);gap:18px}
.simulation-display .nft-speed-panel{padding:18px 8px}
.simulation-display .nft-speed{margin-top:30px}
.simulation-display .nft-speed b{font-size:148px}
.simulation-display .nft-speed span{font-size:24px;margin:12px 0}
.simulation-display .nft-speed-panel>p{font-size:14px;line-height:1.5;min-height:42px}
.simulation-display .nft-runtime{padding-top:16px}
.simulation-display .nft-runtime strong{font-size:28px}
.simulation-display .nft-runtime .nft-eyebrow{font-size:11px}
.simulation-display .nft-vehicle-glance{padding:18px 12px}
.simulation-display .nft-glance{grid-template-rows:minmax(0,1fr) auto auto;gap:12px;grid-column:auto;grid-template-columns:1fr}
.simulation-display .nft-mini-map{grid-column:auto;grid-row:auto;min-height:0}
.simulation-display .nft-map-canvas{min-height:0}
.simulation-display .nft-voltage-card{flex-direction:row;padding:14px;grid-row:auto;grid-column:auto}
.simulation-display .nft-obd-note{grid-row:auto;grid-column:auto;font-size:11px}
.simulation-display .nfi-bearing strong{font-size:25px}
.simulation-display .nfi-bearing small{font-size:12px}
.simulation-display .nft-model-caption{font-size:16px}
.simulation-display .nft-model-caption small,.simulation-display .nfi-caption{display:none!important}
