:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}#root{text-align:left;box-sizing:border-box;flex-direction:column;width:100%;max-width:none;min-height:100svh;margin:0;display:flex}body{margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}.nav-hamburger{cursor:pointer;background:#fff;border:1px solid #d8e3ea;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:44px;height:44px;padding:0;display:none}.hamburger-line{background:#1f3342;border-radius:1px;width:20px;height:2px;transition:transform .25s,opacity .25s;display:block}.nav-hamburger--open .hamburger-line:first-child{transform:translateY(7px)rotate(45deg)}.nav-hamburger--open .hamburger-line:nth-child(2){opacity:0}.nav-hamburger--open .hamburger-line:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.nav-links{gap:12px;display:flex}@media (width<=768px){.app-container{padding:16px!important}.nav-hamburger{display:flex}.nav-links{z-index:100;background:#fff;border:1px solid #d8e3ea;border-radius:16px;flex-direction:column;gap:6px;margin-top:8px;padding:10px;display:none;position:absolute;top:100%;left:0;right:0;box-shadow:0 8px 24px #24465c1f}.nav-links--open{display:flex}.nav-link{text-align:center}}.counter{color:var(--accent);background:var(--accent-bg);border:2px solid #0000;border-radius:5px;margin-bottom:24px;padding:5px 10px;font-size:16px;transition:border-color .3s}.counter:hover{border-color:var(--accent-border)}.counter:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.hero{position:relative}.hero .base,.hero .framework,.hero .vite{margin:0 auto;inset-inline:0}.hero .base{z-index:0;width:170px;position:relative}.hero .framework,.hero .vite{position:absolute}.hero .framework{z-index:1;height:28px;top:34px;transform:perspective(2000px)rotate(300deg)rotateX(44deg)rotateY(39deg)scale(1.4)}.hero .vite{z-index:0;width:auto;height:26px;top:107px;transform:perspective(2000px)rotate(300deg)rotateX(40deg)rotateY(39deg)scale(.8)}#center{flex-direction:column;flex-grow:1;place-content:center;place-items:center;gap:25px;display:flex}@media (width<=1024px){#center{gap:18px;padding:32px 20px 24px}}#next-steps{border-top:1px solid var(--border);text-align:left;display:flex}#next-steps>div{flex:1 1 0;padding:32px}@media (width<=1024px){#next-steps>div{padding:24px 20px}}#next-steps .icon{width:22px;height:22px;margin-bottom:16px}@media (width<=1024px){#next-steps{text-align:center;flex-direction:column}}#docs{border-right:1px solid var(--border)}@media (width<=1024px){#docs{border-right:none;border-bottom:1px solid var(--border)}}#next-steps ul{gap:8px;margin:32px 0 0;padding:0;list-style:none;display:flex}#next-steps ul .logo{height:18px}#next-steps ul a{color:var(--text-h);background:var(--social-bg);border-radius:6px;align-items:center;gap:8px;padding:6px 12px;font-size:16px;text-decoration:none;transition:box-shadow .3s;display:flex}#next-steps ul a:hover{box-shadow:var(--shadow)}#next-steps ul a .button-icon{width:18px;height:18px}@media (width<=1024px){#next-steps ul{flex-wrap:wrap;justify-content:center;margin-top:20px}#next-steps ul li{flex:calc(50% - 8px)}#next-steps ul a{box-sizing:border-box;justify-content:center;width:100%}}#spacer{border-top:1px solid var(--border);height:88px}@media (width<=1024px){#spacer{height:48px}}.ticks{width:100%;position:relative}.ticks:before,.ticks:after{content:"";border:5px solid #0000;position:absolute;top:-4.5px}.ticks:before{border-left-color:var(--border);left:0}.ticks:after{border-right-color:var(--border);right:0}.landing-home{gap:24px;display:grid}.landing-panel-kicker{text-transform:uppercase;letter-spacing:.18em;margin:0;font-size:.72rem;font-weight:700}.landing-actions{flex-wrap:wrap;gap:12px;display:flex}.landing-link{cursor:pointer;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;min-height:46px;padding:0 18px;font-size:.95rem;font-weight:700;text-decoration:none;transition:transform .2s,box-shadow .2s,background .2s;display:inline-flex}.landing-link:hover{transform:translateY(-1px)}.landing-link--primary{color:#17384a;background:#f6ede1;box-shadow:0 12px 28px #0a1d292e}.landing-link--secondary{color:#f7fbfd;background:0 0;border-color:#ffffff57}.landing-link--soft{color:#17384a;background:#eef4f6;border-color:#d8e3ea}.landing-link--button{appearance:none}.landing-link:disabled{opacity:.6;cursor:not-allowed;transform:none}.landing-meta{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:0;display:grid}.landing-meta div{background:#fff;border:1px solid #d8e3ea;border-radius:18px;gap:4px;padding:14px 16px;display:grid}.landing-meta dt{text-transform:uppercase;letter-spacing:.12em;color:#6b7f8d;font-size:.76rem}.landing-meta dd{color:#17384a;margin:0;font-size:.98rem;font-weight:700}.landing-grid{grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:20px;display:grid}.landing-panel{background:linear-gradient(#fffffffa,#f5f9fbfa);border:1px solid #d8e3ea;border-radius:24px;gap:18px;padding:24px;display:grid;box-shadow:0 18px 38px #24465c14}.landing-panel--setup h3{letter-spacing:-.06em;max-width:18ch;font-size:clamp(2rem,4vw,3.2rem);line-height:.95}.landing-panel-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.landing-panel-kicker{color:#7b95a4}.landing-panel h3{color:#17384a;margin:4px 0 0;font-family:Iowan Old Style,Palatino Linotype,Book Antiqua,serif;font-size:1.85rem}.landing-panel p{color:#5d7584;line-height:1.65}.landing-option-list{gap:12px;display:grid}.landing-option{cursor:pointer;background:#fff;border:1px solid #d8e3ea;border-radius:20px;grid-template-columns:12px minmax(0,1fr) auto;align-items:center;gap:16px;padding:16px 18px;transition:transform .2s,border-color .2s,box-shadow .2s;display:grid}.landing-option:hover{border-color:#adc3cf;transform:translateY(-1px);box-shadow:0 12px 28px #24465c14}.landing-option.is-selected{border-color:#234d63;box-shadow:0 14px 30px #24465c1f}.landing-option-accent{border-radius:999px;width:12px;height:48px}.landing-option-copy{gap:4px;display:grid}.landing-option-title{color:#17384a;font-size:1rem;font-weight:800}.landing-option-detail{color:#708796;font-size:.92rem}.landing-option input{accent-color:#17384a;width:20px;height:20px}.landing-feedback{color:#1d685f;background:#2a9d8f1f;border-radius:18px;padding:14px 16px;font-weight:700}.landing-feedback--error{color:#9f312d;background:#c73e3a1f}.landing-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.landing-footnote{color:#708796;font-size:.92rem}@media (width<=980px){.landing-grid{grid-template-columns:1fr}}@media (width<=640px){.landing-panel{border-radius:22px;padding:20px}.landing-panel--setup h3{max-width:none}.landing-option{grid-template-columns:10px minmax(0,1fr)}.landing-option input{justify-self:start}.landing-footer,.landing-actions,.landing-actions .landing-link,.landing-footer .landing-link{width:100%}}.tst-root{--tst-surface:#fff;--tst-surface-alt:#f5f8fa;--tst-surface-day:#f0f5f8;--tst-text:#1f3342;--tst-text-2:#6c8798;--tst-text-3:#a0b4c0;--tst-border:#e2eaf0;--tst-accent:#3f6f86;--tst-z1:#66bb6a;--tst-z2:#43a047;--tst-z3:#fdd835;--tst-z4:#fb8c00;--tst-z5:#e53935;border:1px solid var(--tst-border);background:var(--tst-surface);width:100%;color:var(--tst-text);-webkit-font-smoothing:antialiased;border-radius:14px;font-family:Inter,system-ui,-apple-system,sans-serif;overflow:hidden}@media (prefers-color-scheme:dark){.tst-root{--tst-surface:#1a2836;--tst-surface-alt:#1e2e3e;--tst-surface-day:#162230;--tst-text:#d0dce5;--tst-text-2:#7a95a8;--tst-text-3:#4a6070;--tst-border:#253545;--tst-accent:#5a98b5}}.tst-muted{color:var(--tst-text-3)}.tst-tsb-neg{color:var(--tst-z5)}.tst-tsb-pos{color:var(--tst-z1)}.tst-acwr-high{color:var(--tst-z5);font-weight:600}.tst-acwr-warn{color:var(--tst-z4);font-weight:600}.tst-acwr-ok{color:var(--tst-z1)}.tst-month-sep{color:var(--tst-text-2);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:10px;padding:12px 20px 4px;font-size:.6875rem;font-weight:600;display:flex}.tst-month-sep:after{content:"";background:var(--tst-border);flex:1;height:1px}.tst-zones{flex-direction:column;flex-shrink:0;gap:3px;width:130px;display:flex}.tst-zone-title{color:var(--tst-text-3);text-transform:uppercase;letter-spacing:.04em;text-align:center;font-size:.5625rem;line-height:1}.tst-zone-bar{background:var(--tst-surface-alt);border-radius:3px;height:5px;display:flex;overflow:hidden}.tst-zone-seg{min-width:0}.tst-zone-legend{color:var(--tst-text-2);font-variant-numeric:tabular-nums;flex-wrap:wrap;justify-content:center;gap:6px;font-size:.625rem;display:flex}.tst-zone-token{white-space:nowrap;align-items:center;gap:3px;display:flex}.tst-zone-token strong{color:var(--tst-text);font-size:.6875rem;font-weight:600}.tst-zone-token em{letter-spacing:.04em;color:var(--tst-text-3);font-size:.5625rem;font-style:normal;font-weight:700}.tst-list-scroll{max-height:640px;overflow-y:auto}.tst-day-hdr{background:var(--tst-surface-day);border-top:1px solid var(--tst-border);justify-content:space-between;align-items:center;padding:10px 20px 6px;display:flex}.tst-day-hdr:first-child{border-top:none}.tst-day-date{letter-spacing:-.01em;font-size:.9375rem;font-weight:700}.tst-day-date small{color:var(--tst-text-2);margin-left:2px;font-weight:500}.tst-day-metrics{color:var(--tst-text-2);font-variant-numeric:tabular-nums;gap:14px;font-size:.75rem;display:flex}.tst-day-metrics strong{color:var(--tst-text);font-weight:600}.tst-sess-row{border-bottom:1px solid var(--tst-border);font-variant-numeric:tabular-nums;align-items:center;gap:12px;padding:10px 20px 10px 28px;transition:background .1s;display:flex}.tst-sess-row:hover{background:color-mix(in srgb, var(--tst-accent) 5%, var(--tst-surface))}.tst-sess-num{color:var(--tst-text-3);flex-shrink:0;width:20px;font-size:.75rem;font-weight:600}.tst-sess-info{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.tst-sess-name{white-space:nowrap;text-overflow:ellipsis;font-size:.875rem;font-weight:600;overflow:hidden}.tst-sess-notes{color:var(--tst-text-2);white-space:nowrap;text-overflow:ellipsis;font-size:.6875rem;font-style:italic;overflow:hidden}.tst-sess-stats{flex-shrink:0;align-items:center;gap:14px;display:flex}.tst-stat{white-space:nowrap;flex-direction:column;align-items:flex-end;font-size:.8125rem;display:flex}.tst-stat-lbl{color:var(--tst-text-3);text-transform:uppercase;letter-spacing:.04em;order:-1;font-size:.5625rem;line-height:1}.tst-stat-val{font-weight:600}.tst-weekly{background:var(--tst-surface-alt);border-top:1px solid var(--tst-border);border-bottom:1px solid var(--tst-border);align-items:center;gap:20px;padding:10px 20px;display:flex}.tst-weekly-badge{text-transform:uppercase;letter-spacing:.06em;color:var(--tst-text-3);border:1px solid var(--tst-border);border-radius:4px;flex-shrink:0;padding:2px 8px;font-size:.5625rem;font-weight:600}.tst-weekly-item{flex-direction:column;display:flex}.tst-weekly-val{font-variant-numeric:tabular-nums;font-size:.8125rem;font-weight:600}.tst-weekly-lbl{color:var(--tst-text-3);text-transform:uppercase;letter-spacing:.04em;font-size:.5rem}.tst-edit-form{border-bottom:1px solid var(--tst-border);background:var(--tst-surface-alt);flex-direction:column;gap:8px;padding:10px 20px 14px 48px;display:flex}.tst-edit-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tst-edit-actions{justify-content:flex-end;gap:8px;padding-top:4px;display:flex}.tst-pagination{border-top:1px solid var(--tst-border)}.tst-mobile{padding:8px 12px}.tst-card{background:var(--tst-surface);border:1px solid var(--tst-border);border-radius:14px;margin-bottom:10px;padding:14px 16px;transition:box-shadow .15s}.tst-card:hover{box-shadow:0 2px 12px #24465c14}.tst-card-top{justify-content:space-between;align-items:center;margin-bottom:2px;display:flex}.tst-card-date{color:var(--tst-text-2);text-transform:uppercase;letter-spacing:.04em;font-size:.6875rem;font-weight:600}.tst-card-badge{color:var(--tst-text-3);background:var(--tst-surface-alt);border-radius:4px;padding:2px 7px;font-size:.625rem;font-weight:500}.tst-card-name{margin-bottom:1px;font-size:.9375rem;font-weight:600}.tst-card-notes{color:var(--tst-text-2);margin-bottom:10px;font-size:.75rem;font-style:italic}.tst-card-stats{gap:20px;margin-bottom:10px;display:flex}.tst-card-stat-val{font-variant-numeric:tabular-nums;font-size:1rem;font-weight:600;line-height:1.2}.tst-card-stat-lbl{color:var(--tst-text-3);text-transform:uppercase;letter-spacing:.05em;font-size:.5625rem}.tst-card .tst-zone-bar{height:5px;margin-bottom:4px}.tst-card .tst-zone-legend{margin-bottom:10px}.tst-card-metrics{border-top:1px solid var(--tst-border);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:14px;padding-top:8px;font-size:.75rem;display:flex}.tst-card-metric-lbl{color:var(--tst-text-3);text-transform:uppercase;letter-spacing:.03em;font-size:.5625rem}.tst-card-metric-val{font-weight:600}.tst-card-weekly{background:var(--tst-surface-alt);border-radius:8px;flex-wrap:wrap;gap:14px;margin-top:8px;padding:10px 12px;display:flex}.tst-card-weekly .tst-card-metric-lbl{font-size:.5rem}.tst-card-weekly .tst-card-metric-val{font-size:.75rem}.tst-card.tst-rest{opacity:.65}.tst-card.tst-rest .tst-card-name{color:var(--tst-text-2);font-weight:500}.tst-card-edit{border-top:1px solid var(--tst-border);flex-direction:column;gap:8px;margin-top:8px;padding-top:8px;display:flex}.tst-card-edit-row{flex-wrap:wrap;gap:8px;display:flex}@media (width>=641px){.tst-mobile{display:none}}@media (width<=640px){.tst-desktop{display:none}.tst-mobile .tst-month-sep{padding:12px 4px 4px}}.planner-board{--planner-ink:#183346;--planner-muted:#678393;--planner-paper:#fbf7ee;--planner-line:#d4e1e8;--planner-blue:#2b5874;--planner-good:#2f7d5a;--planner-warn:#be6e2f;flex-direction:column;gap:18px;display:flex}.planner-overview,.planner-day-card,.planner-summary-card{border:1px solid var(--planner-line);background:#fff}.planner-overview{background:linear-gradient(#f3f8faf2,#fffffffa);border-radius:28px;padding:20px}.planner-overview-header{gap:12px;margin-bottom:16px;display:grid}.planner-section-label{letter-spacing:.16em;text-transform:uppercase;color:var(--planner-muted);margin:0 0 6px;font-size:.76rem;font-weight:700}.planner-overview-header h3,.planner-card-section-header h5,.planner-day-header h4{color:var(--planner-ink);margin:0}.planner-overview-header h3{font-size:1.4rem;line-height:1.08}.planner-overview-copy{color:var(--planner-muted);margin:0;line-height:1.55}.planner-strip{scroll-snap-type:x proximity;grid-auto-columns:minmax(188px,1fr);grid-auto-flow:column;gap:12px;padding-bottom:4px;display:grid;overflow-x:auto}.planner-strip-card{appearance:none;min-height:180px;color:var(--planner-ink);text-align:left;cursor:pointer;scroll-snap-align:start;background:linear-gradient(#fffdf9fa,#f0f6f9f5);border:1px solid #1833461f;border-radius:24px;flex-direction:column;gap:12px;padding:14px;display:flex}.planner-strip-card.is-active{background:linear-gradient(#ecd9b333,#fffffffa);border-color:#2b587457;box-shadow:0 14px 24px #18334614}.planner-strip-card.is-today{border-color:#2b58747a}.planner-strip-topline,.planner-strip-footer{justify-content:space-between;align-items:center;gap:8px;display:flex}.planner-strip-topline span,.planner-strip-footer span:first-child{text-transform:uppercase;letter-spacing:.12em;color:var(--planner-muted);font-size:.78rem}.planner-strip-topline strong{font-size:1.4rem;line-height:1}.planner-strip-body{flex:auto;gap:8px;display:grid}.planner-strip-body p{margin:0;font-size:1rem;font-weight:700;line-height:1.35}.planner-strip-body span{color:var(--planner-muted);font-size:.88rem}.planner-strip-footer span:last-child{color:var(--planner-ink);font-size:.84rem;font-weight:700}.planner-strip-footer .is-warning{color:var(--planner-warn)}.planner-strip-footer .is-good{color:var(--planner-good)}.planner-summary-grid,.planner-days-grid{gap:14px;display:grid}.planner-summary-card{background:linear-gradient(#fff,#f8fbfc);border-radius:22px;gap:8px;padding:18px;display:grid}.planner-summary-label{letter-spacing:.16em;text-transform:uppercase;color:var(--planner-muted);font-size:.76rem;font-weight:700}.planner-summary-card strong{color:var(--planner-ink);font-size:1.6rem;line-height:1}.planner-summary-card p{color:var(--planner-muted);margin:0;line-height:1.45}.planner-summary-card--warning{background:linear-gradient(#faeee2f2,#fff)}.planner-summary-card--good{background:linear-gradient(#e8f7eff2,#fff)}.planner-summary-card--steady{background:linear-gradient(#f0f6f9f2,#fff)}.planner-day-card{background:linear-gradient(#fff,#fbfdfd);border-radius:26px;flex-direction:column;gap:16px;padding:18px;display:flex;box-shadow:0 18px 34px #18334614}.planner-day-card.is-today{background:radial-gradient(circle at 100% 0,#dce8efe6,#0000 28%),linear-gradient(#fff,#fbfdfd)}.planner-day-header,.planner-card-section-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.planner-day-kicker{letter-spacing:.12em;text-transform:uppercase;color:var(--planner-muted);margin:0 0 6px;font-size:.78rem;font-weight:700}.planner-day-header h4{font-size:1.35rem}.planner-day-header h4 span{color:var(--planner-muted);font-weight:500}.planner-focus-button{appearance:none;min-height:38px;color:var(--planner-blue);font:inherit;cursor:pointer;background:#fff;border:1px solid #2b58742e;border-radius:999px;padding:0 12px;font-size:.84rem;font-weight:700}.planner-card-section{background:linear-gradient(#fffdf9f5,#fffffffa);border:1px solid #d4e1e8f2;border-radius:20px;gap:14px;padding:14px;display:grid}.planner-card-section--actual{background:linear-gradient(#f3f8fad6,#fffffffa)}.planner-card-tag{min-height:30px;color:var(--planner-blue);letter-spacing:.08em;text-transform:uppercase;background:#2b58741a;border-radius:999px;align-items:center;padding:0 10px;font-size:.76rem;font-weight:700;display:inline-flex}.planner-card-tag--muted{color:var(--planner-muted);background:#6783931f}.planner-session-button,.planner-metric-button,.planner-zone-button{appearance:none;width:100%;color:inherit;cursor:pointer;text-align:left;background:0 0;border:none}.planner-session-button{background:var(--planner-paper);font:inherit;color:var(--planner-ink);border-radius:18px;padding:18px;font-size:1.02rem;line-height:1.45}.planner-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.planner-metric-card{background:#dce8ef47;border-radius:18px;gap:8px;padding:14px;display:grid}.planner-metric-card span{color:var(--planner-muted);font-size:.82rem}.planner-metric-card strong,.planner-metric-button{font-size:1.1rem;font-weight:700;line-height:1.1}.planner-metric-card--readonly{background:#ffffffe6;border:1px solid #d4e1e8e6}.planner-zone-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.planner-zone-pill{border-radius:18px;gap:6px;min-height:84px;padding:12px 10px;display:grid}.planner-zone-pill span{letter-spacing:.08em;text-transform:uppercase;font-size:.74rem;font-weight:700}.planner-zone-pill strong,.planner-zone-button{font-size:.98rem;font-weight:700}.planner-zone-pill--neutral{background:#dce8ef59}.planner-zone-pill--z1{background:#d8f4db}.planner-zone-pill--z2{background:#bfe4c1}.planner-zone-pill--z3{background:#fff0b3}.planner-zone-pill--z4{background:#ffd7b2}.planner-zone-pill--z5{background:#f6c0c0}.planner-zone-pill--readonly{border:1px solid #ffffff73}.planner-edit-input,.planner-zone-input,.planner-edit-textarea{width:100%;color:var(--planner-ink);font:inherit;box-sizing:border-box;background:#fff;border:1px solid #2b587438;border-radius:14px;padding:10px 12px}.planner-edit-textarea{resize:vertical;min-height:110px}.planner-empty-state,.planner-saving-note{color:var(--planner-muted);font-size:.95rem}.planner-strip-sport-dot{border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:.65rem;line-height:1;display:inline-flex}.planner-sport-picker{align-items:center;gap:10px;display:flex}.planner-sport-picker-label{letter-spacing:.1em;text-transform:uppercase;color:var(--planner-muted);font-size:.78rem;font-weight:700}.planner-sport-toggle{appearance:none;font:inherit;cursor:pointer;border:1.5px solid;border-radius:999px;align-items:center;gap:5px;padding:6px 14px;font-size:.82rem;font-weight:700;display:inline-flex}.planner-sport-summary-row{gap:14px;display:grid}.planner-sport-summary-card{border:1px solid var(--planner-line);background:linear-gradient(#fff,#f8fbfc);border-top:3px solid;border-radius:22px;padding:16px}.planner-sport-summary-header{margin-bottom:12px}.planner-sport-pill{border-radius:999px;align-items:center;gap:4px;padding:4px 10px;font-size:.78rem;font-weight:600;display:inline-flex}.planner-sport-summary-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.planner-sport-summary-metric{flex-direction:column;gap:2px;display:flex}.planner-sport-summary-metric span{color:var(--planner-muted);font-size:.74rem}.planner-sport-summary-metric strong{color:var(--planner-ink);font-size:.95rem}.macro{flex-direction:column;gap:20px;display:flex}.macro,.macro *{box-sizing:border-box}.macro-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.macro-title{color:#1f3342;letter-spacing:-.02em;margin:0;font-size:1.35rem}.macro-title-athlete{color:#6c8798;font-size:1rem;font-weight:400}.macro-subtitle{color:#6c8798;margin:6px 0 0;font-size:.95rem}.macro-controls{flex-direction:column;gap:6px;display:flex}.macro-label{color:#6c8798;font-size:.85rem;font-weight:600}.macro-select{color:#1f3342;background:#fff;border:1px solid #d8e3ea;border-radius:12px;min-width:200px;height:42px;padding:0 12px;font-size:.95rem}.macro-select:focus{border-color:#24465c;outline:none;box-shadow:0 0 0 3px #24465c14}.macro-status{color:#6c8798;min-height:20px;font-size:.88rem}.macro-sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.macro-timeline{background:#fff;border:1px solid #d8e3ea;border-radius:20px;padding:0;overflow:auto hidden;box-shadow:0 8px 24px #24465c0d}.macro-grid{gap:0;width:max-content;min-width:100%;display:flex;overflow:visible}.macro-column{cursor:default;-webkit-user-select:auto;user-select:auto;background:#fafbfc;border-right:1px solid #d8e3ea;border-radius:0;flex:0 0 188px;grid-template-rows:214px 158px 98px 138px 158px 158px;align-items:stretch;width:188px;transition:background-color .15s;display:grid;overflow:hidden}.macro-column-summary{flex-direction:column;min-width:0;min-height:0;display:flex}.macro-column:last-child{border-right:0}.macro-column--event{box-shadow:none;background:#fffbd0}.macro-column:hover{background:#f8fbfc}.macro-column--event:hover{background:#fffbd0}.macro-column-summary--active,.macro-column-summary--active:hover{outline:none}.macro-column-head{text-align:center;border-bottom:1px solid #eef2f5;min-height:58px;padding:12px 8px 8px}.macro-column--event .macro-column-head{background:#ffea00;border-bottom-color:#1f33422e}.macro-week-num{color:#1f3342;font-family:Consolas,SFMono-Regular,monospace;font-size:.82rem;font-weight:700;line-height:1;display:block}.macro-column--current .macro-week-num:after{content:"";background:#24465c;border-radius:50%;width:5px;height:5px;margin:4px auto 0;display:block}.macro-dates{color:#8fa0ab;white-space:nowrap;margin-top:5px;font-size:.68rem;display:block}.macro-column--event .macro-week-num,.macro-column--event .macro-dates{color:#1f3342}.macro-focus-block{flex-direction:column;flex:1;justify-content:space-between;min-height:156px;padding:14px 12px;display:flex}.macro-focus-block.tone-empty{background:#eef1f4}.macro-focus-block.tone-tempo{background:linear-gradient(168deg,#f55a4e,#e8362a)}.macro-focus-block.tone-volume{background:linear-gradient(168deg,#2dd4d8,#1dbfc3)}.macro-focus-block.tone-taper{background:linear-gradient(168deg,#4568ff,#2550ff)}.macro-focus-block.tone-recovery{background:linear-gradient(168deg,#e8e4d8,#ddd8ca)}.macro-focus-block.tone-fatmax{background:linear-gradient(168deg,#fa3,#ff9f1c)}.macro-focus-block.tone-event{background:#ffea00}.macro-column--event .macro-focus-block{box-shadow:none;background:#ffea00}.macro-focus-label{text-transform:uppercase;letter-spacing:.1em;font-family:Consolas,SFMono-Regular,monospace;font-size:.68rem;line-height:1.3}.tone-empty .macro-focus-label{color:#a0adb6}.tone-tempo .macro-focus-label,.tone-taper .macro-focus-label{color:#ffffffe6}.tone-volume .macro-focus-label{color:#00282ab3}.tone-recovery .macro-focus-label{color:#50442899}.tone-fatmax .macro-focus-label{color:#502800b3}.tone-event .macro-focus-label,.macro-column--event .macro-focus-label{color:#1f3342}.macro-block-footer{align-items:center;gap:4px;min-height:20px;margin-top:auto;display:flex}.macro-event-badge{color:#1f3342;text-overflow:ellipsis;white-space:nowrap;background:#ffffffd9;border-radius:5px;max-width:100%;padding:3px 6px;font-size:.64rem;font-weight:600;display:inline-block;overflow:hidden}.macro-column--event .macro-event-badge{color:#ffea00;background:#1f3342;box-shadow:0 0 0 1px #1f33422e}.tone-empty .macro-event-badge{background:#24465c14}.macro-column--event .tone-empty .macro-event-badge{color:#ffea00;background:#1f3342}.tone-recovery .macro-event-badge{background:#fff9}.macro-column--event .tone-recovery .macro-event-badge{color:#ffea00;background:#1f3342}.macro-detail-dot{background:#ffffffa6;border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-left:auto}.tone-empty .macro-detail-dot{background:#24465c33}.tone-recovery .macro-detail-dot{background:#5044284d}.macro-column--event .macro-detail-dot{background:#1f334273}.macro-column-fields{display:contents}.macro-table-field{background:#f4f7f99e;border-top:1px solid #eef2f5;flex-direction:column;gap:10px;min-width:0;min-height:0;padding:13px 12px;display:flex}.macro-table-field:nth-child(odd){background:#fbfcfd}.macro-column--event .macro-table-field{background:#fffbd0b8}.macro-column--event .macro-table-field:nth-child(odd){background:#fffbd0e6}.macro-paired-fields{flex-direction:column;gap:10px;display:flex}.macro-table-field input,.macro-table-field textarea{color:#1f3342;resize:none;background:#fff;border:1px solid #d8e3ea;border-radius:10px;width:100%;min-width:0;padding:9px 10px;font-family:inherit;font-size:.82rem;line-height:1.28;transition:border-color .15s}.macro-table-field input{height:38px}.macro-table-field textarea{min-height:96px}.macro-table-field input:focus,.macro-table-field textarea:focus{border-color:#24465c;outline:none;box-shadow:0 0 0 3px #24465c14}.macro-table-field input::placeholder,.macro-table-field textarea::placeholder{color:#b0bec5}.macro-hint{text-align:center;color:#8fa0ab;margin:0;padding:8px;font-size:.88rem;display:none}.macro-detail{background:#fff;border:1px solid #d8e3ea;border-radius:20px;padding:24px;animation:.2s macroSlideUp;display:none;box-shadow:0 8px 24px #24465c0d}@keyframes macroSlideUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.macro-detail-header{border-bottom:1px solid #eef2f5;align-items:baseline;gap:12px;margin-bottom:20px;padding-bottom:16px;display:flex}.macro-detail-header h3{color:#1f3342;margin:0;font-size:1.1rem;font-weight:700}.macro-detail-header span{color:#6c8798;font-size:.88rem}.macro-detail-fields{grid-template-columns:1fr 1fr;gap:18px;display:grid}.macro-field{flex-direction:column;gap:6px;display:flex}.macro-field--wide{grid-column:1/-1}.macro-field-label{text-transform:uppercase;letter-spacing:.1em;color:#6c8798;font-size:.75rem;font-weight:600}.macro-field input,.macro-field textarea{color:#1f3342;resize:vertical;background:#fff;border:1px solid #d8e3ea;border-radius:12px;padding:10px 12px;font-family:inherit;font-size:.92rem;transition:border-color .15s}.macro-field input{height:42px}.macro-field input:focus,.macro-field textarea:focus{border-color:#24465c;outline:none;box-shadow:0 0 0 3px #24465c14}.macro-field input::placeholder,.macro-field textarea::placeholder{color:#b0bec5}.macro-field textarea{min-height:72px}.macro-focus-options{flex-wrap:wrap;gap:8px;display:flex}.macro-focus-options--compact{gap:7px}.macro-focus-pill{appearance:none;cursor:pointer;border:2px solid #0000;border-radius:999px;padding:8px 16px;font-family:inherit;font-size:.82rem;font-weight:600;line-height:1;transition:all .15s}.macro-focus-options--compact .macro-focus-pill{white-space:nowrap;border-width:1px;max-width:100%;padding:7px 8px;font-size:.68rem}.macro-focus-pill:hover{transform:scale(1.04)}.macro-focus-pill--active{border-color:currentColor}.macro-focus-pill--none{color:#6c8798;background:#f0f3f5}.macro-focus-pill--tempo{color:#d4342a;background:#f33f3224}.macro-focus-pill--volume{color:#158b8f;background:#27d7df24}.macro-focus-pill--taper{color:#2550ff;background:#2550ff24}.macro-focus-pill--recovery{color:#7a6e50;background:#c8bea547}.macro-focus-pill--fatmax{color:#c67a10;background:#ff9f1c24}.macro-focus-pill--event{color:#6f6200;background:#ffea0047}@media (width<=768px){.macro-header{flex-direction:column;align-items:stretch}.macro-controls,.macro-select{width:100%}.macro-timeline{padding:18px;overflow-x:auto}.macro-grid{gap:3px;width:auto;min-width:fit-content;overflow-x:visible}.macro-column{-webkit-user-select:none;user-select:none;border-right:0;border-radius:10px;flex-direction:column;flex:1;width:auto;min-width:108px;transition:outline-color .15s;display:flex}.macro-column-summary{cursor:pointer;min-height:auto}.macro-column:hover .macro-column-summary{outline-offset:-2px;outline:2px solid #24465c26}.macro-column--event:hover .macro-column-summary{outline-color:#1f334259}.macro-column-summary--active,.macro-column:hover .macro-column-summary--active{outline-offset:-2px;outline:2px solid #24465c}.macro-column-head{border-bottom:0;min-height:auto;padding:10px 6px 6px}.macro-focus-block{min-height:130px;padding:10px 8px}.macro-column--event,.macro-column--event .macro-focus-block{background:#ffea00;box-shadow:inset 0 0 0 2px #ffea00}.macro-column-fields{display:none}.macro-hint{display:block}.macro-detail-fields{grid-template-columns:1fr}.macro-detail{padding:18px;display:block}}
