:root{--bg:#f6f1e6;--bg-wash:radial-gradient(1100px 520px at 15% -8%, #0f7a5217, transparent 60%), radial-gradient(900px 460px at 100% 0%, #b8892e14, transparent 55%);--surface:#fffdf8;--surface-2:#ede5d3;--surface-3:#ddd1b3;--border:#d9caa8;--text:#17231a;--text-muted:#5c6a58;--text-faint:#8b9583;--navy:#0b1f18;--navy-2:#163b2c;--teal-bright:#167a52;--orange:#a97a1f;--status-good-bg:#e3f2e6;--status-good-fg:#157a4a;--status-attn-bg:#f6ecd3;--status-attn-fg:#93691c;--status-off-bg:#ece5d6;--status-off-fg:#7c7562;--shadow:0 1px 2px #17231a14, 0 8px 24px -12px #17231a2e;--glow-teal:0 0 0 1px #167a5259, 0 10px 32px -8px #167a5273;--glow-orange:0 0 24px -2px #a97a1f80;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--bg:#060f0b;--bg-wash:radial-gradient(1100px 560px at 12% -10%, #2ec98c29, transparent 60%), radial-gradient(900px 480px at 105% 0%, #e0b5661f, transparent 55%);--surface:#0d1e17;--surface-2:#142a20;--surface-3:#1c3a2c;--border:#234433;--text:#eef2ea;--text-muted:#9db3a4;--text-faint:#6c8577;--navy:#0b1f18;--navy-2:#14352a;--teal-bright:#3ee6a8;--orange:#e8c26e;--status-good-bg:#123725;--status-good-fg:#6be8ab;--status-attn-bg:#3a2f14;--status-attn-fg:#f0c26e;--status-off-bg:#1c2620;--status-off-fg:#85937f;--shadow:0 1px 2px #0006, 0 8px 28px -12px #000000a6;--glow-teal:0 0 0 1px #3ee6a866, 0 0 40px -6px #3ee6a88c;--glow-orange:0 0 28px -2px #e8c26e99}}:root[data-theme=dark]{--bg:#060f0b;--bg-wash:radial-gradient(1100px 560px at 12% -10%, #2ec98c29, transparent 60%), radial-gradient(900px 480px at 105% 0%, #e0b5661f, transparent 55%);--surface:#0d1e17;--surface-2:#142a20;--surface-3:#1c3a2c;--border:#234433;--text:#eef2ea;--text-muted:#9db3a4;--text-faint:#6c8577;--navy:#0b1f18;--navy-2:#14352a;--teal-bright:#3ee6a8;--orange:#e8c26e;--status-good-bg:#123725;--status-good-fg:#6be8ab;--status-attn-bg:#3a2f14;--status-attn-fg:#f0c26e;--status-off-bg:#1c2620;--status-off-fg:#85937f;--shadow:0 1px 2px #0006, 0 8px 28px -12px #000000a6;--glow-teal:0 0 0 1px #3ee6a866, 0 0 40px -6px #3ee6a88c;--glow-orange:0 0 28px -2px #e8c26e99}*{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){.phase-pill .dot{animation:2.2s ease-in-out infinite pulse}}@keyframes pulse{0%,to{box-shadow:0 0 #3ee6a88c}50%{box-shadow:0 0 0 5px #3ee6a800}}body{background:var(--bg);background-image:var(--bg-wash);color:var(--text);-webkit-font-smoothing:antialiased;background-attachment:fixed;margin:0;padding-block:24px 64px;padding-inline:clamp(16px,4vw,40px);font-family:Inter,system-ui,sans-serif}h1,h2,h3{text-wrap:balance;margin:0}.eyebrow{letter-spacing:.09em;text-transform:uppercase;color:var(--text-muted);font-family:Inter,sans-serif;font-size:.72rem;font-weight:700}.mono{font-variant-numeric:tabular-nums;font-family:JetBrains Mono,SFMono-Regular,monospace}a{color:var(--teal-bright)}button{font-family:inherit}:focus-visible{outline:2px solid var(--teal-bright);outline-offset:2px}.shell{flex-direction:column;gap:18px;max-width:1180px;margin-inline:auto;display:flex}.topbar{background:linear-gradient(122deg, var(--navy) 0%, var(--navy) 38%, var(--navy-2) 78%, var(--teal-bright) 145%);color:#f2f6f4;box-shadow:var(--glow-teal), 0 20px 44px -20px #0000008c;border-radius:20px;flex-wrap:wrap;align-items:center;gap:16px 26px;padding:22px 26px;display:flex;position:relative;overflow:hidden}.topbar:after{content:"";pointer-events:none;background:radial-gradient(420px 220px at 82% -20%,#e0b56652,#0000 65%);position:absolute;inset:0}.topbar>*{z-index:1;position:relative}.brand{align-items:center;gap:13px;display:flex}.brand svg{filter:drop-shadow(0 6px 16px #00000059);flex-shrink:0;width:46px;height:46px}.brand-name{letter-spacing:.005em;font-family:Fraunces,serif;font-size:1.5rem;font-weight:800;line-height:1}.brand-sub{color:#d3c7a3;letter-spacing:.02em;margin-top:3px;font-size:.73rem}.phase-pill{color:#c9f5df;background:#3ee6a82e;border:1px solid #3ee6a880;border-radius:999px;align-items:center;gap:8px;padding:7px 14px;font-size:.79rem;font-weight:700;display:inline-flex;box-shadow:inset 0 0 0 1px #3ee6a81f}.phase-pill .dot{background:#3ee6a8;border-radius:50%;width:8px;height:8px;box-shadow:0 0 8px 1px #3ee6a8e6}.countdown{text-align:right;margin-left:auto}.countdown .num{background:linear-gradient(#fff 10%,#f0d9a0 130%);color:#0000;filter:drop-shadow(0 0 18px #e0b56673);-webkit-background-clip:text;background-clip:text;font-family:Fraunces,serif;font-size:2.6rem;font-weight:800;line-height:1}.countdown .label{color:#cdc2a0;margin-top:4px;font-size:.72rem;font-weight:500}.dashboard{flex-direction:column;gap:18px;display:flex}.panel{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:16px;padding:18px 18px 20px}.panel-head{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:14px;display:flex}.panel-head h2{color:var(--text);font-family:Fraunces,serif;font-size:1.15rem;font-weight:700}.panel-head .meta{color:var(--text-faint);font-size:.72rem}.sync-row{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.sync-badge{background:var(--status-good-bg);color:var(--status-good-fg);border-radius:999px;align-items:center;gap:6px;padding:5px 10px;font-size:.73rem;font-weight:600;display:inline-flex}.sync-badge.stale{background:var(--status-attn-bg);color:var(--status-attn-fg)}.sync-badge .dot{background:currentColor;border-radius:50%;width:6px;height:6px}.fitness-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.tile{background:var(--surface-2);border-left:3px solid var(--surface-3);border-radius:12px;flex-direction:column;gap:3px;padding:12px 13px 12px 15px;transition:border-color .15s;display:flex;position:relative}.tile.hero{border-left-color:var(--orange);background:linear-gradient(120deg, var(--surface-2), var(--status-attn-bg) 160%);flex-flow:wrap;grid-column:1/-1;justify-content:space-between;align-items:center;gap:10px;display:flex}.tile.hero .value{color:var(--orange);text-shadow:0 0 22px #a97a1f59;font-size:2rem}.tile .eyebrow{font-size:.64rem}.tile .value{color:var(--text);font-family:JetBrains Mono,monospace;font-size:1.26rem;font-weight:700}.tile .value.empty{color:var(--text-faint);font-family:Inter,sans-serif;font-size:.88rem;font-weight:500}.tile .sub{color:var(--text-faint);font-size:.68rem}.manual-metric-entry{flex-direction:column;gap:4px;margin-top:6px;display:flex}.manual-metric-entry-row{gap:6px;display:flex}.manual-metric-entry-row input{border:1px solid var(--border);background:var(--surface);min-width:0;color:var(--text);border-radius:7px;flex:1;padding:5px 7px;font-family:inherit;font-size:.78rem}.manual-metric-entry-row button{background:var(--teal-bright);color:#06231a;cursor:pointer;white-space:nowrap;border:none;border-radius:7px;padding:5px 10px;font-size:.72rem;font-weight:700}.manual-metric-entry-row button:disabled{opacity:.6;cursor:default}.manual-metric-entry-error{color:var(--status-attn-fg);font-size:.66rem}.tile.wide{border-left-color:var(--teal-bright);flex-flow:wrap;grid-column:1/-1;justify-content:space-between;align-items:center;gap:6px}.tile.wide .race-name{color:var(--text);font-family:Fraunces,serif;font-size:.96rem;font-weight:700}.tile.wide .race-badge{text-transform:uppercase;letter-spacing:.04em;color:var(--status-attn-fg);background:var(--status-attn-bg);border-radius:999px;padding:2px 8px;font-size:.63rem;font-weight:700}.tile.pb-tile{border-left-color:var(--teal-bright);display:block}.pb-table{flex-direction:column;gap:6px;width:100%;display:flex}.pb-table-row{grid-template-columns:1fr auto auto;align-items:baseline;gap:14px;display:grid}.pb-table-row.pb-table-head{color:var(--text-faint);text-transform:uppercase;letter-spacing:.04em;font-size:.62rem;font-weight:700}.pb-table-row.pb-table-head em{opacity:.75;font-style:normal}.pb-table-row .dist{color:var(--text);font-size:.82rem;font-weight:600}.pb-table-row .cur{color:var(--text-muted);text-align:right;font-size:.86rem}.pb-table-row .best{color:var(--teal-bright);text-align:right;font-size:.86rem;font-weight:700}.pb-flag{text-transform:uppercase;letter-spacing:.03em;background:var(--status-good-bg);color:var(--status-good-fg);border-radius:999px;margin-left:6px;padding:2px 6px;font-family:Inter,sans-serif;font-size:.6rem;font-weight:700}.ramp-gate{border-top:1px solid var(--border);margin-top:14px;padding-top:14px}.ramp-gate .row{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.ramp-gate .row h3{color:var(--text);font-size:.78rem;font-weight:600}.ramp-gate .row .frac{color:var(--teal-bright);font-family:JetBrains Mono,monospace;font-size:.78rem;font-weight:600}.ramp-dots{gap:6px;margin-bottom:8px;display:flex}.ramp-dots span{background:var(--surface-3);border-radius:5px;flex:1;height:8px}.ramp-dots span.filled{background:linear-gradient(90deg, var(--teal-bright), #6fe8b8);box-shadow:0 0 10px -1px #167a5280}.ramp-note{color:var(--text-faint);font-size:.71rem;line-height:1.4}.week-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:16px;padding:16px 17px;position:relative;container:weekcard/inline-size}@container weekcard (width<=215px){.disc-row{grid-template-columns:14px minmax(0,34px) minmax(14px,1fr) auto;gap:5px}.disc-row .name{font-size:.66rem}.disc-row .icon{width:13px;height:13px}.disc-row .figs{font-size:.66rem}.disc-row .status-chip{display:none}}@container weekcard (width<=150px){.disc-row .name{display:none}}.week-card.current{background:linear-gradient(var(--surface), var(--surface)) padding-box, linear-gradient(135deg, var(--teal-bright), var(--orange)) border-box;box-shadow:var(--glow-teal);border:2px solid #0000}.week-card-head{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;display:flex}.week-card-head .label{font-family:Fraunces,serif;font-size:1.05rem;font-weight:700}.week-card.current .week-card-head .label{color:var(--teal-bright)}.week-card-head .date{color:var(--text-faint);font-size:.72rem}.week-card-head .phase-tag{text-transform:uppercase;letter-spacing:.04em;color:var(--teal-bright);background:var(--status-good-bg);border-radius:999px;margin-left:auto;padding:3px 9px;font-size:.64rem;font-weight:700}.disc-list{flex-direction:column;gap:9px;display:flex}.disc-row{grid-template-columns:16px minmax(0,max-content) minmax(16px,1fr) auto;align-items:center;gap:6px;display:grid}.disc-row .icon{width:15px;height:15px;color:var(--text-faint);flex-shrink:0}.disc-row .name{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.77rem;font-weight:600;overflow:hidden}.disc-row .bar-track{background:var(--surface-3);border-radius:5px;min-width:0;height:8px;overflow:hidden}.disc-row.plan{align-items:center;gap:8px;display:flex}.disc-row.plan .name{flex:auto}.disc-row.plan .figs{flex-shrink:0}.disc-row .bar-fill{background:linear-gradient(90deg, var(--teal-bright), #6fe8b8);border-radius:5px;height:100%;box-shadow:0 0 10px -1px #167a5280}.disc-row .bar-fill.attn{background:linear-gradient(90deg, var(--orange), #e0c07f);box-shadow:0 0 10px -1px #a97a1f73}.disc-row .bar-fill.off{background:var(--text-faint);opacity:.4;box-shadow:none}.disc-row .figs{text-align:right;white-space:nowrap;font-size:.72rem}.disc-row .figs .actual{color:var(--text);font-family:JetBrains Mono,monospace;font-weight:600}.disc-row .figs .target{color:var(--text-faint)}.disc-row.sub{margin-top:-2px;padding-top:7px}.status-chip{text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;border-radius:999px;flex-shrink:0;margin-left:5px;padding:1px 6px;font-size:.58rem;font-weight:700}.status-chip.good{background:var(--status-good-bg);color:var(--status-good-fg)}.status-chip.attn{background:var(--status-attn-bg);color:var(--status-attn-fg)}.status-chip.off{background:var(--status-off-bg);color:var(--status-off-fg)}.authored-note{color:var(--text-faint);margin:6px 0 0 28px;font-size:.67rem;font-style:italic}.section-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);margin:0 0 8px;font-family:Inter,sans-serif;font-size:.62rem;font-weight:700}.section-label.sessions{border-top:1px dashed var(--border);margin-top:14px;padding-top:12px}.session-list{flex-direction:column;gap:8px;display:flex}.session-row{grid-template-columns:30px 16px 1fr auto;align-items:center;gap:8px;display:grid}.session-row .s-day{color:var(--text-faint);font-family:JetBrains Mono,monospace;font-size:.66rem}.session-row .icon{width:14px;height:14px;color:var(--text-faint)}.session-row .s-desc{color:var(--text-muted);font-size:.76rem}.session-row .s-desc em{color:var(--text-faint);font-style:normal}.session-row.pending .s-desc{color:var(--text-faint);font-style:italic}.session-row-wrap{position:relative}.session-popover{z-index:20;background:var(--surface-2);border:1px solid var(--border);min-width:200px;box-shadow:var(--shadow);color:var(--text-muted);border-radius:10px;padding:10px 12px;font-size:.74rem;position:absolute;top:calc(100% + 6px);left:30px}.session-popover .title{color:var(--text);margin-bottom:6px;font-family:Fraunces,serif;font-size:.82rem;font-weight:700}.session-popover dl{grid-template-columns:auto 1fr;gap:3px 10px;margin:0;display:grid}.session-popover dt{color:var(--text-faint)}.session-popover dd{color:var(--text);text-align:right;margin:0;font-family:JetBrains Mono,monospace}.chart-tooltip{background:var(--surface-2);border:1px solid var(--border);box-shadow:var(--shadow);color:var(--text-muted);border-radius:10px;padding:10px 12px;font-size:.74rem}.chart-tooltip .title{color:var(--text);margin-bottom:6px;font-family:Fraunces,serif;font-size:.82rem;font-weight:700}.chart-tooltip dl{grid-template-columns:auto 1fr;gap:3px 10px;margin:0;display:grid}.chart-tooltip dt{color:var(--text-faint)}.chart-tooltip dd{color:var(--text);text-align:right;margin:0;font-family:JetBrains Mono,monospace}.week-condensed{text-align:left;background:var(--surface-2);border:1px solid var(--border);cursor:pointer;width:100%;color:inherit;border-radius:12px;align-items:center;gap:10px;padding:11px 13px;display:flex}.week-condensed .label{flex-shrink:0;width:78px;font-family:Fraunces,serif;font-size:.9rem;font-weight:700}.week-condensed .summary{color:var(--text-muted);flex:1;font-size:.75rem}.week-condensed .chevron{color:var(--text-faint);flex-shrink:0;font-size:.68rem;transition:transform .15s}.week-condensed[aria-expanded=true] .chevron{transform:rotate(90deg)}.legend{color:var(--text-faint);flex-wrap:wrap;gap:14px;padding:2px;font-size:.71rem;display:flex}.legend span{align-items:center;gap:6px;display:inline-flex}.legend i{background:currentColor;border-radius:50%;width:8px;height:8px;display:inline-block}html[data-density=desktop] .dashboard{grid-template-columns:minmax(260px,340px) 1fr;align-items:start;gap:20px;display:grid}html[data-density=desktop] .week-rail-full{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;display:grid}html[data-density=desktop] .week-rail-full .week-card{height:100%}html[data-density=desktop] .week-condensed-wrap{display:none}html[data-density=mobile] .week-rail-full{flex-direction:column;display:flex}html[data-density=mobile] .week-rail-full>.week-card:not(.current){display:none}html[data-density=mobile] .fitness-grid{grid-template-columns:repeat(2,1fr)}.week-condensed-wrap{flex-direction:column;gap:10px;margin-top:12px;display:flex}@media (width<=400px){.fitness-grid{grid-template-columns:1fr 1fr}.countdown{text-align:left;margin-left:0}}.view-tabs{gap:6px;display:flex}.view-tabs button{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer;border-radius:10px;padding:8px 16px;font-size:.8rem;font-weight:600}.view-tabs button[aria-selected=true]{background:linear-gradient(120deg, var(--navy), var(--navy-2) 120%);color:#fff;border-color:var(--navy);box-shadow:var(--glow-teal)}.trends-grid{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.chart-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:16px;padding:15px 16px 12px}.chart-card-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:4px;display:flex}.chart-card-head h3{color:var(--text);font-family:Fraunces,serif;font-size:.9rem;font-weight:600}.chart-card-head .src{color:var(--text-faint);font-size:.66rem}.chart-card .note{color:var(--text-faint);margin-top:4px;font-size:.68rem;line-height:1.4}.chart-card svg{width:100%;height:130px;margin-top:6px;display:block}.pb-trio{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.pb-trio-item svg{width:100%;height:92px;display:block}.pb-trio-head{justify-content:space-between;align-items:baseline;gap:6px;margin-bottom:2px;display:flex}.pb-trio-head span:first-child{color:var(--text);font-size:.8rem;font-weight:700}.pb-trio-head .src{color:var(--text-faint);font-size:.62rem}@media (width<=700px) and (orientation:portrait){.pb-trio{grid-template-columns:1fr}.pb-trio-item svg{height:76px}}.unavailable-card{border:1px dashed var(--border);color:var(--text-muted);border-radius:16px;grid-column:1/-1;padding:14px 17px;font-size:.78rem;line-height:1.5}.unavailable-card h3{color:var(--text);margin-bottom:6px;font-size:.82rem}.unavailable-card code{background:var(--surface-2);border-radius:4px;padding:1px 5px;font-size:.75rem}.metric-picker{gap:6px;margin-bottom:4px;padding-bottom:4px;display:none;overflow-x:auto}.metric-picker button{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer;white-space:nowrap;border-radius:999px;flex-shrink:0;padding:6px 12px;font-size:.72rem;font-weight:600}.metric-picker button[aria-pressed=true]{background:var(--teal-bright);color:#06231a;border-color:var(--teal-bright)}html[data-density=mobile] .trends-grid{grid-template-columns:1fr}html[data-density=mobile] .trends-grid .chart-card:not(.picked){display:none}html[data-density=mobile] .trends-grid .unavailable-card{display:block}html[data-density=mobile] .metric-picker{display:flex}.races-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.add-race-btn{background:linear-gradient(120deg, var(--teal-bright), #6fe8b8);color:#06231a;cursor:pointer;box-shadow:var(--glow-teal);border:none;border-radius:10px;padding:10px 18px;font-size:.8rem;font-weight:800;transition:transform .12s}.add-race-btn:hover{transform:translateY(-1px)}.race-list{flex-direction:column;gap:10px;display:flex}.race-row{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px;flex-wrap:wrap;align-items:center;gap:12px;padding:13px 15px;display:flex}.race-row .icon{width:20px;height:20px;color:var(--teal-bright);flex-shrink:0}.race-row .info{flex:1;min-width:160px}.race-row .info .name{font-size:.92rem;font-weight:600}.race-row .info .meta{color:var(--text-faint);margin-top:2px;font-size:.72rem}.race-status{text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:3px 9px;font-size:.63rem;font-weight:700}.race-status.assumed{background:var(--status-attn-bg);color:var(--status-attn-fg)}.race-status.confirmed{background:var(--status-off-bg);color:var(--status-off-fg)}.race-status.booked{background:var(--status-good-bg);color:var(--status-good-fg)}.race-row .elev-badge{color:var(--text-muted);background:var(--surface-2);border-radius:999px;padding:3px 8px;font-family:JetBrains Mono,monospace;font-size:.66rem}.race-edit-btn{border:1px solid var(--border);background:var(--surface-2);color:var(--text-muted);cursor:pointer;border-radius:8px;padding:6px 11px;font-size:.72rem;font-weight:600}.race-form{background:var(--surface-2);border:1px solid var(--border);border-radius:14px;grid-template-columns:repeat(4,1fr);gap:8px;width:100%;padding:13px 15px;display:grid}.race-form label{color:var(--text-faint);text-transform:uppercase;letter-spacing:.03em;flex-direction:column;gap:3px;font-size:.68rem;font-weight:600;display:flex}.race-form input,.race-form select{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;padding:7px 8px;font-family:inherit;font-size:.82rem}.race-form .form-actions{grid-column:1/-1;justify-content:flex-end;gap:8px;display:flex}.race-form .form-actions button{cursor:pointer;border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:8px;padding:7px 14px;font-size:.76rem;font-weight:600}.race-form .form-actions button.primary{background:var(--teal-bright);border-color:var(--teal-bright);color:#06231a}.shell-loading{text-align:center;color:var(--text-faint);padding:24px;font-size:.85rem}.error-retry{border:1px dashed var(--border);color:var(--status-attn-fg);background:var(--status-attn-bg);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:16px;font-size:.85rem;display:flex}.error-retry button{border:1px solid var(--status-attn-fg);color:var(--status-attn-fg);cursor:pointer;background:0 0;border-radius:8px;padding:6px 12px;font-weight:600}@media (width<=700px){.trends-grid{grid-template-columns:1fr}.trends-grid .chart-card:not(.picked){display:none}.metric-picker{display:flex}.race-form{grid-template-columns:1fr 1fr}}
