:root{--ink:#12100a;--paper:#1a1610;--paper-2:#221c14;--text:#f3ead8;--muted:#9a8d74;--line:#3a3226;--gold:#e0b04a;--gold-dim:#e0b04a29;--teal:#3ecfc0;--coral:#e88a5a;--violet:#9b8cff;--danger:#e07070;--focus-ring:#e0b04a61;color:var(--text);background:var(--ink);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Segoe UI,Avenir Next,system-ui,sans-serif;line-height:1.5}*{box-sizing:border-box}body{background:radial-gradient(900px 420px at 12% -10%, #e0b04a14, transparent 55%), var(--ink);min-width:320px;min-height:100vh;margin:0}#root{min-height:100vh}button,input,select,textarea{font-family:inherit}button{cursor:pointer}input,select,textarea{color:var(--text)}.app{width:min(860px,100% - 32px);margin:0 auto;padding:28px 0 72px}.top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.brand{align-items:center;gap:12px;display:flex}.mark{flex:none;width:48px;height:48px}h1{letter-spacing:-.03em;margin:0;font-family:Palatino,Iowan Old Style,Times New Roman,serif;font-size:1.9rem;font-weight:650}.tag{color:var(--muted);margin:2px 0 0;font-size:.98rem}.tools{flex-wrap:wrap;gap:8px;display:flex}.ghost,.tiny,.solid{color:var(--text);border:1px solid var(--line);background:0 0;border-radius:999px;padding:7px 14px;font-size:.86rem}.ghost:hover,.tiny:hover{background:var(--paper)}.ghost.danger,.tiny.danger{color:var(--danger)}.ghost.warn,.tiny.warn{color:var(--danger);background:#e070701f;border-color:#e0707073}.ghost:disabled,.tiny:disabled,.solid:disabled{opacity:.4;cursor:not-allowed}.solid{background:var(--gold);border-color:var(--gold);color:#1a140c;font-weight:650}.solid:hover:not(:disabled){filter:brightness(1.05)}.tiny{padding:4px 10px;font-size:.74rem}.tiny.solid{padding:5px 12px}.blurb{color:var(--muted);max-width:52rem;margin:14px 0 0;font-size:.92rem}.empty{color:var(--muted);margin:0;font-size:.92rem}.notice{background:var(--gold-dim);color:var(--gold);border:1px solid #e0b04a66;border-radius:12px;margin:14px 0 0;padding:10px 14px;font-size:.92rem}.notice.ok{color:var(--teal);background:#3ecfc01a;border-color:#3ecfc059}.kicker{text-transform:uppercase;letter-spacing:.14em;color:var(--gold);margin:0 0 10px;font-size:.72rem}.counts{flex-wrap:wrap;gap:8px;margin:16px 0 0;padding:0;list-style:none;display:flex}.counts li{border:1px solid var(--line);background:var(--paper);color:var(--muted);border-radius:999px;padding:6px 12px;font-size:.82rem}.counts strong{font-variant-numeric:tabular-nums;color:var(--text);margin-right:4px}.counts .overdue{color:var(--coral);border-color:#e88a5a59}.counts .soon{color:var(--gold);border-color:#e0b04a59}.counts .ok{color:var(--teal);border-color:#3ecfc047}.list{gap:10px;margin-top:22px;display:grid}.card{background:var(--paper);border:1px solid var(--line);border-left-width:4px;border-radius:16px;grid-template-columns:auto 1fr auto;align-items:center;gap:14px 16px;padding:16px 16px 14px;display:grid}.card.overdue{border-left-color:var(--coral)}.card.due-soon{border-left-color:var(--gold)}.card.ok{border-left-color:var(--teal)}.card-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.card-head h2{margin:0;font-size:1.08rem;font-weight:650}.card-body{min-width:0}.meta,.dates,.note{color:var(--muted);margin:4px 0 0;font-size:.86rem}.meta{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.dates{font-variant-numeric:tabular-nums}.note{font-style:italic}.area{letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--line);border-radius:999px;padding:2px 8px;font-size:.72rem}.area.home{color:var(--gold)}.area.vehicle{color:var(--teal)}.area.other{color:var(--violet)}.badge{letter-spacing:.12em;border-radius:999px;padding:3px 8px;font-size:.68rem;font-weight:700}.badge.overdue{color:#1a100c;background:var(--coral)}.badge.due-soon{color:#1a140c;background:var(--gold)}.badge.ok{color:#0c1614;background:var(--teal)}.card-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.ring{flex:none;width:42px;height:42px}.ring .track{fill:none;stroke:var(--paper-2);stroke-width:4px}.ring .fill{fill:none;stroke-width:4px;stroke-linecap:round}.ring.overdue .fill{stroke:var(--coral)}.ring.due-soon .fill{stroke:var(--gold)}.ring.ok .fill{stroke:var(--teal)}.composer{background:var(--paper);border:1px solid var(--line);border-radius:16px;margin-top:16px;padding:16px}.composer-grid{grid-template-columns:1.5fr 120px 130px 160px;align-items:end;gap:8px;display:grid}.composer-grid .wide{grid-column:1/4}.composer-grid label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);gap:4px;font-size:.72rem;display:grid}input[type=text],input[type=number],input[type=date],select{background:var(--paper-2);border:1px solid var(--line);border-radius:12px;width:100%;min-width:0;padding:9px 12px;font-size:1rem}input:focus,select:focus,.ghost:focus,.tiny:focus,.solid:focus{border-color:var(--gold);box-shadow:0 0 0 3px var(--focus-ring);outline:none}.foot{color:var(--muted);margin-top:22px;font-size:.8rem}@media (width<=760px){.composer-grid{grid-template-columns:1fr 1fr}.composer-grid .wide{grid-column:1/-1}.card{grid-template-columns:auto 1fr}.card-actions{grid-column:1/-1;justify-content:flex-start}}@media (width<=520px){.composer-grid{grid-template-columns:1fr}}
