:root{--ink: #f4f1ea;--muted: #b9c2cb;--panel: rgba(16, 24, 32, .82);--panel-solid: #141d26;--line: rgba(255, 255, 255, .12);--accent: #f2a93b;--accent-ink: #1b1306;--good: #4cc38a;--warn: #f2c037;--bad: #ef5a4c;--guide: #3d8bff;font-family:Segoe UI,system-ui,-apple-system,Roboto,sans-serif;color:var(--ink)}*{box-sizing:border-box}html,body{margin:0;height:100%;background:#0d141b;overflow:hidden}#app{position:fixed;top:0;right:0;bottom:0;left:0}canvas.view{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;outline:none}button{font:inherit;cursor:pointer}.hidden{display:none!important}.menu{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;background:radial-gradient(120% 90% at 80% 0%,#2a3b4c,#121a22 55%,#0b1117);padding:40px 16px 32px}.menu-inner{max-width:1040px;margin:0 auto}.brand{display:flex;align-items:center;gap:14px}.brand-mark{width:48px;height:48px;flex:none}.brand-mark img{width:100%;height:100%;display:block}.brand .brand-name{letter-spacing:.16em;text-transform:uppercase;font-weight:700}.brand-te{font-family:Nirmala UI,Noto Sans Telugu,Gautami,sans-serif;font-size:.62em;font-weight:600;color:var(--accent)}.brand-tag{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:2px}.brand h1{margin:0;font-size:30px;letter-spacing:.3px}.tagline{color:var(--muted);margin:6px 0 28px;font-size:16px}.section-title{font-size:13px;letter-spacing:1.4px;text-transform:uppercase;color:var(--muted);margin:26px 0 12px}.routes{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.route-card{text-align:left;background:#ffffff0a;border:1px solid var(--line);color:var(--ink);border-radius:14px;padding:16px 16px 14px;transition:border-color .15s,background .15s,transform .15s}.route-card:hover{border-color:#f2a93b99;background:#ffffff12}.route-card.selected{border-color:var(--accent);background:#f2a93b1a}.route-card .area{font-size:12px;letter-spacing:1.2px;text-transform:uppercase;color:var(--accent)}.route-card h3{margin:4px 0 6px;font-size:19px}.route-card p{margin:0 0 12px;color:var(--muted);font-size:14px;line-height:1.45}.route-meta{display:flex;gap:8px;flex-wrap:wrap}.chip{font-size:12px;padding:3px 9px;border-radius:999px;background:#ffffff14;color:var(--ink)}.chip.easy{background:#4cc38a2e;color:#8fe3b8}.chip.medium{background:#f2c03729;color:#f5d77e}.chip.hard{background:#ef5a4c2e;color:#f6a39a}.options{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}.option{background:#ffffff0a;border:1px solid var(--line);border-radius:12px;padding:12px 14px}.option label{display:block;font-size:13px;color:var(--muted);margin-bottom:8px}.seg{display:flex;gap:6px;flex-wrap:wrap}.seg button{background:#ffffff12;border:1px solid transparent;color:var(--ink);border-radius:8px;padding:6px 10px;font-size:13px}.seg button.on{border-color:var(--accent);background:#f2a93b29}.swatch{width:28px;height:28px;border-radius:50%;padding:0!important;border:2px solid rgba(255,255,255,.25)!important}.swatch.on{border-color:var(--accent)!important;box-shadow:0 0 0 2px #f2a93b59}.start-row{display:flex;align-items:center;gap:16px;margin-top:26px;flex-wrap:wrap}.primary{background:var(--accent);color:var(--accent-ink);border:0;border-radius:12px;padding:13px 26px;font-size:17px;font-weight:600}.primary:disabled{opacity:.5;cursor:default}.secondary{background:#ffffff14;color:var(--ink);border:1px solid var(--line);border-radius:12px;padding:12px 20px;font-size:15px}.keys{color:var(--muted);font-size:13px;line-height:1.7}kbd{display:inline-block;min-width:22px;text-align:center;padding:1px 6px;border-radius:5px;background:#ffffff1a;border:1px solid rgba(255,255,255,.18);font-family:inherit;font-size:12px;color:var(--ink)}.credit{margin-top:30px;font-size:12px;color:#7f8b96}.credit a{color:#9fb2c4}.loading{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#0d141b;z-index:20}.loading .box{text-align:center}.spinner{width:38px;height:38px;border-radius:50%;border:3px solid rgba(255,255,255,.15);border-top-color:var(--accent);animation:spin .9s linear infinite;margin:0 auto 14px}@keyframes spin{to{transform:rotate(360deg)}}.hud{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:5}.hud .panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.nav-card{position:absolute;top:16px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:14px;padding:10px 18px 10px 12px;min-width:300px}.nav-card .arrow{width:52px;height:52px;border-radius:10px;background:var(--guide);display:grid;place-items:center;flex:none}.nav-card .arrow svg{width:36px;height:36px}.nav-card .dist{font-size:26px;font-weight:700;line-height:1}.nav-card .street{font-size:15px;color:var(--muted);margin-top:4px;max-width:360px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trip{position:absolute;top:16px;left:16px;padding:12px 14px;width:250px}.trip .name{font-weight:600;font-size:15px}.trip .sub{color:var(--muted);font-size:13px;margin-top:2px}.bar{height:6px;border-radius:3px;background:#ffffff1f;margin-top:10px;overflow:hidden}.bar>div{height:100%;background:var(--accent);width:0}.trip .stats{display:flex;justify-content:space-between;margin-top:8px;font-size:13px;color:var(--muted)}.faults-count{color:var(--ink)}.cluster{position:absolute;right:18px;bottom:18px;display:flex;align-items:center;gap:10px;padding:10px 14px}.cluster .dial{position:relative;width:150px;height:150px}.gauge{width:100%;height:100%}.gauge path{fill:none;stroke-linecap:round}.gauge .track{stroke:#ffffff1a;stroke-width:10}.gauge .rpm-track{stroke:#ffffff0f;stroke-width:4}.gauge .speed-fill{stroke:#39a0ff;stroke-width:10;stroke-dasharray:0 100;transition:stroke .25s}.gauge .rpm-fill{stroke:#f2a93b;stroke-width:4;stroke-dasharray:0 100}.gauge .rpm-fill.red{stroke:#ff4d3a}.gauge .limit-tick{stroke:#ff4d3a;stroke-width:4}.cluster.over .gauge .speed-fill{stroke:#ff4d3a}.cluster.over .kmh{color:#ff8a7a}.cluster.over .limit{animation:pulse .8s ease-in-out infinite alternate}@keyframes pulse{to{transform:scale(1.12)}}.cluster .read{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.cluster .kmh{font-size:46px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}.cluster .unit{font-size:12px;color:var(--muted);margin-top:2px}.cluster .gear-now{margin-top:6px;font-size:15px;font-weight:700;color:var(--accent);background:#ffffff12;border-radius:6px;padding:1px 8px;font-variant-numeric:tabular-nums}.cluster .side{display:flex;flex-direction:column;align-items:center;gap:10px}.limit{width:50px;height:50px;border-radius:50%;background:#fff;border:6px solid #d62b20;color:#111;display:grid;place-items:center;font-weight:800;font-size:17px}.lamps{display:flex;gap:4px}.lamp{width:22px;height:22px;color:#ffffff2e}.lamp svg{width:100%;height:100%;display:block}.lamp.beam.on{color:#4fb3ff}.lamp.hazard.on{color:#ff5a3c}.lamp.brake.on{color:#ff4d3a}.gear{display:flex;gap:6px;font-size:13px;font-weight:700;color:#ffffff4d}.gear span.on{color:var(--accent)}.ind{width:34px;height:34px;border-radius:8px;display:grid;place-items:center;background:#ffffff0a;opacity:.3;transition:opacity .08s}.ind.on{opacity:1;background:#2a9c5c}.hint{position:absolute;left:16px;bottom:16px;padding:8px 12px;font-size:12px;color:var(--muted);transition:opacity 1.2s}.hint.faded{opacity:0}.osm{position:absolute;right:18px;bottom:4px;font-size:10px;color:#ffffff8c}.toasts{position:absolute;top:96px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:8px}.toast{padding:9px 16px;border-radius:10px;font-size:15px;font-weight:600;animation:pop .2s ease-out}.toast.bad{background:#b92d23eb}.toast.warn{background:#a06e0aeb}.toast.info{background:#1e5aaaeb}@keyframes pop{0%{transform:translateY(-6px);opacity:0}to{transform:none;opacity:1}}.banner{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);padding:14px 22px;font-size:18px;text-align:center}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:grid;place-items:center;background:#080c109e;padding:16px}.dialog{background:var(--panel-solid);border:1px solid var(--line);border-radius:18px;padding:24px;width:min(560px,100%);max-height:100%;overflow-y:auto}.dialog h2{margin:0 0 6px;font-size:24px}.dialog .sub{color:var(--muted);margin:0 0 18px}.dialog .actions{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}.score{display:flex;align-items:baseline;gap:10px;margin:6px 0 16px}.score .num{font-size:52px;font-weight:800}.score .stars{font-size:26px;color:var(--accent);letter-spacing:3px}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}.stat{background:#ffffff0d;border-radius:10px;padding:10px 12px}.stat .k{font-size:12px;color:var(--muted)}.stat .v{font-size:20px;font-weight:700;margin-top:2px}.fault-list{list-style:none;padding:0;margin:0}.fault-list li{display:flex;gap:10px;padding:9px 0;border-top:1px solid var(--line);font-size:14px}.fault-list .t{color:var(--muted);width:48px;flex:none;font-variant-numeric:tabular-nums}.fault-list .what{font-weight:600}.fault-list .advice{color:var(--muted);font-size:13px;margin-top:2px}.help-grid{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;font-size:14px;align-items:center}@media (max-width: 720px){.trip{width:180px}.nav-card{top:auto;bottom:120px;min-width:0}.cluster .dial{width:112px;height:112px}.cluster .kmh{font-size:34px}.cluster .ind,.hint{display:none}}.best{margin:-6px 0 14px;color:var(--muted);font-size:14px}.best.new{color:#6fdc9a;font-weight:600}.route-card .pb{margin-top:10px;font-size:12px;color:#6fdc9a}.home-link{margin-left:auto;color:var(--muted);font-size:14px;text-decoration:none}.home-link:hover{color:var(--ink)}
