:root{--brand:#3f5744;--brand-dark:#2b3d2d;--brand-light:#9bb98a;--bg:#f1ede0;--surface:#ffffffc2;--surface-raised:#e6e0c7b3;--surface-faint:#ffffff52;--nav-surface:var(--surface);--border:#d8d1b4;--text:#2b3329;--text-muted:#70785f;--bg-overlay:#f1ede01f;--success:#6b8f5a;--warning:#c98a2e;--danger:#bb2736;--accent-tint:#e4ecda;--band-red:#ef4444;--band-orange:#f97316;--band-yellow:#eab308;--band-green:#22c55e;--band-blue:#1a6fe8;--band-indigo:#6366f1;--band-violet:#8b5cf6;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:20px;--shadow-sm:0 1px 2px #2b332914;--shadow-card:0 2px 8px #2b33291a;--font-sans:"Inter", ui-sans-serif, system-ui, -apple-system, sans-serif;--sidebar-width:232px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#1a1f18;--surface:#222820ad;--surface-raised:#2a3128a3;--surface-faint:#14181257;--border:#3a4235;--text:#edf0e4;--text-muted:#a3ab96;--accent-tint:#2c3a2b;--brand-light:#7ea56c;--bg-overlay:#0f120d6b;--shadow-sm:0 1px 2px #0000004d;--shadow-card:0 2px 10px #0006}}:root[data-theme=dark]{--bg:#1a1f18;--surface:#222820ad;--surface-raised:#2a3128a3;--surface-faint:#14181257;--border:#3a4235;--text:#edf0e4;--text-muted:#a3ab96;--accent-tint:#2c3a2b;--brand-light:#7ea56c;--bg-overlay:#0f120d6b;--shadow-sm:0 1px 2px #0000004d;--shadow-card:0 2px 10px #0006}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0}body:after{content:"";pointer-events:none;z-index:-1;background-image:linear-gradient(var(--bg-overlay), var(--bg-overlay)), var(--page-bg,url(/assets/hero-valley-C2w5LFRp.webp));background-size:cover,cover;background-position:center, var(--page-pos,50% 50%);filter:contrast(1.16)saturate(1.3);background-repeat:no-repeat,no-repeat;position:fixed;inset:0}.card,.stat-tile,.bottom-nav,.ticker,.rank-tile,.segmented,.segmented-option.active,.feed-card,.list-row-button,.invite-result,.log-tile,.hero,.banner,.reports-hero,.profile-hero,.admin-hero,.launcher-tile,.page-title,.page-header,.profile-footer{-webkit-backdrop-filter:blur(16px)}.login-card{background:var(--surface-faint);-webkit-backdrop-filter:blur(22px);text-align:center;padding:20px 22px 18px}.login-hero{min-height:100vh;position:relative}.hero-hotspots{z-index:1;pointer-events:none;position:fixed;inset:0}.hero-hotspot{cursor:pointer;pointer-events:auto;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex;position:fixed}.hero-hotspot-ring{background:radial-gradient(circle,#ffffff8c 0%,#ffffff2e 55%,#0000 75%);border-radius:50%;width:100%;height:100%;transition:transform .15s,box-shadow .15s;animation:2.6s ease-in-out infinite hero-hotspot-pulse;box-shadow:0 0 0 1.5px #fff9}.hero-hotspot:hover .hero-hotspot-ring,.hero-hotspot:focus-visible .hero-hotspot-ring{animation-play-state:paused;transform:scale(1.15);box-shadow:0 0 0 2px #ffffffe6}@keyframes hero-hotspot-pulse{0%,to{opacity:.55;transform:scale(.9)}50%{opacity:1;transform:scale(1.05)}}.board-hotspot{cursor:pointer;pointer-events:auto;z-index:1;border-radius:var(--radius-lg);background:0 0;border:none;padding:0;position:fixed}.board-hotspot:focus-visible{outline-offset:2px;outline:2px solid #ffffffe6}.board-hotspot-count{background:var(--danger);color:#fff;border-radius:999px;padding:3px 8px;font-size:.72rem;font-weight:700;position:absolute;top:28%;right:6%;box-shadow:0 1px 3px #0006}.login-fallback-link{z-index:2;background:var(--surface);-webkit-backdrop-filter:blur(16px);color:var(--text);border:1px solid var(--border);cursor:pointer;box-shadow:var(--shadow-card);border-radius:999px;padding:9px 18px;font-family:inherit;font-size:.85rem;font-weight:600;position:fixed;bottom:18px;right:18px}.login-modal-backdrop{z-index:10;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#14181273;justify-content:center;align-items:center;padding:16px;animation:.15s ease-out login-modal-fade;display:flex;position:fixed;inset:0}@keyframes login-modal-fade{0%{opacity:0}to{opacity:1}}.login-modal{background:var(--surface);width:100%;max-width:320px;position:relative}.login-modal-close{background:var(--surface-raised);width:26px;height:26px;color:var(--text-muted);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:10px;right:10px}.login-modal-hint{color:var(--brand);justify-content:center;align-items:center;gap:6px;margin:-4px 0 12px;font-size:.82rem;font-weight:600;display:flex}.login-logo{width:84px;height:auto;margin:0 auto 12px;display:block}.login-form{text-align:left;gap:9px;display:grid}.login-field{align-items:center;display:flex;position:relative}.login-field .icon{color:var(--text-muted);pointer-events:none;position:absolute;left:14px}.login-field input{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-raised);width:100%;color:var(--text);padding:9px 14px 9px 40px;font-family:inherit;font-size:.95rem;transition:border-color .15s,box-shadow .15s,background .15s}.login-field input::placeholder{color:var(--text-muted)}.login-field input:focus{border-color:var(--brand);background:var(--surface);outline:none;box-shadow:0 0 0 3px #3f57442e}.login-error{color:var(--danger);margin:0;font-size:.85rem}.login-card .cta-button{margin:2px 0 0;padding:11px}.login-card .cta-button:disabled{opacity:.7;cursor:not-allowed}button{font-family:inherit}.app-shell{flex-direction:column;min-height:100vh;padding-bottom:64px;display:flex;overflow-x:clip}.page{--page-pad-top:20px;padding:var(--page-pad-top) 16px 16px;flex:1;width:100%;max-width:640px;margin:0 auto}.page>:first-child{--shell-w:100vw;margin-top:calc(-1 * var(--page-pad-top));margin-left:calc(50% - var(--shell-w) / 2);margin-right:calc(50% - var(--shell-w) / 2);padding-left:calc(var(--shell-w) / 2 - 50% + var(--bar-pad,18px));padding-right:calc(var(--shell-w) / 2 - 50% + var(--bar-pad,18px));border-top:0;border-left:0;border-right:0;border-radius:0}.page-header{--bar-pad:16px}.segmented{--bar-pad:3px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:16px}.firebase-emulator-warning{box-sizing:border-box!important;background:var(--surface)!important;-webkit-backdrop-filter:blur(16px)!important;backdrop-filter:blur(16px)!important;border:1px solid var(--border)!important;border-radius:var(--radius-lg)!important;width:auto!important;max-width:640px!important;box-shadow:var(--shadow-card)!important;color:#b50000!important;font:inherit!important;margin:0 auto!important;padding:10px 16px!important;font-size:.8rem!important;font-weight:600!important;position:fixed!important;bottom:12px!important;left:16px!important;right:16px!important}.eyebrow{color:var(--text);align-items:center;gap:6px;font-size:.75rem;font-weight:700;display:inline-flex}.stat-tile{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-md);text-align:center;padding:12px 16px}.stat-tile .value{font-size:1.5rem;font-weight:700}.stat-tile .label{color:var(--text-muted);font-size:.75rem}.loading-state,.empty-state{text-align:center;color:var(--text-muted);padding:32px 16px}.sidebar-brand{display:none}.bottom-nav{z-index:5;background:var(--nav-surface);border-top:1px solid var(--border);justify-content:space-around;padding:8px 0;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav a{color:var(--text-muted);flex-direction:column;align-items:center;gap:2px;font-size:.75rem;text-decoration:none;display:flex}.bottom-nav a.active{color:var(--brand);font-weight:600}.bottom-nav-icon{font-size:1.15rem}.theme-toggle{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);cursor:pointer;background:0 0;align-items:center;gap:6px;padding:6px 10px;display:inline-flex}.badge{background:var(--brand);color:#fff;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:.75rem;font-weight:600;display:inline-flex}.age-badge{background:var(--accent-tint);color:var(--text)}.hero{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 14px;margin:0 0 16px;padding:14px 18px;display:flex}.hero-id{flex:auto;min-width:0}.hero-stats{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.stat-chip{background:var(--surface-raised);border:1px solid var(--border);color:var(--text-muted);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:4px 10px;font-size:.74rem;display:inline-flex}.stat-chip strong{color:var(--brand);font-size:.84rem}.stat-chip-birthday{border-color:var(--danger);color:var(--text)}.hero-ticker{white-space:nowrap;flex-basis:100%;overflow:hidden}.hero-ticker .ticker-track{font-size:.72rem}@media (width<=760px){.hero-stats{scrollbar-width:none;flex-wrap:nowrap;flex-basis:100%;order:3;overflow-x:auto}.hero-stats::-webkit-scrollbar{display:none}.hero-ticker{order:4}}.home-fab{z-index:3;background:var(--brand);color:#fff;border-radius:999px;align-items:center;gap:8px;padding:12px 20px;font-size:.92rem;font-weight:700;text-decoration:none;display:inline-flex;position:fixed;bottom:84px;right:18px;box-shadow:0 6px 18px #141e1447}.scene-pin-dot{z-index:2;background:var(--brand);pointer-events:none;border:2px solid #fff;border-radius:50%;width:12px;height:12px;margin:-6px 0 0 -6px;position:fixed;box-shadow:0 0 0 4px #3f574447}.scene-pin-stem{z-index:2;pointer-events:none;background:#ffffffd9;width:2px;margin-left:-1px;position:fixed;box-shadow:0 0 2px #00000059}.scene-pin-card{z-index:2;background:var(--surface);-webkit-backdrop-filter:blur(14px);border:1px solid var(--border);box-shadow:var(--shadow-card);color:var(--text);text-align:left;white-space:nowrap;font:inherit;cursor:pointer;border-radius:12px;align-items:center;gap:8px;padding:6px 12px 6px 6px;text-decoration:none;transition:transform .12s,box-shadow .12s;display:flex;position:fixed}.scene-pin-card:hover,.scene-pin-card:focus-visible{transform:translateY(-1px);box-shadow:0 4px 14px #2b332938}.scene-pin-icon{background:var(--accent-tint);width:26px;height:26px;color:var(--brand);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.scene-pin-text{flex-direction:column;line-height:1.2;display:flex}.scene-pin-title{font-size:.8rem;font-weight:700}.scene-pin-sub{color:var(--text-muted);font-size:.68rem}.scene-pins.compact .scene-pin-sub{display:none}.scene-pins.compact .scene-pin-card{padding:4px 10px 4px 4px}.hero-greeting{color:var(--text-muted);font-size:.8rem}.hero-name{margin-top:1px;font-size:1.3rem;font-weight:700}.hero-avatar{background:var(--accent-tint);border:1.5px solid var(--border);width:40px;height:40px;color:var(--text);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.hero-band{background:var(--accent-tint);color:var(--text);border-radius:999px;align-items:center;gap:6px;margin-top:6px;padding:3px 10px;font-size:.76rem;font-weight:600;display:inline-flex}.hero-band .dot{background:currentColor;border-radius:50%;width:8px;height:8px}.ticker{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);white-space:nowrap;margin:0 0 16px;padding:8px 14px;overflow:hidden}.ticker-track{color:var(--text-muted);align-items:center;gap:6px;padding-left:100%;font-size:.78rem;animation:45s linear infinite ticker-scroll;display:flex}@keyframes ticker-scroll{0%{transform:translate(0)}to{transform:translate(-100%)}}.banner{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--danger);color:var(--text);border-radius:var(--radius-lg);margin:16px 0;padding:14px 16px}.banner.birthday{align-items:center;gap:12px;display:flex}.banner-avatar{background:var(--accent-tint);width:40px;height:40px;color:var(--text);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.banner.birthday .banner-title,.banner.birthday .banner-subtitle{margin:0}.banner-eyebrow{font-size:.75rem;font-weight:700}.banner-title{color:var(--text);align-items:center;gap:6px;margin:2px 0;font-size:1.05rem;font-weight:700;display:flex}.banner-subtitle{color:var(--text-muted);font-size:.82rem}.streak-days{justify-content:space-between;margin-top:14px;display:flex}.streak-day{color:var(--text-muted);flex-direction:column;align-items:center;gap:4px;font-size:.7rem;font-weight:700;display:flex}.streak-day .circle{background:var(--surface-raised);width:28px;height:28px;color:var(--text);border-radius:50%;justify-content:center;align-items:center;display:flex}.streak-day.today .circle{border:2px solid var(--brand)}.streak-day.done .circle{background:var(--brand);color:#fff}.leaderboard-header{justify-content:space-between;align-items:baseline;margin-bottom:12px;display:flex}.leaderboard-row{grid-template-columns:22px 8px 1fr auto;align-items:center;gap:8px;margin-bottom:10px;font-size:.9rem;display:grid}.leaderboard-band{align-items:center;gap:4px;display:inline-flex}.leaderboard-row.is-mine .leaderboard-band{font-weight:700}.mine-star{color:#c9a227}.leaderboard-rank{text-align:center;color:var(--text-muted);font-size:.85rem}.leaderboard-rank.medal{color:#fff;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:.68rem;font-weight:700;display:flex}.leaderboard-rank.medal-1{background:#c9a227}.leaderboard-rank.medal-2{background:#9aa08f}.leaderboard-rank.medal-3{background:#b0784a}.leaderboard-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.leaderboard-points{font-weight:700}.leaderboard-bar-track{background:var(--border);border-radius:999px;grid-column:1/-1;height:6px;margin-top:-4px;margin-bottom:4px;overflow:hidden}.leaderboard-bar-fill{border-radius:999px;height:100%}.leaderboard-meta{color:var(--text-muted);align-items:center;gap:2px;font-size:.8rem;text-decoration:none;display:inline-flex}.points-row{align-items:center;gap:16px;padding:16px 0;display:flex}.points-col{border-left:1px solid var(--border);flex:1;padding-left:16px}.points-col:first-child{border-left:none;padding-left:0}.points-col .value{color:var(--brand);font-size:1.9rem;font-weight:800;line-height:1.1}.points-col .label{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);font-size:.72rem}.points-col .sublabel{color:var(--text-muted);margin-top:2px;font-size:.7rem}.rank-tiles{grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0;display:grid}.rank-tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);text-align:center;padding:14px 8px}.rank-tile .icon{color:var(--brand);justify-content:center;display:flex}.rank-tile .ordinal{margin-top:2px;font-size:1.15rem;font-weight:700}.rank-tile .label{color:var(--text-muted);font-size:.7rem}.stats-card .points-row{padding:4px 0 16px}.stats-card .empty-state{text-align:left;padding:0 0 4px}.launcher-grid{grid-template-columns:repeat(2,1fr);gap:10px;margin:16px 0;display:grid}.launcher-tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);min-width:0;box-shadow:var(--shadow-card);text-align:center;color:var(--text);flex-direction:column;align-items:center;padding:16px 10px;text-decoration:none;display:flex}.launcher-tile-icon{border-radius:var(--radius-md);background:var(--accent-tint);width:38px;height:38px;color:var(--brand);flex-shrink:0;justify-content:center;align-items:center;display:flex}.launcher-tile-title{margin-top:8px;font-size:.86rem;font-weight:700}.launcher-tile-subtitle{color:var(--text-muted);margin-top:3px;font-size:.72rem}.cta-button{background:var(--brand);color:#fff;border-radius:var(--radius-md);text-align:center;cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;width:100%;margin:16px 0;padding:14px;font-size:1rem;font-weight:700;text-decoration:none;display:flex}.list-row{align-items:center;gap:12px;padding:12px 0;display:flex}.list-row .icon{border-radius:var(--radius-sm);background:var(--surface-raised);width:36px;height:36px;color:var(--brand);flex-shrink:0;justify-content:center;align-items:center;display:flex}.list-row .title{font-size:.9rem;font-weight:600}.list-row .subtitle{color:var(--text-muted);font-size:.75rem}.page>.card,.notice-board{z-index:2;position:relative}.notice-board{border-radius:var(--radius-lg);box-shadow:var(--shadow-card);margin-bottom:16px}.notice-board-reveal{grid-template-rows:0fr;transition:grid-template-rows .35s;display:grid}.notice-board.is-open .notice-board-reveal{grid-template-rows:1fr}.notice-board-content{min-height:0;overflow:hidden}.notice-board.is-open .notice-board-content{padding-top:14px}.notice-board-close-row{justify-content:flex-end;margin-bottom:8px;display:flex}.notice-board-close{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:999px;padding:6px 14px;font-size:.85rem;font-weight:600}.segmented{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-md);gap:3px;margin-bottom:16px;padding:3px;display:flex}.segmented-option{color:var(--text-muted);border-radius:calc(var(--radius-md) - 3px);cursor:pointer;background:0 0;border:none;flex:1;padding:8px 0;font-size:.85rem;font-weight:600}.segmented-option.active{background:var(--surface);color:var(--brand);box-shadow:var(--shadow-sm)}.feed-card{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--brand);border-radius:var(--radius-md);margin-bottom:12px;padding:14px}.feed-card-header{align-items:center;gap:10px;display:flex}.feed-avatar{background:var(--accent-tint);width:36px;height:36px;color:var(--text);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.8rem;font-weight:700;display:flex}.feed-card-heading{flex-direction:column;flex:1;min-width:0;display:flex}.feed-name{font-size:.92rem;font-weight:700}.feed-date{color:var(--text-muted);font-size:.72rem}.feed-points{flex-shrink:0}.feed-activity{align-items:center;gap:8px;margin-top:10px;font-size:.88rem;display:flex}.feed-activity-icon{color:var(--brand);display:flex}.feed-photo{border:5px solid #fdfcf8;border-bottom-width:18px;border-radius:2px;max-width:78%;margin:14px auto 6px;display:block;box-shadow:0 3px 8px #2b332938}.feed-grid>.feed-card:nth-child(odd) .feed-photo{transform:rotate(-1.4deg)}.feed-grid>.feed-card:nth-child(2n) .feed-photo{transform:rotate(1.2deg)}.feed-caption{color:var(--text-muted);margin:10px 0 0;font-size:.88rem}.feed-reactions{border-top:1px solid var(--border);color:var(--text-muted);gap:12px;margin-top:10px;padding-top:10px;font-size:.82rem;display:flex}.feed-reaction{align-items:center;gap:3px;display:inline-flex}.reports-hero{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);margin:0 0 16px;padding:20px 18px}.reports-hero-label{color:var(--text-muted);font-size:.875rem;font-weight:600}.reports-range-select{background:var(--surface-raised);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-sm);margin-top:10px;padding:6px 10px;font-size:.82rem;font-weight:600}.reports-range-select option{color:var(--text)}.reports-hero-value{margin-top:14px;font-size:2.4rem;font-weight:800;line-height:1}.reports-hero-sublabel{color:var(--text-muted);margin-top:4px;font-size:.8rem}.report-row{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:10px 0;font-size:.9rem;display:flex}.report-row:last-child{border-bottom:none}.report-row-icon{color:var(--brand);display:flex}.report-row-label{text-transform:capitalize;flex:1}.report-row-points{color:var(--brand);font-weight:700}.text-muted{color:var(--text-muted);text-transform:none}.profile-hero{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);text-align:center;margin:0 0 16px;padding:24px 18px 22px}.profile-avatar{background:var(--accent-tint);width:64px;height:64px;color:var(--text);border:1.5px solid var(--border);border-radius:50%;justify-content:center;align-items:center;margin:0 auto;font-size:1.3rem;font-weight:700;display:flex}.profile-name{margin-top:10px;font-size:1.25rem;font-weight:700}.profile-row{border-bottom:1px solid var(--border);justify-content:space-between;padding:8px 0;font-size:.9rem;display:flex}.profile-row:last-child{border-bottom:none}.list-row-button{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);cursor:not-allowed;text-align:left;width:100%;color:var(--text);align-items:center;gap:12px;margin-top:12px;padding:12px 14px;display:flex}.list-row-button .icon{color:var(--text-muted);display:flex}.list-row-button .title{font-size:.9rem;font-weight:600}.list-row-button .subtitle{color:var(--text-muted);font-size:.75rem}.profile-footer{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);justify-content:space-between;align-items:center;margin-top:16px;padding:10px 12px;display:flex}.signout-button{border:1px solid var(--danger);color:var(--danger);border-radius:var(--radius-sm);cursor:pointer;background:0 0;align-items:center;gap:6px;padding:8px 14px;font-weight:600;display:inline-flex}.admin-action{text-align:center;border-radius:var(--radius-md);color:#fff;cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;width:100%;margin-bottom:10px;padding:12px;font-size:.9rem;font-weight:700;text-decoration:none;display:flex}.admin-action.moderate{background:linear-gradient(135deg, var(--danger), #8a1f2b)}.admin-action.invite{background:linear-gradient(135deg, var(--brand-light), var(--brand))}.admin-hero{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);margin:0 0 16px;padding:20px 18px 22px}.admin-hero-label{align-items:center;gap:8px;font-size:1.15rem;font-weight:700;display:flex}.admin-hero-sub{color:var(--text-muted);margin-top:4px;font-size:.8rem}.moderation-row{border-bottom:1px solid var(--border);align-items:flex-start;gap:10px;padding:10px 0;display:flex}.moderation-row:last-child{border-bottom:none}.moderation-thumb{object-fit:cover;border:3px solid #fdfcf8;border-radius:2px;flex-shrink:0;width:48px;height:48px;transform:rotate(-2.2deg);box-shadow:0 2px 5px #2b332938}.moderation-info{flex:1;min-width:0}.moderation-name{font-size:.88rem;font-weight:700}.moderation-detail{color:var(--text-muted);margin-top:2px;font-size:.78rem}.moderation-caption{color:var(--text-muted);margin-top:4px;font-size:.78rem;font-style:italic}.moderation-actions{flex-shrink:0;gap:6px;display:flex}.mod-approve,.mod-reject,.mod-edit{cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;font-weight:700;display:flex}.mod-approve:disabled,.mod-reject:disabled,.mod-edit:disabled{cursor:progress;opacity:.5}.mod-edit{background:var(--surface-raised);color:var(--text);border:1px solid var(--border)}.mod-approve{background:var(--success);color:#fff}.mod-reject{background:var(--danger);color:#fff}.invite-result{background:var(--surface-raised);border:1px dashed var(--border);border-radius:var(--radius-md);align-items:center;gap:8px;padding:12px;display:flex}.invite-code{word-break:break-all;flex:1;font-family:monospace;font-size:.85rem}.invite-copy{background:var(--brand);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;flex-shrink:0;padding:6px 12px;font-weight:600}.page-title{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);color:var(--text);margin:0 0 16px;padding:16px 18px;font-size:1.3rem;font-weight:700}.page-header{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);align-items:center;gap:10px;margin:0 0 16px;padding:14px 16px;display:flex}.page-header-back{color:var(--text-muted);flex-shrink:0;text-decoration:none;display:flex}.page-header h2{color:var(--text);margin:0;font-size:1.3rem;font-weight:700}.log-tiles{grid-template-columns:1fr 1fr;gap:12px;display:grid}.log-tiles>:last-child:nth-child(odd){grid-column:1/-1}.log-tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);text-align:center;cursor:pointer;color:var(--text);padding:18px 12px}.log-tile-focused{border-color:var(--brand);animation:1.1s ease-out 2 log-tile-focus-glow}@keyframes log-tile-focus-glow{0%{box-shadow:0 0 #3f574473}70%{box-shadow:0 0 0 10px #3f574400}to{box-shadow:var(--shadow-card)}}.log-tile-icon{color:var(--brand);justify-content:center;display:flex}.log-tile-title{margin-top:8px;font-size:.9rem;font-weight:700}.log-tile-subtitle{color:var(--text-muted);margin-top:4px;font-size:.72rem}.feed-grid,.rules-grid{display:contents}@media (width>=960px){.app-shell{padding-bottom:0;padding-left:var(--sidebar-width)}.firebase-emulator-warning{left:calc(var(--sidebar-width) + 24px)!important;max-width:900px!important;right:24px!important}.page{--page-pad-top:28px;max-width:900px;padding:var(--page-pad-top) 32px 40px}.page>:first-child{--shell-w:calc(100vw - var(--sidebar-width))}.home-fab{bottom:64px;right:28px}.page-home{max-width:720px}.bottom-nav{width:var(--sidebar-width);border-top:none;border-right:1px solid var(--border);flex-direction:column;justify-content:flex-start;align-items:stretch;gap:2px;padding:28px 14px;position:fixed;inset:0 auto 0 0}.sidebar-brand{color:var(--brand);padding:0 12px 22px;font-size:1.1rem;font-weight:800;display:block}.sidebar-brand span{color:var(--text-muted);margin-top:2px;font-size:.72rem;font-weight:500;display:block}.bottom-nav a{border-radius:var(--radius-md);flex-direction:row;justify-content:flex-start;gap:12px;padding:10px 12px;font-size:.9rem}.bottom-nav a.active{background:var(--accent-tint)}.launcher-grid{grid-template-columns:repeat(4,1fr)}.feed-grid{grid-template-columns:repeat(2,1fr);align-items:start;gap:14px;display:grid}.feed-grid .feed-card{margin-bottom:0}.log-tiles{grid-template-columns:repeat(3,1fr)}.log-tiles>:last-child:nth-child(odd){grid-column:auto}.rules-grid{grid-template-columns:repeat(2,1fr);align-items:start;gap:14px;display:grid}}.form-field{align-content:start;gap:5px;margin-bottom:12px;display:grid}.form-field:last-child{margin-bottom:0}.form-field label{color:var(--text-muted);font-size:.82rem;font-weight:600}.form-unit{font-weight:400}.form-field input,.form-field select,.form-field textarea{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-raised);width:100%;color:var(--text);box-sizing:border-box;padding:9px 12px;font-family:inherit;font-size:.95rem;transition:border-color .15s,box-shadow .15s,background .15s}.form-field textarea{resize:vertical}.form-field input,.form-field select{height:40px}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--brand);background:var(--surface);outline:none;box-shadow:0 0 0 3px #3f57442e}.form-grid{grid-template-columns:1fr 1fr;gap:4px 12px;display:grid}.timer-display{font-variant-numeric:tabular-nums;letter-spacing:.02em;margin:8px 0 18px;font-size:3rem;font-weight:800}.timer-controls{justify-content:center;align-items:center;gap:14px;display:flex}.timer-btn{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text);cursor:pointer;margin-top:8px;padding:10px 18px;font-family:inherit;font-weight:600}.timer-btn:disabled{opacity:.5;cursor:default}.timer-btn-primary{background:var(--brand);border-color:var(--brand);color:#fff;border-radius:999px;justify-content:center;align-items:center;width:56px;height:56px;margin-top:0;padding:0;display:flex}.progress-bar{background:var(--surface-raised);border:1px solid var(--border);border-radius:999px;height:8px;overflow:hidden}.progress-bar-fill{background:var(--brand);border-radius:999px;height:100%;transition:width .3s}.event-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);text-align:left;cursor:pointer;color:var(--text);padding:16px 12px;font-family:inherit}.event-card-selected{border-color:var(--brand)}.event-card-name{font-size:.95rem;font-weight:700}.event-card-points{color:var(--brand);margin-top:2px;font-size:.85rem;font-weight:700}.event-card-desc{color:var(--text-muted);margin-top:6px;font-size:.78rem}.photo-picker{border:1.5px dashed var(--border);border-radius:var(--radius-md);background:var(--surface-raised);width:100%;color:var(--text-muted);cursor:pointer;flex-direction:column;align-items:center;gap:6px;padding:32px 16px;font-family:inherit;font-size:.85rem;display:flex}.photo-preview{border-radius:var(--radius-md);border:1px solid var(--border);cursor:pointer;overflow:hidden}.photo-preview img{object-fit:cover;width:100%;max-height:320px;display:block}.scan-activities{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.scan-activity{border:1px solid var(--border);background:var(--surface-raised);color:var(--text);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:7px 12px;font-size:.85rem;font-weight:600;display:inline-flex}.scan-activity.active{background:var(--brand);border-color:var(--brand);color:#fff}.scan-preview img{object-fit:contain;background:var(--surface-raised);max-height:260px}@media (height<=560px){.scan-preview img{max-height:120px}}.scan-status{color:var(--text-muted);margin:10px 0 12px;font-size:.82rem}.scan-field-note{color:var(--text-muted);font-size:.74rem}.scan-field-note.found{color:var(--success)}.scan-checks{flex-wrap:wrap;gap:16px;font-size:.88rem;display:flex}.scan-checks label{cursor:pointer;align-items:center;gap:6px;display:inline-flex}.scan-footnote{color:var(--text-muted);text-align:center;margin:10px 0 0;font-size:.75rem}.moderation-ocr{color:var(--danger);margin-top:3px;font-size:.76rem;font-weight:600}.moderation-edit{flex-wrap:wrap;align-items:flex-end;gap:8px;margin-top:8px;display:flex}.moderation-edit label{color:var(--text-muted);gap:2px;font-size:.72rem;display:grid}.moderation-edit input,.moderation-reject input{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-raised);width:92px;color:var(--text);font:inherit;padding:6px 8px;font-size:.85rem}.moderation-hint{color:var(--text-muted);flex-basis:100%;font-size:.7rem}.moderation-reject{gap:8px;margin-top:8px;display:grid}.moderation-reject input{box-sizing:border-box;width:100%}.moderation-reasons{flex-wrap:wrap;gap:5px;display:flex}.moderation-reasons button{border:1px solid var(--border);background:var(--surface-raised);color:var(--text);font:inherit;cursor:pointer;border-radius:999px;padding:4px 9px;font-size:.74rem}.moderation-reasons button.active{border-color:var(--danger);color:var(--danger);font-weight:700}.moderation-reject-actions{justify-content:flex-end;gap:8px;display:flex}.moderation-text-btn,.moderation-confirm-reject{border-radius:var(--radius-md);font:inherit;cursor:pointer;padding:6px 12px;font-size:.82rem;font-weight:600}.moderation-text-btn{border:1px solid var(--border);color:var(--text);background:0 0}.moderation-confirm-reject{background:var(--danger);color:#fff;border:none}.moderation-confirm-reject:disabled{opacity:.5;cursor:not-allowed}.moderation-error{color:var(--danger);margin-top:6px;font-size:.78rem;font-weight:600}.moderation-done,.moderation-last{color:var(--success);margin:6px 0 0;font-size:.8rem;font-weight:600}.moderation-last{margin:0 0 8px}@media (width<=520px){.moderation-row{flex-wrap:wrap}.moderation-info{flex:calc(100% - 70px)}.moderation-actions{justify-content:flex-end;width:100%}}.log-tile{position:relative}.log-tile-badge{background:var(--danger);color:#fff;border-radius:999px;min-width:20px;height:20px;padding:0 6px;font-size:.72rem;font-weight:700;line-height:20px;position:absolute;top:8px;right:10px}.vo2-flash{color:var(--success);margin:0 0 10px;font-size:.85rem;font-weight:600}.vo2-pending{border-top:1px solid var(--border);align-items:flex-start;gap:12px;padding:10px 0;display:flex}.eyebrow+.vo2-pending{border-top:none}.vo2-pending-body{flex:1;min-width:0}.vo2-pending-title{font-size:.88rem;font-weight:700}.vo2-pending-title span{color:var(--text-muted);font-weight:400}.vo2-pending-fields{flex-wrap:wrap;gap:10px;margin-top:8px;display:flex}.vo2-pending-fields label{color:var(--text-muted);gap:2px;font-size:.72rem;display:grid}.vo2-pending-fields input{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-raised);color:var(--text);font:inherit;padding:7px 9px;font-size:.88rem}.vo2-pending-fields input[type=number]{width:90px}.vo2-pending-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:10px;display:flex}.vo2-confirm{border-radius:var(--radius-md);background:var(--brand);color:#fff;font:inherit;cursor:pointer;border:none;align-items:center;gap:6px;padding:6px 14px;font-size:.82rem;font-weight:600;display:inline-flex}.vo2-confirm:disabled{opacity:.5;cursor:not-allowed}.vo2-latest{text-align:center}.vo2-latest-value{font-size:2.6rem;font-weight:800;line-height:1.1}.vo2-latest-value span{color:var(--text-muted);margin-left:6px;font-size:.85rem;font-weight:500}.vo2-category{background:var(--accent-tint);color:var(--text);border-radius:999px;margin-top:6px;padding:3px 12px;font-size:.8rem;font-weight:700;display:inline-block}.vo2-cat-superior,.vo2-cat-excellent{background:var(--brand);color:#fff}.vo2-cat-below-average,.vo2-cat-low{background:var(--surface-raised);border:1px solid var(--border)}.vo2-latest-note{color:var(--text-muted);margin:8px 0 0;font-size:.82rem}.vo2-latest-date{color:var(--text-muted);margin:6px 0 0;font-size:.74rem}.vo2-history-row{border-top:1px solid var(--border);grid-template-columns:1fr auto 7.5em;align-items:baseline;gap:10px;padding:7px 0;font-size:.86rem;display:grid}.eyebrow+.vo2-history-row{border-top:none}.vo2-page>.card{margin-bottom:12px}.vo2-history-date{color:var(--text-muted)}.vo2-history-value{font-weight:700}.vo2-history-range{color:var(--text-muted);font-size:.78rem;font-weight:400}.vo2-history-cat{text-align:right;color:var(--text-muted);font-size:.78rem}.whatsapp-link{margin-top:12px}.whatsapp-link-head{align-items:center;gap:10px;display:flex}.whatsapp-link-head .icon{background:var(--accent-tint);border-radius:50%;flex-shrink:0;place-items:center;width:32px;height:32px;display:grid}.whatsapp-link-text{flex:1;min-width:0;display:grid}.whatsapp-link-text .title{font-size:.9rem;font-weight:600}.whatsapp-link-text .subtitle{color:var(--text-muted);font-size:.78rem}.whatsapp-link-form{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.whatsapp-link-form input{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-raised);min-width:0;color:var(--text);font:inherit;flex:100%;padding:8px 10px}.whatsapp-link-form .moderation-text-btn{margin-left:auto}.whatsapp-link-hint{color:var(--text-muted);flex-basis:100%;font-size:.72rem}.my-scans{margin-top:12px}.my-scan-row{border-top:1px solid var(--border);padding:8px 0;font-size:.86rem}.my-scan-main{justify-content:space-between;gap:12px;display:flex}.my-scan-what{font-weight:600}.my-scan-date{color:var(--text-muted);white-space:nowrap}.my-scan-status{margin-top:2px;font-size:.8rem;display:block}.my-scan-status.waiting{color:var(--text-muted)}.my-scan-status.approved{color:var(--brand);font-weight:600}.my-scan-status.rejected{color:var(--danger)}.moderation-tribe{color:var(--text-muted);font-size:.75rem}.moderation-duplicate{color:var(--danger);border:1px solid var(--danger);border-radius:999px;margin-top:4px;padding:1px 8px;font-size:.72rem;font-weight:700;display:inline-block}.chat-event-closed{color:var(--text-muted);font-weight:600}.vo2-replace{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-raised);margin-top:10px;padding:10px 12px}.vo2-replace p{margin:0 0 8px;font-size:.9rem;font-weight:600}.vo2-replace-actions{justify-content:flex-end;align-items:center;gap:10px;display:flex}
