:root{--bg-base:#0d0f14;--bg-surface:#161a22;--bg-surface-2:#1d222d;--border:#262c39;--text-primary:#e9edf5;--text-secondary:#8a94a8;--text-muted:#5c6680;--accent:#ff6b35;--accent-soft:#ff6b3533;--up:#22d39a;--down:#ff5c7a;--gold:#ffb845;--mind:#7c5cff;--body-c:#ff5c7a;--energy:#ffb845;--will:#22d39a;color:var(--text-primary);background:var(--bg-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif}[data-theme=light]{--bg-base:#f5f6fa;--bg-surface:#fff;--bg-surface-2:#eef0f5;--border:#dde0e8;--text-primary:#1a1d26;--text-secondary:#6b7280;--text-muted:#9ca3af;--accent:#e85315;--accent-soft:#e8531522}*{box-sizing:border-box}.mono{font-variant-numeric:tabular-nums;font-family:SF Mono,JetBrains Mono,ui-monospace,monospace}button{cursor:pointer;color:inherit;background:0 0;border:none;padding:0;font-family:inherit}.app-shell{background:var(--bg-base);flex-direction:column;max-width:480px;height:100dvh;margin:0 auto;display:flex;overflow:hidden}.app-content{-webkit-overflow-scrolling:touch;flex:auto;min-height:0;overflow-y:auto}.topbar{padding:12px 16px;padding-top:max(12px, env(safe-area-inset-top));background:var(--bg-base);z-index:10;border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.topbar__logo{letter-spacing:-.02em;font-size:18px;font-weight:800}.topbar__chips{gap:6px;display:flex}.tb-chip{background:var(--bg-surface);border:1px solid var(--border);border-radius:999px;align-items:center;gap:5px;padding:5px 11px;font-size:13px;font-weight:700;display:flex}.bottomnav{padding:8px 0 max(8px, env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--bg-base);flex-shrink:0;justify-content:space-around;display:flex}.bottomnav__item{color:var(--text-secondary);flex-direction:column;align-items:center;gap:2px;padding:6px 12px;font-size:10px;display:flex}.bottomnav__item.is-active{color:var(--accent)}.bottomnav__icon{font-size:20px}.content{padding:16px 16px 32px}.section-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:6px;margin:20px 0 10px;font-size:13px;font-weight:600;display:flex}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:16px;margin-bottom:12px;padding:14px}.btn{background:var(--accent);color:#fff;border-radius:12px;width:100%;padding:14px;font-size:15px;font-weight:700;transition:opacity .15s}.btn:active{opacity:.8}.btn:disabled{opacity:.4}.btn--ghost{background:var(--bg-surface-2);color:var(--text-primary)}.btn--danger{color:var(--down);border:1px solid var(--down);background:0 0}.btn--small{border-radius:10px;width:auto;padding:8px 14px;font-size:13px}.track{background:var(--bg-surface-2);border-radius:999px;height:8px;overflow:hidden}.track__fill{background:linear-gradient(90deg, var(--accent), var(--gold));border-radius:999px;height:100%;transition:width .4s}.today-head{flex-direction:column;gap:4px;margin-bottom:14px;display:flex}.today-head__date{color:var(--text-secondary);text-transform:capitalize;font-size:13px}.today-head__hello{letter-spacing:-.02em;font-size:22px;font-weight:800}.today-progress{align-items:center;gap:10px;margin-bottom:16px;display:flex}.today-progress__num{white-space:nowrap;font-size:14px;font-weight:700}.today-progress .track{flex:1}.banner{background:var(--accent-soft);border:1px solid var(--accent);border-radius:14px;align-items:center;gap:10px;margin-bottom:14px;padding:12px 14px;font-size:14px;font-weight:700;display:flex}.habit-row{background:var(--bg-surface);border:1px solid var(--border);border-radius:16px;align-items:center;gap:12px;margin-bottom:10px;padding:12px 14px;transition:opacity .2s;display:flex}.habit-row.is-done{opacity:.55}.habit-row__icon{background:var(--bg-surface-2);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:26px;display:flex}.habit-row__body{flex:1;min-width:0}.habit-row__name{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:700;overflow:hidden}.habit-row__meta{flex-wrap:wrap;gap:4px;margin-top:5px;display:flex}.chip{background:var(--bg-surface-2);color:var(--text-secondary);border-radius:999px;padding:3px 8px;font-size:11px;font-weight:600}.chip--fire{color:var(--accent);background:#ff6b3522}.chip--ice{color:#6db4ff;background:#4da3ff22}.chip--done{color:var(--up);background:#22d39a22}.check-btn{border:2px solid var(--border);background:var(--bg-surface-2);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:46px;height:46px;font-size:20px;transition:all .15s;display:flex}.check-btn.is-done{border-color:var(--up);color:var(--up);background:#22d39a22}.check-btn:active{transform:scale(.92)}.check-btn.is-busy{opacity:.5}.statbar{margin-bottom:12px}.statbar__head{justify-content:space-between;align-items:center;margin-bottom:6px;font-size:13px;font-weight:600;display:flex}.statbar__track{background:var(--bg-surface-2);border-radius:999px;height:8px;overflow:hidden}.statbar__fill{border-radius:999px;height:100%;transition:width .4s}.heatmap{gap:3px;padding:2px 0;display:flex;overflow-x:auto}.heatmap__col{flex-direction:column;gap:3px;display:flex}.heatmap__cell{background:var(--bg-surface-2);border-radius:3px;width:12px;height:12px}.heatmap__cell.l1{background:#ff6b3544}.heatmap__cell.l2{background:#ff6b3588}.heatmap__cell.l3{background:var(--accent)}.field{margin-bottom:12px}.field__label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;font-size:12px;font-weight:600;display:block}.input,.select{border:1px solid var(--border);background:var(--bg-surface);width:100%;color:var(--text-primary);border-radius:12px;padding:12px 14px;font-family:inherit;font-size:15px}.input:focus,.select:focus{border-color:var(--accent);outline:none}.segmented{gap:6px;display:flex}.segmented__btn{background:var(--bg-surface-2);color:var(--text-secondary);border:1px solid #0000;border-radius:10px;flex:1;padding:10px 8px;font-size:13px;font-weight:600}.segmented__btn.is-active{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.chips-grid{flex-wrap:wrap;gap:8px;display:flex}.chip-btn{background:var(--bg-surface);border:1px solid var(--border);border-radius:999px;align-items:center;gap:6px;padding:10px 14px;font-size:14px;font-weight:600;display:flex}.chip-btn.is-active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.chip-btn__sub{color:var(--text-secondary);font-size:11px;font-weight:500}.reward-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:16px;align-items:center;gap:12px;margin-bottom:10px;padding:14px;display:flex}.reward-card__emoji{font-size:28px}.reward-card__body{flex:1;min-width:0}.reward-card__title{font-size:15px;font-weight:700}.reward-card__cost{color:var(--gold);margin-top:2px;font-size:13px;font-weight:700}.balance-hero{text-align:center;border:1px solid var(--gold);background:linear-gradient(135deg,#ffb84522,#ff6b3522);border-radius:16px;margin-bottom:16px;padding:18px}.balance-hero__num{font-size:34px;font-weight:800}.balance-hero__label{color:var(--text-secondary);font-size:13px}.ach-grid{flex-wrap:wrap;gap:8px;display:flex}.ach-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:14px;align-items:flex-start;gap:10px;width:calc(50% - 4px);padding:10px 12px;display:flex}.ach-card.is-locked{opacity:.45}.ach-card__icon{font-size:22px}.ach-card__title{font-size:13px;font-weight:700}.ach-card__desc{color:var(--text-secondary);margin-top:2px;font-size:11px}.lb-row{background:var(--bg-surface);border:1px solid var(--border);border-radius:12px;align-items:center;gap:10px;margin-bottom:6px;padding:10px 12px;display:flex}.lb-row__pos{width:26px;color:var(--text-secondary);font-weight:800}.lb-row__pos.is-top{color:var(--gold)}.lb-row__body{flex:1;min-width:0}.lb-row__name{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:700;overflow:hidden}.lb-row__sub{color:var(--text-secondary);font-size:11px}.lb-row__xp{color:var(--accent);font-size:14px;font-weight:800}.overlay{z-index:100;background:var(--bg-base);flex-direction:column;max-width:480px;margin:0 auto;display:flex;position:fixed;inset:0}.overlay__head{padding:14px 16px;padding-top:max(14px, env(safe-area-inset-top));border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;font-size:17px;font-weight:800;display:flex}.overlay__body{flex:1;padding:16px 16px 40px;overflow-y:auto}.celebration{z-index:200;background:#080a0ee6;justify-content:center;align-items:center;animation:.25s rankupFade;display:flex;position:fixed;inset:0}.celebration__box{text-align:center;padding:40px;animation:.4s cubic-bezier(.34,1.56,.64,1) rankupPop;position:relative}.celebration__icon{font-size:64px}.celebration__level{margin-top:8px;font-size:52px;font-weight:800}.celebration__title{color:var(--gold);margin-top:4px;font-size:20px;font-weight:700}.celebration__hint{color:var(--text-secondary);margin-top:20px;font-size:13px}.toasts{z-index:150;pointer-events:none;flex-direction:column;gap:8px;width:min(440px,100% - 32px);display:flex;position:fixed;bottom:90px;left:50%;transform:translate(-50%)}.toast{background:var(--bg-surface);border:1px solid var(--gold);border-radius:14px;align-items:center;gap:10px;padding:12px 14px;font-size:14px;font-weight:600;animation:.25s rankupFade;display:flex;box-shadow:0 8px 30px #0006}.toast__icon{font-size:22px}.toast__sub{color:var(--text-secondary);font-size:12px;font-weight:500}@keyframes rankupFade{0%{opacity:0}to{opacity:1}}@keyframes rankupPop{0%{opacity:0;transform:scale(.2)}60%{opacity:1;transform:scale(1.2)}to{transform:scale(1)}}@keyframes confettiFall{0%{opacity:1;transform:translateY(-20px)rotate(0)}to{opacity:0;transform:translateY(110vh)rotate(720deg)}}.rankup-confetti{pointer-events:none;position:absolute;inset:0;overflow:hidden}.rankup-confetti span{border-radius:2px;width:8px;height:14px;animation:2.4s linear infinite confettiFall;position:absolute;top:-20px}.profile-head{align-items:center;gap:14px;margin-bottom:16px;display:flex}.profile-head__avatar{background:var(--bg-surface-2);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:60px;height:60px;font-size:28px;display:flex;overflow:hidden}.profile-head__avatar img{object-fit:cover;width:100%;height:100%}.profile-head__name{font-size:19px;font-weight:800}.profile-head__sub{color:var(--text-secondary);margin-top:2px;font-size:13px}.totals-row{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.center{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:60vh;padding:32px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.muted{color:var(--text-secondary);font-size:14px}.row{align-items:center;gap:10px;display:flex}.row--between{justify-content:space-between}.gap-8{gap:8px}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mb-8{margin-bottom:8px}
