/* ORYZO-inspired darkroom editorial, Christmas palette. See design/STYLE.md */
:root{
  --canvas:#062419; --canvas-2:#0b3a28; --cranberry:#c41e3a; --red-d:#a3172f; --pine:#6fae8c; --sage:#c3dacb; --cream:#fff4e2; --gold:#f5c542; --poin:#ff8a8a; --leaf:#3fb56f;
  --card:#fff8ec; --ink:#1a1310; --ink-2:#55493f; --rule:#9a7a5a; --gold-ink:#7a5a00; --green-ink:#1f6b45; --red-ink:#b3172d; --evergreen:#0d3b2a;
  --dash:1px dashed var(--pine); --dock-h:92px;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;background:var(--canvas)}
body{background:radial-gradient(120% 60% at 50% 0%,var(--canvas-2) 0%,var(--canvas) 60%) no-repeat,var(--canvas)!important}
body{margin:0;background:var(--canvas);color:var(--cream);font-family:Inter,"Söhne",system-ui,-apple-system,sans-serif;font-feature-settings:"ss01" 1;
  font-weight:500;text-transform:uppercase;letter-spacing:normal;font-size:14px;line-height:1.2;-webkit-font-smoothing:antialiased;min-height:100vh;
  padding-top:calc(56px + env(safe-area-inset-top));padding-bottom:env(safe-area-inset-bottom)}
body.has-dock{padding-bottom:calc(var(--dock-h) + env(safe-area-inset-bottom) + 18px)}
button,input,textarea{font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;-webkit-tap-highlight-color:transparent}
button{cursor:pointer;background:none;border:0;padding:0}
input,textarea{font-size:17px}
::selection{background:var(--cranberry);color:var(--cream)}
.body,.body *{text-transform:none;font-weight:400;font-size:17px;line-height:1.4;color:var(--cream)}

/* fixed minimal header */
.topbar{position:fixed;top:0;left:0;right:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:calc(14px + env(safe-area-inset-top)) 20px 14px;background:rgba(6,36,25,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:var(--dash)}
.wordmark{color:var(--cream);text-decoration:none;font-size:12px;white-space:nowrap}
.nav{display:flex;align-items:center;gap:8px;font-size:12px}
.nav .sep{color:var(--sage)}
.tab{font-size:12px;font-weight:600;color:var(--sage);padding:4px 0 3px;border-bottom:1px dashed transparent}
.tab.active{color:var(--cream);border-bottom-color:var(--cream)}

/* hero lockup */
.hero{position:relative;max-width:720px;margin:0 auto;padding:44px 20px 28px}
.tagline{margin:0 0 18px;font-size:12px;font-weight:600;color:var(--gold);display:flex;align-items:center;gap:8px}
.ic-star{width:14px;height:14px;color:var(--gold);flex:none}
.hero h1{margin:0;font-weight:500;font-size:42px;line-height:.9;display:flex;flex-direction:column}
@media (min-width:600px){.hero h1{font-size:51px}}
.edge{position:absolute;right:6px;top:44px;writing-mode:vertical-rl;transform:rotate(180deg);font-size:10px;color:var(--sage);white-space:nowrap}
.picado{margin:26px 0 0;height:20px;color:var(--pine)}
.picado svg{display:block}
.picado .wire{stroke:var(--sage);stroke-width:1;fill:none;opacity:.6}
.who{margin-top:22px;display:inline-flex;align-items:center;gap:14px;font-size:12px;color:var(--cream)}
.who b{font-weight:500}
.who .sw{border:1px solid var(--cream);color:var(--cream);border-radius:22.5px;padding:7px 14px;font-size:12px;font-weight:600}

main{max-width:720px;margin:0 auto;padding:0 20px}
.intro{border-top:var(--dash);border-bottom:var(--dash);padding:24px 0;margin:0 0 24px}
.intro-t{margin:0 0 10px;font-size:18px;line-height:1}
.intro .body{margin:0;color:var(--cream)}
.hint{text-transform:none;font-weight:400;font-size:14px;line-height:1.4;color:var(--sage);margin:0 0 30px}
.toolbar{display:flex;gap:18px;align-items:flex-end;margin:4px 0 14px;flex-wrap:wrap}
.toolbar input[type=search]{flex:1;min-width:180px}
.toggle{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--cream);padding-bottom:10px}
.toggle input{appearance:none;-webkit-appearance:none;width:16px;height:16px;border:1px solid var(--cream);border-radius:0;margin:0;display:grid;place-items:center}
.toggle input:checked::after{content:"";width:8px;height:8px;background:var(--cream)}

