:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--bg-subtle:#faf9fb;--card-bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--ok:#22a55e;--ok-bg:#22a55e1f;--upcoming:#d19a13;--upcoming-bg:#d19a1324;--due-soon:#e2681a;--due-soon-bg:#e2681a24;--overdue:#e0393e;--overdue-bg:#e0393e24;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:16px/145% var(--sans);letter-spacing:.1px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg-subtle);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--bg-subtle:#101116;--card-bg:#1b1c23;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px;--ok:#34d17a;--ok-bg:#34d17a24;--upcoming:#e5b93a;--upcoming-bg:#e5b93a29;--due-soon:#f0894a;--due-soon-bg:#f0894a29;--overdue:#f0555a;--overdue-bg:#f0555a29}}:root[data-theme=dark]{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--bg-subtle:#101116;--card-bg:#1b1c23;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px;--ok:#34d17a;--ok-bg:#34d17a24;--upcoming:#e5b93a;--upcoming-bg:#e5b93a29;--due-soon:#f0894a;--due-soon-bg:#f0894a29;--overdue:#f0555a;--overdue-bg:#f0555a29}:root[data-accent=blue]{--accent:#3b82f6;--accent-bg:#3b82f61a;--accent-border:#3b82f680}@media (prefers-color-scheme:dark){:root[data-accent=blue]:not([data-theme=light]){--accent:#60a5fa;--accent-bg:#60a5fa26;--accent-border:#60a5fa80}}:root[data-accent=blue][data-theme=dark]{--accent:#60a5fa;--accent-bg:#60a5fa26;--accent-border:#60a5fa80}:root[data-accent=indigo]{--accent:#6366f1;--accent-bg:#6366f11a;--accent-border:#6366f180}@media (prefers-color-scheme:dark){:root[data-accent=indigo]:not([data-theme=light]){--accent:#818cf8;--accent-bg:#818cf826;--accent-border:#818cf880}}:root[data-accent=indigo][data-theme=dark]{--accent:#818cf8;--accent-bg:#818cf826;--accent-border:#818cf880}:root[data-accent=teal]{--accent:#0d9488;--accent-bg:#0d94881a;--accent-border:#0d948880}@media (prefers-color-scheme:dark){:root[data-accent=teal]:not([data-theme=light]){--accent:#2dd4bf;--accent-bg:#2dd4bf26;--accent-border:#2dd4bf80}}:root[data-accent=teal][data-theme=dark]{--accent:#2dd4bf;--accent-bg:#2dd4bf26;--accent-border:#2dd4bf80}:root[data-accent=pink]{--accent:#ec4899;--accent-bg:#ec48991a;--accent-border:#ec489980}@media (prefers-color-scheme:dark){:root[data-accent=pink]:not([data-theme=light]){--accent:#f472b6;--accent-bg:#f472b626;--accent-border:#f472b680}}:root[data-accent=pink][data-theme=dark]{--accent:#f472b6;--accent-bg:#f472b626;--accent-border:#f472b680}:root[data-accent=graphite]{--accent:#475569;--accent-bg:#4755691a;--accent-border:#47556980}@media (prefers-color-scheme:dark){:root[data-accent=graphite]:not([data-theme=light]){--accent:#94a3b8;--accent-bg:#94a3b826;--accent-border:#94a3b880}}:root[data-accent=graphite][data-theme=dark]{--accent:#94a3b8;--accent-bg:#94a3b826;--accent-border:#94a3b880}*{box-sizing:border-box}body{margin:0}#root{flex-direction:column;min-height:100svh;display:flex}h1,h2,h3{font-family:var(--heading);color:var(--text-h);margin:0;font-weight:600}h1{letter-spacing:-.3px;font-size:22px}h2{font-size:18px}h3{font-size:16px}p{margin:0}.muted{color:var(--text);font-size:14px}a{color:inherit}button{font:inherit}.page{flex-direction:column;min-height:100svh;display:flex}.app-header{border-bottom:1px solid var(--border);background:var(--bg);z-index:5;justify-content:space-between;align-items:center;padding:16px 20px;display:flex;position:sticky;top:0}.header-actions{align-items:center;gap:6px;display:flex}.page-content{flex-direction:column;flex:1;gap:12px;width:100%;max-width:640px;margin:0 auto;padding:20px;display:flex}.page-content-header{justify-content:space-between;align-items:center;margin-top:12px;display:flex}.page-content-header-actions{align-items:center;gap:8px;display:flex}.empty-state{border:1px dashed var(--border);text-align:center;color:var(--text);border-radius:12px;padding:24px}.auth-page{flex:1;justify-content:center;align-items:center;padding:20px;display:flex}.auth-card{text-align:center;flex-direction:column;gap:12px;width:100%;max-width:360px;display:flex}.auth-card h1{font-size:32px}.auth-card .form{text-align:left}.auth-divider{color:var(--text);align-items:center;gap:10px;font-size:13px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--border);flex:1;height:1px}.guest-explainer{flex-direction:column;gap:10px;display:flex}.guest-explainer p{text-align:left;font-size:13px;line-height:1.5}.btn{cursor:pointer;border:1px solid #0000;border-radius:8px;padding:10px 16px;font-size:15px;font-weight:500;transition:border-color .15s,background .15s,opacity .15s}.btn-small{padding:6px 12px;font-size:14px}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{opacity:.9}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-ghost{border-color:var(--border);color:var(--text-h);background:0 0}.btn-ghost:hover{background:var(--social-bg)}.icon-button{cursor:pointer;color:var(--text);background:0 0;border:none;padding:4px;font-size:16px;line-height:1}.icon-button:hover{color:var(--text-h)}.car-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.car-card{border:1px solid var(--border);background:var(--card-bg);color:inherit;border-radius:12px;align-items:center;gap:14px;padding:16px;text-decoration:none;transition:box-shadow .15s,border-color .15s;display:flex}.car-card:hover{box-shadow:var(--shadow);border-color:var(--accent-border)}.car-card-icon{color:var(--text);flex-shrink:0;position:relative}.concern-badge{background:var(--accent);border:2px solid var(--card-bg);border-radius:50%;width:10px;height:10px;position:absolute;top:-2px;right:-2px}.car-card-info{flex:1;min-width:0}.car-detail-header{border:1px solid var(--border);background:var(--card-bg);border-radius:12px;flex-direction:column;gap:6px;padding:16px;display:flex}.car-detail-header-top{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.care-score-block{flex-direction:column;align-items:center;gap:4px;font-size:12px;display:flex}.car-body-type-row{color:var(--text);align-items:center;gap:8px;display:flex}.vehicle-thumb-wrap{position:relative}.vehicle-thumb-button{cursor:pointer;background:0 0;border:none;border-radius:6px;padding:0;display:block}.vehicle-thumb-menu{z-index:5;background:var(--card-bg);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:10px;flex-direction:column;gap:2px;min-width:140px;padding:6px;display:flex;position:absolute;top:calc(100% + 4px);left:0}.vehicle-thumb-menu button{text-align:left;color:var(--text-h);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px 8px;font-size:13px}.vehicle-thumb-menu button:hover{background:var(--accent-bg)}.car-notes-add-button{color:var(--text);cursor:pointer;background:0 0;border:none;margin-top:4px;padding:0;font-size:13px;font-weight:500}.car-notes-add-button:hover{color:var(--accent)}.car-notes-display{max-width:100%;color:var(--text);text-align:left;cursor:pointer;white-space:pre-wrap;overflow-wrap:break-word;background:0 0;border:none;margin-top:4px;padding:0;font-size:13px;display:block}.car-notes-display:hover{color:var(--text-h)}.car-notes-edit{flex-direction:column;gap:6px;margin-top:4px;display:flex}.car-notes-edit textarea{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text-h);resize:vertical;border-radius:8px;padding:8px 10px;font-size:13px}.car-notes-edit textarea:focus{outline:2px solid var(--accent);outline-offset:1px}.car-notes-edit-actions{gap:8px;display:flex}.mileage-display{color:var(--text-h);cursor:pointer;background:0 0;border:none;align-self:flex-start;margin-top:6px;padding:0;font-size:15px;font-weight:600;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.mileage-edit{align-items:center;gap:8px;margin-top:6px;display:flex}.mileage-edit input{max-width:140px}.maintenance-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.maintenance-tile-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.maintenance-grid-tile{border:1px solid var(--border);border-left:4px solid var(--border);background:var(--card-bg);min-height:52px;font:inherit;color:var(--text-h);text-align:left;cursor:pointer;border-radius:12px;align-items:center;padding:14px 12px;font-size:14px;font-weight:600;display:flex}.maintenance-grid-tile:hover{box-shadow:var(--shadow)}.maintenance-grid-tile.urgency-ok{border-left-color:var(--ok)}.maintenance-grid-tile.urgency-upcoming{border-left-color:var(--upcoming)}.maintenance-grid-tile.urgency-due-soon{border-left-color:var(--due-soon)}.maintenance-grid-tile.urgency-overdue{border-left-color:var(--overdue)}.maintenance-card{border:1px solid var(--border);border-left:4px solid var(--border);background:var(--card-bg);border-radius:12px;flex-direction:column;gap:10px;padding:16px;display:flex}.maintenance-card.urgency-ok{border-left-color:var(--ok)}.maintenance-card.urgency-upcoming{border-left-color:var(--upcoming)}.maintenance-card.urgency-due-soon{border-left-color:var(--due-soon)}.maintenance-card.urgency-overdue{border-left-color:var(--overdue)}.maintenance-card-top{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.maintenance-card-top-actions{align-items:center;gap:4px;display:flex}.maintenance-item-details{flex-direction:column;gap:10px;display:flex}.maintenance-card-header{font:inherit;text-align:left;color:var(--text-h);cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;gap:8px;padding:0;display:flex}.maintenance-card-chevron{color:var(--text);flex-shrink:0;font-size:16px;line-height:1;transition:transform .15s;display:inline-block}.maintenance-card-chevron.expanded{transform:rotate(180deg)}.maintenance-card-meta{flex-direction:column;gap:2px;font-size:14px;display:flex}.badge{border-radius:999px;margin-top:4px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.badge-ok{color:var(--ok);background:var(--ok-bg)}.badge-upcoming{color:var(--upcoming);background:var(--upcoming-bg)}.badge-due-soon{color:var(--due-soon);background:var(--due-soon-bg)}.badge-overdue{color:var(--overdue);background:var(--overdue-bg)}.progress-bar{background:var(--border);border-radius:999px;width:100%;height:10px;overflow:hidden}.progress-bar-fill{border-radius:999px;height:100%;transition:width .3s}.progress-bar.urgency-ok .progress-bar-fill{background:var(--ok)}.progress-bar.urgency-upcoming .progress-bar-fill{background:var(--upcoming)}.progress-bar.urgency-due-soon .progress-bar-fill{background:var(--due-soon)}.progress-bar.urgency-overdue .progress-bar-fill{background:var(--overdue)}.form{flex-direction:column;gap:14px;display:flex}.form label{color:var(--text-h);flex-direction:column;flex:1;gap:6px;font-size:14px;font-weight:500;display:flex}.form-label-text{color:var(--text-h);font-size:14px;font-weight:500;display:block}.form-row{gap:12px;display:flex}.form-row>*{min-width:0}.form input,.form select,.form textarea{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text-h);border-radius:8px;padding:9px 10px}.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--accent);outline-offset:1px}.password-input{display:flex;position:relative}.password-input input{width:100%;padding-right:38px}.password-toggle{width:34px;color:var(--text);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;right:0}.password-toggle:hover{color:var(--text-h)}.vin-lookup-toggle{color:var(--accent);cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0;font-size:13px;font-weight:500;text-decoration:underline}.vin-lookup{flex-direction:column;gap:8px;display:flex}.vin-lookup-row{gap:8px;display:flex}.vin-lookup-row input{flex:1;min-width:0}.form-error{color:var(--overdue);font-size:14px}.form-info{color:var(--ok);font-size:14px}.autocomplete{flex:1;position:relative}.autocomplete-list{z-index:20;background:var(--card-bg);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:10px;max-height:220px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.autocomplete-option{text-align:left;width:100%;color:var(--text-h);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:8px 10px;font-size:14px;display:block}.autocomplete-option:hover,.autocomplete-option.active{background:var(--accent-bg)}.modal-overlay{z-index:10;background:#00000080;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--card-bg);border:1px solid var(--border);width:100%;max-width:440px;max-height:90svh;box-shadow:var(--shadow);border-radius:14px;overflow-y:auto}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-body{padding:20px}.modal-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.tour{flex-direction:column;gap:16px;display:flex}.tour p{color:var(--text-h);font-size:15px;line-height:1.5}.tour-illustration-wrap{background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:8px}.tour-illustration{width:100%;height:auto;color:var(--text);display:block}.tour-card{fill:var(--card-bg);stroke:var(--border);stroke-width:1px}.tour-card-highlighted{fill:var(--card-bg);stroke:var(--accent);stroke-width:1.5px}.tour-line{fill:var(--text-h);opacity:.5}.tour-line-muted{fill:var(--text);opacity:.35}.tour-highlight-ring,.tour-bubble-accent{fill:var(--accent-bg);stroke:var(--accent);stroke-width:1.5px}.tour-bar-fill{stroke:none}.tour-bar-ok{fill:var(--ok)}.tour-bar-due-soon{fill:var(--due-soon)}.tour-bar-overdue{fill:var(--overdue)}.tour-arrow{fill:none;stroke:var(--accent);stroke-width:2px;stroke-linecap:round;stroke-dasharray:4 4}.tour-arrowhead{fill:var(--accent)}.tour-emoji{font-size:12px}.tour-emoji-large{font-size:28px}.tour-dots{justify-content:center;gap:6px;display:flex}.tour-dot{background:var(--border);border-radius:50%;width:6px;height:6px}.tour-dot.active{background:var(--accent)}.tour-actions{justify-content:space-between;gap:8px;display:flex}code{font-family:var(--mono);background:var(--code-bg);color:var(--text-h);border-radius:4px;padding:2px 6px;font-size:13px}.ask-ai-button{align-self:flex-start;margin-top:10px}.chat-page{height:100svh}.chat-page .app-header h1{font-size:16px}.chat-disclaimer{color:var(--upcoming);background:var(--upcoming-bg);text-align:center;padding:8px 16px;font-size:12.5px;line-height:1.4}.chat-messages{flex-direction:column;flex:1;gap:10px;width:100%;max-width:640px;margin:0 auto;padding:16px;display:flex;overflow-y:auto}.chat-bubble{white-space:pre-wrap;border-radius:14px;max-width:80%;padding:10px 14px;font-size:15px;line-height:1.45}.chat-bubble-user{background:var(--accent);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}.chat-bubble-assistant{background:var(--card-bg);border:1px solid var(--border);color:var(--text-h);border-bottom-left-radius:4px;align-self:flex-start}.chat-bubble-status{color:var(--text);font-style:italic}.chat-bubble-concern{background:var(--accent-bg);border:1px solid var(--accent-border);color:var(--text-h);border-radius:10px;align-self:center;max-width:90%;font-size:13px}.chat-input-bar{border-top:1px solid var(--border);background:var(--bg);box-sizing:border-box;gap:8px;width:100%;max-width:640px;margin:0 auto;padding:12px 16px;display:flex}.chat-input-bar input{font:inherit;border:1px solid var(--border);background:var(--bg-subtle);color:var(--text-h);border-radius:999px;flex:1;padding:10px 12px}.chat-input-bar input:focus{outline:2px solid var(--accent);outline-offset:1px}.chat-input-bar .btn{border-radius:999px}.care-score-ring{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:relative}.care-score-ring svg{position:absolute;top:0;left:0;overflow:visible}.care-score-ring-label{color:var(--text-h);font-weight:700;position:relative}.care-score-ring-fill{transition:stroke-dashoffset .4s}.care-score-excellent{stroke:var(--ok)}.care-score-good{stroke:var(--upcoming)}.care-score-needs-attention{stroke:var(--due-soon)}.care-score-overdue-care{stroke:var(--overdue)}.guest-banner{border:1px solid var(--accent-border);background:var(--accent-bg);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;font-size:13px;display:flex}.attention-section{border:1px solid var(--due-soon);background:var(--due-soon-bg);border-radius:12px;flex-direction:column;gap:10px;padding:14px 16px;display:flex}.attention-section h2{font-size:15px}.attention-list{flex-direction:column;gap:8px;display:flex}.attention-row{background:var(--card-bg);color:var(--text-h);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:8px 10px;font-size:14px;text-decoration:none;display:flex}.attention-row:hover{box-shadow:var(--shadow)}.concerns-section{border:1px solid var(--accent-border);background:var(--accent-bg);border-radius:12px;flex-direction:column;gap:10px;padding:14px 16px;display:flex}.concerns-section h2{font-size:15px}.concerns-list{flex-direction:column;gap:8px;display:flex}.concern-card{background:var(--card-bg);border-radius:10px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.concern-card p{color:var(--text-h);font-size:14px}.concern-actions{justify-content:flex-end;gap:8px;display:flex}.concern-todo{background:var(--card-bg);color:var(--text-h);cursor:pointer;border-radius:10px;align-items:center;gap:10px;padding:10px 12px;font-size:14px;display:flex}.concern-todo input{width:16px;height:16px;accent-color:var(--accent);flex-shrink:0}.history-list{flex-direction:column;gap:8px;display:flex}.history-row{background:var(--card-bg);border-radius:10px;flex-direction:column;gap:4px;padding:10px 12px;font-size:14px;display:flex}.history-row-top{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.settings-section{border:1px solid var(--border);background:var(--card-bg);border-radius:12px;flex-direction:column;gap:14px;padding:16px;display:flex}.settings-section h2{font-size:15px}.settings-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.settings-row-stacked{flex-direction:column;align-items:flex-start;gap:8px}.accent-swatch-row{flex-wrap:wrap;gap:10px;display:flex}.accent-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;padding:0;transition:transform .1s;display:flex}.accent-swatch:hover{transform:scale(1.08)}.accent-swatch.active{border-color:var(--text-h)}.accent-swatch-check{color:#fff;text-shadow:0 1px 2px #0006;font-size:14px;font-weight:700}.body-type-picker{grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:8px;margin-top:6px;display:grid}.body-type-option{border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;border-radius:10px;flex-direction:column;align-items:center;gap:4px;padding:10px 6px;font-size:12px;font-weight:500;display:flex}.body-type-option svg{color:var(--text)}.body-type-option:hover{border-color:var(--accent-border)}.body-type-option.active{border-color:var(--accent);background:var(--accent-bg);color:var(--text-h)}.body-type-option.active svg{color:var(--accent)}.settings-danger-zone{border-color:var(--overdue)}.segmented{border:1px solid var(--border);border-radius:999px;gap:2px;padding:3px;display:inline-flex}.segmented-option{color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:500}.segmented-option.active{background:var(--accent);color:#fff}.btn-danger{border:1px solid var(--overdue);color:var(--overdue);cursor:pointer;background:0 0;border-radius:8px;align-self:flex-start;padding:10px 16px;font-size:15px;font-weight:500}.btn-danger:hover{background:var(--overdue-bg)}.btn-danger:disabled{opacity:.6;cursor:not-allowed}
