:root{--surface-0: #101012;--surface-1: #18181b;--surface-2: #222226;--border: #2a2a2f;--border-strong: #3a3a41;--text: #f2f2f0;--text-muted: #9a9aa3;--text-faint: #5c5c66;--hero-overlay: linear-gradient(to top, var(--surface-0) 4%, rgba(16,16,18,.45) 60%, rgba(16,16,18,.25));--card-shadow: none;--active: #0077bc;--active-dim: rgba(0, 119, 188, .14);--done: #00b47a;--done-dim: rgba(0, 180, 122, .12);--timer: #f59e0b;--timer-dim: rgba(245, 158, 11, .14);--danger: #ef4444;--danger-dim: rgba(239, 68, 68, .12);--water: #38bdf8;--grad-a-1: #f97316;--grad-a-2: #ec4899;--grad-b-1: #0077bc;--grad-b-2: #22d3ee;--grad-c-1: #8b5cf6;--grad-c-2: #ec4899;--grad-d-1: #06b6d4;--grad-d-2: #34d399;--grad-ok-1: #00b47a;--grad-ok-2: #34d399;--grad-a: linear-gradient(135deg, var(--grad-a-1), var(--grad-a-2));--grad-b: linear-gradient(135deg, var(--grad-b-1), var(--grad-b-2));--grad-c: linear-gradient(135deg, var(--grad-c-1), var(--grad-c-2));--grad-d: linear-gradient(135deg, var(--grad-d-1), var(--grad-d-2));--grad-ok: linear-gradient(135deg, var(--grad-ok-1), var(--grad-ok-2));--font-display: "Archivo Black", sans-serif;--font-body: "Archivo", sans-serif;--font-mono: "JetBrains Mono", monospace;--shadow-float: 0 6px 20px rgba(0, 0, 0, .45);--radius: 10px;--radius-lg: 16px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--tap: 48px;--tap-workout: 54px}[data-theme=light]{--surface-0: #f4f5f7;--surface-1: #ffffff;--surface-2: #eef0f3;--border: #e4e6ea;--border-strong: #cfd3d9;--text: #17181c;--text-muted: #61646d;--text-faint: #a2a6ae;--hero-overlay: linear-gradient(to top, var(--surface-0) 4%, rgba(244,245,247,.35) 60%, rgba(20,20,24,.15));--card-shadow: 0 1px 3px rgba(20, 22, 28, .07), 0 6px 18px rgba(20, 22, 28, .05);--shadow-float: 0 8px 24px rgba(20, 22, 28, .16);--active-dim: rgba(0, 119, 188, .1);--done-dim: rgba(0, 180, 122, .1);--timer-dim: rgba(245, 158, 11, .12);--danger-dim: rgba(239, 68, 68, .08)}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;background:var(--surface-0);color:var(--text);font-family:var(--font-body);overscroll-behavior-y:none;transition:background .25s ease,color .25s ease}#root{height:100%}button{font-family:inherit;color:inherit;background:none;border:none;cursor:pointer}input,select,textarea{font-family:var(--font-mono);color:var(--text)}input:focus,select:focus,textarea:focus{outline:none}.app-shell{height:100%;display:flex;flex-direction:column}.app-header{flex-shrink:0;padding:calc(10px + var(--safe-top)) 16px 10px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;background:var(--surface-0)}.app-header .brand{font-family:var(--font-display);font-size:17px;letter-spacing:-.02em;text-transform:uppercase}.app-header .brand em{font-style:normal;background:var(--grad-b);-webkit-background-clip:text;background-clip:text;color:transparent}.app-header .who{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;min-height:40px;padding:0 4px}.app-main{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:24px}.tabbar{flex-shrink:0;display:flex;border-top:1px solid var(--border);background:var(--surface-1);padding-bottom:var(--safe-bottom)}.tabbar button{flex:1;min-height:56px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--text-faint);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;border-top:2px solid transparent;margin-top:-1px;transition:color .15s ease}.tabbar button.active{color:var(--text);border-top-color:var(--active)}.tabbar button svg{width:21px;height:21px}.hero{position:relative;height:148px;overflow:hidden;display:flex;align-items:flex-end}.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center;filter:blur(2px) brightness(.9);transform:scale(1.06)}.hero-veil{position:absolute;inset:0;background:var(--hero-overlay)}.hero-content{position:relative;z-index:2;padding:14px 16px;width:100%}.hero-content h2{font-family:var(--font-display);font-size:26px;text-transform:uppercase;letter-spacing:-.02em;line-height:1.02;color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.55)}.hero-content .sub{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffffffd1;text-shadow:0 1px 8px rgba(0,0,0,.6);margin-top:3px}@keyframes reveal-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.reveal{animation:reveal-up .3s ease-out backwards}.reveal:nth-child(2){animation-delay:40ms}.reveal:nth-child(3){animation-delay:80ms}.reveal:nth-child(4){animation-delay:.12s}.reveal:nth-child(5){animation-delay:.16s}.reveal:nth-child(6){animation-delay:.2s}.reveal:nth-child(7){animation-delay:.24s}.reveal:nth-child(8){animation-delay:.28s}.screen-title{font-family:var(--font-display);font-size:26px;text-transform:uppercase;letter-spacing:-.02em;line-height:1.05;padding:20px 16px 4px}.screen-sub{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;padding:0 16px 14px}.panel{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--card-shadow);margin:0 12px 12px;overflow:hidden;position:relative}.panel.accent:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--day-grad, var(--grad-b))}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:13px 14px;border-bottom:1px solid var(--border)}.panel-head h3{font-family:var(--font-display);font-size:13px;text-transform:uppercase;letter-spacing:.01em}.panel-body{padding:4px 14px 12px}.tag{font-family:var(--font-mono);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:3px 8px;border-radius:5px}.tag-active{background:var(--active);color:#fff}.tag-muted{background:var(--surface-2);color:var(--text-muted)}.tag-done{background:var(--done);color:#fff}.tag-timer{background:var(--timer);color:#191002}.tag-grad{background:var(--day-grad, var(--grad-b));color:#fff}.hero-stat{padding:18px 16px 6px;display:flex;align-items:baseline;gap:10px}.hero-stat .num{font-family:var(--font-mono);font-weight:800;font-size:56px;line-height:1;letter-spacing:-.03em;background:var(--grad-b);-webkit-background-clip:text;background-clip:text;color:transparent}.hero-stat .unit{font-family:var(--font-mono);font-size:13px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em}.seg{display:flex;gap:6px;padding:10px 12px 14px}.seg button{flex:1;min-height:var(--tap-workout);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-1);box-shadow:var(--card-shadow);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;position:relative;overflow:hidden;transition:border-color .15s ease,transform .12s ease}.seg button:active{transform:scale(.97)}.seg button .k{font-family:var(--font-display);font-size:15px;color:var(--text-muted);position:relative;z-index:1}.seg button .v{font-family:var(--font-mono);font-size:9px;color:var(--text-faint);text-transform:uppercase;letter-spacing:.05em;position:relative;z-index:1}.seg button.active{border-color:transparent}.seg button.active:before{content:"";position:absolute;inset:0;background:var(--seg-grad, var(--grad-b));opacity:1}.seg button.active .k,.seg button.active .v{color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.25)}.seg button.plain.active:before{background:var(--grad-b)}.ex-row{display:flex;gap:10px;padding:12px 0;border-bottom:1px solid var(--border);transition:background .2s ease}.ex-row:last-child{border-bottom:none}.ex-row.is-done{background:var(--done-dim);margin:0 -14px;padding-left:14px;padding-right:14px}.ex-num{font-family:var(--font-mono);font-size:11px;font-weight:700;color:var(--text-faint);min-width:22px;padding-top:3px}.ex-row.is-done .ex-num{color:var(--done)}.ex-main{flex:1;min-width:0}.ex-name{font-weight:700;font-size:14px;line-height:1.25}.ex-spec{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);margin-top:2px;text-transform:uppercase;letter-spacing:.03em}.ex-why{font-size:12px;color:var(--text-muted);line-height:1.4;margin-top:4px}.wt-row{display:flex;align-items:center;gap:8px;margin-top:9px;flex-wrap:wrap}.wt-prev{font-family:var(--font-mono);font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;border:1px dashed var(--border-strong);border-radius:6px;padding:5px 8px;white-space:nowrap}.wt-prev b{color:var(--text);font-weight:700}.stepper{display:flex;align-items:stretch;border:1px solid var(--border-strong);border-radius:var(--radius);overflow:hidden;background:var(--surface-2)}.stepper button{width:46px;min-height:44px;font-family:var(--font-mono);font-size:20px;font-weight:700;color:var(--text-muted);display:flex;align-items:center;justify-content:center;transition:background .12s ease,color .12s ease}.stepper button:active{background:var(--active-dim);color:var(--active)}.stepper input{width:64px;text-align:center;background:transparent;border:none;border-left:1px solid var(--border);border-right:1px solid var(--border);font-size:16px;font-weight:700}.stepper input::-webkit-inner-spin-button,.stepper input::-webkit-outer-spin-button{-webkit-appearance:none}.stepper input{-moz-appearance:textfield;appearance:textfield}.stepper.wide input{width:76px}.wt-unit{font-family:var(--font-mono);font-size:10px;color:var(--text-faint);text-transform:uppercase}.hist-btn{min-width:40px;min-height:44px;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);display:flex;align-items:center;justify-content:center}.hist-btn svg{width:16px;height:16px}.var-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:44px;padding:4px 7px;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);line-height:1;font-family:var(--font-mono);font-size:7.5px;font-weight:700;text-transform:uppercase;letter-spacing:.02em}.var-btn svg{width:15px;height:15px}.var-btn:active{background:var(--active-dim)}.rec-badge{display:flex;flex-direction:column;align-items:center;flex-shrink:0;line-height:1}.rec-main{font-family:var(--font-mono);font-size:10px;font-weight:800;color:#fff;background:var(--day-grad, var(--grad-b));padding:2px 7px;border-radius:5px;letter-spacing:.05em}.rec-sub{font-family:var(--font-mono);font-size:7px;font-weight:600;color:var(--text-muted);margin-top:2px;letter-spacing:.02em}.editor-note{margin:12px 0 4px;padding:10px 12px;border-left:3px solid var(--active);border-radius:0 var(--radius) var(--radius) 0;background:var(--active-dim);font-size:12px;line-height:1.5;color:var(--text-muted)}.editor-note b{color:var(--text)}.ex-check{min-width:var(--tap-workout);min-height:var(--tap-workout);display:flex;align-items:flex-start;justify-content:center;padding-top:4px}.ex-check .box{width:40px;height:40px;border-radius:var(--radius);border:2px solid var(--border-strong);display:flex;align-items:center;justify-content:center;transition:background .18s ease,border-color .18s ease,transform .18s ease}.ex-check:active .box{transform:scale(.9)}.ex-check.on .box{background:var(--grad-ok);border-color:transparent;box-shadow:0 0 14px #00b47a59}.ex-check .box svg{opacity:0;width:20px;height:20px;transition:opacity .15s ease}.ex-check.on .box svg{opacity:1}.pr-badge{display:inline-block;margin-left:8px;background:var(--grad-ok);color:#fff;font-family:var(--font-mono);font-size:10px;font-weight:800;letter-spacing:.08em;padding:2px 7px;border-radius:5px;box-shadow:0 0 12px #00b47a66;animation:pr-pop .35s cubic-bezier(.34,1.56,.64,1)}@keyframes pr-pop{0%{transform:scale(0)}to{transform:scale(1)}}.edit-day-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:calc(100% - 24px);margin:0 12px 12px;min-height:var(--tap);border:1px dashed var(--border-strong);border-radius:var(--radius);color:var(--text-muted);font-family:var(--font-mono);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.edit-day-btn svg{width:15px;height:15px}.complete-banner{margin:0 12px 12px;padding:14px 16px;border-radius:var(--radius-lg);background:var(--grad-ok);color:#fff;box-shadow:0 4px 18px #00b47a4d}.complete-banner h3{font-family:var(--font-display);font-size:16px;text-transform:uppercase}.complete-banner p{font-family:var(--font-mono);font-size:11px;opacity:.9;margin-top:3px}.btn-primary{display:block;width:calc(100% - 24px);margin:4px 12px 8px;min-height:54px;border-radius:var(--radius);background:var(--grad-ok);color:#fff;font-family:var(--font-display);font-size:14px;text-transform:uppercase;letter-spacing:.04em;box-shadow:0 4px 16px #00b47a47;transition:transform .12s ease,opacity .15s ease}.btn-primary:active{transform:scale(.985)}.btn-primary:disabled{opacity:.4;box-shadow:none}.btn-primary.blue{background:var(--grad-b);box-shadow:0 4px 16px #0077bc4d}.btn-ghost{display:block;width:calc(100% - 24px);margin:0 12px 16px;min-height:var(--tap);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);font-size:12px;font-weight:600}.goal-bar{padding:10px 0 4px}.goal-track{height:14px;border-radius:999px;overflow:hidden;background:var(--surface-2);border:1px solid var(--border)}.goal-fill{height:100%;border-radius:999px;background:var(--grad-d);transition:width .4s ease}.goal-nums{display:flex;justify-content:space-between;margin-top:6px;font-family:var(--font-mono);font-size:11px;color:var(--text-muted)}.goal-nums b{color:var(--text)}.rest-timer{position:fixed;left:12px;right:12px;bottom:calc(70px + var(--safe-bottom));background:var(--surface-2);border:1px solid var(--timer);border-radius:var(--radius-lg);box-shadow:var(--shadow-float);display:flex;align-items:center;gap:10px;padding:10px 14px;z-index:60;animation:rise .3s ease-out}@keyframes rise{0%{transform:translateY(16px);opacity:0}to{transform:none;opacity:1}}.rest-timer.finished{animation:pulse .6s ease-in-out;border-color:var(--done)}@keyframes pulse{0%,to{transform:scale(1)}25%,75%{transform:scale(1.04)}}.rest-timer .label{font-family:var(--font-mono);font-size:10px;color:var(--timer);text-transform:uppercase;letter-spacing:.08em;flex:1}.rest-timer.finished .label{color:var(--done)}.rest-timer .clock{font-family:var(--font-mono);font-weight:800;font-size:30px;letter-spacing:-.02em}.rest-timer button{min-height:40px;padding:0 12px;border:1px solid var(--border-strong);border-radius:var(--radius);font-family:var(--font-mono);font-size:12px;font-weight:700;color:var(--text-muted)}.toast{position:fixed;left:12px;right:12px;bottom:calc(70px + var(--safe-bottom));background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-float);display:flex;align-items:center;gap:12px;padding:13px 16px;z-index:70;animation:rise .25s ease-out;font-size:13px;font-weight:600}.toast.success{border-color:var(--done)}.toast.error{border-color:var(--danger)}.toast .msg{flex:1}.toast .undo{font-family:var(--font-mono);font-size:12px;font-weight:800;color:var(--active);text-transform:uppercase;letter-spacing:.06em;min-height:40px;padding:0 8px}.sheet-overlay{position:fixed;inset:0;background:#0000008c;z-index:80;display:flex;align-items:flex-end}.sheet{width:100%;max-height:78vh;background:var(--surface-1);border-top:1px solid var(--border-strong);border-radius:18px 18px 0 0;display:flex;flex-direction:column;animation:rise .25s ease-out;padding-bottom:var(--safe-bottom)}.sheet-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border)}.sheet-head h3{font-family:var(--font-display);font-size:14px;text-transform:uppercase}.sheet-head button{color:var(--text-muted);font-size:20px;min-width:44px;min-height:44px}.sheet-body{overflow-y:auto;padding:8px 16px 16px}.hist-line{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border);font-family:var(--font-mono)}.hist-line:last-child{border-bottom:none}.hist-line .d{font-size:11px;color:var(--text-muted);text-transform:uppercase}.hist-line .w{font-size:15px;font-weight:700}.hist-line .delta{font-size:11px;font-weight:700;padding:2px 7px;border-radius:5px}.delta.up{color:var(--done);background:var(--done-dim)}.delta.down{color:var(--danger);background:var(--danger-dim)}.delta.same{color:var(--text-faint);background:var(--surface-2)}.hist-empty{text-align:center;color:var(--text-muted);font-size:13px;padding:28px 0;font-family:var(--font-body)}.pick-group{font-family:var(--font-mono);font-size:10px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;padding:14px 0 6px}.pick-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border);min-height:52px}.pick-row:last-child{border-bottom:none}.pick-row .info{flex:1;min-width:0}.pick-row .nm{font-weight:700;font-size:13px}.pick-row .sp{font-family:var(--font-mono);font-size:10px;color:var(--text-muted);text-transform:uppercase;margin-top:2px}.pick-row .tag{flex-shrink:0}.pick-toggle{width:46px;height:28px;border-radius:999px;flex-shrink:0;background:var(--surface-2);border:1px solid var(--border-strong);position:relative;transition:background .18s ease,border-color .18s ease}.pick-toggle:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--text-faint);transition:transform .18s ease,background .18s ease}.pick-toggle.on{background:var(--day-grad, var(--grad-b));border-color:transparent}.pick-toggle.on:after{transform:translate(18px);background:#fff}.pick-row.locked .pick-toggle{opacity:.45}.food-opt{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);margin-bottom:8px}.food-opt .lbl{font-family:var(--font-mono);font-weight:800;font-size:13px;color:var(--timer);min-width:20px;padding-top:1px}.food-opt .nm{font-weight:600;font-size:13px;line-height:1.35}.food-opt .st{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);margin-top:3px}.food-opt .info{flex:1}.food-opt .tag-done{align-self:center;white-space:nowrap}.tip{margin:0 12px 12px;padding:11px 14px;border-left:3px solid var(--active);border-radius:0 var(--radius) var(--radius) 0;background:var(--active-dim);font-size:12px;line-height:1.5;color:var(--text-muted)}.tip strong{color:var(--text)}.week-table{margin:0 12px 12px;overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-1);box-shadow:var(--card-shadow)}.week-table table{width:100%;border-collapse:collapse;font-size:11px}.week-table th{text-align:left;padding:8px;background:var(--surface-2);font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.week-table td{padding:8px;border-top:1px solid var(--border);vertical-align:top}.week-table .dn{font-family:var(--font-mono);font-weight:700;color:var(--active);white-space:nowrap}.week-table .kc{font-family:var(--font-mono);color:var(--timer);white-space:nowrap}.hydro-track{height:14px;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;overflow:hidden;margin:10px 0 6px}.hydro-fill{height:100%;background:linear-gradient(90deg,#0077bc,#38bdf8);transition:width .4s ease}.hydro-nums{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:11px;color:var(--text-muted)}.hydro-btns{display:flex;gap:8px;margin-top:12px}.hydro-btns button{flex:1;min-height:var(--tap);border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface-2);font-family:var(--font-mono);font-size:13px;font-weight:700}.hydro-btns button:active{background:var(--active-dim)}.hydro-btns .minus{max-width:64px;color:var(--danger)}.shop-line{display:flex;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px}.shop-line:last-child{border-bottom:none}.chart-wrap{padding:8px 0 4px}.chart-wrap svg{display:block;width:100%;height:auto}.axis-lbl{font-family:var(--font-mono);font-size:9px;fill:var(--text-faint)}.chart-val{font-family:var(--font-mono);font-size:10px;font-weight:700;fill:var(--text)}.chart-line{stroke-dasharray:1000;stroke-dashoffset:1000;animation:draw .7s ease-out forwards}@keyframes draw{to{stroke-dashoffset:0}}.chart-dot{animation:dot-in .3s ease-out .5s backwards}@keyframes dot-in{0%{opacity:0}to{opacity:1}}.chart-glow{animation:glow-pulse 2.2s ease-in-out .8s infinite}@keyframes glow-pulse{0%,to{opacity:.25}50%{opacity:.6}}.select-row{padding:0 12px 10px}.select-row select{width:100%;min-height:var(--tap);background:var(--surface-1);border:1px solid var(--border-strong);border-radius:var(--radius);padding:0 12px;font-size:13px;font-weight:600}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding-top:8px}.form-grid label{display:flex;flex-direction:column;gap:4px}.form-grid label span,.form-col label span{font-family:var(--font-mono);font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.form-grid input,.form-col input{min-height:var(--tap);background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--radius);padding:0 10px;font-size:15px;font-weight:600}.form-col{display:flex;flex-direction:column;gap:8px;padding-top:8px}.form-note{grid-column:1 / -1}.stat-line{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px solid var(--border)}.stat-line:last-child{border-bottom:none}.stat-line .l{font-size:13px}.stat-line .v{font-family:var(--font-mono);font-size:13px;font-weight:700;color:var(--done)}.times-grid{display:grid;grid-template-columns:auto 1fr 1fr 1fr;gap:6px}.tg-head{font-family:var(--font-mono);font-size:10px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;text-align:center;padding:4px 0}.tg-style{display:flex;align-items:center;font-size:12px;font-weight:700;padding-right:6px}.tg-cell{min-height:40px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2);font-family:var(--font-mono);font-size:12px;font-weight:700;color:var(--text);transition:border-color .15s ease,background .15s ease}.tg-cell.empty{color:var(--text-faint);font-weight:400}.tg-cell.sel{border-color:transparent;background:var(--grad-d);color:#fff}.times-hint{font-size:11px;color:var(--text-muted);margin-top:10px;line-height:1.4}.time-input{display:flex;align-items:center;gap:6px;margin-top:5px}.time-input input{width:100%;min-height:46px;text-align:center;background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--radius);font-size:17px;font-weight:700}.time-input input::-webkit-inner-spin-button,.time-input input::-webkit-outer-spin-button{-webkit-appearance:none}.time-input input{-moz-appearance:textfield;appearance:textfield}.time-input .sep{font-family:var(--font-mono);font-size:18px;font-weight:800;color:var(--text-muted)}.cmp-table{width:100%;border-collapse:collapse;margin-top:8px;font-size:12px}.cmp-table th{font-family:var(--font-mono);font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);text-align:right;padding:6px 4px;border-bottom:1px solid var(--border)}.cmp-table th:first-child{text-align:left}.cmp-table td{padding:8px 4px;border-bottom:1px solid var(--border);text-align:right;font-family:var(--font-mono)}.cmp-table td:first-child{text-align:left;font-family:var(--font-body);font-weight:600}.cmp-table tr:last-child td{border-bottom:none}.acc{margin:0 12px 10px;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--card-shadow);overflow:hidden}.acc-head{width:100%;display:flex;align-items:center;gap:12px;padding:14px;min-height:56px;text-align:left}.acc-head .ico{width:34px;height:34px;border-radius:var(--radius);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:16px;background:var(--surface-2);border:1px solid var(--border)}.acc-head h3{font-family:var(--font-display);font-size:12px;text-transform:uppercase;flex:1}.acc-head .chev{color:var(--text-faint);transition:transform .2s ease;font-size:12px}.acc.open .chev{transform:rotate(180deg)}.acc-body{display:none;padding:0 14px 14px;font-size:13px;line-height:1.65;color:var(--text-muted)}.acc.open .acc-body{display:block}.acc-body p{margin-bottom:9px}.acc-body strong{color:var(--text)}.auth-wrap{min-height:100%;display:flex;flex-direction:column;justify-content:center;padding:32px 24px calc(32px + var(--safe-bottom));max-width:420px;margin:0 auto;width:100%}.auth-logo{font-family:var(--font-display);font-size:34px;text-transform:uppercase;letter-spacing:-.02em;line-height:.95}.auth-logo em{font-style:normal;display:block;background:var(--grad-b);-webkit-background-clip:text;background-clip:text;color:transparent}.auth-sub{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.14em;margin:10px 0 36px}.auth-field{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}.auth-field span{font-family:var(--font-mono);font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em}.auth-field .pw-wrap{position:relative}.auth-field input{width:100%;min-height:52px;background:var(--surface-1);border:1px solid var(--border-strong);border-radius:var(--radius);padding:0 14px;font-size:16px}.auth-field input:focus{border-color:var(--active)}.pw-toggle{position:absolute;right:4px;top:4px;bottom:4px;width:48px;color:var(--text-muted);display:flex;align-items:center;justify-content:center}.auth-error{border:1px solid var(--danger);background:var(--danger-dim);border-radius:var(--radius);padding:11px 13px;font-size:13px;line-height:1.45;margin-bottom:14px}.auth-ok{border:1px solid var(--done);background:var(--done-dim);border-radius:var(--radius);padding:11px 13px;font-size:13px;margin-bottom:14px}.auth-wrap .btn-primary,.auth-wrap .btn-ghost{width:100%;margin-left:0;margin-right:0}.auth-link{display:block;text-align:center;color:var(--text-muted);font-size:13px;padding:12px;width:100%}.auth-link b{color:var(--active)}.center-screen{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;text-align:center}.center-screen .brand{font-family:var(--font-display);font-size:22px;text-transform:uppercase}.center-screen p{color:var(--text-muted);font-size:13px;line-height:1.6;max-width:340px}.center-screen code{font-family:var(--font-mono);font-size:12px;background:var(--surface-2);padding:2px 7px;border-radius:5px;color:var(--timer)}.spinner-bar{width:120px;height:3px;background:var(--surface-2);overflow:hidden;border-radius:2px}.spinner-bar:after{content:"";display:block;width:40%;height:100%;background:var(--grad-b);animation:slide 1.1s ease-in-out infinite}@keyframes slide{0%{transform:translate(-100%)}to{transform:translate(320%)}}.theme-row{display:flex;gap:8px;padding:12px 0}.theme-row button{flex:1;min-height:var(--tap);border:1px solid var(--border-strong);border-radius:var(--radius);font-family:var(--font-mono);font-size:12px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.theme-row button.on{background:var(--grad-b);border-color:transparent;color:#fff}.countup{animation:fade-up .45s ease-out}@keyframes fade-up{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.tut-overlay{position:fixed;inset:0;z-index:200}.tut-scrim{position:absolute;inset:0;background:#000000bd}.tut-hole{position:fixed;border-radius:var(--radius);box-shadow:0 0 0 9999px #000000bd;border:2px solid rgba(255,255,255,.65);pointer-events:none;transition:top .26s ease,left .26s ease,width .26s ease,height .26s ease}.tut-card{position:fixed;left:16px;right:16px;max-width:400px;margin:0 auto;background:var(--surface-1);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-float);padding:16px}.tut-step{font-family:var(--font-mono);font-size:10px;color:var(--active);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}.tut-card h3{font-family:var(--font-display);font-size:16px;text-transform:uppercase;margin-bottom:6px}.tut-card p{font-size:13px;line-height:1.55;color:var(--text-muted)}.tut-actions{display:flex;gap:8px;margin-top:14px}.tut-skip{min-height:44px;padding:0 16px;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);font-size:13px;font-weight:600}.tut-next{flex:1;min-height:44px;border-radius:var(--radius);background:var(--grad-b);color:#fff;font-family:var(--font-display);font-size:13px;text-transform:uppercase;letter-spacing:.04em}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation-duration:.01ms!important}.chart-line{stroke-dasharray:none;stroke-dashoffset:0}}
