@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:100 900;src:url(/vendor/inter-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:100 900;src:url(/vendor/inter-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root{
  --bg:#070a12;--bg2:#0c111c;--surf:#111827;--surf2:#172033;--surf3:#1e2a40;--line:rgba(148,170,210,.12);--line2:rgba(148,170,210,.22);
  --fg:#f1f5fb;--fg2:#c4cee0;--mut:#7c8aa5;
  --acc:#3b82f6;--acc2:#60a5fa;--cyan:#22d3ee;--ok:#22c55e;--okbg:rgba(34,197,94,.12);--warn:#f59e0b;--warnbg:rgba(245,158,11,.12);--bad:#ef4444;--badbg:rgba(239,68,68,.12);--vio:#a78bfa;
  --r:20px;--r2:14px;--shadow:0 10px 30px -12px rgba(0,0,0,.6);
  --top:env(safe-area-inset-top,0px);--bot:env(safe-area-inset-bottom,0px);
}
[hidden]{display:none!important}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{background:var(--bg);-webkit-text-size-adjust:100%}
body{margin:0;color:var(--fg);font:15.5px/1.5 Inter,-apple-system,system-ui,sans-serif;font-feature-settings:"cv11","ss01";min-height:100dvh;
  background:radial-gradient(900px 480px at 85% -120px,rgba(59,130,246,.22),transparent 70%),radial-gradient(700px 400px at -10% 10%,rgba(34,211,238,.08),transparent 70%),var(--bg);background-attachment:fixed;
  padding-bottom:calc(92px + var(--bot));overscroll-behavior-y:none}
.ico{width:20px;height:20px;flex:none;display:inline-block;vertical-align:middle}
.ico.sm{width:16px;height:16px}.ico.lg{width:28px;height:28px}.ico.xl{width:44px;height:44px}
.wrap{max-width:560px;margin:0 auto;padding:0 16px}
button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none}
.mut{color:var(--mut)}.sm{font-size:.86rem}.xs{font-size:.76rem}.b{font-weight:700}
h1,h2,h3{margin:0;letter-spacing:-.02em}

/* ---------- header ---------- */
header{position:sticky;top:0;z-index:40;padding:calc(var(--top) + 10px) 0 10px;background:linear-gradient(var(--bg) 40%,rgba(7,10,18,.75));backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);border-bottom:1px solid var(--line)}
header .wrap{display:flex;align-items:center;gap:10px}
.brand{display:flex;align-items:center;gap:10px;min-width:0}
.brand-ic{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,#1d4ed8,#0891b2);box-shadow:0 6px 18px -6px rgba(59,130,246,.7)}
.brand b{display:block;font-size:1rem;letter-spacing:-.01em}.brand small{display:block;color:var(--mut);font-size:.72rem;font-weight:500;margin-top:-2px}
.mstripe{display:flex;height:3px;width:42px;border-radius:2px;overflow:hidden;margin-top:3px}.mstripe i{flex:1}.mstripe i:nth-child(1){background:#81c4ff}.mstripe i:nth-child(2){background:#16588e}.mstripe i:nth-child(3){background:#e7222e}
.hdr-r{margin-left:auto;display:flex;gap:8px;align-items:center}
.chip{display:inline-flex;align-items:center;gap:7px;padding:7px 11px;border-radius:999px;background:var(--surf);border:1px solid var(--line);font-size:.8rem;font-weight:600;white-space:nowrap}
.chip .dot{width:8px;height:8px;border-radius:50%;background:var(--mut)}
.chip.on .dot{background:var(--ok);box-shadow:0 0 0 4px rgba(34,197,94,.18)}.chip.busy .dot{background:var(--warn);animation:pulse 1s infinite}.chip.off .dot{background:var(--bad)}
.iconbtn{width:38px;height:38px;border-radius:12px;border:1px solid var(--line);background:var(--surf);display:grid;place-items:center;color:var(--fg2)}
@keyframes pulse{50%{opacity:.35}}

main{padding-top:16px}
.view{display:none;animation:fade .25s ease}.view.act{display:block}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* ---------- cards ---------- */
.card{background:linear-gradient(180deg,var(--surf2),var(--surf));border:1px solid var(--line);border-radius:var(--r);padding:18px;margin-bottom:14px;box-shadow:var(--shadow)}
.card-h{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.card-h h3{font-size:.95rem}.card-h .ico{color:var(--acc2)}.card-h .r{margin-left:auto}
.lbl{font-size:.7rem;color:var(--mut);text-transform:uppercase;letter-spacing:.1em;font-weight:700}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;padding:22px 18px 18px}
.hero::after{content:"";position:absolute;inset:auto -60px -80px auto;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,rgba(59,130,246,.25),transparent 70%);pointer-events:none}
.hero-top{display:flex;gap:16px;align-items:center}
.ring{position:relative;width:86px;height:86px;flex:none}
.ring svg.r{position:absolute;inset:0;transform:rotate(-90deg)}
.ring .core{position:absolute;inset:11px;border-radius:50%;display:grid;place-items:center;background:var(--surf3);border:1px solid var(--line2);color:var(--mut);transition:.3s}
.ring.on .core{color:var(--ok);background:radial-gradient(circle,rgba(34,197,94,.22),var(--surf3))}
.ring.busy .core{color:var(--warn)}.ring.off .core{color:var(--fg2)}
.ring.busy svg.r{animation:spin 1.2s linear infinite}
@keyframes spin{to{transform:rotate(270deg)}}
.hero h1{font-size:1.32rem;line-height:1.2}
.hero .sub{color:var(--fg2);font-size:.9rem;margin-top:4px}
.facts{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.fact{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;font-weight:600;color:var(--fg2);background:rgba(255,255,255,.04);border:1px solid var(--line);padding:6px 10px;border-radius:10px}
.fact .ico{width:14px;height:14px;color:var(--acc2)}

/* ---------- buttons ---------- */
.btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:54px;padding:14px 18px;border-radius:16px;border:1px solid var(--line2);background:var(--surf3);font-weight:700;font-size:1rem;transition:transform .12s,opacity .2s}
.btn:active{transform:scale(.975)}.btn:disabled{opacity:.45;pointer-events:none}
.btn.pri{border:0;color:#fff;background:linear-gradient(135deg,#3b82f6,#2563eb 55%,#0891b2);box-shadow:0 12px 28px -10px rgba(37,99,235,.8),inset 0 1px 0 rgba(255,255,255,.2);font-size:1.06rem;min-height:60px}
.btn.ghost{background:transparent}.btn.danger{color:#fca5a5;border-color:rgba(239,68,68,.35)}
.btn.sm{min-height:44px;font-size:.9rem;padding:10px 14px;border-radius:13px}
.btns{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.mt{margin-top:14px}

/* ---------- checklist ---------- */
.check{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:12px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.02);margin-bottom:8px;transition:.2s}
.check .box{width:26px;height:26px;border-radius:50%;border:2px solid var(--line2);display:grid;place-items:center;flex:none;transition:.2s;color:transparent}
.check.done{border-color:rgba(34,197,94,.35);background:var(--okbg)}.check.done .box{background:var(--ok);border-color:var(--ok);color:#052e14}
.check .t{font-weight:600;font-size:.93rem}.check .d{font-size:.8rem;color:var(--mut)}

/* ---------- alert ---------- */
.alert{display:flex;gap:12px;padding:14px;border-radius:16px;margin-bottom:14px;border:1px solid;animation:fade .25s}
.alert .ico{margin-top:2px}
.alert.err{background:var(--badbg);border-color:rgba(239,68,68,.35);color:#fecaca}.alert.err .ico{color:var(--bad)}
.alert.warn{background:var(--warnbg);border-color:rgba(245,158,11,.35);color:#fde68a}.alert.warn .ico{color:var(--warn)}
.alert.ok{background:var(--okbg);border-color:rgba(34,197,94,.35);color:#bbf7d0}.alert.ok .ico{color:var(--ok)}
.alert.info{background:rgba(59,130,246,.12);border-color:rgba(59,130,246,.35);color:#bfdbfe}.alert.info .ico{color:var(--acc2)}
.alert>div>b:first-child{display:block;color:#fff;margin-bottom:2px}.alert .sm b{color:#fff}.alert .btn{margin-top:10px}

/* ---------- stepper ---------- */
.prog{height:6px;border-radius:6px;background:var(--bg2);overflow:hidden;margin:-2px 0 14px}.prog i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--acc),var(--cyan));transition:width .4s}
.steps{list-style:none;margin:0;padding:0;position:relative}
.steps li{display:flex;gap:12px;padding:9px 0;position:relative}
.steps li:not(:last-child)::before{content:"";position:absolute;left:13px;top:38px;bottom:-4px;width:2px;background:var(--line)}
.steps .ic{width:28px;height:28px;border-radius:50%;flex:none;display:grid;place-items:center;background:var(--surf3);border:1px solid var(--line2);color:var(--mut);z-index:1}
.steps .ic .ico{width:15px;height:15px}
.steps .t{font-weight:600;font-size:.93rem}.steps .d{font-size:.8rem;color:var(--mut);word-break:break-word}
.s-run .ic{border-color:var(--warn);color:var(--warn);box-shadow:0 0 0 4px var(--warnbg)}.s-run .ic .ico{animation:spin2 1s linear infinite}
@keyframes spin2{to{transform:rotate(360deg)}}
.s-ok .ic{background:var(--ok);border-color:var(--ok);color:#052e14}.s-warn .ic{background:var(--warn);border-color:var(--warn);color:#2a1a00}
.s-fail .ic{background:var(--bad);border-color:var(--bad);color:#fff}.s-skip{opacity:.5}
.s-fail .d{color:#fca5a5}

/* ---------- results ---------- */
.health{display:flex;gap:16px;align-items:center}
.health .big{width:64px;height:64px;border-radius:20px;display:grid;place-items:center;flex:none}
.health.g .big{background:var(--okbg);color:var(--ok)}.health.a .big{background:var(--warnbg);color:var(--warn)}.health.r .big{background:var(--badbg);color:var(--bad)}
.health h2{font-size:1.25rem}
.kvs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}
.kv{background:rgba(255,255,255,.03);border:1px solid var(--line);border-radius:12px;padding:10px 12px}.kv .v{font-weight:700;font-variant-numeric:tabular-nums;word-break:break-all}
.dtc{display:flex;gap:12px;padding:14px;border-radius:16px;border:1px solid var(--line);background:rgba(255,255,255,.02);margin-bottom:8px;border-left:4px solid var(--warn)}
.dtc.k-saugoma{border-left-color:var(--bad)}.dtc.k-nuolatinė{border-left-color:var(--vio)}
.dtc .code{font:800 1.05rem ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.02em}
.badge{display:inline-flex;font-size:.68rem;font-weight:700;padding:3px 8px;border-radius:99px;text-transform:uppercase;letter-spacing:.06em;background:var(--surf3);color:var(--fg2);margin-left:6px}
.badge.r{background:var(--badbg);color:#fca5a5}.badge.a{background:var(--warnbg);color:#fcd34d}.badge.v{background:rgba(167,139,250,.15);color:#c4b5fd}.badge.g{background:var(--okbg);color:#86efac}
.mons{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.mon{display:flex;align-items:center;gap:8px;font-size:.82rem;padding:9px 10px;border-radius:12px;background:rgba(255,255,255,.03);border:1px solid var(--line)}
.mon .ico{width:16px;height:16px}.mon.ok .ico{color:var(--ok)}.mon.no .ico{color:var(--warn)}
.rows .row{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--line)}.rows .row:last-child{border:0}
.rows .row .n{flex:1;min-width:0;color:var(--fg2);font-size:.9rem}.rows .row .v{font-weight:700;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.rows .row svg.sp{width:64px;height:22px;flex:none}

/* ---------- gauges ---------- */
.gauges{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}
.gauge{background:linear-gradient(180deg,var(--surf2),var(--surf));border:1px solid var(--line);border-radius:var(--r);padding:12px 10px 10px;text-align:center;position:relative}
.gauge svg{width:100%;max-width:150px;display:block;margin:0 auto}
.gauge .val{position:absolute;left:0;right:0;top:36%;font-size:1.65rem;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.gauge .unit{position:absolute;left:0;right:0;top:58%;font-size:.72rem;color:var(--mut);font-weight:600}
.gauge .nm{font-size:.78rem;font-weight:700;color:var(--fg2);margin-top:-6px}
.gauge .arc{transition:stroke-dasharray .35s ease}
.seg{display:flex;background:var(--bg2);border:1px solid var(--line);border-radius:14px;padding:4px;gap:4px}
.seg button{flex:1;border:0;background:transparent;color:var(--mut);font-weight:700;font-size:.85rem;padding:10px;border-radius:10px}
.seg button.act{background:var(--surf3);color:var(--fg)}

/* ---------- history ---------- */
.hitem{display:flex;gap:12px;align-items:center;width:100%;text-align:left;padding:14px;border-radius:16px;border:1px solid var(--line);background:rgba(255,255,255,.02);margin-bottom:8px}
.hitem .hi{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;flex:none}
.hitem.ok .hi{background:var(--okbg);color:var(--ok)}.hitem.bad .hi{background:var(--badbg);color:var(--bad)}.hitem.warn .hi{background:var(--warnbg);color:var(--warn)}
.hitem .t{font-weight:700;font-size:.93rem}.hitem .d{font-size:.8rem;color:var(--mut);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.hitem .ico.chev{margin-left:auto;color:var(--mut)}
.empty{text-align:center;padding:28px 10px;color:var(--mut)}.empty .ico{width:40px;height:40px;opacity:.5;margin-bottom:8px}

/* ---------- sheet / modal ---------- */
.scrim{position:fixed;inset:0;z-index:80;background:rgba(2,4,10,.6);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);opacity:0;pointer-events:none;transition:opacity .25s}
.scrim.open{opacity:1;pointer-events:auto}
.sheet{position:fixed;left:0;right:0;bottom:0;z-index:90;max-height:88dvh;overflow:auto;background:var(--surf);border-top-left-radius:26px;border-top-right-radius:26px;border:1px solid var(--line2);border-bottom:0;padding:10px 18px calc(18px + var(--bot));transform:translateY(105%);transition:transform .3s cubic-bezier(.2,.8,.2,1)}
.sheet.open{transform:none}.sheet .grab{width:42px;height:5px;border-radius:5px;background:var(--line2);margin:0 auto 14px}
.sheet .wrap{padding:0}
pre{background:#05070d;border:1px solid var(--line);padding:12px;border-radius:14px;overflow:auto;max-height:46dvh;font:11.5px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;word-break:break-all;color:#a9b6cf;margin:0}

/* ---------- onboarding ---------- */
.ob{position:fixed;inset:0;z-index:100;background:radial-gradient(800px 500px at 50% 0,#13254a,transparent 70%),var(--bg);display:flex;flex-direction:column;padding:calc(var(--top) + 14px) 0 calc(var(--bot) + 18px);transition:opacity .3s}
.ob[hidden]{display:none}
.ob-top{display:flex;justify-content:space-between;align-items:center;padding:0 20px}
.ob-skip{background:none;border:0;color:var(--mut);font-weight:600;padding:8px}
.ob-track{flex:1;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.ob-track::-webkit-scrollbar{display:none}
.ob-slide{flex:0 0 100%;scroll-snap-align:center;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:10px 30px}
.ob-art{width:132px;height:132px;border-radius:40px;display:grid;place-items:center;margin-bottom:28px;position:relative;background:linear-gradient(135deg,rgba(59,130,246,.35),rgba(8,145,178,.25));border:1px solid rgba(96,165,250,.35);box-shadow:0 30px 60px -20px rgba(37,99,235,.6)}
.ob-art .ico{width:58px;height:58px;color:#dbeafe}
.ob-art .n{position:absolute;top:-10px;right:-10px;width:36px;height:36px;border-radius:50%;background:var(--fg);color:var(--bg);font-weight:800;display:grid;place-items:center}
.ob-slide h2{font-size:1.55rem;margin-bottom:10px;max-width:22ch}
.ob-slide p{color:var(--fg2);max-width:34ch;margin:0 auto}
.ob-slide .tip{margin-top:16px;font-size:.84rem;color:var(--mut);display:flex;gap:8px;align-items:flex-start;text-align:left;max-width:34ch;background:rgba(255,255,255,.04);border:1px solid var(--line);padding:10px 12px;border-radius:12px}
.ob-dots{display:flex;justify-content:center;gap:7px;margin:10px 0 18px}.ob-dots i{width:7px;height:7px;border-radius:99px;background:var(--line2);transition:.3s}.ob-dots i.act{width:24px;background:var(--acc2)}
.ob-actions{padding:0 20px;display:grid;gap:10px;max-width:520px;width:100%;margin:0 auto}

/* ---------- tabs ---------- */
nav.tabs{position:fixed;left:0;right:0;bottom:0;z-index:50;padding:8px 10px calc(var(--bot) + 8px);background:linear-gradient(rgba(7,10,18,.6),rgba(7,10,18,.95) 40%);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-top:1px solid var(--line)}
nav.tabs .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:0}
nav.tabs button{border:0;background:transparent;color:var(--mut);font-size:.7rem;font-weight:600;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 2px;border-radius:14px;transition:.2s}
nav.tabs button .ico{width:22px;height:22px}
nav.tabs button.act{color:#fff;background:rgba(59,130,246,.16)}nav.tabs button.act .ico{color:var(--acc2)}

/* ---------- toast ---------- */
.toast{position:fixed;left:50%;bottom:calc(98px + var(--bot));z-index:120;transform:translate(-50%,20px);opacity:0;transition:.3s;display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:14px;background:var(--surf3);border:1px solid var(--line2);box-shadow:var(--shadow);font-weight:600;font-size:.9rem;max-width:calc(100% - 32px)}
.toast.show{transform:translate(-50%,0);opacity:1}.toast.ok .ico{color:var(--ok)}.toast.err .ico{color:var(--bad)}

/* ---------- login ---------- */
.login{min-height:100dvh;display:grid;place-items:center;padding:24px}
.login .card{width:100%;max-width:400px;padding:28px 22px}
.login .brand-ic{width:56px;height:56px;border-radius:18px;margin-bottom:18px}
.inp{width:100%;font:inherit;font-size:1.05rem;padding:16px;border-radius:15px;border:1px solid var(--line2);background:var(--bg2);color:var(--fg);outline:none;transition:.2s}
.inp:focus{border-color:var(--acc);box-shadow:0 0 0 4px rgba(59,130,246,.2)}

/* ---------- driver.js theme ---------- */
.driver-popover.obd-tour{background:var(--surf2);color:var(--fg);border:1px solid var(--line2);border-radius:16px;box-shadow:0 20px 50px -10px rgba(0,0,0,.7);font-family:Inter,system-ui,sans-serif}
.driver-popover.obd-tour .driver-popover-title{font-size:1.02rem;font-weight:800;background:none;padding:0;color:var(--fg)}
.driver-popover.obd-tour .driver-popover-description{color:var(--fg2);font-size:.9rem}
.driver-popover.obd-tour .driver-popover-progress-text{color:var(--mut)}
.driver-popover.obd-tour button{background:var(--surf3);color:var(--fg);border:1px solid var(--line2);text-shadow:none;border-radius:10px;padding:8px 12px;font-weight:700;font-size:.85rem}
.driver-popover.obd-tour .driver-popover-next-btn{background:var(--acc);border-color:var(--acc)}
.driver-popover.obd-tour .driver-popover-close-btn{color:var(--mut);background:none;border:0}
.driver-popover.obd-tour .driver-popover-arrow-side-top.driver-popover-arrow{border-top-color:var(--surf2)}
.driver-popover.obd-tour .driver-popover-arrow-side-bottom.driver-popover-arrow{border-bottom-color:var(--surf2)}
.driver-popover.obd-tour .driver-popover-arrow-side-left.driver-popover-arrow{border-left-color:var(--surf2)}
.driver-popover.obd-tour .driver-popover-arrow-side-right.driver-popover-arrow{border-right-color:var(--surf2)}
details>summary{list-style:none;cursor:pointer}details>summary::-webkit-details-marker{display:none}
.foot{text-align:center;color:var(--mut);font-size:.78rem;padding:4px 10px 10px;line-height:1.5}

.hold{position:relative;overflow:hidden;margin-top:10px;touch-action:none;-webkit-touch-callout:none}.hold i{position:absolute;left:0;top:0;bottom:0;width:0;background:rgba(239,68,68,.4)}
