:root{--bg:#07060d;--surface:#ffffff0b;--surface-2:#ffffff13;--surface-solid:#12101c;--border:#ffffff17;--border-strong:#ffffff29;--text:#f4f2ff;--text-dim:#9b97b9;--accent:#8b5cf6;--accent-2:#22d3ee;--accent-3:#f472b6;--accent-dim:#6d28d9;--accent-grad:linear-gradient(135deg, #a78bfa 0%, #7c3aed 55%, #5b21b6 100%);--glow:0 6px 18px -8px #8b5cf699;--danger:#fb5568;--success:#34e2a0;--warning:#fbbf5c;--radius:22px;--radius-sm:14px;--blur:saturate(160%) blur(18px);--aur-1:#7c3aed8c;--aur-2:#22d3ee38;--aur-3:#f472b647;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-daypart=morning]{--aur-1:#a855f780;--aur-2:#fb923c47;--aur-3:#f472b657}:root[data-daypart=day]{--aur-1:#7c3aed80;--aur-2:#22d3ee4d;--aur-3:#6366f14d}:root[data-daypart=evening]{--aur-1:#8b5cf68c;--aur-2:#ec48994d;--aur-3:#fb718538}:root[data-daypart=night]{--aur-1:#5b21b68c;--aur-2:#1e40af59;--aur-3:#22d3ee24}:root[data-theme=light]{--bg:#f4f2fb;--surface:#ffffff9e;--surface-2:#ffffffd9;--surface-solid:#fff;--border:#28145a1a;--border-strong:#28145a2e;--text:#16151f;--text-dim:#6b6b85;--accent:#7c3aed;--accent-2:#0891b2;--accent-3:#db2777;--accent-dim:#5b21b6;--glow:0 0 0 1px #7c3aed40, 0 8px 22px -8px #7c3aed80;--danger:#dc2626;--success:#0d9165;--warning:#c2680a;--aur-1:#a78bfa73;--aur-2:#67e8f959;--aur-3:#f9a8d466;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{background:var(--bg)}html,body{color:var(--text);-webkit-tap-highlight-color:transparent;letter-spacing:-.01em;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}#root{min-height:100dvh;padding-bottom:env(safe-area-inset-bottom)}button{cursor:pointer;font-family:inherit}input,textarea,select{background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-sm);padding:11px 13px;font-family:inherit;font-size:16px}input:focus,textarea:focus,select:focus{border-color:var(--accent);outline:none}a{color:var(--accent)}.app-shell{max-width:480px;min-height:100dvh;padding:calc(16px + env(safe-area-inset-top)) 16px calc(90px + env(safe-area-inset-bottom));flex-direction:column;margin:0 auto;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.btn{background:var(--accent);color:#fff;border-radius:var(--radius-sm);border:none;padding:13px 16px;font-size:15px;font-weight:600;transition:background .12s}.btn:active{background:var(--accent-dim)}.btn-secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:13px 16px;font-size:15px}.btn-secondary:active{background:var(--border)}.btn-danger{color:var(--danger);border:1px solid var(--danger);border-radius:var(--radius-sm);background:0 0;padding:10px 14px}.btn-block{width:100%}.tabbar{padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--border);justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar-inner{width:100%;max-width:480px;display:flex}.tabbar-link{text-align:center;color:var(--text-dim);flex-direction:column;flex:1;align-items:center;gap:3px;padding:10px 0 8px;font-size:11px;text-decoration:none;display:flex}.tabbar-link.active{color:var(--accent)}.tabbar-icon{width:22px;height:22px}.page-title{letter-spacing:-.02em;margin:4px 0 16px;font-size:26px;font-weight:750}.muted{color:var(--text-dim);font-size:13px}.field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.field label{color:var(--text-dim);font-size:13px}.error-text{color:var(--danger);font-size:13px}.modal-overlay{z-index:50;background:#0009;align-items:flex-end;display:flex;position:fixed;inset:0}.modal-sheet{background:var(--surface);border-radius:var(--radius) var(--radius) 0 0;padding:20px 16px calc(24px + env(safe-area-inset-bottom));border-top:1px solid var(--border);width:100%;max-height:90vh;overflow-y:auto}.chip-row{flex-wrap:wrap;gap:8px;display:flex}.chip{border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);color:var(--text-dim);padding:8px 13px;font-size:13px}.chip.active{background:var(--accent);color:#fff;border-color:var(--accent)}.hero{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);margin-bottom:16px;padding:16px}.xp-bar-track{border-radius:var(--radius-sm);background:var(--surface-2);width:100%;height:6px;overflow:hidden}.xp-bar-fill{background:var(--accent);height:100%;transition:width .5s}.badge{border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);color:var(--text-dim);align-items:center;gap:5px;padding:6px 11px;font-size:12px;display:inline-flex}.badge.earned{background:var(--accent);color:#fff;border-color:var(--accent)}.progress-ring-label{font-size:22px;font-weight:750}@keyframes confetti-fall{0%{opacity:1;transform:translateY(-10px)rotate(0)}to{opacity:0;transform:translateY(110vh)rotate(540deg)}}.confetti-piece{z-index:200;pointer-events:none;animation:linear forwards confetti-fall;position:fixed;top:-10px}body:before{content:"";pointer-events:none;z-index:-1;background:radial-gradient(38% 32% at 18% 12%, var(--aur-1), transparent 70%), radial-gradient(34% 30% at 88% 28%, var(--aur-2), transparent 70%), radial-gradient(40% 34% at 40% 96%, var(--aur-3), transparent 70%);filter:blur(40px);opacity:.7;animation:40s ease-in-out infinite alternate aurora-drift;position:fixed;inset:-25%}@keyframes aurora-drift{0%{transform:translate(0,0)rotate(0)scale(1)}50%{transform:translate(4%,3%)rotate(8deg)scale(1.08)}to{transform:translate(-3%,5%)rotate(-6deg)scale(1.02)}}@media (prefers-reduced-motion:reduce){body:before{animation:none}}.card,.hero,.glass{background:var(--surface);border:1px solid var(--border);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:inset 0 1px #ffffff0f}.btn{background:var(--accent-grad);box-shadow:var(--glow);border-radius:var(--radius-sm)}.btn:active{background:var(--accent-dim);transform:scale(.98)}.btn-secondary,.chip{-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur)}.chip{border-radius:999px;padding:7px 14px}.chip.active{background:var(--accent);border-color:#0000}.modal-sheet{background:var(--surface-solid);border:1px solid var(--border-strong);border-bottom:none;border-radius:28px 28px 0 0}.modal-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.xp-bar-track{background:#ffffff14;border-radius:999px;height:8px}.xp-bar-fill{background:linear-gradient(90deg, var(--accent-2), var(--accent) 60%, var(--accent-3));border-radius:999px;position:relative}.app-header{align-items:center;gap:12px;margin-bottom:14px;display:flex}.app-header-avatar{border:1px solid var(--border-strong);border-radius:18px;flex-shrink:0;place-items:center;width:52px;height:52px;display:grid;position:relative}.app-header-avatar svg{width:34px;height:34px}.app-header-title{letter-spacing:-.02em;font-size:21px;font-weight:750;line-height:1.15}.icon-btn{width:44px;height:44px;color:var(--text);background:var(--surface);border:1px solid var(--border);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border-radius:15px;flex-shrink:0;place-items:center;display:grid}.icon-btn:active{transform:scale(.95)}.level-card{border-radius:var(--radius);align-items:center;gap:14px;margin-bottom:14px;padding:16px;display:flex;position:relative;overflow:hidden}.level-badge{background:var(--accent-grad);color:#fff;border-radius:16px;flex-shrink:0;place-items:center;width:52px;height:52px;font-size:20px;font-weight:800;display:grid}.streak-pill{background:#fb923c1a;border:1px solid #fb923c40;border-radius:16px;flex-direction:column;flex-shrink:0;align-items:center;min-width:58px;padding:8px 10px;display:flex}.streak-pill strong{color:#fdba74;align-items:center;gap:3px;font-size:19px;display:flex}.streak-pill span{color:var(--text-dim);white-space:nowrap;font-size:10px}.cal-nav{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.cal-title{letter-spacing:-.02em;text-transform:capitalize;font-size:19px;font-weight:750}.cal-grid{grid-template-columns:repeat(7,1fr);gap:5px;display:grid}.cal-weekday{text-align:center;color:var(--text-dim);padding-bottom:4px;font-size:11px}.cal-weekday.weekend{color:#a78bfa}.cal-day{aspect-ratio:1;color:var(--text);background:0 0;border:1px solid #0000;border-radius:13px;place-items:center;padding:0;font-size:14px;transition:transform .15s,background .15s;display:grid;position:relative}.cal-day:active{transform:scale(.92)}.cal-day.out{color:var(--text-dim);opacity:.45}.cal-day.heat{background:rgba(139, 92, 246, calc(var(--heat) * .22));border-color:rgba(167, 139, 250, calc(var(--heat) * .3))}.cal-day.today{font-weight:750}.cal-day.selected{background:var(--accent-grad);color:#fff;box-shadow:var(--glow);border-color:#ffffff40;font-weight:750}.cal-day.drop{border:2px dashed var(--accent)}.cal-ring{pointer-events:none;width:calc(100% - 4px);height:calc(100% - 4px);position:absolute;inset:2px}.cal-dots{justify-content:center;gap:2px;display:flex;position:absolute;bottom:5px;left:0;right:0}.cal-dots i{border-radius:50%;width:4px;height:4px}.tabbar{padding:0 14px calc(10px + env(safe-area-inset-bottom));z-index:40;pointer-events:none;background:0 0;border-top:none}.tabbar-inner{pointer-events:auto;border:1px solid var(--border-strong);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);background:#12101eb8;border-radius:26px;align-items:center;padding:6px;box-shadow:0 18px 40px -12px #000000b3,inset 0 1px #ffffff0f}:root[data-theme=light] .tabbar-inner{background:#ffffffc7;box-shadow:0 14px 34px -14px #3c1e7859}.tabbar-link{border-radius:20px;padding:8px 0 7px;font-size:10.5px;transition:color .2s;position:relative}.tabbar-link.active{color:var(--text);background:#8b5cf629}.tabbar-link.active .tabbar-icon{color:#a78bfa}.fab-slot{flex:1;place-items:center;display:grid;position:relative}.fab{background:var(--accent-grad);color:#fff;width:56px;height:56px;box-shadow:0 0 0 5px var(--bg), 0 8px 20px -8px #8b5cf6cc;border:1px solid #ffffff4d;border-radius:50%;place-items:center;margin-top:-26px;transition:transform .25s cubic-bezier(.3,1.5,.5,1);display:grid}.fab.open{transform:rotate(45deg)}.fab-backdrop{z-index:35;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#05040c8c;animation:.18s fade-in;position:fixed;inset:0}.fab-action{width:84px;color:var(--text);pointer-events:auto;transform:translate(var(--tx), var(--ty)) scale(1);animation:.32s cubic-bezier(.3,1.45,.5,1) both fab-pop;animation-delay:var(--delay);background:0 0;border:none;flex-direction:column;align-items:center;gap:6px;margin-left:-42px;font-size:12px;font-weight:600;display:flex;position:absolute;bottom:50px;left:50%}.fab-action span.fab-action-icon{background:var(--surface-solid);border:1px solid var(--border-strong);width:52px;height:52px;color:var(--tint);border-radius:18px;place-items:center;display:grid}@keyframes fab-pop{0%{opacity:0;transform:translateY(30px)scale(.4)}}@keyframes fade-in{0%{opacity:0}}.section-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.day-progress{color:var(--text-dim);align-items:center;gap:8px;font-size:12px;display:flex}.quest-card{border-color:#22d3ee38;margin-bottom:14px}.quest-card.ready{border-color:#a78bfa99}.quest-card.claimed{opacity:.7}.quest-label{letter-spacing:.06em;text-transform:uppercase;color:var(--accent-2);font-size:11px;font-weight:700}.quest-reward{color:#c4b5fd;background:#8b5cf624;border-radius:999px;flex-shrink:0;padding:6px 10px;font-size:13px;font-weight:700}.quest-reward.done{color:var(--success);background:#34e2a01f}.ach-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.ach{border:1px solid var(--border);background:var(--surface-2);color:var(--text-dim);text-align:center;opacity:.55;border-radius:16px;flex-direction:column;align-items:center;gap:6px;padding:12px 4px 10px;font-size:10.5px;line-height:1.2;display:flex}.ach svg{filter:grayscale()}.ach.earned{opacity:1;color:var(--text);background:linear-gradient(160deg,#8b5cf647,#8b5cf60f);border-color:#a78bfa73}.ach.earned svg{filter:none;color:#c4b5fd}.ach.open{outline:2px solid var(--accent)}.ach-detail{background:var(--surface-2);border-radius:14px;margin-top:12px;padding:10px 12px;font-size:13px}.skeleton{border-radius:var(--radius);background:linear-gradient(90deg, var(--surface) 25%, var(--surface-2) 50%, var(--surface) 75%);background-size:200% 100%;animation:1.3s ease-in-out infinite skeleton}@keyframes skeleton{0%{background-position:200% 0}to{background-position:-200% 0}}.tl-hour{border-top:1px solid var(--border);position:absolute;left:0;right:0}.tl-hour span{color:var(--text-dim);font-size:10.5px;position:absolute;top:-7px;left:-42px}.tl-block{background:color-mix(in srgb, var(--c) 22%, transparent);border-left:3px solid var(--c);cursor:pointer;border-radius:12px;align-items:flex-start;gap:8px;padding:7px 8px;display:flex;position:absolute;overflow:hidden}.tl-block.done{opacity:.5}.tl-block.done .tl-title{text-decoration:line-through}.tl-check{border:1.5px solid var(--c);color:#fff;background:0 0;border-radius:6px;flex-shrink:0;width:18px;height:18px;padding:0;font-size:11px;line-height:1}.tl-block.done .tl-check{background:var(--c)}.tl-title{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.tl-time{color:var(--text-dim);align-items:center;gap:3px;font-size:11px;display:flex}.tl-now{background:var(--danger);z-index:2;pointer-events:none;height:2px;position:absolute;left:-6px;right:0}.tl-now:before{content:"";background:var(--danger);border-radius:50%;width:8px;height:8px;position:absolute;top:-3px;left:0}.tl-now span{color:var(--danger);background:var(--surface-solid);padding:0 2px;font-size:10.5px;font-weight:700;position:absolute;top:-8px;left:-40px}.tl-chip{background:color-mix(in srgb, var(--c) 25%, transparent);color:var(--text);border:none;border-radius:999px;padding:5px 10px;font-size:12px}.xp-burst{z-index:300;pointer-events:none;color:#c4b5fd;text-shadow:0 2px 10px #8b5cf6cc;white-space:nowrap;font-size:18px;font-weight:800;position:fixed}.focus-overlay{z-index:120;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#07060df0;flex-direction:column;justify-content:center;align-items:center;padding:24px 16px;animation:.2s fade-in;display:flex;position:fixed;inset:0}:root[data-theme=light] .focus-overlay{background:#f4f2fbf5}.cal-collapse{background:var(--border-strong);border:none;border-radius:3px;width:40px;height:5px;margin:8px auto 0;padding:0;display:block}.segmented{background:var(--surface);border:1px solid var(--border);border-radius:14px;grid-auto-columns:1fr;grid-auto-flow:column;gap:4px;margin-bottom:8px;padding:4px;display:grid}.segmented button{color:var(--text-dim);background:0 0;border:none;border-radius:10px;padding:8px 0;font-size:13px;font-weight:600}.segmented button.active{background:var(--accent);color:#fff}.toolbar-scroll{scrollbar-width:none;gap:6px;margin-bottom:10px;display:flex;overflow-x:auto}.toolbar-scroll::-webkit-scrollbar{display:none}.toolbar-scroll .chip{white-space:nowrap;flex-shrink:0}.card>input,.card>textarea,.card>select{width:100%}.upcoming{margin-bottom:14px}.upcoming.alert{border-color:#fbbf5c59}.upcoming-row{border:none;border-top:1px solid var(--border);width:100%;color:var(--text);background:0 0;align-items:center;gap:10px;padding:8px 0;display:flex}.upcoming-row:first-of-type{border-top:none}.upcoming-icon{border-radius:10px;flex-shrink:0;place-items:center;width:32px;height:32px;display:grid}.upcoming-icon i{border-radius:50%;width:8px;height:8px}.upcoming-title{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;display:block;overflow:hidden}.upcoming-when{color:var(--text-dim);margin-top:1px;font-size:12px;display:block}.upcoming-when.hot{color:var(--warning)}.upcoming-flag{width:22px;height:22px;color:var(--warning);background:#fbbf5c24;border-radius:50%;flex-shrink:0;place-items:center;font-size:13px;font-weight:800;display:grid}.progress-strip{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text-dim);border-radius:14px;align-items:center;gap:10px;margin:0;padding:8px 12px;font-size:12px;display:flex}.progress-level{color:#fff;background:var(--accent);border-radius:8px;flex-shrink:0;place-items:center;width:24px;height:24px;font-size:12px;font-weight:800;display:grid}.progress-streak{color:#fdba74;flex-shrink:0;align-items:center;gap:2px;font-weight:700;display:inline-flex}.progress-quest{background:var(--surface-2);border-radius:999px;flex-shrink:0;padding:3px 8px}.progress-quest.ready{color:#fff;background:var(--accent)}.progress-quest.done{color:var(--success)}.drag-chip{background:var(--surface-solid);border:1px solid var(--c,var(--accent));max-width:260px;color:var(--text);cursor:grabbing;border-radius:14px;align-items:center;gap:8px;padding:10px 14px;font-size:14px;font-weight:600;display:inline-flex;transform:rotate(-2deg)scale(1.03);box-shadow:0 14px 30px -8px #000000b3}.drag-chip i{background:var(--c,var(--accent));border-radius:50%;flex-shrink:0;width:9px;height:9px}.drag-chip span:first-of-type{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.cal-day.drop{border:2px solid var(--accent);background:#8b5cf64d;transform:scale(1.08)}
