:root{color-scheme:dark;--bg:#080d11;--panel:#10181f;--text:#edf3f5;--muted:#93a1ac;--line:#26323b;--accent:#c4ff64;--speed-size:100;--font:system-ui; font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}[hidden]{display:none!important}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;min-height:48px;border:1px solid var(--line);border-radius:12px;padding:12px 20px;background:var(--panel);color:var(--text);font-weight:600}button:hover{border-color:var(--accent)}button:disabled{opacity:.35;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--accent);outline-offset:3px}a{color:var(--accent)}.shell{max-width:1120px;margin:auto;padding:0 max(24px,env(safe-area-inset-right)) 0 max(24px,env(safe-area-inset-left))}header{display:flex;justify-content:space-between;align-items:center;padding:calc(28px + env(safe-area-inset-top)) 0 26px;border-bottom:1px solid var(--line)}.brand{color:var(--text);font-size:24px;font-weight:750;letter-spacing:-1px;text-decoration:none;display:flex;align-items:center}.brand>span:last-child{color:var(--accent)}.brand-icon{background:var(--accent);color:#081009;font-size:28px;border-radius:10px;width:40px;height:40px;display:inline-grid;place-items:center;margin-right:12px}.local-badge{font-size:10px;letter-spacing:1.6px;color:var(--muted)}nav{display:flex;gap:6px;margin:20px 0 32px}nav button{border:0;background:none;color:var(--muted);font-size:14px;padding:10px 20px}nav .selected{background:var(--panel);color:var(--accent)}main{min-height:65vh}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.eyebrow{color:var(--muted);font-size:10px;letter-spacing:2.3px;font-weight:650;margin:0 0 10px}h1{font-size:36px;letter-spacing:-1.3px;margin:0 0 22px;font-weight:650}.section-heading h1{margin:0}.pill{color:var(--accent);font-size:12px;padding:8px 14px;border:1px solid var(--line);border-radius:30px}.dashboard{display:grid;grid-template-columns:1.8fr 1fr;gap:20px}.speed-card,.trip-card,fieldset,article{border:1px solid var(--line);border-radius:20px;background:var(--panel)}.speed-card{overflow:hidden;padding:22px 26px 0}.card-top{font-size:12px;color:var(--muted);display:flex;justify-content:space-between;gap:10px}.dot{display:inline-block;width:7px;height:7px;border-radius:100%;background:#77858f;margin-right:8px}.dot.good{background:var(--accent);box-shadow:0 0 14px #c4ff6444}.speed-main{position:relative;height:264px;display:grid;place-items:center;overflow:hidden}.dial{position:absolute;width:290px;height:290px;border:1px solid var(--line);border-radius:50%;top:27px;border-top:3px solid var(--accent);opacity:.65}.dial:after{content:'';position:absolute;inset:13px;border-radius:50%;border:1px dashed var(--line)}.reading{z-index:1;display:flex;flex-direction:column;align-items:center;padding-top:38px}#speed{font-size:calc(116px * var(--speed-size)/100);font-family:var(--font);font-weight:650;font-variant-numeric:tabular-nums;letter-spacing:-7px;line-height:1.1;color:var(--accent)}.unit{font-size:16px;color:var(--muted);letter-spacing:2px}.speed-caption{text-align:center;font-size:11px;color:var(--muted);min-height:30px}.hud-button{background:transparent;border:0;border-top:1px solid var(--line);border-radius:0;display:flex;align-items:center;width:100%;font-size:14px;padding:18px 0}.hud-button span{margin-left:auto;color:var(--muted);font-size:11px;font-weight:400}.trip-card{padding:26px}.stat{display:flex;flex-direction:column;gap:6px;padding:15px 0;border-bottom:1px solid var(--line)}.stat span,.stat-row span{font-size:12px;color:var(--muted)}.stat strong{font-size:30px;font-weight:550;letter-spacing:-1px;font-variant-numeric:tabular-nums}small{font-size:12px;font-weight:400}.stat-row{display:flex;justify-content:space-between;gap:12px;padding-top:22px}.stat-row div{display:flex;flex-direction:column;gap:10px}.stat-row strong{font-size:21px;font-weight:550}.muted{color:var(--muted);line-height:1.7}.fine{font-size:11px}.controls{display:flex;gap:12px;margin:22px 0 0}.controls .primary{flex:1}.primary{background:var(--accent);color:#10180b;border-color:var(--accent)}.text-button{background:none;border:0;color:var(--muted);display:block;margin:10px auto;font-size:12px}.message{text-align:center;font-size:13px;line-height:1.5;min-height:20px}.safety{text-align:center;color:var(--muted);font-size:11px;line-height:1.8;margin:22px 0}footer{display:flex;justify-content:space-between;border-top:1px solid var(--line);font-size:10px;letter-spacing:1px;color:var(--muted);padding:22px 0 calc(22px + env(safe-area-inset-bottom));margin-top:36px}.notice{padding:12px 16px;border-radius:10px;margin-bottom:18px;background:#302611;color:#ffd786;font-size:12px}.limit-warning{text-align:center;color:#ffb55c;font-weight:bold;padding:10px}.over #speed{color:#ff785f}.export{display:flex;gap:10px;margin:24px 0}.history-item{padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--panel);margin:12px 0}.history-item h2{font-size:16px}.history-item p{font-size:13px;line-height:1.7;color:var(--muted)}.history-item button{font-size:12px}fieldset{padding:24px;margin:20px 0}legend{padding:0 10px;font-weight:650;font-size:18px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:24px}label{font-size:13px;display:flex;flex-direction:column;gap:10px;color:var(--text)}label small{color:var(--muted);line-height:1.5}select,input[type=number]{width:100%;min-height:46px;padding:10px;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:8px}.check{display:grid;grid-template-columns:24px 1fr;align-content:start;align-items:center;min-height:48px;gap:8px}.check small{grid-column:2}input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent)}input[type=range]{width:100%;accent-color:var(--accent);min-height:30px}article{padding:24px;line-height:1.75;font-size:14px}article h2{font-size:19px;margin:28px 0 10px}article h2:first-child{margin-top:0}dl{display:grid;grid-template-columns:1fr 1fr;gap:12px;font-size:13px}dd{margin:0;overflow-wrap:anywhere}dt{color:var(--muted)}#hud{position:fixed;inset:0;z-index:10;background:#000;color:var(--accent);overflow:hidden;touch-action:manipulation}#hudContent{position:absolute;inset:12% 12%;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}#hudSpeed{font-family:var(--font);font-size:var(--hud-size,36vmin);line-height:1.05;font-weight:650;letter-spacing:-.06em;font-variant-numeric:tabular-nums;white-space:nowrap}#hud .unit{font-size:clamp(16px,4vmin,32px);color:inherit}#hudExtra{display:flex;gap:24px;margin-top:18px;font-size:13px}#hudDemo,#hudPreview{font-size:12px;letter-spacing:2px;margin-top:20px;color:#ffc477}#hudControls{position:absolute;left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));display:flex;justify-content:space-between;gap:12px}#hud button{background:#141414;color:#ddd;border-color:#444;font-size:12px}#unlockHud{position:absolute;bottom:max(12px,env(safe-area-inset-bottom));right:max(12px,env(safe-area-inset-right));user-select:none;-webkit-user-select:none;touch-action:none}body.hud-open{overflow:hidden}body.light{color-scheme:light;--bg:#f1f4ef;--panel:#fff;--text:#17231c;--muted:#52645c;--line:#ccd6cd}body.light .reading #speed{color:#213629}body.light nav .selected{color:#263d20}
@media(min-width:1300px){.shell{padding-top:15px}}@media(max-width:650px){.shell{padding-left:max(18px,env(safe-area-inset-left));padding-right:max(18px,env(safe-area-inset-right))}header{padding-top:calc(16px + env(safe-area-inset-top));padding-bottom:16px}.brand{font-size:21px}.local-badge{font-size:8px;letter-spacing:.6px}nav{gap:0;margin:12px 0 25px;justify-content:space-between}nav button{font-size:12px;padding:8px 12px}h1{font-size:29px}.eyebrow{font-size:9px;letter-spacing:1.5px}.dashboard{grid-template-columns:1fr;gap:14px}.speed-card{padding:18px 20px 0}.speed-main{height:231px}.dial{width:260px;height:260px;top:22px}#speed{font-size:calc(105px * var(--speed-size)/100)}.trip-card{padding:18px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.trip-card>.eyebrow{grid-column:1/-1;margin:0}.stat{padding:0 0 12px}.stat strong{font-size:25px}.stat-row{grid-column:1/-1;padding:0;justify-content:space-around}.stat-row div{gap:5px}.trip-card>.fine{grid-column:1/-1;margin:0}.controls{gap:8px}.controls button{padding:12px 14px;font-size:13px}.fields{grid-template-columns:1fr}fieldset{padding:18px}footer{font-size:8px;gap:10px}.section-heading{margin-bottom:18px}.pill{font-size:11px;padding:7px 10px}.export button{font-size:12px;padding:12px}.stat-row strong{font-size:18px}}
@media(orientation:landscape) and (max-height:500px){header{padding-top:10px;padding-bottom:10px}nav{margin:8px 0}.section-heading{margin:10px 0}.section-heading h1{font-size:24px}.dashboard{grid-template-columns:1.8fr 1fr;gap:14px}.speed-main{height:170px}.dial{top:10px;width:220px;height:220px}.reading{padding-top:15px}#speed{font-size:calc(100px * var(--speed-size)/100)}.trip-card{padding:18px}.stat{padding:7px 0}.stat strong{font-size:24px}.trip-card .fine{display:none}.stat-row{padding-top:12px}.controls{margin-top:12px}.safety{margin:10px 0}#hudContent{inset:8% 12% 14%}}
@media(prefers-reduced-motion:no-preference){button{transition:background .15s,border-color .15s}.page{animation:appear .2s ease}@keyframes appear{from{opacity:.3;transform:translateY(5px)}to{opacity:1;transform:none}}}
