@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600;700&display=swap";:root{--bg-base:#0a0e1a;--bg-raised:#101628;--bg-surface:#161d33;--bg-surface-hover:#1c253e;--border-subtle:#b4c8ff0f;--border-default:#b4c8ff1a;--border-focus:#cd9b5080;--accent:#cd9b50;--accent-dim:#cd9b5026;--accent-glow:#cd9b501a;--success:#34d399;--success-dim:#34d3991f;--warning:#fbbf24;--warning-dim:#fbbf241f;--danger:#f87171;--danger-dim:#f871711f;--strava:#fc4c02;--strava-dim:#fc4c021f;--text-primary:#fafafa;--text-secondary:#a1a1aa;--text-tertiary:#71717a;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-full:9999px;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", monospace;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--duration-fast:.15s;--duration-normal:.25s;--duration-slow:.4s}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}body{font-family:var(--font-sans);background:var(--bg-base);color:var(--text-primary);min-height:100vh;font-size:1.125rem;line-height:1.5;position:relative}.ambient-blurs{pointer-events:none;z-index:0;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.ambient-blur{pointer-events:none;will-change:transform;backface-visibility:hidden;border:none;border-radius:50%;outline:none;position:absolute}.ambient-blur--1{filter:blur(120px);background:radial-gradient(#cd9b5014 0%,#cd9b500d 20%,#cd9b5005 45%,#cd9b5001 65%,#0000 80%);width:800px;height:800px;animation:22s ease-in-out infinite alternate drift1;top:-5%;left:10%}.ambient-blur--2{filter:blur(130px);background:radial-gradient(#af823c0f 0%,#af823c08 25%,#af823c03 50%,#0000 75%);width:700px;height:700px;animation:28s ease-in-out infinite alternate drift2;top:25%;right:-5%}.ambient-blur--3{filter:blur(110px);background:radial-gradient(#cd9b500d 0%,#cd9b5005 30%,#cd9b5001 55%,#0000 75%);width:650px;height:650px;animation:18s ease-in-out infinite alternate drift3;top:55%;left:-8%}.ambient-blur--4{filter:blur(140px);background:radial-gradient(#be914612 0%,#be914608 25%,#a0783203 50%,#0000 75%);width:750px;height:750px;animation:32s ease-in-out infinite alternate drift4;top:80%;right:15%}.ambient-blur--5{filter:blur(100px);background:radial-gradient(#cd9b500a 0%,#cd9b5004 35%,#0000 70%);width:500px;height:500px;animation:15s ease-in-out infinite alternate drift5;top:40%;left:50%}@keyframes drift1{0%{transform:translate(0)scale(1)}33%{transform:translate(80px,50px)scale(1.15)}66%{transform:translate(-40px,100px)scale(.9)}to{transform:translate(30px,-30px)scale(1.05)}}@keyframes drift2{0%{transform:translate(0)scale(1)}33%{transform:translate(-70px,-40px)scale(1.1)}66%{transform:translate(50px,-80px)scale(.95)}to{transform:translate(-20px,60px)scale(1.08)}}@keyframes drift3{0%{transform:translate(0)scale(1)}50%{transform:translate(90px,-60px)scale(1.2)}to{transform:translate(-50px,40px)scale(.85)}}@keyframes drift4{0%{transform:translate(0)scale(1)}40%{transform:translate(-60px,70px)scale(1.1)}to{transform:translate(80px,-40px)scale(.92)}}@keyframes drift5{0%{transform:translate(0)scale(.9)}50%{transform:translate(-40px,50px)scale(1.15)}to{transform:translate(60px,-30px)scale(1)}}.app-shell{z-index:1;max-width:1320px;padding:var(--space-12) var(--space-8);margin:0 auto;position:relative;overflow:hidden}.app-header{margin-bottom:var(--space-12);padding-bottom:var(--space-6);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;display:flex}.app-logo{align-items:center;gap:var(--space-3);letter-spacing:-.03em;color:var(--text-primary);font-size:2.2rem;font-weight:700;display:flex}.app-logo__media{flex-shrink:0;width:72px;height:72px;position:relative}.app-logo__image,.app-logo__video{object-fit:contain;width:100%;height:100%;display:block}.app-logo__video{pointer-events:none;opacity:0;transition:opacity var(--duration-fast) var(--ease-out);position:absolute;inset:0}.app-logo__video.is-visible{opacity:1}.app-logo__wordmark{line-height:1}.header-actions{align-items:center;gap:var(--space-3);display:flex}.target-acwr-control{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-secondary);display:flex}.target-acwr-control svg{color:var(--accent);flex-shrink:0}.target-acwr-control__label{color:var(--text-tertiary);white-space:nowrap;font-size:.875rem;font-weight:500}.target-acwr-control__value{font-family:var(--font-mono);color:var(--accent);text-align:right;min-width:2.5em;font-size:.95rem;font-weight:600}.slider--target-acwr{width:80px}.slider--target-acwr::-webkit-slider-thumb{background:var(--accent)}.slider--target-acwr::-moz-range-thumb{background:var(--accent)}.btn{justify-content:center;align-items:center;gap:var(--space-2);font-family:var(--font-sans);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--border-default);background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;transition:all var(--duration-normal) var(--ease-out);white-space:nowrap;-webkit-user-select:none;user-select:none;font-size:.95rem;font-weight:500;display:inline-flex}.btn:hover{background:var(--bg-surface-hover);color:var(--text-primary);border-color:#ffffff1f}.btn:active{transform:scale(.97)}.btn--primary{background:var(--accent);border-color:var(--accent);color:#0f0f11;font-weight:600}.btn--primary:hover{box-shadow:0 0 20px var(--accent-glow);background:#dbb574;border-color:#dbb574;transform:translateY(-1px)}.btn--strava{color:var(--strava);border-color:#fc4c0240}.btn--strava:hover{background:var(--strava-dim);color:var(--strava);border-color:#fc4c0266}.btn--info{border-radius:var(--radius-md);flex:none;width:42px;height:42px;padding:0}.btn--info:hover{color:var(--accent)}.btn--ghost{padding:var(--space-2);border-radius:var(--radius-sm);background:0 0;border:none}.btn--ghost:hover{background:#ffffff0f}.btn--danger-ghost{color:var(--text-tertiary);padding:var(--space-2);border-radius:var(--radius-sm);transition:all var(--duration-fast) var(--ease-out);background:0 0;border:none}.btn--danger-ghost:hover{color:var(--danger);background:var(--danger-dim)}.section{margin-bottom:var(--space-8)}.section-header{align-items:center;gap:var(--space-3);margin-bottom:var(--space-5);display:flex}.section-title{color:var(--text-secondary);letter-spacing:.01em;font-size:1.1rem;font-weight:700}.section-icon{border-radius:var(--radius-sm);background:var(--accent-dim);width:28px;height:28px;color:var(--accent);justify-content:center;align-items:center;display:flex}.section-icon--success{background:var(--success-dim);color:var(--success)}.section-icon--warning{background:var(--warning-dim);color:var(--warning)}.card{background:var(--bg-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-6);transition:border-color var(--duration-normal) var(--ease-out)}.card:hover{border-color:var(--border-default)}.card--flush{padding:0}.grid{gap:var(--space-3);display:grid}.grid--2{grid-template-columns:repeat(2,1fr)}.grid--3{grid-template-columns:repeat(3,1fr)}.grid--4{grid-template-columns:repeat(4,1fr)}.section-subtitle{color:var(--text-tertiary);margin-top:3px;font-size:.8rem;font-weight:500}.status-flow{gap:var(--space-6);flex-direction:column;display:flex}.status-layout{column-gap:var(--space-8);row-gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;display:grid;position:relative}.status-layout:before{content:"";background:var(--border-subtle);pointer-events:none;width:1px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.status-panel{gap:var(--space-4);flex-direction:column;min-width:0;display:flex}.status-panel>.section-header,.planner-panel>.section-header{margin-bottom:0}.status-panel--chart .acwr-chart{flex-direction:column;height:100%;display:flex}.status-panel--chart .planner-empty-state{min-height:100%}.planner-section{gap:var(--space-4);padding-top:var(--space-6);border-top:1px solid var(--border-subtle);flex-direction:column;display:flex}.status-flow__score{gap:var(--space-6);flex-direction:column;min-width:0;display:flex}.status-flow__score-top{align-items:flex-start;gap:var(--space-6);display:flex}.status-flow__details{gap:var(--space-4);flex-direction:column;flex:1;display:flex}.ring-container{flex-shrink:0;width:140px;height:140px;position:relative}.ring-svg{width:100%;height:100%;transform:rotate(-90deg)}.ring-track{fill:none;stroke:#ffffff0a;stroke-width:6px}.ring-fill{fill:none;stroke-width:6px;stroke-linecap:round;transition:stroke-dashoffset .8s var(--ease-out), stroke .4s var(--ease-out)}.ring-label{flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.ring-value{font-family:var(--font-mono);letter-spacing:-.04em;font-size:2.1rem;font-weight:700;line-height:1}.ring-caption{color:var(--text-tertiary);margin-top:var(--space-1);font-size:.8rem;font-weight:500}.hero-details{justify-content:flex-start;gap:var(--space-4);flex-direction:column;flex:1;display:flex}.hero-status{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);width:fit-content;font-size:.95rem;font-weight:600;display:inline-flex}.model-grid{gap:var(--space-3) var(--space-5);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.model-item{flex-direction:column;gap:2px;display:flex}.model-label{color:var(--text-tertiary);font-size:.8rem;font-weight:500}.model-value{font-family:var(--font-mono);color:var(--text-secondary);font-size:1.1rem;font-weight:600}.metric-cell{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);gap:var(--space-1);transition:all var(--duration-normal) var(--ease-out);flex-direction:column;display:flex}.metric-cell:hover{border-color:var(--border-default);background:var(--bg-surface-hover)}.metric-top{justify-content:space-between;align-items:center;display:flex}.metric-label{color:var(--text-tertiary);letter-spacing:.02em;font-size:.8rem;font-weight:500}.metric-value{font-family:var(--font-mono);letter-spacing:-.03em;color:var(--text-primary);font-size:1.6rem;font-weight:700;line-height:1.2}.metric-unit{color:var(--text-tertiary);margin-left:2px;font-size:.875rem;font-weight:500}.trend-pill{border-radius:var(--radius-full);align-items:center;gap:2px;padding:2px 6px;font-size:.8rem;font-weight:600;line-height:1;display:inline-flex}.trend-pill--up{color:var(--success);background:var(--success-dim)}.trend-pill--down{color:var(--danger);background:var(--danger-dim)}.trend-pill--neutral{color:var(--text-tertiary);background:#ffffff0a}.mini-bar{width:100%;height:3px;margin-top:var(--space-3);background:#ffffff0a;border-radius:2px;position:relative;overflow:visible}.mini-bar__fill{transition:width .6s var(--ease-out);border-radius:2px;position:absolute;top:0;bottom:0;left:0}.mini-bar__marker{background:var(--text-tertiary);opacity:.5;border-radius:1px;width:1.5px;position:absolute;top:-2px;bottom:-2px}.perf-section{gap:var(--space-3);flex-direction:column;display:flex}.perf-period{color:var(--text-tertiary);letter-spacing:.02em;margin-bottom:var(--space-1);font-size:.875rem;font-weight:600}.perf-period--accent{color:var(--accent)}.perf-legend{align-items:center;gap:var(--space-5);margin-bottom:var(--space-4);display:flex}.perf-legend__item{letter-spacing:.02em;align-items:center;gap:var(--space-2);font-size:.8rem;font-weight:600;display:flex}.perf-legend__item:before{content:"";border-radius:50%;width:8px;height:8px}.perf-legend__item--week{color:var(--accent)}.perf-legend__item--week:before{background:var(--accent)}.perf-legend__item--month{color:var(--text-tertiary)}.perf-legend__item--month:before{background:var(--text-tertiary)}.perf-legend__item--prev{color:var(--text-tertiary)}.perf-legend__item--prev:before{background:var(--text-tertiary)}.perf-compare-grid{gap:var(--space-4);grid-template-columns:repeat(2,1fr);display:grid}.perf-compare-grid--3{grid-template-columns:repeat(3,1fr)}.perf-compare-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);gap:var(--space-3);transition:all var(--duration-normal) var(--ease-out);flex-direction:column;display:flex}.perf-compare-card:hover{border-color:var(--border-default);background:var(--bg-surface-hover)}.perf-compare-card__header{justify-content:space-between;align-items:center;display:flex}.perf-compare-card__label{color:var(--text-tertiary);letter-spacing:.02em;font-size:.8rem;font-weight:500}.perf-compare-bars{gap:var(--space-2);flex-direction:column;display:flex}.perf-compare-bar-row{align-items:center;gap:var(--space-3);display:flex}.perf-compare-bar-value{font-family:var(--font-mono);text-align:right;flex-shrink:0;min-width:5.5rem;font-weight:600}.perf-compare-bar-value--week{color:var(--text-primary);font-size:1.15rem}.perf-compare-bar-value--month,.perf-compare-bar-value--prev{color:var(--text-tertiary);font-size:.95rem}.perf-compare-bar-track{background:#ffffff0a;border-radius:4px;flex:1;height:8px;overflow:hidden}.perf-compare-bar-fill{height:100%;transition:width .6s var(--ease-out);border-radius:4px}.perf-compare-bar-fill--week{background:var(--accent)}.perf-compare-bar-fill--month,.perf-compare-bar-fill--prev{background:var(--text-tertiary);opacity:.5}.allowance-header{align-items:flex-start;gap:var(--space-3);padding-bottom:var(--space-1);display:flex}.allowance-header svg{flex-shrink:0;margin-top:2px}.allowance-header--suggest,.allowance-header--met{color:var(--accent)}.allowance-header--baseline{color:var(--warning)}.allowance-header__title{color:var(--text-primary);font-size:1.2rem;font-weight:700}.allowance-header__subtitle{color:var(--text-tertiary);margin-top:2px;font-size:.875rem;font-weight:500}.allowance-message{color:var(--text-secondary);font-size:.95rem;line-height:1.5}.allowance-stats{gap:var(--space-4);padding-top:var(--space-2);flex-wrap:wrap;display:flex}.allowance-stat{align-items:center;gap:var(--space-2);font-family:var(--font-mono);color:var(--text-secondary);font-size:1rem;font-weight:500;display:flex}.allowance-stat svg{color:var(--text-tertiary);flex-shrink:0}.allowance-stat__value{color:var(--text-primary);font-weight:600}.allowance-stat__unit{color:var(--text-tertiary);font-size:.875rem}.allowance-stat--hr,.allowance-stat--hr svg,.allowance-stat--hr .allowance-stat__value{color:var(--danger)}.training-type-toggle{gap:var(--space-2);flex-wrap:wrap;display:flex}.planner-controls{justify-content:flex-start;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.planner-layout{column-gap:var(--space-8);row-gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;display:grid;position:relative}.planner-layout:before{content:"";background:var(--border-subtle);pointer-events:none;width:1px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.planner-panel{gap:var(--space-4);flex-direction:column;min-width:0;display:flex}.planner-panel--guidance .planner-panel__body{min-height:17rem}.planner-panel__header{gap:var(--space-2);flex-direction:column;display:flex}.planner-panel__eyebrow{border-radius:var(--radius-full);width:fit-content;color:var(--accent);letter-spacing:.05em;text-transform:uppercase;background:#cd9b5014;align-items:center;gap:6px;padding:4px 10px;font-size:.74rem;font-weight:700;display:inline-flex}.planner-panel__title{color:var(--text-secondary);font-size:.92rem;line-height:1.5}.planner-panel__body{gap:var(--space-4);flex-direction:column;display:flex}.planner-empty-state{justify-content:center;gap:var(--space-2);min-height:100%;padding:var(--space-4);border-radius:var(--radius-md);background:#ffffff05;border:1px dashed #cd9b502e;flex-direction:column;display:flex}.planner-empty-state--success{background:#34d3990f;border-color:#34d3993d}.planner-empty-state--soft{min-height:0}.planner-empty-state__title{color:var(--text-primary);font-size:.95rem;font-weight:600}.planner-empty-state__text{color:var(--text-tertiary);font-size:.85rem;line-height:1.55}.session-count-control{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.session-count-control__label{color:var(--text-primary);letter-spacing:0;font-size:.9rem;font-weight:600}.session-count-control__buttons{gap:var(--space-2);background:0 0;border:0;flex-wrap:wrap;justify-content:flex-start;padding:0;display:flex}.training-type-btn{border-radius:var(--radius-full);min-width:2.5rem;color:var(--text-secondary);font-size:.84rem;font-weight:600;font-family:var(--font-sans);cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);background:#ffffff0a;border:1px solid #cd9b502e;padding:.45rem .8rem}.training-type-btn--text{min-width:6.5rem}.training-type-btn:hover{color:var(--text-primary);background:#cd9b5014;border-color:#cd9b507a;transform:translateY(-1px)}.training-type-btn:disabled{cursor:not-allowed}.training-type-btn:disabled:hover{transform:none}.training-type-btn--active{border-color:var(--accent);color:var(--accent);background:linear-gradient(#cd9b5047 0%,#cd9b502e 100%);font-weight:600;box-shadow:0 0 0 1px #cd9b501f,0 8px 20px #cd9b501f}.training-type-btn--insufficient{color:var(--text-tertiary);opacity:.56;background:#ffffff05;border-color:#ffffff14}.training-type-btn--insufficient:hover{color:var(--text-tertiary);background:#ffffff05;border-color:#ffffff14;transform:none}.training-type-btn--active.training-type-btn--insufficient{color:var(--text-secondary);box-shadow:none;opacity:.84;background:#ffffff0f;border-color:#ffffff29}.allowance-sessions{gap:var(--space-3);display:grid}.allowance-session-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-4)}.allowance-session-card__header{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.allowance-session-card__title{color:var(--text-primary);font-size:.95rem;font-weight:600}.allowance-session-card__description{margin-top:var(--space-2);color:var(--text-tertiary);font-size:.78rem;line-height:1.45}.allowance-session-card__stats{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.allowance-session-chip{border-radius:var(--radius-full);color:var(--text-secondary);font-family:var(--font-mono);background:#ffffff0f;align-items:center;gap:6px;padding:4px 10px;font-size:.82rem;font-weight:600;display:inline-flex}.allowance-session-chip svg{color:var(--text-tertiary)}.allowance-session-chip--hr{color:var(--danger);background:var(--danger-dim)}.allowance-session-chip--hr svg{color:var(--danger)}.planned-runs{margin-top:var(--space-4)}.planned-runs-editor{gap:var(--space-3);flex-direction:column;display:flex}.planned-runs-list{gap:var(--space-3);display:grid}.planned-runs__title{color:var(--text-tertiary);letter-spacing:.02em;font-size:.8rem;font-weight:600}.planned-run-slider-card{background:var(--bg-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-4)}.planned-run-slider-card__header{margin-bottom:var(--space-3);justify-content:space-between;align-items:center;display:flex}.planned-run-slider-card__label{color:var(--text-primary);font-size:.95rem;font-weight:600}.slider-group{margin-bottom:var(--space-3)}.slider-group:last-child{margin-bottom:0}.slider-row{margin-bottom:var(--space-1);justify-content:space-between;align-items:center;display:flex}.slider-label{align-items:center;gap:var(--space-2);color:var(--text-secondary);font-size:.875rem;display:flex}.slider-label svg{color:var(--text-tertiary)}.slider-value{font-size:.95rem;font-weight:600;font-family:var(--font-mono);color:var(--text-primary)}.slider{appearance:none;cursor:pointer;background:#ffffff14;border-radius:2px;outline:none;width:100%;height:4px}.slider::-webkit-slider-thumb{appearance:none;background:var(--accent);border:2px solid var(--bg-base);cursor:pointer;width:16px;height:16px;transition:transform var(--duration-fast) var(--ease-out);border-radius:50%;box-shadow:0 0 0 1px #ffffff1a}.slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.slider::-moz-range-thumb{background:var(--accent);border:2px solid var(--bg-base);cursor:pointer;border-radius:50%;width:16px;height:16px}.slider--hr::-webkit-slider-thumb{background:var(--danger)}.slider--hr::-moz-range-thumb{background:var(--danger)}.btn--plan{width:100%;margin-top:var(--space-4);color:var(--accent);border-style:dashed;border-color:#cd9b504d;justify-content:center}.btn--plan:hover{color:var(--text-primary);border-color:var(--accent);background:var(--accent-dim)}.btn--plan svg{color:var(--accent)}.next-week-planner{margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--border-subtle);gap:var(--space-4);flex-direction:column;display:flex}.slider-group--optional{margin-top:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--border-subtle)}.slider-label--distance,.slider-label--distance svg{color:var(--text-tertiary)}.slider-value--distance{color:#22c55e}.optional-tag{color:var(--text-tertiary);font-size:.75rem;font-style:italic;font-family:var(--font-sans);margin-left:var(--space-1);font-weight:400}.slider--distance::-webkit-slider-thumb{background:#166534}.slider--distance::-moz-range-thumb{background:#166534}.expected-acwr{padding:var(--space-3) var(--space-4);background:var(--success-dim);border-radius:var(--radius-md);border:1px solid #34d39933;justify-content:space-between;align-items:center;display:flex}.expected-acwr--warn{background:var(--warning-dim);border-color:#fbbf2433}.expected-acwr--danger{background:var(--danger-dim);border-color:#f8717133}.expected-acwr__label{color:var(--text-secondary);font-size:.95rem;font-weight:500}.expected-acwr__value{font-size:1.3rem;font-weight:700;font-family:var(--font-mono);color:var(--success)}.expected-acwr--warn .expected-acwr__value{color:var(--warning)}.expected-acwr--danger .expected-acwr__value{color:var(--danger)}.acwr-metrics{gap:var(--space-2);margin-top:var(--space-3);grid-template-columns:repeat(3,1fr);width:100%;display:grid}.acwr-metric{padding:var(--space-2) var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:#ffffff08;flex-direction:column;gap:1px;display:flex}.acwr-metric__label{color:var(--text-tertiary);letter-spacing:.04em;text-transform:uppercase;font-size:.65rem;font-weight:600}.acwr-metric__value{font-size:1rem;font-weight:700;font-family:var(--font-mono);color:var(--text-primary)}.acwr-metric__value--warn{color:var(--warning)}.acwr-metric__desc{color:var(--text-tertiary);font-size:.6rem;line-height:1.2}.acwr-chart{width:100%}.acwr-chart__header{margin-bottom:var(--space-3);justify-content:flex-start;align-items:center;display:flex}.acwr-chart__title{color:var(--text-tertiary);letter-spacing:.02em;margin-bottom:0;font-size:.8rem;font-weight:600}.acwr-chart__legend{gap:var(--space-3);align-items:center;display:flex}.acwr-chart__legend-item{color:var(--text-tertiary);align-items:center;gap:4px;font-size:.65rem;display:flex}.acwr-chart__legend-item--zone{opacity:.7}.acwr-chart__legend-swatch{border-radius:2px;flex-shrink:0;width:10px;height:10px}.acwr-chart__legend-swatch--bar{background:linear-gradient(to bottom, rgba(var(--accent-rgb,99, 102, 241), .25), rgba(var(--accent-rgb,99, 102, 241), .06));background:var(--accent-dim);border:1px solid #ffffff1a}.acwr-chart__legend-swatch--line{background:var(--accent);border-radius:2px;width:14px;height:3px}.acwr-chart__legend-swatch--zone{border-top:2px dashed var(--warning);opacity:.5;width:14px;height:0}.acwr-chart__svg{width:100%;height:auto;overflow:visible}.acwr-chart__bar{fill:#ffffff14;transition:fill var(--duration-fast) var(--ease-out)}.acwr-chart__bar--current{fill:var(--accent-dim);stroke:var(--accent);stroke-width:1px}.acwr-chart__x-label{fill:var(--text-tertiary);font-size:10px;font-family:var(--font-mono)}.acwr-chart__bar-value{fill:var(--text-tertiary);font-size:9.5px;font-family:var(--font-mono);font-weight:500}.acwr-chart__dot-label{fill:var(--accent);font-size:10px;font-family:var(--font-mono);font-weight:600}.acwr-chart__zone-label{font-size:9px;font-family:var(--font-mono);font-weight:500}.acwr-chart__y-label{fill:var(--text-tertiary);font-size:9px;font-family:var(--font-mono);font-weight:400}.form-panel{background:var(--bg-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-6);animation:slideDown var(--duration-slow) var(--ease-out)}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.form-grid{gap:var(--space-4);grid-template-columns:repeat(2,1fr);display:grid}.form-group{gap:var(--space-2);flex-direction:column;display:flex}.form-label{color:var(--text-tertiary);letter-spacing:.02em;font-size:.875rem;font-weight:500}.form-input{background:var(--bg-surface);border:1px solid var(--border-subtle);width:100%;color:var(--text-primary);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-family:var(--font-sans);transition:all var(--duration-fast) var(--ease-out);outline:none;font-size:1rem}.form-input::placeholder{color:var(--text-tertiary)}.form-input:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-glow)}.duration-input{align-items:center;gap:var(--space-2);display:flex}.duration-input .form-input{flex:1}.duration-separator{color:var(--text-tertiary);font-size:1.1rem;font-weight:600}.run-list{flex-direction:column;display:flex}.run-item{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle);transition:background var(--duration-fast) var(--ease-out);justify-content:space-between;align-items:center;display:flex}.run-item:last-child{border-bottom:none}.run-item:hover{background:#ffffff05}.run-left{align-items:center;gap:var(--space-4);min-width:0;display:flex}.run-indicator{border-radius:2px;flex-shrink:0;width:3px;height:32px}.run-indicator--strava{background:var(--strava)}.run-indicator--manual{background:var(--accent)}.run-date{font-family:var(--font-mono);color:var(--text-primary);white-space:nowrap;font-size:.95rem;font-weight:600}.run-metrics{align-items:center;gap:var(--space-5);font-family:var(--font-mono);color:var(--text-secondary);font-size:.95rem;display:flex}.run-metric{align-items:center;gap:var(--space-1);white-space:nowrap;display:flex}.run-metric svg{color:var(--text-tertiary);flex-shrink:0}.run-right{align-items:center;gap:var(--space-3);flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;display:flex}.activity-badge{letter-spacing:.02em;border-radius:var(--radius-full);color:var(--text-secondary);background:#ffffff0d;padding:2px 8px;font-size:.75rem;font-weight:600}.activity-badge--strava{background:var(--strava-dim);color:var(--strava)}.activity-badge--pace{background:var(--accent-dim);color:var(--accent)}.activity-badge--manual{color:var(--text-tertiary);background:#ffffff0d}.activity-badge--workout{color:var(--text-primary);background:#ffffff14}.run-count-note{text-align:center;padding:var(--space-4);color:var(--text-tertiary);font-size:.875rem}.empty-state{text-align:center;padding:var(--space-12) var(--space-6);color:var(--text-tertiary);font-size:1rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation:1s linear infinite spin}@media (width<=768px){.app-shell{padding:var(--space-6) var(--space-4)}.app-header{align-items:flex-start;gap:var(--space-4);flex-direction:column}.header-actions{width:100%}.header-actions .btn{flex:1}.header-actions .btn--info{flex:0 0 42px}.hero-layout,.status-layout,.planner-layout{grid-template-columns:1fr}.status-layout:before,.planner-layout:before{display:none}.status-flow__score{text-align:center;align-items:center}.status-flow__score-top{flex-direction:column;align-items:center}.status-flow__details{align-items:center}.planner-controls,.session-count-control{width:100%}.session-count-control{align-items:flex-start;gap:var(--space-2);flex-direction:column}.session-count-control__buttons{width:100%}.hero-stat{text-align:center;flex-direction:column;align-items:center;padding:0}.hero-details{align-items:center}.model-grid{grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.hero-suggestions{padding-left:0;padding-top:var(--space-6);border-top:1px solid var(--border-subtle);border-left:none}.grid--2,.grid--4{grid-template-columns:repeat(2,1fr)}.perf-compare-grid,.perf-compare-grid--3,.grid--3,.form-grid{grid-template-columns:1fr}.run-item{align-items:flex-start;gap:var(--space-3);padding:var(--space-4);flex-direction:column}.run-metrics{gap:var(--space-3);flex-wrap:wrap}.run-right{align-self:flex-end}}@media (width<=480px){.grid--2,.grid--4,.model-grid{grid-template-columns:1fr}}@media (width<=768px) and (orientation:portrait){.app-header{text-align:center;align-items:center}.app-logo{justify-content:center;width:100%}.planner-section{text-align:center}.status-panel>.section-header,.planner-panel>.section-header,.next-week-planner__header .section-header,.planner-controls,.allowance-stats,.allowance-session-card__header,.allowance-session-card__stats,.expected-acwr{justify-content:center}.planner-panel__header,.planner-panel__body,.planned-runs-editor,.session-count-control{text-align:center;align-items:center}.session-count-control__buttons{justify-content:center}.allowance-session-card,.planner-panel,.planner-empty-state,.planned-runs__title{text-align:center}.expected-acwr{gap:var(--space-3)}}@media (width<=768px) and (orientation:landscape){.status-layout,.planner-layout{grid-template-columns:repeat(2,minmax(0,1fr))}.status-flow__score{text-align:left;align-items:flex-start}.status-flow__score-top{flex-direction:row;align-items:flex-start}.status-flow__details{align-items:flex-start}}.app-footer{padding:var(--space-8) var(--space-6) var(--space-10,2.5rem);color:var(--text-secondary);font-size:.875rem}.footer-inner{max-width:var(--content-max,720px);align-items:center;gap:var(--space-4);text-align:center;flex-direction:column;margin:0 auto;display:flex}.footer-heading{opacity:.8;color:var(--text-secondary);font-size:.875rem;font-weight:500}.footer-links{align-items:center;gap:var(--space-6);color:inherit;display:flex}.footer-link{color:inherit;transition:opacity .15s}.footer-link:hover{opacity:.7}.footer-link--btn{cursor:pointer;color:inherit;font:inherit;background:0 0;border:none;padding:0}.footer-version{text-transform:uppercase;letter-spacing:.24em;color:var(--text-tertiary);font-size:.65rem}.modal-overlay{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-8);align-items:center;gap:var(--space-4);text-align:center;flex-direction:column;width:90%;max-width:400px;display:flex}.modal-content--info{text-align:left;align-items:flex-start;max-width:420px}.modal-title{color:var(--text-primary);font-size:1.125rem;font-weight:600}.modal-text{color:var(--text-secondary);font-size:.875rem;line-height:1.6}.modal-cta{text-align:center;width:100%;text-decoration:none}.modal-close{align-self:flex-end;width:100%}
