@font-face{font-family:Montserrat;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/montserrat-800.woff2) format("woff2")}:root{--color-obsidian: #0a0a0b;--color-basalt: #141619;--color-graphite: #1d2126;--color-slate-vein: #2a3038;--color-quartz-dust: #e7e7e2;--color-ash: #a7adb5;--color-stone-fog: #727983;--color-malachite: #3faf7a;--color-malachite-dark: #349966;--color-pyrite: #b08d2f;--color-azurite: #3b6fa1;--color-iron-oxide: #a54747;--color-amber-quartz: #c68a2b;--color-logo-concrete: #9a9a94;--color-logo-concrete-light: #b8b8b2;--color-logo-concrete-dark: #3e4144;--color-silver: #c9d2dc;--color-silver-bright: #e6ebf0;--color-silver-dim: #aab4bf;--color-chalk-bright: #ffffff;--color-chalk: #f3f4f0;--color-chalk-dim: #d8dbd4;--color-emerald-ore: #3daa68;--color-oxidized-copper: #5d8b84;--bg: var(--color-obsidian);--surface: var(--color-basalt);--surface-2: var(--color-graphite);--line: var(--color-slate-vein);--text: var(--color-quartz-dust);--muted: var(--color-ash);--disabled: var(--color-stone-fog);--accent: var(--color-silver);--accent-press: var(--color-silver-dim);--accent-ink: #07100b;--success: var(--color-emerald-ore);--training: var(--color-oxidized-copper);--danger: var(--color-iron-oxide);--pyrite: var(--color-pyrite);--azurite: var(--color-azurite);--azurite-text: #6e9bc9;--warning: var(--color-amber-quartz);--m-chest: #c56b54;--m-back: #4f89c4;--m-shoulders: #d49b3c;--m-biceps: #45b07c;--m-triceps: #5fa396;--m-quads: #9580bc;--m-hamstrings: #b5764a;--m-glutes: #c77b92;--m-calves: #56a2a8;--m-core: #bdb7a4;--m-traps: #8fa86e;--m-cardio: #97a1ac;--radius: 10px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,system-ui,sans-serif;-webkit-font-smoothing:antialiased}.app{min-height:100%}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;max-width:560px;margin:0 auto;background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.navbtn{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;background:none;border:none;color:var(--disabled);padding:9px 0 7px;font-size:11px;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent}.navbtn svg{width:24px;height:24px}.navbtn.on{color:var(--accent)}.with-nav .timerbar{bottom:calc(58px + env(safe-area-inset-bottom))}.topbar .account-handle{margin-left:auto}.status-card{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-bottom:16px}.status-dot{width:12px;height:12px;border-radius:50%;flex:0 0 auto}.status-label{font-size:18px;font-weight:800}.status-card.green .status-dot{background:var(--training);box-shadow:0 0 0 4px #5d8b842e}.status-card.green .status-label{color:var(--training)}.status-card.amber .status-dot{background:var(--warning);box-shadow:0 0 0 4px #c68a2b2e}.status-card.amber .status-label{color:var(--warning)}.status-card.red .status-dot{background:var(--danger);box-shadow:0 0 0 4px #a547472e}.status-card.red .status-label{color:var(--danger)}.home-action{width:100%;padding:16px;font-size:16px;margin-bottom:18px}.section-label{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin:6px 2px 10px}.home-footer{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:28px;padding-top:16px;border-top:1px solid var(--line)}.home-footer .data-controls{margin-top:0;padding-top:0;border-top:none}.select.wide{max-width:none;width:100%}.profile-avatar.sm{width:40px;height:40px;font-size:18px;margin-bottom:0}.people-note{text-align:center;margin-top:22px}.screen{max-width:560px;margin:0 auto;padding:env(safe-area-inset-top) 16px calc(120px + env(safe-area-inset-bottom))}.topbar{display:flex;align-items:center;gap:10px;padding:16px 0 8px;position:sticky;top:0;background:linear-gradient(var(--bg) 70%,transparent);z-index:5}.wordmark{font-family:Montserrat,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:800;font-size:30px;letter-spacing:-1px;text-transform:lowercase;margin:0;color:var(--color-chalk);-webkit-text-fill-color:var(--color-chalk);text-shadow:0 1px 4px rgba(0,0,0,.4)}.screen-title{font-size:22px;font-weight:800;color:var(--text)}.wordmark-link{text-decoration:none}.auth-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center}.auth-hero{max-width:360px;width:100%;display:flex;flex-direction:column;align-items:center;gap:14px;padding-bottom:60px}.auth-wordmark{font-size:44px}.auth-tag{font-size:18px;font-weight:600;margin:0}.auth-fine{color:var(--muted);font-size:13px;margin:0}.btn.google-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:#fff;color:#1f1f1f;font-weight:600;font-size:15px;padding:13px 18px;width:100%;margin-top:6px}.btn.google-btn:active{background:#f1f1f1}.auth-signout{margin-top:4px}.claim-row{display:flex;align-items:center;width:100%;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:4px 4px 4px 12px;margin-top:6px}.claim-prefix{color:var(--muted);font-size:15px;white-space:nowrap}.claim-input{border:none;background:transparent;padding:10px 6px;flex:1;min-width:0}.claim-input:focus{border:none}.claim-btn{width:100%;padding:14px}.claim-error{color:var(--danger);font-size:13px;margin:0}.account-bar{display:flex;align-items:center;justify-content:space-between;padding:0 2px 10px}.account-handle{color:var(--muted);font-weight:700;text-decoration:none;font-size:14px}.profile-head{display:flex;flex-direction:column;align-items:center;gap:8px;padding:32px 16px;text-align:center}.profile-avatar{width:72px;height:72px;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:800;margin-bottom:6px}.profile-bio{max-width:320px;color:var(--text)}.title-edit{flex:1;margin:0}.subbar{display:flex;justify-content:space-between;align-items:center;padding:4px 2px 10px}.input{width:100%;background:var(--surface-2);border:1px solid var(--line);color:var(--text);border-radius:12px;padding:12px 14px;font-size:16px;outline:none}.input:focus{border-color:var(--accent)}.input::placeholder{color:var(--disabled)}.input.flush{background:transparent;border:none;padding:6px 0;font-size:20px;font-weight:700}.input.flush:focus{border-bottom:1px solid var(--accent);border-radius:0}.input.num{text-align:center;background:transparent;border:none;border-radius:0;padding:14px 4px;font-variant-numeric:tabular-nums;font-weight:700;font-size:17px;color:var(--text);font-family:inherit;cursor:pointer;width:100%;-webkit-tap-highlight-color:transparent}.input.num.kp-active{background:var(--surface-2);border-radius:8px;outline:1.5px solid var(--accent)}.keypad{position:fixed;left:0;right:0;bottom:0;z-index:60;max-width:560px;margin:0 auto;background:var(--surface);border-top:1px solid var(--line);padding:10px 10px calc(10px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:8px;box-shadow:0 -6px 24px #00000073}.keypad-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.key{background:var(--surface-2);border:1px solid var(--line);color:var(--text);font-size:22px;font-weight:700;padding:15px 0;border-radius:10px;cursor:pointer;-webkit-tap-highlight-color:transparent}.key:active{background:var(--line)}.key:disabled{opacity:.3;cursor:default}.keypad-done{padding:15px;font-size:16px}.addrow{display:flex;gap:8px;margin:10px 0 18px}.addrow .input{flex:1}.btn{border:none;border-radius:12px;padding:12px 16px;font-size:15px;font-weight:600;color:var(--text);background:var(--surface-2);cursor:pointer;-webkit-tap-highlight-color:transparent}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.4;cursor:default;transform:none}.btn.primary{color:var(--accent-ink);background:linear-gradient(180deg,var(--color-silver-bright) 0%,var(--color-silver) 50%,var(--color-silver-dim) 100%);border:1px solid rgba(0,0,0,.18);box-shadow:inset 0 1px #ffffff80}.btn.primary:active{background:linear-gradient(180deg,var(--color-silver) 0%,var(--color-silver-dim) 100%);box-shadow:inset 0 1px 2px #0003}.btn.ghost{background:transparent;color:var(--muted)}.btn.ghost.danger{color:var(--danger);padding:8px 10px}.btn.small{padding:6px 10px;font-size:13px}.btn.tiny{padding:4px 8px;font-size:13px}.list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px}.card.row{display:flex;align-items:center;gap:8px;cursor:pointer}.card.row:active{background:var(--surface-2)}.card.row.sel{border-color:var(--accent)}.grow,.timer-mid{flex:1}.card-title{font-size:18px;font-weight:700}.chev{color:var(--muted);font-size:26px;line-height:1}.muted{color:var(--muted)}.small{font-size:13px}.empty{color:var(--muted);text-align:center;padding:40px 20px;line-height:1.5}.exercise{margin:0 -16px 12px;border:none;border-radius:0;padding:16px;--chip-soft: color-mix(in srgb, var(--chip, var(--accent)) 58%, var(--color-ash))}.ex-head{display:flex;align-items:center;gap:8px}.ex-name{flex:1;font-size:18px;min-width:0}.rest-set{display:flex;align-items:center;gap:6px;margin-top:6px;justify-content:flex-end}.rest-set .muscle-chip{margin-right:auto}.inline-rest{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.inline-rest-time{font-weight:800;font-variant-numeric:tabular-nums;color:var(--accent);font-size:17px;min-width:46px}.inline-rest-track{flex:1;min-width:0;height:8px;border-radius:999px;background:var(--surface-2);overflow:hidden}.inline-rest-fill{height:100%;background:var(--chip-soft, var(--accent));border-radius:999px;transition:width .25s linear}.step.wide{width:auto;padding:0 9px;font-size:13px}.step{width:30px;height:30px;border-radius:8px;border:1px solid var(--line);background:var(--surface-2);color:var(--text);font-size:18px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center}.step.big{width:auto;padding:0 14px;height:44px;font-size:15px}.rest-val{min-width:48px;background:var(--surface-2);border:1px solid var(--line);color:var(--accent);border-radius:8px;padding:5px 8px;font-weight:700;font-variant-numeric:tabular-nums;cursor:pointer}.sets{margin:12px 0 6px}.set-row{display:grid;grid-template-columns:22px repeat(4,1fr);gap:6px;align-items:center;padding:0;border-bottom:1px solid var(--line)}.set-swipe:last-child .set-row{border-bottom:none}.set-num{text-align:center;color:var(--muted);font-weight:700;font-size:13px;font-variant-numeric:tabular-nums}.swipeable{position:relative;overflow:hidden}.program-swipe{border-radius:var(--radius)}.swipe-actions{position:absolute;top:0;right:0;bottom:0;display:flex}.swipe-delete,.swipe-rename{width:84px;height:100%;border:none;color:#f5f5f0;font-size:14px;font-weight:700;cursor:pointer}.swipe-delete{background:var(--danger)}.swipe-rename{background:var(--azurite)}.swipe-content{position:relative;background:var(--surface);touch-action:pan-y;will-change:transform}.set-row.head{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.5px;padding-bottom:6px}.set-row.head span{text-align:center}.set-idx{text-align:center;color:var(--muted);font-weight:700}.set-row.is-done .input.num{color:var(--chip-soft, var(--success))}.set-done{text-align:center}.check{width:28px;height:28px;border-radius:50%;border:1.5px solid var(--line);background:transparent;color:var(--accent);font-size:16px;font-weight:800;cursor:pointer;margin:0 auto;display:flex;align-items:center;justify-content:center}.check.on{background:var(--chip-soft, var(--success));color:var(--accent-ink);border-color:var(--chip-soft, var(--success))}.add-set{width:100%;background:var(--surface-2);color:var(--accent);margin-top:8px}.ex-actions{display:flex;gap:8px;margin-top:10px}.ex-actions .btn{flex:1;margin-top:0}.add-note-btn{background:var(--surface-2);color:var(--muted)}.add-note-btn.has{color:var(--accent)}.note-panel{display:flex;flex-direction:column;gap:8px;margin-top:10px}.effort-row{display:flex;gap:6px}.effort{flex:1;border:1px solid var(--line);background:var(--surface-2);color:var(--muted);border-radius:10px;padding:9px 4px;font-size:12px;font-weight:700;cursor:pointer}.effort.on.light{background:var(--azurite);color:#04222e;border-color:var(--azurite)}.effort.on.right{background:var(--success);color:var(--accent-ink);border-color:var(--success)}.effort.on.hard{background:var(--warning);color:#2a1f00;border-color:var(--warning)}.effort.on.heavy{background:var(--danger);color:#f5f5f0;border-color:var(--danger)}.note-input{resize:vertical;min-height:46px;font-family:inherit;font-size:14px;line-height:1.4}.note-actions{display:flex;gap:8px;justify-content:flex-end}.note-display-swipe{margin-top:10px}.note-display{display:flex;align-items:center;gap:10px;width:100%;background:var(--surface-2);border:none;border-radius:10px;padding:12px 14px;text-align:left;cursor:pointer;color:var(--text)}.effort-tag{font-size:11px;font-weight:700;padding:3px 8px;border-radius:999px;white-space:nowrap;text-transform:uppercase;letter-spacing:.3px;flex:0 0 auto}.effort-tag.light{background:var(--azurite);color:#04222e}.effort-tag.right{background:var(--success);color:var(--accent-ink)}.effort-tag.hard{background:var(--warning);color:#2a1f00}.effort-tag.heavy{background:var(--danger);color:#f5f5f0}.note-text{flex:1;min-width:0;font-size:14px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.note-edit-hint{font-size:12px;color:var(--accent);font-weight:600;flex:0 0 auto}.add-exercise-btn{width:100%;background:var(--surface-2);color:var(--accent);margin:10px 0 18px;padding:14px}.muscle-chip{--chip: var(--accent);background:color-mix(in srgb,var(--chip) 12%,var(--surface-2));border:1px solid color-mix(in srgb,var(--chip) 42%,var(--line));color:var(--chip);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:7px 10px;border-radius:8px;white-space:nowrap}.muscle-chip.m-chest{--chip: var(--m-chest)}.muscle-chip.m-back{--chip: var(--m-back)}.muscle-chip.m-shoulders{--chip: var(--m-shoulders)}.muscle-chip.m-biceps{--chip: var(--m-biceps)}.muscle-chip.m-triceps{--chip: var(--m-triceps)}.muscle-chip.m-quads{--chip: var(--m-quads)}.muscle-chip.m-hamstrings{--chip: var(--m-hamstrings)}.muscle-chip.m-glutes{--chip: var(--m-glutes)}.muscle-chip.m-calves{--chip: var(--m-calves)}.muscle-chip.m-core{--chip: var(--m-core)}.muscle-chip.m-traps{--chip: var(--m-traps)}.muscle-chip.cardio{--chip: var(--m-cardio)}.picker-page{max-width:560px;margin:0 auto;min-height:100vh;background:var(--bg)}.picker-top{position:sticky;top:0;z-index:5;background:var(--bg);border-bottom:1px solid var(--line)}.sheet-head{display:flex;align-items:center;justify-content:space-between;padding:16px 16px 8px}.sheet-title{font-size:18px;font-weight:800}.sheet-search{padding:4px 16px 8px;display:flex;gap:8px;align-items:center}.sheet-search .input{flex:1;min-width:0}.add-new{flex:0 0 auto;background:var(--surface-2);color:var(--accent);padding:12px 14px;white-space:nowrap}.create-panel{display:flex;flex-direction:column;gap:8px;padding:14px;margin:12px 0;border:1px solid var(--accent);border-radius:12px;background:var(--surface)}.create-actions{display:flex;gap:8px;align-items:center}.create-actions .select{flex:1}.chips{display:flex;flex-wrap:wrap;gap:8px;padding:4px 16px 12px}.chip{flex:1 1 auto;border:1px solid var(--line);background:var(--surface-2);color:var(--muted);border-radius:999px;padding:7px 14px;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;text-align:center}.chip.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.chip.is-muscle{color:var(--chip);border-color:color-mix(in srgb,var(--chip) 42%,var(--line));background:color-mix(in srgb,var(--chip) 10%,var(--surface-2))}.chip.is-muscle.on{background:var(--chip);color:var(--accent-ink);border-color:var(--chip)}.chip.is-muscle.m-chest{--chip: var(--m-chest)}.chip.is-muscle.m-back{--chip: var(--m-back)}.chip.is-muscle.m-shoulders{--chip: var(--m-shoulders)}.chip.is-muscle.m-biceps{--chip: var(--m-biceps)}.chip.is-muscle.m-triceps{--chip: var(--m-triceps)}.chip.is-muscle.m-quads{--chip: var(--m-quads)}.chip.is-muscle.m-hamstrings{--chip: var(--m-hamstrings)}.chip.is-muscle.m-glutes{--chip: var(--m-glutes)}.chip.is-muscle.m-calves{--chip: var(--m-calves)}.chip.is-muscle.m-core{--chip: var(--m-core)}.chip.is-muscle.m-traps{--chip: var(--m-traps)}.m-chest{--chip: var(--m-chest)}.m-back{--chip: var(--m-back)}.m-shoulders{--chip: var(--m-shoulders)}.m-biceps{--chip: var(--m-biceps)}.m-triceps{--chip: var(--m-triceps)}.m-quads{--chip: var(--m-quads)}.m-hamstrings{--chip: var(--m-hamstrings)}.m-glutes{--chip: var(--m-glutes)}.m-calves{--chip: var(--m-calves)}.m-core{--chip: var(--m-core)}.m-traps{--chip: var(--m-traps)}.cardio{--chip: var(--m-cardio)}.chips-region{padding-bottom:6px}.chip.region{font-weight:700}.sheet-list{padding:0 16px calc(40px + env(safe-area-inset-bottom))}.lift-row{display:flex;align-items:center;gap:10px;width:100%;background:transparent;border:none;border-bottom:1px solid var(--line);padding:14px 2px;cursor:pointer;text-align:left;color:var(--text)}.lift-row:active{background:var(--surface)}.lift-name{flex:1;font-size:16px;font-weight:700;color:color-mix(in srgb,var(--chip, var(--text)) 58%,var(--color-ash))}.lift-meta{display:flex;align-items:center;gap:8px}.lift-add{width:30px;height:30px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;border-radius:8px;background:var(--surface-2);color:var(--accent);font-size:18px;font-weight:800}.lift-add.added{background:var(--success);color:var(--accent-ink)}.lift-row.is-added{cursor:default}.lift-row.is-added .lift-name{color:var(--muted)}.custom-create{padding:12px 0;border-bottom:1px solid var(--line)}.custom-row{display:flex;align-items:center;gap:8px}.custom-select{padding:8px;font-size:13px}.btn.finish{width:100%;margin-top:18px;padding:16px;font-size:16px}.btn.done-btn{width:100%;margin-top:10px;padding:15px;background:var(--surface-2);color:var(--text)}.topbar .hist-btn{margin-left:auto;color:var(--accent);font-weight:700}.small-brand{font-size:22px;font-weight:800;color:var(--text)}.progress-head{display:flex;align-items:center;gap:10px}.progress-head .card-title{flex:1}.progress-screen{display:flex;flex-direction:column;height:100dvh;padding-bottom:0;overflow:hidden}.progress-screen>.topbar,.progress-screen>.progress-card,.progress-screen>.section-label{flex:0 0 auto}.progress-card{position:relative;z-index:2;box-shadow:0 10px 16px -6px #0009}.progress-lifts{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:calc(72px + env(safe-area-inset-bottom))}.select{width:auto;max-width:60%;padding:8px 10px;font-size:14px;font-weight:600;-webkit-appearance:none;-moz-appearance:none;appearance:none}.chart-sub{margin:4px 0 10px}.chart{width:100%;height:120px;display:block}.chart-empty,.chart-single{padding:18px 4px}.chart-single{font-size:22px;font-weight:800;color:var(--accent)}.chart-axis{display:flex;justify-content:space-between;align-items:baseline;margin-top:4px}.chart-now{color:var(--accent);font-weight:800;font-variant-numeric:tabular-nums}.btn.copy-last{width:100%;background:var(--surface-2);color:var(--accent);margin-bottom:14px}.move{display:flex;flex-direction:column;gap:2px}.movebtn{border:none;background:transparent;color:var(--muted);font-size:10px;line-height:1;padding:3px 4px;cursor:pointer;border-radius:5px}.movebtn:active:not(:disabled){background:var(--surface-2);color:var(--accent)}.movebtn:disabled{opacity:.22;cursor:default}.set-move{align-items:center;justify-content:center}.drag-handle{display:inline-flex;align-items:center;justify-content:center;color:var(--muted);cursor:grab;touch-action:none;padding:6px 4px;flex:0 0 auto;-webkit-tap-highlight-color:transparent}.drag-handle:active{cursor:grabbing}.set-grip{padding:6px 2px}.grip{display:block}.exercise.is-dragging{background:linear-gradient(180deg,#c9d2dc29,#c9d2dc0a);outline:1px solid var(--accent)}.set-row.is-dragging{background:linear-gradient(90deg,#c9d2dc42,#c9d2dc1a);border:1px solid rgba(201,210,220,.55);border-radius:10px}body.dragging{user-select:none;-webkit-user-select:none;cursor:grabbing;touch-action:none;overscroll-behavior:contain}body.dragging .swipeable,body.dragging .set-row{touch-action:none}.data-controls{display:flex;gap:10px;justify-content:center;margin-top:28px;padding-top:16px;border-top:1px solid var(--line)}.statbar{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;padding:2px 2px 14px;font-size:14px;color:var(--muted)}.statbar b{color:var(--text);font-variant-numeric:tabular-nums}.stat-streak{background:#a5474729;color:#d98c8c;padding:4px 10px;border-radius:999px;font-weight:700}.metric-toggle{display:flex;gap:6px;margin:10px 0 12px}.seg{flex:1;border:1px solid var(--line);background:var(--surface-2);color:var(--muted);border-radius:10px;padding:8px 4px;font-size:13px;font-weight:600;cursor:pointer}.seg.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.chart-dates{display:flex;justify-content:space-between;margin-top:2px}.last-hint{margin:6px 0 2px;font-variant-numeric:tabular-nums}.calendar{margin-bottom:14px}.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.cal-month{font-weight:700;font-size:16px}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-dow{margin-bottom:4px}.cal-dow span{text-align:center}.cal-cell{height:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:none;background:transparent;color:var(--muted);border-radius:10px;font-size:14px;font-weight:600;cursor:default}.cal-dot{width:6px;height:6px;border-radius:50%;background:var(--success)}.cal-cell.sel .cal-dot{background:var(--accent-ink)}.cal-cell.blank{visibility:hidden}.cal-cell.has{background:var(--surface-2);color:var(--success);cursor:pointer;border:1px solid rgba(61,170,104,.35)}.cal-cell.has:active{transform:scale(.94)}.cal-cell.today{outline:1px dashed var(--muted);outline-offset:-2px}.cal-cell.sel{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.filter-bar{padding:0 2px 10px}.history-list{margin-top:14px}.session{display:block}.session-head{display:flex;align-items:flex-start;gap:10px}.session-stats{text-align:right;font-weight:700;font-variant-numeric:tabular-nums}.session-body{margin-top:10px;border-top:1px solid var(--line);padding-top:10px;display:flex;flex-direction:column;gap:8px}.session-ex{display:flex;flex-direction:column;gap:2px}.se-name{font-weight:600}.se-sets{font-size:13px;font-variant-numeric:tabular-nums}.session-actions{display:flex;gap:8px;margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}.session-actions .btn{flex:1;background:var(--surface-2);color:var(--accent)}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(76px + env(safe-area-inset-bottom));z-index:50;background:var(--surface-2);color:var(--text);border:1px solid var(--line);border-radius:999px;padding:10px 18px;font-size:14px;font-weight:600;box-shadow:0 6px 20px #0006}.timerbar{position:fixed;left:0;right:0;bottom:0;background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);z-index:20;overflow:hidden}.timer-fill{position:absolute;top:0;left:0;bottom:0;background:#c9d2dc1f;transition:width .25s linear;z-index:0}.timer-inner{position:relative;z-index:1;max-width:560px;margin:0 auto;display:flex;align-items:center;gap:10px;padding:12px 16px}.timer-time{font-size:30px;font-weight:800;font-variant-numeric:tabular-nums;text-align:center;letter-spacing:.5px}.timer-mid{text-align:center}.skip{padding:12px 18px}
