:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fdf7f0;--surface:#fff;--surface-sunken:#f6ece2;--ink:#2b2320;--ink-muted:#6b5f59;--ink-faint:#8d8078;--brand:#a8442a;--brand-strong:#8c3722;--brand-tint:#f7e3dc;--accent:#b06f00;--accent-tint:#fdf0d8;--ok:#2f7d5f;--ok-tint:#e2f0e9;--danger:#b3261e;--danger-tint:#fbe6e4;--line:#e7ddd3;--line-strong:#d3c4b6;--shadow:0 1px 2px #2b232014, 0 6px 16px #2b23200f;--radius-sm:8px;--radius:14px;--radius-lg:20px;--tap:44px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;font-size:16px;line-height:1.5}button,input,select,textarea{font:inherit;color:inherit}ul,ol{margin:0;padding:0;list-style:none}:focus-visible{outline:3px solid var(--brand);outline-offset:2px;border-radius:var(--radius-sm)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}.shell{flex-direction:column;min-height:100dvh;display:flex}.shell-header{z-index:10;align-items:center;gap:var(--space-3);min-height:var(--tap);padding:var(--space-3) var(--space-4);padding-top:calc(var(--space-3) + env(safe-area-inset-top));background:var(--bg);border-bottom:1px solid var(--line);display:flex;position:sticky;top:0}.shell-brand{letter-spacing:-.01em;font-weight:700}.shell-household{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink-muted);flex:1;font-size:.9375rem;overflow:hidden}.shell-header>.button{margin-left:auto}.shell-main{width:100%;max-width:40rem;padding:var(--space-4) var(--space-4) var(--space-6);flex:1;margin:0 auto}.shell-nav{z-index:10;border-top:1px solid var(--line);background:var(--surface);padding-bottom:env(safe-area-inset-bottom);grid-template-columns:repeat(3,1fr);display:grid;position:sticky;bottom:0}.nav-item{min-height:var(--tap);padding:var(--space-3);color:var(--ink-muted);justify-content:center;align-items:center;font-weight:600;text-decoration:none;display:flex}.nav-item-active{color:var(--brand);box-shadow:inset 0 3px 0 var(--brand)}.page{gap:var(--space-4);flex-direction:column;display:flex}.page-header{gap:var(--space-1);flex-direction:column;display:flex}.row{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.stack{gap:var(--space-3);flex-direction:column;display:flex}.spread{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}h1,h2,h3{letter-spacing:-.01em;margin:0;line-height:1.25}h1{font-size:1.5rem}h2{font-size:1.15rem}h3{font-size:1rem}p{margin:0}.lede,.muted{color:var(--ink-muted)}.hint{color:var(--ink-faint);font-size:.875rem}.label{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);font-size:.8125rem;font-weight:700}.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}.button{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--tap);padding:var(--space-2) var(--space-4);border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);color:var(--ink);cursor:pointer;font-weight:600;text-decoration:none;display:inline-flex}.button:hover:not(:disabled){border-color:var(--ink-faint)}.button:disabled{opacity:.55;cursor:not-allowed}.button-primary{background:var(--brand);border-color:var(--brand);color:#fff}.button-primary:hover:not(:disabled){background:var(--brand-strong);border-color:var(--brand-strong)}.button-danger{background:var(--danger-tint);border-color:var(--danger);color:var(--danger)}.button-small{min-height:36px;padding:var(--space-1) var(--space-3);font-size:.875rem}.button-block{width:100%}.button-quiet{color:var(--brand);background:0 0;border-color:#0000;text-decoration:underline}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-4);box-shadow:var(--shadow)}.card-flat{box-shadow:none}.card-list{gap:var(--space-3);flex-direction:column;display:flex}.chip{align-items:center;gap:var(--space-2);min-height:36px;padding:var(--space-1) var(--space-3);border:1px solid var(--line-strong);background:var(--surface);border-radius:999px;font-size:.875rem;display:inline-flex}.chip-selected{background:var(--brand-tint);border-color:var(--brand);color:var(--brand-strong);font-weight:600}.chip-button{cursor:pointer}.field{gap:var(--space-1);flex-direction:column;display:flex}.input,.select,.textarea{min-height:var(--tap);width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface)}.textarea{resize:vertical;min-height:5rem}.error-text{color:var(--danger)}.ok-text{color:var(--ok)}.fieldset{gap:var(--space-2);border:0;flex-direction:column;margin:0;padding:0;display:flex}.checkbox-row{align-items:center;gap:var(--space-3);min-height:var(--tap);cursor:pointer;display:flex}.checkbox-row input[type=checkbox]{flex:none;width:1.25rem;height:1.25rem}label.chip{cursor:pointer}.banner{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);flex-wrap:wrap;font-size:.9375rem;display:flex}.banner-offline{background:var(--accent-tint);color:#6b4400}.banner-update{background:var(--brand-tint);color:var(--brand-strong);justify-content:space-between}.badge{padding:2px var(--space-2);text-transform:uppercase;letter-spacing:.04em;border-radius:999px;font-size:.75rem;font-weight:700;display:inline-block}.badge-ok{background:var(--ok-tint);color:var(--ok)}.badge-warn{background:var(--accent-tint);color:#6b4400}.badge-danger{background:var(--danger-tint);color:var(--danger)}.skip-link{z-index:100;padding:var(--space-2) var(--space-3);background:var(--brand);color:#fff;position:absolute;top:0;left:-9999px}.skip-link:focus{left:var(--space-2);top:var(--space-2)}.app-fallback{max-width:30rem;padding:var(--space-5);text-align:center;gap:var(--space-3);flex-direction:column;align-items:center;margin:15vh auto;display:flex}
