:root{color-scheme:light;--bg:#f4f3ee;--surface:#fffefa;--ink:#20231e;--muted:#62655c;--line:#d4d6cb;--accent:#efb338;--accent-ink:#2f240a;--warn:#885000;--danger:#a03422;--soft:#edece5;--focus:#805200;--radius:8px;--space:24px;font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px;line-height:1.5}
:root[data-theme=dark]{color-scheme:dark;--bg:#181b18;--surface:#222622;--ink:#eeeee6;--muted:#b0b6aa;--line:#444b40;--accent:#efb338;--accent-ink:#2f240a;--warn:#ffc970;--danger:#ffa995;--soft:#2b302a;--focus:#efb338}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit;color:inherit}button,a,input,select,textarea{touch-action:manipulation}button{min-height:44px;padding:10px 16px;border:1px solid var(--line);border-radius:6px;background:var(--surface);cursor:pointer;font-weight:600}button:hover{border-color:var(--ink)}button:disabled{opacity:.6;cursor:wait}a{color:inherit;text-underline-offset:4px}a:hover{text-decoration-thickness:2px}a,button,input,select,textarea,summary{outline-offset:4px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--focus)}h1,h2,h3,p{margin:0}h1{font-size:clamp(2.3rem,5vw,3.75rem);letter-spacing:-.055em;line-height:1.08;font-weight:650}h2{font-size:1.5rem;letter-spacing:-.035em;line-height:1.25}h3{font-size:1.1rem;line-height:1.35}small,.muted{color:var(--muted)}small{font-size:.85rem}.shell{max-width:1100px;margin:auto;padding:0 40px}.header{display:flex;align-items:center;gap:32px;min-height:104px;border-bottom:1px solid var(--line)}.wordmark{display:flex;align-items:center;gap:10px;font-size:1.5rem;font-weight:750;letter-spacing:-.07em;text-decoration:none}.wordmark span:first-child{font-weight:400}.brand-icon{width:32px;height:32px;flex:none}.brand-copy{display:flex;flex-direction:column;gap:4px}.brand-name{font-size:1.5rem;line-height:1.1;letter-spacing:-.06em}.brand-tagline{font-size:.7rem;line-height:1.4;font-weight:400;letter-spacing:0;color:var(--muted)}.header nav{display:flex;gap:12px;margin-left:auto}.header nav a{padding:12px 10px;text-decoration:none;color:var(--muted);font-weight:500;min-height:44px}.header nav a[aria-current=page]{color:var(--ink);box-shadow:inset 0 -2px var(--ink)}.theme-toggle{background:transparent;border:0;font-size:24px;padding:8px 12px}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin:48px 0 32px}.section-number{color:var(--muted);font-size:.85rem;margin-bottom:12px;font-variant-numeric:tabular-nums}.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:700}.primary:hover{border-color:var(--accent-ink)}.text-button{padding:10px 8px;border:0;background:transparent;text-decoration:underline;text-underline-offset:4px}.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.empty{padding:52px 0 72px;max-width:520px}.empty h2{font-size:clamp(1.7rem,4vw,2.5rem);letter-spacing:-.04em}.empty p{color:var(--muted);margin:16px 0 24px;max-width:42ch}.vehicle-list{display:grid;gap:20px}.vehicle-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:28px;display:grid;grid-template-columns:1fr 1fr;gap:24px 48px}.vehicle-title{display:block;text-decoration:none;margin-bottom:6px}.vehicle-title:hover h2{text-decoration:underline}.vehicle-meta{font-size:.9rem;color:var(--muted)}.odometer{font-size:clamp(2rem,5vw,3rem);letter-spacing:-.055em;font-weight:650;font-variant-numeric:tabular-nums;line-height:1.1;margin-top:22px}.odometer span{font-size:1rem;letter-spacing:0;font-weight:400;color:var(--muted);margin-left:7px}.record-date{margin-top:8px;font-size:.85rem;color:var(--muted)}.schedule-block{border-left:1px solid var(--line);padding-left:32px}.schedule-block h3{margin-bottom:14px}.schedule{list-style:none;padding:0;margin:0}.schedule li{padding:12px 0;border-bottom:1px solid var(--line)}.schedule li:last-child{border:0}.schedule-name{display:flex;align-items:baseline;gap:12px;justify-content:space-between}.state{font-size:.8rem;font-weight:650;color:var(--muted)}.state.due{color:var(--danger)}.state.soon{color:var(--warn)}.schedule-target{font-size:.9rem;color:var(--muted);margin-top:3px}.vehicle-card>.actions{grid-column:1/-1;border-top:1px solid var(--line);padding-top:18px}.section{margin:32px 0}.section-title{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.note{font-size:.85rem;color:var(--muted);margin:16px 0}.sync-footer{border-top:1px solid var(--line);display:flex;align-items:center;gap:12px;margin-top:48px;padding:22px 0 28px;color:var(--muted);font-size:.8rem;flex-wrap:wrap}.sync-footer p{flex:1;min-width:170px}.footer-links{display:flex;gap:16px}.filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;background:var(--soft);border-radius:var(--radius);padding:20px;margin-bottom:24px}.filters .wide{grid-column:span 2}label{display:block;font-size:.85rem;font-weight:600}input,select,textarea{display:block;width:100%;min-height:46px;margin-top:7px;border:1px solid var(--line);border-radius:5px;background:var(--surface);padding:10px 12px;font-size:1rem;font-weight:400}textarea{min-height:100px;resize:vertical}input[type=checkbox]{display:inline-block;width:20px;min-height:20px;margin:0 9px 0 0;vertical-align:middle}.checkbox{display:flex;align-items:center;gap:6px;line-height:1.5;font-weight:400}.record-list{list-style:none;padding:0;margin:0}.record-row{display:grid;grid-template-columns:120px 1fr auto;gap:24px;padding:22px 0;border-bottom:1px solid var(--line)}.record-row time{font-size:.9rem;color:var(--muted)}.record-row h3{margin-bottom:6px}.record-row .cost{font-variant-numeric:tabular-nums;font-weight:650;text-align:right}.record-row .text-button{font-size:.85rem;padding-right:0}.record-content{min-width:0;overflow-wrap:anywhere}.report-total{display:flex;align-items:baseline;justify-content:space-between;gap:24px;border-block:1px solid var(--line);padding:24px 0;margin:24px 0}.report-total strong{font-size:clamp(1.5rem,5vw,2.5rem);font-weight:650;letter-spacing:-.04em}.report-summary{display:flex;gap:24px;flex-wrap:wrap;margin-bottom:24px}.settings-section{display:grid;grid-template-columns:240px minmax(0,1fr);gap:32px;border-top:1px solid var(--line);padding:28px 0}.settings-section h2{font-size:1.2rem}.settings-section p{margin:0 0 16px;color:var(--muted);max-width:55ch}.settings-section .form-grid{margin:0}.danger{color:var(--danger)}dialog{padding:28px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:12px;width:calc(100% - 32px);max-width:620px;max-height:calc(100dvh - 48px);overflow:auto;box-shadow:0 20px 60px #0003}dialog::backdrop{background:#0008}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.dialog-head h2{font-size:1.5rem}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);padding-top:18px;margin-top:24px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.full{grid-column:1/-1}.item-row{display:grid;grid-template-columns:1fr 1.2fr 100px 44px;gap:8px;margin:10px 0}.item-row input,.item-row select{margin-top:0}.item-row button{padding:8px}.field-section{margin-top:24px;border-top:1px solid var(--line);padding-top:20px}.field-section>label{margin-bottom:10px}.photo-list{display:flex;flex-wrap:wrap;gap:12px;margin:16px 0}.photo-preview{width:calc(33.333% - 8px);min-width:110px}.photo-preview img{display:block;width:100%;height:140px;object-fit:contain;background:var(--soft);border:1px solid var(--line);border-radius:5px;cursor:zoom-in}.photo-preview button{font-size:.8rem;min-height:44px;width:100%}.photo-preview small{display:block}.form-error{color:var(--danger);margin-top:16px;font-weight:500}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:14px 20px;border-radius:6px;max-width:calc(100% - 32px);z-index:5;box-shadow:0 4px 24px #0002}.skip{position:absolute;left:16px;top:-80px;background:var(--surface);padding:12px;z-index:10}.skip:focus{top:12px}.legal{max-width:720px;margin:48px auto 72px}.legal h1{font-size:2.5rem;margin-bottom:20px}.legal h2{margin:32px 0 12px;font-size:1.3rem}.legal p,.legal li{margin:12px 0;color:var(--muted)}.legal a{color:var(--ink)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left}th,td{padding:12px;border-bottom:1px solid var(--line)}th{font-weight:600}.crop-canvas{display:block;width:100%;max-height:65vh;object-fit:contain;touch-action:none}.crop-overlay{position:fixed;inset:0;z-index:20;background:var(--bg);display:flex;flex-direction:column;align-items:center;padding:24px;gap:12px;overflow:auto}.crop-overlay .actions{justify-content:center}.large-photo{max-width:100%;max-height:65vh;object-fit:contain}.conflict-version{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.85rem;background:var(--soft);padding:14px;margin:12px 0}
@media(max-width:760px){.shell{padding:0 24px}.header{min-height:84px;flex-wrap:wrap;gap:0}.wordmark{flex:1}.header nav{order:3;width:100%;margin:0;justify-content:space-between;gap:0;border-top:1px solid var(--line)}.header nav a{font-size:.85rem;padding:12px 4px}.theme-toggle{margin:12px 0}.page-heading{margin:32px 0 24px;align-items:flex-start}h1{font-size:2.5rem}.page-heading>.actions{max-width:45%;justify-content:flex-end}.page-heading button{font-size:.85rem;padding:10px 12px}.vehicle-card{grid-template-columns:1fr;padding:22px;gap:20px}.schedule-block{border-left:0;border-top:1px solid var(--line);padding:20px 0 0}.odometer{font-size:2.8rem;margin-top:18px}.vehicle-card>.actions{gap:8px}.vehicle-card>.actions button{flex:1;font-size:.85rem;padding:10px}.filters{grid-template-columns:repeat(2,minmax(0,1fr));padding:16px;gap:12px}.filters label{font-size:.8rem}.filters input,.filters select{font-size:.9rem}.record-row{grid-template-columns:1fr auto;gap:8px 16px;padding:20px 0}.record-row time{grid-column:1/-1;font-size:.8rem}.record-row .cost{font-size:.95rem}.settings-section{grid-template-columns:1fr;gap:16px;padding:24px 0}.settings-section .actions button{width:100%}.sync-footer{margin-top:32px}.footer-links{width:100%;margin-top:8px}.form-grid{gap:14px}.item-row{grid-template-columns:1fr 44px;padding-bottom:16px;border-bottom:1px solid var(--line)}.item-row select{grid-column:1}.item-row .item-name{grid-column:1;grid-row:2}.item-row .item-amount{grid-column:1;grid-row:3}.item-row button{grid-column:2;grid-row:1}.dialog-head h2{font-size:1.3rem}dialog{padding:22px;max-height:calc(100dvh - 24px)}.empty{padding:32px 0 48px}.report-total{display:block}.report-total strong{display:block;margin-top:8px}.section-title{align-items:flex-start}.crop-overlay{padding:16px}}
@media(max-width:360px){.shell{padding:0 18px}.page-heading{flex-wrap:wrap}.page-heading>.actions{max-width:100%}.form-grid{grid-template-columns:1fr}.full{grid-column:1}.filters{grid-template-columns:1fr}.filters .wide{grid-column:1}}
@media(prefers-reduced-motion:no-preference){button,a{transition:background-color .12s,border-color .12s}dialog[open]{animation:enter .12s ease-out}@keyframes enter{from{transform:translateY(6px);opacity:.7}to{transform:none;opacity:1}}}
.photo-open{padding:0!important}
h1,h2,h3{overflow-wrap:anywhere}.page-heading>div:first-child{min-width:0;flex:1}.vehicle-title,.vehicle-meta{overflow-wrap:anywhere}.record-row .cost{overflow-wrap:anywhere;max-width:210px}
.crop-overlay{margin:0;max-width:none;max-height:none;width:100vw;height:100dvh;border:0;border-radius:0;box-shadow:none}.crop-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;width:min(100%,520px)}.crop-fields input{padding:8px;min-width:0}.crop-fields label{font-size:.8rem}.crop-canvas{max-width:900px;max-height:55vh}
@media print{body{background:white;color:black}.header,.sync-footer,.page-heading>.actions,.filters,.report-actions,.text-button,.skip,dialog,.toast{display:none!important}.shell{max-width:none;padding:0}.page-heading{margin:0 0 24px}h1{font-size:28pt}.report-total{break-inside:avoid}.record-row{break-inside:avoid;border-color:#aaa}.muted,.record-row time,.note{color:#333}.section-number{display:none}@page{size:A4;margin:18mm}}
