.analytics-filters{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.analytics-filters label{flex-direction:column;gap:4px;display:flex}.analytics-note{margin:0;font-size:.9em}.analytics-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:12px;display:grid}.analytics-card{border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:8px;min-width:0;padding:12px;display:flex}.analytics-card h4{margin:0}.analytics-def{margin:0;font-size:.9em}.analytics-chart{width:100%;height:auto;max-height:140px}.analytics-bar{fill:currentColor;opacity:.75}.analytics-axis{stroke:currentColor;stroke-width:1px;opacity:.4}.analytics-table-wrap{max-height:180px;overflow:auto}.analytics-table{border-collapse:collapse;width:100%;font-size:.9em}.analytics-table th,.analytics-table td{text-align:left;border-bottom:1px solid var(--border);padding:2px 6px}.analytics-table caption{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.admin-limits-shape{width:100%;max-width:360px;height:auto;color:var(--brand);border:1px solid var(--border);border-radius:var(--radius);background:var(--notice-bg)}.admin-limits input[type=search],.admin-limits input[type=number],.admin-limits textarea{font:inherit;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--fg);min-width:0;padding:8px 10px}.admin-limits input[type=search]{flex:1}.admin-console{flex-direction:column;gap:12px;display:flex}.admin-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.admin-item{border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:6px;padding:12px;display:flex}.admin-diff{grid-template-columns:auto 1fr;gap:4px 10px;margin:0;display:grid}.admin-diff dd{overflow-wrap:anywhere;margin:0}.admin-cards{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin:0;display:grid}.admin-cards div{border:1px solid var(--border);border-radius:var(--radius);padding:10px}.admin-cards dt{color:var(--muted);font-size:.9rem}.admin-cards dd{margin:0;font-size:1.4rem;font-weight:800}.badge{background:var(--notice-bg);border-radius:6px;padding:2px 6px;font-size:.75rem}.admin-console select{min-height:44px;font:inherit}.home{flex-direction:column;gap:20px;display:flex}.home-head{align-items:center;gap:12px;display:flex}.home-head h1{margin:0;font-size:1.6rem;line-height:1.1}.home-logo{border-radius:10px;flex:none}.home-tagline{color:var(--muted);margin:2px 0 0}.home-pill{border:1px solid var(--border);color:var(--muted);white-space:nowrap;border-radius:999px;align-self:flex-start;margin-left:auto;padding:2px 10px;font-size:.8rem}.home-start{background:var(--brand);min-height:88px;color:var(--brand-fg);border-radius:16px;align-items:center;gap:16px;padding:16px 18px;text-decoration:none;display:flex;box-shadow:0 6px 20px #0000002e}.home-start:focus-visible{outline:3px solid var(--fg);outline-offset:3px}.home-start-text{flex-direction:column;flex:1;display:flex}.home-start-text strong{font-size:1.35rem}.home-start-text span{opacity:.85;font-size:.95rem}.home-tiles{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.home-tile{border:1px solid var(--border);background:var(--notice-bg);min-height:96px;color:var(--fg);border-radius:14px;flex-direction:column;align-items:flex-start;gap:10px;padding:16px;font-weight:700;text-decoration:none;display:flex}.home-tile svg{color:var(--brand)}.home-tile.danger svg{color:#e5484d}.home-tile:focus-visible{outline:3px solid var(--brand);outline-offset:2px}.home-what h2{margin:0 0 8px;font-size:1.05rem}.home-what ul{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.home-what li{align-items:flex-start;gap:12px;display:flex}.home-what li svg{color:var(--brand);flex:none;margin-top:2px}.home-foot{border-top:1px solid var(--border);padding-top:12px;font-size:.85rem}.home-foot p{margin:0 0 4px}.personal .personal-places{flex-direction:column;gap:10px;margin:0 0 12px;padding:0;list-style:none;display:flex}.personal .personal-kind{margin-right:8px;font-weight:700}.personal .personal-label{overflow-wrap:anywhere}.personal .personal-confirm{border:2px solid;border-radius:8px;margin-top:12px;padding:12px}.personal .error{font-weight:700}.emergency{flex-direction:column;gap:12px;padding:16px;display:flex}.emergency-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.emergency-call{border-radius:var(--radius);background:var(--danger);color:#fff;align-items:center;gap:16px;min-height:64px;padding:10px 16px;font-size:1.15rem;font-weight:800;text-decoration:none;display:flex}.emergency-number{font-variant-numeric:tabular-nums;min-width:3.5ch;font-size:2rem}.emergency-where{grid-template-columns:auto 1fr;gap:6px 12px;margin:0;display:grid}.emergency-where dt{color:var(--muted)}.emergency-where dd{font-variant-numeric:tabular-nums;margin:0;font-size:1.25rem;font-weight:800}.speed-chart svg{border:1px solid var(--border);border-radius:var(--radius);width:100%;height:auto}.speed-line{fill:none;stroke:var(--brand);stroke-width:2px}.limit-line{fill:none;stroke:var(--fg);stroke-width:2px;stroke-dasharray:6 4}.key-speed:before,.key-limit:before{content:"";vertical-align:middle;width:18px;margin-right:4px;display:inline-block}.key-speed:before{border-top:2px solid var(--brand)}.key-limit:before{border-top:2px dashed var(--fg)}:root{--bg:#fff;--fg:#0d1512;--muted:#4a5752;--brand:#0b3d2e;--brand-fg:#fff;--danger:#a3141c;--border:#c9d3cf;--notice-bg:#eef5f1;--alert-bg:#fdecec;--radius:10px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0d1512;--fg:#f2f6f4;--muted:#b4c1bc;--brand:#4fd1a1;--brand-fg:#04130d;--danger:#ff8a8f;--border:#33423c;--notice-bg:#16241e;--alert-bg:#3a1416}}*{box-sizing:border-box}body{background:var(--bg);color:var(--fg);margin:0;line-height:1.5}.page{max-width:40rem;margin:0 auto;padding:24px 16px 48px}h1{margin:0 0 8px;font-size:1.75rem}h2{margin:24px 0 8px;font-size:1.25rem}.lead{font-size:1.125rem}.muted{color:var(--muted)}.notice{background:var(--notice-bg);border-radius:var(--radius);padding:12px 16px}.alert{background:var(--alert-bg);border-radius:var(--radius);padding:12px 16px;font-weight:600}.stack{flex-direction:column;gap:12px;margin:16px 0;display:flex}.row{flex-wrap:wrap;gap:8px;display:flex}label{flex-direction:column;gap:4px;font-weight:600;display:flex}input{font:inherit;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);min-height:44px;color:var(--fg);padding:8px 12px}.button{border:2px solid var(--brand);border-radius:var(--radius);background:var(--brand);min-width:44px;min-height:44px;color:var(--brand-fg);font:inherit;cursor:pointer;justify-content:center;align-items:center;padding:10px 18px;font-weight:700;text-decoration:none;display:inline-flex}.button.secondary{color:var(--brand);background:0 0}.button.danger{background:var(--danger);border-color:var(--danger);color:#fff}.button.big{min-height:64px;font-size:1.25rem}.button.small{min-height:44px;padding:6px 12px;font-size:.95rem}.button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--brand);outline-offset:2px}a{color:var(--brand)}:is(label:has(>input[type=checkbox]),label:has(>input[type=radio])){flex-direction:row;align-items:center;gap:12px;min-height:44px;font-weight:600}input[type=checkbox],input[type=radio]{width:22px;height:22px;min-height:0;accent-color:var(--brand);flex:none;margin:0;padding:0}select,textarea{font:inherit;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);min-height:44px;color:var(--fg);padding:8px 12px}.card{background:var(--notice-bg);border:1px solid var(--border);border-radius:14px;margin:0 0 16px;padding:16px}.card h2{margin:0 0 8px;font-size:1.1rem}.card p:last-child,.card ul:last-child{margin-bottom:0}.card .muted{font-size:.92rem}.field{flex-direction:column;gap:4px;display:flex}.field label{font-weight:600}.with-toggle{gap:8px;display:flex}.with-toggle input{flex:1;min-width:0}.field-error{color:var(--danger);margin:0;font-weight:600}.small-text{margin:0;font-size:.9rem}.divider{text-align:center;color:var(--muted);margin:0}.link-button{min-height:44px;color:var(--brand);font:inherit;cursor:pointer;text-align:left;background:0 0;border:0;padding:8px 0;text-decoration:underline}.button:disabled{opacity:.6;cursor:wait}.auth-panel h2{margin-top:8px}.recording{color:var(--danger);font-weight:800}.readout{grid-template-columns:repeat(2,1fr);gap:12px;margin:0;display:grid}.readout div{border:1px solid var(--border);border-radius:var(--radius);padding:12px}.readout dt{color:var(--muted);font-size:.9rem}.readout dd{font-variant-numeric:tabular-nums;margin:0;font-size:1.75rem;font-weight:800}.traces{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.traces li{border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:6px;padding:12px;display:flex}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.limit-sign-wrap{flex-direction:column;align-items:center;gap:4px;display:inline-flex;position:relative}.limit-sign{box-sizing:border-box;background:#fff;border:11px solid #c8102e;border-radius:50%;justify-content:center;align-items:center;width:88px;height:88px;display:flex}.limit-sign.unknown{border-color:#6b7570}.limit-number{color:#000;font-variant-numeric:tabular-nums;font-size:2rem;font-weight:900;line-height:1}.limit-source{font-size:.85rem;font-weight:700}.limit-info{border:2px solid var(--border);background:var(--bg);min-width:44px;min-height:44px;color:var(--fg);border-radius:50%;font-style:italic;font-weight:800;position:absolute;top:-6px;right:-14px}.limit-info[aria-disabled=true]{opacity:.5}.sheet{background:var(--bg);color:var(--fg);border-top:2px solid var(--border);z-index:10;padding:20px 16px 28px;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 24px #00000040}.speed-readout{border-radius:var(--radius);border:4px solid #0000;align-items:baseline;gap:6px;padding:8px 14px;display:inline-flex}.speed-number{font-variant-numeric:tabular-nums;font-size:3rem;font-weight:900;line-height:1}.speed-unit{font-weight:700}.speed-readout.over,.speed-readout.well_over{border-color:var(--danger)}.speed-readout.well_over{background:var(--alert-bg)}.over-badge{color:var(--danger);font-weight:800}