/* underline-only inputs */
input[type=search],input:not([type]),input[name],textarea{width:100%;background:transparent;border:0;border-bottom:1px solid var(--sage);border-radius:0;padding:10px 0;outline:none;
  text-transform:none;font-weight:400;color:var(--cream);-webkit-appearance:none;appearance:none}
input::placeholder,textarea::placeholder{color:var(--sage);opacity:1}
input:focus,textarea:focus{border-bottom-color:var(--cream)}
input[type=search]::-webkit-search-decoration{display:none}
textarea{resize:vertical;min-height:52px}

/* people & items */
.items{display:grid;gap:18px}
.person{margin:0 0 36px}
.person-h{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:0 0 18px;margin-bottom:18px;border-bottom:var(--dash)}
.avatar{flex:none;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-size:12px;color:var(--cream);background:var(--cranberry)}
.person-h .nm{flex:1;min-width:0;font-size:24px;line-height:1.09}
.person-h .ct{font-size:10px;color:var(--sage);white-space:nowrap}
.person-h .chev{display:grid;color:var(--sage);transition:transform .2s}
.person.closed .chev{transform:rotate(-90deg)}
.person.closed .items{display:none}
.empty{margin:0;padding:24px;border:var(--dash);border-radius:12px;color:var(--sage);font-size:13px}
.item{border:0;border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:16px;background:var(--card);color:var(--ink)}
.item.claimed{outline:2px dashed #a87c00;outline-offset:-6px}
.thumb-link{display:block;text-decoration:none;color:inherit}
.thumb{height:190px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#fff;border-radius:8px}
.thumb img{max-width:100%;max-height:100%;object-fit:contain;display:block}
.thumb.ph{height:110px;color:#8a7b6c;background:#f4ead9}
.thumb.ph svg{width:52px;height:52px}
.it-body{display:flex;flex-direction:column;gap:10px;min-width:0}
.it-title{display:block;text-transform:none;font-size:20px;font-weight:700;line-height:1.22;letter-spacing:-.01em;color:var(--ink);text-decoration:none;word-break:break-word;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}
a.it-title:hover{text-decoration:underline}
.it-price{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 12px}
.price{font-size:22px;font-weight:700;color:var(--ink);letter-spacing:-.01em}
.store{font-size:12px;font-weight:600;color:var(--ink-2)}
.item .body,.item .body *{color:var(--ink);font-size:16px}
.item .notes{color:var(--ink-2)!important;font-size:15px!important}
.it-meta{font-size:11px;font-weight:600;color:var(--ink-2)}
.deal{align-self:flex-start;font-size:11px;font-weight:600;color:var(--gold-ink);background:#fbecc0;border-radius:22.5px;padding:5px 11px}
.finding{font-size:11px;font-weight:600;color:var(--ink-2);display:flex;align-items:center;gap:8px}
.finding::before{content:"";width:9px;height:9px;border-radius:50%;border:1.5px solid var(--gold-ink);border-right-color:transparent;animation:spin 1.2s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.it-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding-top:14px;border-top:1px dashed var(--rule)}
.it-actions:empty{display:none}
.claimtag{font-size:12px;font-weight:700;color:var(--red-ink);flex:1;display:flex;align-items:center;gap:7px}
.claimtag.mine{color:var(--green-ink)}
.claimtag::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}

/* buttons: ghost only; the one filled pill is the dock CTA */
.btn{font-size:11px;border-radius:22.5px;padding:11px 18px;line-height:1}
.btn.ghost{border:1px solid var(--cream);color:var(--cream)}
.item .btn.ghost{border:1.5px solid var(--ink);color:var(--ink);font-weight:600}
.item .btn.ghost:active{background:rgba(26,19,16,.07)}
.btn.view{align-self:flex-start;display:inline-flex;align-items:center;gap:8px;background:var(--evergreen);color:var(--cream);text-decoration:none;font-size:12px;font-weight:600;padding:12px 18px;border-radius:22.5px}
.btn.view:active{background:#0a2e21}
.btn.ghost:active{background:rgba(255,237,215,.08)}
.btn.ghost.strong{border-width:1px;padding:13px 22px}
.btn.small{padding:9px 14px;font-size:10px}
.btn:disabled{opacity:.5}

.dock{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;justify-content:center;padding:14px 20px calc(14px + env(safe-area-inset-bottom));background:var(--canvas);border-top:var(--dash)}
.fab{width:100%;max-width:440px;height:56px;border-radius:36px;background:var(--cranberry);color:var(--cream);font-size:14px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:10px}
.fab span{font-size:20px;font-weight:400;line-height:1;margin-top:-2px}
.fab:active{background:var(--red-d)}

footer{max-width:720px;margin:20px auto 0;padding:30px 20px 34px;border-top:var(--dash);font-size:12px;color:var(--sage)}
footer p{margin:6px 0 0}
footer .credit{color:var(--gold)}
.ic-flor{width:22px;height:22px;color:var(--gold);display:block;margin-bottom:12px}

/* sheets */
dialog.sheet{width:min(560px,100%);max-width:100%;max-height:92vh;margin:auto auto 0;padding:0;border:0;border-top:var(--dash);border-radius:12px 12px 0 0;background:var(--canvas);color:var(--cream)}
@media (min-width:640px){dialog.sheet{margin:auto;border:1px solid var(--pine);border-radius:12px}}
dialog.sheet::backdrop{background:rgba(4,22,15,.78)}
dialog form{position:relative;padding:28px 24px calc(24px + env(safe-area-inset-bottom))}
.tag{margin:0 0 14px;font-size:12px;font-weight:600;color:var(--gold)}
dialog h2{margin:0 0 18px;font-weight:500;font-size:32px;line-height:.9}
.muted{text-transform:none;font-weight:400;font-size:15px;line-height:1.4;color:var(--sage);margin:0 0 22px}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 26px;max-height:38vh;overflow:auto}
.chip{display:flex;align-items:center;gap:10px;border:1px solid var(--cream);border-radius:22.5px;padding:5px 16px 5px 5px;font-size:12px;color:var(--cream)}
.chip .avatar{width:28px;height:28px;font-size:10px}
.chip:focus{outline:none}.chip:focus-visible{outline:1px dashed var(--gold);outline-offset:3px}
.chip.me{border-style:dashed;border-color:var(--gold)}
.newname{display:flex;gap:14px;align-items:flex-end}
.newname .btn{flex:none}
.fld{display:block;margin:0 0 22px}
.fld>span{display:block;font-size:12px;font-weight:600;color:var(--sage);margin:0 0 2px}
.photo-drop{display:flex;align-items:center;justify-content:center;gap:10px;min-height:92px;margin-top:8px;border:var(--dash);border-radius:12px;padding:12px;color:var(--sage);font-size:11px;text-align:center;cursor:pointer}
.photo-drop img{max-height:150px;max-width:100%;border-radius:4px}
.close-x{position:absolute;top:22px;right:20px;border:0!important;font-size:14px;color:var(--sage)!important;padding:4px}
.row{display:flex;justify-content:space-between;gap:12px;margin-top:6px}
.err{color:var(--poin);font-size:11px;margin:0 0 12px}
.toast{position:fixed;left:20px;right:20px;bottom:calc(var(--dock-h) + 14px + env(safe-area-inset-bottom));max-width:440px;margin:0 auto;z-index:50;background:#08281c;border:1px dashed var(--gold);color:var(--cream);font-size:11px;padding:14px 18px;border-radius:12px;text-align:left}
.mine-empty{border:var(--dash);border-radius:12px;padding:30px 24px;color:var(--cream)}
.mine-empty p{margin:14px 0 18px;font-size:12px;line-height:1.5}
.mine-empty .big{color:var(--gold)}
.mine-empty .big svg{width:28px;height:28px}
.mine-empty .btn{border:1px solid var(--cream);font-size:11px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* festive hero: twinkle-light string + scattered gold stars */
.lights{position:absolute;left:0;right:0;top:0;height:44px;pointer-events:none;overflow:hidden}
.lights svg{display:block;width:100%;height:44px}
.lights .bulb{animation:twinkle 2.8s ease-in-out infinite}
.lights .bulb:nth-child(3n){animation-delay:.9s}.lights .bulb:nth-child(3n+1){animation-delay:1.8s}
@keyframes twinkle{0%,100%{opacity:1}50%{opacity:.35}}
.sparkles{position:absolute;inset:0;pointer-events:none}
.sparkles svg{position:absolute;color:var(--gold);opacity:.9}
.sparkles .s1{width:14px;height:14px;right:22%;top:96px;animation:twinkle 3.4s ease-in-out infinite}
.sparkles .s2{width:9px;height:9px;right:34%;top:150px;animation:twinkle 4s ease-in-out .7s infinite}
.sparkles .s3{width:11px;height:11px;right:14%;top:200px;animation:twinkle 3s ease-in-out 1.4s infinite}
.sparkles .s4{width:7px;height:7px;right:40%;top:236px;opacity:.7}
.hero{overflow:hidden}
.hero h1 span:nth-child(2){color:var(--gold)}
.ic-star.filled path,.sparkles svg path{fill:currentColor}
.spark{position:fixed;width:5px;height:5px;margin:-2.5px 0 0 -2.5px;border-radius:50%;background:var(--gold);pointer-events:none;z-index:60;will-change:transform,opacity}

/* section heads */
.sec-head{margin:0 0 14px}
.sec-title{margin:0;font-weight:600;font-size:34px;line-height:.95;color:var(--cream)}
.hint{color:var(--sage)!important}

/* bubble home */
.bubbles{display:grid;grid-template-columns:repeat(auto-fill,minmax(98px,1fr));gap:26px 8px;padding:18px 0 10px}
.bubble{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;color:var(--cream);min-width:0;padding:4px 2px}
.bubble .bob{position:relative;display:block;animation:bob 4.6s ease-in-out infinite;animation-delay:calc(var(--i) * -0.53s);will-change:transform}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.orb{display:grid;place-items:center;width:78px;height:78px;border-radius:50%;font-size:24px;font-weight:700;letter-spacing:.02em;box-shadow:none}
.bubble.me .orb{outline:2px solid var(--gold);outline-offset:4px}
.bubble:active .orb{transform:scale(.95)}
.tu{position:absolute;right:-6px;top:-6px;background:var(--gold);color:var(--ink);font-size:10px;font-weight:700;border-radius:22.5px;padding:3px 7px}
.bn{font-size:13px;font-weight:600;line-height:1.15;max-width:100%;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:break-word}
.bc{font-size:11px;font-weight:500;color:var(--sage)}
@media (prefers-reduced-motion:reduce){.bubble .bob{animation:none}}

/* person view */
.back{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--cream);border:1px solid var(--cream);border-radius:22.5px;padding:9px 16px 9px 10px;margin:0 0 22px}
.person-head{display:flex;align-items:center;gap:18px;margin:0 0 14px}
.orb.big{width:72px;height:72px;font-size:22px;flex:none}
.person-head .tag{margin:0 0 6px}
.ph-count{margin:8px 0 0;font-size:12px;font-weight:600;color:var(--sage)}

/* person view drops the hero so the list starts at the top */
body[data-view="person"] .hero{display:none}
body[data-view="person"] main{padding-top:26px}
.sec-head{margin:0 0 4px}
.sec-head .tag{margin:0}
.hero{padding:40px 20px 22px}
.picado{margin:22px 0 0}

/* ---------- v4: gel bubbles ---------- */
.bubble{touch-action:manipulation;-webkit-tap-highlight-color:transparent;min-height:88px;width:100%;user-select:none;-webkit-user-select:none}
.bubble .bob{animation:bob 5.5s ease-in-out infinite;animation-delay:calc(var(--i) * -0.61s)}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}
.bubble:active .bob{animation-play-state:paused}
.gel{display:block;border-radius:50%;transition:transform .15s cubic-bezier(.34,1.56,.64,1);will-change:transform}
.bubble:active .gel{transform:scale(.94,.9);transition-duration:.08s;transition-timing-function:ease-out}
.bubble .orb{position:relative;width:80px;height:80px;
  background:radial-gradient(120% 90% at 30% 18%,rgba(255,255,255,.55) 0%,rgba(255,255,255,.18) 28%,rgba(255,255,255,0) 52%),radial-gradient(90% 90% at 70% 95%,rgba(0,0,0,.22) 0%,rgba(0,0,0,0) 55%),var(--c)!important;
  box-shadow:inset 0 -6px 12px rgba(0,0,0,.22),inset 0 3px 6px rgba(255,255,255,.35),inset 0 0 0 1px rgba(255,255,255,.18),0 10px 22px -8px var(--c),0 3px 6px -2px rgba(0,0,0,.35)}
.bubble .orb::after{content:"";position:absolute;left:22%;top:9%;width:38%;height:22%;border-radius:50%;background:radial-gradient(closest-side,rgba(255,255,255,.7),rgba(255,255,255,0));pointer-events:none}
.bubble.me .orb{outline:2px solid var(--gold);outline-offset:4px}
.bubble:active .orb{transform:none}
.bt{font-size:11px;font-weight:600;color:var(--gold)}
@media (prefers-reduced-motion:reduce){.gel{transition:none}.bubble:active .gel{transform:scale(.97)}}

/* ---------- v4: bottom tab bar ---------- */
:root{--dock-h:78px}
.dock{gap:8px;align-items:center;padding:10px 12px calc(10px + env(safe-area-inset-bottom))}
.dtab{position:relative;flex:1;min-width:0;height:52px;border-radius:26px;color:var(--sage);font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:6px;touch-action:manipulation}
.dtab.active{color:var(--cream);background:rgba(255,244,226,.1);box-shadow:inset 0 0 0 1px rgba(255,244,226,.35)}
.badge{min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--gold);color:var(--ink);font-size:11px;font-weight:700;display:inline-grid;place-items:center}
.dock .fab{flex:0 0 auto;width:auto;max-width:none;height:52px;padding:0 18px;font-size:13px}

/* ---------- v4: Mis regalos ---------- */
.gifts-summary{margin:6px 0 18px}
.gifts-summary .sec-title{font-size:28px;line-height:1}
.gs-total{margin:10px 0 0;font-size:13px;font-weight:600;color:var(--sage)}
.gs-total b{color:var(--gold);font-size:16px}
.g-group{background:var(--card);color:var(--ink);border-radius:12px;padding:6px 0 4px;margin:0 0 14px}
.g-head{display:flex;align-items:center;gap:12px;width:100%;padding:10px 16px;text-align:left;color:var(--ink);border-bottom:1px dashed var(--rule)}
.orb.sm{width:36px;height:36px;font-size:12px;flex:none}
.g-name{flex:1;font-size:15px;font-weight:700}
.g-ct{min-width:24px;height:24px;border-radius:12px;background:var(--evergreen);color:var(--cream);font-size:12px;font-weight:700;display:grid;place-items:center;padding:0 7px}
.gift-row{display:flex;align-items:center;gap:12px;width:100%;padding:10px 16px;text-align:left;color:var(--ink);text-transform:none;touch-action:manipulation}
.gift-row+.gift-row{border-top:1px dashed #e3d4bd}
.gift-row:active{background:#f4ead9}
.gr-thumb{flex:none;width:52px;height:52px;border-radius:8px;background:#fff;display:grid;place-items:center;overflow:hidden;color:#8a7b6c;border:1px solid #eadbc4}
.gr-thumb img{width:100%;height:100%;object-fit:contain}
.gr-thumb svg{width:26px;height:26px}
.gr-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.gr-title{font-size:15px;font-weight:700;line-height:1.25;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.gr-meta{font-size:12.5px;font-weight:500;color:var(--ink-2)}
.gr-meta b{color:var(--ink);font-weight:700}
.gr-go{font-size:22px;color:var(--ink-2)}
.missing{margin:26px 0 8px;padding-top:18px;border-top:var(--dash)}
.missing .tag{margin:0 0 12px}
.chip-n{font-size:11px;color:var(--sage);margin-left:2px}
.all-done{margin-top:18px}

/* gift detail sheet */
.gift-sheet{position:relative;padding:28px 20px calc(22px + env(safe-area-inset-bottom))}
.gift-sheet .close-x{top:20px}
.gs-for{display:flex;align-items:center;gap:10px;margin:0 0 16px;font-size:16px}
.gs-card{padding:18px}
.it-title.full{-webkit-line-clamp:unset;display:block}
.btn.view.big{align-self:stretch;justify-content:center;font-size:14px;padding:16px 20px;margin-top:4px}
.btn.unclaim{align-self:stretch;text-align:center;padding:14px 18px;font-size:12px}

/* toast pill above the tab bar */
.toast{left:50%;right:auto;transform:translate(-50%,8px);opacity:0;width:max-content;max-width:calc(100vw - 32px);border-radius:999px;padding:13px 20px;font-size:13px;font-weight:600;
  text-transform:none;background:var(--cream);color:var(--ink);border:0;transition:opacity .22s ease,transform .22s ease;cursor:pointer}
.toast.in{opacity:1;transform:translate(-50%,0)}
@media (prefers-reduced-motion:reduce){.toast{transition:none;transform:translate(-50%,0)}}

/* ---------- v5: regalos especiales ---------- */
.crew .avatar,.crew-list .avatar{width:26px;height:26px;font-size:10px;font-weight:700}
.sp-badge{align-self:flex-start;font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--gold-ink);background:#fde9a8;border-radius:999px;padding:4px 10px}
.item.special{box-shadow:inset 0 0 0 2px var(--gold)}
.pool{display:flex;flex-direction:column;gap:6px;margin:4px 0 2px}
.pool-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.pool-pct{font-size:18px;font-weight:800;color:var(--green-ink)}
.pool-txt{font-size:12.5px;font-weight:600;color:var(--ink-2);text-transform:none}
.bar{position:relative;height:12px;border-radius:6px;background:#e6dccb;overflow:hidden;box-shadow:inset 0 0 0 1px #cdbfa8}
.fill{position:absolute;inset:0;background:var(--green-ink);transform-origin:0 50%;transform:scaleX(0);transition:transform .7s cubic-bezier(.22,1,.36,1);will-change:transform}
.pool.done .fill{background:linear-gradient(90deg,#e0a800,var(--gold))}
.pool.done .pool-pct{color:var(--gold-ink)}
.pool-sub{font-size:11.5px;font-weight:600;color:var(--ink-2)}
.pool.compact .pool-pct{font-size:14px}
.pool.compact .bar{height:9px}
.pool.nogoal .pool-txt{font-weight:700;color:var(--ink)}
@media (prefers-reduced-motion:reduce){.fill{transition:none}}
.crew{display:flex;align-items:center;gap:0;margin:2px 0}
.crew .avatar{margin-right:-6px;box-shadow:0 0 0 2px var(--card)}
.crew-n{margin-left:14px;font-size:12px;font-weight:600;color:var(--ink-2);text-transform:none}
.btn.small.strong{background:var(--cranberry);color:var(--cream);border-color:var(--cranberry)}
.btn.small.muted{opacity:.85}
.especiales{margin:4px 0 26px}
.especiales .tag{margin:0 0 12px;color:var(--gold)}
.sp-row{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;margin:0 0 10px;text-align:left;background:var(--card);color:var(--ink);border-radius:12px;box-shadow:inset 0 0 0 2px var(--gold);text-transform:none;touch-action:manipulation}
.sp-row.done{box-shadow:inset 0 0 0 2px #e0a800;background:#fff3cf}
.sp-row:active{transform:scale(.99)}
.sp-for{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;color:var(--ink-2);text-transform:uppercase;letter-spacing:.03em}
.sp-for .avatar{width:20px;height:20px;font-size:8px}
.sp-in{margin-left:auto;font-size:10.5px;color:var(--green-ink);background:#dcefe3;border-radius:999px;padding:2px 8px}
.gift-row .pool{margin-top:6px}
.gs-note{font-size:11.5px;color:var(--sage);text-transform:none}
.crew-list{list-style:none;margin:6px 0 4px;padding:0;border-top:1px dashed #e3d4bd}
.crew-list li{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px dashed #e3d4bd}
.crew-list .cn{flex:1;font-size:14px;font-weight:700;text-transform:none}
.crew-list .cs{font-size:12.5px;color:var(--ink-2);text-transform:none}
.crew-list .cs b{color:var(--ink);font-size:14px}
form.join{display:flex;flex-direction:column;gap:10px;margin-top:6px}
form.join .fld input{font-size:20px;font-weight:700}
form.join .row{display:flex;gap:10px}
form.join .row>*{flex:1}
.gift-sheet .hint{color:var(--ink-2);text-transform:none;margin:0;font-size:12.5px}
.sp-complete{margin:6px 0;padding:12px;border-radius:10px;background:#fff3cf;color:var(--gold-ink);font-weight:800;text-align:center}
.suggest{width:100%;margin:18px 0 8px;border-color:var(--gold);color:var(--gold)}
/* add form toggle */
.sw-row{display:flex;align-items:center;gap:12px;margin:6px 0 14px;cursor:pointer;text-transform:none}
.sw-row input{position:absolute;opacity:0;pointer-events:none}
.sw-ui{flex:none;width:46px;height:28px;border-radius:14px;background:#2c5a45;position:relative;transition:background .2s}
.sw-ui::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:var(--cream);transition:transform .2s}
.sw-row input:checked+.sw-ui{background:var(--gold)}
.sw-row input:checked+.sw-ui::after{transform:translateX(18px)}
.sw-row input:focus-visible+.sw-ui{outline:2px solid var(--gold);outline-offset:2px}
.sw-row input:disabled+.sw-ui{opacity:.7}
.sw-txt{display:flex;flex-direction:column;gap:2px}
.sw-txt b{font-size:14px}
.sw-txt small{font-size:12px;opacity:.8}
/* nudge */
.nudge{display:flex;align-items:center;gap:10px;margin:0 0 18px;padding:12px 12px 12px 16px;border-radius:12px;background:#123f2e;border:1px solid var(--gold);color:var(--cream);text-transform:none}
.nd-t{flex:1;font-size:13.5px;font-weight:600;line-height:1.3}
.nd-go{flex:none;padding:8px 14px;border-radius:999px;background:var(--gold);color:var(--ink);font-weight:700;font-size:12px}
.nd-x{flex:none;width:32px;height:32px;color:var(--sage);font-size:14px}
.gift-sheet form.join .fld span{color:var(--ink-2);font-weight:700}
.gift-sheet form.join input{color:var(--ink);border-bottom:2px solid var(--ink);background:transparent}
.gift-sheet form.join input::placeholder{color:#8a7b6c}
.crew-list .avatar,.sp-for .avatar,.crew .avatar{box-shadow:inset 0 0 0 1px rgba(26,19,16,.3)}
.crew .avatar{box-shadow:inset 0 0 0 1px rgba(26,19,16,.3),0 0 0 2px var(--card)}
.sp-in{white-space:nowrap}
.gift-sheet .btn.ghost{border:1.5px solid var(--ink);color:var(--ink);text-align:center;justify-content:center}
.sp-more{width:100%;padding:10px;font-size:12px;font-weight:700;color:var(--gold);border:1px dashed var(--gold);border-radius:10px}
