:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--brand:#9a2f4b;--on-brand:#fff;--on-brand-muted:#ffffffb8;--action:#7fb5d9;--action-hover:#6aa6cf;--on-action:#0f2e44;--burgundy:#a3324f;--burgundy-hover:#8e2944;--on-burgundy:#fff;--burgundy-text:#9e3150;--burgundy-tint:#fae6ec;--sky:#7fb5d9;--sky-deep:#2e6e99;--on-sky-deep:#fff;--sky-tint:#e1eff7;--sky-tint-text:#1c5a7f;--sky-tint-text-2:#3e86b5;--chart-line:#9e3150;--ink:#2e2227;--muted:#8d7a7f;--page:#f8f4f3;--surface:#fff;--surface-2:#f3ecec;--border:#ece0e2;--danger:#b3261e;--overlay:#2e222766;--shadow:0 1px 2px #2e22270f, 0 4px 16px #2e22270f;--bevel-hi:#ffffff47;--bevel-lo:#2e222729;--bevel-drop:0 1px 2px #2e22272e, 0 2px 6px #2e22271a;--bevel-pressed:inset 0 2px 4px #2e222738;--radius-card:12px;--radius-control:8px;--radius-pill:999px;--font:"Segoe UI", Roboto, system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;--w-regular:400;--w-medium:500;--topbar-h:52px;--tabbar-h:64px;--gutter:16px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--brand:#7e2a42;--on-brand:#fff;--on-brand-muted:#ffffffb3;--action:#8ec3e6;--action-hover:#a6d1ee;--on-action:#0e2638;--burgundy:#b8435f;--burgundy-hover:#c9536f;--on-burgundy:#fff;--burgundy-text:#f2a7b9;--burgundy-tint:#4a2333;--sky:#8ec3e6;--sky-deep:#3d86b8;--on-sky-deep:#fff;--sky-tint:#1e3a52;--sky-tint-text:#b9ddf4;--sky-tint-text-2:#8fc4e8;--chart-line:#d9658a;--ink:#eef2f6;--muted:#9aa6b4;--page:#11161d;--surface:#1a2129;--surface-2:#232c36;--border:#2e3945;--danger:#f2b8b5;--overlay:#0000008c;--shadow:0 1px 2px #0000004d, 0 4px 16px #00000040;--bevel-hi:#ffffff29;--bevel-lo:#00000059;--bevel-drop:0 1px 2px #00000073, 0 2px 8px #0000004d;--bevel-pressed:inset 0 2px 5px #00000073}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--brand:#7e2a42;--on-brand:#fff;--on-brand-muted:#ffffffb3;--action:#8ec3e6;--action-hover:#a6d1ee;--on-action:#0e2638;--burgundy:#b8435f;--burgundy-hover:#c9536f;--on-burgundy:#fff;--burgundy-text:#f2a7b9;--burgundy-tint:#4a2333;--sky:#8ec3e6;--sky-deep:#3d86b8;--on-sky-deep:#fff;--sky-tint:#1e3a52;--sky-tint-text:#b9ddf4;--sky-tint-text-2:#8fc4e8;--chart-line:#d9658a;--ink:#eef2f6;--muted:#9aa6b4;--page:#11161d;--surface:#1a2129;--surface-2:#232c36;--border:#2e3945;--danger:#f2b8b5;--overlay:#0000008c;--shadow:0 1px 2px #0000004d, 0 4px 16px #00000040;--bevel-hi:#ffffff29;--bevel-lo:#00000059;--bevel-drop:0 1px 2px #00000073, 0 2px 8px #0000004d;--bevel-pressed:inset 0 2px 5px #00000073}:root[data-palette=sage]{--brand:#5e7a61;--on-brand:#fff;--on-brand-muted:#ffffffbf;--action:#e3a587;--action-hover:#d9946f;--on-action:#45200f;--burgundy:#4f6b52;--burgundy-hover:#425c45;--on-burgundy:#fff;--burgundy-text:#4a664d;--burgundy-tint:#e3ece1;--sky:#e3a587;--sky-deep:#a35d3c;--on-sky-deep:#fff;--sky-tint:#f5e7de;--sky-tint-text:#84462a;--sky-tint-text-2:#b06e4d;--chart-line:#4a664d;--ink:#23302a;--muted:#75837a;--page:#f4f6f1;--surface:#fff;--surface-2:#ecf0e8;--border:#dde4d8}:root[data-palette=sage][data-scheme=dark]{--brand:#3f5743;--on-brand:#fff;--on-brand-muted:#ffffffb3;--action:#e8b096;--action-hover:#f0c2ac;--on-action:#3a1b0e;--burgundy:#5c7f60;--burgundy-hover:#6a8f6e;--on-burgundy:#fff;--burgundy-text:#b5d1b7;--burgundy-tint:#26362a;--sky:#e8b096;--sky-deep:#b8714f;--on-sky-deep:#fff;--sky-tint:#3a2a22;--sky-tint-text:#f2cdb9;--sky-tint-text-2:#e3a98b;--chart-line:#9cc59f;--ink:#e9efe8;--muted:#9aa89d;--page:#131815;--surface:#1b221d;--surface-2:#242d27;--border:#303b33}:root[data-palette=beige]{--brand:#8c7151;--on-brand:#fff;--on-brand-muted:#ffffffbf;--action:#c9a27a;--action-hover:#bd936a;--on-action:#2e2015;--burgundy:#7a5c3e;--burgundy-hover:#694e33;--on-burgundy:#fff;--burgundy-text:#765a3d;--burgundy-tint:#f1e7d8;--sky:#c9a27a;--sky-deep:#8c6a47;--on-sky-deep:#fff;--sky-tint:#efe6d8;--sky-tint-text:#6b4f33;--sky-tint-text-2:#997552;--chart-line:#7a5c3e;--ink:#3a2f25;--muted:#8e8072;--page:#f8f4ee;--surface:#fffdf9;--surface-2:#f1ebe1;--border:#e7ddcf}:root[data-palette=beige][data-scheme=dark]{--brand:#5e4b36;--on-brand:#fff;--on-brand-muted:#ffffffb3;--action:#d2ae86;--action-hover:#ddbd99;--on-action:#2b1d10;--burgundy:#8f6e4c;--burgundy-hover:#a07d59;--on-burgundy:#fff;--burgundy-text:#e3c7a3;--burgundy-tint:#3a2e22;--sky:#d2ae86;--sky-deep:#8f6e4c;--on-sky-deep:#fff;--sky-tint:#33291f;--sky-tint-text:#ebd5b8;--sky-tint-text-2:#d2ae86;--chart-line:#e0bc92;--ink:#f1ebe3;--muted:#a89b8c;--page:#17130f;--surface:#201b16;--surface-2:#2a241d;--border:#3a3128}:root[data-palette=pastels]{--brand:#b39ddb;--on-brand:#2a1f3d;--on-brand-muted:#2a1f3db3;--action:#f7b8c8;--action-hover:#f2a3b7;--on-action:#4a1d2b;--burgundy:#7a5bb5;--burgundy-hover:#6a4ca3;--on-burgundy:#fff;--burgundy-text:#7051ab;--burgundy-tint:#eee7fa;--sky:#f7b8c8;--sky-deep:#3e8a6e;--on-sky-deep:#fff;--sky-tint:#ddf2ea;--sky-tint-text:#2f6b55;--sky-tint-text-2:#4c8c73;--chart-line:#7051ab;--ink:#2f2838;--muted:#8a8196;--page:#fbf8fc;--surface:#fff;--surface-2:#f3eef7;--border:#e9e1f0}:root[data-palette=pastels][data-scheme=dark]{--brand:#5b4a7a;--on-brand:#fff;--on-brand-muted:#ffffffb3;--action:#f4b3c4;--action-hover:#f8c6d3;--on-action:#3d1522;--burgundy:#8b6cc0;--burgundy-hover:#9a7dcd;--on-burgundy:#fff;--burgundy-text:#cdb8f0;--burgundy-tint:#33294a;--sky:#a8e0cb;--sky-deep:#3e8a6e;--on-sky-deep:#fff;--sky-tint:#1f3a31;--sky-tint-text:#bdebd9;--sky-tint-text-2:#8fd3b8;--chart-line:#cdb8f0;--ink:#f1edf7;--muted:#a59cb3;--page:#15121b;--surface:#1d1925;--surface-2:#27222f;--border:#352e40}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}@media (pointer:coarse){body.typing .tabbar{display:none}}html,body{overscroll-behavior-y:none;touch-action:pan-x pan-y}.topbar,.tabbar,button,a{touch-action:manipulation}.tree-scroll{touch-action:pan-x pan-y}.upcoming-name{font-weight:var(--w-medium);overflow-wrap:anywhere;line-height:1.3;display:block}.upcoming-side{flex-direction:column;flex:none;align-items:flex-end;gap:6px;display:flex}@media (width<=380px){.upcoming-side .avatar-stack,.upcoming-side>.avatar{display:none}}body{background:var(--page);color:var(--ink);font-family:var(--font);font-weight:var(--w-regular);margin:0;font-size:16px;line-height:1.45}h1,h2,h3,h4{font-weight:var(--w-medium);margin:0;line-height:1.25}h1{font-size:22px}h2{font-size:18px}h3{font-size:16px}p{margin:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--burgundy-text)}:focus-visible{outline:2px solid var(--sky-deep);outline-offset:2px}.muted{color:var(--muted)}.small{font-size:14px}.tiny{font-size:12px}.medium{font-weight:var(--w-medium)}.stack{flex-direction:column;gap:12px;display:flex}.stack-lg{flex-direction:column;gap:24px;display:flex}.row{align-items:center;gap:12px;display:flex}.row-between{justify-content:space-between;align-items:center;gap:12px;display:flex}.grow{flex:1;min-width:0}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.visually-hidden{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.topbar{z-index:20;height:calc(var(--topbar-h) + env(safe-area-inset-top));padding:env(safe-area-inset-top) var(--gutter) 0;background:var(--brand);color:var(--on-brand);align-items:center;gap:8px;display:flex;position:sticky;top:0}.topbar-title{font-size:18px;font-weight:var(--w-medium);flex:1}.topbar .icon-btn{color:var(--on-brand)}.topbar .icon-btn:hover{background:#ffffff24}main{max-width:720px;padding:16px var(--gutter) calc(var(--tabbar-h) + 32px + env(safe-area-inset-bottom));margin:0 auto}.tabbar{z-index:20;height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--brand);grid-template-columns:repeat(5,1fr);align-items:center;display:grid;position:fixed;bottom:0;left:0;right:0}.tab{color:var(--on-brand-muted);flex-direction:column;align-items:center;gap:2px;padding:6px 0;font-size:12px;text-decoration:none;display:flex}.tab.active{color:var(--on-brand);font-weight:var(--w-medium)}.tab svg{box-sizing:content-box;border-radius:var(--radius-pill);padding:3px 16px}.tab.active svg{background:var(--action);color:var(--on-action)}.tab-add{border:4px solid var(--brand);background:var(--action);width:54px;height:54px;color:var(--on-action);box-shadow:var(--shadow);border-radius:50%;justify-self:center;place-items:center;display:grid;transform:translateY(-12px)}.tab-add:hover,.tab-add:active{background:var(--action-hover)}.btn{border-radius:var(--radius-control);min-height:44px;font-weight:var(--w-medium);white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:15px;text-decoration:none;display:inline-flex}.btn-primary{background:var(--action);color:var(--on-action)}.btn-primary:hover{background:var(--action-hover)}.btn-secondary{background:var(--surface);border-color:var(--border);color:var(--ink)}.btn-ghost{color:var(--burgundy-text);background:0 0;padding:0 8px}.btn-danger{border-color:var(--border);color:var(--danger);background:0 0}.btn-danger-solid{color:#fff;box-shadow:inset 0 1px 0 #ffffff40, var(--bevel-drop);background:#b3261e}.btn-danger-solid:active{box-shadow:var(--bevel-pressed);transform:translateY(1px)}.btn-block{width:100%}.btn-sm{min-height:36px;padding:0 12px;font-size:14px}.btn:disabled{opacity:.5;cursor:not-allowed}.icon-btn{width:40px;height:40px;color:var(--ink);background:0 0;border:none;border-radius:50%;place-items:center;display:grid;position:relative}.icon-btn:hover{background:var(--surface-2)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:16px}.card-flush{padding:0;overflow:hidden}.list-row{color:inherit;border-top:1px solid var(--border);text-align:left;background:0 0;border-bottom:none;border-left:none;border-right:none;align-items:center;gap:12px;width:100%;padding:12px 16px;text-decoration:none;display:flex}.list-row:first-child{border-top:none}.list-row.indent{padding-left:40px}.list-row:hover{background:var(--surface-2)}.pill{border-radius:var(--radius-pill);font-size:12px;font-weight:var(--w-medium);background:var(--sky-tint);color:var(--sky-tint-text);white-space:nowrap;align-items:center;gap:4px;padding:2px 10px;display:inline-flex}.pill-muted{background:var(--surface-2);color:var(--muted)}.pill-burgundy{background:var(--burgundy-tint);color:var(--burgundy-text)}.chip{border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--surface);color:inherit;align-items:center;gap:8px;padding:4px 12px 4px 4px;font-size:14px;text-decoration:none;display:inline-flex}.chip-add{color:var(--muted);background:0 0;border-style:dashed;padding:4px 12px}button.chip:not(.chip-add){cursor:pointer;padding:6px 12px}.chip-on{background:var(--action);border-color:var(--action);color:var(--on-action);font-weight:var(--w-medium)}.chips{flex-wrap:wrap;gap:8px;display:flex}.section-title{font-size:13px;font-weight:var(--w-medium);color:var(--muted);margin:0 0 8px}.avatar{background:var(--sky-tint);color:var(--sky-tint-text);font-weight:var(--w-medium);object-fit:cover;border-radius:50%;flex:none;place-items:center;display:grid;overflow:hidden}.avatar-stack{flex:none;display:flex}.avatar-stack .avatar{border:2px solid var(--surface)}.avatar-stack .avatar+.avatar{margin-left:-10px}.segmented{border-radius:var(--radius-control);background:var(--surface-2);grid-auto-columns:1fr;grid-auto-flow:column;gap:4px;padding:4px;display:grid}.segmented button{min-height:36px;color:var(--muted);font-size:14px;font-weight:var(--w-medium);background:0 0;border:none;border-radius:6px}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.field{flex-direction:column;gap:6px;display:flex}.field>span{font-size:14px;font-weight:var(--w-medium)}.field .hint{color:var(--muted);font-size:13px}.input{border-radius:var(--radius-control);border:1px solid var(--border);background:var(--surface);width:100%;min-height:44px;padding:10px 12px}.input:focus{outline:2px solid var(--sky-deep);outline-offset:-1px;border-color:#0000}textarea.input{resize:vertical;min-height:88px}.input-prefix{position:relative}.input-prefix>b{color:var(--muted);font-weight:var(--w-regular);position:absolute;top:50%;left:12px;transform:translateY(-50%)}.input-prefix>.input{padding-left:28px}.toggle-row{border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface);justify-content:space-between;align-items:center;gap:12px;min-height:52px;padding:8px 16px;display:flex}.switch{appearance:none;background:var(--border);cursor:pointer;border-radius:13px;flex:none;width:44px;height:26px;margin:0;transition:background .15s;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #0003}.switch:checked{background:var(--action)}.switch:checked:after{background:var(--on-action);transform:translate(18px)}.occasion-edit{border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface);grid-template-columns:1fr auto;gap:8px;padding:12px;display:grid}.occasion-edit .dates{grid-column:1/-1;grid-template-columns:72px 1fr 88px;gap:8px;display:grid}.photo-picker{align-items:center;gap:16px;display:flex}.sheet-backdrop{z-index:40;background:var(--overlay);justify-content:center;align-items:flex-end;animation:.15s fade;display:flex;position:fixed;inset:0}.sheet{background:var(--page);width:100%;max-width:560px;max-height:85vh;padding:8px var(--gutter) calc(24px + env(safe-area-inset-bottom));border-radius:16px 16px 0 0;animation:.2s ease-out rise;overflow:auto}.sheet-handle{background:var(--border);border-radius:2px;width:36px;height:4px;margin:0 auto 12px}.sheet h2{margin-bottom:16px}.menu-item{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);text-align:left;align-items:center;gap:14px;width:100%;padding:14px 16px;display:flex}.menu-item+.menu-item{margin-top:8px}.menu-item:disabled{opacity:.55;cursor:not-allowed}.menu-icon{background:var(--sky-tint);width:40px;height:40px;color:var(--sky-tint-text);border-radius:10px;flex:none;place-items:center;display:grid}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(40px)}}.tree-wrap{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);overflow:hidden}.tree-tools{border-bottom:1px solid var(--border);align-items:center;gap:4px;padding:4px 8px;display:flex}.tree-scroll{height:max(360px, calc(100dvh - var(--topbar-h) - var(--tabbar-h) - 220px));overscroll-behavior:contain;-webkit-overflow-scrolling:touch;overflow:auto}.tree-wrap.full{z-index:50;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);border:none;border-radius:0;flex-direction:column;display:flex;position:fixed;inset:0}.tree-wrap.full .tree-scroll{flex:1;height:auto}.tree-canvas{position:relative}.select-bar{top:calc(var(--topbar-h) + env(safe-area-inset-top) + 8px);z-index:5;border-radius:var(--radius-card);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;display:flex;position:sticky}.list-row input[type=checkbox].tick{width:20px;height:20px;accent-color:var(--sky-deep);flex:none}.tree-canvas svg{pointer-events:none;position:absolute;inset:0;overflow:visible}.tree-line{fill:none;stroke:var(--sky);stroke-width:2px}.tree-line.partner{stroke:var(--burgundy-text);stroke-width:2px}.tree-line.loose{stroke-dasharray:4 4}.tree-node{text-align:center;width:96px;height:108px;color:inherit;border-radius:var(--radius-control);background:0 0;border:none;flex-direction:column;align-items:center;gap:4px;padding:4px 2px 0;text-decoration:none;display:flex;position:absolute}.tree-node:hover{background:var(--surface-2)}.tree-node .avatar{border:2px solid var(--surface);box-shadow:0 0 0 2px var(--sky)}.tree-node.self .avatar{box-shadow:0 0 0 2px var(--burgundy)}.tree-node.ghost{opacity:.6}.tree-node.placeholder .avatar{opacity:.5;box-shadow:none;border:2px dashed var(--muted)}.tree-node.placeholder .name{color:var(--muted);font-weight:var(--w-regular);font-style:italic}.tree-node .name{font-size:13px;font-weight:var(--w-medium);max-width:92px}.tree-node .rel{color:var(--muted);max-width:92px;margin-top:-4px;font-size:11px}.no-presents-dot{background:var(--surface);width:18px;height:18px;color:var(--muted);box-shadow:0 0 0 1px var(--border);border-radius:50%;place-items:center;display:grid;position:absolute;top:4px;right:18px}.person-hero{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:8px 0 4px;display:flex}.facts{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.fact{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:12px 14px}.fact .value{font-size:18px;font-weight:var(--w-medium);color:var(--burgundy-text)}.empty{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:32px 16px;display:flex}.empty .menu-icon{border-radius:16px;width:56px;height:56px}.date-tile{text-align:center;border-radius:var(--radius-control);background:var(--sky-tint);width:44px;color:var(--sky-tint-text);flex:none;padding:4px 0;line-height:1.15}.date-tile b{font-size:18px;font-weight:var(--w-medium);display:block}.date-tile span{font-size:11px;font-weight:var(--w-medium)}.gift-tile{border-radius:var(--radius-control);background:var(--sky-tint);color:var(--sky-tint-text-2);flex:none;place-items:center;display:grid;overflow:hidden}.gift-tile img{object-fit:contain;width:100%;height:100%}.gift-tile.has-img{background:#fff}.link-reader{gap:8px;display:flex}.link-reader .input{flex:1;min-width:0}.read-msg{border-radius:var(--radius-control);align-items:flex-start;gap:8px;padding:10px 12px;font-size:14px;display:flex}.read-msg.ok{background:var(--sky-tint);color:var(--sky-tint-text)}.read-msg.warn{background:var(--burgundy-tint);color:var(--burgundy-text)}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:.9s linear infinite spin}.gift-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);overflow:hidden}.gift-card+.gift-card{margin-top:8px}.gift-card-main{color:inherit;gap:12px;padding:12px;text-decoration:none;display:flex}.gift-card-main:hover{background:var(--surface-2)}.gift-title{-webkit-line-clamp:2;font-weight:var(--w-medium);-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.gift-price{color:var(--burgundy-text);font-weight:var(--w-medium)}.gift-card.bought .gift-title{color:var(--muted)}.gift-card-foot{border-top:1px solid var(--border);justify-content:flex-end;padding:6px 12px;display:flex}.person-tag{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:inline-flex}.bought-toggle{color:var(--muted);cursor:pointer;align-items:center;gap:8px;min-height:36px;font-size:14px;display:inline-flex}.bought-toggle.on{color:var(--ink);font-weight:var(--w-medium)}.filter-row{gap:8px;display:flex}.filter-row>select{flex:1;min-width:0}.occasion-person{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);overflow:hidden}.occasion-person-head{color:inherit;align-items:center;gap:12px;padding:12px;text-decoration:none;display:flex}.occasion-person-body{flex-direction:column;gap:8px;padding:0 12px 12px;display:flex}.occasion-person-body .gift-card{border-color:var(--border);background:var(--page)}.occasion-person.needs{border-color:var(--burgundy-text);border-style:dashed}.summary-tiles{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}@media (width<=360px){.summary-tiles{grid-template-columns:repeat(2,1fr)}}.card-switch{border:1px dashed var(--border);border-radius:var(--radius-control);color:var(--muted);cursor:pointer;align-items:center;gap:10px;padding:8px 12px;font-size:14px;display:flex}.card-switch.on{color:var(--ink);background:var(--sky-tint);border-style:solid;border-color:#0000}.summary-tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);text-align:center;padding:10px 12px}.summary-tile b{font-size:22px;font-weight:var(--w-medium);display:block}.summary-tile.sorted b{color:var(--sky-tint-text-2)}.summary-tile.needs b{color:var(--burgundy-text)}.gift-hero{aspect-ratio:4/3;border-radius:var(--radius-card);width:100%;max-height:320px}.topbar{box-shadow:inset 0 1px 0 var(--bevel-hi), inset 0 -1px 0 var(--bevel-lo), var(--bevel-drop);background-image:linear-gradient(#ffffff1a,#0000000f)}.tabbar{box-shadow:inset 0 1px 0 var(--bevel-hi), 0 -2px 8px #00000024;background-image:linear-gradient(#ffffff1a,#00000014)}.tab-add{box-shadow:inset 0 1px 0 #ffffff80, inset 0 -2px 0 #0f2e4426, var(--bevel-drop);background-image:linear-gradient(#ffffff59,#fff0 60%);transition:transform 80ms,box-shadow 80ms}.tab-add:active{box-shadow:var(--bevel-pressed);transform:translateY(-11px)}.tab.active svg{box-shadow:inset 0 1px #ffffff73,0 1px 2px #0003}.btn{transition:transform 80ms,box-shadow 80ms,background-color .15s}.btn-primary{box-shadow:inset 0 1px 0 #ffffff80, inset 0 -1px 0 #0f2e442e, var(--bevel-drop);background-image:linear-gradient(#ffffff4d,#fff0 55%)}.btn-secondary{box-shadow:inset 0 1px 0 var(--bevel-hi), var(--bevel-drop);background-image:linear-gradient(#ffffff0f,#00000005)}.btn-primary:active:not(:disabled),.btn-secondary:active:not(:disabled),.btn-danger:active:not(:disabled){box-shadow:var(--bevel-pressed);transform:translateY(1px)}.segmented button[aria-pressed=true]{box-shadow:inset 0 1px 0 var(--bevel-hi), var(--bevel-drop)}.segmented{box-shadow:inset 0 1px 3px #0000001f}.chip-on{box-shadow:inset 0 1px #ffffff73,0 1px 2px #00000026}.switch{box-shadow:inset 0 1px 3px #00000040}.signin{min-height:100vh;padding:24px var(--gutter);background:var(--brand);place-items:center;display:grid}.signin-card{background:var(--page);width:100%;max-width:400px;box-shadow:var(--shadow);border-radius:16px;padding:28px 24px}.signin-logo{background:var(--brand);width:64px;height:64px;color:var(--on-brand);border-radius:18px;place-items:center;display:grid}.splash{background:var(--brand);min-height:100vh;color:var(--on-brand);place-items:center;display:grid}.list-banner{border-radius:var(--radius-control);background:var(--sky-tint);color:var(--sky-tint-text);align-items:center;gap:8px;padding:8px 12px;font-size:14px;display:flex}.budget-bar{background:var(--surface-2);border-radius:4px;height:8px;overflow:hidden}.budget-bar>span{background:var(--sky-deep);border-radius:4px;height:100%;display:block}.budget-bar.over>span{background:var(--burgundy)}.price-chart{flex-direction:column;gap:12px;display:flex}.price-stats{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.price-stats>div{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);flex-direction:column;padding:8px 10px;display:flex}.price-stats b{font-weight:var(--w-medium);font-size:16px}.price-stats>div:first-child b{color:var(--burgundy-text)}@media (width<=380px){.price-stats{grid-template-columns:repeat(2,1fr)}}.range-buttons button{min-height:32px}.chart-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);position:relative;overflow:hidden}.chart-box svg{display:block}.chart-grid{stroke:var(--border);stroke-width:1px}.chart-axis{fill:var(--muted);font-size:11px}.chart-line{fill:none;stroke:var(--chart-line);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.chart-marker{fill:var(--chart-line);stroke:var(--surface);stroke-width:2px}.chart-marker.low{fill:var(--surface);stroke:var(--chart-line);stroke-width:2.5px}.chart-label{fill:var(--ink);font-size:11px;font-weight:var(--w-medium)}.chart-crosshair{stroke:var(--muted);stroke-width:1px;stroke-dasharray:3 3}.chart-tooltip{background:var(--ink);color:var(--page);border-radius:var(--radius-control);pointer-events:none;white-space:nowrap;box-shadow:var(--shadow);flex-direction:column;align-items:center;padding:6px 10px;font-size:12px;display:flex;position:absolute;transform:translate(-50%)}.chart-tooltip b{font-size:14px;font-weight:var(--w-medium)}.chart-table summary{cursor:pointer;color:var(--burgundy-text)}.chart-table table{border-collapse:collapse;width:100%;margin-top:8px;font-size:14px}.chart-table th,.chart-table td{text-align:left;border-bottom:1px solid var(--border);padding:6px 8px}.chart-table th{font-weight:var(--w-medium);color:var(--muted);font-size:12px}.drop-pill{background:var(--sky-deep);color:var(--on-sky-deep)}.badge-dot{background:var(--action);width:10px;height:10px;box-shadow:0 0 0 2px var(--brand);border-radius:50%;position:absolute;top:7px;right:7px}.palette-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;display:grid}.palette-option{background:var(--surface);color:var(--ink);border:2px solid var(--border);border-radius:var(--radius-card);font:inherit;cursor:pointer;text-align:left;align-items:center;gap:10px;padding:10px 12px;display:flex;position:relative}.palette-option[aria-pressed=true]{border-color:var(--burgundy);background:var(--burgundy-tint)}.palette-swatch{border-radius:var(--radius-pill);flex:none;gap:3px;padding:4px;display:inline-flex;box-shadow:inset 0 0 0 1px #0000001f}.palette-swatch span{border-radius:50%;width:16px;height:16px}.palette-label{font-weight:var(--w-medium);flex:1}.palette-check{color:var(--burgundy-text)}
