@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-ext-wght-normal-BOFOeGcA.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-wght-normal-Xz1IZZA0.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#0e2820;--surface:#17392e;--surface-raised:#1f4a3c;--line:#2c5244;--gold:#e7c873;--text:#f3efe3;--muted:#9fb6aa;--warning-bg:#3a2a1a;--warning:#f2c48d;--danger:#f4a896;--gutter:16px;--tap:44px;--nav-height:60px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);margin:0;font-family:DM Sans Variable,system-ui,sans-serif;font-size:16px;line-height:1.4}h1,h2,h3,p,ul{margin:0;padding:0}ul{list-style:none}a{color:inherit}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.shell{max-width:40rem;padding:env(safe-area-inset-top) var(--gutter) calc(var(--nav-height) + 88px + env(safe-area-inset-bottom));margin:0 auto}.loading{padding:3rem var(--gutter);text-align:center;color:var(--muted)}.bottom-nav{z-index:10;padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--line);grid-template-columns:repeat(3,1fr);display:grid;position:fixed;inset:auto 0 0}.bottom-nav a{height:var(--nav-height);color:var(--muted);place-items:center;font-size:.875rem;text-decoration:none;display:grid}.bottom-nav a.active{color:var(--gold);font-weight:700}.icon-link{width:var(--tap);height:var(--tap);color:var(--muted);place-items:center;margin-right:-10px;display:grid}.page-header{align-items:center;gap:12px;padding:16px 0 12px;display:flex}.page-header h1{flex:1;font-size:1.5rem;line-height:1.2}.hero{grid-template-columns:1fr auto;align-items:end;gap:2px 16px;padding:8px 0 16px;display:grid}.hero-top{min-height:var(--tap);color:var(--muted);grid-column:1/-1;justify-content:space-between;align-items:center;font-size:.875rem;display:flex}.hero h1{color:var(--gold);letter-spacing:-.02em;font-size:2.25rem;line-height:1.05}.hero-total{text-align:right;color:var(--muted);font-size:.8125rem}.hero-total strong{color:var(--text);font-size:1.375rem;line-height:1.2;display:block}.hero-cards{color:var(--muted);grid-column:1/-1;margin-top:8px;font-size:.875rem}.hero-cards .over{color:var(--warning)}.banner,.notice{background:var(--surface-raised);border-radius:10px;margin-bottom:12px;padding:10px 12px;font-size:.875rem}.warning{background:var(--warning-bg);color:var(--warning);border-radius:10px;margin-top:8px;padding:10px 12px;font-size:.875rem}.error{color:var(--danger);font-size:.9375rem}.tabs{background:var(--surface);border-radius:12px;gap:4px;margin-bottom:12px;padding:4px;display:flex}.tabs a,.tabs button{min-width:0;min-height:38px;color:var(--muted);overflow-wrap:anywhere;cursor:pointer;background:0 0;border:0;border-radius:9px;flex:1;place-items:center;padding:4px 8px;font-size:.9375rem;text-decoration:none;display:grid}.tabs .selected,.tabs [aria-selected=true],.tabs [aria-pressed=true]{background:var(--gold);color:var(--bg);font-weight:700}.filters{gap:16px;margin-bottom:12px;font-size:.9375rem;display:flex}.filters a{min-height:var(--tap);color:var(--muted);align-items:center;text-decoration:none;display:flex}.filters a.selected{color:var(--gold);text-underline-offset:4px;font-weight:700;text-decoration:underline}.person-group{margin-bottom:20px}.person-heading{min-height:var(--tap);align-items:center;gap:12px;display:flex}.person-heading h2{overflow-wrap:anywhere;flex:1;font-size:1.0625rem}.budget{color:var(--muted);flex-shrink:0;font-size:.8125rem}.budget.over{color:var(--warning);font-weight:700}.gift{background:var(--surface);border-radius:14px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 12px;margin-bottom:8px;padding:10px 12px;display:grid}.gift-main{min-height:var(--tap);text-decoration:none;display:block}.gift-title{overflow-wrap:anywhere;font-weight:700;display:block}.gift-title.untitled{color:var(--muted);font-weight:500}.gift-meta{color:var(--muted);overflow-wrap:anywhere;font-size:.8125rem;display:block}.gift-side{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.gift-price{font-weight:700}.status{border:1px solid var(--muted);min-height:30px;color:var(--muted);white-space:nowrap;cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:5px;padding:2px 10px 2px 7px;font-size:.8125rem;display:inline-flex}button.status{position:relative}button.status:after{content:"";position:absolute;inset:-7px -4px}.status-bought{border-color:var(--gold);color:var(--gold)}.status-wrapped{border-color:var(--gold);background:var(--gold);color:var(--bg);font-weight:700}.status:disabled{cursor:default}.empty{text-align:center;color:var(--muted);padding:2rem 1rem}.empty .primary{margin-top:16px}.fab{right:max(var(--gutter), calc(50% - 20rem + var(--gutter)));bottom:calc(var(--nav-height) + 16px + env(safe-area-inset-bottom));z-index:9;background:var(--gold);min-height:48px;color:var(--bg);border-radius:999px;align-items:center;padding:0 18px;font-weight:700;text-decoration:none;display:flex;position:fixed;box-shadow:0 6px 18px #00000059}label,.field-label{color:var(--muted);font-size:.875rem;display:block}input,select,textarea{width:100%;min-height:var(--tap);background:var(--surface);color:var(--text);border:1px solid #0000;border-radius:10px;margin-top:4px;padding:9px 12px;font-size:16px;display:block}textarea{resize:vertical;min-height:80px}input:disabled,select:disabled{opacity:.7}fieldset{border:0;min-width:0;margin:0;padding:0}.form{gap:12px;display:grid}.form-row{grid-template-columns:1fr 1fr;gap:8px;display:grid}.primary,.secondary,.danger{min-height:var(--tap);cursor:pointer;border:0;border-radius:12px;justify-content:center;align-items:center;padding:0 18px;font-weight:700;text-decoration:none;display:inline-flex}.primary{background:var(--gold);color:var(--bg)}.secondary{background:var(--surface-raised);color:var(--text)}.danger{color:var(--danger);background:0 0}button:disabled{opacity:.55;cursor:default}.form-actions{flex-wrap:wrap;gap:8px;display:flex}.form-actions .primary{flex:1}.ghost{border:1px dashed var(--muted);width:100%;min-height:48px;color:var(--muted);cursor:pointer;background:0 0;border-radius:12px;display:block}.payer{background:var(--surface);border-radius:10px;grid-template-columns:minmax(0,1fr) 6.5rem;align-items:center;gap:8px;min-height:52px;margin-bottom:6px;padding:4px 8px 4px 12px;display:grid}.payer-toggle{min-height:var(--tap);color:var(--text);cursor:pointer;align-items:center;gap:10px;font-size:1rem;display:flex}.payer-toggle input{width:22px;height:22px;min-height:0;accent-color:var(--gold);flex-shrink:0;margin:0}.payer-toggle small{color:var(--muted);font-size:.75rem;display:block}.payer input[inputmode=decimal]{border-color:var(--gold);background:var(--bg);text-align:right;margin:0}.payer input[inputmode=decimal]:disabled{border-color:var(--line)}.allocation{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 12px;font-size:.875rem;display:flex}.allocation strong.complete{color:var(--gold)}.allocation strong.over{color:var(--warning)}.link-button{min-height:var(--tap);color:var(--text);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.wish{background:var(--surface);border-radius:14px;margin-bottom:8px;padding:11px 13px}.wish-head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.wish h3{overflow-wrap:anywhere;font-size:1rem}.wish p{color:var(--muted);overflow-wrap:anywhere;font-size:.875rem}.wish a{min-height:var(--tap);color:var(--gold);align-items:center;font-size:.875rem;display:inline-flex}.wish .link-button{min-height:32px;color:var(--muted);flex-shrink:0;font-size:.875rem}.totals-scroll{background:var(--surface);border-radius:12px;overflow-x:auto}.totals{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.875rem}.totals th,.totals td{text-align:right;white-space:nowrap;padding:7px 8px}.totals thead th{color:var(--muted);font-size:.75rem;font-weight:500}.totals tbody th{text-align:left;font-weight:500}.totals th:first-child{padding-left:12px}.totals th:last-child,.totals td:last-child{color:var(--gold);padding-right:12px;font-weight:700}.totals tr.strong th,.totals tr.strong td{border-top:1px solid var(--line);font-weight:700}.section{margin-top:20px}.section>h2{margin-bottom:8px;font-size:1.0625rem}.section>.hint{color:var(--muted);margin-bottom:8px;font-size:.875rem}.card-gauge{background:var(--surface);border-radius:12px;margin-bottom:8px;padding:10px 12px}.card-gauge div:first-child{justify-content:space-between;gap:12px;font-weight:700;display:flex}.card-gauge strong{color:var(--gold)}.card-gauge .over{color:var(--warning)}.card-gauge p{color:var(--muted);font-size:.8125rem}.track{background:var(--bg);border-radius:9px;height:6px;margin:8px 0 5px;overflow:hidden}.track span{background:var(--gold);height:100%;display:block}.counters{grid-template-columns:1fr 1fr;gap:8px;display:grid}.counters a{background:var(--surface);color:var(--muted);border-radius:12px;padding:12px;font-size:.875rem;text-decoration:none}.counters strong{color:var(--text);font-size:1.5rem;line-height:1.2;display:block}.section-note{color:var(--muted);margin-top:8px;font-size:.875rem}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.setting{background:var(--surface);border-radius:12px;gap:8px;margin-bottom:8px;padding:10px 12px;display:grid}.setting input,.setting select{background:var(--bg)}.setting .hint{color:var(--muted);font-size:.875rem}.setting-actions{flex-wrap:wrap;justify-content:space-between;gap:8px;display:flex}.login{max-width:22rem;padding:calc(env(safe-area-inset-top) + 15vh) var(--gutter) 2rem;margin:0 auto}.login h1{color:var(--gold);letter-spacing:-.02em;margin-bottom:24px;font-size:3rem}.login form{gap:14px;display:grid}dialog{border:1px solid var(--line);background:var(--surface);width:min(22rem,100vw - 32px);color:var(--text);border-radius:16px;padding:18px}dialog::backdrop{background:#0000008c}dialog p{margin-bottom:16px}@media (prefers-reduced-motion:no-preference){.status{transition:background-color .12s,color .12s}}
