@font-face{font-family:Manrope;font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/manrope-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope;font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/manrope-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{color-scheme:light;--ground: #f3f5f7;--surface: #ffffff;--raised: #f2f8fd;--active: #eef1f4;--border: #e6e6e6;--rule: #f4f4f4;--control: #d6d9dd;--text: #1b1d1f;--muted: #5c6064;--faint: #6b6b6b;--accent: #1d5fd6;--accent-soft: #dcf1ff;--accent-ink: #0a3a80;--primary: #1b1d1f;--primary-ink: #ffffff;--positive: #2f7a45;--negative: #c41c29;--warning: #92400e;--pill-positive-bg: #dcfae5;--pill-positive-ink: #04250e;--pill-negative-bg: #ffedea;--pill-negative-ink: #831c1e;--pill-warning-bg: #fffbeb;--pill-warning-ink: #92400e;--pill-neutral-bg: #eef1f4;--pill-neutral-ink: #3a3d40;--pill-accent-bg: #dcf1ff;--pill-accent-ink: #0a3a80;--chart-1: #1d5fd6;--chart-2: #b45309;--chart-3: #2a8798;--grid: #e5e5e5;--chart-span: .06;--ring-1: #0f3f96;--ring-2: #1d5fd6;--ring-3: #4c82df;--ring-4: #7ba5e8;--ring-5: #a9c6f0;--ring-6: #cbd9ec;--chart-line: var(--ring-2);--chart-wash: rgba(29, 95, 214, .1);--person-1: var(--accent);--person-2: #b45309;--person-3: #2a8798;--radius-card: 20px;--radius-control: 10px;--radius-chip: 8px;--radius-inset: 5px;--radius-sm: var(--radius-control);--radius: var(--radius-card);--radius-lg: var(--radius-card);--gap: 24px;--card-pad: 24px;--pad: 24px;--space-1: 4px;--space-2: 8px;--space-3: 16px;--space-4: 24px;--space-5: 32px;--control-height: 40px;--row-height: 56px;--touch: 44px;--font: "Manrope", Inter, system-ui, sans-serif;--font-sans: var(--font);--fs-title: 28px;--fs-section: 20px;--fs-kpi: 32px;--fs-body: 16px;--fs-small: 14px;--fs-meta: 12px;--text-lg: var(--fs-body);--text-md: var(--fs-body);--text-sm: var(--fs-small);--text-xs: var(--fs-meta);--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-in-out: cubic-bezier(.76, 0, .24, 1);--ease-exit: cubic-bezier(.55, .055, .675, .19);--t-press: .14s;--t-hover: .18s;--t-ui: .24s;--transition-fast: var(--t-hover);--shadow-float: 0 12px 28px rgba(15, 23, 42, .16);--shadow-card: none;--shadow-card-hover: none;--focus-ring: 0 0 0 3px rgba(29, 95, 214, .24);--input-bg: var(--surface);--glass-bg: var(--surface);--color-hover-wash: var(--active);--select-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%235c6064' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");--chart-label-fill: var(--muted);--chart-label-stroke: var(--surface)}[data-theme=dark]{color-scheme:dark;--ground: #000000;--surface: #111111;--raised: #222222;--active: #222222;--border: #2e2e2e;--rule: #1e1e1e;--control: #5c5c5c;--text: #ffffff;--muted: #b4b4b4;--faint: #949494;--accent: #7db4ff;--accent-soft: #10243d;--accent-ink: #bcd7ff;--primary: #ffffff;--primary-ink: #111111;--positive: #3fc07a;--negative: #e5566f;--warning: #e5a93b;--pill-positive-bg: #172a1d;--pill-positive-ink: #3fc07a;--pill-negative-bg: #2c1a20;--pill-negative-ink: #e5566f;--pill-warning-bg: #2b2414;--pill-warning-ink: #e5a93b;--pill-neutral-bg: #222222;--pill-neutral-ink: #e6e6e6;--pill-accent-bg: #10243d;--pill-accent-ink: #bcd7ff;--chart-1: #6ea8fe;--chart-2: #e0a458;--chart-3: #6ec6d8;--grid: #2b2b2b;--chart-span: .12;--ring-1: #9cc3ff;--ring-2: #7db4ff;--ring-3: #5f8fd4;--ring-4: #4470a8;--ring-5: #2f5580;--ring-6: #203a58;--chart-line: var(--ring-2);--chart-wash: rgba(125, 180, 255, .14);--person-1: var(--accent);--person-2: #e0a458;--person-3: #6ec6d8;--shadow-float: 0 12px 28px rgba(0, 0, 0, .5);--focus-ring: 0 0 0 3px rgba(125, 180, 255, .3);--select-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23b4b4b4' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}*{box-sizing:border-box}body{margin:0;font-family:var(--font);font-size:var(--fs-body);line-height:1.5;background:var(--ground);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3{line-height:1.25;letter-spacing:0}h2{font-size:var(--fs-section);font-weight:600}h3{font-size:var(--fs-body);font-weight:500}.num,.amount-input,.expense-row__amount,.expense-row__date,.budget-card p,.budget-card header>span:last-child,.report-meta,.split-totals,.pagination span,.household__balance strong,.household__reward-progress>span,.household__item-content>span,td.num,th.num{font-variant-numeric:tabular-nums}td.num,th.num{text-align:right}@media(prefers-reduced-motion:no-preference){body,.card,.expense-row,.budget-card,.chart,input,select,.nav__item,.currency-toggle__option,.theme-toggle__option{transition-property:background-color,border-color,color;transition-duration:var(--t-hover);transition-timing-function:var(--ease-out)}button,.nav__item,.currency-toggle__option,.theme-toggle__option{transition:border-color var(--t-hover) var(--ease-out),background-color var(--t-hover) var(--ease-out),color var(--t-hover) var(--ease-out),transform var(--t-press) var(--ease-out)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}input,select{font:inherit;min-height:var(--control-height);padding:0 var(--space-3);border:1px solid var(--control);border-radius:var(--radius-control);background:var(--surface);color:var(--text)}.field input,.field select,.card input,.card select{width:100%}input::placeholder{color:var(--faint);opacity:1}input:focus-visible,select:focus-visible,a:focus-visible,button:focus-visible,.nav__item:focus-visible{outline:none;border-color:var(--accent);box-shadow:var(--focus-ring)}input:disabled,select:disabled,button:disabled{background:var(--rule);border-color:var(--border);color:var(--muted);cursor:not-allowed}select{appearance:none;-webkit-appearance:none;padding-right:40px;background-image:var(--select-chevron);background-repeat:no-repeat;background-position:right 12px center;cursor:pointer}select::-ms-expand{display:none}button{font:inherit;font-weight:500;min-height:var(--control-height);padding:0 var(--space-4);border:1px solid var(--control);border-radius:var(--radius-control);background:var(--surface);color:var(--text);cursor:pointer}button:hover:not(:disabled):not(.link-button){background:var(--active)}@media(prefers-reduced-motion:no-preference){button:not(:disabled):active,.nav__item:active,.currency-toggle__option:active,.theme-toggle__option:active{transform:scale(.97)}}button[type=submit],.budget-editor>button,.household__primary-action{background:var(--primary);border-color:var(--primary);color:var(--primary-ink);font-weight:600}button[type=submit]:hover:not(:disabled),.budget-editor>button:hover:not(:disabled),.household__primary-action:hover:not(:disabled){background:var(--primary);color:var(--primary-ink);filter:brightness(1.12)}.expense-row>button:nth-last-of-type(1):hover:not(:disabled){border-color:var(--negative);color:var(--negative)}.shell__side{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);min-height:48px;padding:var(--space-1) clamp(var(--space-3),3vw,var(--space-4));background:var(--ground);border-bottom:1px solid var(--border)}.shell__brand{display:inline-flex;align-items:center;gap:10px;font-weight:600;font-size:var(--fs-body);letter-spacing:0}.shell__brand:before{content:"G";display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:var(--radius-chip);background:var(--text);color:var(--surface);font-size:var(--fs-small);font-weight:600}.shell__controls{display:flex;align-items:center;gap:var(--space-2)}.nav{display:flex}.nav__item{min-width:var(--touch);min-height:var(--touch);display:flex;align-items:center;justify-content:center;padding:0 var(--space-3);text-decoration:none;color:var(--muted);font-weight:500;border-radius:var(--radius-chip);transition:background-color var(--transition-fast) ease,color var(--transition-fast) ease}.nav__item:hover{background:var(--active);color:var(--text)}.nav__item.active{background:var(--active);color:var(--text);font-weight:600}.currency-toggle,.theme-toggle{display:flex;gap:var(--space-1)}.currency-toggle__option,.theme-toggle__option{min-width:var(--touch);min-height:var(--touch);display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;background:transparent;border-radius:var(--radius-control);cursor:pointer;font-size:var(--fs-small);font-weight:500}.theme-toggle__option svg{display:block}.currency-toggle__option:hover:not(:disabled),.theme-toggle__option:hover:not(:disabled){border-color:var(--control)}.currency-toggle__option--active,.theme-toggle__option--active{background:var(--active);color:var(--text);border-color:transparent;font-weight:600}.shell__main{display:block;min-width:0}@media(max-width:899px){.shell{padding-bottom:calc(var(--touch) + env(safe-area-inset-bottom))}.shell__brand{white-space:nowrap}.shell__controls{flex-shrink:0;gap:var(--space-1)}.nav{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;gap:var(--space-1);background:var(--surface);border-top:1px solid var(--border);padding:var(--space-1) var(--space-1) env(safe-area-inset-bottom);z-index:10}.nav__item{flex:1;max-width:140px;flex-direction:column;gap:2px;padding:0 var(--space-1);font-size:var(--fs-meta)}input,select,button{min-height:var(--touch)}}@media(max-width:559px){.shell__brand{font-size:0;gap:0}}@media(min-width:900px){.shell--wide{display:grid;grid-template-columns:240px minmax(0,1fr);align-items:start}.shell--wide .shell__side{position:sticky;top:0;height:100vh;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:var(--gap);padding:var(--pad) var(--space-2) var(--space-3);border-bottom:0;border-right:1px solid var(--border)}.shell--wide .shell__brand{padding:0 var(--space-2)}.shell--wide .shell__controls{margin-top:auto;flex-direction:column;align-items:stretch;gap:var(--space-2)}.shell--wide .currency-toggle,.shell--wide .theme-toggle{width:100%}.shell--wide .currency-toggle__option,.shell--wide .theme-toggle__option{flex:1 1 0;min-width:0}.shell--wide .shell__main{padding:32px var(--space-5) var(--space-5)}.nav{position:static;flex-direction:column;gap:2px;padding:0;border:0;background:transparent}.nav--side{align-items:stretch}.nav__item{justify-content:flex-start;min-height:34px;padding:0 var(--space-2)}}.page{max-width:880px;margin:0 auto;padding:var(--space-3)}@media(min-width:900px){.page{padding:0}}.page h1{font-size:var(--fs-title);font-weight:600;letter-spacing:0;margin:0 0 var(--space-3)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:var(--card-pad)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-3);background:var(--ground)}.login-card{width:100%;max-width:400px;padding:var(--space-5) var(--space-4);border-radius:var(--radius-card)}.login-card h1{margin:0 0 var(--space-2);font-size:var(--fs-title);font-weight:600;letter-spacing:0}.login-card label{display:block;font-size:var(--fs-small);font-weight:500;color:var(--muted);margin:var(--space-3) 0 var(--space-2)}.login-card button[type=submit]{width:100%;margin-top:var(--space-4)}.link-button{background:none;border:none;padding:var(--space-2) 0;min-height:var(--touch);color:var(--accent);text-decoration:underline;cursor:pointer;font-size:var(--fs-small)}.link-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px;box-shadow:none;border-radius:var(--space-1)}.field{margin-bottom:var(--space-3)}.field--wide{grid-column:1 / -1}.expense-form label,.field label{display:block;font-size:var(--fs-small);font-weight:500;color:var(--muted);margin-bottom:var(--space-2)}.field-error{margin:var(--space-1) 0 0;font-size:var(--fs-small);color:var(--negative)}.amount-input{text-align:right;font-weight:600}.month-nav{display:flex;align-items:center;justify-content:center;gap:var(--space-2);margin:var(--space-3) 0}.month-nav button{min-width:var(--touch);padding:0;font-size:var(--fs-section);line-height:1}.month-nav__label{min-width:180px;text-align:center;font-size:var(--fs-body);font-weight:600;text-transform:capitalize}.pagination{display:flex;align-items:center;justify-content:center;gap:var(--space-3);margin-top:var(--space-3)}.pagination span{color:var(--muted);font-size:var(--fs-small)}.expense-form .field{margin-bottom:var(--space-2)}.expense-form input,.expense-form select,.budget-editor input,.budget-editor select,.expense-filters input,.expense-filters select{width:100%}.expense-form button[type=submit]{margin-top:var(--space-2)}@media(min-width:900px){.expense-form{display:grid;grid-template-columns:repeat(4,1fr) auto;gap:var(--space-3);align-items:start}.expense-form .field{margin-bottom:0}.expense-form button[type=submit]{margin-top:0;align-self:end}}.expense-filters{display:grid;grid-template-columns:1fr;gap:var(--space-2);margin-bottom:var(--space-3)}@media(min-width:600px){.expense-filters{grid-template-columns:repeat(2,1fr)}}.expense-filters .field{margin-bottom:0}.expense-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);overflow:hidden}.expense-card__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);padding:var(--card-pad) var(--card-pad) var(--space-3);border-bottom:1px solid var(--rule)}.expense-card__title{font-size:var(--fs-small);font-weight:600}.expense-card__scope{margin:2px 0 0;color:var(--muted);font-size:var(--fs-meta)}.expense-card__total{margin:0;font-size:var(--fs-section);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.expense-card__empty{margin:0;padding:var(--space-4) var(--card-pad);color:var(--muted)}.expense-list{list-style:none;margin:0;padding:0 var(--card-pad)}.expense-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-1) var(--space-3);min-height:var(--row-height);padding:var(--space-3) 0;border-top:1px solid var(--rule)}.expense-row:first-child{border-top:0}.expense-row:hover{background:var(--active)}@keyframes row-arrive{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:no-preference){.expense-row--arrive{animation:row-arrive var(--t-ui) var(--ease-out) both}}.expense-row__category{display:flex;align-items:center;gap:var(--space-2);font-weight:500}.category-swatch,.swatch{display:inline-block;width:10px;height:10px;border-radius:50%;flex-shrink:0;box-shadow:inset 0 0 0 1px #0000001a}.expense-row__amount{margin-left:auto;font-weight:600;font-size:var(--fs-body);color:var(--text)}.expense-row__date{color:var(--muted);font-size:var(--fs-small)}.expense-row__note{flex-basis:100%;color:var(--muted);font-size:var(--fs-small)}.expense-row__recorder{flex:1;color:var(--muted);font-size:var(--fs-meta)}.expense-row>button{font-size:var(--fs-small);padding:0 var(--space-3);min-height:36px}.expense-row--editing{display:block;padding:var(--space-3) 0}.expense-row--editing .expense-form{margin:0}.alert-banner{display:grid;gap:var(--space-2);margin:var(--space-3) 0}.alert-banner p{margin:0;padding:var(--space-2) var(--space-3);border-radius:var(--radius-chip);font-size:var(--fs-small);border:1px solid transparent}.alert--warning{background:var(--pill-warning-bg);color:var(--pill-warning-ink);border-color:var(--pill-warning-bg)}.alert--exceeded{background:var(--pill-negative-bg);color:var(--pill-negative-ink);border-color:var(--pill-negative-bg)}.rates-banner{margin:var(--space-3) 0 0;padding:var(--space-2) var(--space-3);border:1px solid var(--pill-warning-bg);border-radius:var(--radius-chip);background:var(--pill-warning-bg);color:var(--pill-warning-ink);font-size:var(--fs-small)}.rates-banner--stale,.rates-banner--degraded{border-color:var(--border);background:var(--pill-neutral-bg);color:var(--muted)}.split-totals{font-weight:600}.report-meta{margin:var(--space-2) 0;color:var(--muted);font-size:var(--fs-small)}.budget-strip{display:grid;gap:var(--gap);grid-template-columns:1fr}@media(min-width:600px){.budget-strip{grid-template-columns:repeat(2,1fr)}}.budget-card{position:relative;display:grid;gap:var(--space-1);align-content:start;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:var(--card-pad)}.budget-card header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-1)}.budget-card h3{flex:1;margin:0;font-size:var(--fs-body);font-weight:500}.budget-card__pct{font-size:var(--fs-small);font-weight:600;font-variant-numeric:tabular-nums}.budget-card p{margin:0}.budget-card__amount{font-size:var(--fs-body);font-variant-numeric:tabular-nums}.budget-card__remaining{color:var(--muted);font-size:var(--fs-small);font-variant-numeric:tabular-nums}.budget-card__native{color:var(--muted);font-size:var(--fs-small)}.budget-card__rate{color:var(--muted);font-size:var(--fs-meta)}.budget-card__edit{justify-self:start;min-height:var(--touch);padding:0;border:0;background:none;color:var(--muted);font-size:var(--fs-small);cursor:pointer}.budget-card__edit:hover{color:var(--text)}.progress{height:6px;margin:var(--space-2) 0 var(--space-1);background:var(--rule);border-radius:999px;overflow:hidden}.progress__fill{height:100%;border-radius:inherit;background:var(--accent);transform-origin:left center;transition:transform var(--t-ui) var(--ease-out)}.alert--warning .progress__fill{background:var(--warning)}.alert--exceeded .progress__fill{background:var(--negative)}.budget-editor{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-2);margin-top:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--border)}.budget-editor .field{margin-bottom:0}.budget-editor>button{grid-column:1 / -1;justify-self:start}.budget-editor .field-error{grid-column:1 / -1;margin:0}.chart{margin:0;padding:var(--card-pad);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);min-height:240px}.chart figcaption{margin-bottom:var(--space-2);font-size:var(--fs-small);font-weight:500;color:var(--muted)}.chart svg{max-width:100%}.chart--pending{display:flex;align-items:center;color:var(--muted);font-size:var(--fs-small)}.charts{display:grid;gap:var(--gap);margin:var(--space-3) 0}.charts-split{display:grid;gap:var(--gap);grid-template-columns:1fr}.chart--ring .ring{display:grid;gap:var(--space-4);align-items:center}@media(min-width:640px){.chart--ring .ring{grid-template-columns:220px minmax(0,1fr)}}.ring .recharts-pie-sector{stroke:var(--surface);stroke-width:2}.ring__cell--1{fill:var(--ring-1);background:var(--ring-1)}.ring__cell--2{fill:var(--ring-2);background:var(--ring-2)}.ring__cell--3{fill:var(--ring-3);background:var(--ring-3)}.ring__cell--4{fill:var(--ring-4);background:var(--ring-4)}.ring__cell--5{fill:var(--ring-5);background:var(--ring-5)}.ring__cell--6{fill:var(--ring-6);background:var(--ring-6)}.ring__key{display:inline-block;width:8px;height:8px;margin-right:var(--space-2);border-radius:2px;vertical-align:baseline}.data-table{width:100%;border-collapse:collapse;font-size:var(--fs-small)}.data-table th,.data-table td{padding:var(--space-2) 0;border-bottom:1px solid var(--rule);text-align:left;font-weight:400}.data-table thead th{color:var(--muted);font-size:var(--fs-meta)}.data-table td.num,.data-table th.num{text-align:right}.data-table tbody th{font-weight:500}.data-table tfoot th,.data-table tfoot td{border-bottom:0;border-top:1px solid var(--border);font-weight:600}.ring__legend tfoot td,.ring__legend tfoot th{padding-top:var(--space-2)}.chart .recharts-area-curve{stroke:var(--chart-line);stroke-width:2}.chart .recharts-area-area{fill:var(--chart-wash);stroke:none}.chart .recharts-cartesian-grid line{stroke:var(--grid)}.chart .recharts-cartesian-axis-tick-value{fill:var(--muted);font-size:var(--fs-meta)}.chart .recharts-active-dot circle{fill:var(--chart-line);stroke:var(--surface);stroke-width:2}.chart .recharts-default-tooltip{background:var(--surface)!important;border:1px solid var(--border)!important;border-radius:var(--radius-chip)!important;box-shadow:var(--shadow-float);font-size:var(--fs-small)}.zero-state{grid-column:1 / -1;display:block;margin:0;padding:var(--space-3) var(--space-4);border:1px dashed var(--control);border-radius:var(--radius-chip);background:transparent;color:var(--muted);font-size:var(--fs-small);text-align:left}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skeleton{background:var(--active);border-radius:var(--radius-chip)}.skeleton--title{width:38%;height:24px;margin-bottom:var(--space-4)}.skeleton--block{height:152px;margin-bottom:var(--gap);border-radius:var(--radius-card)}.list-skeleton{padding:var(--space-1) 0}.list-skeleton__row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:var(--row-height);padding:0 var(--card-pad)}.list-skeleton__row+.list-skeleton__row{border-top:1px solid var(--rule)}.skeleton--line{display:block;width:46%;max-width:260px;height:12px;border-radius:999px}.skeleton--figure{display:block;width:88px;height:12px;border-radius:999px;background:var(--border)}.auth-hold{margin:0;color:var(--muted);font-size:var(--fs-small);text-align:center}.notice{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin:0 0 var(--space-3);padding:var(--space-3) var(--card-pad);border:1px solid var(--border);border-radius:var(--radius-control);font-size:var(--fs-small)}.notice p{margin:0}.notice button{flex-shrink:0}.notice--error{border-color:var(--negative);color:var(--negative)}.notice--warning{border-color:var(--pill-warning-bg);background:var(--pill-warning-bg);color:var(--pill-warning-ink)}.import-notices{display:grid;gap:var(--space-2);margin-bottom:var(--space-3)}.import-notices .notice{margin:0}.import-outcome{display:grid;gap:var(--space-2)}.import-outcome h2{margin:0;font-size:var(--fs-section);font-weight:600}.import-outcome .link-button{justify-self:start}.kind-cards{display:grid;gap:var(--gap);grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.kind-card{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--card-pad);border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);color:var(--text);text-align:left;cursor:pointer;transition:border-color var(--transition-fast)}.kind-card:hover{border-color:var(--control)}.kind-card--selected{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink)}.kind-card__title{font-size:var(--fs-body);font-weight:500}.kind-card__hint{font-size:var(--fs-small);color:var(--muted)}.dropzone{margin-top:var(--space-3);padding:var(--space-5) var(--space-4);border:1px dashed var(--control);border-radius:var(--radius-card);background:transparent;color:var(--muted);text-align:center;transition:border-color var(--transition-fast),background-color var(--transition-fast)}.dropzone--active,.dropzone:has(input:focus-visible){border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink)}.dropzone__input{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.dropzone__label{cursor:pointer;font-size:var(--fs-body);font-weight:500}.dropzone__label:hover{color:var(--text)}.dropzone__hint{margin:var(--space-1) 0 0;font-size:var(--fs-small)}.import-file-meta{margin:var(--space-2) 0 0;font-size:var(--fs-small);color:var(--text)}.import-actions{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-3)}.import-zero{margin-top:var(--space-4)}.import-zero p{margin:0}.import-summary{font-size:var(--fs-small);color:var(--muted)}.import-bulk-category{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3)}.import-bulk-category label{font-size:var(--fs-small);color:var(--muted);white-space:nowrap}.import-bulk-category select{max-width:220px}.import-rows{display:grid;gap:0;margin:var(--space-3) 0;padding:0 var(--card-pad);list-style:none;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card)}.import-row{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:var(--space-2) var(--space-3);padding:var(--space-3) 0;border-top:1px solid var(--rule)}.import-row:first-child{border-top:0}.import-row--excluded{color:var(--muted)}.import-row--excluded .import-row__fields{opacity:.65}.import-row__include{display:flex;align-items:center;gap:var(--space-2);font-size:var(--fs-small);color:var(--muted);cursor:pointer}.import-confidence{justify-self:end;padding:2px var(--space-2);border-radius:999px;font-size:var(--fs-meta);font-weight:500;background:var(--pill-neutral-bg);color:var(--pill-neutral-ink)}.import-confidence--review{background:var(--pill-warning-bg);color:var(--pill-warning-ink)}.import-row__fields{grid-column:1 / -1;display:grid;grid-template-columns:minmax(130px,auto) 2fr minmax(100px,1fr) minmax(84px,auto);align-items:center;gap:var(--space-2)}.import-row__raw{grid-column:1 / -1;margin:0;font-size:var(--fs-meta);color:var(--muted);overflow-wrap:anywhere}@media(max-width:700px){.import-row__fields{grid-template-columns:1fr 1fr}}.import-actionbar{position:sticky;bottom:calc(var(--touch) + env(safe-area-inset-bottom,0px));z-index:5;display:flex;justify-content:flex-end;margin-top:var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-chip);background:var(--surface)}.import-rejected ul{margin:0;padding-left:var(--space-4);text-align:left;color:var(--negative)}.household{display:grid;gap:var(--gap)}.household__heading h1,.household__section-heading h2{margin:0}.household__heading p,.household__section-heading p,.household__item-content small,.household__balance span{color:var(--muted)}.household__heading p,.household__section-heading p,.household__reward-progress p{margin:var(--space-1) 0 0}.household__summary{display:grid;gap:var(--space-3)}.household__balance,.household__reward-progress{display:grid;gap:var(--space-1)}.household__balance strong{font-size:var(--fs-kpi);font-weight:600;line-height:1.1}.household__balance span{font-size:var(--fs-small)}.household__reward-progress strong{font-size:var(--fs-body);font-weight:600}.household__reward-progress>span{color:var(--muted)}.household__reward-progress .progress{margin:var(--space-1) 0 0}.household__empty-summary,.household__feedback{margin:0}.household__feedback{padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-chip);background:var(--pill-positive-bg);color:var(--pill-positive-ink)}.household form{display:grid;gap:var(--space-2);margin-top:var(--space-3)}.household label{display:grid;gap:var(--space-2);font-size:var(--fs-small);font-weight:500;color:var(--muted)}.household__list{display:grid;gap:0;margin:var(--space-3) 0 0;padding:0;list-style:none}.household__item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) 0;border-top:1px solid var(--rule)}.household__list>.household__item:first-child{border-top:0}@keyframes chore-settle{0%{opacity:.6;transform:translateY(-3px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:no-preference){.household__item--settle{animation:chore-settle .42s var(--ease-out) both}}.household__item-content{display:grid;min-width:0;gap:var(--space-1)}.household__item-content>span{font-weight:600;font-size:var(--fs-small)}.household__primary-action,.household__row-action{flex:0 0 auto;min-width:120px}.person{display:inline-flex;align-items:center;gap:6px}.person:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--person-1)}.person--none:before{background:var(--control)}.person--2:before{background:var(--person-2)}.person--3:before{background:var(--person-3)}.household__loading,.household__empty-summary{margin:0;color:var(--muted);font-size:var(--fs-small)}.household__actions,.household__proposal-actions{display:grid;flex:0 0 auto;gap:var(--space-2)}.household__proposals>p{margin:var(--space-1) 0 0;color:var(--muted)}.household__proposal-actions button,.household__admin button{min-height:var(--touch)}.household__admin label{margin-bottom:var(--space-1)}.household__secondary,.household__admin{margin-top:var(--space-3)}.card>.household__secondary{padding-top:var(--space-2);border-top:1px solid var(--rule)}.household__secondary>summary,.household__admin>summary{min-height:var(--touch);display:flex;align-items:center;color:var(--text);cursor:pointer;font-weight:500}.household__admin{margin:0}.household__admin>div{display:grid;gap:var(--space-2);margin-top:var(--space-2)}.household__settings>summary{font-weight:600}.household__settings h2{margin:var(--space-3) 0 var(--space-2);font-size:var(--fs-body);font-weight:600}.household__settings h3{margin:var(--space-4) 0 var(--space-2);color:var(--muted);font-size:var(--fs-meta);font-weight:600}.household__members{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);margin:0 0 var(--space-3);padding:0;list-style:none;font-size:var(--fs-small)}.household__movements{margin:0;padding:0;list-style:none;font-size:var(--fs-small)}.household__movements li{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) 0;border-top:1px solid var(--rule)}.household__movements strong{font-variant-numeric:tabular-nums;font-weight:600}.delta--in{color:var(--positive)}.delta--out{color:var(--muted)}.household__invitation{display:grid;gap:var(--space-2);margin-top:var(--space-3)}.household__invitation p{margin:0}.household__redemptions{display:grid;gap:var(--space-1);margin:var(--space-2) 0 0;padding-left:var(--space-3);color:var(--muted);font-size:var(--fs-small)}.household__redemptions li{display:list-item;padding:0;border:0}@media(max-width:767px){.household__item,.household__actions,.household__proposal-actions{align-items:stretch}.household__item{flex-direction:column}.household__actions,.household__proposal-actions{width:100%}.household__primary-action,.household__row-action,.household__proposal-actions>button,.household__admin>div>button,.household form button[type=submit]{width:100%}}@media(min-width:768px){.household__summary{grid-template-columns:minmax(160px,.7fr) 1.3fr;align-items:center}}.calendar__month,.calendar__day-panel{margin-bottom:var(--space-3)}.calendar__toolbar{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3)}.calendar__toolbar h2{flex:1;margin:0;font-size:var(--fs-section);font-weight:600;text-align:center;white-space:nowrap}.calendar__nav{width:var(--touch);height:var(--touch);padding:0;font-size:1.25rem;line-height:1;color:var(--muted);background:transparent;border:1px solid var(--border);border-radius:var(--radius-chip)}.calendar__today{min-height:var(--touch);color:var(--muted);background:transparent;border:1px solid var(--border);border-radius:var(--radius-chip);padding:0 var(--space-3)}.calendar__weekdays,.calendar__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--space-1)}.calendar__weekdays{margin-bottom:var(--space-1);font-size:var(--fs-meta);color:var(--muted);text-align:center}.calendar__day{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:40px;padding:0;font-variant-numeric:tabular-nums;color:var(--text);background:transparent;border:1px solid transparent;border-radius:var(--radius-chip)}.calendar__day:hover{background:var(--active)}.calendar__day--outside{color:var(--muted);opacity:.55}.calendar__day--today{border-color:var(--border-strong, var(--border))}.calendar__day--selected{background:var(--active);border-color:var(--text);font-weight:600}.calendar__dot{width:4px;height:4px;border-radius:50%;background:var(--accent)}.calendar__list{list-style:none;margin:0 0 var(--space-3);padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.calendar__event{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-2);padding:var(--space-2) 0;border-bottom:1px solid var(--border)}.calendar__event:last-child{border-bottom:0}.calendar__event-main{display:flex;flex-direction:column;gap:2px;min-width:0}.calendar__event-main small{color:var(--muted)}.calendar__time{font-variant-numeric:tabular-nums;font-weight:600}.calendar__event-actions{display:flex;gap:var(--space-1);flex-shrink:0}.calendar__form{border-top:1px solid var(--border);padding-top:var(--space-3)}.calendar__form h3{margin:0 0 var(--space-2);font-size:var(--fs-body);font-weight:600}.calendar__form-actions{display:flex;gap:var(--space-2);align-items:center}@media(max-width:767px){.calendar__toolbar{gap:var(--space-1)}.calendar__toolbar h2{font-size:var(--fs-body)}.calendar__event{flex-direction:column;align-items:stretch}.calendar__event-actions>button,.calendar__form-actions>button{flex:1}}
