:root{--bg:#0a0a0b;--surface:#141416;--surface-2:#1c1c1f;--surface-3:#26262a;--line:#2a2a2e;--line-soft:#202024;--text:#f2f2f5;--text-2:#9a9aa2;--text-3:#636368;--accent:#ff9f0a;--done:#30d158;--danger:#ff453a;--radius:14px;--radius-lg:18px;--tabbar-h:52px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);color:var(--text);overscroll-behavior-y:none;-webkit-text-size-adjust:100%;margin:0;padding:0;overflow-x:hidden}body{touch-action:manipulation;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,system-ui,sans-serif;font-size:15px;line-height:1.4}#root{min-height:100dvh}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:0}input{font:inherit;color:inherit}.app{flex-direction:column;min-height:100dvh;display:flex}.screen{padding:calc(var(--safe-top) + 8px) 16px calc(var(--tabbar-h) + var(--safe-bottom) + 28px);flex:1;width:100%;max-width:640px;margin:0 auto}.screen-title{letter-spacing:-.02em;margin:12px 0 18px;font-size:30px;font-weight:700}.section-label{letter-spacing:.09em;text-transform:uppercase;color:var(--text-3);margin:26px 0 10px;font-size:11px;font-weight:600}.section-label:first-child{margin-top:6px}.app[data-rest=true] .screen{padding-bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 102px)}.tabbar{z-index:40;height:calc(var(--tabbar-h) + var(--safe-bottom));padding-bottom:var(--safe-bottom);-webkit-backdrop-filter:saturate(180%)blur(20px);border-top:1px solid var(--line-soft);background:#0e0e10d1;display:flex;position:fixed;bottom:0;left:0;right:0}.tab{letter-spacing:.06em;min-width:0;color:var(--text-3);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;padding:0;font-size:10px;font-weight:600;display:flex}.tab[data-active=true]{color:var(--text)}.tab svg{width:21px;height:21px}.tab-dot{background:var(--accent);border-radius:50%;width:6px;height:6px;margin-left:18px;position:absolute;top:9px}.card{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius);padding:14px}.card+.card{margin-top:10px}.btn{border-radius:var(--radius);letter-spacing:.06em;text-transform:uppercase;justify-content:center;align-items:center;gap:8px;width:100%;min-height:52px;font-size:15px;font-weight:700;transition:opacity .12s,transform .12s;display:flex}.btn:active{opacity:.82;transform:scale(.985)}.btn-primary{background:var(--text);color:#0a0a0b}.btn-secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--line)}.btn-ghost{color:var(--text-2);text-transform:none;letter-spacing:0;background:0 0;min-height:44px;font-weight:500}.btn-danger{color:var(--danger);background:0 0;border:1px solid #ff453a4d}.btn-sm{border-radius:11px;width:auto;min-height:40px;padding:0 14px;font-size:12px}.btn:disabled{opacity:.34;pointer-events:none}.home-head{justify-content:space-between;align-items:center;margin:10px 0 22px;display:flex}.wordmark{letter-spacing:.16em;font-size:26px;font-weight:800}.icon-btn{background:var(--surface-2);width:40px;height:40px;color:var(--text-2);border-radius:50%;place-items:center;display:grid}.next-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:linear-gradient(168deg,#1d1d21 0%,#0f0f11 100%);padding:20px}.next-label{letter-spacing:.11em;text-transform:uppercase;color:var(--text-3);font-size:11px;font-weight:600}.next-letter{align-items:baseline;gap:12px;margin:6px 0 2px;display:flex}.next-letter b{letter-spacing:-.03em;font-size:52px;font-weight:800;line-height:1}.next-name{color:var(--text-2);margin-bottom:16px;font-size:14px}.next-meta{color:var(--text-2);font-variant-numeric:tabular-nums;gap:18px;margin-bottom:18px;font-size:13px;display:flex}.queue{gap:6px;margin-top:14px;display:flex}.queue-item{background:var(--surface-2);height:32px;color:var(--text-3);border:1px solid #0000;border-radius:9px;flex:1;place-items:center;font-size:13px;font-weight:700;transition:background .18s,color .18s,transform .12s;display:grid;position:relative}.queue-item[data-state=selected]{background:var(--text);color:#0a0a0b}.queue-item[data-state=done]{color:var(--text-2);border-color:var(--line)}.queue-item:active:not(:disabled){transform:scale(.94)}.queue-item:disabled{opacity:.45}.queue-dot{opacity:.5;background:currentColor;border-radius:50%;width:3px;height:3px;position:absolute;bottom:4px;left:50%;transform:translate(-50%)}.picker-note{color:var(--text-3);margin:10px 0 0;font-size:12px;line-height:1.45;animation:.22s ease-out fade-in}.stat-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.stat{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius);min-width:0;padding:13px 14px}.stat-value{letter-spacing:-.01em;font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;font-size:23px;font-weight:700;overflow:hidden}.stat-label{color:var(--text-3);text-transform:uppercase;letter-spacing:.07em;margin-top:3px;font-size:11px}.resume-banner{border-radius:var(--radius);background:#ff9f0a1a;border:1px solid #ff9f0a59;align-items:center;gap:12px;margin-bottom:12px;padding:13px 14px;display:flex}.resume-banner .rb-text{flex:1;min-width:0}.resume-banner b{font-size:14px;display:block}.resume-banner span{color:var(--text-2);font-size:12px}.wk-head{justify-content:space-between;align-items:flex-start;gap:12px;margin:10px 0 16px;display:flex}.wk-head h1{letter-spacing:-.02em;margin:0;font-size:27px;font-weight:700}.wk-head p{color:var(--text-2);margin:2px 0 0;font-size:13px}.wk-timer{font-variant-numeric:tabular-nums;color:var(--text-2);white-space:nowrap;padding-top:4px;font-size:15px;font-weight:600}.progress-track{background:var(--surface-3);border-radius:2px;height:3px;margin-bottom:18px;overflow:hidden}.progress-fill{background:var(--done);border-radius:2px;height:100%;transition:width .25s}.ex-card{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius);margin-bottom:10px;overflow:hidden}.ex-card[data-completed=true]{background:linear-gradient(180deg, #30d1580d, transparent 60%), var(--surface);border-color:#30d15852}.ex-head{text-align:left;align-items:center;gap:12px;width:100%;padding:14px;display:flex}.ex-num{background:var(--surface-3);width:26px;height:26px;color:var(--text-2);font-variant-numeric:tabular-nums;border-radius:8px;flex:none;place-items:center;font-size:12px;font-weight:700;display:grid}.ex-card[data-completed=true] .ex-num{background:var(--done);color:#06280f}.ex-thumb{background:#edeef0;border-radius:11px;flex:none;width:42px;height:42px;position:relative;overflow:hidden}.ex-thumb img{object-fit:cover;width:100%;height:100%;display:block}.ex-thumb-badge{background:var(--surface-3);min-width:18px;height:18px;color:var(--text-2);border:2px solid var(--surface);font-variant-numeric:tabular-nums;border-radius:9px;place-items:center;padding:0 4px;font-size:10px;font-style:normal;font-weight:700;display:grid;position:absolute;bottom:-3px;left:-3px}.ex-card[data-completed=true] .ex-thumb-badge{background:var(--done);color:#06280f}.ex-figure{flex-direction:column;align-items:center;gap:8px;margin:0 0 18px;display:flex}.ex-figure img{border-radius:var(--radius);background:#edeef0;width:180px;max-width:100%;height:180px}.ex-figure figcaption{color:var(--text-3);font-size:11px}.ex-title{flex:1;min-width:0}.ex-title b{letter-spacing:-.01em;font-size:15px;font-weight:600;display:block}.ex-sub{color:var(--text-3);font-variant-numeric:tabular-nums;margin-top:2px;font-size:12px}.chev{color:var(--text-3);flex:none;transition:transform .18s}.chev[data-open=true]{transform:rotate(90deg)}.ex-body{border-top:1px solid var(--line-soft);padding:12px 14px 14px}.prev-box{background:var(--surface-2);border-radius:11px;margin-bottom:12px;padding:10px 12px}.prev-box .pb-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);margin-bottom:5px;font-size:10px;font-weight:600}.prev-list{color:var(--text-2);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:6px 10px;font-size:13px;display:flex}.set-grid{grid-template-columns:26px 1fr 1fr 1fr;align-items:center;gap:7px;display:grid}.set-grid-head{letter-spacing:.07em;text-transform:uppercase;color:var(--text-3);text-align:center;padding-bottom:2px;font-size:10px;font-weight:600}.set-n{color:var(--text-3);text-align:center;font-variant-numeric:tabular-nums;font-size:13px;font-weight:700}.set-input{background:var(--surface-2);border:1px solid var(--line);text-align:center;font-variant-numeric:tabular-nums;appearance:none;border-radius:11px;width:100%;min-width:0;height:48px;font-size:17px;font-weight:600}.set-input::placeholder{color:var(--text-3);font-weight:400}.set-input:focus{border-color:var(--text-2);background:var(--surface-3);outline:none}.set-input[data-filled=true]{border-color:#30d15866}.ex-actions{gap:8px;margin-top:12px;display:flex}.ex-actions .btn{white-space:nowrap;flex:1}.ex-actions .btn-sm{flex:none;min-width:54px}.info-note{color:var(--text-3);margin-top:10px;font-size:12px;line-height:1.45}.rest{left:12px;right:12px;bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 12px);z-index:50;border-radius:var(--radius);-webkit-backdrop-filter:blur(20px);border:1px solid var(--line);background:#202024f2;align-items:center;gap:12px;max-width:616px;margin:0 auto;padding:12px 14px;display:flex;position:fixed;box-shadow:0 8px 30px #00000080}.rest-time{font-variant-numeric:tabular-nums;letter-spacing:-.01em;min-width:64px;font-size:26px;font-weight:700}.rest[data-done=true] .rest-time{color:var(--done)}.rest-presets{flex:1;gap:6px;min-width:0;display:flex}.rest-preset{background:var(--surface-3);font-variant-numeric:tabular-nums;border-radius:10px;flex:1;min-width:0;height:38px;font-size:13px;font-weight:600}.rest-preset[data-active=true]{background:var(--text);color:#0a0a0b}.rest-close{background:var(--surface-3);width:36px;height:36px;color:var(--text-2);border-radius:50%;flex:none;place-items:center;display:grid}.done-screen{min-height:100dvh;padding:calc(var(--safe-top) + 40px) 20px calc(var(--safe-bottom) + 24px);flex-direction:column;width:100%;max-width:640px;margin:0 auto;display:flex}.done-check{width:58px;height:58px;color:var(--done);background:#30d15824;border-radius:50%;place-items:center;margin-bottom:22px;display:grid}.done-title{letter-spacing:-.03em;margin:0 0 6px;font-size:32px;font-weight:800;line-height:1.05}.done-sub{color:var(--text-2);margin:0 0 26px;font-size:15px}.done-stats{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px;display:grid}.pr-row{border-bottom:1px solid var(--line-soft);align-items:center;gap:11px;padding:11px 0;display:flex}.pr-row:last-child{border-bottom:0}.pr-badge{width:30px;height:30px;color:var(--accent);background:#ff9f0a24;border-radius:9px;flex:none;place-items:center;display:grid}.pr-text{flex:1;min-width:0}.pr-text b{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;display:block;overflow:hidden}.pr-text span{color:var(--text-2);font-variant-numeric:tabular-nums;font-size:12px}.log-row{text-align:left;background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius);align-items:center;gap:13px;width:100%;margin-bottom:8px;padding:13px 14px;display:flex}.log-date{text-align:center;font-variant-numeric:tabular-nums;flex:none;width:46px}.log-date b{font-size:19px;font-weight:700;line-height:1.05;display:block}.log-date span{color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;font-size:10px}.log-main{flex:1;min-width:0}.log-main b{font-size:15px;font-weight:600}.log-main div{color:var(--text-3);font-variant-numeric:tabular-nums;margin-top:2px;font-size:12px}.detail-ex{border-bottom:1px solid var(--line-soft);padding:13px 0}.detail-ex:last-child{border-bottom:0}.detail-ex b{font-size:14px;font-weight:600}.detail-sets{flex-direction:column;gap:4px;margin-top:7px;display:flex}.detail-set{color:var(--text-2);font-variant-numeric:tabular-nums;font-size:14px}.picker{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);width:100%;min-height:50px;color:var(--text);text-align:left;justify-content:space-between;align-items:center;gap:10px;padding:0 14px;font-size:15px;font-weight:600;display:flex}.picker span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.seg{background:var(--surface-2);border-radius:11px;gap:3px;margin:12px 0;padding:3px;display:flex}.seg button{letter-spacing:.04em;min-width:0;height:34px;color:var(--text-2);border-radius:9px;flex:1;font-size:12px;font-weight:600}.seg button[data-active=true]{background:var(--surface-3);color:var(--text)}.chart-box{height:210px;margin:4px -6px 0}.empty{text-align:center;color:var(--text-3);padding:44px 20px}.empty b{color:var(--text-2);margin-bottom:5px;font-size:15px;display:block}.empty p{margin:0;font-size:13px;line-height:1.5}.sheet-backdrop{z-index:60;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0000008c;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{-webkit-overflow-scrolling:touch;background:var(--surface);border-top:1px solid var(--line);width:100%;max-width:640px;max-height:88dvh;padding:8px 16px calc(var(--safe-bottom) + 20px);border-radius:20px 20px 0 0;overflow-y:auto}.sheet-grab{background:var(--surface-3);border-radius:2px;width:36px;height:4px;margin:6px auto 12px}.sheet h2{letter-spacing:-.02em;margin:0 0 14px;font-size:20px;font-weight:700}.sheet-row{text-align:left;border-bottom:1px solid var(--line-soft);align-items:center;gap:12px;width:100%;padding:14px 0;font-size:15px;display:flex}.sheet-row:last-of-type{border-bottom:0}.sheet-row b{flex:1;min-width:0;font-weight:500}.sheet-row small{color:var(--text-3);font-size:12px}.field{gap:8px;margin:12px 0;display:flex}.field input{border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--line);font-variant-numeric:tabular-nums;appearance:none;flex:1;min-width:0;height:50px;padding:0 14px;font-size:17px}.field input:focus{border-color:var(--text-2);outline:none}.toast{left:16px;right:16px;bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 16px);z-index:80;background:var(--surface-3);border:1px solid var(--line);text-align:center;border-radius:12px;max-width:480px;margin:0 auto;padding:13px 16px;font-size:14px;position:fixed;box-shadow:0 8px 30px #00000080}.toast[data-kind=error]{color:#ffb3ad;border-color:#ff453a73}.muted{color:var(--text-3);font-size:12px;line-height:1.5}.hidden-input{display:none}@keyframes fade-in{0%{opacity:0}}@keyframes screen-in{0%{opacity:0;transform:translateY(6px)}}@keyframes rise-in{0%{opacity:0;transform:translateY(10px)}}@keyframes sheet-in{0%{transform:translateY(100%)}}@keyframes pop-in{0%{opacity:0;transform:scale(.8)}60%{transform:scale(1.04)}to{opacity:1;transform:scale(1)}}@keyframes bar-in{0%{opacity:0;transform:translateY(16px)}}.screen{animation:.22s ease-out screen-in}.next-letter b{animation:.26s cubic-bezier(.2,.8,.3,1) pop-in;display:inline-block}.ex-body{animation:.2s ease-out rise-in}.ex-card{transition:border-color .25s,background .25s}.ex-thumb-badge{transition:background .25s,color .25s}.sheet-backdrop{animation:.2s ease-out fade-in}.sheet{animation:.28s cubic-bezier(.2,.9,.3,1) sheet-in}.rest{animation:.24s cubic-bezier(.2,.9,.3,1) bar-in}.toast{animation:.22s ease-out bar-in}.resume-banner{animation:.26s ease-out rise-in}.done-check{animation:.4s cubic-bezier(.2,.8,.3,1) pop-in}.done-title,.done-sub,.done-stats,.done-screen>.stat,.done-screen>.section-label,.done-screen>.card{animation:.34s ease-out backwards rise-in}.done-title{animation-delay:40ms}.done-sub{animation-delay:80ms}.done-stats{animation-delay:.12s}.done-screen>.stat{animation-delay:.16s}.done-screen>.section-label{animation-delay:.2s}.done-screen>.card{animation-delay:.24s}.pr-row{animation:.4s ease-out backwards fade-in}.pr-row:nth-child(2){animation-delay:.3s}.pr-row:nth-child(3){animation-delay:.36s}.pr-row:nth-child(n+4){animation-delay:.42s}.log-row{transition:background .15s,transform .12s}.log-row:active{background:var(--surface-2);transform:scale(.99)}.seg button{transition:background .16s,color .16s}.picker{transition:border-color .16s,background .16s}.picker:active{background:var(--surface-2)}.sheet-row{transition:opacity .14s}.sheet-row:active{opacity:.6}.icon-btn{transition:transform .14s,color .14s}.icon-btn:active{transform:scale(.9)}.set-input{transition:border-color .16s,background .16s}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
