:root{--bg: #000000;--surface-1: #0f0f14;--surface-2: #16161e;--surface-3: #1e1e28;--surface-4: #26263a;--border-1: #2a2a3e;--border-2: #38384e;--border-3: #4a4a64;--txt-primary: #ffffff;--txt-secondary: #b8b8d0;--txt-tertiary: #7878a0;--txt-disabled: #44446a;--accent: #5b9aff;--accent-dim: #1e3a6e;--accent-glow: rgba(91,154,255,.2);--col-recovery-bg: #051a0e;--col-recovery-bd: #22884a;--col-recovery-tx: #2ecc6e;--col-easy-bg: #1a1100;--col-easy-bd: #8a6c00;--col-easy-tx: #ffd230;--col-tempo-bg: #1a0000;--col-tempo-bd: #aa1a1a;--col-tempo-tx: #ff4040;--col-long-bg: #000a1a;--col-long-bd: #1a4aaa;--col-long-tx: #4db8ff;--col-strength-bg: #0e0018;--col-strength-bd: #7a22cc;--col-strength-tx: #cc66ff;--col-rest-bg: #0a0a12;--col-rest-bd: #303050;--col-rest-tx: #606088;--col-race-bg: #1a0800;--col-race-bd: #cc5500;--col-race-tx: #ff8800;--font-body: "Inter", system-ui, sans-serif;--font-mono: "JetBrains Mono", monospace;--ease: cubic-bezier(.25,.46,.45,.94)}[data-theme=light]{--bg: #f0f0f6;--surface-1: #ffffff;--surface-2: #ebebf3;--surface-3: #e0e0ec;--surface-4: #d4d4e4;--border-1: #ccccde;--border-2: #bbbbce;--border-3: #a0a0bc;--txt-primary: #08080f;--txt-secondary: #303050;--txt-tertiary: #707090;--txt-disabled: #b0b0c8;--accent: #2255cc;--accent-dim: #b8ccff;--accent-glow: rgba(34,85,204,.1);--col-recovery-bg: #e0f8eb;--col-recovery-bd: #22aa55;--col-recovery-tx: #006622;--col-easy-bg: #fff8d0;--col-easy-bd: #cc9900;--col-easy-tx: #5a3c00;--col-tempo-bg: #ffe8e8;--col-tempo-bd: #cc2222;--col-tempo-tx: #990000;--col-long-bg: #e0eeff;--col-long-bd: #2266cc;--col-long-tx: #003399;--col-strength-bg: #f0e4ff;--col-strength-bd: #8833cc;--col-strength-tx: #550099;--col-rest-bg: #ebebf3;--col-rest-bd: #aaaacc;--col-rest-tx: #666688;--col-race-bg: #fff0d0;--col-race-bd: #cc6600;--col-race-tx: #7a3300}[data-density=compact] .day-row{min-height:unset}[data-density=compact] .wc-header{padding:7px 12px}[data-density=compact] .week-header{padding:11px 16px}[data-density=compact] .workout-card{margin-bottom:4px}[data-density=compact] .day-workouts{padding:6px 10px;gap:4px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--txt-primary);font-family:var(--font-body);font-size:15px;line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.app-layout{display:flex;flex-direction:column;min-height:100vh}.main-content{max-width:1360px;margin:0 auto;padding:24px 20px;width:100%}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:12px;color:var(--txt-tertiary)}.spinner{width:36px;height:36px;border:3px solid var(--border-2);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:60px 20px;color:var(--txt-tertiary);font-size:14px}.topbar{position:sticky;top:0;z-index:200;background:var(--surface-1);border-bottom:2px solid var(--border-3);display:flex;align-items:stretch;height:60px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.topbar-brand{padding:0 24px;display:flex;align-items:center;gap:10px;border-right:1px solid var(--border-1);min-width:200px}.brand-icon{width:28px;height:28px;background:var(--accent);border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:15px;color:#fff;font-weight:800;flex-shrink:0}.brand-icon.large{width:48px;height:48px;font-size:20px;border-radius:12px}.brand-text{font-size:15px;font-weight:700;color:var(--txt-primary);line-height:1.1}.brand-sub{font-size:12px;color:var(--txt-tertiary);font-weight:400;font-family:var(--font-mono)}.topbar-nav{display:flex;align-items:stretch;flex:1;padding:0 12px;gap:2px}.nav-btn{padding:0 18px;font-size:13px;font-weight:600;color:var(--txt-tertiary);cursor:pointer;border-bottom:2px solid transparent;display:flex;align-items:center;gap:6px;transition:color .15s,border-color .15s;text-transform:uppercase;letter-spacing:.6px;white-space:nowrap;text-decoration:none}.nav-btn:hover{color:var(--txt-secondary);text-decoration:none}.nav-btn.active{color:var(--accent);border-bottom-color:var(--accent)}.nav-btn .dot{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.7}.topbar-right{display:flex;align-items:center;gap:0;border-left:1px solid var(--border-1);padding:0}.countdown-chip{padding:0 20px;display:flex;align-items:center;gap:8px;border-right:1px solid var(--border-1);height:100%}.countdown-label{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--txt-tertiary)}.countdown-value{font-family:var(--font-mono);font-size:22px;font-weight:600;color:var(--accent);line-height:1}.countdown-unit{font-size:11px;text-transform:uppercase;color:var(--txt-tertiary);letter-spacing:.4px}.settings-btn{padding:0 18px;height:100%;display:flex;align-items:center;gap:6px;cursor:pointer;font-size:13px;font-weight:600;color:var(--txt-secondary);transition:color .15s,background .15s;letter-spacing:.3px;background:none;border:none;text-decoration:none}.settings-btn:hover{color:var(--txt-primary);background:var(--surface-2)}.auth-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg);padding:20px}.auth-card{background:var(--surface-2);border:1px solid var(--border-3);border-radius:16px;width:100%;max-width:420px;overflow:hidden;box-shadow:0 24px 64px #00000080}.auth-header{padding:32px 32px 20px;text-align:center}.auth-header h1{font-size:22px;font-weight:800;color:var(--txt-primary);margin-top:12px}.auth-header p{font-size:13px;color:var(--txt-tertiary);margin-top:4px}.auth-form{padding:0 32px 24px;display:flex;flex-direction:column;gap:16px}.auth-form label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--txt-tertiary)}.auth-form input{width:100%;background:var(--surface-4);border:1.5px solid var(--border-3);border-radius:6px;padding:10px 12px;color:var(--txt-primary);font-family:var(--font-body);font-size:14px;outline:none;transition:border-color .15s}.auth-form input:focus{border-color:var(--accent)}.auth-submit{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:12px;font-size:14px;font-weight:700;cursor:pointer;transition:opacity .15s;margin-top:4px}.auth-submit:hover{opacity:.85}.auth-submit:disabled{opacity:.5;cursor:not-allowed}.auth-error{background:#ff52521f;border:1px solid rgba(255,82,82,.25);color:#ff5252;border-radius:6px;padding:8px 12px;font-size:13px}.auth-footer{text-align:center;padding:16px 32px 24px;font-size:13px;color:var(--txt-tertiary)}.plan-hero{background:var(--surface-2);border:1px solid var(--border-3);border-radius:14px;padding:28px 32px;margin-bottom:20px;display:flex;gap:24px;align-items:center;flex-wrap:wrap;position:relative;overflow:hidden}.plan-hero:before{content:"";position:absolute;top:-60px;right:-60px;width:200px;height:200px;background:radial-gradient(circle,var(--accent-glow) 0%,transparent 70%);pointer-events:none}.hero-stat{text-align:center;min-width:90px}.hero-val{font-size:28px;font-weight:800;color:var(--txt-primary);font-family:var(--font-mono);letter-spacing:-1px;line-height:1}.hero-label{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--txt-tertiary);margin-top:4px}.hero-progress{flex:1;min-width:200px;height:6px;background:var(--border-2);border-radius:3px;overflow:hidden}.hero-progress-bar{height:100%;background:linear-gradient(90deg,var(--accent),#88bbff);border-radius:3px;transition:width .6s var(--ease)}.phase-filter{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:18px}.phase-tab{padding:7px 16px;border-radius:20px;font-size:12px;font-weight:600;cursor:pointer;background:var(--surface-2);border:1px solid var(--border-1);color:var(--txt-tertiary);transition:all .15s;letter-spacing:.3px}.phase-tab:hover{border-color:var(--border-3);color:var(--txt-secondary)}.phase-tab.active{background:var(--accent);border-color:var(--accent);color:#fff}.week-card{background:var(--surface-2);border:1px solid var(--border-3);border-radius:12px;margin-bottom:10px;overflow:hidden;transition:border-color .2s}.week-card:hover,.week-card.is-open{border-color:var(--accent-dim)}.week-header{padding:14px 20px;cursor:pointer;display:grid;grid-template-columns:52px 1fr auto;gap:14px;align-items:center;transition:background .15s;-webkit-user-select:none;user-select:none}.week-header:hover{background:var(--surface-3)}.week-num-box{background:var(--surface-3);border:1px solid var(--border-2);border-radius:8px;text-align:center;padding:6px 4px}.week-num-box.recovery{background:color-mix(in srgb,var(--col-recovery-bg) 40%,var(--surface-3));border-color:var(--col-recovery-bd)}.week-num-box.race-wk{background:color-mix(in srgb,var(--col-race-bg) 60%,var(--surface-3));border-color:var(--col-race-bd)}.week-num-big{font-size:18px;font-weight:800;color:var(--txt-primary);font-family:var(--font-mono);line-height:1}.week-num-lbl{font-size:10px;text-transform:uppercase;color:var(--txt-tertiary);letter-spacing:.4px;margin-top:1px}.week-phase-tag{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.7px;margin-bottom:3px}.phase-tag-rc{color:#3ddc7a}.phase-tag-ab{color:#f5c518}.phase-tag-tb{color:#ff5252}.phase-tag-pk{color:var(--accent)}.week-focus{font-size:15px;font-weight:600;color:var(--txt-primary);line-height:1.3}.week-right{display:flex;align-items:center;gap:20px}.wstat{text-align:right}.wstat-val{font-size:18px;font-weight:700;color:var(--txt-primary);font-family:var(--font-mono);line-height:1}.wstat-lbl{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--txt-tertiary);margin-top:2px}.comp-ring{position:relative;width:38px;height:38px;flex-shrink:0}.comp-ring svg{position:absolute;top:0;right:0;bottom:0;left:0;transform:rotate(-90deg)}.comp-ring-track{stroke:var(--border-3);fill:none;stroke-width:3}.comp-ring-fill{fill:none;stroke-width:3;stroke-linecap:round;transition:stroke-dashoffset .5s var(--ease)}.comp-ring-label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;font-family:var(--font-mono)}.week-chevron{color:var(--txt-secondary);font-size:20px;transition:transform .2s var(--ease);flex-shrink:0}.week-card.is-open .week-chevron{transform:rotate(90deg)}.week-body{border-top:1px solid var(--border-1)}.week-summary{background:var(--surface-3);border-bottom:1px solid var(--border-1);padding:14px 20px;display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px}.wsm-label{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--txt-tertiary);margin-bottom:3px}.wsm-val{font-size:15px;font-weight:600;color:var(--txt-primary)}.days-grid{display:block}.day-row{display:grid;grid-template-columns:72px 1fr;border-bottom:1px solid var(--border-1)}.day-row:last-child{border-bottom:none}.day-label{padding:12px 14px;border-right:2px solid var(--border-2);background:var(--surface-3);display:flex;flex-direction:column;gap:2px}.day-name{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--txt-tertiary)}.day-date{font-size:13px;font-weight:500;color:var(--txt-secondary);font-family:var(--font-mono)}.day-workouts{padding:8px 12px;display:flex;flex-direction:column;gap:6px}.wcard{border-radius:8px;border:1px solid;overflow:hidden}.wcard.easy{background:var(--col-easy-bg);border-color:var(--col-easy-bd)}.wcard.recovery{background:var(--col-recovery-bg);border-color:var(--col-recovery-bd)}.wcard.tempo,.wcard.threshold,.wcard.interval{background:var(--col-tempo-bg);border-color:var(--col-tempo-bd)}.wcard.long{background:var(--col-long-bg);border-color:var(--col-long-bd)}.wcard.strength{background:var(--col-strength-bg);border-color:var(--col-strength-bd)}.wcard.rest{background:var(--col-rest-bg);border-color:var(--col-rest-bd);opacity:.85}.wcard.race{background:var(--col-race-bg);border-color:var(--col-race-bd)}.wcard-header{padding:9px 12px;display:flex;align-items:center;gap:8px;cursor:pointer}.wcard.rest .wcard-header{cursor:default}.wcard-type-bar{width:3px;height:20px;border-radius:2px;flex-shrink:0;background:var(--wc-tx, var(--txt-tertiary))}.wcard.easy .wcard-type-bar{background:var(--col-easy-tx)}.wcard.recovery .wcard-type-bar{background:var(--col-recovery-tx)}.wcard.tempo .wcard-type-bar,.wcard.threshold .wcard-type-bar,.wcard.interval .wcard-type-bar{background:var(--col-tempo-tx)}.wcard.long .wcard-type-bar{background:var(--col-long-tx)}.wcard.strength .wcard-type-bar{background:var(--col-strength-tx)}.wcard.rest .wcard-type-bar{background:var(--col-rest-tx)}.wcard.race .wcard-type-bar{background:var(--col-race-tx)}.wcard-name{font-size:15px;font-weight:700;flex:1;color:var(--txt-primary);line-height:1.3}.wcard.rest .wcard-name{color:var(--col-rest-tx);font-weight:500}.wcard-badges{display:flex;gap:5px;flex-wrap:wrap;align-items:center}.badge{font-size:11px;font-family:var(--font-mono);font-weight:600;padding:2px 7px;border-radius:4px;white-space:nowrap}.badge-dist{background:#5b8dee33;color:#8bf;border:1px solid rgba(91,141,238,.25)}.badge-dur{background:#ffffff0d;color:var(--txt-tertiary);border:1px solid var(--border-1)}.badge-zone{background:#ffffff0d;color:var(--txt-secondary);border:1px solid var(--border-1)}.badge-pace{background:#ffffff14;color:var(--txt-secondary);border:1px solid var(--border-2)}.badge-mix{background:#ff8c0026;color:#ff8c00;border:1px solid rgba(255,140,0,.2);font-size:9px}[data-theme=light] .badge-dist{background:#3366dd1f;color:#1a44aa}.wcard-chevron{font-size:16px;color:var(--txt-tertiary);transition:transform .18s;flex-shrink:0}.wcard.is-open .wcard-chevron{transform:rotate(90deg)}.wcard-detail{border-top:2px solid;padding:16px;background:var(--surface-1)}.wcard.easy .wcard-detail{border-color:var(--col-easy-bd)}.wcard.recovery .wcard-detail{border-color:var(--col-recovery-bd)}.wcard.tempo .wcard-detail,.wcard.threshold .wcard-detail,.wcard.interval .wcard-detail{border-color:var(--col-tempo-bd)}.wcard.long .wcard-detail{border-color:var(--col-long-bd)}.wcard.strength .wcard-detail{border-color:var(--col-strength-bd)}.wcard.race .wcard-detail{border-color:var(--col-race-bd)}.spec-table{width:100%;border-collapse:collapse;margin-bottom:12px;font-size:15px}.spec-table th{display:none}.spec-table td{padding:9px 12px;border-bottom:1px solid var(--border-2);color:var(--txt-primary);background:transparent;vertical-align:top}.spec-table td:first-child{color:var(--txt-secondary);font-size:13px;text-transform:uppercase;letter-spacing:.4px;font-weight:600;white-space:nowrap}.spec-table td.mono{font-family:var(--font-mono);color:var(--txt-primary);font-weight:600}.spec-table tr:last-child td{border-bottom:none}.wcard-notes{font-size:13px;color:var(--txt-secondary);line-height:1.7;background:var(--surface-3);border:1px solid var(--border-3);border-radius:7px;padding:10px 12px;white-space:pre-line;margin-bottom:12px;font-family:var(--font-mono)}[data-theme=light] .wcard-notes{background:#00000008}.log-section{margin-top:14px;border-top:2px solid var(--border-2);padding-top:12px}.log-heading{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--txt-tertiary);margin-bottom:10px;display:flex;align-items:center;gap:6px}.log-heading:before{content:"";display:block;width:8px;height:2px;background:var(--accent);border-radius:1px}.log-fields{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:10px}.log-field-label{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--txt-tertiary);margin-bottom:4px;font-weight:600}.log-input{width:100%;background:var(--surface-4);border:1.5px solid var(--border-3);border-radius:6px;padding:8px 10px;color:var(--txt-primary);font-family:var(--font-mono);font-size:13px;font-weight:500;outline:none;transition:border-color .15s}.log-input:focus{border-color:var(--accent)}.log-input::placeholder{color:var(--txt-disabled)}.log-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.btn-save{background:var(--accent);color:#fff;border:none;border-radius:6px;padding:6px 16px;font-size:13px;font-weight:700;cursor:pointer;letter-spacing:.3px;transition:opacity .15s}.btn-save:hover{opacity:.85}.btn-clear{background:none;color:var(--txt-tertiary);border:1px solid var(--border-2);border-radius:6px;padding:6px 14px;font-size:13px;font-weight:600;cursor:pointer}.btn-clear:hover{color:var(--txt-secondary);border-color:var(--border-3)}.comp-pill{font-size:13px;font-family:var(--font-mono);font-weight:700;padding:4px 12px;border-radius:20px;border:1px solid}.comp-pill.great{background:#3ddc7a1f;color:#3ddc7a;border-color:#3ddc7a40}.comp-pill.ok{background:#f5c5181a;color:#f5c518;border-color:#f5c51833}.comp-pill.low{background:#ff52521a;color:#ff5252;border-color:#ff525233}.str-session{margin-top:8px}.str-session-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.7px;color:var(--col-strength-tx);margin-bottom:14px;display:flex;align-items:center;gap:8px}.str-session-label:before{content:"";display:block;width:14px;height:3px;background:var(--col-strength-tx);border-radius:2px}.str-table{width:100%;border-collapse:collapse;font-size:13px;margin-bottom:12px}.str-table thead tr{background:var(--surface-4)}[data-theme=light] .str-table thead tr{background:var(--surface-3)}.str-table th{padding:10px 12px;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:#fff;font-weight:700;text-align:left;border-bottom:2px solid var(--border-3)}.str-table td{padding:10px 12px;border-bottom:1px solid var(--border-2);color:var(--txt-secondary);vertical-align:top;font-size:13px}.str-table tr:last-child td{border-bottom:none}.str-table td.ex-name{font-weight:700;color:var(--txt-primary)}.str-table td.mono{font-family:var(--font-mono);font-weight:600;color:var(--col-strength-tx);font-size:13px}.str-table td.load-col{color:#c6f;font-family:var(--font-mono);font-size:13px;font-weight:600}.str-table td.note-col{color:var(--txt-secondary);font-size:12px;max-width:220px}.str-ex-row{transition:background .2s,opacity .2s}.str-ex-row.ex-done{background:#00000026;opacity:.65}[data-theme=light] .str-ex-row.ex-done{background:#0000000a;opacity:.7}.ex-name-done{text-decoration:line-through;color:var(--txt-tertiary)!important}.tempo-col{color:var(--txt-tertiary);font-size:12px;white-space:nowrap}.str-log-footer{margin-top:14px;padding-top:14px;border-top:2px solid var(--border-2);display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap}.str-check-actions{display:flex;gap:8px;align-items:center;flex-shrink:0}.btn-str-all{background:var(--col-strength-tx);color:#000;border:none;border-radius:7px;padding:8px 18px;font-size:12px;font-weight:700;cursor:pointer;transition:opacity .15s;white-space:nowrap}.btn-str-all:hover{opacity:.85}.btn-str-clear{background:none;color:var(--txt-tertiary);border:1.5px solid var(--border-3);border-radius:7px;padding:7px 14px;font-size:12px;font-weight:600;cursor:pointer}.btn-str-clear:hover{color:var(--txt-secondary);border-color:var(--border-3)}.str-note-wrap{flex:1;min-width:200px}.analytics-page h2{font-size:24px;font-weight:800;margin-bottom:20px;color:var(--txt-primary)}.overview-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:24px}.ov-stat{background:var(--surface-2);border:1px solid var(--border-3);border-radius:12px;padding:18px 20px;position:relative;overflow:hidden}.ov-stat:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--accent);opacity:.5}.ov-val{font-size:28px;font-weight:800;color:var(--txt-primary);font-family:var(--font-mono);letter-spacing:-1px;line-height:1;margin-bottom:6px}.ov-label{font-size:12px;text-transform:uppercase;letter-spacing:.6px;color:var(--txt-tertiary);font-weight:600}.charts-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.chart-panel{background:var(--surface-2);border:1px solid var(--border-3);border-radius:12px;padding:20px 20px 16px;overflow:hidden}.chart-title{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--txt-tertiary);margin-bottom:18px;display:flex;align-items:center;gap:8px}.chart-title:before{content:"";display:block;width:10px;height:3px;background:var(--accent);border-radius:2px}canvas{display:block;width:100%!important}.pr-page h2{font-size:24px;font-weight:800;margin-bottom:20px;color:var(--txt-primary)}.pr-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.pr-header h2{margin-bottom:0}.pr-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.pr-card{background:var(--surface-2);border:1px solid var(--border-3);border-radius:12px;padding:20px}.pr-dist{font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--txt-tertiary);margin-bottom:8px}.pr-time{font-size:32px;font-weight:800;color:var(--accent);font-family:var(--font-mono);letter-spacing:-1px;line-height:1}.pr-pace{font-size:14px;color:var(--txt-secondary);font-family:var(--font-mono);margin-top:6px}.pr-event{font-size:13px;color:var(--txt-primary);margin-top:6px}.pr-date{font-size:12px;color:var(--txt-tertiary);font-family:var(--font-mono)}.pr-empty{font-size:13px;color:var(--txt-tertiary);padding:12px 0}.pr-history{margin-top:14px;border-top:1px solid var(--border-1);padding-top:10px}.pr-history-title{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--txt-tertiary);font-weight:600;margin-bottom:8px}.pr-history-item{display:flex;align-items:center;gap:12px;padding:6px 0;font-size:13px;color:var(--txt-secondary);border-bottom:1px solid var(--border-1)}.pr-history-item:last-child{border-bottom:none}.pr-history-item .btn-icon-sm{margin-left:auto}.reports-page h2{font-size:24px;font-weight:800;margin-bottom:20px;color:var(--txt-primary)}.reports-list{display:flex;flex-direction:column;gap:12px}.report-card{background:var(--surface-2);border:1px solid var(--border-3);border-radius:12px;padding:20px}.report-header{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}.report-wk{font-size:16px;font-weight:800;color:var(--txt-primary);font-family:var(--font-mono)}.report-phase{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.7px}.report-trend{font-size:12px;font-weight:600;margin-left:auto}.trend-improving{color:#3ddc7a}.trend-stable{color:#f5c518}.trend-declining{color:#ff5252}.report-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:14px}.rstat{text-align:center}.rstat-val{font-size:16px;font-weight:700;color:var(--txt-primary);font-family:var(--font-mono);line-height:1}.rstat-label{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--txt-tertiary);margin-top:4px}.report-bar{height:4px;background:var(--border-2);border-radius:2px;overflow:hidden}.report-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent),#88bbff);border-radius:2px;transition:width .4s var(--ease)}.settings-page h2{font-size:24px;font-weight:800;margin-bottom:20px;color:var(--txt-primary)}.settings-section{background:var(--surface-2);border:1px solid var(--border-3);border-radius:12px;padding:20px;margin-bottom:16px}.settings-section h3{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--txt-tertiary);margin-bottom:14px}.settings-section .setting-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border-1)}.settings-section .setting-row:last-child{border-bottom:none}.mono{font-family:var(--font-mono)}.seg-ctrl{display:flex;background:var(--surface-3);border:1px solid var(--border-1);border-radius:7px;overflow:hidden}.seg-btn{flex:1;padding:7px 12px;font-size:12px;font-weight:600;color:var(--txt-tertiary);cursor:pointer;text-align:center;transition:all .15s;white-space:nowrap;background:none;border:none}.seg-btn.active{background:var(--accent);color:#fff}.export-buttons{display:flex;gap:10px;flex-wrap:wrap}.btn-primary{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:8px 20px;font-size:13px;font-weight:700;cursor:pointer;transition:opacity .15s}.btn-primary:hover{opacity:.85}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:none;color:var(--txt-secondary);border:1px solid var(--border-2);border-radius:8px;padding:8px 18px;font-size:13px;font-weight:600;cursor:pointer}.btn-secondary:hover{color:var(--txt-primary);border-color:var(--border-3)}.btn-icon-sm{background:none;border:none;color:var(--txt-tertiary);cursor:pointer;font-size:16px;padding:2px 6px;border-radius:4px}.btn-icon-sm:hover{color:var(--txt-secondary);background:var(--surface-3)}.modal-overlay{display:flex;position:fixed;top:0;right:0;bottom:0;left:0;z-index:400;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);align-items:center;justify-content:center}.modal-card,.modal-box{background:var(--surface-2);border:1px solid var(--border-3);border-radius:16px;width:100%;max-width:560px;margin:20px;padding:24px;display:flex;flex-direction:column;gap:16px;max-height:calc(100vh - 40px);overflow-y:auto;box-shadow:0 24px 64px #00000080}.modal-card h3{font-size:18px;font-weight:700;color:var(--txt-primary)}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:8px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--txt-tertiary)}.form-grid input,.form-grid select{background:var(--surface-4);border:1.5px solid var(--border-3);border-radius:6px;padding:8px 10px;color:var(--txt-primary);font-family:var(--font-mono);font-size:13px;outline:none}.form-grid input:focus,.form-grid select:focus{border-color:var(--accent)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-2);border-radius:3px}@media(max-width:900px){.overview-stats{grid-template-columns:repeat(2,1fr)}.charts-grid,.pr-grid{grid-template-columns:1fr}.report-stats{grid-template-columns:repeat(3,1fr)}.plan-hero{flex-direction:column;align-items:flex-start}.log-fields{grid-template-columns:1fr 1fr}.week-right{gap:12px}.form-grid{grid-template-columns:1fr}}@media(max-width:600px){.topbar-brand{min-width:unset}.brand-text{display:none}.overview-stats,.report-stats{grid-template-columns:1fr 1fr}.main-content{padding:16px 12px}}.plan-builder-page{max-width:720px;margin:0 auto;padding:24px 20px}.wizard-header{text-align:center;margin-bottom:32px}.wizard-title{font-size:1.5rem;font-weight:700;margin-bottom:24px;color:var(--text-primary)}.wizard-progress{display:flex;justify-content:center;gap:8px;margin-bottom:16px}.wizard-progress-step{display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;min-width:60px}.wizard-progress-step.done .progress-dot{background:var(--accent, #5b8dee);color:#fff}.wizard-progress-step.active .progress-dot{background:var(--accent, #5b8dee);color:#fff;box-shadow:0 0 0 3px #5b8dee4d}.progress-dot{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:600;background:var(--bg-elevated, #1a1a2e);color:var(--text-muted, #606088);border:2px solid var(--border, #2a2a40);transition:all .2s}.progress-label{font-size:.7rem;color:var(--text-muted, #606088);text-transform:uppercase;letter-spacing:.5px}.wizard-progress-step.active .progress-label{color:var(--accent, #5b8dee);font-weight:600}.wizard-progress-bar{height:3px;background:var(--bg-elevated, #1a1a2e);border-radius:2px;overflow:hidden}.wizard-progress-fill{height:100%;background:var(--accent, #5b8dee);border-radius:2px;transition:width .4s ease}.wizard-body{min-height:300px}.wizard-step{animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.wizard-step-title{font-size:1.3rem;font-weight:700;margin-bottom:8px;color:var(--text-primary)}.wizard-step-desc{color:var(--text-secondary, #8888aa);margin-bottom:24px;font-size:.9rem}.wizard-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.wizard-card{padding:20px 16px;border-radius:12px;border:2px solid var(--border, #2a2a40);background:var(--bg-elevated, #1a1a2e);cursor:pointer;transition:all .2s;text-align:center}.wizard-card:hover{border-color:var(--accent, #5b8dee);transform:translateY(-2px)}.wizard-card.selected{border-color:var(--accent, #5b8dee);background:#5b8dee1a;box-shadow:0 0 0 1px var(--accent, #5b8dee)}.wizard-card.strava-informed{border-style:dashed}.wizard-card-icon{font-size:2rem;margin-bottom:8px}.wizard-card-label{font-weight:600;font-size:.95rem;color:var(--text-primary)}.wizard-card-desc{font-size:.75rem;color:var(--text-muted, #606088);margin-top:6px;line-height:1.3}.wizard-time-inputs{display:flex;align-items:center;justify-content:center;gap:8px;margin:32px 0}.time-input-group{display:flex;flex-direction:column;align-items:center;gap:4px}.time-input{width:80px;padding:12px;font-size:2rem;font-weight:700;text-align:center;border:2px solid var(--border, #2a2a40);border-radius:10px;background:var(--bg-elevated, #1a1a2e);color:var(--text-primary);font-family:JetBrains Mono,monospace}.time-input:focus{border-color:var(--accent, #5b8dee);outline:none}.time-sep{font-size:2rem;font-weight:700;color:var(--text-muted, #606088);padding-bottom:20px}.time-label{font-size:.7rem;text-transform:uppercase;color:var(--text-muted, #606088);letter-spacing:.5px}.wizard-pace-calc{text-align:center;padding:16px;background:var(--bg-elevated, #1a1a2e);border-radius:10px;border:1px solid var(--border, #2a2a40)}.pace-calc-label{font-size:.75rem;text-transform:uppercase;color:var(--text-muted, #606088);letter-spacing:.5px;margin-bottom:4px}.pace-calc-value{font-size:1.5rem;font-weight:700;color:var(--accent, #5b8dee);font-family:JetBrains Mono,monospace}.wizard-date-picker{max-width:300px;margin:24px auto}.date-input{width:100%;padding:14px 16px;font-size:1.1rem;border:2px solid var(--border, #2a2a40);border-radius:10px;background:var(--bg-elevated, #1a1a2e);color:var(--text-primary);text-align:center}.date-input:focus{border-color:var(--accent, #5b8dee);outline:none}.wizard-duration-info{text-align:center;margin-top:20px}.duration-badge{display:inline-flex;align-items:baseline;gap:8px;padding:12px 20px;background:#5b8dee1a;border-radius:10px;border:1px solid rgba(91,141,238,.3)}.duration-num{font-size:2rem;font-weight:700;color:var(--accent, #5b8dee)}.duration-label{font-size:.85rem;color:var(--text-secondary, #8888aa)}.duration-warning{color:#f5c518;font-size:.8rem;margin-top:8px}.wizard-days-selector{display:flex;gap:10px;justify-content:center;margin:24px 0}.day-count-btn{width:64px;height:64px;border-radius:12px;border:2px solid var(--border, #2a2a40);background:var(--bg-elevated, #1a1a2e);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:all .2s}.day-count-btn.active{border-color:var(--accent, #5b8dee);background:#5b8dee26}.day-count-btn:hover{border-color:var(--accent, #5b8dee)}.day-count-num{font-size:1.4rem;font-weight:700;color:var(--text-primary)}.day-count-label{font-size:.65rem;color:var(--text-muted, #606088);text-transform:uppercase}.wizard-week-preview{margin:24px 0}.preview-label{font-size:.75rem;text-transform:uppercase;color:var(--text-muted, #606088);letter-spacing:.5px;margin-bottom:8px}.preview-days{display:flex;gap:6px}.preview-day{flex:1;text-align:center;padding:8px 4px;border-radius:8px;background:var(--bg-elevated, #1a1a2e);border:1px solid var(--border, #2a2a40)}.preview-day.rest{background:#6060881a;border-color:#6060884d}.preview-day.long{background:#4db8ff1a;border-color:#4db8ff4d}.preview-day-name{font-size:.7rem;font-weight:600;color:var(--text-primary)}.preview-day-type{font-size:.6rem;color:var(--text-muted, #606088);margin-top:2px}.preview-day.rest .preview-day-type{color:#606088}.preview-day.long .preview-day-type{color:#4db8ff}.wizard-long-day-select{display:flex;align-items:center;gap:12px;margin:16px 0}.long-day-label{font-size:.85rem;color:var(--text-secondary, #8888aa)}.long-day-select-input{padding:8px 12px;border-radius:8px;border:1px solid var(--border, #2a2a40);background:var(--bg-elevated, #1a1a2e);color:var(--text-primary);font-size:.85rem}.wizard-review-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.review-item{padding:12px 16px;border-radius:10px;background:var(--bg-elevated, #1a1a2e);border:1px solid var(--border, #2a2a40)}.review-label{font-size:.7rem;text-transform:uppercase;color:var(--text-muted, #606088);letter-spacing:.5px;margin-bottom:4px}.review-value{font-size:1.1rem;font-weight:600;color:var(--text-primary)}.review-strava-box{padding:16px;border-radius:10px;background:#ff8c000d;border:1px solid rgba(255,140,0,.2);margin-top:16px}.review-box-title{font-weight:600;margin-bottom:8px;color:var(--text-primary)}.review-strava-grid{display:flex;gap:16px;font-size:.85rem;color:var(--text-secondary, #8888aa)}.wizard-strava-section{margin-top:24px}.strava-divider{display:flex;align-items:center;gap:12px;margin:16px 0;color:var(--text-muted, #606088);font-size:.8rem}.strava-divider:before,.strava-divider:after{content:"";flex:1;height:1px;background:var(--border, #2a2a40)}.btn-strava-connect,.btn-strava-assess{padding:10px 20px;border-radius:10px;border:2px solid #fc4c02;background:#fc4c021a;color:#fc4c02;cursor:pointer;font-weight:600;font-size:.85rem;transition:all .2s}.btn-strava-connect:hover,.btn-strava-assess:hover{background:#fc4c0233}.strava-connected-info{margin-top:12px}.strava-badge{color:#3ddc7a;font-size:.85rem;font-weight:600}.strava-assessment-result{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px;padding:12px;background:var(--bg-elevated, #1a1a2e);border-radius:10px}.assess-item{display:flex;flex-direction:column;gap:2px}.assess-label{font-size:.7rem;color:var(--text-muted, #606088);text-transform:uppercase}.assess-value{font-size:1rem;font-weight:600;color:var(--text-primary);font-family:JetBrains Mono,monospace}.strava-error{color:#ff5252;font-size:.8rem;margin-top:8px}.wizard-footer{display:flex;align-items:center;gap:12px;margin-top:32px;padding-top:20px;border-top:1px solid var(--border, #2a2a40)}.wizard-footer-spacer{flex:1}.btn-wizard-back{padding:10px 20px;border-radius:10px;border:1px solid var(--border, #2a2a40);background:transparent;color:var(--text-secondary, #8888aa);cursor:pointer;font-size:.9rem}.btn-wizard-back:hover{border-color:var(--text-secondary, #8888aa)}.btn-wizard-next{padding:10px 24px;border-radius:10px;border:none;background:var(--accent, #5b8dee);color:#fff;cursor:pointer;font-weight:600;font-size:.9rem;transition:all .2s}.btn-wizard-next:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.btn-wizard-next:disabled{opacity:.4;cursor:not-allowed}.btn-wizard-generate{padding:12px 28px;border-radius:10px;border:none;background:linear-gradient(135deg,#5b8dee,#7c5dee);color:#fff;cursor:pointer;font-weight:700;font-size:1rem;transition:all .2s}.btn-wizard-generate:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 16px #5b8dee66}.btn-wizard-generate:disabled{opacity:.5;cursor:not-allowed}.wizard-error{padding:12px 16px;border-radius:10px;background:#ff52521a;border:1px solid rgba(255,82,82,.3);color:#ff5252;font-size:.85rem;margin-top:12px}.plan-empty-state{display:flex;align-items:center;justify-content:center;min-height:60vh;padding:20px}.empty-card{text-align:center;padding:48px 40px;border-radius:16px;background:var(--bg-elevated, #1a1a2e);border:2px dashed var(--border, #2a2a40);max-width:400px}.empty-icon{font-size:3rem;margin-bottom:16px}.empty-card h2{font-size:1.3rem;margin-bottom:8px;color:var(--text-primary)}.empty-card p{color:var(--text-secondary, #8888aa);margin-bottom:24px;font-size:.9rem;line-height:1.5}.btn-create-plan{display:inline-block;padding:12px 28px;border-radius:10px;background:var(--accent, #5b8dee);color:#fff;text-decoration:none;font-weight:600;font-size:.95rem;transition:all .2s}.btn-create-plan:hover{opacity:.9;transform:translateY(-1px)}.plan-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:4px}.plan-toolbar .phase-filter{flex:1}.btn-edit-mode{padding:8px 16px;border-radius:8px;border:1px solid var(--border, #2a2a40);background:transparent;color:var(--text-secondary, #8888aa);cursor:pointer;font-size:.8rem;white-space:nowrap;transition:all .2s}.btn-edit-mode.active{border-color:var(--accent, #5b8dee);background:#5b8dee1a;color:var(--accent, #5b8dee)}.wk-edit-bar{display:flex;gap:6px;margin-bottom:8px}.btn-mini{padding:4px 10px;border-radius:6px;border:1px solid var(--border, #2a2a40);background:var(--bg-elevated, #1a1a2e);color:var(--text-secondary, #8888aa);cursor:pointer;font-size:.7rem;transition:all .15s}.btn-mini:hover{border-color:var(--accent, #5b8dee);color:var(--text-primary)}.btn-mini.btn-del:hover{border-color:#ff5252;color:#ff5252}.btn-mini.btn-add:hover{border-color:#3ddc7a;color:#3ddc7a}.wk-editor{padding:12px;border-radius:10px;background:var(--bg-elevated, #1a1a2e);border:1px solid var(--accent, #5b8dee);margin-bottom:12px}.wk-edit-fields{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}.wk-phase-select,.wk-input{padding:6px 10px;border-radius:6px;border:1px solid var(--border, #2a2a40);background:var(--bg-primary, #0d0d1a);color:var(--text-primary);font-size:.8rem}.wk-input{flex:1;min-width:100px}.wk-input.wk-small{flex:0 0 80px}.wk-edit-actions{display:flex;gap:6px}.btn-save-sm,.btn-cancel-sm{padding:5px 14px;border-radius:6px;border:none;cursor:pointer;font-size:.75rem;font-weight:600}.btn-save-sm{background:var(--accent, #5b8dee);color:#fff}.btn-cancel-sm{background:var(--bg-elevated, #1a1a2e);color:var(--text-secondary, #8888aa);border:1px solid var(--border, #2a2a40)}.wo-wrapper{position:relative}.wo-edit-bar{display:flex;gap:4px;padding:4px 8px;opacity:.6;transition:opacity .2s}.wo-edit-bar:hover{opacity:1}.wo-editor{padding:10px;border-radius:8px;background:var(--bg-elevated, #1a1a2e);border:1px solid var(--accent, #5b8dee);margin:4px 0 8px}.wo-edit-fields{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.wo-type-select,.wo-input{padding:5px 8px;border-radius:6px;border:1px solid var(--border, #2a2a40);background:var(--bg-primary, #0d0d1a);color:var(--text-primary);font-size:.75rem}.wo-input{flex:1;min-width:60px}.wo-input.wo-small{flex:0 0 70px}.wo-type-select{min-width:100px}.wo-edit-actions{display:flex;gap:6px}.settings-alert{padding:12px 16px;border-radius:10px;margin-bottom:16px;font-size:.85rem;font-weight:600}.settings-alert.success{background:#3ddc7a1a;border:1px solid rgba(61,220,122,.3);color:#3ddc7a}.settings-alert.error{background:#ff52521a;border:1px solid rgba(255,82,82,.3);color:#ff5252}.strava-settings{padding:8px 0}.strava-badge-connected{color:#3ddc7a;font-weight:600;font-size:.85rem}.strava-actions{display:flex;gap:8px;margin-top:12px}.btn-strava-connect-lg{padding:12px 24px;border-radius:10px;border:2px solid #fc4c02;background:#fc4c021a;color:#fc4c02;cursor:pointer;font-weight:600;font-size:.9rem;transition:all .2s;margin-top:12px}.btn-strava-connect-lg:hover{background:#fc4c0233}.btn-danger{padding:8px 16px;border-radius:8px;border:1px solid #ff5252;background:#ff52521a;color:#ff5252;cursor:pointer;font-size:.8rem;font-weight:600;transition:all .2s}.btn-danger:hover{background:#ff525233}.sync-result{margin-top:8px;padding:8px 12px;border-radius:8px;background:var(--bg-elevated, #1a1a2e);font-size:.8rem;color:var(--text-secondary, #8888aa)}[data-theme=light] .wizard-card{border-color:#ddd;background:#f8f9fa}[data-theme=light] .wizard-card:hover{border-color:var(--accent, #5b8dee)}[data-theme=light] .wizard-card.selected{background:#5b8dee14}[data-theme=light] .time-input,[data-theme=light] .date-input{border-color:#ddd;background:#f8f9fa}[data-theme=light] .preview-day{border-color:#e0e0e0;background:#f8f9fa}[data-theme=light] .day-count-btn{border-color:#ddd;background:#f8f9fa}[data-theme=light] .review-item{border-color:#e0e0e0;background:#f8f9fa}[data-theme=light] .wk-editor,[data-theme=light] .wo-editor{background:#f8f9fa}[data-theme=light] .empty-card,[data-theme=light] .btn-mini{border-color:#ddd;background:#f8f9fa}.btn-change-goals{position:absolute;top:12px;right:12px;padding:6px 14px;border-radius:8px;border:1px solid rgba(91,141,238,.4);background:#5b8dee1a;color:var(--accent, #5b8dee);cursor:pointer;font-size:.78rem;font-weight:600;transition:all .2s;white-space:nowrap}.btn-change-goals:hover{background:#5b8dee33;border-color:var(--accent, #5b8dee)}.plan-hero{position:relative}.wizard-subtitle{color:var(--text-secondary, #8888aa);font-size:.85rem;margin-top:-8px;margin-bottom:16px}[data-theme=light] .btn-change-goals{border-color:#5b8dee4d;background:#5b8dee0f}
