@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Source+Serif+4:wght@400;600;700&display=swap";@font-face{font-family:SoDo Sans;src:url(/assets/fonts/SoDoSans-Regular.otf)format("opentype");font-weight:400;font-display:swap}@font-face{font-family:SoDo Sans;src:url(/assets/fonts/SoDoSans-SemiBold.otf)format("opentype");font-weight:600;font-display:swap}:root{--sb-green:#006242;--sb-green-dark:#00482f;--sb-green-press:#1e4536;--sb-green-900:#00301f;--sb-green-800:#00482f;--sb-green-700:#006242;--sb-green-100:#e3f0ea;--sb-green-50:#f1f7f4;--sb-bonus-star:#cba052;--roast-blonde-1:#d9a655;--roast-blonde-2:#b9822f;--roast-medium-1:#8a5a2f;--roast-medium-2:#5c3a1e;--roast-dark-1:#4a2f20;--roast-dark-2:#241510;--text:#2c2a27;--text-muted:#6b6760;--bg:#f7f1e7;--surface-card:#fff;--border:#e6ded2;--status-error:#b3261e;--status-error-bg:#fdecea;--status-warning:#8a5a00;--status-warning-bg:#fff4e0;--font-sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-serif:"Source Serif 4", Georgia, "Times New Roman", serif;--radius-sm:.5rem;--radius-md:.875rem;--radius-lg:1.25rem;--radius-pill:999px;--shadow-sm:0 2px 6px #1a171414;--shadow-md:0 8px 20px #1a17141a;--card-shell-1:#00301f;--card-shell-2:#005c3d;--card-sheen-teal:#1f8f78;--card-sheen-gold:#d4af6a;--card-sheen-cream:#f3ead2;--card-text:#f7f7f2;--card-muted:#f7f7f2b3;font:16px/1.55 var(--font-sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}*{box-sizing:border-box}body{margin:0}#root{flex-direction:column;min-height:100svh;display:flex}h1{font-family:var(--font-serif);margin:0 0 .5rem;font-size:1.75rem;font-weight:700;line-height:1.15}h2{font-family:var(--font-serif);margin:1.5rem 0 .5rem;font-size:1.25rem;font-weight:600}:where(a,a:visited){color:var(--sb-green);font-weight:600;text-decoration:none}a:hover{color:var(--sb-green-dark);text-decoration:underline}a:focus-visible{outline:2px solid var(--sb-green);outline-offset:2px;border-radius:2px}.page{width:100%;max-width:480px;min-height:100lvh;padding:1.5rem 1rem calc(5.5rem + env(safe-area-inset-bottom));margin:0 auto}.loading-screen{background:var(--sb-green-dark);justify-content:center;align-items:center;min-height:100dvh;display:flex}.loading-screen__animation{width:12rem;height:12rem}@media (prefers-reduced-motion:reduce){.loading-screen__animation{display:none}}.error-boundary{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1rem;min-height:100dvh;padding:1.5rem;display:flex}.error-boundary button{border:2px solid var(--sb-green);border-radius:var(--radius-pill);background:var(--sb-green);color:#fff;cursor:pointer;padding:.75rem 1.5rem;font-size:1rem;font-weight:700}.top-bar{padding:calc(.85rem + env(safe-area-inset-top)) 1.25rem .85rem;background:var(--sb-green);color:#fff;align-items:center;gap:.5rem;display:flex}.top-bar__dot{background:#fff;border-radius:47% 53% 50% 50%/53% 47%;flex-shrink:0;width:.85em;height:.85em}.top-bar__title{letter-spacing:.06em;text-transform:uppercase;font-size:1rem;font-weight:800}.home-hero{background:linear-gradient(160deg, var(--sb-green), var(--card-shell-1));color:#fff;box-shadow:var(--shadow-md);border-radius:0 0 28px 28px}.home-hero__inner{max-width:480px;padding:calc(1.25rem + env(safe-area-inset-top)) 1.25rem 1.75rem;margin:0 auto;position:relative}.home-hero__bell{top:calc(1.25rem + env(safe-area-inset-top));color:#fff;background:#ffffff29;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;text-decoration:none;display:flex;position:absolute;right:1.25rem}.home-hero__bell:hover{background:#ffffff42;text-decoration:none}.home-hero__bell svg{width:1.3rem;height:1.3rem}.home-hero__calendar{top:calc(1.25rem + env(safe-area-inset-top));color:#fff;background:#ffffff29;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;text-decoration:none;display:flex;position:absolute;right:calc(1.75rem + 40px)}.home-hero__calendar:hover{background:#ffffff42;text-decoration:none}.home-hero__calendar svg{width:1.3rem;height:1.3rem}.home-hero__bell-badge{background:var(--status-error);color:#fff;text-align:center;border-radius:999px;min-width:1.1rem;height:1.1rem;padding:0 .25rem;font-size:.65rem;font-weight:700;line-height:1.1rem;position:absolute;top:-2px;right:-2px}.home-hero__avatar{color:#fff;background:#ffffff29;border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;margin-bottom:.9rem;font-size:.9rem;font-weight:700;text-decoration:none;display:flex}.home-hero__avatar:hover{background:#ffffff42;text-decoration:none}.home-hero__avatar img{object-fit:cover;border-radius:50%;width:100%;height:100%}.home-hero__greeting{color:#fff;font-family:var(--font-serif);margin:0 0 1.1rem;font-size:1.6rem}.home-hero__balance{align-items:baseline;gap:.5rem;display:flex}.home-hero__balance-label{letter-spacing:.08em;text-transform:uppercase;color:#ffffffbf;font-size:.75rem;font-weight:700}.home-hero__balance-value{font-variant-numeric:tabular-nums;font-size:2rem;font-weight:700;line-height:1}.quick-actions{gap:1.5rem;margin:.25rem 0 1.5rem;display:flex;overflow-x:auto}.quick-action{width:4.5rem;color:var(--text);text-align:center;flex-direction:column;flex-shrink:0;align-items:center;gap:.5rem;font-size:.78rem;font-weight:600;text-decoration:none;display:flex}.quick-action:hover{color:var(--text);text-decoration:none}.quick-action__icon{background:var(--sb-green-900);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:3.25rem;height:3.25rem;display:flex}.quick-action__icon svg{width:1.4rem;height:1.4rem}.section-eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin:0 0 .75rem;font-size:.75rem;font-weight:700}.home-tiles{flex-direction:column;gap:.75rem;margin-bottom:1.5rem;display:flex}.page .home-tile{background:var(--surface-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);color:var(--text);align-items:center;gap:.9rem;padding:1rem;text-decoration:none;display:flex;position:relative}.page .home-tile:hover{color:var(--text);box-shadow:var(--shadow-md);text-decoration:none}.home-tile__icon{background:var(--sb-green-900);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:2.75rem;height:2.75rem;display:flex}.home-tile__icon svg{width:1.35rem;height:1.35rem}.home-tile__body{flex-direction:column;gap:.15rem;min-width:0;display:flex}.home-tile__label{font-size:.95rem;font-weight:700}.home-tile__preview{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;overflow:hidden}.home-tile__ribbon{background:var(--status-error);color:#fff;text-transform:uppercase;letter-spacing:.03em;border-radius:var(--radius-pill);box-shadow:var(--shadow-sm);padding:.2rem .6rem;font-size:.68rem;font-weight:700;position:absolute;top:-.5rem;right:.75rem}.bottom-nav{z-index:10;border-top:1px solid var(--border);padding:.4rem .5rem calc(.4rem + env(safe-area-inset-bottom));background:#fff;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 16px #1a17140f}.bottom-nav__tab{border-radius:var(--radius-md);color:var(--text-muted);flex-direction:column;flex:1;align-items:center;gap:.2rem;padding:.35rem .25rem;font-size:.68rem;font-weight:600;text-decoration:none;display:flex}.bottom-nav__tab:hover{color:var(--sb-green);text-decoration:none}.bottom-nav__tab svg{width:1.4rem;height:1.4rem}.bottom-nav__tab.is-active{color:var(--sb-green);background:var(--sb-green-50)}.admin-menu{flex-direction:column;gap:.6rem;margin:1rem 0;padding:0;list-style:none;display:flex}.admin-menu__item{background:var(--surface-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);color:var(--text);align-items:center;gap:.85rem;padding:.9rem 1rem;text-decoration:none;display:flex}.admin-menu__item:hover{color:var(--text);box-shadow:var(--shadow-md);text-decoration:none}.admin-menu__icon{background:var(--sb-green-900);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:2.75rem;height:2.75rem;display:flex}.admin-menu__icon svg{width:1.35rem;height:1.35rem}.admin-menu__text{flex-direction:column;gap:.1rem;display:flex}.admin-menu__label{font-weight:700}.admin-menu__badge{background:var(--status-error);color:#fff;text-align:center;vertical-align:middle;border-radius:999px;min-width:1.1rem;height:1.1rem;margin-left:.4rem;padding:0 .3rem;font-size:.65rem;font-weight:700;line-height:1.1rem;display:inline-block}.admin-menu__desc{color:var(--text-muted);font-size:.8rem}.offline-banner{z-index:10;padding:calc(.5rem + env(safe-area-inset-top)) 1rem .5rem;background:var(--status-warning-bg);color:var(--status-warning);text-align:center;font-size:.85rem;position:sticky;top:0}.ios-install-banner{background:var(--sb-green-50);color:var(--sb-green-800);text-align:center;justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.85rem;display:flex}.notifications-overlay{z-index:50;background:#1a17148c;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.notifications-banner{border-radius:var(--radius-lg);background:var(--surface-card);width:100%;max-width:340px;color:var(--sb-green-800);text-align:center;box-shadow:var(--shadow-md);flex-direction:column;align-items:center;gap:.85rem;padding:1.5rem 1.25rem;font-size:.9rem;display:flex}.notifications-banner__actions{gap:.5rem;width:100%;display:flex}.notifications-banner__actions button{flex:1}.notifications-banner button{border:2px solid var(--sb-green);border-radius:var(--radius-pill);background:var(--sb-green);color:#fff;cursor:pointer;margin-top:0;padding:.55rem .9rem;font-size:.85rem;font-weight:700}.notifications-banner button.button--secondary{color:var(--sb-green-dark);background:0 0}.ios-install-banner button{color:inherit;cursor:pointer;background:0 0;border:none;margin-top:0;padding:0;font-size:1.1rem;line-height:1}.auth-screen{flex:1;justify-content:center;align-items:center;padding:1rem;display:flex}.auth-form{flex-direction:column;gap:.5rem;width:100%;max-width:360px;display:flex}.coffee-tasting-card{background:var(--surface-card);border:2px solid var(--sb-green-100);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-top:1rem;padding:1.25rem}.coffee-tasting-card .auth-form{max-width:none}.coffee-tasting-card .auth-form input:not([type=checkbox]):not([type=file]),.coffee-tasting-card .auth-form textarea{border:none;border-bottom:1px solid var(--border);background:0 0;border-radius:0;padding:.5rem 0}.coffee-tasting-card .auth-form input:not([type=checkbox]):not([type=file]):focus-visible,.coffee-tasting-card .auth-form textarea:focus-visible{border-bottom-color:var(--sb-green);box-shadow:none;outline:none}.photo-picker{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.photo-picker__input{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.page .photo-picker__trigger{border:2px solid var(--sb-green);border-radius:var(--radius-pill);color:var(--sb-green);cursor:pointer;transition:background var(--dur-fast,.14s) ease;-webkit-tap-highlight-color:transparent;background:#fff;align-items:center;gap:.5rem;margin-top:0;padding:.55rem 1.1rem;font-size:.9rem;font-weight:700;display:inline-flex}.page .photo-picker__trigger:hover{background:var(--sb-green-50)}.page .photo-picker__trigger:active{background:var(--sb-green-100)}.photo-picker__trigger svg{flex-shrink:0;width:1.1rem;height:1.1rem}.photo-picker__input:focus-visible+.photo-picker__trigger{box-shadow:0 0 0 3px var(--sb-green-100);outline:none}.photo-picker__filename{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:12rem;font-size:.85rem;overflow:hidden}.auth-subtitle{color:var(--text-muted);margin-bottom:1rem}.auth-form label{font-size:.875rem;font-weight:600}.auth-form input,.auth-form textarea,.auth-form select{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);transition:border-color var(--dur-fast,.14s) ease, box-shadow var(--dur-fast,.14s) ease;background:#fff;padding:.65rem .75rem;font-family:inherit;font-size:1rem}.auth-form input:focus-visible,.auth-form textarea:focus-visible,.auth-form select:focus-visible{border-color:var(--sb-green);box-shadow:0 0 0 3px var(--sb-green-100);outline:none}.auth-form textarea{resize:vertical}.auth-form button,.page button{border:2px solid var(--sb-green);border-radius:var(--radius-pill);background:var(--sb-green);color:#fff;letter-spacing:.01em;cursor:pointer;transition:background var(--dur-fast,.14s) ease, border-color var(--dur-fast,.14s) ease;margin-top:1rem;padding:.75rem 1.5rem;font-size:1rem;font-weight:700}.auth-form button:hover,.page button:hover{background:var(--sb-green-dark);border-color:var(--sb-green-dark)}.auth-form button:active,.page button:active{background:var(--sb-green-press);border-color:var(--sb-green-press)}.auth-form button:disabled{opacity:.6;cursor:default}.auth-error{color:var(--status-error);font-size:.875rem}.profile-fields{grid-template-columns:auto 1fr;gap:.25rem 1rem;display:grid}.profile-fields dt{color:var(--text-muted);font-weight:600}.profile-fields dd{margin:0}.muted{color:var(--text-muted);font-size:.875rem}.auth-success{color:var(--sb-green);font-size:.875rem}.membership-card{aspect-ratio:1200/776;background:url(/assets/partnercard/CARD.gif) center / cover no-repeat, var(--sb-green);color:#fff;cursor:pointer;transition:transform var(--dur-fast,.14s) ease;border-radius:18px;flex-direction:column;justify-content:space-between;margin:1rem 0;padding:1rem 1.1rem;display:flex;position:relative;overflow:hidden;box-shadow:0 12px 28px -10px #00301f8c}.membership-card:hover{transform:translateY(-1px)scale(1.005)}.membership-card:focus-visible{outline-offset:3px;outline:2px solid #fff}.membership-card--admin{background:url(/assets/partnercard/CARD.gif) 50%/cover no-repeat padding-box padding-box,conic-gradient(#ff3b30,#ff9500,#fc0,#34c759,#007aff,#5856d6,#ff3b30) border-box;border:2px solid #0000}.membership-card--admin.membership-card--lg{background:url(/assets/partnercard/CARD.gif) 50%/cover no-repeat padding-box padding-box,conic-gradient(#ff3b30,#ff9500,#fc0,#34c759,#007aff,#5856d6,#ff3b30) border-box}.membership-card--frame-bronze{background:url(/assets/partnercard/CARD.gif) 50%/cover no-repeat padding-box padding-box,linear-gradient(135deg,#8a5a2b,#d99a5b,#8a5a2b) border-box;border:2px solid #0000}.membership-card--frame-silver{background:url(/assets/partnercard/CARD.gif) 50%/cover no-repeat padding-box padding-box,linear-gradient(135deg,#9a9a9a,#e8e8e8,#9a9a9a) border-box;border:2px solid #0000}.membership-card--frame-gold{background:url(/assets/partnercard/CARD.gif) 50%/cover no-repeat padding-box padding-box,linear-gradient(135deg,#a97c2f,#f0d78c,#a97c2f) border-box;border:2px solid #0000}.membership-card--frame-rainbow{background:url(/assets/partnercard/CARD.gif) 50%/cover no-repeat padding-box padding-box,conic-gradient(#ff3b30,#ff9500,#fc0,#34c759,#007aff,#5856d6,#ff3b30) border-box;border:2px solid #0000}.membership-card--frame-bronze.membership-card--lg{background:url(/assets/partnercard/CARD.gif) 50%/cover no-repeat padding-box padding-box,linear-gradient(135deg,#8a5a2b,#d99a5b,#8a5a2b) border-box}.membership-card--frame-silver.membership-card--lg{background:url(/assets/partnercard/CARD.gif) 50%/cover no-repeat padding-box padding-box,linear-gradient(135deg,#9a9a9a,#e8e8e8,#9a9a9a) border-box}.membership-card--frame-gold.membership-card--lg{background:url(/assets/partnercard/CARD.gif) 50%/cover no-repeat padding-box padding-box,linear-gradient(135deg,#a97c2f,#f0d78c,#a97c2f) border-box}.membership-card--frame-rainbow.membership-card--lg{background:url(/assets/partnercard/CARD.gif) 50%/cover no-repeat padding-box padding-box,conic-gradient(#ff3b30,#ff9500,#fc0,#34c759,#007aff,#5856d6,#ff3b30) border-box}.membership-card--frame-quill{background:url(/assets/partnercard/CARD.gif) 50%/cover no-repeat padding-box padding-box,linear-gradient(135deg,#4c1d95,#8b5cf6,#4c1d95) border-box;border:2px solid #0000}.membership-card--frame-legend{background:url(/assets/partnercard/CARD.gif) 50%/cover no-repeat padding-box padding-box,conic-gradient(#d4af37,#145a32,#7a1f1f,#d4af37) border-box;border:2px solid #0000}.membership-card--frame-quill.membership-card--lg{background:url(/assets/partnercard/CARD.gif) 50%/cover no-repeat padding-box padding-box,linear-gradient(135deg,#4c1d95,#8b5cf6,#4c1d95) border-box}.membership-card--frame-legend.membership-card--lg{background:url(/assets/partnercard/CARD.gif) 50%/cover no-repeat padding-box padding-box,conic-gradient(#d4af37,#145a32,#7a1f1f,#d4af37) border-box}.membership-card__avatar-wrap{width:52px;height:52px;position:relative}.membership-card__avatar{width:100%;height:100%;color:var(--sb-green);background:#fff;border-radius:50%;justify-content:center;align-items:center;font-size:1.05rem;font-weight:700;display:flex;overflow:hidden;box-shadow:0 0 0 3px #fff6}.membership-card__avatar img{object-fit:cover;width:100%;height:100%}.membership-card__avatar-edit{z-index:2;background:var(--sb-green);color:#fff;cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:.7rem;line-height:1;display:flex;position:absolute;bottom:-2px;right:-2px;box-shadow:0 0 0 2px #fff}.membership-card__avatar-edit input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.membership-card__identity{flex-direction:column;gap:.15rem;max-width:62%;display:flex}.membership-card__name{letter-spacing:.01em;text-shadow:0 1px 3px #00000040;font-size:1.05rem;font-weight:700}.membership-card__store{color:#ffffffd9;font-size:.85rem}.membership-card__title{color:var(--sb-bonus-star);text-shadow:0 1px 3px #00000059;font-size:.75rem;font-style:italic;font-weight:700}.membership-card__extra{color:#ffffffbf;gap:.9rem;max-width:62%;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;display:flex}.membership-card__wordmark{letter-spacing:.1em;text-transform:uppercase;color:#ffffffeb;text-shadow:0 1px 3px #00000040;align-self:flex-start;font-family:SoDo Sans,Inter,sans-serif;font-size:.75rem;font-weight:600}.membership-card--lg{cursor:default;aspect-ratio:1606/1039;background:url(/assets/partnercard/CARD.gif) center / cover no-repeat, var(--sb-green);border-radius:26px;margin:0;padding:1rem 1.25rem;overflow:visible}.membership-card--lg:hover{transform:none}.membership-card--lg .membership-card__avatar-wrap{width:60px;height:60px}.membership-card--lg .membership-card__avatar{font-size:1.3rem}.membership-card--lg .membership-card__name{font-size:1.15rem}.membership-card--lg .membership-card__store{font-size:.85rem}.membership-card--lg .membership-card__wordmark{font-size:.75rem}.membership-card__overlay{z-index:50;background:#1a1714b8;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.membership-card__overlay-inner{width:100%;max-width:400px;position:relative}.membership-card__overlay .membership-card__close{z-index:1;width:2.25rem;height:2.25rem;color:var(--text);cursor:pointer;box-shadow:var(--shadow-md);background:#fff;border:none;border-radius:50%;margin-top:0;padding:0;font-size:1.3rem;line-height:1;position:absolute;top:-.75rem;right:-.75rem}.bean-balance{background:var(--sb-green);color:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);align-items:baseline;gap:.5rem;margin:1rem 0;padding:1rem 1.25rem;display:flex}.bean-balance__value{font-size:2rem;font-weight:700;line-height:1}.bean-balance__label{opacity:.85;font-size:1rem}.feedback-box{background:var(--surface-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin:1.25rem 0;padding:1.1rem 1.25rem}.feedback-box h3{margin-top:0}.feedback-box .auth-form{max-width:none;margin-top:.75rem}.feedback-box__sent{color:var(--sb-green-800);font-weight:600}.ledger{background:var(--surface-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin:1rem 0;padding:0 1rem;list-style:none}.ledger__row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:.75rem;padding:.85rem 0;display:flex}.ledger__row:last-child{border-bottom:none}.ledger__row.is-unread{position:relative}.ledger__row.is-unread:before{content:"";background:var(--sb-green);border-radius:50%;width:.4rem;height:.4rem;position:absolute;top:50%;left:-.85rem;transform:translateY(-50%)}.ledger__row.is-unread .ledger__label{font-weight:700}.ledger__main{flex-direction:column;gap:.1rem;display:flex}.ledger__label{font-weight:600}.ledger__note{color:var(--text-muted);font-size:.8rem}.ledger__date{color:var(--text-muted);font-size:.75rem}.ledger__amount{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:700}.ledger__amount.is-positive{color:var(--sb-green)}.ledger__amount.is-negative{color:var(--status-error)}.user-row-actions{flex-shrink:0;align-items:center;gap:.6rem;display:flex}.user-row-actions select{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);background:#fff;max-width:9.5rem;padding:.35rem .5rem;font-family:inherit;font-size:.8rem}.user-results{max-height:240px;margin:.25rem 0;padding:0;list-style:none;overflow-y:auto}.page .user-chip{width:100%;color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);text-align:left;cursor:pointer;background:#fff;flex-direction:column;align-items:flex-start;gap:.1rem;margin:.2rem 0 0;padding:.5rem .65rem;font-weight:500;display:flex}.page .user-chip small{color:var(--text-muted);font-weight:400}.page .user-chip.is-selected,.page .user-chip:hover{border-color:var(--sb-green);background:var(--sb-green-50)}.qr-created{background:var(--surface-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);text-align:center;margin:1rem 0;padding:1rem}.qr-image{justify-content:center;margin:.5rem 0;display:flex}.qr-code-text{letter-spacing:.05em;margin:.25rem 0;font-family:ui-monospace,monospace;font-size:1.1rem}.scan-reader{border-radius:var(--radius-md);margin:1rem 0;overflow:hidden}.scan-result{border-radius:var(--radius-lg);text-align:center;margin:1rem 0;padding:1rem}.scan-result.is-success{background:var(--sb-green);color:#fff;box-shadow:var(--shadow-sm)}.scan-result.is-error{background:var(--status-error-bg);color:var(--status-error)}.feed{flex-direction:column;gap:1rem;margin:1rem 0;padding:0;list-style:none;display:flex}.article-card{background:var(--surface-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:transform var(--dur-fast,.14s) ease, box-shadow var(--dur-fast,.14s) ease;padding:1.1rem}.article-card:has(.article-card__link):hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.article-card__link,.article-card__link:visited,.article-card__link:hover{color:inherit;text-decoration:none;display:block}.article-card h2{margin:.25rem 0}.article-card__image{border-radius:var(--radius-sm);width:100%;height:auto;margin-bottom:.5rem;display:block}.article-card__meta{color:var(--text-muted);margin:0 0 .5rem;font-size:.8rem}.daily-quiz{background:var(--surface-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin:0 0 1.25rem;padding:1rem 1.1rem}.daily-quiz__title{color:var(--sb-green);align-items:center;gap:.4rem;margin:0 0 .5rem;font-weight:700;display:flex}.daily-quiz__title svg{flex-shrink:0;width:20px;height:20px}.daily-quiz__question{margin:0 0 .75rem;font-weight:600}.daily-quiz__options{flex-direction:column;gap:.5rem;margin:0 0 .75rem;display:flex}.page .daily-quiz__option{text-align:left;border-radius:var(--radius-md);border:1px solid var(--sb-green-100);width:100%;color:var(--text);background:#fff;margin:0;padding:.55rem .8rem;font-size:.85rem;font-weight:500;display:block}.page .daily-quiz__option:hover,.page .daily-quiz__option:active{background:var(--sb-green-50);border-color:var(--sb-green-100)}.page .daily-quiz__option.is-selected,.page .daily-quiz__option.is-selected:hover,.page .daily-quiz__option.is-selected:active{background:var(--sb-green-100);border-color:var(--sb-green)}.daily-quiz__option--revealed.is-correct{background:var(--sb-green-100);border-color:var(--sb-green);color:var(--sb-green-800);font-weight:700}.daily-quiz__option--revealed.is-wrong{color:#8a2a2a;background:#c83c3c14;border-color:#c83c3c}.daily-quiz__result{margin:.25rem 0;font-weight:700}.daily-quiz__result.is-correct{color:var(--sb-green)}.daily-quiz__explanation{color:var(--text-muted);margin:0;font-size:.85rem}.article-search{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface-card);width:100%;color:var(--text);margin:0 0 1.1rem;padding:.65rem .9rem;font-family:inherit;font-size:.9rem;display:block}.article-search:focus-visible{outline:2px solid var(--sb-green);outline-offset:1px}.tag-pills{flex-wrap:wrap;gap:.35rem;margin:0 0 .6rem;display:flex}.tag-pill{border-radius:var(--radius-pill);background:var(--sb-green-50);color:var(--sb-green-800);padding:.15rem .6rem;font-size:.7rem;font-weight:600}.tag-pill--official{color:#8a6a2f;background:#cba05229}.calendar-page__header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.page .calendar-page__add-toggle{background:var(--sb-green);color:#fff;cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;margin-top:0;padding:0;display:flex}.calendar-page__add-toggle svg{width:1.2rem;height:1.2rem}.page .calendar-page__add-toggle[aria-expanded=true]{background:var(--sb-green-dark);transform:rotate(45deg)}.calendar-card-list{flex-direction:column;gap:.6rem;margin:0 0 1.25rem;padding:0;list-style:none;display:flex}.calendar-card{border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border-left:3px solid var(--sb-green);background:#fff;align-items:stretch;display:flex;position:relative;overflow:hidden}.calendar-card--official{border-left-color:var(--sb-bonus-star)}.page .calendar-card__hide-action{z-index:0;color:#fff;cursor:pointer;background:#b3432f;border:none;border-radius:0;width:96px;margin:0;padding:0;font-size:.85rem;font-weight:600;position:absolute;top:0;bottom:0;right:0}.page .calendar-card__hide-action:hover,.page .calendar-card__hide-action:active{background:#8f3524;border-color:#0000}.calendar-card__slide{z-index:1;touch-action:pan-y;background:#fff;width:100%;position:relative}.calendar-card__slide:not(.is-dragging){transition:transform .18s}.calendar-card__body{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.85rem;padding:.75rem .85rem;display:flex}.calendar-card__body:active{background:#0062420a}.calendar-card__date-badge{border-radius:var(--radius-md);background:var(--sb-green-50);flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;width:3rem;height:3rem;line-height:1.1;display:flex}.calendar-card--official .calendar-card__date-badge{background:#cba05224}.calendar-card__date-day{font-family:var(--font-serif);color:var(--sb-green);font-size:1.15rem;font-weight:700}.calendar-card--official .calendar-card__date-day{color:#8a6a2f}.calendar-card__date-month{letter-spacing:.04em;color:var(--text-muted);font-size:.62rem;font-weight:700}.calendar-card__text{flex-direction:column;align-items:flex-start;gap:.3rem;min-width:0;display:flex}.calendar-card__title{overflow-wrap:anywhere;font-weight:600}.calendar-event__official-icon{color:var(--sb-bonus-star);vertical-align:-.15em;margin-right:.3rem;display:inline-flex}.calendar-event__official-icon svg{width:.9rem;height:.9rem}.calendar-hidden{margin-top:.5rem}.page .calendar-hidden__toggle{border:none;border-top:1px solid var(--border);width:100%;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:0;align-items:center;gap:.5rem;margin-top:0;padding:.6rem 0;font-size:.9rem;font-weight:600;display:flex}.page .calendar-hidden__toggle:hover,.page .calendar-hidden__toggle:active{border-color:var(--border);color:var(--sb-green);background:0 0}.calendar-hidden__toggle svg{flex-shrink:0;width:1.1rem;height:1.1rem}.calendar-hidden__toggle span:first-of-type{text-align:left;flex:1}.calendar-hidden__chevron{transition:transform var(--dur-fast,.14s) ease;display:flex}.calendar-hidden__chevron.is-open{transform:rotate(180deg)}.calendar-hidden__chevron svg{width:1rem;height:1rem}.calendar-hidden__list{flex-direction:column;gap:.4rem;padding:.6rem 0 .2rem;display:flex}.calendar-hidden__item{border-radius:var(--radius-md);cursor:pointer;background:#fff;flex-wrap:wrap;align-items:center;gap:.3rem .6rem;padding:.55rem .7rem;display:flex}.calendar-hidden__item-title{text-overflow:ellipsis;white-space:nowrap;flex:100%;min-width:0;font-weight:500;overflow:hidden}.calendar-hidden__item-date{color:var(--text-muted);flex:1;font-size:.8rem}.page .calendar-hidden__restore,.page .calendar-hidden__delete{border:1px solid var(--sb-green);border-radius:var(--radius-pill);color:var(--sb-green);cursor:pointer;background:0 0;flex-shrink:0;margin:0;padding:.3rem .7rem;font-size:.78rem;font-weight:600}.page .calendar-hidden__restore:hover,.page .calendar-hidden__restore:active{background:var(--sb-green-50)}.page .calendar-hidden__delete{color:#b3432f;border-color:#b3432f}.page .calendar-hidden__delete:hover,.page .calendar-hidden__delete:active{background:#b3432f14}.calendar-event-modal__overlay{z-index:50;background:#1a1714b8;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.calendar-event-modal__inner{background:var(--surface-card);border-radius:var(--radius-lg);width:100%;max-width:420px;max-height:85vh;box-shadow:var(--shadow-md);padding:1.5rem;position:relative;overflow-y:auto}.calendar-event-modal__header{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.5rem;display:flex}.page .calendar-event-modal__close{width:2rem;height:2rem;color:var(--text-muted);letter-spacing:normal;cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;margin:-.25rem 0 0;padding:0;font-size:1.3rem;font-weight:400;line-height:1}.page .calendar-event-modal__close:hover,.page .calendar-event-modal__close:active{color:var(--text);background:#1a17140f;border-color:#0000}.calendar-event-modal__description{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;color:var(--text)}.calendar-event-modal__images{flex-direction:column;gap:.75rem;margin:.75rem 0;display:flex}.calendar-event-modal__images img{border-radius:var(--radius-md);width:100%}.calendar-event-modal__attend{margin:.75rem 0}.calendar-event-modal__attend button{width:100%}.calendar-event-follow{border-top:1px solid var(--border);margin-top:1rem;padding-top:1rem}.page .calendar-follow-toggle{border:1px solid var(--sb-green);border-radius:var(--radius-pill);color:var(--sb-green);cursor:pointer;background:0 0;align-items:center;gap:.4rem;margin-top:0;padding:.4rem .9rem;font-size:.85rem;font-weight:600;display:inline-flex}.calendar-follow-toggle svg{width:.95rem;height:.95rem}.page .calendar-follow-toggle.is-following{background:var(--sb-green);color:#fff}.page .calendar-follow-toggle:hover,.page .calendar-follow-toggle:active{background:var(--sb-green-50)}.page .calendar-follow-toggle.is-following:hover,.page .calendar-follow-toggle.is-following:active{background:var(--sb-green-dark)}.calendar-event-follow__hint{margin-top:.6rem}.calendar-event-comments{margin-top:.85rem}.calendar-comment-list{flex-direction:column;gap:.6rem;margin:0 0 .85rem;padding:0;list-style:none;display:flex}.calendar-comment{background:var(--sb-green-50);border-radius:var(--radius-md);padding:.55rem .7rem}.calendar-comment__meta{color:var(--text-muted);justify-content:space-between;align-items:center;gap:.5rem;font-size:.75rem;display:flex}.calendar-comment p{white-space:pre-wrap;overflow-wrap:anywhere;margin:.3rem 0 0}.calendar-comment__photo{object-fit:cover;border-radius:var(--radius-sm);width:100%;max-width:120px;max-height:120px;margin-top:.4rem;display:block}.calendar-comment-form{flex-direction:column;gap:.5rem;display:flex}.calendar-comment-form textarea{resize:vertical;width:100%}.calendar-comment-form button[type=submit]{align-self:flex-start}.status-pill{text-transform:uppercase;letter-spacing:.03em;border-radius:var(--radius-pill);margin-bottom:.5rem;padding:.2rem .65rem;font-size:.7rem;font-weight:700;display:inline-block}.status-pill--pending{background:var(--sb-green-50);color:var(--sb-green-800)}.status-pill--published{background:var(--sb-green-100);color:var(--sb-green-800)}.status-pill--rejected{background:var(--status-error-bg);color:var(--status-error)}.status-pill--needs_revision{background:var(--status-warning-bg);color:var(--status-warning)}.status-pill--approved{background:var(--sb-green-100);color:var(--sb-green-800)}.article-card__body{white-space:pre-wrap;margin:0}.article-card__author-link{color:var(--sb-green);cursor:pointer;font-weight:600}.article-card__author-link:hover{color:var(--sb-green-dark);text-decoration:underline}.article-card__event-cta{color:var(--sb-green);margin-top:.5rem;font-size:.9rem;font-weight:600;display:inline-block}.article-detail{display:block}.article-detail h1{font-family:var(--font-serif);margin:0 0 .75rem}.article-detail__images{flex-direction:column;gap:.6rem;margin:0 0 .85rem;display:flex}.article-detail__images img{border-radius:var(--radius-md);width:100%;height:auto;display:block}.article-detail__body{white-space:pre-wrap;margin:.85rem 0 0;line-height:1.6}.article-card__note{background:var(--status-error-bg);border-radius:var(--radius-sm);margin:.5rem 0 0;padding:.5rem .75rem;font-size:.875rem}.badge{border-radius:var(--radius-pill);letter-spacing:.02em;padding:.2rem .6rem;font-size:.75rem;font-weight:700;display:inline-block}.badge--pending{background:var(--status-warning-bg);color:var(--status-warning)}.badge--published{background:var(--sb-green-100);color:var(--sb-green-800)}.badge--rejected{background:var(--status-error-bg);color:var(--status-error)}.badge--needs_revision{background:var(--status-warning-bg);color:var(--status-warning)}.achievement-unlocked-note{background:var(--sb-green-100);color:var(--sb-green-800);border-radius:var(--radius-md);padding:.6rem .85rem;font-weight:600}.title-unlocked-note{color:#8a6a2f;border-radius:var(--radius-md);background:#cba05229;margin-top:.5rem;padding:.6rem .85rem;font-weight:600}.achievements-grid{grid-template-columns:repeat(auto-fill,minmax(4.5rem,1fr));gap:.7rem;margin:1rem 0;padding:0;list-style:none;display:grid}.page .achievement-tile{cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:center;gap:.3rem;width:100%;margin-top:0;padding:0;display:flex;position:relative}.achievement-tile__icon{aspect-ratio:1;border-radius:var(--radius-md);background:var(--surface-card);border:2px solid var(--border);width:100%;box-shadow:var(--shadow-sm);color:var(--sb-green);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.achievement-tile.is-unlocked .achievement-tile__icon{border-color:var(--sb-green-100)}.achievement-tile.has-frame.is-unlocked .achievement-tile__icon:before{content:"";z-index:1;height:4px;position:absolute;inset:0 0 auto}.achievement-tile.has-frame.is-unlocked.achievement-tile--bronze .achievement-tile__icon:before{background:linear-gradient(90deg,#8a5a2b,#d99a5b)}.achievement-tile.has-frame.is-unlocked.achievement-tile--silver .achievement-tile__icon:before{background:linear-gradient(90deg,#9a9a9a,#e8e8e8)}.achievement-tile.has-frame.is-unlocked.achievement-tile--gold .achievement-tile__icon:before{background:linear-gradient(90deg,#a97c2f,#f0d78c)}.achievement-tile.has-frame.is-unlocked.achievement-tile--rainbow .achievement-tile__icon:before{background:conic-gradient(#ff3b30,#ff9500,#fc0,#34c759,#007aff,#5856d6,#ff3b30)}.achievement-tile.has-frame.is-unlocked.achievement-tile--quill .achievement-tile__icon:before{background:linear-gradient(90deg,#4c1d95,#8b5cf6)}.achievement-tile.has-frame.is-unlocked.achievement-tile--legend .achievement-tile__icon:before{background:conic-gradient(#d4af37,#145a32,#7a1f1f,#d4af37)}.achievement-tile__icon img{object-fit:cover;width:100%;height:100%}.achievement-tile__icon>svg{width:1.75rem;height:1.75rem}.achievement-tile.is-locked .achievement-tile__icon img,.achievement-tile.is-locked .achievement-tile__icon>svg{filter:grayscale();opacity:.35}.achievement-tile__lock{color:var(--sb-green);opacity:.55;display:flex;position:absolute}.achievement-tile__lock svg{width:1.4rem;height:1.4rem}.achievement-tile__status{color:var(--sb-green-800);text-align:center;font-size:.72rem;font-weight:600}.achievement-tile__bar{border-radius:var(--radius-pill);background:var(--border);height:.35rem;margin-top:.1rem;display:block;overflow:hidden}.achievement-tile__bar-fill{background:var(--sb-green);border-radius:var(--radius-pill);height:100%;transition:width var(--dur-fast,.14s) ease;display:block}.achievement-tile__frame-hint{border-radius:var(--radius-pill);color:#fff;width:fit-content;margin-top:.15rem;padding:.15rem .55rem;font-size:.65rem;font-weight:700;display:inline-block}.achievement-tile__frame-hint--bronze{background:linear-gradient(135deg,#8a5a2b,#d99a5b)}.achievement-tile__frame-hint--silver{color:#3a3a3a;background:linear-gradient(135deg,#9a9a9a,#e8e8e8)}.achievement-tile__frame-hint--gold{color:#3a2c0d;background:linear-gradient(135deg,#a97c2f,#f0d78c)}.achievement-tile__frame-hint--rainbow{background:conic-gradient(#ff3b30,#ff9500,#fc0,#34c759,#007aff,#5856d6,#ff3b30)}.achievement-tile__frame-hint--quill{background:linear-gradient(135deg,#4c1d95,#8b5cf6)}.achievement-tile__frame-hint--legend{background:conic-gradient(#d4af37,#145a32,#7a1f1f,#d4af37)}.achievement-tile__title-hint{border-radius:var(--radius-pill);background:var(--sb-green-50);color:var(--sb-green-800);width:fit-content;margin-top:.15rem;padding:.15rem .55rem;font-size:.65rem;font-weight:700;display:inline-block}.partner-profile__header{text-align:center;flex-direction:column;align-items:center;gap:.4rem;margin:1rem 0;display:flex}.partner-profile__header h1{margin:.2rem 0 0}.partner-profile__avatar{background:var(--sb-green-50);width:6rem;height:6rem;color:var(--sb-green);border:3px solid var(--surface-card);box-shadow:var(--shadow-md);border-radius:50%;justify-content:center;align-items:center;font-size:1.8rem;font-weight:700;display:flex;overflow:hidden}.partner-profile__avatar img{object-fit:cover;width:100%;height:100%}.partner-profile__articles{flex-direction:column;gap:.5rem;margin:.75rem 0;padding:0;list-style:none;display:flex}.partner-profile__articles li{background:var(--surface-card);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:.65rem .85rem}.achievement-detail__image{border-radius:var(--radius-md);background:var(--surface-card);border:2px solid var(--sb-green-100);width:6rem;height:6rem;box-shadow:var(--shadow-sm);color:var(--sb-green);justify-content:center;align-items:center;margin:0 auto .75rem;display:flex;overflow:hidden}.achievement-detail__image.is-locked{border-color:var(--border)}.achievement-detail__image img{object-fit:cover;width:100%;height:100%}.achievement-detail__image>svg{width:2.5rem;height:2.5rem}.achievement-detail__image.is-locked img,.achievement-detail__image.is-locked>svg{filter:grayscale();opacity:.35}.ledger__card-thumb{border-radius:var(--radius-sm,8px);object-fit:cover;flex-shrink:0;width:4rem;height:2.25rem}.page .card-row__open{text-align:left;cursor:pointer;min-width:0;color:inherit;font:inherit;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:0;flex:1;margin:0;padding:0;display:block}.page .card-row__open:hover,.page .card-row__open:active{background:0 0;border-color:#0000}.card-detail-modal__image{aspect-ratio:16/9;object-fit:cover;border-radius:var(--radius-md);width:100%;margin-bottom:.75rem;display:block}.card-detail-modal__meta{color:var(--text-muted);margin-bottom:.5rem;font-size:.85rem}.card-detail-modal__message{white-space:pre-wrap;margin-bottom:1rem}.card-detail-modal__actions{gap:.6rem;display:flex}.card-detail-modal__actions button{flex:1}.card-detail-modal__reply{border-top:1px solid var(--border);margin-top:1rem;padding-top:1rem}.card-detail-modal__reply textarea{resize:vertical;width:100%;margin-bottom:.5rem}.card-thread{flex-direction:column;gap:.5rem;margin-bottom:1rem;display:flex}.card-thread__msg{border-radius:var(--radius-md);background:var(--surface-muted,#f0ece6);max-width:85%;padding:.5rem .7rem}.card-thread__msg p{white-space:pre-wrap;margin:.15rem 0 0}.card-thread__msg.is-mine{background:var(--sb-green-50);align-self:flex-end}.card-thread__author{color:var(--text-muted);font-size:.7rem;font-weight:700}.card-thread__msg.is-mine .card-thread__author{color:var(--sb-green)}.card-counts{color:var(--text-muted);gap:1.5rem;margin:.25rem 0 .75rem;font-size:.85rem;display:flex}.card-counts strong{color:var(--text);font-weight:700}.card-view-toggle{gap:.4rem;margin-bottom:.75rem;display:flex}.page .card-view-toggle button{border:2px solid var(--sb-green);border-radius:var(--radius-pill);color:var(--sb-green);background:0 0;flex:1;margin:0;padding:.5rem;font-size:.85rem;font-weight:700}.page .card-view-toggle button.is-active,.page .card-view-toggle button.is-active:hover,.page .card-view-toggle button.is-active:active{background:var(--sb-green);color:#fff}.page .card-view-toggle button:not(.is-active):hover,.page .card-view-toggle button:not(.is-active):active{background:var(--sb-green-50);border-color:var(--sb-green)}.photo-position-frame{background:var(--surface-muted,#f0ece6);cursor:grab;touch-action:none;width:220px;height:220px;box-shadow:0 0 0 3px var(--border);border-radius:50%;margin:.75rem auto;overflow:hidden}.photo-position-frame:active{cursor:grabbing}.photo-position-frame img{object-fit:cover;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;height:100%}.uplift-card-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:.75rem;margin:.75rem 0 1.5rem;padding:0;list-style:none;display:grid}.page .uplift-card-tile{background:var(--surface-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);cursor:pointer;text-align:left;color:inherit;border:none;flex-direction:column;align-items:stretch;gap:.4rem;margin-top:0;padding:0;font-weight:400;display:flex;overflow:hidden}.page .uplift-card-tile:hover,.page .uplift-card-tile:active{background:var(--surface-card);border:none}.uplift-card-tile img{aspect-ratio:16/9;object-fit:cover;width:100%;display:block}.uplift-card-tile span{padding:0 .6rem .6rem;font-size:.85rem;font-weight:600}.uplift-card-preview{background:var(--surface-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);align-items:center;gap:.85rem;margin:1rem 0;padding:.75rem;display:flex}.uplift-card-preview img{border-radius:var(--radius-md);object-fit:cover;flex-shrink:0;width:6rem;height:3.375rem}.uplift-card-preview span{font-weight:700}.uplift-recipient-confirm{color:var(--sb-green);font-size:.9rem}.uplift-leaderboard__last-month{color:#8a6a2f;border-radius:var(--radius-md);background:#cba0521f;padding:.65rem .9rem;font-size:.9rem;font-weight:600}.page .partner-picker__change{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:0;flex-shrink:0;padding:0;font-size:.85rem;font-weight:400;text-decoration:underline}.page .partner-picker__change:hover,.page .partner-picker__change:active{color:var(--sb-green);background:0 0}.partner-picker__label{margin-bottom:.3rem;font-size:.9rem;font-weight:600;display:block}.partner-picker input{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text);background:#fff;padding:.65rem .75rem;font-family:inherit;font-size:1rem}.partner-picker input:focus-visible{border-color:var(--sb-green);box-shadow:0 0 0 3px var(--sb-green-100);outline:none}.partner-picker__results{flex-wrap:wrap;gap:.45rem;max-height:260px;margin:.6rem 0 0;padding:.1rem .1rem .3rem;display:flex;overflow-y:auto}.page .partner-picker__chip{background:var(--sb-green-50);color:var(--sb-green-800);border-radius:var(--radius-pill);cursor:pointer;-webkit-tap-highlight-color:transparent;border:1px solid #0000;padding:.4rem .85rem;font-size:.85rem;font-weight:600}.page .partner-picker__chip:hover,.page .partner-picker__chip:active{background:var(--sb-green-100);border-color:var(--sb-green)}.partner-picker__hint{padding:.3rem .1rem;font-size:.85rem}.partner-picker__selected{border:1px solid var(--border);border-radius:var(--radius-md);background:#fff;align-items:center;gap:.6rem;margin-top:.4rem;padding:.6rem .75rem;display:flex}.partner-picker__selected-avatar{background:var(--sb-green);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:2.1rem;height:2.1rem;font-size:.95rem;font-weight:700;display:flex}.partner-picker__selected-name{flex:1;font-weight:600}.image-preview{border-radius:var(--radius-sm);max-width:100%;max-height:240px;margin-top:.25rem;display:block}.image-preview-grid{grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:.5rem;margin-top:.4rem;display:grid}.image-preview-grid__item{aspect-ratio:1;position:relative}.image-preview-grid__item img{object-fit:cover;border-radius:var(--radius-sm);width:100%;height:100%}.image-preview-grid__item button{background:var(--status-error);color:#fff;cursor:pointer;border:none;border-radius:50%;width:1.4rem;height:1.4rem;margin-top:0;padding:0;font-size:.9rem;line-height:1;position:absolute;top:-.4rem;right:-.4rem}.article-actions{gap:.5rem;margin-top:.75rem;display:flex}.article-actions button{flex:1;margin-top:0}.page .button--secondary{color:var(--sb-green);border:2px solid var(--sb-green);background:0 0}.page .button--secondary:hover{background:var(--sb-green-50);border-color:var(--sb-green-dark);color:var(--sb-green-dark)}.reject-note{gap:.5rem;margin-top:.5rem;display:flex}.reject-note input{border:1px solid var(--border);border-radius:var(--radius-sm);flex:1;padding:.5rem .65rem;font-size:.9rem}.reject-note button{white-space:nowrap;margin-top:0}.game-metrics{flex-direction:column;gap:.5rem;margin:1rem 0 1.25rem;display:flex}.game-metric-label{color:var(--text-muted);justify-content:space-between;margin-bottom:.2rem;font-size:.85rem;display:flex}.game-metric-track{border-radius:var(--radius-pill);background:var(--border);height:10px;overflow:hidden}.game-metric-fill{background:var(--sb-green);height:100%;transition:width .2s}.game-swipe-area{flex-direction:column;align-items:center;gap:.75rem;display:flex}.game-swipe-hint{color:var(--text-muted);font-size:.85rem;display:none}.game-card{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:320px;box-shadow:var(--shadow-md);touch-action:pan-y;cursor:grab;-webkit-user-select:none;user-select:none;padding:1rem}.game-card-img{aspect-ratio:1;object-fit:contain;border-radius:var(--radius-md);background:var(--bg);width:100%}.game-card-title{text-align:center;margin-top:.75rem;font-weight:600}.game-choice-buttons{gap:.75rem;width:100%;max-width:320px;display:flex}.game-choice-buttons button{flex:1;font-size:.85rem}.game-result{border:1px solid var(--border);border-radius:var(--radius-lg);margin:1rem 0;padding:1rem 1.25rem}.game-result.is-won{background:var(--sb-green-50);border-color:var(--sb-green-100)}.game-result.is-failed{background:var(--status-error-bg);border-color:var(--status-error)}.game-result-title{margin-bottom:.5rem;font-weight:700}.game-result-stats{flex-direction:column;gap:.25rem;margin:.75rem 0 0;padding:0;list-style:none;display:flex}.game-hub{border-top:1px solid var(--border);margin-top:1.5rem;padding-top:1rem}.game-hub-balances{gap:1.25rem;margin-bottom:.75rem;font-size:.9rem;display:flex}.game-team-experience{color:var(--text-muted);margin-bottom:.75rem;font-size:.85rem}.game-hub-upgrades{flex-direction:column;gap:.5rem;display:flex}.game-upgrade-row{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-card);justify-content:space-between;align-items:center;gap:.75rem;padding:.6rem .85rem;display:flex}.game-upgrade-label{font-weight:600}.game-upgrade-rank{color:var(--text-muted);font-size:.8rem}.game-upgrade-row button{white-space:nowrap;margin-top:0;font-size:.85rem}.game-partner-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-card);margin-top:1.25rem;padding:.85rem 1rem}.game-partner-name{font-weight:700}.game-partner-personality{color:var(--text-muted);font-size:.85rem}.game-partner-specialization{color:var(--sb-bonus-star);margin-top:.25rem;font-size:.8rem;font-weight:600}.game-partner-bond{gap:6px;margin-top:.5rem;display:flex}.game-bond-dot{border:2px solid var(--sb-green);background:0 0;border-radius:50%;width:12px;height:12px}.game-bond-dot.is-filled{background:var(--sb-green)}.game-quiz{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-card);margin-top:1.25rem;padding:.85rem 1rem}.game-quiz-title{margin-bottom:.4rem;font-weight:700}.game-quiz-options{flex-direction:column;gap:.4rem;margin:.6rem 0;display:flex}.game-quiz-options button{text-align:left;background:var(--bg);color:var(--text);border:1px solid var(--border);margin-top:0;font-weight:500}.game-quiz-options button.is-selected{background:var(--sb-green-50);border-color:var(--sb-green);color:var(--sb-green-dark);font-weight:700}.game-briefing{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-card);margin-top:1rem;padding:.85rem 1rem}.game-briefing-title{margin-bottom:.4rem;font-weight:700}.game-condition{border-radius:var(--radius-sm);border-left:3px solid var(--border);background:var(--bg);margin:.5rem 0;padding:.6rem .75rem}.game-condition--buff{border-left-color:var(--sb-green)}.game-condition--debuff{border-left-color:var(--status-error)}.game-condition--mixed{border-left-color:var(--status-warning)}.game-condition--rare{border-left-color:var(--sb-bonus-star)}.game-condition-title{font-size:.9rem;font-weight:700}.game-condition-desc{color:var(--text-muted);font-size:.8rem}.game-prep-title{margin:.75rem 0 .4rem;font-weight:700}.game-prep-actions{flex-direction:column;gap:.4rem;margin-bottom:.75rem;display:flex}.game-prep-option{align-items:center;gap:.5rem;font-size:.9rem;display:flex}.game-prep-option.is-disabled{color:var(--text-muted);opacity:.6}.game-leaderboard{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-card);margin-top:1.25rem;padding:.85rem 1rem}.game-leaderboard-title{margin-bottom:.4rem;font-weight:700}.game-leaderboard-list{margin:0;padding-left:1.25rem;font-size:.9rem;list-style:decimal}.game-leaderboard-list li{justify-content:space-between;gap:.75rem;padding:.2rem 0;display:flex}.game-year-status{color:var(--text-muted);margin-bottom:.75rem;font-size:.85rem}.game-achievements{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-card);margin-top:1.25rem;padding:.85rem 1rem}.game-achievements-title{margin-bottom:.5rem;font-weight:700}.game-achievements-list{flex-direction:column;gap:.5rem;display:flex}.game-achievement{border-radius:var(--radius-sm);background:var(--bg);opacity:.55;padding:.5rem .65rem}.game-achievement.is-unlocked{opacity:1;background:var(--sb-green-50)}.game-achievement-label{font-size:.85rem;font-weight:700}.game-achievement-desc{color:var(--text-muted);font-size:.75rem}.game-achievement-toast{border-radius:var(--radius-md);background:var(--sb-bonus-star);color:#2c2a27;margin:.75rem 0;padding:.6rem .85rem;font-size:.85rem;font-weight:700}.game-legacy-review{border:1px solid var(--sb-bonus-star);border-radius:var(--radius-lg);background:var(--sb-green-50);margin:1rem 0;padding:1rem 1.15rem}.game-legacy-title{margin-bottom:.6rem;font-size:1.1rem;font-weight:700}.game-legacy-stats{flex-direction:column;gap:.3rem;margin:0 0 .75rem;padding:0;list-style:none;display:flex}.game-legacy-achievements{margin-top:.75rem}.game-legacy-achievements-title{margin-bottom:.3rem;font-size:.85rem;font-weight:700}.coffee-card-grid{grid-template-columns:repeat(2,1fr);gap:.75rem;margin:0 0 1rem;display:grid}.coffee-card{border-radius:var(--radius-lg);min-height:12.5rem;box-shadow:var(--shadow-sm);color:#fff;transition:transform var(--dur-fast,.14s) ease, box-shadow var(--dur-fast,.14s) ease;flex-direction:column;justify-content:flex-end;gap:.3rem;padding:.9rem;display:flex;position:relative;overflow:hidden}.coffee-card:hover{box-shadow:var(--shadow-md);text-decoration:none;transform:translateY(-1px)}.coffee-card--blonde{background:linear-gradient(155deg, var(--roast-blonde-1), var(--roast-blonde-2))}.coffee-card--medium{background:linear-gradient(155deg, var(--roast-medium-1), var(--roast-medium-2))}.coffee-card--dark{background:linear-gradient(155deg, var(--roast-dark-1), var(--roast-dark-2))}.coffee-card__icon{opacity:.35;position:absolute;top:.75rem;right:.75rem}.coffee-card__icon svg{width:2rem;height:2rem}.coffee-card__image{object-fit:contain;object-position:center 18%;width:100%;height:100%;padding:.5rem;position:absolute;inset:0}.coffee-card:has(.coffee-card__image):after{content:"";pointer-events:none;background:linear-gradient(#0000 45%,#0009);position:absolute;inset:0}.coffee-card__count{z-index:1;border-radius:var(--radius-pill);background:var(--sb-green);color:#fff;justify-content:center;align-items:center;min-width:1.4rem;height:1.4rem;padding:0 .35rem;font-size:.75rem;font-weight:700;display:flex;position:absolute;top:.5rem;right:.5rem;box-shadow:0 1px 4px #00000059}.coffee-card__season{text-transform:uppercase;letter-spacing:.03em;border-radius:var(--radius-pill);color:#fff;background:#ffffff38;align-self:flex-start;padding:.15rem .55rem;font-size:.65rem;font-weight:700;position:relative}.coffee-card__name{font-family:var(--font-serif);color:#fff;margin:0;font-size:1.05rem;line-height:1.2;position:relative}.coffee-card__notes{color:#ffffffd9;margin:0;font-size:.75rem;position:relative}.coffee-hero{border-radius:var(--radius-lg);color:#fff;margin-bottom:1rem;padding:1.5rem 1.25rem;position:relative;overflow:hidden}.coffee-hero__image{object-fit:contain;width:100%;max-height:14rem;margin:0 auto .5rem;display:block}.coffee-hero--blonde{background:linear-gradient(155deg, var(--roast-blonde-1), var(--roast-blonde-2))}.coffee-hero--medium{background:linear-gradient(155deg, var(--roast-medium-1), var(--roast-medium-2))}.coffee-hero--dark{background:linear-gradient(155deg, var(--roast-dark-1), var(--roast-dark-2))}.coffee-hero h1{color:#fff;margin:.4rem 0 .25rem}.coffee-hero__notes{color:#ffffffeb;margin:0 0 .5rem;font-size:1rem}.coffee-hero__meta{color:#ffffffbf;margin:0;font-size:.8rem}.level-dots{align-items:center;gap:.5rem;margin:.5rem 0;font-size:.75rem;display:flex}.level-dots__label{color:var(--text-muted);white-space:nowrap}.level-dots__track{gap:.3rem;display:flex}.level-dots__dot{background:var(--border);border-radius:50%;width:.55rem;height:.55rem}.level-dots__dot.is-filled{background:var(--sb-green)}.tasting-share-toggle{border-radius:var(--radius-md);background:var(--sb-green-50);cursor:pointer;transition:background var(--dur-fast,.14s) ease;align-items:center;gap:.75rem;margin-top:.75rem;padding:.65rem .85rem;font-size:.875rem;font-weight:500!important;display:flex!important}.tasting-share-toggle.is-active{background:var(--sb-green-100)}.tasting-share-toggle__icon{width:2.15rem;height:2.15rem;color:var(--sb-green);transition:background var(--dur-fast,.14s) ease, color var(--dur-fast,.14s) ease;background:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.tasting-share-toggle__icon svg{width:1.05rem;height:1.05rem}.tasting-share-toggle.is-active .tasting-share-toggle__icon{background:var(--sb-green);color:#fff}.tasting-share-toggle__text{flex-direction:column;flex:1;gap:.1rem;min-width:0;display:flex}.tasting-share-toggle__title{color:var(--text);font-size:.875rem;font-weight:600}.tasting-share-toggle__hint{color:var(--text-muted);font-size:.75rem;font-weight:400}.tasting-share-toggle__input{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.tasting-share-toggle__switch{border-radius:var(--radius-pill);background:var(--border);width:2.5rem;height:1.4rem;transition:background var(--dur-fast,.14s) ease;flex-shrink:0;position:relative}.tasting-share-toggle.is-active .tasting-share-toggle__switch{background:var(--sb-green)}.tasting-share-toggle__thumb{width:1.2rem;height:1.2rem;box-shadow:var(--shadow-sm);background:#fff;border-radius:50%;transition:transform .18s;position:absolute;top:2px;left:2px}.tasting-share-toggle.is-active .tasting-share-toggle__thumb{transform:translate(1.1rem)}.tasting-share-toggle__input:focus-visible~.tasting-share-toggle__switch{box-shadow:0 0 0 3px var(--sb-green-100);outline:none}.tasting-share-toggle.is-active .tasting-share-toggle__input:focus-visible~.tasting-share-toggle__switch{box-shadow:0 0 0 3px #fff, 0 0 0 5px var(--sb-green-100)}@media (prefers-reduced-motion:reduce){.tasting-share-toggle__thumb,.tasting-share-toggle,.tasting-share-toggle__icon,.tasting-share-toggle__switch{transition:none}}.team-picker{margin:.25rem 0 .75rem}.team-picker label{margin-bottom:.4rem;font-size:.85rem;font-weight:700;display:block}.team-picker__pills{flex-wrap:wrap;gap:.4rem;display:flex}.page .team-picker__pill{border-radius:var(--radius-pill);border:1px solid var(--sb-green-100);color:var(--sb-green-800);background:#fff;margin:0;padding:.4rem .9rem;font-size:.8rem;font-weight:600}.page .team-picker__pill:hover,.page .team-picker__pill:active{border-color:var(--sb-green-100);background:var(--sb-green-50)}.page .team-picker__pill.is-active,.page .team-picker__pill.is-active:hover,.page .team-picker__pill.is-active:active{background:var(--sb-green);border-color:var(--sb-green);color:#fff}.team-roster{flex-wrap:wrap;gap:.5rem;margin:0 0 1rem;display:flex}.team-roster__chip{background:var(--sb-green-50);border-radius:var(--radius-pill);color:var(--sb-green-800);align-items:center;gap:.4rem;padding:.2rem .7rem .2rem .2rem;font-size:.75rem;font-weight:600;display:inline-flex}.team-roster__avatar{background:var(--sb-green);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:.65rem;font-weight:700;display:flex}.team-roster__avatar--sm{width:22px;height:22px;font-size:.6rem}.team-tastings-empty{text-align:center;color:var(--sb-green-800);flex-direction:column;align-items:center;gap:.5rem;padding:2rem 1rem;display:flex}.team-tastings-empty svg{opacity:.6;width:40px;height:40px}.team-tasting-card{border-left:3px solid var(--sb-green)}.team-tastings-date-group{margin:0 0 1.25rem}.team-tastings-date-group__heading{color:var(--sb-green-800);text-transform:uppercase;letter-spacing:.02em;border-bottom:1px solid var(--sb-green-100);margin:0 0 .5rem;padding-bottom:.3rem;font-size:.85rem;font-weight:700}.team-tasting-card__author{align-items:center;gap:.4rem;margin:.4rem 0;font-size:.8rem;display:flex}.page .team-tasting-card__comments-toggle{color:var(--sb-green);border:1px solid var(--sb-green-100);border-radius:var(--radius-pill);background:0 0;align-items:center;gap:.35rem;width:auto;margin:.5rem 0 0;padding:.3rem .7rem;font-size:.75rem;font-weight:600;display:inline-flex}.page .team-tasting-card__comments-toggle:hover,.page .team-tasting-card__comments-toggle:active{background:var(--sb-green-50);border-color:var(--sb-green-100);color:var(--sb-green)}.page .team-tasting-card__comments-toggle svg{width:15px;height:15px}.qr-csr-checkbox{align-items:center;gap:.5rem;margin-top:.25rem;font-size:.875rem;font-weight:500!important;display:flex!important}.qr-csr-checkbox input{width:1.1rem;height:1.1rem;accent-color:var(--sb-green)}.page .btn-plain{color:var(--sb-green);background:0 0;border-color:#0000;margin-top:.4rem}.page .btn-plain:hover{background:var(--sb-green-50);border-color:#0000}.profile-trigger-row{flex-wrap:wrap;gap:.25rem 1.25rem;display:flex}.card-frame-picker{flex-wrap:wrap;align-items:center;gap:.75rem;margin:.5rem 0 1rem;display:flex}.card-frame-picker__label{color:var(--text-muted);font-size:.8rem;font-weight:600}.card-frame-picker__swatches{gap:.5rem;display:flex}.title-picker__pills{flex-wrap:wrap;gap:.4rem;display:flex}.page .title-picker__pill{border-radius:var(--radius-pill);border:1px solid var(--sb-green-100);color:var(--sb-green-800);background:#fff;margin:0;padding:.4rem .9rem;font-size:.8rem;font-weight:600}.page .title-picker__pill:hover,.page .title-picker__pill:active{border-color:var(--sb-green-100);background:var(--sb-green-50)}.page .title-picker__pill.is-active,.page .title-picker__pill.is-active:hover,.page .title-picker__pill.is-active:active{background:var(--sb-green);border-color:var(--sb-green);color:#fff}.page .card-frame-swatch{border:2px solid var(--border);cursor:pointer;-webkit-tap-highlight-color:transparent;width:1.75rem;height:1.75rem;transition:transform var(--dur-fast,.14s) ease, border-color var(--dur-fast,.14s) ease;border-radius:50%;margin:0;padding:0}.page .card-frame-swatch:hover,.page .card-frame-swatch:active{border-color:var(--border);transform:scale(1.08)}.page .card-frame-swatch.is-active,.page .card-frame-swatch.is-active:hover,.page .card-frame-swatch.is-active:active{border-color:var(--sb-green);box-shadow:0 0 0 2px var(--sb-green-100)}.page .card-frame-swatch--default,.page .card-frame-swatch--default:hover,.page .card-frame-swatch--default:active{background:var(--surface-card)}.page .card-frame-swatch--bronze,.page .card-frame-swatch--bronze:hover,.page .card-frame-swatch--bronze:active{background:linear-gradient(135deg,#8a5a2b,#d99a5b,#8a5a2b)}.page .card-frame-swatch--silver,.page .card-frame-swatch--silver:hover,.page .card-frame-swatch--silver:active{background:linear-gradient(135deg,#9a9a9a,#e8e8e8,#9a9a9a)}.page .card-frame-swatch--gold,.page .card-frame-swatch--gold:hover,.page .card-frame-swatch--gold:active{background:linear-gradient(135deg,#a97c2f,#f0d78c,#a97c2f)}.page .card-frame-swatch--rainbow,.page .card-frame-swatch--rainbow:hover,.page .card-frame-swatch--rainbow:active{background:conic-gradient(#ff3b30,#ff9500,#fc0,#34c759,#007aff,#5856d6,#ff3b30)}.page .card-frame-swatch--quill,.page .card-frame-swatch--quill:hover,.page .card-frame-swatch--quill:active{background:linear-gradient(135deg,#4c1d95,#8b5cf6,#4c1d95)}.page .card-frame-swatch--legend,.page .card-frame-swatch--legend:hover,.page .card-frame-swatch--legend:active{background:conic-gradient(#d4af37,#145a32,#7a1f1f,#d4af37)}.page .profile-sticker-swatch,.page .profile-sticker-swatch:hover,.page .profile-sticker-swatch:active{border:2px solid var(--border);cursor:pointer;-webkit-tap-highlight-color:transparent;width:2.25rem;height:2.25rem;transition:transform var(--dur-fast,.14s) ease, border-color var(--dur-fast,.14s) ease;background:#fff;border-radius:50%;padding:.2rem}.page .profile-sticker-swatch img{object-fit:contain;border-radius:50%;width:100%;height:100%}.page .profile-sticker-swatch--none{background:var(--surface-card)}.page .profile-sticker-swatch:hover{transform:scale(1.08)}.page .profile-sticker-swatch.is-active{border-color:var(--sb-green);box-shadow:0 0 0 2px var(--sb-green-100)}.profile-sticker-display{color:var(--text-muted);align-items:center;gap:.5rem;margin:.4rem 0 1rem;font-size:.85rem;font-weight:600;display:flex}.profile-sticker-display img{object-fit:contain;width:2rem;height:2rem}.page .profile-edit-name-trigger{color:var(--text-muted);letter-spacing:normal;cursor:pointer;background:0 0;border:none;border-radius:0;align-items:center;gap:.3rem;margin-top:.5rem;padding:0;font-size:.8rem;font-weight:500;display:inline-flex}.page .profile-edit-name-trigger:hover{color:var(--sb-green);background:0 0}.page .profile-scan-link{border:2px solid var(--sb-green);border-radius:var(--radius-pill);color:var(--sb-green);text-align:center;background:0 0;margin-top:1rem;padding:.75rem 1.5rem;font-size:1rem;font-weight:700;text-decoration:none;display:inline-block}.page .profile-scan-link:hover{background:var(--sb-green-50);border-color:var(--sb-green-dark);color:var(--sb-green-dark);text-decoration:none}.profile-view-all-link{margin-top:.4rem;font-size:.85rem;font-weight:600;display:inline-block}.profile-section--muted{margin-top:1.5rem}.profile-section--muted h3{color:var(--text-muted);margin-bottom:.5rem;font-size:.95rem;font-weight:600}.tasting-history{flex-direction:column;gap:.6rem;margin:1rem 0 0;padding:0;list-style:none;display:flex}.tasting-history__item{background:var(--surface-card);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:.75rem .9rem}.tasting-history__item--own{align-items:flex-start;gap:.5rem;display:flex}.tasting-history__content{flex:1;min-width:0}.tasting-history__item p{white-space:pre-wrap;margin:.3rem 0 0}.tasting-steps{flex-direction:column;gap:.2rem;margin:.3rem 0 0;display:flex}.tasting-steps__row{gap:.4rem;font-size:.9rem;display:flex}.tasting-steps__row dt{color:var(--sb-green);flex-shrink:0;font-weight:600}.tasting-steps__row dd{margin:0}.tasting-history__photo{object-fit:cover;border-radius:var(--radius-sm);width:100%;max-width:220px;max-height:220px;margin-top:.5rem;display:block}.tasting-history__meta{color:var(--text-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.3rem .5rem;font-size:.75rem;display:flex}.tasting-history__author{font-weight:600}.coffee-action-row{flex-wrap:wrap;gap:.6rem;display:flex}.coffee-action-row button{white-space:nowrap;flex:1;margin-top:0}.page .btn-secondary{color:var(--sb-green);background:#fff}.page .btn-secondary:hover{background:var(--sb-green-50)}.tasting-history__actions{flex-direction:column;flex-shrink:0;gap:.2rem;display:flex}.page .tasting-history__delete{color:var(--status-error);flex-shrink:0;justify-content:center;align-items:center;margin-top:0;padding:.4rem;display:inline-flex}.tasting-history__delete svg{width:1rem;height:1rem}.page .tasting-history__delete:hover{background:var(--status-error-bg)}.page .tasting-history__edit-btn{color:var(--text-muted);flex-shrink:0;justify-content:center;align-items:center;margin-top:0;padding:.4rem;display:inline-flex}.tasting-history__edit-btn svg{width:1rem;height:1rem}.page .tasting-history__edit-btn:hover{background:var(--sb-green-50);color:var(--sb-green)}.tasting-history__edit-card{flex:1;min-width:0;margin-top:0}.page .heart-toggle{color:var(--text-muted);align-items:center;gap:.3rem;margin-top:.5rem;padding:.3rem .7rem;font-size:.8rem;display:inline-flex}.heart-toggle svg{width:1.1rem;height:1.1rem}.page .heart-toggle.is-liked{color:#c0356e}.page .heart-toggle:hover{background:var(--sb-green-50)}.coffee-add-link{border:2px dashed var(--border);border-radius:var(--radius-md);text-align:center;color:var(--sb-green);margin:.75rem 0 1.25rem;padding:.75rem 1rem;font-weight:600;display:block}.coffee-add-link:hover{border-color:var(--sb-green);background:var(--sb-green-50);text-decoration:none}.glossary-search{width:100%;margin:.5rem 0 1rem}.glossary-list{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.glossary-term{background:var(--surface-card);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:.75rem .9rem}.glossary-term strong{color:var(--sb-green)}.glossary-term p{margin:.25rem 0 0}.knowledge-hero{aspect-ratio:16/9;object-fit:cover;border-radius:var(--radius-lg);width:100%;margin:.75rem 0 1rem;display:block}.knowledge-recipe{margin:.5rem 0;padding-left:1.25rem}.knowledge-recipe li{margin-bottom:.35rem}.knowledge-recipe li ul{margin:.35rem 0 0;padding-left:1.1rem}.knowledge-recipe li ul li{margin-bottom:.2rem}.coffee-master-teaser{border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);background:#fff;align-items:center;gap:.85rem;margin:1rem 0;padding:.85rem 1rem;display:flex;color:var(--text)!important;text-decoration:none!important}.coffee-master-teaser img{object-fit:contain;flex-shrink:0;width:52px;height:52px}.coffee-master-teaser>span{flex-direction:column;gap:.15rem;display:flex}.coffee-master-apron-figure{text-align:center;margin:1.25rem 0}.coffee-master-apron-figure img{aspect-ratio:3/4;object-fit:cover;border-radius:var(--radius-lg);width:100%;max-width:320px;margin:0 auto .4rem;display:block}.coffee-master-faq dt{margin-top:1rem;font-weight:600}.coffee-master-faq dt:first-child{margin-top:0}.coffee-master-faq dd{color:var(--text-muted);margin:.25rem 0 0}.coffee-master-source{border-top:1px solid var(--border);margin-top:1.5rem;padding-top:.75rem;font-size:.78rem}.knowledge-table{border-collapse:collapse;width:100%;margin:.5rem 0 1rem;font-size:.9rem}.knowledge-table th,.knowledge-table td{text-align:left;border-bottom:1px solid var(--border);padding:.4rem .6rem}.knowledge-table th{color:var(--text-muted);font-weight:600}.knowledge-nav{flex-direction:column;gap:.4rem;margin:.75rem 0 1.5rem;display:flex}.journey-stats{grid-template-columns:repeat(3,1fr);gap:.6rem;margin:.75rem 0 1rem;display:grid}.journey-stat{background:var(--surface-card);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);text-align:center;padding:.85rem .5rem}.journey-stat__value{color:var(--sb-green);font-size:1.6rem;font-weight:700;display:block}.journey-stat__label{color:var(--text-muted);font-size:.75rem}.passport-hub__tagline{color:var(--sb-green);letter-spacing:.03em;text-transform:uppercase;text-align:left;margin:.5rem 0 1.5rem;font-size:.85rem;font-weight:700}.passport-hub-grid{grid-template-columns:repeat(2,1fr);gap:1.25rem .75rem;margin:.5rem 0 1.5rem;display:grid}.page .passport-hub-button{text-align:center;color:var(--text);flex-direction:column;align-items:center;gap:.3rem;text-decoration:none;display:flex}.passport-hub-button__circle{background-color:var(--sb-green-50);width:92px;height:92px;box-shadow:var(--shadow-sm);color:var(--sb-green);background-position:50%;background-size:cover;border-radius:50%;justify-content:center;align-items:center;display:flex}.passport-hub-button__circle svg{width:34px;height:34px}.passport-hub-button__label{font-size:.85rem;font-weight:700;line-height:1.2}.passport-hub-button__sub{color:var(--text-muted);font-size:.7rem;line-height:1.2}.store-ranking{flex-direction:column;gap:.6rem;margin:1.25rem 0 0;padding:0;list-style:none;display:flex}.store-ranking__row{background:var(--surface-card);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);align-items:center;gap:.85rem;padding:.7rem .9rem;display:flex}.store-ranking__row.is-first{box-shadow:0 0 0 1px #cba05259, var(--shadow-sm);background:#cba0521a}.store-ranking__rank{background:var(--sb-green-50);width:1.9rem;height:1.9rem;color:var(--sb-green-800);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.85rem;font-weight:700;display:flex}.store-ranking__row.is-first .store-ranking__rank{background:var(--sb-bonus-star);color:#fff}.store-ranking__store{flex-direction:column;flex:1;gap:.1rem;min-width:0;display:flex}.store-ranking__store strong{font-size:.95rem}.store-ranking__store .muted{font-size:.78rem}.store-ranking__badge{border-radius:var(--radius-pill);color:#8a6a2f;background:#cba05229;flex-shrink:0;align-items:center;gap:.3rem;padding:.3rem .6rem;font-size:.8rem;font-weight:700;display:inline-flex}.store-ranking__badge svg{width:.95rem;height:.95rem}.top-tasters{flex-direction:column;gap:.5rem;margin:.75rem 0 0;padding:0;list-style:none;display:flex}.top-tasters__row{background:var(--surface-card);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);align-items:center;gap:.75rem;padding:.55rem .8rem;font-size:.9rem;display:flex}.top-tasters__row.is-first{box-shadow:0 0 0 1px #cba05259, var(--shadow-sm);background:#cba0521a}.top-tasters__rank{background:var(--sb-green-50);width:1.6rem;height:1.6rem;color:var(--sb-green-800);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.78rem;font-weight:700;display:flex}.top-tasters__row.is-first .top-tasters__rank{background:var(--sb-bonus-star);color:#fff}.top-tasters__name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.top-tasters__count{color:var(--text-muted);flex-shrink:0;font-size:.8rem}.sticker-boxes-row{gap:.75rem;margin-top:1rem;display:flex}.page .sticker-box-btn{border-radius:var(--radius-lg);background:var(--surface-card);border:2px solid var(--sb-green);color:var(--sb-green);box-shadow:var(--shadow-sm);flex-direction:column;flex:1;align-items:center;gap:.3rem;margin-top:0;padding:1rem .75rem;display:flex}.page .sticker-box-btn--rare{border-color:var(--sb-bonus-star);color:var(--sb-bonus-star)}.page .sticker-box-btn:disabled{opacity:.5}.sticker-box-btn__title{font-size:1rem;font-weight:700}.sticker-box-btn__cost{font-size:.8rem;font-weight:600}.sticker-boxes-hint{margin-top:.4rem;font-size:.8rem}.sticker-collection-group{margin-top:1.75rem}.sticker-collection-group h2{margin-bottom:.6rem;font-size:1.05rem}.sticker-grid{grid-template-columns:repeat(auto-fill,minmax(4.5rem,1fr));gap:.6rem;display:grid}.page .sticker-tile{aspect-ratio:1;border-radius:var(--radius-md);background:var(--surface-card);border:2px solid var(--border);box-shadow:var(--shadow-sm);justify-content:center;align-items:center;margin-top:0;padding:.4rem;display:flex;position:relative;overflow:hidden}.page .sticker-tile img{object-fit:contain;width:100%;height:100%}.page .sticker-tile--rare{border-color:var(--sb-bonus-star)}.page .sticker-tile--locked{cursor:default;border-color:var(--border)}.page .sticker-tile--locked img{filter:grayscale();opacity:.35}.page .sticker-tile--hidden{background:var(--sb-green-50)}.sticker-tile__badge{background:var(--sb-green);color:#fff;border-radius:var(--radius-pill);padding:.1rem .35rem;font-size:.65rem;font-weight:700;position:absolute;bottom:.2rem;right:.2rem}.sticker-tile__lock{color:var(--sb-green);opacity:.55;display:flex;position:absolute}.sticker-tile--hidden .sticker-tile__lock{opacity:.7;position:static}.sticker-tile__lock svg{width:1.4rem;height:1.4rem}.sticker-tile--hidden .sticker-tile__lock svg{width:2rem;height:2rem}.sticker-overlay{z-index:50;background:#1a17148c;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.sticker-reveal-card{background:var(--surface-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);text-align:center;width:100%;max-width:20rem;padding:1.5rem;position:relative}.sticker-reveal-card img{width:100%;max-width:12rem;margin:0 auto .75rem;display:block}.sticker-reveal-card__rare-tag{border-radius:var(--radius-pill);background:var(--sb-bonus-star);color:#fff;margin-bottom:.5rem;padding:.2rem .6rem;font-size:.75rem;font-weight:700;display:inline-block}.page .sticker-enlarge-close{background:var(--sb-green-50);width:2rem;height:2rem;color:var(--text);-webkit-tap-highlight-color:transparent;border:none;border-radius:50%;margin-top:0;padding:0;font-size:1.2rem;line-height:1;position:absolute;top:.5rem;right:.5rem}.page .sticker-enlarge-close:hover,.page .sticker-enlarge-close:active{background:var(--sb-green-50);border-color:#0000}.sticker-gift-form{text-align:left;margin-top:1rem}.sticker-gift-form label{margin-bottom:.3rem;font-size:.8rem;font-weight:600;display:block}.sticker-gift-success{color:var(--sb-green);font-size:.85rem;font-weight:600}
