:root{color:#15211c;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f7f8f5;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:#f7f8f5;min-width:320px}body{min-width:320px;min-height:100svh;margin:0}button,input,select,textarea{font:inherit}.app-shell{color:#15211c;background:#f7f8f5;grid-template-columns:280px minmax(0,1fr);min-height:100svh;display:grid}.login-page{background:linear-gradient(135deg,#247a5214,#0000 42%),#f7f8f5;place-items:center;min-height:100svh;padding:20px;display:grid}.login-card{background:#fff;border:1px solid #dfe5dc;border-radius:8px;gap:22px;width:min(100%,480px);padding:24px;display:grid;box-shadow:0 24px 60px #15211c1a}.large-brand{width:fit-content}.login-form{gap:14px;display:grid}.login-form label{gap:7px;font-weight:700;display:grid}.login-form input{color:#15211c;background:#fbfcfa;border:1px solid #cfd9d3;border-radius:8px;min-height:46px;padding:11px 12px}.login-error{color:#8f2626;font-size:.9rem}.demo-accounts{color:#627069;flex-wrap:wrap;align-items:center;gap:8px;font-size:.9rem;display:flex}.demo-accounts code{color:#124b32;background:#ecf6ef;border-radius:6px;padding:4px 8px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.sidebar{background:#fff;border-right:1px solid #dfe5dc;flex-direction:column;gap:28px;height:100svh;padding:24px;display:flex;position:sticky;top:0}.brand,.phone-note,.metric,.run-entry,.panel,.calendar-day,.login-panel,.user-row{background:#fff;border:1px solid #dfe5dc}.brand{border-radius:8px;align-items:center;gap:12px;padding:14px;display:flex}.brand svg{color:#247a52;width:24px;height:24px}.metric .metric-icon svg{color:#247a52;stroke-width:2.4px;width:34px;height:34px;display:block}.brand strong,.brand span{display:block}.brand span,.phone-note,.eyebrow,.metric span,.run-entry span,.calendar-day p,.panel p,.login-panel p,.user-row span{color:#627069}.nav-list{gap:8px;display:grid}.nav-list button,.primary-button,.ghost-button,.danger-button{min-height:44px;font:inherit;cursor:pointer;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:10px;display:inline-flex}.nav-list button{color:#26362f;background:0 0;justify-content:flex-start;padding:10px 12px}.nav-list button:hover,.nav-list button.active{color:#124b32;background:#ecf6ef;border-color:#b9d4c4}.nav-list svg,.primary-button svg,.ghost-button svg,.danger-button svg{flex:none;width:18px;height:18px}.phone-note{border-radius:8px;align-items:center;gap:10px;padding:14px;font-size:.9rem;display:flex}.sidebar-footer{gap:12px;margin-top:auto;display:grid}.sidebar-signout{justify-content:flex-start;width:100%}.phone-note svg{color:#247a52;width:20px;height:20px}.workspace{align-content:start;gap:22px;padding:28px;display:grid}.topbar{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.eyebrow{letter-spacing:0;text-transform:uppercase;font-size:.78rem;font-weight:700;display:block}h1,h2,h3,p{margin:0}h1{letter-spacing:0;max-width:720px;font-size:clamp(2rem,4vw,4.25rem);line-height:1.02}.admin-page-title{font-size:clamp(1.8rem,3vw,3rem)}h2{letter-spacing:0;font-size:1.55rem;line-height:1.15}h3{letter-spacing:0;font-size:1rem}.primary-button,.ghost-button{white-space:nowrap;padding:0 16px}.primary-button{color:#fff;background:#247a52;border-color:#247a52}.primary-button:hover{background:#1b6040}.ghost-button{color:#1b6040;background:#fff;border-color:#bfd0c7}.ghost-button:hover{background:#eef5f0}.danger-button{color:#8f2626;white-space:nowrap;background:#fff;border-color:#e9b8b1;padding:0 16px}.danger-button:hover:not(:disabled){background:#fff0ee}.danger-button:disabled{cursor:not-allowed;opacity:.45}.icon-button{width:44px;padding:0}.login-panel{border-radius:8px;justify-content:space-between;align-items:center;gap:20px;padding:18px;display:flex}.login-panel p{max-width:720px;margin-top:8px}.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.dashboard-filter{background:#fff;border:1px solid #dfe5dc;border-radius:8px;grid-template-columns:repeat(2,minmax(92px,1fr));gap:4px;width:fit-content;padding:4px;display:inline-grid}.dashboard-filter button{color:#26362f;min-height:38px;font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;font-weight:700}.dashboard-filter button.active,.dashboard-filter button:hover{color:#124b32;background:#ecf6ef;border-color:#b9d4c4}.metric{border-radius:8px;align-items:center;gap:14px;min-height:92px;padding:16px;display:flex}.metric strong,.metric span{display:block}.metric strong{margin-top:4px;font-size:1.45rem;line-height:1.05}.metric .metric-icon{background:#ecf6ef;border-radius:8px;flex:0 0 56px;justify-content:center;align-items:center;width:56px;height:56px;display:flex}.content-section{gap:16px;display:grid}.section-heading{gap:4px;display:grid}.calendar-heading{grid-template-columns:minmax(0,1fr) auto;align-items:end}.calendar-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.dashboard-layout,.calendar-grid,.week-plan-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.panel,.calendar-day{border-radius:8px;gap:8px;padding:18px;display:grid}.body-metric-section{gap:14px;display:grid}.body-metric-content{grid-template-columns:minmax(240px,320px) minmax(0,1fr);align-items:stretch;gap:12px;display:grid}.body-metric-summary{gap:12px;display:grid}.body-metric-card{align-content:center;min-height:104px}.body-metric-card span{color:#627069;font-size:.9rem}.body-metric-card strong{align-items:center;gap:8px;font-size:1.35rem;display:inline-flex}.body-metric-trend{border-radius:999px;place-items:center;width:26px;height:26px;display:inline-grid}.body-metric-trend svg{width:18px;height:18px}.trend-lower{color:#124b32;background:#dff4e6}.trend-higher{color:#8f2626;background:#ffe2de}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.body-metric-chart{overflow-x:auto}.body-metric-chart-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.chart-legend{color:#627069;gap:12px;font-size:.9rem;font-weight:700;display:flex}.chart-legend span{align-items:center;gap:6px;display:inline-flex}.chart-legend span:before{content:"";border-radius:999px;width:10px;height:10px}.legend-weight:before{background:#247a52}.legend-body-fat:before{background:#b9332f}.body-metric-chart svg{width:100%;min-width:560px;height:auto}.chart-grid-line{stroke:#dfe5dc;stroke-width:1px}.chart-line{fill:none;stroke-width:4px;stroke-linecap:round;stroke-linejoin:round}.chart-weight-line{stroke:#247a52}.chart-body-fat-line{stroke:#b9332f}.chart-point{stroke:#fff;stroke-width:3px}.chart-weight-point{fill:#247a52}.chart-body-fat-point{fill:#b9332f}.chart-date{fill:#627069;font-size:13px;font-weight:700}.chart-value{font-size:13px;font-weight:800}.chart-weight-value{fill:#124b32}.chart-body-fat-value{fill:#8f2626}.chart-series-label{fill:#3f4f47;font-size:13px;font-weight:800}.calendar-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.week-plan-grid{grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-day span{color:#247a52;font-weight:700}.calendar-layout{gap:18px}.program-library{gap:12px;display:grid}.program-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.program-card{min-height:84px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:#fff;border:1px solid #dfe5dc;border-radius:8px;gap:6px;padding:16px;display:grid}.program-card:hover{background:#ecf6ef;border-color:#b9d4c4}.program-card span{color:#627069}.program-form{gap:14px;display:grid}.program-form label{gap:7px;font-size:.9rem;font-weight:700;display:grid}.program-form input,.program-form select{color:#15211c;width:100%;font:inherit;background:#fbfcfa;border:1px solid #cfd9d3;border-radius:8px;padding:11px 12px}.program-start-date{gap:7px;font-size:.9rem;font-weight:700;display:grid}.program-start-date input{color:#15211c;width:min(100%,220px);font:inherit;background:#fbfcfa;border:1px solid #cfd9d3;border-radius:8px;padding:11px 12px}.day-training-dialog{width:min(100%,520px)}.day-training-list{gap:10px;display:grid}.day-training-button{min-height:58px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:#fff;border:1px solid #dfe5dc;border-radius:8px;gap:4px;padding:12px;display:grid}.day-training-button span{color:#627069}.day-training-button:hover{border-color:#b9d4c4}.program-dialog{width:min(100%,900px)}.program-picker-dialog{width:min(100%,760px)}.program-builder-dialog{width:min(98vw,1480px);max-height:94svh;overflow:auto}.program-month-grid{min-width:1040px}.program-day-add{color:#1b6040;width:fit-content;min-height:30px;font:inherit;cursor:pointer;background:#fff;border:1px solid #bfd0c7;border-radius:6px;align-items:center;gap:6px;padding:4px 8px;font-size:.82rem;font-weight:700;display:inline-flex}.program-day-add:hover{background:#eef5f0}.program-day-add svg{width:15px;height:15px}.program-month-grid .training-list span{padding:7px 8px;display:block}.program-training-list{gap:8px;max-height:56svh;display:grid;overflow:auto}.program-training-header,.program-training-row{grid-template-columns:.9fr .9fr 1fr 1.4fr;align-items:center;gap:12px;padding:11px 12px;display:grid}.program-training-header{color:#627069;text-transform:uppercase;font-size:.82rem;font-weight:800}.program-training-row{background:#fff;border:1px solid #dfe5dc;border-radius:8px}.program-training-row span{color:#627069}.manage-program-header,.manage-program-header-row,.manage-program-row{grid-template-columns:.8fr .8fr 1fr 1.3fr 108px}.event-program-header,.event-program-row{grid-template-columns:.9fr 1.2fr .8fr 1.4fr}.event-manage-program-header-row,.event-manage-program-row{grid-template-columns:.8fr 1.2fr .8fr 1.3fr 108px}.program-row-actions{justify-content:flex-end;gap:8px;display:inline-flex}.monthly-calendar{gap:14px;padding-bottom:4px;display:grid;overflow-x:auto}.month-header{justify-content:space-between;align-items:end;gap:12px;display:flex}.month-controls{justify-content:flex-end;align-items:center;gap:8px;display:flex}.month-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;min-width:860px;display:grid}.month-weekday{color:#627069;text-transform:uppercase;padding:0 4px;font-size:.82rem;font-weight:800}.month-empty,.month-day{border-radius:8px;min-height:126px}.month-day{cursor:pointer;background:#fff;border:1px solid #dfe5dc;align-content:start;gap:8px;padding:10px;display:grid}.month-day.today{border-color:#247a52;box-shadow:inset 0 0 0 1px #247a52}.month-day span{color:#247a52;font-weight:800}.month-day p{color:#627069;font-size:.86rem}.training-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.training-list li{border-radius:6px;font-size:.88rem;font-weight:700}.training-running{color:#124b32;background:#ecf6ef}.training-event{color:#174f7a;background:#e7f1fb}.training-body-metric{color:#8f2626;background:#ffe9e6}.training-list button{width:100%;min-height:32px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:7px 8px}.training-running button:hover{background:#dff0e5}.training-event button:hover{background:#d8eafa}.training-body-metric button:hover{background:#ffd9d3}.compact-training-list li{overflow-wrap:anywhere;font-size:.78rem}.training-dialog{width:min(100%,560px)}.training-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.training-form label{gap:7px;min-width:0;font-size:.9rem;font-weight:700;display:grid}.running-fields{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.training-form input,.training-form select,.training-form textarea{box-sizing:border-box;color:#15211c;width:100%;min-width:0;max-width:100%;font:inherit;background:#fbfcfa;border:1px solid #cfd9d3;border-radius:8px;padding:11px 12px}.training-form input[type=date]{appearance:none}.pace-input{background:#fbfcfa;border:1px solid #cfd9d3;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.pace-input input{background:0 0;border:0}.pace-input span{color:#627069;padding-right:12px;font-weight:700}.training-form input:disabled,.training-form select:disabled,.training-form textarea:disabled{color:#3f4f47;opacity:1;background:#f2f5f2}.training-form .dialog-actions{grid-column:1/-1}.training-form label:has(textarea){grid-column:1/-1}.training-form textarea{resize:vertical}.score-action-row,.score-list{grid-column:1/-1}.score-action-row{justify-content:flex-start;display:flex}.score-list{gap:8px;display:grid}.score-row{width:100%;color:inherit;font:inherit;text-align:left;background:#f7faf7;border:1px solid #dfe5dc;border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:10px;display:grid}.score-button{cursor:pointer}.score-button:hover{background:#ecf6ef;border-color:#b9d4c4}.score-row strong,.score-row span{display:block}.score-row span{color:#627069}.score-row p{color:#3f4f47;grid-column:1/-1}.log-layout{grid-template-columns:minmax(300px,420px) minmax(0,1fr);align-items:start}.log-layout .section-heading,.admin-layout .section-heading{grid-column:1/-1}.logs-layout{align-items:start}.logs-table{gap:8px;display:grid}.logs-filters{background:#fff;border:1px solid #dfe5dc;border-radius:8px;grid-template-columns:repeat(3,minmax(160px,1fr)) auto;align-items:end;gap:12px;padding:14px;display:grid}.logs-filters label{gap:7px;font-size:.9rem;font-weight:700;display:grid}.logs-filters input,.logs-filters select{color:#15211c;width:100%;font:inherit;background:#fbfcfa;border:1px solid #cfd9d3;border-radius:8px;padding:11px 12px}.logs-table-header,.logs-table-row{grid-template-columns:1fr 1fr 1fr 1fr 1.2fr;align-items:center;gap:12px;padding:12px 14px;display:grid}.body-metric-log-header,.body-metric-log-row{grid-template-columns:1fr 1fr 1fr}.logs-table-header{color:#627069;text-transform:uppercase;font-size:.82rem;font-weight:800}.logs-table-row{color:inherit;font:inherit;text-align:left;background:#fff;border:1px solid #dfe5dc;border-radius:8px}.logs-table-row span{color:#627069}.logs-table-button{cursor:pointer}.logs-table-button:hover{background:#ecf6ef;border-color:#b9d4c4}.run-form{background:#fff;border:1px solid #dfe5dc;border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px;display:grid}.run-form label{gap:7px;font-size:.9rem;font-weight:700;display:grid}.run-form input,.run-form select,.run-form textarea{box-sizing:border-box;color:#15211c;width:100%;font:inherit;background:#fbfcfa;border:1px solid #cfd9d3;border-radius:8px;padding:11px 12px}.run-form textarea{resize:vertical}.wide-field,.form-actions{grid-column:1/-1}.form-actions{flex-wrap:wrap;gap:10px;display:flex}.run-list{gap:10px;display:grid}.run-entry{border-radius:8px;grid-template-columns:minmax(120px,1fr) minmax(110px,.8fr) auto;align-items:center;gap:12px;padding:14px;display:grid}.run-entry strong,.run-entry span{display:block}.run-entry p{color:#3f4f47;grid-column:1/-1}.effort{border-radius:999px;justify-self:end;padding:5px 10px;font-size:.8rem;font-weight:800}.effort-easy{color:#17623f;background:#ddf4e6}.effort-steady{color:#6b4a05;background:#fff1c2}.effort-hard{color:#8f2626;background:#ffe2de}.empty-state{color:#627069;background:#fff;border:1px dashed #b9c8c0;border-radius:8px;padding:20px}.admin-layout{grid-template-columns:minmax(300px,420px) minmax(0,1fr);align-items:start}.settings-layout{grid-template-columns:minmax(260px,340px) minmax(300px,520px);align-items:start}.tool-layout{align-items:start}.tool-form{max-width:560px}.saved-pace-section{gap:14px;display:grid}.saved-pace-layout{grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:12px;display:grid}.saved-pace-summary,.saved-pace-card{align-content:center}.saved-pace-summary span,.saved-pace-card span{color:#627069;font-size:.9rem}.saved-pace-summary strong,.saved-pace-card strong{font-size:1.35rem}.saved-pace-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.compact-saved-pace-grid{grid-template-columns:repeat(4,minmax(140px,180px))}.compact-saved-pace-card{min-height:84px;padding:14px 16px}.about-layout{grid-template-columns:minmax(280px,360px);align-items:start}.about-panel{gap:10px}.about-version{color:#627069;font-size:1rem}.about-support-label{margin-top:8px}.about-link{color:#247a52;width:fit-content}.about-link-button{color:#247a52;width:fit-content;font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.about-link-button:hover,.about-link:hover{color:#1b6040}.changelog-dialog{width:min(100%,960px)}.changelog-content{color:#26362f;background:#fbfcfa;border:1px solid #dfe5dc;border-radius:8px;max-height:60svh;margin:0;padding:16px;overflow:auto}.changelog-section+.changelog-section{margin-top:18px}.changelog-section h3{margin-bottom:10px}.changelog-list{color:#3f4f47;margin:0;padding-left:20px}.changelog-list li+li{margin-top:8px}.settings-layout .section-heading{grid-column:1/-1}.admin-form,.account-panel{align-self:start}.account-panel .role-badge{justify-self:start;margin-top:4px}.settings-form{grid-template-columns:1fr}.form-message{color:#627069;grid-column:1/-1}.user-list{gap:10px;display:grid}.user-row{border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:14px;display:grid}.user-row strong,.user-row span{display:block}.role-badge{border-radius:999px;justify-self:end;padding:5px 10px;font-size:.8rem;font-weight:800}.role-admin{color:#124b32;background:#dff4e6}.role-user{color:#34413b;background:#edf1ee}.user-actions{justify-content:flex-end;gap:8px;display:flex}.user-edit-form{grid-template-columns:repeat(2,minmax(0,1fr))}.user-edit-form label{gap:7px;font-size:.9rem;font-weight:700;display:grid}.user-edit-form input,.user-edit-form select{color:#15211c;background:#fbfcfa;border:1px solid #cfd9d3;border-radius:8px;width:100%;padding:11px 12px}.edit-actions{grid-column:1/-1}.modal-backdrop{z-index:20;background:#15211c6b;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.confirm-dialog{background:#fff;border:1px solid #dfe5dc;border-radius:8px;gap:22px;width:min(100%,430px);padding:22px;display:grid;box-shadow:0 24px 70px #15211c3d}.nested-confirm-dialog{z-index:30;position:fixed}.confirm-dialog p{color:#627069;margin-top:8px}.dialog-header{justify-content:space-between;align-items:start;gap:16px;display:flex}.dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #247a5247}@media (width<=920px){.app-shell{grid-template-columns:1fr}.sidebar{border-bottom:1px solid #dfe5dc;border-right:0;height:auto;padding:14px;position:static}.brand{padding:10px}.nav-list{grid-template-columns:repeat(auto-fit,minmax(72px,1fr))}.nav-list button{justify-content:center;min-height:48px;padding:8px;font-size:.84rem}.sidebar-footer{display:none}.workspace{padding:18px 14px 28px}.topbar,.login-panel,.calendar-heading,.month-header{flex-direction:column;grid-template-columns:1fr;align-items:stretch}.month-controls{justify-content:flex-start}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.log-layout,.admin-layout,.settings-layout,.dashboard-layout,.calendar-grid,.week-plan-grid,.body-metric-content,.body-metric-summary,.saved-pace-layout,.saved-pace-grid,.program-list,.program-training-header,.program-training-row,.logs-filters{grid-template-columns:1fr}.user-row{grid-template-columns:auto minmax(0,1fr)}.user-row .role-badge{justify-self:start}.user-actions{grid-column:1/-1}}@media (width<=520px){.nav-list button{gap:6px;font-size:0}.nav-list button svg{width:21px;height:21px}.stats-grid,.run-form,.training-form,.running-fields{grid-template-columns:1fr}.metric{min-height:78px;padding:12px}.metric strong{font-size:1.2rem}.run-entry{grid-template-columns:1fr auto}.user-edit-form{grid-template-columns:1fr}.run-entry p{grid-column:1/-1}.logs-table-header{display:none}.logs-table-row{grid-template-columns:1fr 1fr}.dialog-actions{justify-content:stretch}.dialog-actions .ghost-button,.dialog-actions .danger-button{flex:140px}.training-detail-actions{grid-template-columns:1fr 1fr;justify-content:stretch;display:grid}.training-detail-actions .training-detail-save{grid-area:2/1}.training-detail-actions .training-detail-edit{grid-area:1/2}.training-detail-actions .training-detail-close{grid-area:2/2}}.desktop-program-backdrop{place-items:center;overflow:auto}.desktop-program-backdrop .program-builder-dialog{width:1480px;max-width:none}.desktop-program-backdrop .program-dialog{width:980px;max-width:none}.desktop-program-backdrop .month-header{flex-direction:row;align-items:end}.desktop-program-backdrop .month-controls{justify-content:flex-end}.desktop-program-backdrop .program-training-header,.desktop-program-backdrop .program-training-row{grid-template-columns:.9fr .9fr 1fr 1.4fr}.desktop-program-backdrop .manage-program-header,.desktop-program-backdrop .manage-program-header-row,.desktop-program-backdrop .manage-program-row{grid-template-columns:.8fr .8fr 1fr 1.3fr 108px}.desktop-program-backdrop .event-program-header,.desktop-program-backdrop .event-program-row{grid-template-columns:.9fr 1.2fr .8fr 1.4fr}.desktop-program-backdrop .event-manage-program-header-row,.desktop-program-backdrop .event-manage-program-row{grid-template-columns:.8fr 1.2fr .8fr 1.3fr 108px}.program-manage-header{width:100%;margin:0}
