:root{--bg:#11171d;--card:#1f2933;--line:#2e3a46;--text:#f5f7fa;--muted:#9aa5b1;--run:#2f6fdb;--bike:#1d9e75;--swim:#0ea5c6;--other:#b8c2cc;--warn:#c2410c;--glow-run:#2f6fdb40;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}body{background:radial-gradient(60rem 30rem at 50% -10%, #2f6fdb24, transparent 70%), var(--bg);min-height:100vh;color:var(--text);font:.95rem/1.45 var(--font);margin:0}.masthead{margin-bottom:1.25rem}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:.75rem}h1{margin:.25rem 0 .125rem;font-size:1.75rem}.shell{grid-template-columns:16rem minmax(0,1fr) 16rem;grid-template-areas:"left center right";align-items:start;gap:1.25rem;max-width:90rem;margin:0 auto;padding:1.5rem 1rem 3rem;display:grid}.rail-left{grid-area:left}.center{grid-area:center;min-width:0}.rail-right{grid-area:right}.rail{flex-direction:column;gap:1rem;min-width:0;display:flex;position:sticky;top:1rem}.countdown-card{text-align:left}.countdown-card b{color:var(--run);text-shadow:0 0 1.25rem var(--glow-run);font-size:3rem;line-height:1;display:block}.countdown-card span{color:var(--text);margin-top:.375rem;display:block}.call{margin:0;font-size:1.75rem;font-weight:700}.call-hard{color:var(--bike)}.call-easy{color:var(--other)}.call-rest{color:var(--warn)}.big{margin:0 0 .25rem;font-size:1.75rem;font-weight:700}.big span{color:var(--muted);font-size:.875rem;font-weight:400}.warn{color:var(--warn)}.kv{gap:.375rem;margin:0;display:grid}.kv div{justify-content:space-between;gap:.75rem;font-size:.8125rem;display:flex}.kv dt{color:var(--muted)}.kv dd{text-align:right;margin:0}.plain-list{gap:.5rem;margin:0;padding:0;font-size:.8125rem;list-style:none;display:grid}.plain-list li{flex-direction:column;gap:.125rem;display:flex}.plain-list li>span:not(.sub){color:var(--muted)}.plain-list em{color:var(--muted);margin-left:.375rem;font-style:normal}.plain-list .past{opacity:.55}.plain-list .sub{margin:0}.row-link{all:unset;cursor:pointer;color:var(--text);font-weight:600}.row-link:hover,.row-link:focus-visible{color:var(--run);text-shadow:0 0 .75rem var(--glow-run)}.tiles{grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));gap:.75rem;display:grid}.tile{border:1px solid var(--line);background:#11171d;border-radius:.625rem;flex-direction:column;gap:.125rem;padding:.75rem;display:flex}.tile-label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:.6875rem}.tile-value{font-size:1.375rem;font-weight:700}.chart{aspect-ratio:300/120;width:100%;height:auto;display:block}.chart .axis{fill:var(--muted);font-size:9px}.legend{color:var(--muted);flex-wrap:wrap;gap:.75rem;margin-top:.5rem;font-size:.75rem;display:flex}.legend-item{align-items:center;gap:.375rem;display:inline-flex}.legend i{border-radius:2px;width:.625rem;height:.625rem;display:inline-block}.hbars{gap:.5rem;margin:0;padding:0;font-size:.8125rem;list-style:none;display:grid}.hbars li{grid-template-columns:4.5rem 1fr 3.5rem;align-items:center;gap:.5rem;display:grid}.hbar-label,.hbar-value{color:var(--muted)}.hbar-value{text-align:right}.hbar-track{background:#11171d;border-radius:999px;height:.5rem;overflow:hidden}.hbar-fill{border-radius:999px;height:100%;display:block}.recent{border-collapse:collapse;width:100%;font-size:.8125rem}.recent th,.recent td{text-align:left;border-bottom:1px solid var(--line);padding:.35rem .25rem}.recent th{color:var(--muted);font-weight:500}.grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:1rem;display:grid}.card{background:var(--card);border:1px solid var(--line);border-radius:.875rem;min-width:0;padding:1.125rem;box-shadow:0 0 1.5rem #2f6fdb0f}.span-4{grid-column:span 4}.span-6{grid-column:span 6}.span-8{grid-column:span 8}.span-12{grid-column:span 12}.card h2{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 .25rem;font-size:.8125rem}.sub{color:var(--muted);margin:0 0 .75rem;font-size:.8125rem}.brain-toolbar{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1.5rem;display:flex}.brain-toolbar input{background:var(--card);min-width:0;color:var(--text);border:1px solid var(--line);font:inherit;border-radius:.625rem;flex:18rem;padding:.6rem .875rem}.brain-toolbar input::placeholder{color:var(--muted)}.brain-toolbar input:focus{border-color:var(--run);box-shadow:0 0 .75rem var(--glow-run);outline:none}.brain-toolbar input:disabled{opacity:.5}.brain-count{color:var(--muted);font-size:.8125rem}.brain{border:1px solid var(--line);background:#070b0f;border-radius:.875rem;height:min(70vh,45rem);min-height:18rem;margin-top:.75rem;position:relative;overflow:hidden}.brain canvas{display:block}.brain .sub{margin:1rem}.reader{background:var(--card);border-left:1px solid var(--line);z-index:10;width:min(28rem,100vw);padding:1.25rem;transition:transform .3s;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;transform:translate(105%);box-shadow:-1rem 0 3rem #00000080}.reader.open{transform:translate(0)}.reader-head{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.reader-head h2{overflow-wrap:anywhere;margin:.25rem 0 .75rem;font-size:1.25rem}.reader-close{color:var(--text);border:1px solid var(--line);font:inherit;cursor:pointer;background:0 0;border-radius:.5rem;flex-shrink:0;padding:.4rem .75rem;font-size:.8125rem}.reader-close:hover,.reader-close:focus-visible{border-color:var(--run);box-shadow:0 0 .75rem var(--glow-run);outline:none}.reader-props{background:#11171d;border-radius:.5rem;grid-template-columns:max-content 1fr;gap:.25rem .75rem;margin:0 0 1rem;padding:.75rem;font-size:.8125rem;display:grid}.reader-props dt{color:var(--muted)}.reader-props dd{overflow-wrap:anywhere;margin:0}.reader-body{overflow-wrap:anywhere;font-size:.9375rem}.reader-body h1,.reader-body h2,.reader-body h3{color:var(--text);margin:1.25rem 0 .5rem}.reader-body a{color:var(--swim)}.reader-body code,.reader-body pre{background:#11171d;border-radius:.375rem;font-size:.8125rem}.reader-body pre{padding:.75rem;overflow-x:auto}.reader-body table{border-collapse:collapse;max-width:100%;font-size:.8125rem;display:block;overflow-x:auto}.reader-body th,.reader-body td{border:1px solid var(--line);text-align:left;padding:.35rem .5rem}.reader-body blockquote{border-left:3px solid var(--run);color:var(--muted);margin:.75rem 0;padding-left:.75rem}.reader-body img{max-width:100%;height:auto}@media (width>=800px) and (width<=1199px){.shell{grid-template-columns:15rem minmax(0,1fr);grid-template-areas:"left center""left right"}}@media (width<=800px){.shell{flex-direction:column;gap:1rem;padding:1rem 1rem 3rem;display:flex}.rail{display:contents}.countdown-card{order:1}.readiness-card{order:2}#this-week-card{order:3}.center{order:4;width:100%}#vitals-card{order:5}#key-sessions-card{order:6}#races-card{order:7}#skills-card{order:8}.span-4,.span-6,.span-8{grid-column:span 12}h1{font-size:1.5rem}.countdown-card b{font-size:2.5rem}.brain{height:60vh}.reader{border-left:none;width:100vw}}.deck{margin-bottom:1.25rem}.deck-title{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 .5rem;font-size:.8125rem}.deck-buttons{grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.75rem;display:grid}.deck-btn{background:var(--card);min-height:3rem;color:var(--text);border:1px solid var(--line);font:inherit;text-align:left;cursor:pointer;border-radius:.75rem;flex-direction:column;align-items:flex-start;gap:.25rem;padding:.75rem .875rem;display:flex}.deck-btn:hover,.deck-btn:focus-visible{border-color:var(--run);box-shadow:0 0 .75rem var(--glow-run);outline:none}.deck-name{font-weight:700}.deck-desc{color:var(--muted);font-size:.75rem}.dock{z-index:9;flex-direction:column;gap:.75rem;width:min(26rem,100vw - 2rem);max-height:60vh;display:flex;position:fixed;bottom:1rem;right:1rem;overflow-y:auto}.dock:empty{display:none}.run-card{background:var(--card);border:1px solid var(--line);border-radius:.75rem;padding:.75rem;box-shadow:0 0 1.25rem #0006}.run-card.running{border-color:#f5b301}.run-head{align-items:center;gap:.5rem;font-size:.8125rem;display:flex}.run-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.run-timer{font-variant-numeric:tabular-nums;color:var(--muted)}.run-state{color:var(--muted)}.run-close{color:var(--text);border:1px solid var(--line);font:inherit;cursor:pointer;background:0 0;border-radius:.5rem;padding:.25rem .5rem;font-size:.75rem}.run-output{white-space:pre-wrap;overflow-wrap:anywhere;background:#11171d;border-radius:.5rem;max-height:14rem;margin:.5rem 0 0;padding:.5rem;font-size:.8125rem;overflow-y:auto}@media (width<=800px){.dock{background:var(--bg);border-top:1px solid var(--line);border-radius:1rem 1rem 0 0;width:100%;max-height:70vh;padding:.75rem 1rem 1rem;bottom:0;left:0;right:0}.deck-btn{width:100%;min-height:3.25rem}}.deck-head{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.5rem;display:flex}.deck-head .deck-title{margin:0}.new-chat{background:var(--run);color:#fff;font:inherit;cursor:pointer;border:none;border-radius:.625rem;min-height:2.5rem;padding:.5rem .875rem;font-size:.8125rem;font-weight:600}.new-chat:focus-visible{outline:2px solid var(--text);outline-offset:2px}.run-card.done{border-color:var(--bike)}.run-card.failed{border-color:var(--warn)}.turn-you{border-left:3px solid var(--run);color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere;margin:.5rem 0;padding:.375rem .5rem}.run-stderr{color:var(--muted)}.run-error{color:var(--warn);margin:.5rem 0 0}.reply-form{gap:.5rem;margin-top:.5rem;display:flex}.reply-input{resize:vertical;min-width:0;color:var(--text);border:1px solid var(--line);font:inherit;background:#11171d;border-radius:.5rem;flex:1;padding:.5rem .625rem;font-size:1rem}.reply-input:focus{border-color:var(--run);box-shadow:0 0 .75rem var(--glow-run);outline:none}.reply-send{background:var(--run);color:#fff;min-height:2.75rem;font:inherit;cursor:pointer;border:none;border-radius:.5rem;align-self:flex-end;padding:.5rem .875rem;font-weight:600}.reply-send:disabled,.reply-input:disabled{opacity:.5;cursor:default}@media (width<=800px){.dock{padding-bottom:calc(1rem + env(safe-area-inset-bottom))}.new-chat,.reply-send{min-height:3rem}}
