:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#ecf2f8;background:#0d1117;font-synthesis:none;--bg:#0d1117;--panel:#151b23;--panel2:#1b222c;--line:#293342;--muted:#8f9bad;--text:#edf3f9;--green:#63e6be;--blue:#74c0fc;--orange:#ffd43b;--red:#ff8787;--purple:#b197fc}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;background:var(--bg)}button,input,textarea{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.app-shell,.editor-shell{min-height:100vh;padding-bottom:92px}.topbar,.editor-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:18px 18px 12px;background:linear-gradient(180deg,#0d1117 75%,#0d111700);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.topbar h1,.editor-header h1{font-size:24px;margin:1px 0 0;letter-spacing:-.04em}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.18em;color:var(--green)}.week-pill,.save-top,.back-btn{border:1px solid var(--line);background:var(--panel);border-radius:14px;padding:9px 12px;font-weight:800}.back-btn{font-size:28px;padding:2px 13px}.save-top{color:var(--green)}main{max-width:760px;margin:0 auto}.page,.editor-content{padding:8px 16px 26px}.hero-card,.info-card,.exercise-card,.field-card,.progress-card,.settings-card{background:linear-gradient(180deg,var(--panel),#111820);border:1px solid var(--line);border-radius:20px}.hero-card{padding:18px}.week-switcher{display:grid;grid-template-columns:40px 1fr 40px;gap:12px;align-items:center;text-align:center}.week-switcher button{height:40px;border:1px solid var(--line);border-radius:12px;background:var(--panel2);font-size:24px}.week-switcher button:disabled{opacity:.25}.small-label{display:block;color:var(--green);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.12em}.week-switcher strong{display:block;font-size:15px;margin-top:4px}.progress-track{height:8px;background:#232d39;border-radius:999px;margin:18px 0 8px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--green),var(--blue));border-radius:999px}.hero-stats{display:flex;justify-content:space-between;color:var(--muted);font-size:12px}.hero-stats b{color:var(--text)}.hero-card p{color:#bdc7d4;line-height:1.5;margin:16px 0 10px}.chips{display:flex;flex-wrap:wrap;gap:7px}.chips span{padding:6px 9px;border-radius:999px;background:#1d2931;border:1px solid #29404a;font-size:11px;color:#bdeee1}.section-title{display:flex;justify-content:space-between;align-items:end;margin:24px 2px 10px}.section-title h2{font-size:18px;margin:0}.section-title span{color:var(--muted);font-size:11px}.session-grid{display:grid;gap:9px}.session-card,.history-item{width:100%;border:1px solid var(--line);border-radius:16px;background:var(--panel);padding:13px;display:grid;grid-template-columns:46px 1fr 30px;gap:12px;text-align:left;align-items:center}.session-card.done,.history-item.done{border-color:#2d5d53}.session-card.skipped{opacity:.55}.session-icon{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;font-size:21px;font-weight:900;background:#27303a}.session-icon.strength{color:var(--green);background:#15312d}.session-icon.run{color:var(--blue);background:#172c3b}.session-icon.bike{color:var(--orange);background:#332e17}.session-copy{min-width:0}.session-copy strong{display:block;font-size:15px;margin:3px 0}.session-copy small,.history-item small{display:block;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-top{display:flex;gap:6px;align-items:center}.day-badge,.optional{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#aab5c3}.optional{color:var(--orange)}.status{justify-self:end;width:26px;height:26px;border-radius:99px;display:grid;place-items:center;background:#222c37;color:#aab5c3}.status.done{background:#153c32;color:var(--green)}.status.skipped{background:#353137;color:#c5b7bf}.status.draft{background:#28314a;color:var(--blue)}.info-card{padding:14px 16px;margin-top:14px}.info-card b{color:var(--green)}.info-card p{font-size:12px;color:var(--muted);line-height:1.5;margin:5px 0 0}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:30;display:flex;justify-content:center;background:#0d1117f0;border-top:1px solid var(--line);padding:7px max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.bottom-nav button{flex:1;max-width:150px;border:0;background:transparent;color:#6f7c8c;display:grid;place-items:center;gap:1px;padding:4px}.bottom-nav button.active{color:var(--green)}.bottom-nav b{font-size:20px}.bottom-nav span{font-size:10px}.target-banner,.run-banner,.bike-banner{border-radius:18px;padding:15px;margin-bottom:12px;border:1px solid #29404a;background:linear-gradient(135deg,#12302b,#14252d)}.target-banner{display:flex;justify-content:space-between;align-items:center;gap:16px}.target-banner span,.run-banner span,.bike-banner span{display:block;color:#91a4b6;font-size:11px;text-transform:uppercase;letter-spacing:.09em}.target-banner b{font-size:25px;color:var(--green)}.target-banner p,.run-banner p,.bike-banner p{margin:0;color:#aab8c7;font-size:12px;line-height:1.45}.run-banner{display:grid;grid-template-columns:64px 1fr;gap:14px}.big-number{width:64px;height:64px;border-radius:17px;display:grid;place-items:center;font-size:30px;font-weight:900;color:var(--blue);background:#112a3a}.run-banner h2,.bike-banner h2{margin:3px 0 6px}.exercise-list{display:grid;gap:11px}.exercise-card{padding:14px}.exercise-heading{display:flex;justify-content:space-between;gap:10px;align-items:start}.exercise-heading h2{font-size:17px;margin:0}.exercise-heading span{font-size:12px;color:var(--green);font-weight:700}.timer-mini{border:1px solid var(--line);background:#202a35;border-radius:10px;font-size:11px;padding:7px 9px}.previous{font-size:11px;color:var(--muted);background:#11171e;border-radius:9px;padding:7px 9px;margin:10px 0}.previous b{color:#c5d0dc}.set-head,.set-row{display:grid;grid-template-columns:38px 1fr 1fr 1fr;gap:7px;align-items:center}.set-head{font-size:10px;color:#6f7c8c;text-transform:uppercase;text-align:center;padding:4px 0}.set-row{margin-bottom:7px}.set-row>b{text-align:center;color:#7d8998}.set-row input,.field-grid input,.common-fields input,.settings-card input{width:100%;border:1px solid #2c3744;background:#0f151c;color:var(--text);border-radius:10px;padding:10px 8px;text-align:center}.add-set{border:0;background:transparent;color:#7f91a5;font-size:11px;padding:6px 0}.field-card{padding:14px;margin-top:12px}.field-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:11px}.field-grid label,.common-fields label,.settings-card label{display:grid;gap:5px}.field-grid label span,.common-fields label span,.settings-card label span{font-size:11px;color:#8f9bad}.common-fields{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.notes-label{grid-column:1/-1}.common-fields textarea{width:100%;resize:vertical;border:1px solid #2c3744;background:#0f151c;color:var(--text);border-radius:12px;padding:11px;line-height:1.45}.editor-actions{display:grid;gap:8px;margin:16px 0 10px}.editor-actions button,.settings-actions button,.settings-card>button{border:1px solid var(--line);background:#1c2530;border-radius:13px;padding:12px;font-weight:750}.editor-actions .primary,.settings-actions .primary,.settings-card>.primary{background:#1b5a49;border-color:#287662;color:#d6fff2}.editor-actions .danger-text{border-color:transparent;background:transparent;color:#ff9a9a}.segmented{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:10px 0}.segmented button{border:1px solid var(--line);background:var(--panel);border-radius:10px;padding:9px 5px;font-size:11px}.segmented button.active{border-color:#a98d1c;background:#332e17;color:#ffe784}.rest-timer{position:fixed;left:12px;right:12px;bottom:82px;z-index:50;max-width:520px;margin:auto;border:1px solid #31514d;border-radius:17px;background:#10221f;box-shadow:0 14px 50px #00000080;overflow:hidden;display:flex;align-items:center;justify-content:space-between;padding:10px 12px}.timer-progress{position:absolute;bottom:0;left:0;height:3px;background:var(--green);transition:width 1s linear}.rest-timer.finished{background:#16312c}.rest-timer small{display:block;color:#9db0ac;font-size:10px}.rest-timer b{font-size:24px;color:var(--green)}.timer-buttons{display:flex;gap:6px}.timer-buttons button{border:1px solid #31514d;background:#17322d;border-radius:9px;padding:8px;color:#d3f9ed}.history-list{display:grid;gap:8px}.history-item{grid-template-columns:46px 1fr 30px}.history-item div:nth-child(2){min-width:0}.history-item strong{display:block}.stat-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.stat-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px 7px;text-align:center}.stat-card b{display:block;font-size:20px;color:var(--green)}.stat-card span{font-size:9px;color:var(--muted);text-transform:uppercase}.progress-card{padding:15px;margin-top:12px}.progress-card h3,.settings-card h3{margin:0 0 5px}.muted{color:var(--muted);font-size:12px;line-height:1.5}.trend-row{display:grid;grid-template-columns:130px 1fr;gap:12px;align-items:center;padding:12px 0;border-top:1px solid #242e39}.trend-row strong,.trend-row small{display:block}.trend-row small{color:var(--muted);font-size:10px;margin-top:2px}.spark-bars{height:48px;display:flex;align-items:end;gap:3px}.spark-bars span{flex:1;min-width:5px;max-width:18px;background:linear-gradient(180deg,var(--green),#2e7f70);border-radius:3px 3px 1px 1px}.endurance-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.endurance-summary div{background:#10171e;border-radius:12px;padding:11px;text-align:center}.endurance-summary b{display:block;font-size:19px;color:var(--blue)}.endurance-summary span{font-size:9px;color:var(--muted)}.settings-card{padding:15px;margin-bottom:11px}.settings-card p{line-height:1.5}.settings-card label{max-width:300px}.settings-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.danger-zone{border-color:#4e2b32}.danger-zone button{color:#ffb4b4}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:90px;z-index:80;background:#e9fff8;color:#0f3b30;border-radius:999px;padding:10px 16px;font-weight:800;font-size:12px;box-shadow:0 10px 35px #00000073}.loading{min-height:100vh;display:grid;place-content:center;text-align:center;color:var(--muted)}.spinner{width:34px;height:34px;border:3px solid #25303b;border-top-color:var(--green);border-radius:50%;animation:spin .8s linear infinite;margin:auto}.empty{padding:50px 20px;text-align:center;color:var(--muted)}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:520px){.stat-grid{grid-template-columns:repeat(3,1fr)}.target-banner{align-items:start;flex-direction:column}.common-fields{grid-template-columns:1fr}.notes-label{grid-column:auto}.field-grid,.segmented{grid-template-columns:repeat(2,1fr)}.settings-actions{grid-template-columns:1fr}.trend-row{grid-template-columns:110px 1fr}.topbar,.editor-header{padding-left:14px;padding-right:14px}.page,.editor-content{padding-left:12px;padding-right:12px}}.topbar-actions{display:flex;align-items:center;gap:8px}.auth-pill{height:38px;border:1px solid var(--line);border-radius:999px;background:#171f29;color:#9eabb9;padding:0 12px;font-size:11px;font-weight:800}.auth-pill.editing{border-color:#2d6a5d;background:#15352f;color:var(--green)}.readonly-banner{max-width:680px;margin:10px auto 0;padding:10px 14px;border:1px solid #3b4654;border-radius:12px;background:#171e27;color:#9eaab8;font-size:12px}.login-top{background:#24303d!important;color:#d9e4ef!important}.editor-shell.is-readonly .editor-content input,.editor-shell.is-readonly .editor-content textarea{pointer-events:none;opacity:.72}.editor-shell.is-readonly .editor-content .add-set,.editor-shell.is-readonly .editor-content .segmented button{pointer-events:none;opacity:.62}.readonly-actions{grid-template-columns:1fr}.auth-card{border-color:#384554}.auth-card.authenticated{border-color:#2f665a}.auth-card b{color:var(--green)}.settings-card button:disabled{opacity:.42;cursor:not-allowed}.modal-backdrop{position:fixed;inset:0;z-index:100;background:#04080cc2;display:grid;place-items:center;padding:18px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.login-modal{width:min(420px,100%);background:linear-gradient(180deg,#161f28,#10161d);border:1px solid #34414f;border-radius:22px;padding:18px;box-shadow:0 30px 90px #0009}.login-modal-head{display:flex;justify-content:space-between;align-items:start}.login-modal-head h2{margin:3px 0 0;font-size:22px}.login-modal-head>button{border:1px solid var(--line);background:#202a35;border-radius:10px;width:36px;height:36px;font-size:21px}.login-modal p{color:#9cabb9;font-size:12px;line-height:1.55}.login-modal label{display:grid;gap:6px;margin:12px 0}.login-modal label span{font-size:11px;color:#8f9bad}.login-modal input{width:100%;border:1px solid #334150;background:#0c1218;color:var(--text);border-radius:11px;padding:12px}.login-error{border:1px solid #6b343c;background:#321a20;color:#ffb0b8;border-radius:10px;padding:9px 11px;font-size:12px;margin:10px 0}.login-submit{width:100%;border:1px solid #287662;background:#1b5a49;color:#d6fff2;border-radius:12px;padding:12px;font-weight:800}.login-submit:disabled{opacity:.5}@media(max-width:520px){.auth-pill{padding:0 9px;font-size:10px}.topbar-actions{gap:6px}}.password-form{display:grid;gap:12px;margin-top:14px}.password-form label{display:grid;gap:6px}.password-form input{width:100%}.success-message{padding:10px 12px;border-radius:10px;background:#2f9e441f;font-size:.9rem}
