:root{--bg:#fafafa;--panel:#ffffffeb;--panel-strong:#fff;--ink:#111;--muted:#666;--line:#e5e5e5;--line-strong:#d4d4d4;--accent:#111;--accent-soft:#1111110f;--easy:#f3f7f3;--workout:#fff4e8;--long:#eef5ff;--rest:#f4f1eb;--race:#fff0f0;--shadow:0 12px 36px #0000000d}*{box-sizing:border-box}html{background:linear-gradient(#11111106 1px, transparent 1px), linear-gradient(90deg, #11111106 1px, transparent 1px), var(--bg);background-size:32px 32px;min-height:100%}body{min-height:100vh;color:var(--ink);margin:0;font-family:Geist,Avenir Next,Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.35}a{color:inherit}.site-title{text-decoration:none}.shell{width:min(1480px,100vw - 96px);margin:0 auto;padding:16px 0 32px}.site-header{z-index:30;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;display:flex;position:relative}.site-title{letter-spacing:-.06em;margin:0;font-size:clamp(1.35rem,3vw,2.2rem);font-weight:720}.local-save-status{color:var(--muted);margin:3px 0 0;font-size:.76rem}.local-save-status:before{content:"";vertical-align:1px;background:#16a34a;border-radius:50%;width:6px;height:6px;margin-right:6px;display:inline-block}.local-save-status-saving:before,.local-save-status-offline:before{background:#ca8a04}.local-save-status-error:before{background:#dc2626}.hero,.section{border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:var(--shadow);border-radius:10px;margin-bottom:12px}.hero{padding:16px}.account-menu{position:relative}.account-menu-trigger{border:1px solid var(--ink);min-height:40px;color:var(--ink);cursor:pointer;font:inherit;background:#fff;border-radius:8px;align-items:center;gap:8px;padding:9px 11px;font-size:.9rem;font-weight:650;list-style:none;display:inline-flex}.account-menu-trigger::-webkit-details-marker{display:none}.account-menu[open] .account-menu-trigger{background:var(--ink);color:#fff}.hamburger-icon{gap:4px;width:18px;display:grid}.hamburger-icon span{background:currentColor;border-radius:999px;height:2px;display:block}.account-menu-panel{z-index:50;border:1px solid var(--line);background:#fffffff7;border-radius:10px;gap:14px;width:min(380px,100vw - 24px);padding:14px;display:grid;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 18px 48px #0000001f}.auth-title{margin:0;font-size:1rem;font-weight:650}.auth-note,.form-error{color:var(--muted);margin:6px 0 0;font-size:.86rem}.form-error{color:#b42318}.auth-actions,.auth-login-form,.auth-inline-form{flex-wrap:wrap;justify-content:flex-end;align-items:end;gap:10px;display:flex}.account-menu-panel label{color:var(--muted);text-transform:uppercase;gap:4px;font-size:.74rem;font-weight:650;display:grid}.account-menu-panel input{border:1px solid var(--line);min-width:180px;color:var(--ink);font:inherit;text-transform:none;background:#fff;border-radius:8px;padding:9px 10px;font-size:.9rem}.account-menu-panel button{border:1px solid var(--ink);color:var(--ink);cursor:pointer;font:inherit;background:#fff;border-radius:8px;padding:10px 12px;font-size:.9rem;font-weight:650}.auth-link-button,.settings-link,.primary-button,.secondary-button{border:1px solid var(--ink);cursor:pointer;min-height:40px;font:inherit;border-radius:8px;justify-content:center;align-items:center;padding:10px 12px;font-size:.9rem;font-weight:650;text-decoration:none;display:inline-flex}.auth-link-button,.settings-link,.secondary-button{color:var(--ink);background:#fff}.primary-button{background:var(--ink);color:#fff}.primary-button:disabled,.primary-button[aria-disabled=true]{border-color:var(--line-strong);color:#a3a3a3;cursor:not-allowed;pointer-events:none;background:#f5f5f5}.account-menu-panel .auth-primary{background:var(--ink);color:#fff}.hero-bar{justify-content:space-between;align-items:end;gap:20px;display:flex}.eyebrow{color:var(--accent);letter-spacing:0;text-transform:uppercase;margin:0 0 6px;font-size:.75rem;font-weight:650}.hero h1,.section h2{margin:0;font-weight:650;line-height:1.08}.hero h1{letter-spacing:-.04em;font-size:clamp(1.45rem,3vw,2rem)}.lede,.section-copy,.season-row span,.day-date,.session-detail,.session-miles,.summary-list span{color:var(--muted)}.lede{max-width:62ch;margin:18px 0 0;font-size:1.08rem;line-height:1.6}.day-column{border:1px solid var(--line);background:var(--panel-strong);border-radius:8px}.section{padding:16px}.settings-section h1,.settings-section h2{margin:0}.integration-row{border:1px solid var(--line);background:#fff;border-radius:8px;justify-content:space-between;align-items:start;gap:24px;padding:16px;display:flex}.integration-actions,.integration-status{justify-items:end;gap:8px;display:grid}.integration-status{color:var(--muted);text-align:right;font-size:.86rem}.integration-status strong{color:var(--ink);font-size:1rem}.page-actions{justify-content:flex-end;gap:10px;margin-bottom:12px;display:flex}.block-list{gap:8px;display:grid}.block-list-item{border:1px solid var(--line);background:#fff;border-radius:8px;justify-content:space-between;align-items:center;gap:18px;padding:14px;text-decoration:none;display:flex}.block-list-item h3{margin:0;font-size:1.08rem}.block-list-item p{color:var(--muted);margin:5px 0 0}.block-list-meta{color:var(--muted);text-align:right;justify-items:end;gap:4px;font-size:.84rem;display:grid}.upload-layout{grid-template-columns:minmax(0,1fr) minmax(320px,.72fr);align-items:start;gap:12px;display:grid}.upload-preview{grid-column:1/-1}.upload-form,.upload-form label{gap:8px;display:grid}.upload-form{gap:14px}.upload-form label{color:var(--muted);text-transform:uppercase;font-size:.74rem;font-weight:650}.upload-form input{border:1px solid var(--line);width:100%;min-width:0;color:var(--ink);font:inherit;text-transform:none;background:#fff;border-radius:8px;padding:9px 10px;font-size:.9rem}.upload-form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.upload-submit{justify-self:end}.upload-page-error{margin:0 0 12px}.format-example{gap:12px;display:grid}.format-example code{border:1px solid var(--line);color:var(--ink);overflow-wrap:anywhere;background:#fff;border-radius:8px;padding:12px;font-size:.82rem;display:block}.format-example p{color:var(--muted);margin:0}.upload-preview-table{overflow-x:auto}.upload-preview-table table{border-collapse:collapse;background:#fff;width:100%;min-width:920px}.upload-preview-table th,.upload-preview-table td{border:1px solid var(--line);text-align:left;vertical-align:top;padding:10px}.upload-preview-table th{color:var(--muted);text-transform:uppercase;font-size:.74rem;font-weight:650}.upload-preview-table td{font-size:.86rem}.section-heading{justify-content:space-between;align-items:end;gap:24px;margin-bottom:14px;display:flex}.hero-meta,.section-stats{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.meta-chip{border:1px solid var(--line);background:#ffffffc2;border-radius:8px;min-width:96px;padding:9px 11px}.desktop-separated-meta{display:none}.combined-meta{display:block}.meta-label{color:var(--muted);letter-spacing:0;text-transform:uppercase;margin-bottom:4px;font-size:.72rem;font-weight:650;display:block}.meta-chip strong{font-size:.98rem}.meta-chip small{color:var(--muted);margin-top:4px;font-size:.82rem;line-height:1.2;display:block}.section h2{letter-spacing:-.03em;font-size:clamp(1.25rem,2.2vw,1.7rem)}.season-table,.season-entry{gap:6px;min-width:0;display:grid}.season-grid{grid-template-columns:1.1fr 1fr 1.7fr .7fr .7fr .7fr;align-items:center;gap:16px;display:grid}.season-grid-plan{grid-template-columns:minmax(146px,1fr) repeat(7,minmax(86px,1fr)) minmax(72px,.44fr);align-items:start;gap:8px 5px;display:grid}.season-head,.season-row{border:1px solid var(--line);background:#ffffffd1;border-radius:8px;padding:11px 10px}.season-button{width:100%;color:inherit;text-align:left;cursor:pointer;font:inherit}.season-row-active{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.season-row-current{border-color:#16653480;box-shadow:inset 0 0 0 1px #1665341f}.season-expanded{border:1px solid var(--ink);min-width:0;box-shadow:inset 0 0 0 1px var(--ink);background:#ffffffd1;border-radius:8px;padding:11px 10px}.season-expanded-current{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink), 0 0 0 2px #16653429}.season-head{letter-spacing:0;text-transform:uppercase;color:var(--muted);font-size:.8rem;font-weight:650}.row-title,.day-name,.session-topline p{margin:0;font-weight:650;line-height:1.18}.row-title{align-items:center;gap:5px;display:flex}.row-subtitle{color:var(--muted);margin:2px 0 0;font-size:.84rem;line-height:1.15}.week-caret{width:0;height:0;color:var(--muted);border-top:4px solid #0000;border-bottom:4px solid #0000;border-left:5px solid;flex:none;display:inline-block}.week-caret-expanded{transform:rotate(90deg)}.week-summary-cell .row-title,.miles-cell,.miles-cell strong,.week-board-title-text{font-weight:500}.mobile-week-totals,.mobile-day-label,.mobile-week-key-sessions{display:none}.plan-day-cell{min-width:0;color:var(--muted);gap:2px;line-height:1.16;display:grid}.plan-day-cell strong,.plan-day-cell small{display:block;overflow:hidden}.plan-day-cell strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:.84rem;font-weight:650}.plan-day-cell small{overflow-wrap:anywhere;white-space:normal;font-size:.76rem;line-height:1.18}.plan-day-cell .plan-day-actual{color:#fc4c02;font-weight:650}.plan-day-cell .plan-day-accessories{color:#166534;font-weight:650}.miles-cell{text-align:right;white-space:nowrap;gap:2px;font-size:.86rem;font-weight:650;display:grid}.miles-cell strong{font-size:.88rem}.miles-cell small{color:var(--muted);font-size:.72rem;font-weight:650}.status-pill{border-radius:999px;justify-content:center;padding:8px 12px;font-size:.84rem;font-weight:650;display:inline-flex}.tone-on-track{color:#166534;background:#16a34a1a}.tone-under{color:#9a3412;background:#ea580c1a}.tone-over{color:#1d4ed8;background:#2563eb1a}.tone-taper{color:#404040;background:#5252521a}.week-board-metrics{flex-wrap:wrap;justify-content:flex-end;align-items:stretch;gap:10px;margin:0 0 12px;display:flex}.week-board-metrics .meta-chip strong{font-weight:500}.week-board-title{align-content:center;min-width:150px;margin-right:auto;display:grid}.week-board-title-button{color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;align-items:center;padding:0}.week-board-title h3{letter-spacing:-.03em;margin:0;font-size:1.35rem}.week-board-title-text{letter-spacing:-.03em;align-items:center;gap:5px;font-size:1.35rem;font-weight:500;line-height:1.08;display:flex}.week-board-date-range{color:var(--muted);margin-top:2px;font-size:.9rem;line-height:1.25;display:block}.meta-chip-met{background:#16a34a14;border-color:#1665345c}.week-target-chip{color:inherit;cursor:pointer;font:inherit;text-align:left}.week-target-chip:hover,.week-target-chip:focus-visible{border-color:var(--ink);outline:none}.sync-strava-button{border:1px solid var(--ink);background:var(--ink);color:#fff;cursor:pointer;min-width:116px;font:inherit;border-radius:8px;padding:9px 11px;font-size:.86rem;font-weight:650}.sync-strava-button:disabled{cursor:wait;opacity:.58}.sync-status{text-align:right;margin:-4px 0 12px}.modal-backdrop{z-index:40;overscroll-behavior:contain;background:#11111147;place-items:center;padding:20px;display:grid;position:fixed;inset:0;overflow-y:auto}.target-modal,.session-editor-form{border:1px solid var(--line);background:#fff;border-radius:8px;gap:16px;width:min(460px,100%);padding:16px;display:grid;box-shadow:0 18px 56px #0000002e}.target-modal-header,.target-modal-actions{justify-content:space-between;align-items:center;gap:12px;display:flex}.target-modal-header h4{margin:0;font-size:1.1rem}.modal-close-button{border:1px solid var(--line);width:36px;height:36px;color:var(--muted);cursor:pointer;font:inherit;background:#fff;border-radius:8px;font-weight:650}.target-modal-grid{gap:10px;display:grid}.target-modal-grid label{color:var(--muted);text-transform:uppercase;gap:5px;font-size:.74rem;font-weight:650;display:grid}.target-modal-grid input,.target-modal-grid select,.target-modal-grid textarea{border:1px solid var(--line);width:100%;min-width:0;color:var(--ink);font:inherit;text-transform:none;background:#fff;border-radius:8px;padding:9px 10px;font-size:.92rem}.target-modal-grid textarea{resize:vertical;min-height:92px}.target-modal-grid input:focus,.target-modal-grid select:focus,.target-modal-grid textarea:focus{border-color:var(--ink);outline:none}.target-modal-actions{justify-content:flex-end}.target-modal-actions button,.target-modal-actions a{border:1px solid var(--ink);cursor:pointer;min-width:96px;font:inherit;border-radius:8px;justify-content:center;align-items:center;padding:9px 11px;font-size:.86rem;font-weight:650;text-decoration:none;display:inline-flex}.target-modal-actions button:first-child,.target-modal-actions a{color:var(--ink);background:#fff}.target-modal-actions button:last-child{background:var(--ink);color:#fff}.target-modal-actions button:disabled,.modal-close-button:disabled{cursor:wait;opacity:.58}.activity-detail-modal{width:min(560px,100%)}.activity-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.activity-detail-grid>div{border:1px solid var(--line);background:#fbfbfb;border-radius:8px;min-width:0;padding:10px}.activity-detail-grid strong{overflow-wrap:anywhere;margin-top:4px;font-size:.95rem;line-height:1.22;display:block}.activity-notes-field{color:var(--muted);text-transform:uppercase;gap:5px;font-size:.74rem;font-weight:650;display:grid}.activity-notes-field textarea{border:1px solid var(--line);min-height:120px;color:var(--ink);font:inherit;resize:vertical;text-transform:none;border-radius:8px;padding:10px;font-size:.92rem}.activity-notes-field textarea:focus{border-color:var(--ink);outline:none}.week-board{grid-template-columns:repeat(7,minmax(168px,1fr));gap:8px;width:100%;max-width:100%;display:grid;overflow-x:auto}.mobile-week-shell,.mobile-week-snap-view{display:none}.day-column{background:#fff;min-height:480px;padding:12px;transition:border-color .12s,box-shadow .12s,transform .12s}.day-column-active{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.day-header,.session-topline,.session-miles{justify-content:space-between;gap:12px;display:flex}.day-header{border-bottom:1px solid var(--line);align-items:start;padding-bottom:12px}.day-name{font-size:1rem}.day-date{margin:4px 0 0;font-size:.9rem}.day-totals{text-align:right;font-size:.82rem;font-weight:650}.day-totals span{display:block}.add-run-trigger{border:1px dashed var(--line-strong);width:100%;color:var(--muted);cursor:pointer;font:inherit;text-align:left;background:#fff;border-radius:8px;margin-top:10px;padding:7px 9px;font-size:.82rem;font-weight:650}.add-run-trigger:hover,.add-run-trigger:focus-visible{border-color:var(--ink);color:var(--ink);outline:none}.add-run-trigger:disabled{color:#a3a3a3;cursor:not-allowed;border-style:solid}.card-stack{gap:10px;margin-top:10px;display:grid}.activity-stack{border-top:1px solid var(--line);gap:8px;margin-top:10px;padding-top:10px;display:grid}.activity-heading{color:var(--muted);letter-spacing:0;text-transform:uppercase;margin:0;font-size:.74rem;font-weight:650}.session-card{border:1px solid var(--line);cursor:grab;touch-action:none;border-radius:8px;padding:12px}.activity-card{width:100%;color:var(--ink);cursor:pointer;font:inherit;text-align:left;background:#fc4c021a;border:1px solid #fc4c023d;border-radius:8px;padding:10px;text-decoration:none;transition:border-color .12s,background .12s;display:block}.activity-card:hover,.activity-card:focus-visible{background:#fc4c0229;border-color:#fc4c02;outline:none}.activity-note-preview{color:var(--muted);overflow-wrap:anywhere;margin:8px 0 0;font-size:.82rem;line-height:1.35}.session-card-dragging{z-index:4;opacity:.45;cursor:grabbing;position:relative}.session-topline span{letter-spacing:0;text-transform:uppercase;font-size:.76rem;font-weight:650}.session-detail{margin:8px 0 14px;font-size:.92rem;line-height:1.45}.session-miles{font-size:.85rem}.session-easy{background:var(--easy)}.session-workout{background:var(--workout)}.session-long{background:var(--long)}.session-rest{background:var(--rest)}.session-race{background:var(--race)}.empty-board{border:1px dashed var(--line);color:var(--muted);border-radius:8px;padding:24px}.miles-cell{color:var(--ink);text-align:right;white-space:nowrap;font-size:.9rem;font-weight:650}@media (max-width:1100px){.hero-bar,.section-heading{grid-template-columns:1fr;display:grid}.season-grid,.season-grid-plan{grid-template-columns:repeat(2,minmax(0,1fr))}.season-head{display:none}}@media (max-width:720px){.shell{width:calc(100vw - 20px);padding:10px 0 20px}.hero,.section{border-radius:10px;padding:12px}.hero h1{max-width:none;font-size:1.6rem}.season-grid{grid-template-columns:1fr}.section-heading,.hero-bar,.hero-meta,.section-stats{justify-content:stretch;align-items:stretch}.hero-meta,.section-stats{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.page-actions,.block-list-item{flex-direction:column;align-items:stretch}.block-list-meta{text-align:left;justify-items:start}.upload-layout,.upload-form-grid{grid-template-columns:1fr}.upload-submit{justify-self:stretch}.season-grid-plan{grid-template-columns:1fr}.season-row,.season-expanded{padding:10px}.sync-status{text-align:left;margin:0 0 8px}.season-row.season-grid-plan{align-items:start;gap:0}.week-summary-cell{grid-column:1/-1;grid-template-columns:minmax(0,1fr) max-content;align-content:start;align-items:center;gap:1px 10px;min-width:0;display:grid}.week-summary-cell .row-subtitle{grid-column:1;margin:0;padding-left:10px}.mobile-week-totals{flex-wrap:wrap;grid-area:1/2/span 2;justify-content:flex-end;place-self:end;gap:3px 8px;min-width:0;margin:0;display:flex}.mobile-week-key-sessions{color:var(--muted);grid-column:1/-1;margin:7px 0 0 10px;font-size:.76rem;line-height:1.25;display:block}.mobile-week-totals span{color:var(--muted);white-space:nowrap;font-size:.72rem;font-weight:500;line-height:1.15}.mobile-week-totals span:first-child{color:var(--ink)}.mobile-day-label{color:var(--muted);letter-spacing:0;text-transform:uppercase;font-size:.68rem;font-weight:650;display:block}.plan-day-cell,.plan-day-cell-mobile-key{display:none}.plan-day-cell-mobile-key strong{white-space:normal}.miles-cell,.week-board-metrics,.week-board{display:none}.mobile-week-shell{display:block}.training-block-section-week-selected>.section-heading,.training-block-section-week-selected .season-table{display:none}.mobile-week-snap-view{display:block}.mobile-week-snap-toolbar{border-bottom:1px solid var(--line);grid-template-columns:minmax(90px,1fr) auto minmax(90px,1fr);align-items:center;gap:8px;min-height:44px;padding-bottom:9px;display:grid}.mobile-week-snap-toolbar .mobile-back-button{justify-self:start}.mobile-week-snap-title{text-align:center;min-width:0}.mobile-week-snap-title h3,.mobile-week-snap-title p{margin:0}.mobile-week-snap-title h3{font-size:1rem;line-height:1.1}.mobile-week-snap-title p{color:var(--muted);white-space:nowrap;margin-top:2px;font-size:.72rem}.mobile-current-week-button{border:1px solid var(--ink);width:34px;height:34px;color:var(--ink);cursor:pointer;background:#fff;border-radius:8px;justify-self:end;place-items:center;padding:0;display:inline-grid}.mobile-current-week-button:disabled{cursor:default;opacity:.38}.mobile-week-snap-list{overscroll-behavior-y:contain;scroll-snap-type:y mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;height:calc(100dvh - 126px);position:relative;overflow:hidden auto}.mobile-week-snap-list::-webkit-scrollbar{display:none}.mobile-week-snap-section{scroll-snap-align:start;scroll-snap-stop:always;min-height:calc(100% - 72px);padding:10px 0 28px}.mobile-week-snap-list:after{content:"";height:72px;display:block}.mobile-week-snap-section+.mobile-week-snap-section{border-top:1px solid var(--line)}.mobile-week-page-header{border-bottom:1px solid var(--line);grid-template-columns:minmax(74px,auto) minmax(0,1fr);align-items:center;gap:8px;padding-bottom:10px;display:grid}.mobile-week-page-header-title-only{grid-template-columns:1fr}.mobile-back-button{border:1px solid var(--ink);min-height:34px;color:var(--ink);cursor:pointer;font:inherit;background:#fff;border-radius:8px;justify-content:center;align-items:center;gap:4px;padding:6px 8px;font-size:.76rem;font-weight:650;display:inline-flex}.mobile-week-title{text-align:center;min-width:0}.mobile-week-title h3,.mobile-week-title p{margin:0}.mobile-week-title h3{font-size:1rem;line-height:1.1}.mobile-week-title div>p:last-child{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:.72rem;overflow:hidden}.mobile-week-overview{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:10px 0 8px;display:grid}.mobile-week-overview>div,.mobile-week-overview>button{border:1px solid var(--line);background:#fff;border-radius:8px;min-width:0;padding:8px 9px}.mobile-week-overview-button{color:inherit;cursor:pointer;font:inherit;text-align:left}.mobile-week-overview-button:hover,.mobile-week-overview-button:focus-visible{border-color:var(--ink);outline:none}.mobile-week-overview strong{font-size:.84rem;line-height:1.15;display:block}.mobile-week-overview .meta-label{font-size:.68rem}.mobile-week-drag-hint{color:var(--muted);margin:0 0 8px;font-size:.74rem}.mobile-week-days{gap:6px;display:grid}.mobile-day-row{grid-template-columns:60px minmax(0,1fr);align-items:start;gap:8px;display:grid;position:relative}.mobile-day-row.day-column-active{box-shadow:none;border-color:#0000}.mobile-day-row.day-column-active:after{z-index:0;content:"";pointer-events:none;background:#e7e7e7;border-radius:8px;position:absolute;inset:9px 8px -8px 68px;box-shadow:0 10px 20px #11111114}.mobile-day-row.day-column-active .mobile-day-row-trigger{z-index:1;border-color:var(--line);box-shadow:0 8px 18px #11111117}.mobile-day-row-dragging{z-index:5;position:relative}.mobile-day-row-trigger{border:1px solid var(--line);width:100%;min-height:58px;color:inherit;cursor:pointer;font:inherit;text-align:left;touch-action:pan-y;background:#fff;border-radius:8px;grid-column:2;grid-template-columns:minmax(0,1fr) 32px;align-items:center;gap:8px;padding:10px 10px 10px 17px;transition:border-color .12s,opacity .12s;display:grid;position:relative;overflow:hidden}.mobile-day-row-trigger:before{background:var(--line-strong);content:"";width:7px;position:absolute;inset:0 auto 0 0}.mobile-day-row-trigger:focus-visible{outline:1px solid var(--ink);outline-offset:-1px}.mobile-day-row-trigger-dragging{opacity:.55;box-shadow:var(--shadow)}.mobile-day-date-block{width:100%;color:var(--muted);text-align:center;text-transform:uppercase;grid-column:1;align-content:center;justify-items:center;padding:10px 0;display:grid}.mobile-day-date-block strong{color:var(--ink);letter-spacing:0;font-size:.75rem}.mobile-day-date-block span{white-space:nowrap;margin-top:2px;font-size:.63rem}.mobile-day-plan-card{background:0 0;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;display:grid}.mobile-day-plan-card>span:first-child{min-width:0;display:grid}.mobile-day-plan-card strong,.mobile-day-plan-card small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mobile-day-plan-card strong{font-size:.9rem}.mobile-day-plan-card small{color:var(--muted);margin-top:3px;font-size:.76rem}.mobile-day-row-meta{color:var(--muted);white-space:nowrap;font-size:.68rem;font-weight:650}.mobile-day-row-controls{color:var(--muted);justify-content:flex-end;align-items:center;gap:2px;display:flex}.mobile-day-drag-handle{font-size:1rem;line-height:1}.mobile-day-expanded-content{border-top:1px solid var(--line);grid-column:2;gap:12px;margin:0 9px 9px 0;padding-top:10px;display:grid}.mobile-day-actions{display:block}.mobile-workout-group{gap:8px;display:grid}.mobile-workout-group+.mobile-workout-group{border-top:1px solid var(--line);padding-top:11px}.mobile-workout-group-heading{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.mobile-workout-group-heading p,.mobile-workout-group-heading span,.mobile-empty-workout{margin:0}.mobile-workout-group-heading p{letter-spacing:.03em;text-transform:uppercase;font-size:.75rem;font-weight:700}.mobile-workout-group-heading span,.mobile-empty-workout{color:var(--muted);font-size:.76rem}.mobile-workout-group .card-stack,.mobile-workout-group .activity-stack{border-top:0;margin-top:0;padding-top:0}.mobile-workout-group .session-card{padding:10px}.session-card-static{cursor:pointer;touch-action:auto}.mobile-week-board{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.mobile-week-expanded{gap:8px;display:grid}.mobile-week-tile{border:1px solid var(--line);background:#fff;border-radius:8px;min-width:0;min-height:112px;padding:8px}.mobile-week-summary-strip{grid-template-columns:minmax(0,1fr) max-content;align-items:center;gap:1px 10px;min-width:0;display:grid}.mobile-summary-title-button{min-width:0;color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;grid-area:1/1/span 2;padding:0}.mobile-week-summary-strip>div:first-child{grid-area:1/1/span 2;min-width:0}.mobile-week-summary-strip h4,.mobile-summary-title{align-items:center;gap:5px;margin:0;font-weight:500;line-height:1.18;display:flex}.mobile-week-summary-strip .week-board-date-range{margin-top:0;padding-left:10px;font-size:.84rem;line-height:1.15}.mobile-summary-grid{flex-wrap:wrap;grid-area:1/2/span 2;justify-content:flex-end;place-self:end;gap:3px 8px;min-width:0;display:flex}.mobile-summary-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.mobile-week-actions-cell{align-content:start;min-width:0;display:grid}.mobile-day-detail-totals{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.mobile-day-detail-totals>div{border:1px solid var(--line);background:#fafafa;border-radius:8px;min-width:0;padding:8px}.mobile-summary-grid>div{min-width:max-content;color:var(--muted);white-space:nowrap;font-size:.72rem;font-weight:500;line-height:1.15}.mobile-summary-grid .meta-label{font-size:inherit;font-weight:inherit;line-height:inherit;text-transform:none;margin:0 2px 0 0;display:inline}.mobile-summary-grid strong{color:var(--ink);font-size:inherit;font-weight:inherit;line-height:inherit;display:inline}.mobile-day-detail-totals strong{font-size:.95rem;line-height:1.08;display:block}.mobile-summary-met{background:#16a34a14!important;border-color:#16653452!important}.mobile-summary-actions button,.mobile-back-button{border:1px solid var(--ink);cursor:pointer;min-width:0;min-height:30px;font:inherit;border-radius:8px;padding:5px 8px;font-size:.74rem;font-weight:650}.mobile-summary-actions button:first-child,.mobile-back-button{color:var(--ink);background:#fff}.mobile-summary-actions button:last-child{background:var(--ink);color:#fff}.mobile-summary-actions button:disabled{cursor:wait;opacity:.58}.mobile-day-tile{cursor:pointer;align-content:start;gap:7px;display:grid}.mobile-day-tile:focus-visible{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);outline:none}.mobile-day-tile-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:start;gap:8px;padding-bottom:7px;display:flex}.mobile-day-tile .day-name{font-size:1.1rem;line-height:1}.mobile-day-tile .day-date{margin-top:5px}.mobile-day-tile .day-date,.mobile-day-tile .day-totals{font-size:.76rem}.mobile-day-tile .day-totals{color:var(--ink);text-align:right;flex:none;padding-top:1px}.mobile-tile-session-list{gap:6px;display:grid}.mobile-tile-session{border:1px solid var(--line);cursor:grab;touch-action:none;border-radius:8px;gap:3px;padding:7px 8px;display:grid}.mobile-tile-session strong,.mobile-tile-session span{overflow-wrap:anywhere;min-width:0}.mobile-tile-session strong{font-size:.82rem;line-height:1.12}.mobile-tile-session span,.mobile-tile-activity,.mobile-tile-accessories{color:var(--muted);margin:0;font-size:.74rem;line-height:1.2}.mobile-tile-activity{color:#fc4c02;font-weight:650}.mobile-tile-accessories{color:#166534;font-weight:650}.mobile-day-detail{border:1px solid var(--line);background:#fff;border-radius:8px;gap:10px;padding:10px;display:grid}.mobile-day-detail-header{grid-template-columns:auto 1fr;align-items:start;gap:10px;display:grid}.mobile-day-detail-header h4,.mobile-day-detail-header p{margin:0}.mobile-day-detail-header h4{font-size:1.12rem}.mobile-day-detail-header>div>p:last-child{color:var(--muted);margin-top:3px;font-size:.84rem}.mobile-day-detail .session-topline,.mobile-day-detail .session-miles{gap:8px}.mobile-day-detail .session-card,.mobile-day-detail .activity-card{padding:9px}.mobile-day-detail .session-topline p,.mobile-day-detail .session-topline span,.mobile-day-detail .session-detail,.mobile-day-detail .session-miles span{overflow-wrap:anywhere;min-width:0}.mobile-day-detail .session-detail{margin:6px 0 10px;font-size:.84rem;line-height:1.32}.activity-detail-grid{grid-template-columns:1fr}.target-modal-actions{flex-wrap:wrap}}
