:root{--color-bg:#f5f5f3;--color-surface:#fff;--color-surface-muted:#ecece8;--color-border:#d6d6d0;--color-border-control:#8a8d96;--color-text:#22242a;--color-text-muted:#565963;--color-nav-bg:#2a2c33;--color-nav-text:#e9e9e5;--color-nav-text-muted:#b3b5bd;--color-nav-active-bg:#3c3f49;--color-accent:#4a5299;--color-accent-hover:#3d4580;--color-accent-contrast:#fff;--color-accent-soft:#e6e7f3;--color-focus:#2f3a8f;--color-focus-on-dark:#f0c02e;--color-energy:#f0c02e;--color-success:#1f6b47;--color-success-soft:#e2f1e8;--color-warning:#7d5200;--color-warning-soft:#fbf0d3;--color-danger:#a12f2a;--color-danger-soft:#f8e3e1;--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-size-xs:.8125rem;--font-size-sm:.9375rem;--font-size-md:1rem;--font-size-lg:1.1875rem;--font-size-xl:1.5rem;--font-size-2xl:1.875rem;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--line-height-tight:1.25;--line-height-base:1.5;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--radius-sm:6px;--radius-md:10px;--shadow-sm:0 1px 2px #22242a14;--shadow-md:0 4px 14px #22242a1f;--duration-fast:.12s;--duration-base:.2s;--nav-width:15rem;--content-max-width:72rem;--touch-target:2.75rem}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--font-size-md);line-height:var(--line-height-base);font-variant-numeric:tabular-nums;margin:0}h1,h2,h3{margin:0 0 var(--space-3);line-height:var(--line-height-tight);font-weight:var(--font-weight-semibold);text-wrap:balance}h1{font-size:var(--font-size-xl)}h2{font-size:var(--font-size-lg)}p{margin:0 0 var(--space-3)}a{color:var(--color-accent)}:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.nav :focus-visible{outline-color:var(--color-focus-on-dark)}.skip-link{left:var(--space-3);z-index:100;padding:var(--space-2) var(--space-4);background:var(--color-surface);color:var(--color-text);border:2px solid var(--color-focus);border-radius:var(--radius-sm);position:absolute;top:-4rem}.skip-link:focus{top:var(--space-3)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.shell{grid-template-columns:var(--nav-width) minmax(0, 1fr);min-height:100dvh;display:grid}.nav{align-self:start;gap:var(--space-5);height:100dvh;padding:var(--space-5) var(--space-4);padding-left:max(var(--space-4), env(safe-area-inset-left));background:var(--color-nav-bg);color:var(--color-nav-text);flex-direction:column;display:flex;position:sticky;top:0;overflow-y:auto}.brand{border-radius:var(--radius-sm);color:inherit;text-decoration:none;display:block}.brand-logo,.brand-mark{max-width:100%;height:auto;display:block}.nav__list{gap:var(--space-1);margin:0;padding:0;list-style:none;display:grid}.nav__link{align-items:center;gap:var(--space-3);min-height:var(--touch-target);padding:0 var(--space-3);border-radius:var(--radius-sm);color:var(--color-nav-text-muted);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-decoration:none;display:flex}.nav__link:hover{background:var(--color-nav-active-bg);color:var(--color-nav-text)}.nav__link[aria-current=page]{background:var(--color-nav-active-bg);color:var(--color-nav-text);box-shadow:inset 3px 0 0 var(--color-energy)}.nav__footer{gap:var(--space-2);font-size:var(--font-size-xs);color:var(--color-nav-text-muted);margin-top:auto;display:grid}.topbar,.nav-backdrop{display:none}.content{min-width:0;padding:var(--space-6) var(--space-6);padding-right:max(var(--space-6), env(safe-area-inset-right));padding-bottom:max(var(--space-6), env(safe-area-inset-bottom))}.content:focus{outline:none}.content__inner{max-width:var(--content-max-width);margin:0 auto}@media (width<=900px){.shell{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr)}.topbar{z-index:20;align-items:center;gap:var(--space-3);min-height:3.5rem;padding:0 var(--space-4);padding-top:env(safe-area-inset-top);padding-left:max(var(--space-4), env(safe-area-inset-left));padding-right:max(var(--space-4), env(safe-area-inset-right));background:var(--color-nav-bg);color:var(--color-nav-text);display:flex;position:sticky;top:0}.nav{z-index:40;width:min(18rem,85vw);box-shadow:var(--shadow-md);visibility:hidden;transition:transform var(--duration-base) ease, visibility 0s linear var(--duration-base);position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.nav[data-open=true]{visibility:visible;transition:transform var(--duration-base) ease;transform:none}.nav-backdrop[data-open=true]{z-index:30;background:#22242a80;display:block;position:fixed;inset:0}.content{padding:var(--space-5) var(--space-4);padding-left:max(var(--space-4), env(safe-area-inset-left));padding-right:max(var(--space-4), env(safe-area-inset-right))}}@media (width<=600px){h1{font-size:var(--font-size-lg)}}.nav__version{color:inherit;text-underline-offset:.2em;justify-self:start;text-decoration:underline}.nav__version:hover,.nav__version[aria-current=page]{color:var(--color-nav-text)}.card{padding:var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.card+.card{margin-top:var(--space-4)}.page-intro{max-width:44rem;color:var(--color-text-muted)}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--touch-target);padding:0 var(--space-4);border-radius:var(--radius-sm);font:inherit;font-weight:var(--font-weight-medium);cursor:pointer;transition:background-color var(--duration-fast) ease;border:1px solid #0000;text-decoration:none;display:inline-flex}.btn--primary{background:var(--color-accent);color:var(--color-accent-contrast)}.btn--primary:hover:not(:disabled){background:var(--color-accent-hover)}.btn--secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border-control)}.btn--secondary:hover:not(:disabled){background:var(--color-surface-muted)}.btn--danger{background:var(--color-surface);color:var(--color-danger);border-color:var(--color-danger)}.btn--ghost{color:inherit;background:0 0}.btn--ghost:hover:not(:disabled){background:var(--color-nav-active-bg)}.btn--small{min-height:2.25rem;padding:0 var(--space-3);font-size:var(--font-size-sm)}.btn:disabled{opacity:.6;cursor:not-allowed}.field{gap:var(--space-2);margin-bottom:var(--space-4);display:grid}.field__label{font-weight:var(--font-weight-medium)}.field__help{color:var(--color-text-muted);font-size:var(--font-size-sm)}.field__control{gap:var(--space-2);display:flex}.input{min-width:0;min-height:var(--touch-target);padding:0 var(--space-3);background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border-control);border-radius:var(--radius-sm);font:inherit;flex:1}.input[aria-invalid=true]{border-color:var(--color-danger);border-width:2px}.alert{gap:var(--space-3);margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);border:1px solid;align-items:flex-start;display:flex}.alert--danger{background:var(--color-danger-soft);color:var(--color-danger)}.alert--warning{background:var(--color-warning-soft);color:var(--color-warning)}.alert--success{background:var(--color-success-soft);color:var(--color-success)}.alert svg{flex:none;margin-top:.15rem}.alert__body{gap:var(--space-2);justify-items:start;min-width:0;display:grid}.alert__body span{color:var(--color-text)}.status-card{gap:var(--space-5);grid-template-columns:auto minmax(0,1fr);align-items:center;display:grid}.status-card:not(:has(.status-card__art)){grid-template-columns:minmax(0,1fr)}.status-card__art{max-width:100%;height:auto}@media (width<=600px){.status-card{text-align:center;grid-template-columns:minmax(0,1fr);justify-items:center}.status-card__art{order:-1;max-width:12rem}}.badge{padding:0 var(--space-2);border-radius:var(--radius-sm);background:var(--color-accent-soft);color:var(--color-accent);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);display:inline-block}.banner{align-items:center;gap:var(--space-2) var(--space-3);margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);border:1px solid;flex-wrap:wrap;display:flex}.banner svg{flex:none}.banner>span{flex:14rem}.banner--warning{background:var(--color-warning-soft);color:var(--color-warning)}.banner--info{background:var(--color-accent-soft);color:var(--color-accent)}.install{align-items:flex-start}.install__text{gap:var(--space-1);flex:14rem;min-width:0;display:grid}.install__text span{color:var(--color-text)}.install__steps{padding-left:var(--space-5);color:var(--color-text);margin:0}.install__actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.auth-page>.banner{top:var(--space-4);width:min(36rem,100% - 2rem);position:fixed;left:50%;transform:translate(-50%)}.auth-page{min-height:100dvh;padding:var(--space-5) var(--space-4);place-items:center;display:grid}.auth-card{width:min(26rem,100%)}.auth-card__brand{margin-bottom:var(--space-5)}.auth-card__art{max-width:100%;height:auto;margin:0 auto var(--space-4);display:block}.auth-page--state{gap:var(--space-3);flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-state{gap:var(--space-5);grid-template-columns:auto minmax(0,1fr);align-items:center;display:grid}.empty-state__art{max-width:100%;height:auto}@media (width<=600px){.empty-state{text-align:center;grid-template-columns:minmax(0,1fr);justify-items:center}.empty-state__art{order:-1;max-width:14rem}}.steps{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));margin:0;padding:0;list-style:none;display:grid}.step{padding:var(--space-4);border:1px dashed var(--color-border-control);border-radius:var(--radius-md);background:var(--color-surface)}.step h3{font-size:var(--font-size-md)}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:var(--font-size-sm)}.table th,.table td{padding:var(--space-3);text-align:left;border-bottom:1px solid var(--color-border)}.table th{color:var(--color-text-muted);font-weight:var(--font-weight-medium)}.toolbar{gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}@media (width<=600px){.table-wrap{overflow-x:visible}.table,.table tbody{display:block}.table thead{display:none}.table tr{padding:var(--space-3) 0;border-bottom:1px solid var(--color-border);display:block}.table td{justify-content:space-between;align-items:center;gap:var(--space-1) var(--space-3);padding:var(--space-1) 0;overflow-wrap:anywhere;border:0;flex-wrap:wrap;display:flex}.table td:before{content:attr(data-label);color:var(--color-text-muted)}}.changelog{gap:var(--space-4);display:grid}.changelog__head{align-items:baseline;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.changelog__head h2{margin:0}.changelog__date{color:var(--color-text-muted);font-size:var(--font-size-sm)}.changelog__group h3{align-items:center;gap:var(--space-2);margin:var(--space-4) 0 var(--space-2);font-size:var(--font-size-md);display:flex}.changelog__group ul{gap:var(--space-2);margin:0;padding-left:1.25rem;display:grid}.filters{gap:0 var(--space-4);grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));align-items:end;display:grid}.filters__actions,.form-actions{gap:var(--space-2);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.form-actions{margin:var(--space-5) 0 0}.toolbar__actions{gap:var(--space-2);flex-wrap:wrap;display:flex}select.input{padding-right:var(--space-2)}.pager{justify-content:center;align-items:center;gap:var(--space-4);margin-top:var(--space-4);display:flex}.facts{gap:var(--space-4);margin-bottom:var(--space-5);grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));display:grid}.facts .card+.card{margin-top:0}.facts dl{gap:var(--space-2);margin:0;display:grid}.facts dl>div{justify-content:space-between;gap:var(--space-1) var(--space-3);flex-wrap:wrap;display:flex}.facts dt{color:var(--color-text-muted)}.facts dd{font-weight:var(--font-weight-medium);overflow-wrap:anywhere;margin:0}.form-grid{gap:0 var(--space-4);grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));display:grid}.field__error{color:var(--color-danger);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.recent{gap:var(--space-2);margin:0 0 var(--space-4);padding:0;list-style:none;display:grid}.recent li{justify-content:space-between;gap:var(--space-1) var(--space-3);flex-wrap:wrap;display:flex}.mode-switch{gap:var(--space-2);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.textarea{min-height:14rem;padding:var(--space-3);resize:vertical;line-height:1.5}.badge--detected,.badge--uncertain{margin-left:var(--space-2)}.badge--uncertain{background:var(--color-warning-soft);color:var(--color-warning)}.field--detected .input{border-left:4px solid var(--color-accent)}.field--uncertain .input{border-left:4px solid var(--color-warning)}.review p{align-items:flex-start;gap:var(--space-2);display:flex}.review__notes{margin:0;padding-left:1.1rem}.images__list{gap:var(--space-3);margin:0 0 var(--space-4);padding:0;list-style:none;display:grid}.images__item{gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);grid-template-columns:5rem 1fr;align-items:center;display:grid}.images__thumb{object-fit:cover;border-radius:var(--radius-sm);background:var(--color-border);width:5rem;height:5rem}.images__meta{gap:var(--space-1);overflow-wrap:anywhere;min-width:0;display:grid}.images__actions{gap:var(--space-1);flex-wrap:wrap;grid-column:1/-1;display:flex}@media (width>=640px){.images__item{grid-template-columns:5rem 1fr auto}.images__actions{grid-column:auto}}.subnav{gap:var(--space-2);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.subnav a{min-height:var(--touch-target);padding:0 var(--space-4);border:1px solid var(--color-border-control);border-radius:var(--radius-sm);color:var(--color-text);background:var(--color-surface);align-items:center;text-decoration:none;display:inline-flex}.subnav a[aria-current=page]{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-contrast)}.local-notice{margin:0 0 var(--space-4);padding:var(--space-3) var(--space-4);border-left:4px solid var(--color-energy);background:var(--color-surface-muted);color:var(--color-text)}.favorite{align-items:center;gap:var(--space-2);min-width:var(--touch-target);min-height:var(--touch-target);padding:0 var(--space-2);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;display:inline-flex}.favorite:hover{background:var(--color-surface-muted)}.favorite--on{color:var(--color-accent)}.favorite--labelled{border-color:var(--color-border-control);background:var(--color-surface);padding:0 var(--space-3)}.vehicle-cell{align-items:center;gap:var(--space-2);display:inline-flex}.vehicle-list{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.vehicle{justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;display:flex}.vehicle+.vehicle{margin-top:0}.vehicle__main{flex:18rem;min-width:0}.vehicle__main h2{align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);display:flex}.vehicle__facts{gap:var(--space-1) var(--space-3);grid-template-columns:auto minmax(0,1fr);margin:0;display:grid}.vehicle__facts dt{color:var(--color-text-muted)}.vehicle__facts dd{margin:0}.import-preview{margin-top:var(--space-4);padding:var(--space-4);border:1px solid var(--color-border-control);border-radius:var(--radius-md);background:var(--color-surface-muted)}.choices{gap:var(--space-3);margin:var(--space-3) 0;border:0;padding:0;display:grid}.choices label{gap:var(--space-3);align-items:flex-start;display:flex}.choices label>span{gap:var(--space-1);display:grid}.measured__row{gap:var(--space-2);grid-template-columns:minmax(0,1fr) minmax(8rem,11rem);display:grid}.badge--actual{background:var(--color-success-soft);color:var(--color-success)}.badge--estimate{background:var(--color-warning-soft);color:var(--color-warning)}.badge--reference{align-items:center;gap:var(--space-1);background:var(--color-accent-soft);color:var(--color-accent);font-weight:var(--font-weight-semibold);display:inline-flex}.vehicle--reference{border-left:4px solid var(--color-accent)}.vehicle__costs{margin-top:var(--space-3)}.vehicle__costs h3{margin:0 0 var(--space-2)}.vehicle__fact{display:contents}.muted{color:var(--color-text-muted)}.chart{margin:0}.chart__svg{width:100%;max-width:44rem;height:auto}.chart__grid{stroke:var(--color-border);stroke-width:1px}.chart__label{fill:var(--color-text-muted);font-size:11px}.chart__line{stroke-width:2.5px}.chart__line--baseline{stroke:var(--color-text);stroke-dasharray:7 5}.chart__line--candidate{stroke:var(--color-accent)}.chart__break{stroke:var(--color-energy);stroke-width:2px}.chart__legend{gap:var(--space-4);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.chart__key:before{content:"";width:1.6rem;margin-right:var(--space-2);vertical-align:middle;border-top:3px solid var(--color-accent);display:inline-block}.chart__key--baseline:before{border-top:3px dashed var(--color-text)}.reference-hint{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-3);margin:0 0 var(--space-4);padding:var(--space-2) var(--space-3);border:1px dashed var(--color-border-control);border-radius:var(--radius-sm);background:var(--color-surface-muted);color:var(--color-text);font-size:var(--font-size-sm);flex-wrap:wrap;display:flex}.reference-hint>span{flex:18rem}.history{gap:var(--space-4);grid-template-columns:minmax(16rem,22rem) 1fr;align-items:start;display:grid}.history__list{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.history__item{gap:var(--space-1);width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-control);border-radius:var(--radius-sm);background:var(--color-surface-muted);color:var(--color-text);font:inherit;text-align:left;cursor:pointer;display:grid}.history__item--active{border-width:2px;border-color:var(--color-text)}.history__detail{margin-top:0}@media (width<=760px){.history{grid-template-columns:1fr}}.alert-list{gap:var(--space-3);margin:var(--space-4) 0;padding:0;list-style:none;display:grid}.alert-item h2{margin:0 0 var(--space-2);font-size:var(--font-size-lg)}.alert-item p{margin:0 0 var(--space-2)}.alert-item--dismissed{opacity:.7}
