:root{color:#20201d;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--paper:#fffdf7;--ink-soft:#666054;--line:#ded7c7;--mint:#32b67a;--coral:#f26457;--gold:#e5a829;--shadow:0 18px 48px #2c24121f;background:#f5f2e9;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:linear-gradient(#fffcf1f5 0%,#f4f5ec 52%,#eff5f1 100%),#f5f2e9;min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}.appShell{width:min(100%,760px);min-height:100vh;margin:0 auto;padding:18px 14px 34px}.loadingShell{color:var(--ink-soft);align-content:center;place-items:center;gap:14px;display:grid}.loadingShell svg{width:42px;height:42px;color:var(--mint)}.topBar{justify-content:space-between;align-items:center;gap:16px;padding:18px 4px 14px;display:flex}.eyebrow{color:var(--ink-soft);letter-spacing:0;text-transform:uppercase;margin:0 0 4px;font-size:.78rem;font-weight:800}h1,h2,p{margin-block-start:0}h1{letter-spacing:0;margin-block-end:0;font-size:clamp(2.1rem,12vw,4.5rem);line-height:.92}h2{margin-block-end:0;font-size:1rem;line-height:1.2}.titleBadge{border:1px solid var(--line);background:var(--paper);color:#36413b;border-radius:999px;align-items:center;gap:7px;min-width:max-content;padding:9px 11px;font-size:.86rem;font-weight:800;display:inline-flex;box-shadow:0 8px 22px #322a1c12}.activePanel,.weekPanel,.finePanel,.leaderboard,.errorPanel{border:1px solid var(--line);box-shadow:var(--shadow);background:#fffdf7e0;border-radius:8px}.activePanel,.finePanel,.leaderboard,.errorPanel{padding:14px}.sectionHeading{justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:12px;display:flex}.sectionHeading span{color:var(--ink-soft);text-align:right;font-size:.78rem;font-weight:700}.userPicker{grid-template-columns:1fr;gap:8px;display:grid}.userChoice{--user-color:#176b5f;border:1px solid var(--line);color:#2b2924;background:#fff;border-radius:8px;align-items:center;gap:10px;min-height:52px;padding:9px 11px;font-weight:850;transition:border-color .16s,transform .16s,box-shadow .16s;display:flex}.userChoice:has(input:checked){border-color:var(--user-color);box-shadow:inset 0 0 0 1px var(--user-color), 0 9px 22px #0000000f;transform:translateY(-1px)}.userChoice input{opacity:0;pointer-events:none;position:absolute}.avatarMini{background:var(--user-color);color:#fff;border-radius:50%;place-items:center;width:34px;height:34px;font-size:.74rem;font-weight:950;display:grid}.errorToast{color:#77251c;text-align:left;background:#fff3f0;border:1px solid #f0b5ac;border-radius:8px;width:100%;margin-top:12px;padding:12px}.statsGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0;display:grid}.statTile{border:1px solid var(--line);background:#fff;border-radius:8px;min-height:122px;padding:11px;box-shadow:0 10px 28px #382d1814}.statIcon{color:#176b5f;background:#ebf6ed;border-radius:8px;place-items:center;width:30px;height:30px;margin-bottom:9px;display:grid}.statIcon svg{width:17px;height:17px}.statTile span,.statTile small{color:var(--ink-soft);font-size:.72rem;font-weight:800;display:block}.statTile strong{color:#1c1c19;margin:4px 0 5px;font-size:1.25rem;line-height:1;display:block}.bonusBanner{background:linear-gradient(135deg,#fff8dc,#eff9ed 58%,#fff);border:1px solid #f0cf73;border-radius:8px;align-items:center;gap:14px;margin-bottom:12px;padding:14px;display:flex;box-shadow:0 12px 32px #a3791824}.bonusBanner svg{color:var(--gold);flex:none}.bonusBanner p{color:var(--ink-soft);margin:3px 0 0}.weekPanel{padding:12px}.weekControls{text-align:center;grid-template-columns:44px 1fr 44px;align-items:center;gap:8px;display:grid}.weekControls p{color:var(--ink-soft);margin:4px 0 0;font-size:.86rem;font-weight:750}.iconButton,.todayButton{border:1px solid var(--line);color:#25231f;background:#fff;border-radius:8px;font-weight:850}.iconButton{place-items:center;width:44px;height:44px;display:grid}.iconButton:disabled{opacity:.35}.todayButton{width:100%;min-height:42px;margin:10px 0 12px}.daysList{gap:9px;display:grid}.dayCard{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-columns:minmax(78px,.8fr) minmax(0,2fr);align-items:center;gap:8px;min-height:100px;padding:11px;display:grid}.dayCard.today{border-color:#2f9f73;box-shadow:inset 0 0 0 1px #2f9f73}.dayMeta span,.dayMeta strong{display:block}.dayMeta span{color:var(--ink-soft);font-size:.78rem;font-weight:850}.dayMeta strong{margin-top:5px;font-size:1rem}.avatarRow{--avatar-size:54px;grid-template-columns:repeat(3, minmax(var(--avatar-size), 1fr));gap:8px;display:grid}.avatarStack{grid-template-rows:var(--avatar-size) 24px;justify-items:center;gap:4px;min-width:0;display:grid}.avatarButton{--user-color:#176b5f;width:var(--avatar-size);height:var(--avatar-size);border:2px solid color-mix(in srgb, var(--user-color), white 58%);color:var(--user-color);background:#fff;border-radius:50%;place-items:center;transition:transform .16s,background .16s,color .16s,border-color .16s;display:grid;position:relative;overflow:hidden}.avatarButton.activeUser{box-shadow:0 0 0 3px #f264572e}.avatarButton.locked{cursor:default;filter:saturate(.72)}.avatarButton.locked:not(.checked){color:color-mix(in srgb, var(--user-color), #777 34%);background:#fbfaf5}.avatarButton.checked{border-color:var(--mint);background:var(--mint);color:#fff}.avatarButton.pendingPop{animation:.52s both softPop}.avatarInitials{font-size:.86rem;font-weight:950}.checkMark{width:22px;height:22px;color:var(--mint);opacity:0;background:#fff;border-radius:50%;place-items:center;transition:opacity .15s,transform .18s;display:grid;position:absolute;inset:auto 5px 5px auto;transform:translateY(6px)scale(.72)}.avatarButton.checked .checkMark{opacity:1;transform:translateY(0)scale(1)}.avatarLabel{height:24px;color:var(--ink-soft);align-items:center;font-size:.7rem;font-weight:900;line-height:1;display:inline-flex}.undoButton{color:#fff;white-space:nowrap;background:#2b2924;border:0;border-radius:999px;justify-content:center;align-items:center;gap:4px;width:min(62px,100%);height:24px;padding:0 8px;font-size:.7rem;font-weight:900;line-height:1;display:inline-flex}.finePanel,.leaderboard{margin-top:12px}.emptyState{color:#1e6b4e;background:#f5fff8;border:1px dashed #b9d8c6;border-radius:8px;align-items:center;gap:10px;min-height:56px;padding:12px;font-weight:800;display:flex}.emptyState p{margin:0}.fineList,.leaderRows{gap:9px;display:grid}.fineCard,.leaderRow{border:1px solid var(--line);background:#fff;border-radius:8px;gap:10px;padding:12px;display:grid}.fineCard p,.fineCard small,.paidNote{color:var(--ink-soft)}.fineCard p{margin:4px 0;font-size:.9rem;font-weight:700}.fineCard button{color:#fff;background:#20201d;border:0;border-radius:8px;min-height:40px;padding:9px 12px;font-weight:900}.fineCard button:disabled{color:#756f64;background:#e6e0d3}.paidNote{margin:10px 0 0;font-size:.82rem;font-weight:750}.leaderRow{--user-color:#176b5f;grid-template-columns:42px minmax(0,1fr);align-items:center}.rankBadge{background:var(--user-color);color:#fff;border-radius:50%;place-items:center;width:38px;height:38px;font-weight:950;display:grid}.leaderRow strong,.leaderRow span{display:block}.leaderRow span{color:var(--ink-soft);margin-top:2px;font-size:.82rem;font-weight:750}.leaderRow dl{grid-column:1/-1;grid-template-columns:repeat(2,1fr);gap:8px;margin:0;display:grid}.leaderRow dl div{background:#f7f3e9;border-radius:8px;padding:8px}.leaderRow dt,.leaderRow dd{margin:0}.leaderRow dt{color:var(--ink-soft);font-size:.72rem;font-weight:850}.leaderRow dd{margin-top:2px;font-size:1rem;font-weight:950}.footerNote{color:var(--ink-soft);text-align:center;padding:22px 6px 4px;font-size:.82rem;font-weight:720}.helperText{color:var(--ink-soft)}@keyframes softPop{0%{transform:scale(.9)}58%{transform:scale(1.08)}to{transform:scale(1)}}@media (width>=560px){.appShell{padding-inline:20px}.userPicker{grid-template-columns:repeat(3,1fr)}.dayCard{grid-template-columns:150px 1fr}.avatarRow{--avatar-size:62px}.fineCard{grid-template-columns:1fr auto;align-items:center}.leaderRow{grid-template-columns:42px minmax(0,1fr) minmax(180px,.7fr)}.leaderRow dl{grid-column:auto}}
