:root{--color-bg:#f4f5f7;--color-surface:#fff;--color-surface-raised:#fff;--color-text:#1a1d23;--color-text-muted:#6b7280;--color-border:#e2e4e9;--color-accent:#2563eb;--color-accent-text:#fff;--color-danger:#dc2626;--color-danger-bg:#fef2f2;--color-warning:#d97706;--color-warning-bg:#fffbeb;--color-success:#16a34a;--color-success-bg:#f0fdf4;--color-muted-bg:#f1f2f4;--shadow-sheet:0 -8px 24px #0000001f;--shadow-card:0 1px 2px #0000000f;--radius:12px;--radius-sm:8px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--tab-bar-height:60px;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}@media (prefers-color-scheme:dark){:root{--color-bg:#0f1115;--color-surface:#1a1d23;--color-surface-raised:#22262e;--color-text:#e8eaed;--color-text-muted:#9aa0ab;--color-border:#2c313a;--color-accent:#5b8def;--color-accent-text:#0f1115;--color-danger:#f87171;--color-danger-bg:#2a1516;--color-warning:#fbbf24;--color-warning-bg:#2a2011;--color-success:#4ade80;--color-success-bg:#10231a;--color-muted-bg:#22262e;--shadow-sheet:0 -8px 24px #00000080;--shadow-card:0 1px 2px #0000004d}}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--color-accent);text-decoration:none}a:hover,a:focus-visible{text-decoration:underline}a:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.app{max-width:640px;min-height:100%;padding-bottom:calc(var(--tab-bar-height) + env(safe-area-inset-bottom,0px) + var(--space-4));margin:0 auto}@media (width>=900px){.app{max-width:900px}}.screen{padding:var(--space-4)}.screen-title{margin:var(--space-2) 0 var(--space-4);font-size:22px;font-weight:700}.tab-bar{height:calc(var(--tab-bar-height) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--color-surface);border-top:1px solid var(--color-border);max-width:640px;margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0}@media (width>=900px){.tab-bar{max-width:900px}}.tab-bar__item{min-height:44px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:12px;display:flex}.tab-bar__item[aria-current=page]{color:var(--color-accent);font-weight:600}.tab-bar__icon{font-size:20px;line-height:1}.kpi-strip{gap:var(--space-3);margin-bottom:var(--space-5);grid-template-columns:repeat(2,1fr);display:grid}@media (width>=900px){.kpi-strip{grid-template-columns:repeat(4,1fr)}}.kpi-tile{background:var(--color-surface);border-radius:var(--radius);padding:var(--space-3) var(--space-4);box-shadow:var(--shadow-card)}.kpi-tile__label{color:var(--color-text-muted);font-size:12px}.kpi-tile__value{margin-top:2px;font-size:20px;font-weight:700}.section{margin-bottom:var(--space-5)}.section__heading{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);margin-bottom:var(--space-2);justify-content:space-between;align-items:center;font-size:13px;font-weight:700;display:flex}.section--overdue .section__heading{color:var(--color-danger)}.section__heading-label{align-items:center;gap:var(--space-2);display:flex}.filter-bar{align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.filter-bar__spacer{margin-left:auto}.info-panel{margin-bottom:var(--space-4)}.detail-actions{gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.subheading{margin-bottom:var(--space-2);font-size:15px;font-weight:700}.color-input{background:0 0;border:none;flex:none;width:36px;height:36px;padding:0}.active-label{white-space:nowrap;align-items:center;gap:4px;min-height:44px;font-size:13px;display:flex}.section-footnote{color:var(--color-text-muted);margin:calc(-1 * var(--space-3)) 0 var(--space-5);font-size:13px}.section-footnote a{align-items:center;min-height:44px;display:inline-flex}.section__toggle{color:var(--color-accent);cursor:pointer;min-height:44px;padding:0 var(--space-2);background:0 0;border:none;font-size:13px;font-weight:600}.bill-list{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow-card);overflow:hidden}.bill-row{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);min-height:44px;color:inherit;text-decoration:none;display:flex}.bill-row:last-child{border-bottom:none}.category-dot{border-radius:50%;flex:none;width:10px;height:10px}.bill-row__main{flex:1;min-width:0}.bill-row__name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.bill-row__meta{color:var(--color-text-muted);gap:var(--space-2);flex-wrap:wrap;font-size:13px;display:flex}.bill-row__meta--overdue{color:var(--color-danger);font-weight:600}.bill-row__amount{white-space:nowrap;font-weight:700}.estimate-tag{color:var(--color-warning);background:var(--color-warning-bg);border-radius:4px;margin-left:4px;padding:1px 5px;font-size:11px;font-weight:600}.bill-row__actions{gap:var(--space-2);display:flex;position:relative}.row-menu{background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-card);z-index:10;min-width:120px;position:absolute;top:calc(100% + 4px);right:0}.row-menu button{width:100%;min-height:44px;padding:0 var(--space-3);text-align:left;cursor:pointer;background:0 0;border:none;display:block}.btn{min-width:44px;min-height:44px;padding:0 var(--space-4);border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;justify-content:center;align-items:center;font-weight:600;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-text)}.btn--danger{background:var(--color-danger-bg);border-color:var(--color-danger);color:var(--color-danger)}.btn--sm{min-height:44px;padding:0 var(--space-3);font-size:13px}.btn--icon{width:44px;padding:0}.field{margin-bottom:var(--space-4)}.field label{margin-bottom:var(--space-1);font-size:13px;font-weight:600;display:block}.field input,.field select,.field textarea{width:100%;min-height:44px;padding:0 var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text)}.field textarea{padding:var(--space-3);min-height:80px}.field__hint{color:var(--color-text-muted);margin-top:4px;font-size:12px}.field__error{color:var(--color-danger);margin-top:4px;font-size:12px}.field--checkbox{align-items:center;gap:var(--space-2);display:flex}.field--checkbox input{width:20px;height:20px;min-height:0}.form-actions{gap:var(--space-3);margin-top:var(--space-5);display:flex}.sheet-backdrop{z-index:50;background:#0006;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--color-surface);border-radius:var(--radius) var(--radius) 0 0;width:100%;max-width:640px;max-height:85vh;box-shadow:var(--shadow-sheet);padding:var(--space-5) var(--space-4) calc(var(--space-5) + env(safe-area-inset-bottom,0px));overflow-y:auto}.sheet__title{margin-bottom:var(--space-4);font-size:18px;font-weight:700}.toast{left:var(--space-4);right:var(--space-4);bottom:calc(var(--tab-bar-height) + env(safe-area-inset-bottom,0px) + var(--space-3));background:var(--color-text);max-width:600px;color:var(--color-bg);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);justify-content:space-between;align-items:center;gap:var(--space-3);z-index:40;margin:0 auto;display:flex;position:fixed}.toast button{color:inherit;cursor:pointer;background:0 0;border:none;min-height:44px;font-weight:700}.skeleton{background:linear-gradient(90deg, var(--color-muted-bg) 25%, var(--color-border) 37%, var(--color-muted-bg) 63%);border-radius:var(--radius-sm);background-size:400% 100%;height:16px;animation:1.4s infinite skeleton-shimmer}@keyframes skeleton-shimmer{0%{background-position:100%}to{background-position:0}}.empty-state{text-align:center;padding:var(--space-6) var(--space-4);color:var(--color-text-muted)}.inline-error{background:var(--color-danger-bg);color:var(--color-danger);border-radius:var(--radius-sm);padding:var(--space-3);margin-bottom:var(--space-4);font-size:14px}.category-row{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--color-border);flex-wrap:wrap;max-width:100%;display:flex}.category-row:last-child{border-bottom:none}.category-row__primary{align-items:center;gap:var(--space-2);flex:100%;min-width:0;display:flex}.category-row__secondary{align-items:center;gap:var(--space-2);flex:100%;justify-content:space-between;min-width:0;display:flex}@media (width>=640px){.category-row__primary,.category-row__secondary{flex:0 auto}.category-row__secondary{justify-content:flex-start;margin-left:auto}}.category-row__name{background:0 0;border:none;flex:auto;min-width:0;min-height:44px;padding:0}.category-row select{border-radius:var(--radius-sm);max-width:110px;min-height:36px}.reorder-buttons{flex-direction:column;flex:none;display:flex}.reorder-buttons button{min-width:44px;min-height:44px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px}
