:root{--app-bg-page: #ffffff;--app-text-primary: #1a1a1a}:root[data-theme=dark]{--app-bg-page: #0f172a;--app-text-primary: #f3f4f6}html,body{margin:0;width:100%;height:100%;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--app-bg-page);color:var(--app-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a[data-astro-cid-sckkx6r4]{color:#3b82f6;text-decoration:none}a[data-astro-cid-sckkx6r4]:hover{text-decoration:underline}:root{color-scheme:light;--bg-page: #ffffff;--bg-panel: #ffffff;--bg-subtle: #fafafa;--bg-input: #f9fafb;--text-primary: #1a1a1a;--text-secondary: #6b7280;--text-tertiary: #9ca3af;--border: #e5e7eb;--border-strong: #d1d5db;--border-focus: #3b82f6;--accent: #3b82f6;--accent-hover: #2563eb;--accent-light: #eff6ff;--strength: #059669;--strength-bg: #ecfdf5;--endurance: #0284c7;--endurance-bg: #f0f9ff;--mixed: #6366f1;--mixed-bg: #eef2ff;--deload: #d97706;--deload-bg: #fffbeb;--rest: #9ca3af;--rest-bg: #f9fafb;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 12px rgba(0, 0, 0, .06);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .08);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px}:root[data-theme=dark]{color-scheme:dark;--bg-page: #0f172a;--bg-panel: #111827;--bg-subtle: #1f2937;--bg-input: #1f2937;--text-primary: #f3f4f6;--text-secondary: #cbd5e1;--text-tertiary: #94a3b8;--border: #334155;--border-strong: #475569;--accent-light: rgba(59, 130, 246, .2);--strength-bg: rgba(5, 150, 105, .18);--endurance-bg: rgba(2, 132, 199, .18);--mixed-bg: rgba(99, 102, 241, .2);--deload-bg: rgba(217, 119, 6, .2);--rest-bg: #1f2937;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 6px 16px rgba(0, 0, 0, .35);--shadow-lg: 0 10px 26px rgba(0, 0, 0, .45)}*{box-sizing:border-box}.planner-shell{position:relative;display:grid;grid-template-columns:300px 1fr 340px;gap:1.5rem;min-height:100vh;padding:2rem;background:var(--bg-page)}.theme-switcher{position:absolute;top:1rem;right:1rem;z-index:5;display:inline-flex;gap:.35rem;padding:.35rem;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--bg-panel);box-shadow:var(--shadow-md)}.theme-switcher-button{width:2rem;height:2rem;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.theme-switcher-button:hover{background:var(--bg-subtle);color:var(--text-primary)}.theme-switcher-button:focus-visible{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-light)}.theme-switcher-button.is-active{color:var(--accent);background:var(--accent-light)}.theme-icon{width:16px;height:16px}.controls{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;display:grid;gap:1rem;align-content:start;position:sticky;top:1.5rem;height:fit-content;box-shadow:var(--shadow-md)}.controls h1{margin:0 0 .5rem;font-size:1.35rem;font-weight:600;letter-spacing:-.02em}.controls label{font-size:.8rem;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.controls select,.controls input[type=number],.controls input[type=text]{font-size:.9rem;border-radius:var(--radius-md);border:1px solid var(--border);padding:.6rem .75rem;background:var(--bg-input);color:var(--text-primary);transition:border-color .15s,box-shadow .15s}.controls select:hover,.controls input:hover{border-color:var(--border-strong)}.controls select:focus,.controls input:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-light)}.controls input[type=range]{width:100%;height:6px;border-radius:3px;background:var(--border);-webkit-appearance:none;appearance:none;margin-top:.25rem}.controls input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--accent);cursor:pointer;box-shadow:var(--shadow-sm);transition:transform .15s}.controls input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.1)}.controls output{font-size:.8rem;color:var(--text-secondary)}.controls button{font-size:.9rem;font-weight:500;border-radius:var(--radius-md);border:none;padding:.7rem 1rem;cursor:pointer;background:var(--accent);color:#fff;transition:background .15s,transform .15s,box-shadow .15s;box-shadow:var(--shadow-sm)}.controls button:hover{background:var(--accent-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.controls button:active{transform:translateY(0)}.deload-note{font-size:.8rem;color:var(--text-tertiary);margin:0}.summary{margin:.5rem 0 0;padding:1rem;border-radius:var(--radius-md);background:var(--bg-subtle);display:grid;gap:.5rem}.summary div{display:flex;justify-content:space-between;gap:.5rem}.summary dt{font-size:.85rem;color:var(--text-secondary)}.summary dd{margin:0;font-size:.85rem;font-weight:500;color:var(--text-primary)}.export-controls{margin-top:.5rem;padding-top:1rem;border-top:1px solid var(--border);display:grid;gap:.75rem}.export-controls label{margin-bottom:-.5rem}.export-controls button{background:var(--bg-panel);color:var(--text-primary);border:1px solid var(--border);box-shadow:none}.export-controls button:hover{background:var(--bg-subtle);border-color:var(--border-strong)}.export-controls p{font-size:.8rem;color:var(--strength);margin:0;text-align:center}.modal-backdrop{position:fixed;inset:0;background:#0006;backdrop-filter:blur(4px);display:grid;place-items:center;padding:1rem;z-index:20}.modal-panel{width:min(480px,100%);max-height:90vh;overflow-y:auto;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;display:grid;gap:1rem;box-shadow:var(--shadow-lg)}.modal-panel h2{margin:0;font-size:1.1rem;font-weight:600}.modal-panel label{font-size:.8rem;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.modal-panel select{font-size:.9rem;border-radius:var(--radius-md);border:1px solid var(--border);padding:.6rem .75rem;background:var(--bg-input)}.modal-panel select:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-light)}.modal-panel input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent)}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem;padding-top:.5rem}.modal-actions button{font-size:.9rem;font-weight:500;border-radius:var(--radius-md);border:none;padding:.6rem 1.2rem;cursor:pointer;transition:all .15s}.modal-actions button:first-child{background:transparent;color:var(--text-secondary);border:1px solid var(--border)}.modal-actions button:first-child:hover{background:var(--bg-subtle)}.modal-actions button:last-child{background:var(--accent);color:#fff}.modal-actions button:last-child:hover{background:var(--accent-hover)}.modal-actions button:disabled{opacity:.5;cursor:not-allowed}.calendar{display:grid;gap:1.5rem;align-content:start}.weekday-row{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem;position:sticky;top:0;z-index:2;background:var(--bg-page);padding:.5rem 0 1rem;border-bottom:1px solid var(--border)}.weekday-row span{font-size:.7rem;font-weight:500;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em;text-align:center}.week-row{display:grid;gap:.6rem}.week-row header{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.week-row h2,.week-row p{margin:0}.week-row h2{font-size:.95rem;font-weight:600}.week-row p{font-size:.8rem;color:var(--text-secondary)}.day-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem}.day-box{min-height:90px;border-radius:var(--radius-md);border:1px solid var(--border);padding:.5rem;display:grid;align-content:start;gap:.2rem;background:var(--bg-panel);text-align:left;font:inherit;cursor:pointer;transition:all .2s;box-shadow:var(--shadow-sm)}.day-box:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.day-box strong{font-size:.7rem;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em}.day-box span{font-size:.75rem;color:var(--text-primary);font-weight:500;line-height:1.3}.day-box .effort{font-size:.55rem;color:var(--text-tertiary);letter-spacing:.1em;margin-top:auto}.type-strength{border-color:var(--strength);background:var(--strength-bg)}.type-strength .effort{color:var(--strength)}.type-endurance{border-color:var(--endurance);background:var(--endurance-bg)}.type-endurance .effort{color:var(--endurance)}.type-mixed{border-color:var(--mixed);background:var(--mixed-bg)}.type-mixed .effort{color:var(--mixed)}.type-deload{border-color:var(--deload);background:var(--deload-bg)}.type-deload .effort{color:var(--deload)}.type-rest,.type-recovery{border-color:var(--border);background:var(--rest-bg)}.type-rest strong,.type-recovery strong{color:var(--text-tertiary)}.day-details{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;align-self:start;position:sticky;top:1.5rem;box-shadow:var(--shadow-md)}.day-details h2{margin:0 0 1rem;font-size:1rem;font-weight:600;letter-spacing:-.01em}.day-details h3{margin:1rem 0 .4rem;font-size:.85rem;font-weight:600;color:var(--text-primary)}.day-details p{margin:.3rem 0;font-size:.85rem;color:var(--text-secondary);line-height:1.5}.day-details ul{margin:.5rem 0 0;padding-left:1.1rem;display:grid;gap:.4rem}.day-details li{font-size:.82rem;color:var(--text-primary);line-height:1.4}.session-content{display:grid;gap:.2rem}@media(max-width:1100px){.planner-shell{grid-template-columns:1fr 320px;padding-top:4.5rem}.controls{grid-column:1 / -1;position:static;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.75rem}.controls h1{grid-column:1 / -1}.controls label{grid-column:1}.controls select,.controls input{grid-column:2}.export-controls{grid-column:1 / -1;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}}@media(max-width:800px){.planner-shell{grid-template-columns:1fr;padding:4.75rem 1rem 1rem}.theme-switcher{top:.75rem;right:.75rem}.controls{display:flex;flex-direction:column}.day-grid,.weekday-row{grid-template-columns:repeat(7,minmax(60px,1fr))}}.start-tracking-button{width:100%;margin-top:1rem;padding:.65rem 1rem;border:none;border-radius:var(--radius-md);background:var(--strength);color:#fff;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .15s}.start-tracking-button:hover{background:#047857}.tracking-view{display:grid;grid-template-columns:240px 1fr;gap:1.5rem;padding:2rem;min-height:calc(100vh - 42px)}.tracking-sidebar{position:sticky;top:1.5rem;align-self:start}.tracking-sidebar h2{font-size:1.1rem;color:var(--text-primary);margin:0 0 1rem}.week-nav{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}.week-nav-button{width:100%;display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-panel);color:var(--text-primary);font-size:.875rem;cursor:pointer;transition:background .15s}.week-nav-button:hover{background:var(--bg-subtle)}.week-nav-button.is-active{background:var(--accent-light);border-color:var(--accent);color:var(--accent);font-weight:600}.week-progress{font-size:.75rem;color:var(--text-tertiary)}.week-nav-button.has-data{border-color:var(--mixed);background:var(--mixed-bg)}.week-nav-button.is-complete{border-color:var(--strength);background:var(--strength-bg)}.week-nav-button.is-complete .week-progress{color:var(--strength)}.stop-tracking-button,.export-tracking-button{width:100%;margin-top:.5rem;padding:.5rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.8rem;cursor:pointer;transition:background .15s}.export-tracking-button{background:var(--accent);color:#fff;border-color:var(--accent)}.export-tracking-button:hover{background:var(--accent-hover)}.export-tracking-button:disabled{opacity:.6;cursor:not-allowed}.stop-tracking-button{background:var(--bg-panel);color:var(--text-secondary)}.stop-tracking-button:hover{background:var(--bg-subtle);color:var(--text-primary)}.day-selector h3{font-size:1rem;color:var(--text-primary);margin:0 0 1rem}.day-buttons{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.75rem}.day-select-button{display:flex;flex-direction:column;gap:.25rem;padding:1rem;border:2px solid var(--border);border-radius:var(--radius-md);background:var(--bg-panel);cursor:pointer;text-align:left;transition:border-color .15s,box-shadow .15s}.day-select-button:hover{border-color:var(--accent);box-shadow:var(--shadow-sm)}.day-select-button.is-complete{border-color:var(--strength);background:var(--strength-bg)}.day-select-button strong{font-size:.875rem;color:var(--text-primary)}.day-select-button span{font-size:.8rem;color:var(--text-secondary)}.day-select-button.has-data{border-color:var(--mixed);background:var(--mixed-bg)}.check-mark{color:var(--strength);font-weight:600}.in-progress-mark{color:var(--mixed);font-weight:600;font-size:.75rem}.back-button{margin-bottom:1rem;padding:.35rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-panel);color:var(--text-secondary);font-size:.8rem;cursor:pointer}.back-button:hover{background:var(--bg-subtle)}.session-tracker{max-width:700px}.session-header{margin-bottom:1.5rem}.session-header h3{margin:0;font-size:1.1rem;color:var(--text-primary)}.session-title{margin:.25rem 0 0;color:var(--text-secondary);font-size:.9rem}.session-complete-badge{display:inline-block;margin-top:.5rem;padding:.2rem .6rem;border-radius:var(--radius-sm);background:var(--strength-bg);color:var(--strength);font-size:.75rem;font-weight:600}.tracking-block{margin-bottom:1.5rem}.tracking-block.is-warmup{opacity:.8}.block-title{font-size:.85rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin:0 0 .75rem;padding-bottom:.35rem;border-bottom:1px solid var(--border)}.tracking-block.is-warmup .block-title{color:var(--deload)}.exercise-tracker{margin-bottom:1.25rem;padding:.75rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-panel)}.exercise-tracker.is-warmup{background:var(--bg-subtle);border-style:dashed}.exercise-header{display:flex;align-items:baseline;gap:.75rem;margin-bottom:.5rem}.exercise-name{font-weight:600;font-size:.9rem;color:var(--text-primary)}.exercise-prescription{font-size:.8rem;color:var(--text-secondary)}.exercise-slot{font-size:.7rem;color:var(--text-tertiary);padding:.1rem .4rem;border:1px solid var(--border);border-radius:var(--radius-sm)}.sets-grid{font-size:.8rem}.sets-header{display:grid;grid-template-columns:2rem 5rem 4rem 2.5rem;gap:.5rem;padding:.25rem 0;color:var(--text-tertiary);font-size:.7rem;text-transform:uppercase;letter-spacing:.04em}.set-row{display:grid;grid-template-columns:2rem 5rem 4rem 2.5rem;gap:.5rem;padding:.25rem 0;align-items:center}.set-row.is-completed{opacity:.65}.set-row.is-warmup-set{background:var(--bg-subtle);box-shadow:inset 3px 0 0 var(--deload);border-radius:var(--radius-sm)}.set-row.is-warmup-set .set-number{color:var(--deload);font-weight:600;font-size:.7rem}.set-row.is-warmup-set .weight-input{border-style:dashed}.set-number{color:var(--text-tertiary);font-size:.8rem;text-align:center}.weight-cell{position:relative}.weight-input,.reps-input{width:100%;padding:.3rem .4rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-primary);font-size:.8rem;text-align:right}.weight-input:focus,.reps-input:focus{outline:none;border-color:var(--border-focus)}.set-checkbox{width:1rem;height:1rem;cursor:pointer;accent-color:var(--accent)}.exercise-notes{margin-top:.5rem}.notes-input{width:100%;padding:.3rem .5rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-primary);font-size:.8rem}.notes-input:focus{outline:none;border-color:var(--border-focus)}@media(max-width:800px){.tracking-view{grid-template-columns:1fr;padding:1rem}.tracking-sidebar{position:static}.week-nav{flex-direction:row;flex-wrap:wrap}.week-nav-button{width:auto}.day-buttons{grid-template-columns:1fr}}.app-shell{min-height:100vh;background:var(--bg-page)}.tab-bar{display:flex;gap:.25rem;padding:.5rem 2rem 0;background:var(--bg-panel);border-bottom:1px solid var(--border)}.tab-button{padding:.5rem 1rem;border:1px solid var(--border);border-bottom:none;border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:var(--bg-subtle);color:var(--text-secondary);font-size:.875rem;font-weight:500;cursor:pointer;transition:background .15s,color .15s}.tab-button:hover{background:var(--bg-panel);color:var(--text-primary)}.tab-button.is-active{background:var(--bg-page);color:var(--text-primary);border-bottom:1px solid var(--bg-page);margin-bottom:-1px}
