:root{--bg: #08090C;--bg-soft: #0D0F14;--surface: #14171E;--surface-2: #1B1F28;--surface-3: #232833;--line: #262B35;--line-soft: #1D212A;--text: #F3F5F8;--text-2: #AAB2BD;--muted: #6E7784;--accent: #D8FF3E;--accent-ink: #0B0D06;--accent-glow: rgba(216, 255, 62, .16);--green: #34E39B;--orange: #FFA23D;--red: #FF5468;--blue: #52A8FF;--violet: #B47CFF;--r-sm: 10px;--r-md: 16px;--r-lg: 22px;--r-xl: 28px;--sp: 16px;--tabbar: 62px;--ease: cubic-bezier(.22, 1, .36, 1);--font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Inter", "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}html{background:var(--bg);-webkit-text-size-adjust:100%}body{font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;overscroll-behavior:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button,input,select,textarea{font:inherit;color:inherit;background:none;border:none;outline:none}button{cursor:pointer}::selection{background:var(--accent);color:var(--accent-ink)}.app{min-height:100%;display:flex;flex-direction:column;position:relative;overflow-x:hidden}.screen{flex:1;padding:0 var(--sp);padding-top:calc(env(safe-area-inset-top) + 10px);padding-bottom:calc(var(--tabbar) + env(safe-area-inset-bottom) + 28px);max-width:620px;width:100%;margin:0 auto;animation:screen-in .34s var(--ease)}@keyframes screen-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.eyebrow{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}h1.title{font-size:32px;font-weight:800;letter-spacing:-.03em;line-height:1.05;margin-top:4px}h2.section{font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:30px 0 12px}.sub{color:var(--text-2);font-size:14px;line-height:1.5}.dim{color:var(--muted)}.num{font-variant-numeric:tabular-nums;letter-spacing:-.02em}.card{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--r-lg);padding:18px}.card.flat{background:var(--bg-soft)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:50px;padding:0 22px;border-radius:15px;font-size:16px;font-weight:650;letter-spacing:-.01em;background:var(--surface-2);color:var(--text);border:1px solid var(--line);transition:transform .12s var(--ease),filter .15s}.btn:active{transform:scale(.97)}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:transparent;font-weight:750;box-shadow:0 6px 22px -8px var(--accent-glow)}.btn.ghost{background:transparent;border-color:var(--line)}.btn.danger{color:var(--red);border-color:#ff546847}.btn.block{width:100%}.btn.lg{height:58px;font-size:17px;border-radius:18px}.btn.sm{height:38px;font-size:14px;padding:0 14px;border-radius:11px}.iconbtn{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:var(--surface-2);border:1px solid var(--line-soft);color:var(--text-2);transition:transform .12s var(--ease)}.iconbtn:active{transform:scale(.92)}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;padding:6px 6px env(safe-area-inset-bottom);background:#0a0c10d1;backdrop-filter:saturate(180%) blur(22px);-webkit-backdrop-filter:saturate(180%) blur(22px);border-top:1px solid var(--line-soft)}.tabbar button{flex:1;height:54px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--muted);font-size:10px;font-weight:600;letter-spacing:.01em;border-radius:12px;transition:color .18s}.tabbar button.on{color:var(--accent)}.tabbar button svg{width:22px;height:22px}.tabbar button:active{background:var(--surface)}.hero{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:22px}.weekstrip{display:flex;gap:6px;margin:18px 0 4px}.weekstrip .day{flex:1;aspect-ratio:1 / 1.35;border-radius:12px;background:var(--surface);border:1px solid var(--line-soft);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:11px;font-weight:700;color:var(--muted)}.weekstrip .day.done{background:linear-gradient(160deg,var(--accent) 0%,#B4E62A 100%);color:var(--accent-ink);border-color:transparent}.weekstrip .day.today{border-color:var(--accent);color:var(--text)}.weekstrip .day.done.today{border-color:#fff}.weekstrip .day .dot{width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.45}.weekstrip .day.done .dot{opacity:1}.wcard{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:16px;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line-soft);margin-bottom:10px;position:relative;overflow:hidden;transition:transform .14s var(--ease),border-color .2s}.wcard:active{transform:scale(.985)}.wcard:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--c)}.wcard .emo{width:46px;height:46px;flex:0 0 46px;border-radius:14px;display:grid;place-items:center;font-size:21px;background:color-mix(in srgb,var(--c) 14%,transparent);border:1px solid color-mix(in srgb,var(--c) 22%,transparent)}.wcard .txt{flex:1;min-width:0}.wcard .txt b{display:block;font-size:17px;font-weight:700;letter-spacing:-.02em}.wcard .txt span{display:block;font-size:13px;color:var(--muted);margin-top:2px}.wcard .chev{color:var(--muted);flex:0 0 auto}.statgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.statgrid.two{grid-template-columns:repeat(2,1fr)}.stat{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--r-md);padding:14px 12px;text-align:left}.stat .v{font-size:24px;font-weight:800;letter-spacing:-.035em;font-variant-numeric:tabular-nums;line-height:1}.stat .v small{font-size:13px;font-weight:650;color:var(--muted);margin-left:2px;letter-spacing:0}.stat .k{font-size:11px;color:var(--muted);margin-top:7px;font-weight:600}.tip{display:flex;gap:13px;padding:16px;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line-soft);margin-bottom:10px;position:relative;overflow:hidden}.tip:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--tc, var(--muted))}.tip.win{--tc: var(--green)}.tip.action{--tc: var(--accent)}.tip.warn{--tc: var(--orange)}.tip.info{--tc: var(--blue)}.tip .ic{width:34px;height:34px;flex:0 0 34px;border-radius:11px;display:grid;place-items:center;font-size:17px;background:color-mix(in srgb,var(--tc) 13%,transparent)}.tip b{display:block;font-size:15.5px;font-weight:700;letter-spacing:-.02em;margin-bottom:5px}.tip p{font-size:14px;line-height:1.55;color:var(--text-2)}.live{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:var(--bg);display:flex;flex-direction:column;animation:live-in .34s var(--ease)}@keyframes live-in{0%{opacity:0;transform:translateY(24px) scale(.99)}to{opacity:1;transform:none}}.livehead{padding:calc(env(safe-area-inset-top) + 10px) var(--sp) 12px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line-soft);background:#0a0c10e6;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.livehead .name{flex:1;min-width:0}.livehead .name b{display:block;font-size:17px;font-weight:750;letter-spacing:-.02em}.livehead .name span{display:block;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums;margin-top:1px}.liveprogress{height:2px;background:var(--line-soft);position:relative}.liveprogress i{position:absolute;left:0;top:0;bottom:0;background:var(--accent);transition:width .4s var(--ease)}.livebody{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:14px var(--sp) 200px;max-width:620px;width:100%;margin:0 auto}.exo{border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line-soft);margin-bottom:10px;overflow:hidden;transition:border-color .25s}.exo.open{border-color:var(--line);background:var(--surface)}.exo.finished .exohead b{color:var(--muted);text-decoration:line-through;text-decoration-color:var(--line)}.exohead{display:flex;align-items:center;gap:12px;width:100%;padding:15px 16px;text-align:left}.exohead .idx{width:26px;height:26px;flex:0 0 26px;border-radius:9px;display:grid;place-items:center;font-size:12px;font-weight:750;background:var(--surface-3);color:var(--text-2);font-variant-numeric:tabular-nums}.exohead .idx.ok{background:var(--accent);color:var(--accent-ink)}.exohead .t{flex:1;min-width:0}.exohead b{display:block;font-size:16px;font-weight:700;letter-spacing:-.022em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.exohead span{display:block;font-size:12.5px;color:var(--muted);margin-top:2px}.exobody{padding:0 16px 16px}.target{display:flex;align-items:center;gap:9px;padding:11px 13px;border-radius:13px;background:linear-gradient(180deg,#d8ff3e17,#d8ff3e0a);border:1px solid rgba(216,255,62,.18);margin-bottom:14px}.target .ti{font-size:15px;line-height:1}.target p{font-size:13.5px;line-height:1.45;color:#e6f5b8}.setrow{display:grid;grid-template-columns:26px 1fr 1fr 52px;align-items:center;gap:8px;margin-bottom:8px}.setrow .n{font-size:13px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums;text-align:center}.setrow.done .n{color:var(--accent)}.field{position:relative;height:52px;border-radius:14px;background:var(--surface-2);border:1px solid var(--line);display:flex;align-items:center;transition:border-color .18s,background .18s}.field:focus-within{border-color:var(--accent);background:var(--surface-3)}.setrow.done .field{background:#d8ff3e0e;border-color:#d8ff3e33}.field input{width:100%;height:100%;padding:0 34px 0 13px;font-size:18px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.02em;background:none;text-align:left}.field input::placeholder{color:#4a5261;font-weight:600}.field u{position:absolute;right:11px;font-size:11px;font-weight:700;color:var(--muted);text-decoration:none;pointer-events:none}.check{height:52px;border-radius:14px;background:var(--surface-2);border:1px solid var(--line);display:grid;place-items:center;color:var(--muted);transition:all .18s var(--ease)}.check:active{transform:scale(.92)}.check.on{background:var(--accent);border-color:transparent;color:var(--accent-ink)}.setactions{display:flex;gap:8px;margin-top:12px}.setactions .btn{flex:1}.histline{margin-top:13px;padding-top:13px;border-top:1px dashed var(--line);font-size:12.5px;color:var(--muted);display:flex;align-items:center;gap:7px;flex-wrap:wrap}.histline b{color:var(--text-2);font-weight:650;font-variant-numeric:tabular-nums}.rest{position:fixed;left:10px;right:10px;bottom:calc(env(safe-area-inset-bottom) + 10px);z-index:60;border-radius:var(--r-xl);background:#151920f0;backdrop-filter:blur(26px) saturate(180%);-webkit-backdrop-filter:blur(26px) saturate(180%);border:1px solid var(--line);box-shadow:0 20px 50px -20px #000;overflow:hidden;max-width:600px;margin:0 auto;animation:rest-in .3s var(--ease)}@keyframes rest-in{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}.rest .bar{height:3px;background:var(--line-soft)}.rest .bar i{display:block;height:100%;background:var(--accent);transition:width 1s linear}.rest.over .bar i{background:var(--green)}.rest .inner{display:flex;align-items:center;gap:12px;padding:13px 15px}.rest .lbl{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.rest .time{font-size:34px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.045em;line-height:1;margin-top:3px}.rest.over .time{color:var(--green)}.rest .grow{flex:1}.rest .rbtn{height:42px;min-width:46px;padding:0 12px;border-radius:13px;background:var(--surface-3);border:1px solid var(--line);font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;transition:transform .12s var(--ease)}.rest .rbtn:active{transform:scale(.92)}.rest .rbtn.go{background:var(--accent);color:var(--accent-ink);border-color:transparent}.livefoot{position:fixed;left:0;right:0;bottom:0;z-index:55;padding:12px var(--sp) calc(env(safe-area-inset-bottom) + 12px);background:linear-gradient(180deg,rgba(8,9,12,0) 0%,rgba(8,9,12,.92) 32%,var(--bg) 100%);display:flex;gap:10px;max-width:620px;margin:0 auto}.chart{width:100%;display:block;overflow:visible}.chart .grid{stroke:var(--line-soft);stroke-width:1}.chart .lineA{fill:none;stroke:var(--accent);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.chart .dotA{fill:var(--accent)}.chart .lbl{fill:var(--muted);font-size:10px;font-weight:600}.bars{display:flex;align-items:flex-end;gap:5px;height:92px}.bars .b{flex:1;display:flex;flex-direction:column;justify-content:flex-end;height:100%;gap:6px}.bars .b i{display:block;border-radius:5px 5px 3px 3px;background:var(--surface-3);min-height:3px;transition:height .5s var(--ease)}.bars .b.hit i{background:var(--accent)}.bars .b em{font-style:normal;font-size:9px;color:var(--muted);text-align:center;font-weight:650}.mbar{margin-bottom:11px}.mbar .top{display:flex;justify-content:space-between;font-size:13px;margin-bottom:6px}.mbar .top b{font-weight:650}.mbar .top span{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12.5px}.mbar .track{height:7px;border-radius:4px;background:var(--surface-2);overflow:hidden}.mbar .track i{display:block;height:100%;border-radius:4px;transition:width .6s var(--ease)}.row{display:flex;align-items:center;gap:13px;width:100%;text-align:left;padding:14px 16px;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line-soft);margin-bottom:8px;transition:transform .13s var(--ease)}.row:active{transform:scale(.985)}.row .lead{width:40px;height:40px;flex:0 0 40px;border-radius:12px;display:grid;place-items:center;font-size:18px;background:var(--surface-2)}.row .mid{flex:1;min-width:0}.row .mid b{display:block;font-size:15.5px;font-weight:680;letter-spacing:-.018em}.row .mid span{display:block;font-size:12.5px;color:var(--muted);margin-top:2px}.row .tail{text-align:right;flex:0 0 auto}.row .tail b{display:block;font-size:15px;font-weight:700;font-variant-numeric:tabular-nums}.row .tail span{display:block;font-size:11px;color:var(--muted);margin-top:2px}.daysep{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:22px 0 10px}.sheetwrap{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:flex;flex-direction:column;justify-content:flex-end;background:#0000009e;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade .22s}@keyframes fade{0%{opacity:0}to{opacity:1}}.sheet{background:var(--bg-soft);border-top-left-radius:var(--r-xl);border-top-right-radius:var(--r-xl);border-top:1px solid var(--line);max-height:88vh;display:flex;flex-direction:column;animation:sheet-up .32s var(--ease)}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:none}}.sheet .grab{width:38px;height:4px;border-radius:3px;background:var(--surface-3);margin:9px auto 4px}.sheet .shead{padding:8px 18px 14px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line-soft)}.sheet .shead b{flex:1;font-size:18px;font-weight:750;letter-spacing:-.025em}.sheet .sbody{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:16px 18px calc(env(safe-area-inset-bottom) + 20px)}.lbl2{font-size:12px;font-weight:700;color:var(--muted);margin-bottom:7px;display:block;letter-spacing:.02em}.inp{width:100%;height:50px;padding:0 14px;border-radius:14px;background:var(--surface);border:1px solid var(--line);font-size:16px;transition:border-color .18s}.inp:focus{border-color:var(--accent)}textarea.inp{height:auto;min-height:88px;padding:13px 14px;resize:none;line-height:1.5}.seg{display:flex;gap:6px;background:var(--surface);padding:4px;border-radius:14px;border:1px solid var(--line-soft)}.seg button{flex:1;height:38px;border-radius:10px;font-size:13.5px;font-weight:650;color:var(--muted);transition:all .18s var(--ease)}.seg button.on{background:var(--surface-3);color:var(--text)}.toggle{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 0;border-bottom:1px solid var(--line-soft)}.toggle:last-child{border-bottom:none}.toggle .tx b{display:block;font-size:15px;font-weight:650}.toggle .tx span{display:block;font-size:12.5px;color:var(--muted);margin-top:3px;line-height:1.45}.sw{width:50px;height:30px;flex:0 0 50px;border-radius:16px;background:var(--surface-3);position:relative;transition:background .22s var(--ease)}.sw i{position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;transition:transform .24s var(--ease)}.sw.on{background:var(--accent)}.sw.on i{transform:translate(20px)}.chips{display:flex;gap:7px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chip{flex:0 0 auto;height:34px;padding:0 14px;border-radius:11px;background:var(--surface);border:1px solid var(--line-soft);font-size:13px;font-weight:650;color:var(--text-2);white-space:nowrap;transition:all .16s}.chip.on{background:var(--accent);color:var(--accent-ink);border-color:transparent}.empty{text-align:center;padding:48px 22px;color:var(--muted)}.empty .e{font-size:40px;margin-bottom:14px;opacity:.55}.empty b{display:block;font-size:16px;color:var(--text-2);margin-bottom:7px;font-weight:650}.empty p{font-size:14px;line-height:1.55}.badge{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 9px;border-radius:8px;font-size:11.5px;font-weight:700;background:var(--surface-3);color:var(--text-2)}.badge.pr{background:#d8ff3e24;color:var(--accent)}.badge.up{background:#34e39b21;color:var(--green)}.pop{position:fixed;left:50%;transform:translate(-50%);bottom:calc(env(safe-area-inset-bottom) + var(--tabbar) + 18px);z-index:90;background:var(--accent);color:var(--accent-ink);font-size:14px;font-weight:700;padding:12px 20px;border-radius:14px;box-shadow:0 14px 36px -12px #d8ff3e80;animation:pop-in .3s var(--ease);white-space:nowrap;max-width:calc(100vw - 32px)}@keyframes pop-in{0%{opacity:0;transform:translate(-50%) translateY(14px) scale(.94)}to{opacity:1;transform:translate(-50%)}}.confetti{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:95;display:grid;place-items:center}.drag{touch-action:none}hr.sep{border:none;border-top:1px solid var(--line-soft);margin:18px 0}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.btn:disabled{opacity:.35;pointer-events:none}
