:root{--page-bg:#f3efe9;--page-bg-accent:#ede1d4;--panel-bg:#fffffff0;--panel-shadow:0 10px 28px #43302114;--border-color:#5643361f;--border-strong:#b06c3e42;--heading-text:#201a16;--body-text:#40352d;--muted-text:#6d5f53;--accent-color:#b96a37;--empty-bg:#faf7f2;--status-ok-bg:#edf7ef;--status-ok-text:#27613a;--status-error-bg:#fff1ec;--status-error-text:#9b4125;--status-loading-bg:#f2ece5;--status-loading-text:#6d5f53;color:var(--body-text);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(circle at top right, #b96a371f, transparent 24rem), linear-gradient(180deg, var(--page-bg), #f9f7f3 60%, #f0ebe3);font-family:Aptos,Trebuchet MS,sans-serif;line-height:1.5}*{box-sizing:border-box}html,body{min-height:100%}body{min-width:320px;margin:0}a{color:inherit}h1,h2,h3{color:var(--heading-text);margin:0;font-family:Georgia,Times New Roman,serif}p{margin:0}button,input,textarea,select{font:inherit}.app-shell{gap:.85rem;width:min(100%,72rem);min-height:100svh;margin:0 auto;padding:.85rem;display:grid}.panel{background:var(--panel-bg);border:1px solid var(--border-color);box-shadow:var(--panel-shadow);border-radius:1rem}.app-header{gap:.85rem;padding:1rem 1rem .9rem;display:grid}.app-header-meta,.app-header-top{flex-wrap:wrap;justify-content:space-between;align-items:start;gap:.75rem;display:flex}.app-header-top{gap:.2rem;display:grid}.app-header-side{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.6rem;display:flex}.app-nav-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.app-kicker,.section-kicker{color:var(--accent-color);letter-spacing:.12em;text-transform:uppercase;font-size:.78rem;font-weight:700}.app-title{font-size:clamp(1.45rem,4vw,1.8rem);line-height:1.1}.app-subtitle{color:var(--muted-text);font-size:.94rem}.app-nav{flex-wrap:wrap;gap:.55rem;display:flex}.app-nav-link{border:1px solid var(--border-color);background:#fbf7f2;border-radius:999px;align-items:center;min-height:2.35rem;padding:.45rem .8rem;font-weight:600;text-decoration:none;display:inline-flex}.app-nav-link:hover,.app-nav-link:focus-visible{border-color:var(--border-strong);outline:none}.app-main{display:grid}.page-section{gap:.85rem;padding:1.1rem;display:grid}.page-section--compact{padding:.95rem 1rem}.page-header{gap:.35rem;display:grid}.page-title{font-size:clamp(1.35rem,4vw,1.8rem)}.page-description{color:var(--muted-text);max-width:40rem}.vehicles-page,.dashboard-layout,.dashboard-page,.settings-layout,.settings-page{gap:1rem;display:grid}.dashboard-intro,.settings-page{padding:1rem}.dashboard-summary-grid,.dashboard-lists{gap:1rem;display:grid}.summary-card{gap:.35rem;padding:.95rem;display:grid}.summary-value{color:var(--heading-text);font-size:clamp(1.7rem,5vw,2.2rem);font-weight:700;line-height:1}.dashboard-list-card{gap:.7rem;padding:.95rem;display:grid}.dashboard-item-list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.dashboard-item{border:1px solid var(--border-color);background:#fff;border-radius:.8rem;gap:.45rem;padding:.75rem;display:grid}.dashboard-item-title{font-weight:700}.dashboard-item-subtitle,.dashboard-item-meta,.success-copy{color:var(--muted-text)}.settings-form{gap:1rem;display:grid}.checkbox-field,.field-group{gap:.5rem;display:grid}.checkbox-field{grid-template-columns:auto 1fr;align-items:center}.checkbox-field input{block-size:1.1rem;inline-size:1.1rem}.field-group select{border:1px solid var(--border-color);background:#fff;border-radius:.75rem;min-height:2.7rem;padding:.75rem .9rem}.status-card,.empty-state,.vehicles-list,.login-card{border:1px solid var(--border-color);background:var(--empty-bg);border-radius:.9rem}.status-card,.empty-state,.login-card{padding:1rem}.status-card{gap:.75rem;display:grid}.status-badge{border-radius:999px;justify-content:center;align-items:center;width:fit-content;min-height:2rem;padding:.28rem .7rem;font-size:.88rem;font-weight:600;display:inline-flex}.status-badge--compact{min-height:1.9rem;padding-inline:.65rem;font-size:.82rem}.status-badge--loading{background:var(--status-loading-bg);color:var(--status-loading-text)}.status-badge--ready{background:var(--status-ok-bg);color:var(--status-ok-text)}.status-badge--error{background:var(--status-error-bg);color:var(--status-error-text)}.empty-state{border-style:dashed;border-color:var(--border-strong);gap:.75rem;display:grid}.empty-state--compact{padding:.85rem}.empty-title{font-size:1.3rem}.empty-copy,.helper-copy{color:var(--muted-text)}.vehicles-list{margin:0;padding:0;list-style:none;overflow:hidden}.vehicle-row{gap:.25rem;padding:.9rem;display:grid}.vehicle-row+.vehicle-row{border-top:1px solid var(--border-color)}.login-card{gap:.85rem;max-width:24rem;display:grid}.login-fields{gap:.65rem;display:grid}.field{gap:.4rem;display:grid}.field-label{font-size:.95rem;font-weight:600}.field-input{border:1px solid var(--border-color);background:#fff;border-radius:.75rem;min-height:2.7rem;padding:.68rem .82rem}.field-textarea{resize:vertical;min-height:7.5rem}.field-error,.form-error{color:var(--status-error-text);font-size:.9rem}.panel-subsection{border:1px solid var(--border-color);background:var(--empty-bg);border-radius:.9rem;gap:.85rem;padding:.9rem;display:grid}.vehicles-grid{gap:1rem;display:grid}.vehicle-form{gap:.85rem;display:grid}.vehicle-form-header{justify-content:space-between;align-items:start;gap:1rem;display:flex}.vehicle-form-fields{gap:.75rem;display:grid}.field--full{grid-column:1/-1}.vehicle-form-actions,.vehicle-actions{flex-wrap:wrap;gap:.55rem;display:flex}.mileage-panel,.service-panel{border-top:1px solid var(--border-color);gap:.85rem;padding-top:.85rem;display:grid}.mileage-panel-header,.service-panel-header,.service-history-header,.service-rule-title-row{flex-wrap:wrap;justify-content:space-between;align-items:start;gap:1rem;display:flex}.mileage-current{font-weight:700}.mileage-form,.service-form,.service-completion-form{gap:.85rem;display:grid}.mileage-form-fields,.service-form-fields{gap:.75rem;display:grid}.field-textarea--compact{min-height:5.5rem}.mileage-list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.mileage-row{border:1px solid var(--border-color);background:#fff;border-radius:.8rem;padding:.75rem}.mileage-row-main{gap:.3rem;display:grid}.service-rules-list,.service-history-list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.service-rule-row,.service-history-row{border:1px solid var(--border-color);background:#fff;border-radius:.8rem;gap:.55rem;padding:.75rem;display:grid}.service-status{border-radius:999px;justify-content:center;align-items:center;min-height:2rem;padding:.2rem .7rem;font-size:.9rem;font-weight:700;display:inline-flex}.service-status--ok{background:var(--status-ok-bg);color:var(--status-ok-text)}.service-status--due-soon{color:#8a5b00;background:#fff5df}.service-status--overdue{background:var(--status-error-bg);color:var(--status-error-text)}.service-status--disabled{color:var(--muted-text);background:#ece8e1}.primary-button{background:var(--accent-color);color:#fff9f5;border:0;border-radius:.75rem;min-height:2.7rem;padding:.65rem 1rem;font-weight:700}.primary-button[disabled]{opacity:.7}.secondary-button,.danger-button{border-radius:.75rem;min-height:2.7rem;padding:.65rem .95rem;font-weight:700}.secondary-button--small{min-height:2.2rem;padding:.45rem .8rem;text-decoration:none}.secondary-button{border:1px solid var(--border-color);color:var(--heading-text);background:#fff}.danger-button{color:var(--status-error-text);background:#fff0ec;border:1px solid #9d3b1e2e}.vehicle-row{gap:.6rem}.vehicle-row-main{gap:.25rem;display:grid}.vehicle-meta{font-weight:600}.vehicle-notes{color:var(--muted-text)}.login-panel{max-width:28rem}.session-controls{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.session-text{color:var(--muted-text);font-size:.88rem}@media (min-width:720px){.app-header{gap:.9rem}.vehicles-grid{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:start}.vehicle-form-fields,.mileage-form-fields,.service-form-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.dashboard-item{grid-template-columns:minmax(0,1fr) auto;align-items:start}}
