@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,400;0,500;0,600;0,700;0,800&family=Space+Grotesk:wght@500;600;700&display=swap";:root{--bg:#0b0d11;--bg-grad-top:#14181f;--surface:#15191f;--surface-2:#1c212a;--surface-3:#232934;--line:#ffffff14;--line-strong:#ffffff24;--text:#f3f5f9;--text-dim:#9aa4b3;--text-faint:#69727f;--sun:#ff6a2b;--sun-2:#ff9248;--sun-soft:#ff6a2b24;--aqua:#18e0a8;--aqua-soft:#18e0a821;--lime:#d7ff45;--grape:#8b6cff;--grape-soft:#8b6cff26;--rose:#ff5878;--rose-soft:#ff587824;--gold:#ffcb45;--grad-sun:linear-gradient(135deg, #ff7a36 0%, #ff5470 100%);--grad-aqua:linear-gradient(135deg, #19e0a8 0%, #12b6c9 100%);--grad-night:linear-gradient(180deg, #1a2030 0%, #0e1117 100%);--r-sm:12px;--r:18px;--r-lg:24px;--r-xl:30px;--r-pill:999px;--shadow-card:0 10px 30px -12px #0000008c;--shadow-pop:0 24px 60px -16px #000000b3;--shadow-glow:0 12px 30px -8px #ff6a2b80;--maxw:460px;--tabbar-h:64px;--sat:env(safe-area-inset-top,0px);--sab:env(safe-area-inset-bottom,0px);--font:"Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--font-head:"Space Grotesk", var(--font)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}html{-webkit-text-size-adjust:100%}body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;overscroll-behavior-y:none;line-height:1.45}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}ul{list-style:none}::selection{background:var(--sun);color:#1a0e06}.noscroll::-webkit-scrollbar{display:none}.noscroll{scrollbar-width:none}input,textarea,select{outline:none}input::placeholder,textarea::placeholder{color:var(--text-faint)}.adm-input{background:var(--surface-2);border:1px solid var(--line);width:100%;height:50px;color:var(--text);border-radius:14px;padding:0 14px;font-size:14.5px;font-weight:600;transition:border-color .15s}textarea.adm-input{height:auto}.adm-input:focus{border-color:var(--sun)}.adm-input::-webkit-calendar-picker-indicator{filter:invert();opacity:.6;cursor:pointer}.login-field{background:var(--surface);border:1px solid var(--line);border-radius:16px;align-items:center;gap:11px;height:54px;padding:0 16px;transition:border-color .15s;display:flex}.login-field:focus-within{border-color:var(--sun)}.login-field input{background:0 0;border:none;flex:1;width:100%;font-size:15px;font-weight:600}.splash{z-index:100;background:radial-gradient(120% 80% at 50% 35%,#1a2230 0%,#0b0d11 60%);flex-direction:column;justify-content:center;align-items:center;transition:opacity .5s;display:flex;position:absolute;inset:0}.splash-glow{filter:blur(20px);background:radial-gradient(circle,#ff6a2b66,#0000 65%);border-radius:50%;width:240px;height:240px;animation:2s ease-in-out infinite pulse;position:absolute}.splash-logo{animation:.7s cubic-bezier(.16,.84,.34,1) both splashpop;position:relative}.splash-word{animation:.6s .1s both fadeup}@keyframes splashpop{0%{opacity:0;transform:scale(.5)rotate(-30deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes fadeup{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes pulse{0%,to{opacity:.6;transform:scale(.85)}50%{opacity:1;transform:scale(1.1)}}.spin{border:2.5px solid #ffffff59;border-top-color:#fff;border-radius:50%;width:20px;height:20px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.app-bg{background:radial-gradient(120% 60% at 50% -10%, #1b2333 0%, #1b233300 55%), var(--bg);justify-content:center;min-height:100%;display:flex}.phone{width:100%;max-width:var(--maxw);background:var(--bg);flex-direction:column;height:100dvh;display:flex;position:relative;overflow:hidden}@media (width>=480px){.app-bg{align-items:flex-start;padding:22px 0}.phone{border:1px solid var(--line-strong);border-radius:38px;height:min(900px,100dvh - 44px);box-shadow:0 40px 100px -30px #000000d9,0 0 0 10px #07080b}}.screen{-webkit-overflow-scrolling:touch;padding-bottom:calc(var(--tabbar-h) + var(--sab) + 26px);flex:1;overflow:hidden auto}.screen.noscrollbar::-webkit-scrollbar{display:none}.screen.noscrollbar{scrollbar-width:none}.pad{padding-left:18px;padding-right:18px}.h-xl{font-family:var(--font-head);letter-spacing:-.02em;font-size:27px;font-weight:700;line-height:1.1}.h-lg{font-family:var(--font-head);letter-spacing:-.01em;font-size:21px;font-weight:700}.h-md{font-family:var(--font-head);letter-spacing:-.01em;font-size:17px;font-weight:600}.eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint);font-size:11.5px;font-weight:700}.dim{color:var(--text-dim)}.faint{color:var(--text-faint)}.tabnum{font-variant-numeric:tabular-nums}.appbar{z-index:20;padding-top:calc(var(--sat) + 14px);background:linear-gradient(180deg, var(--bg) 62%, #0b0d1100);align-items:center;gap:12px;padding-bottom:12px;display:flex;position:sticky;top:0}.appbar .titles{flex:1;min-width:0}.appbar h1{font-family:var(--font-head);letter-spacing:-.02em;font-size:23px;font-weight:700}.appbar .sub{color:var(--text-dim);margin-top:1px;font-size:12.5px}.iconbtn{background:var(--surface);border:1px solid var(--line);width:42px;height:42px;color:var(--text);border-radius:14px;flex-shrink:0;place-items:center;transition:transform .12s,background .15s;display:grid}.iconbtn:active{transform:scale(.92)}.iconbtn.badge-dot{position:relative}.iconbtn.badge-dot:after{content:"";background:var(--sun);width:8px;height:8px;box-shadow:0 0 0 3px var(--surface);border-radius:50%;position:absolute;top:9px;right:9px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-card);padding:16px}.card.flat{box-shadow:none}.card.tight{border-radius:var(--r);padding:13px}.row{align-items:center;gap:12px;display:flex}.col{flex-direction:column;display:flex}.between{justify-content:space-between;align-items:center;gap:10px;display:flex}.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}.gap6{gap:6px}.gap8{gap:8px}.gap10{gap:10px}.gap12{gap:12px}.gap16{gap:16px}.mt4{margin-top:4px}.mt8{margin-top:8px}.mt12{margin-top:12px}.mt16{margin-top:16px}.mt20{margin-top:20px}.mt24{margin-top:24px}.section-title{justify-content:space-between;align-items:center;margin:22px 0 12px;display:flex}.section-title .link{color:var(--sun);font-size:13px;font-weight:600}.btn{border-radius:var(--r);letter-spacing:-.01em;white-space:nowrap;justify-content:center;align-items:center;gap:8px;height:52px;padding:0 20px;font-size:15.5px;font-weight:700;transition:transform .12s,filter .15s,opacity .15s;display:inline-flex}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;pointer-events:none}.btn.block{width:100%;display:flex}.btn.sm{border-radius:13px;height:40px;padding:0 15px;font-size:13.5px}.btn-primary{background:var(--grad-sun);color:#fff;box-shadow:var(--shadow-glow)}.btn-aqua{background:var(--grad-aqua);color:#04221a}.btn-ghost{background:var(--surface-2);color:var(--text);border:1px solid var(--line);box-shadow:none}.btn-ghost:active{background:var(--surface-3)}.btn-soft{background:var(--sun-soft);color:var(--sun-2)}.btn-dark{color:#fff;border:1px solid var(--line);background:#06070a}.badge{border-radius:var(--r-pill);letter-spacing:.01em;background:var(--surface-2);height:24px;color:var(--text-dim);align-items:center;gap:5px;padding:0 10px;font-size:11.5px;font-weight:700;display:inline-flex}.badge .dot{background:currentColor;border-radius:50%;width:6px;height:6px}.badge.green{background:var(--aqua-soft);color:var(--aqua)}.badge.orange{background:var(--sun-soft);color:var(--sun-2)}.badge.rose{background:var(--rose-soft);color:var(--rose)}.badge.grape{background:var(--grape-soft);color:var(--grape)}.badge.gold{color:var(--gold);background:#ffcb4524}.chip{border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--line);height:38px;color:var(--text-dim);flex-shrink:0;align-items:center;gap:7px;padding:0 16px;font-size:13.5px;font-weight:600;transition:transform .12s,background .15s,color .15s,border-color .15s;display:inline-flex}.chip:active{transform:scale(.95)}.chip.on{background:var(--text);color:#0c0e12;border-color:var(--text)}.hscroll{gap:9px;margin:0 -18px;padding:2px 18px;display:flex;overflow-x:auto}.hscroll::-webkit-scrollbar{display:none}.hscroll{scrollbar-width:none}.day-strip{gap:9px;padding:6px 18px 8px;scroll-padding-inline:18px;display:flex;overflow:auto hidden}.day-strip::-webkit-scrollbar{display:none}.day-strip{scrollbar-width:none}.segmented{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pill);gap:3px;padding:4px;display:flex}.segmented button{border-radius:var(--r-pill);height:38px;color:var(--text-dim);flex:1;font-size:13.5px;font-weight:700;transition:color .15s,background .2s;position:relative}.segmented button.on{color:#0c0e12;background:var(--text)}.avatar{font-weight:800;font-family:var(--font-head);color:#0c0e12;letter-spacing:-.02em;border-radius:50%;flex-shrink:0;place-items:center;display:grid;overflow:hidden}.ring{transform:rotate(-90deg)}.ring .track{stroke:var(--surface-3)}.ring .val{stroke-linecap:round;transition:stroke-dashoffset .8s cubic-bezier(.2,.8,.2,1)}.bar{background:var(--surface-3);border-radius:99px;height:8px;overflow:hidden}.bar>i{border-radius:99px;height:100%;transition:width .7s cubic-bezier(.2,.8,.2,1);display:block}.lrow{align-items:center;gap:13px;padding:13px 0;display:flex}.lrow+.lrow,.divide>*+*{border-top:1px solid var(--line)}.tabbar{z-index:40;height:calc(var(--tabbar-h) + var(--sab));padding-bottom:var(--sab);-webkit-backdrop-filter:blur(22px)saturate(1.3);border-top:1px solid var(--line);background:#0d1015d1;align-items:stretch;display:flex;position:absolute;bottom:0;left:0;right:0}.tabbar a{color:var(--text-faint);letter-spacing:.01em;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;font-size:10px;font-weight:700;transition:color .15s;display:flex;position:relative}.tabbar a.on{color:var(--text)}.tabbar a.on svg{color:var(--sun)}.tabbar a .ic{transition:transform .2s}.tabbar a:active .ic{transform:scale(.85)}.tabbar a.on .ic{transform:translateY(-1px)}.tabbar a.on:before{content:"";background:var(--sun);width:26px;height:3px;box-shadow:0 0 12px var(--sun);border-radius:0 0 4px 4px;position:absolute;top:0}.scrim{z-index:200;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#04050899;align-items:flex-end;animation:.2s fade;display:flex;position:absolute;inset:0}body.sheet-open .tabbar{display:none}.sheet{background:var(--surface);border-top:1px solid var(--line-strong);width:100%;max-height:90%;box-shadow:var(--shadow-pop);padding:8px 18px calc(20px + var(--sab));border-radius:28px 28px 0 0;animation:.32s cubic-bezier(.16,.84,.34,1) slideup;overflow-y:auto}.sheet .grip{background:var(--surface-3);border-radius:99px;width:40px;height:4px;margin:8px auto 14px}@keyframes slideup{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes fade{0%{opacity:0}to{opacity:1}}.toast-wrap{z-index:220;left:0;right:0;bottom:calc(var(--tabbar-h) + var(--sab) + 16px);pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute}.toast{color:#0c0e12;border-radius:var(--r-pill);box-shadow:var(--shadow-pop);background:#f3f5f9;align-items:center;gap:9px;max-width:90%;padding:11px 16px;font-size:13.5px;font-weight:700;animation:.3s cubic-bezier(.16,.84,.34,1) toastin;display:inline-flex}.toast.dark{color:var(--text);border:1px solid var(--line-strong);background:#1c212a}@keyframes toastin{0%{opacity:0;transform:translateY(14px)scale(.96)}to{opacity:1;transform:none}}.stat-num{font-family:var(--font-head);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-weight:700}.empty{text-align:center;color:var(--text-faint);padding:40px 20px}.empty .emoji{margin-bottom:8px;font-size:34px}.hr{background:var(--line);height:1px;margin:14px 0}.tap{transition:transform .12s}.tap:active{transform:scale(.98)}.fade-in{animation:.3s fade}.pop-in{animation:.4s cubic-bezier(.16,.84,.34,1) both popin}@keyframes popin{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.stagger>*{animation:.45s cubic-bezier(.16,.84,.34,1) both popin}.stagger>:first-child{animation-delay:20ms}.stagger>:nth-child(2){animation-delay:60ms}.stagger>:nth-child(3){animation-delay:.1s}.stagger>:nth-child(4){animation-delay:.14s}.stagger>:nth-child(5){animation-delay:.18s}.stagger>:nth-child(6){animation-delay:.22s}.stagger>:nth-child(7){animation-delay:.26s}.stagger>:nth-child(8){animation-delay:.3s}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
