:root{--bg: #f4f6fb;--surface: #ffffff;--surface-2: #f1f4fa;--card: var(--surface);--navy: #0b1b45;--primary: #2563eb;--primary-strong: #1d4ed8;--primary-soft: #e9f0ff;--primary-ring: rgb(37 99 235 / 22%);--hero: linear-gradient(135deg, #0b1b45 0%, #1a3a9a 58%, #2f6df6 100%);--success: #16a34a;--success-soft: #e8f7ee;--success-text: #15803d;--warning: #e08a00;--warning-soft: #fff6e5;--warning-text: #8a4b08;--danger: #dc2626;--danger-strong: #c81e1e;--danger-soft: #fdeeee;--danger-text: #b91c1c;--text: #0f172a;--text-2: #334155;--muted: #5b6474;--border: #e3e8f1;--noride: #e8ecf3;--skeleton: #e9edf4;--r-sm: 8px;--r: 14px;--r-lg: 20px;--shadow-sm: 0 1px 2px rgb(15 23 42 / 4%), 0 1px 1px rgb(15 23 42 / 3%);--shadow: 0 1px 2px rgb(15 23 42 / 4%), 0 4px 14px rgb(15 23 42 / 6%);--shadow-lg: 0 12px 32px rgb(15 23 42 / 14%);--ease: cubic-bezier(.2, .8, .2, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--fast: .16s;--med: .28s;--nav-h: 68px;color-scheme:light}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;scroll-behavior:smooth}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-family:Inter,Segoe UI,system-ui,-apple-system,Roboto,sans-serif;font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;line-height:1.25;letter-spacing:-.015em}p{margin:0}a{color:var(--primary-strong)}button,input,select,textarea{font:inherit;color:inherit}.num,.stat-value,.hero-value,table{font-variant-numeric:tabular-nums}:focus-visible{outline:3px solid var(--primary-ring);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.skip-link{position:absolute;left:-999px;top:8px;z-index:100;background:var(--surface);padding:8px 12px;border-radius:var(--r-sm)}.skip-link:focus{left:8px}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:scale(.6)}70%{transform:scale(1.08)}to{opacity:1;transform:none}}@keyframes sheet-up{0%{transform:translateY(100%)}}@keyframes zoom-in{0%{opacity:0;transform:translateY(8px) scale(.97)}}@keyframes shimmer{to{background-position:-200% 0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-.8px)}}@keyframes speed{0%{transform:translate(6px);opacity:0}40%{opacity:.9}to{transform:translate(-6px);opacity:0}}@keyframes road{to{background-position:-48px 0}}@keyframes grow{0%{transform:scaleX(0)}}@keyframes draw{0%{stroke-dashoffset:30}to{stroke-dashoffset:0}}@keyframes pulse-ring{0%{box-shadow:0 0 #2563eb73}70%{box-shadow:0 0 0 12px #2563eb00}to{box-shadow:0 0 #2563eb00}}.page{animation:fade var(--med) var(--ease) both}.page>.stack>*,.page>.card,.page>form,.stat-grid>*{animation:rise .48s var(--ease) both}.page>.stack>:nth-child(2){animation-delay:50ms}.page>.stack>:nth-child(3){animation-delay:.1s}.page>.stack>:nth-child(4){animation-delay:.15s}.page>.stack>:nth-child(5){animation-delay:.2s}.page>.stack>:nth-child(6){animation-delay:.25s}.page>.stack>:nth-child(n+7){animation-delay:.3s}.stat-grid>:nth-child(2){animation-delay:60ms}.stat-grid>:nth-child(3){animation-delay:.12s}.stat-grid>:nth-child(4){animation-delay:.18s}.stat-grid>:nth-child(n+5){animation-delay:.24s}.list>*{animation:rise .42s var(--ease) both}.list>:nth-child(2){animation-delay:40ms}.list>:nth-child(3){animation-delay:80ms}.list>:nth-child(n+4){animation-delay:.12s}.bike-logo{display:block;overflow:visible}.bike-logo .bike-wheel{transform-box:fill-box;transform-origin:center}.bike-logo .bike-speed path{opacity:0}.bike-logo.is-animated .bike-wheel{animation:spin .9s linear infinite}.bike-logo.is-animated .bike-body{animation:bob .45s ease-in-out infinite}.bike-logo.is-animated .bike-speed path{animation:speed .9s linear infinite}.bike-logo.is-animated .bike-speed path:nth-child(2){animation-delay:.3s}.bike-logo.is-animated .bike-speed path:nth-child(3){animation-delay:.6s}.brand-mark{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--hero);color:#fff;box-shadow:0 4px 12px #1d4ed859;flex-shrink:0}.layout{display:flex;min-height:100vh}.content{flex:1;min-width:0}.main{max-width:980px;margin:0 auto;padding:8px 16px calc(var(--nav-h) + 36px + env(safe-area-inset-bottom))}.main:focus{outline:none}.top-bar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:calc(10px + env(safe-area-inset-top)) 8px 10px 16px;background:#f4f6fbd1;backdrop-filter:saturate(1.6) blur(14px);-webkit-backdrop-filter:saturate(1.6) blur(14px)}.top-title{font-size:1.2rem;font-weight:700}.top-brand{display:flex;align-items:center;gap:10px}.top-brand .brand-mark{width:36px;height:36px;border-radius:10px}.top-actions{display:flex;gap:2px}.side-nav{display:none}.bottom-nav{position:fixed;left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:20;display:grid;grid-template-columns:repeat(5,1fr);align-items:center;height:var(--nav-h);padding:0 6px;background:#fffffff0;backdrop-filter:saturate(1.6) blur(16px);-webkit-backdrop-filter:saturate(1.6) blur(16px);border:1px solid var(--border);border-radius:22px;box-shadow:var(--shadow-lg)}.bn-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;height:100%;min-width:44px;color:var(--muted);text-decoration:none;font-size:.68rem;font-weight:500;transition:color var(--fast) var(--ease)}.bn-icon{display:grid;place-items:center;width:46px;height:30px;border-radius:999px;transition:background var(--med) var(--ease),transform var(--med) var(--ease-spring)}.bn-item.active{color:var(--primary-strong);font-weight:600}.bn-item.active .bn-icon{background:var(--primary-soft);transform:translateY(-1px)}.bn-item:active .bn-icon{transform:scale(.9)}.bn-add .bn-icon{width:56px;height:56px;margin-top:-26px;border-radius:18px;background:var(--hero);color:#fff;box-shadow:0 8px 20px #1d4ed866;animation:pulse-ring 2.8s ease-out 1s 2}.bn-add.active .bn-icon{background:var(--hero);transform:rotate(90deg)}@media(min-width:900px){.bottom-nav,.top-actions{display:none}.main{padding:8px 36px 56px}.top-bar{position:static;max-width:980px;margin:0 auto;padding:28px 36px 8px;background:none;backdrop-filter:none;-webkit-backdrop-filter:none}.top-title{font-size:1.65rem}.top-brand .brand-mark{display:none}.side-nav{position:sticky;top:0;display:flex;flex-direction:column;gap:2px;width:252px;height:100vh;padding:22px 14px;background:var(--navy);background-image:radial-gradient(circle at 0% 0%,rgb(47 109 246 / 28%),transparent 55%),radial-gradient(circle at 100% 100%,rgb(47 109 246 / 16%),transparent 50%);color:#dbe3f4}.brand{display:flex;align-items:center;gap:12px;padding:2px 8px 22px;font-size:1.2rem;font-weight:700;color:#fff}.brand small{display:block;font-size:.72rem;font-weight:500;color:#9fb0d4;letter-spacing:.02em}.brand .brand-mark{background:#ffffff1a;box-shadow:inset 0 0 0 1px #ffffff24}.side-add{margin-bottom:16px;background:#2f6df6;box-shadow:0 6px 18px #2f6df659}.sn-item{position:relative;display:flex;align-items:center;gap:12px;min-height:44px;padding:10px 14px;border-radius:10px;color:#c3cde3;text-decoration:none;font-weight:500;transition:background var(--fast) var(--ease),color var(--fast) var(--ease),transform var(--fast) var(--ease)}.sn-item:hover{background:#ffffff12;color:#fff;transform:translate(2px)}.sn-item.active{background:#ffffff1f;color:#fff}.sn-item.active:before{content:"";position:absolute;left:-14px;top:10px;bottom:10px;width:4px;border-radius:0 4px 4px 0;background:#60a5fa;animation:fade var(--med) var(--ease)}}.stack{display:flex;flex-direction:column;gap:16px}.list{display:flex;flex-direction:column;gap:10px;margin:0;padding:0;list-style:none}.grid-2{display:grid;gap:16px}@media(min-width:720px){.grid-2{grid-template-columns:1fr 1fr}}.row-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:380px){.row-2{grid-template-columns:1fr}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow-sm);padding:18px}.card-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:12px}.card-head .card-title{margin:0}.card-title{font-size:1rem;font-weight:650;margin-bottom:12px}.section-title{font-size:.78rem;font-weight:650;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:6px 2px -4px}.muted{color:var(--muted)}.small{font-size:.85rem}.center{text-align:center}.tone-good{color:var(--success-text)}.tone-bad{color:var(--danger-text)}.note{font-size:.85rem;color:var(--muted);background:var(--surface);border:1px dashed var(--border);border-radius:var(--r);padding:12px 14px}.greet{padding:4px 2px 0}.greet-hello{font-size:1.35rem;font-weight:700;letter-spacing:-.02em}.greet-date{color:var(--muted);font-size:.9rem}.hero{position:relative;overflow:hidden;padding:20px 20px 34px;border-radius:var(--r-lg);background:var(--hero);color:#fff;box-shadow:0 14px 34px #13296b4d;isolation:isolate}.hero:before,.hero:after{content:"";position:absolute;z-index:-1;border-radius:50%;background:#ffffff12}.hero:before{width:260px;height:260px;right:-80px;top:-120px}.hero:after{width:160px;height:160px;right:70px;bottom:-110px;background:#ffffff0d}.hero-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.hero-chip{display:inline-flex;align-items:center;gap:8px;padding:5px 12px;border-radius:999px;background:#ffffff24;font-size:.82rem;font-weight:600}.hero-chip .dot{box-shadow:0 0 0 2px #ffffffb3}.hero-meta{font-size:.8rem;color:#c7d4f3}.hero-main{display:flex;align-items:flex-end;justify-content:space-between;gap:8px;margin-top:18px}.hero-label{font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#c7d4f3}.hero-value{display:flex;align-items:baseline;gap:8px;margin:2px 0 10px;font-size:2.6rem;font-weight:750;letter-spacing:-.03em;line-height:1.1}.hero-empty{font-size:1.8rem;opacity:.85}.hero-unit{font-size:1rem;font-weight:600;color:#c7d4f3;letter-spacing:0}.hero-badge{display:inline-block;padding:4px 10px;border-radius:999px;background:#ffffff24;font-size:.78rem;font-weight:600}.hero-badge.up{background:#22c55e38;color:#bbf7d0}.hero-badge.down{background:#ef444438;color:#fecaca}.hero-bike{flex-shrink:0;color:#ffffffeb;filter:drop-shadow(0 6px 10px rgb(0 0 0 / 20%));margin-bottom:-6px}.hero-road{position:absolute;left:0;right:0;bottom:16px;height:3px;background-image:linear-gradient(90deg,rgb(255 255 255 / 45%) 0 24px,transparent 24px 48px);background-size:48px 3px;animation:road .9s linear infinite;opacity:.6}@media(max-width:400px){.hero-value{font-size:2.15rem}.hero-bike{width:96px;height:72px}}.quick{display:grid;grid-template-columns:1.3fr 1fr;gap:10px}.quick>:only-child{grid-column:1 / -1}@media(max-width:380px){.quick{grid-template-columns:1fr}}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:10px 18px;border:1px solid transparent;border-radius:12px;font-weight:600;font-size:.95rem;text-decoration:none;cursor:pointer;user-select:none;transition:background var(--fast) var(--ease),border-color var(--fast) var(--ease),box-shadow var(--fast) var(--ease),transform var(--fast) var(--ease)}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(0) scale(.97)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--primary-strong);color:#fff;box-shadow:0 4px 14px #1d4ed847}.btn-primary:hover:not(:disabled){background:#1a43c2;box-shadow:0 8px 20px #1d4ed852}.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border);box-shadow:var(--shadow-sm)}.btn-secondary:hover:not(:disabled){border-color:#cdd5e3;box-shadow:var(--shadow)}.btn-pressed{background:var(--success-soft);color:var(--success-text);border-color:#bfe6cd}.btn-danger{background:var(--danger-strong);color:#fff;box-shadow:0 4px 14px #c81e1e40}.btn-big{min-height:54px;font-size:1rem;border-radius:14px}.btn-block{width:100%}.btn-small{min-height:36px;padding:6px 12px;font-size:.85rem;border-radius:10px}.icon-btn{display:inline-grid;place-items:center;width:44px;height:44px;border:0;border-radius:12px;background:transparent;color:var(--muted);cursor:pointer;transition:background var(--fast) var(--ease),color var(--fast) var(--ease),transform var(--fast) var(--ease)}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.icon-btn:active{transform:scale(.9)}.link-btn{padding:0;border:0;background:none;color:var(--primary-strong);text-decoration:underline;cursor:pointer;font-size:inherit}.chips{display:flex;gap:8px;overflow-x:auto;padding:2px;margin:-2px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chips.wrap{flex-wrap:wrap;overflow:visible}.chip{display:inline-flex;align-items:center;gap:7px;flex-shrink:0;min-height:40px;padding:6px 15px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text-2);cursor:pointer;white-space:nowrap;font-size:.87rem;font-weight:550;box-shadow:var(--shadow-sm);transition:background var(--med) var(--ease),color var(--med) var(--ease),border-color var(--med) var(--ease),transform var(--fast) var(--ease)}.chip:hover{border-color:#cdd5e3}.chip:active{transform:scale(.95)}.chip.active{background:var(--navy);border-color:var(--navy);color:#fff;box-shadow:0 4px 12px #0b1b4538}.dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex-shrink:0}.stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}@media(min-width:720px){.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.stat{display:flex;flex-direction:column;gap:8px;padding:16px;transition:transform var(--med) var(--ease),box-shadow var(--med) var(--ease)}.stat:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.stat-top{display:flex;align-items:center;justify-content:space-between;gap:6px}.stat-label{font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-weight:650}.stat-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:var(--primary-soft);color:var(--primary-strong);flex-shrink:0}.stat-value{font-size:1.3rem;font-weight:700;line-height:1.2;letter-spacing:-.02em;overflow-wrap:anywhere}.stat-hint{font-size:.8rem;color:var(--muted)}.alert{display:flex;flex-direction:column;gap:6px;padding:13px 15px;border-radius:12px;font-size:.9rem;border:1px solid transparent;animation:rise .36s var(--ease) both}.alert ul{margin:0;padding-left:18px}.alert-info{background:var(--primary-soft);border-color:#d3e0ff;color:#1e3a8a}.alert-warning{background:var(--warning-soft);border-color:#fbe2b2;color:var(--warning-text)}.alert-error{background:var(--danger-soft);border-color:#f8cccc;color:var(--danger-text)}.alert-error .btn{align-self:flex-start}.empty{display:flex;flex-direction:column;align-items:center;gap:10px;padding:40px 22px;text-align:center}.empty h2{font-size:1.15rem}.empty p{max-width:34ch}.empty .btn{margin-top:6px}.empty-icon{display:grid;place-items:center;width:72px;height:72px;border-radius:22px;background:var(--primary-soft);color:var(--primary-strong);animation:pop .52s var(--ease) both}.empty-bike{width:132px;height:104px;border-radius:28px;background:var(--hero);color:#fff;box-shadow:0 12px 28px #1d4ed84d}.skeleton{display:block;background:linear-gradient(90deg,var(--skeleton) 25%,#f6f8fc 50%,var(--skeleton) 75%);background-size:200% 100%;animation:shimmer 1.3s infinite linear}.form{display:flex;flex-direction:column;gap:16px}.field{display:flex;flex-direction:column;gap:6px;min-width:0;margin:0;padding:0;border:0}.field label,.field legend{font-weight:600;font-size:.85rem;color:var(--text-2);padding:0}.field-hint{font-size:.8rem;color:var(--muted)}input:not([type=checkbox]),select,textarea{width:100%;min-height:48px;padding:11px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface);font-size:1rem;transition:border-color var(--fast) var(--ease),box-shadow var(--fast) var(--ease)}input:not([type=checkbox]):hover,select:hover{border-color:#cdd5e3}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-ring)}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%235b6474' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:40px}.toggle{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;padding:12px 14px;border:1px solid var(--border);border-radius:12px;cursor:pointer;transition:background var(--fast) var(--ease)}.toggle:hover{background:var(--surface-2)}.toggle-label{display:block;font-weight:600}.toggle-desc{display:block;font-size:.8rem;color:var(--muted)}.toggle input{position:absolute;opacity:0;width:1px;height:1px}.toggle-track{position:relative;flex-shrink:0;width:50px;height:30px;border-radius:999px;background:#cfd6e3;transition:background var(--med) var(--ease)}.toggle-track:after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 2px 4px #00000038;transition:transform var(--med) var(--ease-spring)}.toggle input:checked+.toggle-track{background:var(--primary-strong)}.toggle input:checked+.toggle-track:after{transform:translate(20px)}.toggle input:focus-visible+.toggle-track{box-shadow:0 0 0 4px var(--primary-ring)}.check{display:flex;gap:10px;align-items:flex-start}.check input{width:22px;height:22px;margin-top:2px;accent-color:var(--primary-strong)}.swatches{display:flex;flex-wrap:wrap;gap:10px}.swatch{width:44px;height:44px;border-radius:50%;border:3px solid transparent;cursor:pointer;transition:transform var(--fast) var(--ease-spring)}.swatch:hover{transform:scale(1.08)}.swatch.active{border-color:var(--text);box-shadow:inset 0 0 0 3px var(--surface);transform:scale(1.06)}.input-row{display:flex;gap:6px}.input-row .btn{flex-shrink:0;min-height:48px;animation:pop .3s var(--ease) both}.result{align-items:center;text-align:center;padding:28px 20px}.result-icon{display:grid;place-items:center;width:76px;height:76px;border-radius:50%;background:var(--success);color:#fff;box-shadow:0 10px 24px #16a34a59;animation:pop .56s var(--ease) both}.result-icon path{stroke-dasharray:30;animation:draw .5s var(--ease) .28s both}.result-head{font-size:2rem;font-weight:750;letter-spacing:-.03em}.result-sub{font-size:1rem;color:var(--text-2)}.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%;margin:4px 0}.result-grid div{padding:12px;background:var(--surface-2);border-radius:12px;text-align:left}.result-grid dt,.estimate-grid dt{font-size:.68rem;font-weight:650;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.result-grid dd,.estimate-grid dd{margin:2px 0 0;font-size:1.1rem;font-weight:700;font-variant-numeric:tabular-nums}.gauge{height:12px;border-radius:999px;background:var(--noride);overflow:hidden}.gauge span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#16a34a,#4ade80);transform-origin:left;animation:grow .9s var(--ease) both;transition:width .5s var(--ease)}.gauge.low span{background:linear-gradient(90deg,#e08a00,#fbbf24)}.estimate-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0}.estimate-grid div{padding:12px;background:var(--surface-2);border-radius:12px}.vehicle-row,.vehicle-card,.entry{position:relative;display:flex;align-items:center;gap:12px;width:100%;overflow:visible;padding:14px 14px 14px 20px;text-align:left;transition:transform var(--med) var(--ease),box-shadow var(--med) var(--ease),border-color var(--med) var(--ease)}.vehicle-row{cursor:pointer;min-height:72px}.vehicle-row:hover,.vehicle-card:hover,.entry:hover{border-color:#cdd5e3;box-shadow:var(--shadow)}.vehicle-row:active{transform:scale(.99)}.vr-avatar{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:var(--surface-2);flex-shrink:0}.color-bar{position:absolute;left:0;top:12px;bottom:12px;width:4px;border-radius:0 4px 4px 0}.vr-main,.vc-main,.entry-main{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.vr-side{display:flex;flex-direction:column;align-items:flex-end;text-align:right}.entry-side{display:flex;align-items:center;gap:2px;text-align:right}.vc-name{font-size:1.08rem}.vc-stats{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin-top:6px}.vehicle-card.archived{opacity:.7}.archived-list summary{min-height:44px;padding:10px 2px;cursor:pointer;color:var(--muted);font-weight:600}.entry-top{display:flex;gap:8px;align-items:center}.entry-note{overflow-wrap:anywhere;color:var(--text-2)}.badge{padding:2px 9px;border-radius:999px;background:var(--warning-soft);color:var(--warning-text);font-size:.72rem;font-weight:650}.group-title{display:flex;justify-content:space-between;align-items:baseline;margin:10px 2px;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.group-title .small{text-transform:none;letter-spacing:0;font-weight:650;color:var(--text)}.menu-wrap{position:relative}.menu{position:absolute;right:0;top:46px;z-index:15;display:flex;flex-direction:column;min-width:170px;padding:6px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-lg);transform-origin:top right;animation:zoom-in .18s var(--ease) both}.menu button{display:flex;align-items:center;gap:10px;min-height:44px;padding:8px 12px;border:0;border-radius:10px;background:none;text-align:left;cursor:pointer;font-weight:500;transition:background var(--fast) var(--ease)}.menu button:hover{background:var(--surface-2)}.menu .danger{color:var(--danger-text)}.modal{width:min(480px,calc(100vw - 24px));max-height:calc(100vh - 48px);padding:0;border:0;border-radius:var(--r-lg);background:var(--surface);color:var(--text);box-shadow:var(--shadow-lg)}.modal[open]{animation:zoom-in .26s var(--ease) both}.modal::backdrop{background:#0b1b4573;backdrop-filter:blur(3px);animation:fade .26s var(--ease) both}.modal-body{padding:18px 20px 22px}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.modal-head h2{font-size:1.15rem}@media(max-width:600px){.modal{margin:auto 0 0;width:100vw;max-width:100vw;border-radius:24px 24px 0 0;padding-bottom:env(safe-area-inset-bottom)}.modal[open]{animation:sheet-up .34s var(--ease) both}.modal-body:before{content:"";display:block;width:40px;height:5px;margin:-6px auto 12px;border-radius:999px;background:var(--border)}}.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.cal-title{font-size:1.05rem}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.cal-wd{padding:4px 0;text-align:center;font-size:.68rem;font-weight:650;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.cal-day{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;aspect-ratio:1;min-height:42px;border:1px solid transparent;border-radius:12px;background:var(--surface-2);cursor:pointer;font-size:.9rem;font-weight:550;transition:transform var(--fast) var(--ease),background var(--med) var(--ease),box-shadow var(--fast) var(--ease)}.cal-day:hover{transform:translateY(-2px);box-shadow:var(--shadow);background:var(--surface)}.cal-day:active{transform:scale(.94)}.cal-day.no-ride{background:repeating-linear-gradient(135deg,#e3e8f1 0 6px,#edf0f6 6px 12px);color:var(--muted)}.cal-day.has-fuel{background:var(--primary-soft);color:var(--primary-strong)}.cal-day.today{border-color:var(--primary-strong);box-shadow:0 0 0 3px var(--primary-ring);font-weight:750}.legend{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:14px;font-size:.8rem;color:var(--muted)}.legend>span{display:inline-flex;align-items:center;gap:6px}.lg-box{display:inline-block;width:14px;height:14px;border-radius:5px}.lg-ride{background:var(--surface-2);border:1px solid var(--border)}.lg-noride{background:repeating-linear-gradient(135deg,#d5dbe6 0 3px,#edf0f6 3px 6px)}.lg-today{border:2px solid var(--primary-strong)}.mini-entry{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:10px;background:var(--primary-soft);color:#1e3a8a;font-size:.9rem}.table-wrap{overflow-x:auto;margin:0 -18px;padding:0 18px}table{width:100%;border-collapse:collapse;font-size:.86rem;white-space:nowrap}th,td{padding:11px 10px;border-bottom:1px solid var(--border);text-align:right}th:first-child,td:first-child,th:nth-child(2),td:nth-child(2){text-align:left}thead th{background:var(--surface-2);color:var(--muted);font-weight:650;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:0}thead th:first-child{border-radius:10px 0 0 10px}thead th:last-child{border-radius:0 10px 10px 0}tbody tr{transition:background var(--fast) var(--ease)}tbody tr:hover{background:var(--surface-2)}tbody th{font-weight:600}.chart-box{position:relative;width:100%}.toasts{position:fixed;left:50%;bottom:calc(var(--nav-h) + 24px + env(safe-area-inset-bottom));z-index:50;display:flex;flex-direction:column;gap:8px;width:min(440px,calc(100vw - 24px));transform:translate(-50%);pointer-events:none}@media(min-width:900px){.toasts{bottom:28px}}.toast{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px 13px 16px;border-radius:14px;background:#0f172a;color:#f8fafc;box-shadow:var(--shadow-lg);pointer-events:auto;font-size:.9rem;animation:rise .32s var(--ease-spring) both}.toast-success{box-shadow:inset 4px 0 #22c55e,var(--shadow-lg)}.toast-error{box-shadow:inset 4px 0 #ef4444,var(--shadow-lg)}.toast-action{min-height:36px;padding:4px 12px;border:0;border-radius:10px;background:#ffffff1a;color:#93c5fd;font-weight:700;cursor:pointer}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media(max-width:480px){.estimate-grid div{padding:10px 8px}.estimate-grid dd{font-size:.98rem;white-space:nowrap}.estimate-grid dt{font-size:.62rem}}@media(min-width:900px){.top-bar:has(.top-brand){display:none}}@keyframes live{0%{box-shadow:0 0 #16a34a8c}80%,to{box-shadow:0 0 0 8px #16a34a00}}.tracker.is-live{border-color:#bfe6cd;box-shadow:0 0 0 3px #16a34a1a,var(--shadow)}.live-pill{display:inline-flex;align-items:center;gap:7px;padding:3px 10px;border-radius:999px;background:var(--success-soft);color:var(--success-text);font-size:.78rem;font-weight:650}.live-dot{width:8px;height:8px;border-radius:50%;background:var(--success);animation:live 1.6s ease-out infinite}
