:root{--paper:#eef0f4;--surface:#fff;--surface-sunken:#e6e8ee;--ink:#1b1f2a;--ink-muted:#5b6172;--ink-faint:#8a90a0;--line:#dcdfe7;--line-strong:#c3c8d3;--brand:#3c4db8;--brand-hover:#333f9e;--brand-soft:#e7e9fa;--fine:#4c7d63;--fine-soft:#e3eee7;--upcoming:#3c5fb8;--upcoming-soft:#e6eaf9;--soon:#a8791f;--soon-soft:#f5ecd8;--urgent:#bf5420;--urgent-soft:#fbe7da;--overdue:#a3302f;--overdue-soft:#f7dfde;--cat-passport:#6b5ca5;--cat-license:#3c7fb1;--cat-road_tax:#b1753c;--cat-insurance:#4b8a6f;--cat-subscription:#b15c8a;--cat-other:#7a7f8c;--font-display:"Fraunces", Georgia, serif;--font-body:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-pill:999px;--shadow-sm:0 1px 2px #1b1f2a12;--shadow-md:0 12px 28px #1b1f2a24;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.5}h1,h2,h3{font-family:var(--font-display);color:var(--ink);margin:0;font-weight:600}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}button{cursor:pointer;appearance:none;text-align:inherit;background:0 0;border:none;padding:0}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}.app-header{z-index:20;background:var(--paper);border-bottom:1px solid var(--line);position:sticky;top:0}.app-header__inner{justify-content:space-between;align-items:center;gap:16px;max-width:1160px;margin:0 auto;padding:18px 24px;display:flex}.app-header__actions{align-items:center;gap:8px;display:flex}.wordmark{align-items:baseline;gap:10px;display:flex}.wordmark__mark{font-family:var(--font-display);letter-spacing:-.01em;font-size:22px;font-weight:600}.wordmark__tagline{color:var(--ink-faint);font-size:13px;display:none}@media (width>=640px){.wordmark__tagline{display:inline}}.app-main{max-width:1160px;margin:0 auto;padding:24px}.layout{grid-template-columns:1fr;gap:20px;display:grid}@media (width>=960px){.layout{grid-template-columns:1.7fr 1fr;align-items:start}}.layout__sidebar{flex-direction:column;order:-1;gap:20px;display:flex}@media (width>=960px){.layout__sidebar{order:0;position:sticky;top:84px}}.btn{border-radius:var(--radius-md);white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:9px 16px;font-size:14px;font-weight:600;line-height:1;transition:background-color .12s,border-color .12s,transform 60ms;display:inline-flex}.btn:active{transform:translateY(1px)}.btn--primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn--primary:hover{background:var(--brand-hover);border-color:var(--brand-hover)}.btn--secondary{background:var(--surface);border-color:var(--line-strong);color:var(--ink)}.btn--secondary:hover{border-color:var(--ink-faint)}.btn--ghost{color:var(--ink-muted);background:0 0;border-color:#0000;padding:9px 12px}.btn--ghost:hover{background:var(--surface-sunken);color:var(--ink)}.btn--danger{border-color:var(--overdue);color:var(--overdue);background:0 0}.btn--danger:hover{background:var(--overdue-soft)}.btn--sm{padding:6px 12px;font-size:13px}.btn--block{width:100%}.icon-btn{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--ink-muted);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:var(--surface-sunken);color:var(--ink)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.card__header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;display:flex}.card__title{font-size:15px;font-weight:600;font-family:var(--font-body)}.summary-bar{flex-wrap:wrap;gap:8px;display:flex}.summary-chip{border-radius:var(--radius-pill);border:1px solid #0000;align-items:center;gap:7px;padding:8px 12px;font-size:13px;font-weight:600;display:inline-flex}.summary-chip__count{font-family:var(--font-mono);font-size:13px}.summary-bar--calm{color:var(--ink-faint);padding:14px 4px;font-size:13.5px}.calendar__toolbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex}.calendar__month-label{font-family:var(--font-display);text-align:center;min-width:150px;font-size:18px;font-weight:600}.calendar__nav{align-items:center;gap:4px;display:flex}.calendar__weekdays{grid-template-columns:repeat(7,1fr);padding:10px 8px 0;display:grid}.calendar__weekday{text-align:center;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);padding-bottom:6px;font-size:11px;font-weight:600}.calendar__grid{grid-template-columns:repeat(7,1fr);gap:4px;padding:0 8px 8px;display:grid}.calendar__cell{border-radius:var(--radius-sm);text-align:left;background:0 0;border:1px solid #0000;flex-direction:column;align-items:flex-start;gap:4px;min-height:86px;padding:6px;display:flex;position:relative}.calendar__cell:hover{background:var(--surface-sunken)}.calendar__cell--empty{visibility:hidden}.calendar__cell--today{background:var(--brand-soft)}.calendar__cell--selected{border-color:var(--brand)}.calendar__day-number{font-family:var(--font-mono);color:var(--ink-muted);font-size:12.5px}.calendar__cell--today .calendar__day-number{color:var(--brand);font-weight:600}.calendar__marks{flex-wrap:wrap;align-items:center;gap:3px;display:flex}.stamp-mark{--cat-color:var(--ink-faint);border:1.6px solid var(--cat-color);width:13px;height:13px;box-shadow:0 0 0 2px var(--surface), 1px 1px 0 1px var(--cat-color);border-radius:50%;flex-shrink:0;transform:rotate(-8deg)}.nudge-dot{--cat-color:var(--ink-faint);background:var(--cat-color);opacity:.55;border-radius:50%;flex-shrink:0;width:6px;height:6px}.calendar__more{font-family:var(--font-mono);color:var(--ink-faint);font-size:10.5px}.calendar__legend{border-top:1px solid var(--line);color:var(--ink-faint);flex-wrap:wrap;gap:14px;padding:12px 18px 16px;font-size:12px;display:flex}.calendar__legend-item{align-items:center;gap:6px;display:inline-flex}.day-detail{border-top:1px solid var(--line);background:var(--surface-sunken);padding:16px 18px}.day-detail__title{color:var(--ink-muted);margin-bottom:10px;font-size:13px;font-weight:600}.day-detail__list{flex-direction:column;gap:8px;display:flex}.day-detail__empty{color:var(--ink-faint);margin-bottom:10px;font-size:13.5px}.item-row{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);align-items:center;gap:10px;padding:10px 12px;display:flex}.item-row__cat-dot{background:var(--cat-color,var(--ink-faint));border-radius:50%;flex-shrink:0;width:9px;height:9px}.item-row__body{flex:1;min-width:0}.item-row__name{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.item-row__meta{color:var(--ink-faint);align-items:center;gap:6px;margin-top:2px;font-size:12px;display:flex}.item-row__meta-dot{background:var(--ink-faint);border-radius:50%;width:2px;height:2px}.item-row__actions{flex-shrink:0;align-items:center;gap:4px;display:flex}.status-pill{border-radius:var(--radius-pill);letter-spacing:.01em;white-space:nowrap;align-items:center;gap:5px;padding:3px 9px;font-size:11.5px;font-weight:700;display:inline-flex}.status-pill:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.status-pill--overdue{background:var(--overdue-soft);color:var(--overdue)}.status-pill--urgent{background:var(--urgent-soft);color:var(--urgent)}.status-pill--soon{background:var(--soon-soft);color:var(--soon)}.status-pill--upcoming{background:var(--upcoming-soft);color:var(--upcoming)}.status-pill--fine{background:var(--fine-soft);color:var(--fine)}.upcoming-list{flex-direction:column;gap:8px;max-height:560px;padding:14px;display:flex;overflow-y:auto}.upcoming-group__label{letter-spacing:.07em;text-transform:uppercase;color:var(--ink-faint);padding:10px 4px 4px;font-size:11px;font-weight:700}.upcoming-group__label:first-child{padding-top:2px}.upcoming-group__items{flex-direction:column;gap:8px;display:flex}.empty-state{text-align:center;padding:56px 24px}.empty-state__title{font-family:var(--font-display);margin-bottom:8px;font-size:22px}.empty-state__body{color:var(--ink-muted);max-width:380px;margin:0 auto 20px;font-size:14.5px}.empty-state__actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.upcoming-empty{text-align:center;color:var(--ink-faint);padding:28px 18px;font-size:13.5px}.modal-overlay{z-index:100;background:#14171f70;justify-content:center;align-items:flex-start;padding:40px 16px;animation:.14s fade-in;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-panel{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);width:100%;max-width:480px;animation:.16s rise-in}@keyframes fade-in{0%{opacity:0}}@keyframes rise-in{0%{opacity:0;transform:translateY(8px)scale(.98)}}.modal-panel__header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:18px 20px;display:flex}.modal-panel__title{font-family:var(--font-display);font-size:19px}.modal-panel__body{flex-direction:column;gap:16px;padding:20px;display:flex}.modal-panel__footer{border-top:1px solid var(--line);justify-content:flex-end;gap:10px;padding:16px 20px;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field__label{color:var(--ink-muted);font-size:12.5px;font-weight:600}.field__hint{color:var(--ink-faint);font-size:12px}.field__row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.input,.select,.textarea{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);width:100%;padding:9px 11px}.input:focus,.select:focus,.textarea:focus{outline:2px solid var(--brand);outline-offset:-1px;border-color:var(--brand)}.textarea{resize:vertical;min-height:64px;font-family:inherit}.category-picker{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.category-option{border-radius:var(--radius-md);border:1.5px solid var(--line);background:var(--surface);color:var(--ink-muted);text-align:center;flex-direction:column;align-items:center;gap:6px;padding:10px 6px;font-size:12px;display:flex}.category-option__dot{background:var(--cat-color);border-radius:50%;width:12px;height:12px}.category-option--active{border-color:var(--cat-color);background:color-mix(in srgb, var(--cat-color) 10%, var(--surface));color:var(--ink);font-weight:600}.form-error{color:var(--overdue);background:var(--overdue-soft);border-radius:var(--radius-sm);padding:8px 10px;font-size:12.5px}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=480px){.app-header__inner,.app-main{padding-left:16px;padding-right:16px}.calendar__cell{min-height:60px}.field__row{grid-template-columns:1fr}.category-picker{grid-template-columns:repeat(2,1fr)}}
