:root,[data-theme=dark]{--bg:#0a0a0a;--card:#121212;--fg:#fff;--fg2:#e6e6e6;--tile:#0d1f15;--line:#1f3a2a;--line2:#2e5a3e;--track:#1f1f1f;--done:#0a2a17;--sel:#14532d;--warn-bg:#422006;--warn-fg:#fbbf24;--warn-border:#b45309;--danger:#7f1d1d;--accent-text:#22c55e;--run-text:#22c55e;--bike-text:#3b82f6;--danger-text:#ef4444;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=light]{--bg:#f3f4f1;--card:#fff;--fg:#0a0a0a;--fg2:#3f3f3f;--tile:#e7f2ea;--line:#d3e3d8;--line2:#8fbf9f;--track:#e4e6e3;--done:#dcfce7;--sel:#bbf7d0;--warn-bg:#fef3c7;--warn-fg:#78350f;--warn-border:#d97706;--danger:#b91c1c;--accent-text:#15803d;--run-text:#15803d;--bike-text:#1d4ed8;--danger-text:#b91c1c;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root{--accent:#22c55e;--primary:#15803d;--blue:#2563eb;--radius:12px;--font-body:"Barlow", system-ui, sans-serif;--font-head:"Barlow Condensed", "Arial Narrow", sans-serif}*,:before,:after{box-sizing:border-box}html,body{background:var(--bg);color:var(--fg);font:16px/1.5 var(--font-body);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3{font-family:var(--font-head);margin:0;font-weight:700;line-height:1.1}a{color:var(--accent-text)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button{font:inherit;cursor:pointer;min-height:44px}.btn-primary{background:var(--primary);color:#fff;border:0;border-radius:10px;padding:0 18px;font-weight:600}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px}.btn-ghost{color:var(--fg2);border:1px solid var(--line2);background:0 0;border-radius:10px;padding:0 14px}.btn-primary:disabled{opacity:.6;cursor:default}.btn-link{justify-content:center;align-items:center;min-height:44px;text-decoration:none;display:inline-flex}.page{max-width:1100px;margin:0 auto;padding:32px 16px}.btn-primary,.btn-ghost{white-space:nowrap}.choice-chips{flex-wrap:wrap;gap:8px;display:flex}.choice-chip{border:1px solid var(--line2);background:var(--bg);min-height:44px;color:var(--fg);border-radius:22px;padding:0 14px}.choice-chip[aria-pressed=true]{background:var(--sel);border-color:var(--accent);font-weight:600}.day-chips{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.day-chips button{border:1px solid var(--line2);background:var(--bg);min-height:44px;color:var(--fg2);border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:1px;font-size:12px;font-weight:600;display:flex}.day-chips .tier{font-size:11px;font-weight:700}.day-chips button[aria-pressed=true]{background:var(--sel);border-color:var(--accent);color:var(--fg)}.day-chips button:disabled{cursor:default}.icon-btn{min-width:36px;min-height:36px;color:var(--fg2);background:0 0;border:0;border-radius:8px}.icon-btn:hover:not(:disabled){background:var(--track);color:var(--fg)}.icon-btn:disabled{opacity:.3;cursor:default}.btn-small{min-height:36px;margin-top:6px;font-size:14px}.search{font:inherit;border:1px solid var(--line2);background:var(--bg);min-height:44px;color:var(--fg);border-radius:10px;flex:220px;max-width:360px;padding:0 12px}.filter-chips{align-items:center;margin-bottom:8px}.filter-chips>.field-label{flex:none;width:104px}.filter-chips .choice-chip{min-height:36px}.filter-panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);gap:10px;margin-bottom:16px;padding:14px 16px;display:grid}.filter-panel:empty{display:none}.filter-panel .search{width:100%;margin:0}.filter-row{grid-template-columns:120px minmax(0,1fr);align-items:start;gap:8px;display:grid}.filter-row>.field-label{padding-top:8px}.filter-options{gap:6px}.filter-options .choice-chip{min-height:36px}@media (width<=560px){.filter-row{grid-template-columns:1fr;gap:4px}.filter-row>.field-label{padding-top:0}}.athlete-search{width:100%;margin-bottom:16px;display:block}.row-actions{white-space:nowrap;align-items:center;gap:4px;display:flex}.exercise-table input,.exercise-table select{font:inherit;border:1px solid var(--line);width:100%;min-width:120px;min-height:38px;color:var(--fg);background:0 0;border-radius:8px;padding:0 8px}.exercise-table input::placeholder{color:var(--fg2);opacity:.7}.exercise-table input:hover,.exercise-table input:focus,.exercise-table select:hover,.exercise-table select:focus{border-color:var(--line2);background:var(--bg)}.exercise-table td{padding-top:4px;padding-bottom:4px}.exercise-table th:first-child,.exercise-table td:first-child{z-index:1;background:var(--card);position:sticky;left:0}.exercise-table td:first-child input{min-width:170px;font-weight:600}.exercise-table .cell-video input{min-width:220px}.exercise-table .cell-cues input{min-width:280px}.sub-chips{border-left:2px solid var(--line2);margin-top:-8px;padding-left:12px}.sub-chips .choice-chip{min-height:36px;font-size:14px}.library-count{margin:0 0 8px}.import-panel{flex-direction:column;gap:10px;margin-bottom:16px;display:flex}.import-panel textarea{font:inherit;border:1px solid var(--line2);background:var(--bg);width:100%;color:var(--fg);resize:vertical;border-radius:10px;padding:10px 12px}.section-heading{border-bottom:2px solid var(--line2);margin-bottom:12px;padding-bottom:6px}.section-heading h2{font-size:28px}.section-heading p{color:var(--fg2);margin:2px 0 0}.sub{color:var(--fg2);margin-top:2px;font-size:13px}.muted{color:var(--fg2);opacity:.8}.chips{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.chip{border:1px solid var(--line2);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:13px;font-weight:600;display:inline-block}.chip-ok{background:var(--done);color:var(--fg)}.chip-warn{background:var(--warn-bg);border-color:var(--warn-border);color:var(--warn-fg)}.chip-danger{background:var(--danger);color:#fff;border-color:#b91c1c}.chip-neutral{background:var(--track);color:var(--fg2)}.focus-tag{color:#fff;border-radius:999px;align-self:flex-start;padding:1px 7px;font-size:11px;font-weight:700}.last-line{border-left:3px solid var(--accent);background:var(--tile);border-radius:8px;flex-wrap:wrap;align-items:baseline;gap:2px 8px;margin:4px 0 8px;padding:6px 10px;font-size:13px;display:flex}.last-label{color:var(--fg2);width:100%;font-size:12px}.last-text{color:var(--fg);font-weight:600}.last-best{color:var(--accent-text);white-space:nowrap;margin-left:auto;font-weight:600}.btn-danger-text{color:var(--danger-text);border-color:#7f1d1d}.sub-tabs{scrollbar-width:none;background:var(--track);border-radius:12px;gap:4px;padding:4px;display:flex;overflow-x:auto}.sub-tabs::-webkit-scrollbar{display:none}.sub-tabs button{white-space:nowrap;min-height:40px;color:var(--fg2);background:0 0;border:0;border-radius:9px;flex:1 0 auto;padding:0 10px;font-size:14px;font-weight:600}.sub-tabs button[aria-selected=true]{background:var(--card);color:var(--fg)}@media (width<=420px){.sub-tabs button{padding:0 7px;font-size:13px}}.sub-tabs button.tab-alert{box-shadow:inset 0 0 0 2px #f59e0b}input[type=date]{appearance:none;box-sizing:border-box;min-width:0;max-width:100%}input[type=date]::-webkit-date-and-time-value{text-align:left}.pay-link{margin-top:12px}.app-header{padding:12px 16px;padding-top:max(12px, env(safe-area-inset-top));padding-left:max(16px, env(safe-area-inset-left));padding-right:max(16px, env(safe-area-inset-right));border-bottom:1px solid var(--line);background:var(--card);justify-content:space-between;align-items:center;gap:12px;display:flex}.app-header-brand{align-items:center;gap:10px;min-width:0;display:flex}.app-header-title{font-family:var(--font-head);letter-spacing:.3px;white-space:nowrap;text-overflow:ellipsis;font-size:20px;font-weight:700;overflow:hidden}.theme-switch{color:var(--fg2);background:0 0;border:0;align-items:center;gap:8px;min-width:44px;padding:0 4px;display:flex}.theme-switch-track{background:var(--track);border:1px solid var(--line2);border-radius:11px;width:40px;height:22px;position:relative}.theme-switch-knob{background:var(--accent);border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:2px;left:2px}.theme-switch[aria-checked=true] .theme-switch-knob{transform:translate(18px)}a.app-header-brand{color:var(--fg);text-decoration:none}.app-header-actions{align-items:center;gap:8px;display:flex}@media (width<=640px){.app-header{padding:10px 12px;padding-top:max(10px, env(safe-area-inset-top));padding-left:max(12px, env(safe-area-inset-left));padding-right:max(12px, env(safe-area-inset-right))}.app-header-title{font-size:18px}.app-header-actions{gap:4px}.theme-switch>span[aria-hidden=true]:not(.theme-switch-track){display:none}.app-header-actions .btn-ghost{padding:0 10px}}.header-settings{gap:6px}@media (width<=640px){.header-settings{padding:0 10px}.header-settings-text{display:none}}.status-cover{height:env(safe-area-inset-top);background:var(--card);z-index:50;pointer-events:none;position:fixed;top:0;left:0;right:0}.update-banner{left:50%;bottom:calc(16px + env(safe-area-inset-bottom));z-index:60;background:var(--accent);color:#fff;max-width:calc(100vw - 32px);min-height:48px;font:inherit;cursor:pointer;border:0;border-radius:24px;padding:0 20px;font-weight:700;position:fixed;transform:translate(-50%);box-shadow:0 8px 24px #00000059}.skeleton{background:linear-gradient(90deg, var(--track) 0%, var(--line) 50%, var(--track) 100%);background-size:200% 100%;border-radius:8px;animation:1.4s ease-in-out infinite skeleton-shimmer;display:block}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}@keyframes skeleton-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.skeleton-lines{flex-direction:column;gap:8px;display:flex}.skeleton-lines .skeleton{height:14px}.skeleton-cards{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.skeleton-card{border-radius:var(--radius)}.skeleton-table{flex-direction:column;gap:10px;padding:16px;display:flex}.skeleton-row{height:40px}.skeleton-title{width:45%;height:36px;margin-bottom:18px}.athlete-app{flex-direction:column;min-height:100dvh;display:flex}.athlete-header{z-index:10;padding:8px 12px;padding-top:max(8px, env(safe-area-inset-top));background:var(--card);border-bottom:1px solid var(--line);align-items:center;gap:10px;display:flex;position:sticky;top:0}.athlete-header h1{white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:24px;overflow:hidden}.athlete-header .theme-switch>span[aria-hidden=true]:not(.theme-switch-track){display:none}.icon-link{width:44px;height:44px;color:var(--fg2);border-radius:10px;justify-content:center;align-items:center;display:inline-flex}.icon-link:hover{color:var(--fg);background:var(--track)}.athlete-main{width:100%;max-width:640px;padding:16px 16px calc(88px + env(safe-area-inset-bottom));flex-direction:column;flex:1;gap:14px;margin:0 auto;display:flex}.bottom-tabs{z-index:10;background:var(--card);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-tab{max-width:120px;min-height:56px;color:var(--fg2);flex-direction:column;flex:1;align-items:center;gap:2px;padding:8px 0 6px;font-size:12px;font-weight:600;text-decoration:none;display:flex}.bottom-tab.active{color:var(--accent-text)}.a-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.a-card h2{margin-bottom:8px;font-size:22px}.a-card-head{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.a-card-head h2{margin:0}.greeting{font-size:30px}.tiles{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.tile{background:var(--tile);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:2px;padding:10px;display:flex}.tile-value.tone-ok{color:var(--accent-text)}.tile-value.tone-warn{color:var(--warn-fg)}.tile-value.tone-danger{color:var(--danger-text)}.tile-value{font-family:var(--font-head);font-size:26px;font-weight:800;line-height:1.1}.tile-label{color:var(--fg2);font-size:12px}.prompt-card{background:var(--sel);border:1px solid var(--accent);border-radius:var(--radius);color:var(--fg);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;text-decoration:none;display:flex}.prompt-card strong{font-size:17px}.a-session{border-radius:var(--radius);border:1px solid var(--line2);background:var(--tile);color:var(--fg);flex-direction:column;gap:4px;min-height:56px;padding:12px 14px;text-decoration:none;display:flex}.a-session.done{background:var(--done)}.a-session strong{font-size:17px}.a-session-top{align-items:center;gap:8px;display:flex}.a-list{flex-direction:column;gap:8px;display:flex}.btn-full{width:100%}.a-row{border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;padding:6px 0;display:flex}.a-row:last-child{border-bottom:0}.a-row span:first-child{color:var(--fg2)}.countdown{font-family:var(--font-head);font-size:40px;font-weight:800;line-height:1}.day-strip{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.day-pill{border:1px solid var(--line);background:var(--card);min-height:60px;color:var(--fg2);border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:6px 0;font-size:12px;display:flex}.day-pill strong{color:var(--fg);font-size:17px}.day-pill[aria-pressed=true]{border-color:var(--accent);background:var(--sel)}.day-pill.is-today strong{color:var(--accent-text)}.dots{gap:3px;height:7px;display:flex}.dot{background:var(--line2);border-radius:50%;width:7px;height:7px}.dot.all-done{background:var(--fg)}.a-form{flex-direction:column;gap:14px;display:flex}.a-form input,.a-form textarea,.a-form select{font:inherit;border:1px solid var(--line2);background:var(--bg);min-height:44px;color:var(--fg);border-radius:10px;width:100%;padding:8px 12px}.scale{grid-template-columns:repeat(5,1fr);gap:6px;display:grid}.scale button{border:1px solid var(--line2);background:var(--bg);min-height:48px;color:var(--fg);border-radius:10px;font-size:18px;font-weight:700}.scale button[aria-pressed=true]{background:var(--primary);border-color:var(--primary);color:#fff}.scale-labels{color:var(--fg2);justify-content:space-between;font-size:12px;display:flex}.two-col{grid-template-columns:1fr 1fr;gap:10px;display:grid}.zones{grid-template-columns:repeat(5,1fr);gap:6px;display:grid}.zones label{color:var(--fg2);text-align:center;font-size:12px;display:block}.zones input{text-align:center;padding:8px 4px}.required{color:var(--accent-text)}.back-link{min-height:44px;color:var(--fg2);font:inherit;background:0 0;border:0;align-self:flex-start;align-items:center;padding:0;text-decoration:none;display:inline-flex}.timer-card{text-align:left;color:var(--fg);font:inherit;cursor:pointer;justify-content:space-between;align-items:center;display:flex}.timer-card strong{font-size:17px}.timer-card-icon{font-size:30px}.week-nav-a{grid-template-columns:52px 1fr 52px;gap:8px;display:grid}.week-nav-label{font-weight:700}.coach-notes{border-color:var(--line2);background:var(--tile)}.a-block-head{align-items:center;gap:8px;margin-bottom:8px;display:flex}.a-block-head h2{margin:0}.a-block .block-letter{font-family:var(--font-head);color:var(--accent-text);font-size:28px;font-weight:800;line-height:1}.wb-text{white-space:pre-wrap;font-family:var(--font-body);background:var(--tile);border-radius:10px;margin:0 0 12px;padding:12px;font-size:16px}.a-block input{font:inherit;border:1px solid var(--line2);background:var(--bg);min-height:44px;color:var(--fg);border-radius:10px;width:100%;padding:8px 12px}.a-exercises{flex-direction:column;gap:12px;display:flex}.a-exercise{border-bottom:1px solid var(--line);padding-bottom:12px}.a-exercise:last-child{border-bottom:0;padding-bottom:0}.a-exercise-head{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.a-exercise-head strong{font-size:17px}.a-exercise .ex-code{color:var(--fg2);font-weight:700}.demo-link{min-height:36px;color:var(--accent-text);font:inherit;cursor:pointer;background:0 0;border:0;margin-left:auto;padding:0 4px;font-size:14px;font-weight:600;text-decoration:underline}.a-prescription{color:var(--fg2);margin:2px 0 8px}.a-exercise-input{align-items:center;gap:8px;display:flex}.tick-box{border:1px solid var(--line2);cursor:pointer;border-radius:10px;flex:none;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex}.tick-box input{width:22px;height:22px;min-height:0;accent-color:var(--primary)}.a-exercise.ticked .a-exercise-head strong{color:var(--accent-text)}.rpe-scale{grid-template-columns:repeat(10,1fr);gap:4px;display:grid}.rpe-scale button{border:1px solid var(--line2);background:var(--bg);min-height:44px;color:var(--fg);border-radius:8px;padding:0;font-weight:700}.rpe-scale button[aria-pressed=true]{background:var(--primary);border-color:var(--primary);color:#fff}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.sleep-boxes{align-items:flex-start;gap:8px;display:flex}.sleep-box{flex-direction:column;align-items:center;gap:2px;width:84px;display:flex}.sleep-box input{font-family:var(--font-head);text-align:center;min-height:60px;font-size:30px;font-weight:800}.sleep-box span{color:var(--fg2);font-size:12px}.sleep-colon{font-family:var(--font-head);font-size:30px;font-weight:800;line-height:60px}.sleep-steps{flex-direction:column;gap:4px;margin-left:auto;display:flex}.sleep-steps button{border:1px solid var(--line2);background:var(--bg);width:52px;height:28px;min-height:28px;color:var(--fg);border-radius:8px;font-size:18px;font-weight:700;line-height:1}.extra-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;padding:8px 0;display:flex}.extra-row:last-child{border-bottom:0}.athlete-main .segmented{grid-template-columns:repeat(auto-fit,minmax(0,1fr));width:100%;display:grid}.athlete-main .segmented button{min-height:44px;padding:0 8px}.a-form input[type=date]{appearance:none;text-align:left;min-width:0;height:44px;line-height:26px;display:block}.a-form input[type=date]::-webkit-date-and-time-value{text-align:left;margin:0}.two-col>*{min-width:0}.athlete-main .stat-card{padding:16px}.prompt-card.fuel-today{background:var(--tile);border-color:var(--line2)}.strategy-card{border-color:var(--accent);background:var(--tile)}.coach-note{border-left:6px solid var(--accent)}.strategy-body{white-space:pre-wrap;margin:0;line-height:1.55}.checkin-done-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.checkin-done-grid div{flex-direction:column;display:flex}.checkin-done-grid strong{font-family:var(--font-head);font-size:22px;font-weight:800}.day-pill[aria-pressed=true] strong{color:var(--fg)}.move-day{border-top:1px solid var(--line);flex-direction:column;gap:8px;margin-top:12px;padding-top:12px;display:flex}.move-day .btn-small{align-self:flex-start}.a-exercise.superset{border-left:3px solid var(--accent);padding-left:10px}.superset-label{color:var(--accent-text);text-transform:uppercase;letter-spacing:.04em;margin:0 0 6px;font-size:12px;font-weight:700}.broadcast-message{border:2px solid var(--accent)}.pack-card{align-items:center;gap:14px;display:flex}.pack-left{font-family:var(--font-head);color:var(--accent-text);font-size:40px;font-weight:800;line-height:1}.pack-card.low .pack-left{color:var(--warn-fg)}.last-line-button{text-align:left;width:100%;color:inherit;font:inherit;cursor:pointer;border-top:0;border-bottom:0;border-right:0;font-size:13px}.last-more{float:right;color:var(--accent-text);font-weight:600}.history-backdrop{z-index:40;padding:16px 16px calc(16px + env(safe-area-inset-bottom));background:#0000008c;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.history-sheet{width:min(560px,100%);max-height:80vh;overflow-y:auto}.history-sheet .sub{margin:0 0 8px}.history-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.history-list li{border-top:1px solid var(--line);align-items:baseline;gap:10px;padding:10px 0;display:flex}.history-date{color:var(--fg2);flex:0 0 88px;font-size:13px}.history-text{flex-direction:column;flex:1;min-width:0;display:flex}.history-text .sub{margin:0;font-size:12px}.history-tag{color:var(--accent-text);font-size:12px;font-weight:700}.history-best .history-text strong{color:var(--accent-text)}.a-restored{justify-content:space-between;align-items:center;gap:10px;display:flex}.add-calendar summary{cursor:pointer;justify-content:space-between;align-items:center;min-height:32px;list-style:none;display:flex}.add-calendar summary::-webkit-details-marker{display:none}.add-calendar summary:after{content:"+";color:var(--fg2);font-size:22px}.add-calendar[open] summary:after{content:"−"}.add-calendar summary h2{margin:0}.add-calendar-time{flex-direction:column;gap:6px;margin:12px 0;display:flex}.add-calendar-time input{box-sizing:border-box;width:100%;min-height:48px;font:inherit;border:1px solid var(--line2);background:var(--bg);color:var(--fg);appearance:none;text-align:left;border-radius:10px;padding:0 12px;font-size:18px}.add-calendar-buttons{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px;display:grid}.add-calendar-buttons .btn-ghost{min-height:48px}.submit-row{align-items:stretch;gap:8px;display:flex}.submit-row .btn-primary{flex:1}.attach-button{flex:0 0 52px;place-items:center;min-height:48px;padding:0;display:grid}.attach-hint{margin:0;font-size:13px}.pay-to-join{flex-direction:column;gap:10px;display:flex}.challenge-group{flex-direction:column;gap:14px;display:flex}.community-card{color:inherit;flex-direction:column;gap:6px;text-decoration:none;display:flex}.community-card .a-card-head h2{margin:0}.chat-link{margin-top:12px}.checkin-day{grid-template-columns:auto auto 1fr;align-items:center;gap:8px;display:grid}.checkin-day input{min-width:0;min-height:40px;font:inherit;border:1px solid var(--line2);background:var(--bg);color:var(--fg);border-radius:10px;padding:0 8px}.field-label-na{justify-content:space-between;align-items:center;gap:8px;display:flex}.na-toggle{border:1px solid var(--line2);min-height:28px;color:var(--fg2);font:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:2px 10px;font-size:12px}.na-toggle[aria-pressed=true]{background:var(--sel);color:var(--fg);border-color:var(--accent)}.na-note{align-items:center;min-height:44px;margin:0;display:flex}.checkin-links{gap:6px;display:flex}.tour-backdrop{z-index:60;padding:16px 16px calc(16px + env(safe-area-inset-bottom));background:#0009;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.tour{text-align:center;background:var(--card);border:1px solid var(--line);border-radius:20px;flex-direction:column;align-items:center;gap:10px;width:min(440px,100%);padding:24px 20px 20px;display:flex}.tour-icon{font-size:44px;line-height:1}.tour h2{margin:0;font-size:24px}.tour p{color:var(--fg2);margin:0;line-height:1.5}.tour-dots{gap:6px;margin:6px 0;display:flex}.tour-dots span{background:var(--track);border-radius:50%;width:8px;height:8px}.tour-dots span.on{background:var(--accent)}.tour-buttons{grid-template-columns:1fr 1fr;gap:8px;width:100%;display:grid}.tour-buttons .btn-full{grid-column:1/-1}.club-feed{gap:12px;display:grid}.club-feed>*{margin:0}.club-composer{gap:12px;display:grid}.club-composer h3{margin:0}.club-post{gap:10px;display:grid}.club-post-pinned{border-color:var(--line2)}.club-post-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.club-post-body{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--fg2);margin:0;line-height:1.5}.club-photos{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.club-photos-1{grid-template-columns:1fr}.club-photos-2{grid-template-columns:repeat(2,1fr)}.club-photo{border:1px solid var(--line);background:var(--tile);aspect-ratio:1;cursor:pointer;border-radius:10px;place-items:center;padding:0;display:grid;overflow:hidden}.club-photos-1 .club-photo{aspect-ratio:4/3}.club-photo img{object-fit:cover;width:100%;height:100%}.club-post-actions{border-top:1px solid var(--line);flex-wrap:wrap;gap:4px;padding-top:6px;display:flex}.club-action{min-height:44px;color:var(--fg2);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:0 12px;font-size:14px}.club-action:hover{background:var(--tile)}.club-action[aria-pressed=true]{color:#22c55e;font-weight:600}.club-comments{gap:8px;display:grid}.club-comments ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.club-comments li{background:var(--tile);border-radius:10px;gap:2px;padding:8px 10px;display:grid}.club-comments li .btn-small{justify-self:start}.club-comment-body{white-space:pre-wrap;overflow-wrap:anywhere}.club-comment-form{gap:8px;display:flex}.club-comment-form input{flex:1;min-width:0;min-height:44px}.club-links{gap:8px;margin-top:12px;display:grid}.club-links-row{gap:8px;display:flex}.club-links-row a{flex:1}.upgrade-card p{margin-top:0}.club-run{background:var(--tile);border:1px solid var(--line);border-radius:12px;gap:10px;padding:12px;display:grid}.club-run-title{margin:0;font-size:20px}.club-run-facts{gap:4px;margin:0;display:grid}.club-run-facts div{grid-template-columns:80px 1fr;gap:8px;display:grid}.club-run-facts dt{color:var(--fg2);font-size:14px}.club-run-facts dd{overflow-wrap:anywhere;margin:0;font-weight:600}.club-run-who{min-height:44px;color:var(--fg);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;justify-self:start;padding:0}.club-run-names p{margin:0 0 4px}.club-rsvp{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.club-rsvp .choice-chip{justify-content:center;min-height:44px}.club-calendar summary{cursor:pointer;align-items:center;min-height:44px;font-weight:600;display:flex}.club-calendar .add-calendar-buttons{grid-template-columns:1fr 1fr;gap:8px;margin:4px 0 8px;display:grid}.club-form-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.club-poll-question{color:var(--fg);font-weight:600}.club-poll ul{gap:6px;margin:0 0 8px;padding:0;list-style:none;display:grid}.club-poll-option{border:1px solid var(--line2);background:var(--card);width:100%;min-height:44px;color:var(--fg);font:inherit;cursor:pointer;text-align:left;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex;position:relative;overflow:hidden}.club-poll-option[aria-pressed=true]{border-color:#22c55e}.club-poll-bar{background:var(--sel);opacity:.6;transition:width .3s;position:absolute;inset:0 auto 0 0}.club-poll-label,.club-poll-count{position:relative}.club-poll-count{color:var(--fg2);white-space:nowrap;font-size:14px}.club-poll-voters{padding:2px 4px 0;display:block}.club-poll-inputs{gap:6px;margin-bottom:6px;display:grid}.club-poll-input{gap:6px;display:flex}.club-poll-input input{flex:1;min-width:0}.league-scroll{overflow-x:auto}.league-table{border-collapse:collapse;width:100%;font-size:14px}.league-table th{text-align:center;color:var(--fg2);padding:6px 4px;font-size:12px;font-weight:600}.league-table td{text-align:center;border-top:1px solid var(--line);padding:8px 4px}.league-table th:nth-child(2),.league-table td.league-name{text-align:left}.league-points{font-weight:700}.league-me td{background:var(--sel)}.league-rounds-title{margin:16px 0 6px}.league-rounds{margin:0;padding:0;list-style:none}.league-round-results{margin:0 0 8px;padding:0;list-style:none}.league-round-results li{border-top:1px solid var(--line);grid-template-columns:32px 1fr auto 36px;align-items:center;gap:8px;padding:6px 0;font-size:14px;display:grid}.league-round-results .league-points{text-align:right}.league-strike{color:var(--fg2)}.round-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.round-item{border:1px solid var(--line);background:var(--tile);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:10px;display:flex}.round-form{border:1px solid var(--line2);border-radius:12px;flex-direction:column;gap:10px;padding:12px;display:flex}.round-form .field input,.round-form .field select,.round-form .field textarea{box-sizing:border-box;width:100%}.round-form-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.audit-list{margin:0;padding:0;list-style:none}.audit-row{border-top:1px solid var(--line);grid-template-columns:72px 1fr;gap:10px;padding:12px 0;display:grid}.audit-body{flex-direction:column;gap:6px;min-width:0;display:flex}.audit-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.audit-actions input{width:110px}.audit-noshot{border:1px dashed var(--line2);width:72px;height:72px;color:var(--fg2);text-align:center;border-radius:10px;place-items:center;font-size:12px;display:grid}.round-entry-form{flex-direction:column;gap:8px;display:flex}.round-entry-form input,.round-entry-form textarea{box-sizing:border-box;width:100%;min-height:44px;font:inherit;border:1px solid var(--line2);background:var(--bg);color:var(--fg);border-radius:10px;padding:8px 10px}@media (width<=600px){.round-form-row{grid-template-columns:1fr}}.round-thumb{object-fit:cover;border-radius:8px;width:48px;height:48px}.round-item .field input{box-sizing:border-box;width:100%}.adjust-box{flex-direction:column;gap:8px;margin-top:8px;display:flex}.adjust-form{grid-template-columns:1fr 90px 2fr auto;gap:8px;display:grid}.adjust-form select,.adjust-form input{min-width:0;min-height:40px;font:inherit;border:1px solid var(--line2);background:var(--bg);color:var(--fg);border-radius:8px;padding:0 8px}.adjust-list{margin:0;padding:0;list-style:none}.adjust-list li{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;padding:6px 0;font-size:14px;display:flex}@media (width<=600px){.adjust-form{grid-template-columns:1fr 1fr}}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));align-items:start;gap:12px;display:grid}.stat-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:10px;min-width:0;padding:14px 16px;display:flex}.stat-card-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.stat-card-head h3{font-size:20px}.big{flex-direction:column;display:flex}.big-value{font-family:var(--font-head);font-size:34px;font-weight:800;line-height:1.05}.big-unit{color:var(--fg2);font-size:17px;font-weight:600}.big-button{text-align:left;color:inherit;background:0 0;border:0;min-height:0;padding:0}.chart{margin:0}.chart svg{width:100%;display:block}.chart-axis,.bars-labels{color:var(--fg2);justify-content:space-between;margin-top:4px;font-size:11px;display:flex}.chart-empty{margin:0}.bars-wrap{position:relative}.bars-grid{width:100%;height:100%;position:absolute;inset:0}.bars{align-items:flex-end;gap:4px;height:100%;display:flex;position:relative}.bar-col{flex:1;align-items:flex-end;height:100%;display:flex;position:relative}.chart-bar{border-radius:3px 3px 0 0;min-height:0;position:absolute;bottom:0;left:0;right:0}.chart-bar-ghost{background:var(--track);border:1px dashed var(--line2)}.bars-labels span{text-align:center;flex:1}.mini-list{margin:0;padding:0;list-style:none}.mini-list li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;padding:6px 0;font-size:15px;display:flex}.mini-list li:last-child{border-bottom:0}.quick-log{gap:8px;display:flex}.quick-log select{font:inherit;border:1px solid var(--line2);background:var(--bg);min-height:44px;color:var(--fg);border-radius:10px;padding:0 8px}.quick-log input{min-width:0;font:inherit;border:1px solid var(--line2);background:var(--bg);min-height:44px;color:var(--fg);border-radius:10px;flex:1;padding:0 12px}.field-error{color:var(--warn-fg);margin:0;font-size:14px}.checkin-grid,.sleep-figures,.weeks-row{grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:8px;display:grid}.checkin-grid div,.sleep-figures div,.weeks-row div{flex-direction:column;display:flex}.checkin-grid strong,.sleep-figures strong,.weeks-row strong{font-family:var(--font-head);font-size:22px}.checkin-note{color:var(--fg2);margin:0;font-style:italic}.sleep-detail{flex-direction:column;gap:10px;display:flex}.key{color:var(--fg2);flex-wrap:wrap;gap:6px 14px;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.key li{align-items:center;gap:6px;display:flex}.key span{border-radius:3px;width:12px;height:12px;display:inline-block}.key .key-dash{border-top:2px dashed #22c55e;border-radius:0;height:0}.key .key-line{border-top:2px solid var(--fg2);border-radius:0;height:0}.zones-table{border-collapse:collapse;width:100%;font-size:15px}.zones-table th,.zones-table td{text-align:left;border-bottom:1px solid var(--line);padding:6px 4px}.zones-table tr:last-child td{border-bottom:0}.zones-table .run{color:var(--run-text);font-weight:600}.zones-table .bike{color:var(--bike-text);font-weight:600}.history-chips{margin:0}.history-chips .choice-chip{min-height:36px;font-size:14px}.km-days{grid-template-columns:repeat(7,1fr);align-items:end;gap:6px;display:grid}.km-day{flex-direction:column;align-items:center;gap:4px;display:flex}.km-track{background:var(--track);border-radius:7px;width:14px;height:84px;position:relative;overflow:hidden}.km-planned,.km-done{border-radius:7px;position:absolute;bottom:0;left:0;right:0}.km-planned{background:var(--line2)}.km-done{background:#22c55e}.km-day-label{color:var(--fg2);font-size:12px}.km-day.today .km-day-label{color:var(--fg);font-weight:700}.km-value{color:var(--fg2);min-height:1.2em;font-size:12px;font-weight:600}.km-value.done{color:var(--accent-text)}.km-key{align-items:center;gap:6px;margin:0;font-size:12px;display:flex}.km-key span{border-radius:3px;width:10px;height:10px;display:inline-block}.km-key-done{background:#22c55e}.km-key-planned{background:var(--line2);margin-left:8px}.km-weeks{margin:0}.repmax-inputs{align-items:flex-end;gap:10px;margin:12px 0;display:flex}.repmax-inputs label{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.repmax-inputs input,.repmax-inputs select{min-height:44px;font:inherit;border:1px solid var(--line2);background:var(--bg);color:var(--fg);border-radius:8px;width:100%;padding:0 10px}.repmax-x{color:var(--fg2);padding-bottom:12px}.repmax-big{align-items:baseline;gap:8px}.repmax-table{border-collapse:collapse;width:100%;margin-top:8px;font-size:14px}.repmax-table th{text-align:left;color:var(--fg2);padding:4px 0;font-size:12px;font-weight:600}.repmax-table td{border-top:1px solid var(--line);padding:6px 0}.repmax-current td{color:var(--accent-text);font-weight:700}.repmax-round{color:var(--fg2);align-items:center;gap:8px;margin-top:10px;font-size:13px;display:flex}.repmax-round input{width:18px;height:18px}.question-editor ol{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.question-editor li{grid-template-columns:22px 1fr 130px auto;align-items:center;gap:6px;display:grid}.question-editor .q-number{color:var(--fg2);text-align:right;font-weight:600}.question-editor input,.question-editor select{font:inherit;border:1px solid var(--line2);background:var(--bg);min-width:0;min-height:40px;color:var(--fg);border-radius:8px;padding:0 8px}.question-editor .q-actions{display:flex}.question-editor .race-form-actions{margin-top:10px}@media (width<=560px){.question-editor li{grid-template-columns:22px 1fr}.question-editor select,.question-editor .q-actions{grid-column:2}}.weekly-week{margin:8px 0 4px;font-size:16px}.weekly-answers{flex-direction:column;gap:8px;margin:0;display:flex}.weekly-answers>div{border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;padding-bottom:6px;display:flex}.weekly-answers dt{color:var(--fg2)}.weekly-answers dd{text-align:right;margin:0;font-weight:600}.weekly-answers dd.answer-text{white-space:pre-wrap;font-weight:400}.weekly-answers>div:has(.answer-text){flex-direction:column;gap:2px}.weekly-answers>div:has(.answer-text) dd{text-align:left}.weekly-form textarea,.weekly-form input{font:inherit}.weekly-current{border:2px solid var(--accent);background:var(--sel);border-radius:12px;padding:4px 12px 12px}.weekly-current .weekly-answers>div{border-bottom-color:var(--line2)}.weekly-feedback{border-top:1px solid var(--line);flex-direction:column;align-items:flex-start;gap:6px;margin-top:12px;padding-top:12px;display:flex}.weekly-feedback textarea{width:100%;font:inherit;border:1px solid var(--line2);background:var(--bg);color:var(--fg);resize:vertical;border-radius:8px;padding:8px}.booking-rows{flex-direction:column;gap:8px;display:flex}.booking-row{grid-template-columns:1fr 1.4fr 36px;align-items:center;gap:8px;display:grid}.booking-row input{font:inherit;border:1px solid var(--line2);background:var(--bg);min-width:0;min-height:44px;color:var(--fg);border-radius:10px;padding:0 10px}@media (width<=560px){.booking-row{grid-template-columns:1fr 36px}.booking-row input[type=url]{grid-column:1}}.booking-buttons{flex-direction:column;gap:8px;display:flex}.booking-backdrop{z-index:40;background:#000000bf;justify-content:center;align-items:center;padding:12px;display:flex;position:fixed;inset:0}.booking-modal{background:var(--card);border:1px solid var(--line);border-radius:16px;flex-direction:column;gap:8px;width:min(760px,100%);height:min(860px,100%);padding:12px;display:flex}.booking-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.booking-head h2{font-size:22px}.booking-frame{background:#fff;border:0;border-radius:10px;flex:1;width:100%}.booking-open{color:var(--fg2);text-align:center;font-size:14px}.a-input,.stat-card select.a-input{font:inherit;border:1px solid var(--line2);background:var(--bg);min-height:44px;color:var(--fg);border-radius:10px;width:100%;padding:8px 12px}.tests-table{border-collapse:collapse;width:100%;font-size:14px}.tests-table th{text-align:left;color:var(--fg2);padding:4px;font-weight:600}.tests-table td{border-top:1px solid var(--line);vertical-align:top;padding:6px 4px}.tests-table input[type=checkbox]{width:20px;height:20px;accent-color:var(--primary)}.apply-box{border:1px solid var(--line2);background:var(--tile);border-radius:10px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.apply-box ul{margin:0;padding-left:18px}.small-seg button{min-height:32px;padding:0 8px;font-size:12px}.small-seg button:disabled{cursor:default}.gauge{align-self:center;width:100%;max-width:260px}.macros{text-align:center;grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.macros div{flex-direction:column;display:flex}.macros strong{font-family:var(--font-head);font-size:24px}.edit-rows{flex-direction:column;gap:6px;display:flex}.edit-row{grid-template-columns:1.5fr 1fr 1.5fr 36px;align-items:center;gap:6px;display:grid}.edit-row.two{grid-template-columns:1fr 2fr 36px}.edit-row input{font:inherit;border:1px solid var(--line2);background:var(--bg);min-height:40px;color:var(--fg);border-radius:8px;min-width:0;padding:0 10px}.supp-tick{border-bottom:1px solid var(--line);cursor:pointer;align-items:center;gap:12px;min-height:52px;padding:6px 0;display:flex}.supp-tick:last-child{border-bottom:0}.supp-tick input{width:24px;height:24px;accent-color:var(--primary);flex:none}.supp-tick span{flex:1}.protocol-list{margin:0;padding:0;list-style:none}.protocol-list li{border-bottom:1px solid var(--line);grid-template-columns:110px 1fr;gap:10px;padding:8px 0;display:grid}.protocol-list li:last-child{border-bottom:0}.protocol-list strong{color:var(--accent-text)}.season-wrap{overflow-x:auto}.season{min-width:900px;position:relative}.season-weeks{color:var(--fg2);grid-template-columns:repeat(30,1fr);font-size:10px;display:grid}.season-weeks div{border-left:1px solid var(--line);text-align:center;padding:2px}.season-weeks .current{background:var(--sel);color:var(--fg);font-weight:700}.season-months{grid-template-columns:repeat(30,1fr);min-height:18px;font-size:12px;font-weight:700;display:grid}.season-lanes{background-image:linear-gradient(to right, var(--line) 1px, transparent 1px);background-size:3.33333% 100%;grid-template-columns:repeat(30,1fr);grid-auto-rows:30px;gap:4px 0;min-height:44px;padding:6px 0;display:grid;position:relative}.season-bar{color:#fff;text-align:left;white-space:nowrap;text-overflow:ellipsis;border:0;border-radius:6px;min-height:0;margin:0 1px;padding:0 8px;font-size:12px;font-weight:700;overflow:hidden}.season-races{grid-template-columns:repeat(30,1fr);min-height:22px;font-size:11px;display:grid}.season-race{color:var(--danger-text);white-space:nowrap;font-weight:700}.phase-key{color:var(--fg2);flex-wrap:wrap;gap:8px 16px;font-size:13px;display:flex}.phase-key-item{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.phase-swatch{border-radius:3px;flex:none;width:12px;height:12px;display:inline-block}.cycle-strip{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.cycle-strip div{color:#fff;text-align:center;white-space:nowrap;text-overflow:ellipsis;border-radius:6px;padding:4px 2px;font-size:11px;font-weight:700;overflow:hidden}.phase-now{align-items:center;gap:10px;display:flex}.phase-dot{border-radius:50%;flex:none;width:14px;height:14px}.season-bar:disabled{cursor:default;opacity:1}.cycle-guide p{margin:0 0 8px}.cycle-strip-coach{margin-bottom:8px}.fuel-vs{text-align:center}.fuel-settings{border-top:1px solid var(--line);padding-top:12px}.fuel-settings summary{cursor:pointer;min-height:36px;font-weight:600}.fuel-setting{flex-direction:column;gap:8px;margin-top:14px;display:flex}.fuel-plan{flex-direction:column;gap:6px;display:flex}.fuel-plan-row{grid-template-columns:40px 1fr;align-items:center;gap:8px;display:grid}.fuel-plan .choice-chip,.fuel-setting>.chips+.chips .choice-chip{min-height:36px;padding:0 12px;font-size:14px}.fuel-protein{font:inherit;border:1px solid var(--line2);background:var(--bg);width:100px;min-height:44px;color:var(--fg);border-radius:10px;padding:0 12px}.fuel-layout{grid-template-columns:minmax(300px,400px) 1fr;align-items:start;gap:12px;display:grid}.fuel-side{flex-direction:column;gap:12px;min-width:0;display:flex}@media (width<=820px){.fuel-layout{grid-template-columns:1fr}}.test-edit{flex-direction:column;gap:6px;min-width:150px;display:flex}.test-edit input{font:inherit;border:1px solid var(--line2);background:var(--bg);min-height:40px;color:var(--fg);border-radius:8px;min-width:0;padding:0 10px}.test-edit-actions{gap:6px;display:flex}.link-btn{color:var(--accent-text);font:inherit;cursor:pointer;background:0 0;border:0;margin-top:4px;padding:4px 0;font-size:13px;font-weight:600;text-decoration:underline;display:block}.fuel-day-level{flex-direction:column;gap:6px;margin:8px 0 4px;display:flex}.fuel-set-note{text-align:center;margin:6px 0 0}.fuelbook-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;display:flex}.fuelbook-head h2{margin:0}.fuelbook-target{color:var(--fg2);font-size:14px}.fuelbook-target strong{color:var(--accent-text)}.fuelbook-nav{text-align:center;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;margin:10px 0;display:grid}.fuelbook-days{flex-direction:column;gap:8px;display:flex}.fuelbook-day{border:1px solid var(--line);background:var(--tile);border-radius:12px;flex-direction:column;gap:8px;padding:10px;display:flex}.fuelbook-today{border-color:var(--accent)}.fuelbook-day-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.fuelbook-empty{margin:0}.fuelbook-entries{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.fuelbook-entries li{align-items:center;gap:10px;display:flex}.fuelbook-entry-text{white-space:pre-wrap;overflow-wrap:anywhere;flex-direction:column;flex:1;min-width:0;font-size:14px;display:flex}.fuelbook-add{flex-direction:column;gap:8px;display:flex}.fuelbook-add textarea{box-sizing:border-box;width:100%;font:inherit;border:1px solid var(--line2);background:var(--bg);color:var(--fg);border-radius:8px;padding:8px}.fuelbook-add-buttons{grid-template-columns:1fr 1fr;gap:8px;display:grid}.fuelbook .add-session{border:1px dashed var(--line2);width:100%;min-height:44px;color:var(--fg2);font:inherit;cursor:pointer;background:0 0;border-radius:10px}.fuelbook-coach{margin-top:12px}@media (width>=1000px){.fuelbook-coach .fuelbook-days{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.fuelbook-coach .fuelbook-day-head{flex-direction:column;gap:2px}.fuelbook-coach .fuelbook-entries li{flex-direction:column;align-items:flex-start}}.period-card{flex-direction:column;gap:10px;display:flex}.period-card .a-card-head h2{margin:0}.period-log{flex-direction:column;gap:8px;display:flex}.period-log-buttons{grid-template-columns:1fr 1fr;gap:8px;display:grid}.period-log-buttons input,.period-list input{box-sizing:border-box;width:100%;min-height:44px;font:inherit;border:1px solid var(--line2);background:var(--bg);color:var(--fg);border-radius:10px;padding:0 8px}.period-history{border-top:1px solid var(--line);flex-direction:column;gap:8px;margin-top:8px;padding-top:12px;display:flex}.period-history h3{margin:0}.period-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.period-list li{grid-template-columns:1fr auto;align-items:center;gap:8px;display:grid}.timer{z-index:50;padding:12px 16px;padding-top:max(12px, env(safe-area-inset-top));padding-bottom:max(16px, env(safe-area-inset-bottom));background:var(--bg);color:var(--fg);flex-direction:column;transition:background .2s;display:flex;position:fixed;inset:0}.timer-work{color:#fff;background:#14532d}.timer-rest,.timer-ready{color:#fff;background:#1e3a8a}.timer-done{color:#fff;background:#0a0a0a}.timer-top{justify-content:space-between;align-items:center;display:flex}.timer-title{font-family:var(--font-head);font-size:20px;font-weight:700}.timer-btn{width:44px;height:44px;color:inherit;background:0 0;border:1px solid;border-radius:50%;font-size:17px;font-weight:700}.timer-setup,.timer-run,.timer-glossary{flex-direction:column;flex:1;justify-content:center;gap:18px;width:100%;max-width:480px;margin:0 auto;display:flex}.timer-modes{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.timer-modes button{border:1px solid var(--line2);background:var(--card);min-height:52px;color:var(--fg);border-radius:12px;font-size:17px;font-weight:700}.timer-modes button[aria-pressed=true]{background:var(--primary);border-color:var(--primary);color:#fff}.timer-fields{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;display:grid}.timer-field{flex-direction:column;gap:4px;display:flex}.timer-field label{color:var(--fg2);font-size:14px;font-weight:600}.timer-field input{font-family:var(--font-head);text-align:center;border:1px solid var(--line2);background:var(--card);min-height:60px;color:var(--fg);border-radius:12px;font-size:32px;font-weight:800}.timer-field span{color:var(--fg2);font-size:12px}.timer-preset{border:1px dashed var(--line2);min-height:44px;color:var(--fg2);background:0 0;border-radius:10px}.timer-total{text-align:center;color:var(--fg2);margin:0}.timer-action{color:#0a0a0a;background:#fff;border:0;border-radius:14px;flex:1;min-height:60px;font-size:20px;font-weight:800}.timer-setup .timer-action,.timer-glossary .timer-action{background:var(--primary);color:#fff}.timer-secondary{color:inherit;background:0 0;border:2px solid}.timer-run{text-align:center}.timer-label{font-family:var(--font-head);text-transform:uppercase;letter-spacing:1px;font-size:36px;font-weight:800}.timer-digits{font-family:var(--font-head);font-variant-numeric:tabular-nums;font-size:clamp(96px,30vw,220px);font-weight:800;line-height:1}.timer-round{font-size:22px;font-weight:700}.timer-progress{background:#ffffff40;border-radius:5px;height:10px;overflow:hidden}.timer-progress span{background:#fff;height:100%;display:block}.timer-controls{gap:10px;display:flex}.timer-glossary p{margin:0;line-height:1.5}.code-input{letter-spacing:8px;text-align:center;font-weight:800;font-family:var(--font-head)!important;font-size:30px!important}.two-step-setup{flex-direction:column;gap:10px;display:flex}.two-step-setup ol{margin:0;padding-left:22px;line-height:1.6}.two-step-setup .field input{font:inherit;border:1px solid var(--line2);background:var(--bg);min-height:52px;color:var(--fg);border-radius:10px;max-width:240px}.qr{background:#fff;border-radius:12px;align-self:flex-start;padding:10px}.secret{background:var(--tile);word-break:break-all;border-radius:8px;margin-top:6px;padding:8px 10px;font-size:14px;display:block}.link-button{color:var(--accent-text);font:inherit;cursor:pointer;background:0 0;border:0;text-decoration:underline}.auth-page{max-width:420px;margin:0 auto;padding:40px 16px}.auth-page h1{margin-bottom:6px;font-size:36px}.auth-intro{color:var(--fg2);margin:0 0 20px}.auth-form{flex-direction:column;gap:16px;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field label{color:var(--fg2);font-size:14px;font-weight:600}.field input{font:inherit;border:1px solid var(--line2);background:var(--bg);min-height:44px;color:var(--fg);border-radius:10px;padding:0 12px}.field-hint{color:var(--fg2);font-size:13px}.auth-form .btn-primary{width:100%}.auth-links{text-align:center;margin-top:18px;font-size:15px}.notice{border-radius:10px;padding:12px 14px;font-size:15px}.notice-error{background:var(--warn-bg);border:1px solid var(--warn-border);color:var(--warn-fg)}.notice-ok{background:var(--done);border:1px solid var(--line2);color:var(--fg)}.auth-legal{text-align:center;color:var(--fg2);margin-top:16px;font-size:14px}.field-label{color:var(--fg2);font-size:14px;font-weight:600}.turnstile-box{min-height:65px}
