:root{--bg:#f8f8f9;--surface:#fff;--ink:#2c2c2e;--muted:#8e8e93;--accent:#c84712;--accent-soft:#fff3ed;--line:#e5e5ea;--success:#34c759;--success-bg:#f0faf3;--warning:#ff9500;--warning-bg:#fff8ed;--danger:#ff3b30;--danger-bg:#fff0f0;--radius:16px;--shadow:0 1px 6px rgba(0,0,0,.03);--tab-bar-height:84px}*{box-sizing:border-box}html{background:var(--bg);color-scheme:light;overflow-y:scroll;scrollbar-width:none;-ms-overflow-style:none}html::-webkit-scrollbar{display:none}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,Roboto,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:15px}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a,button,input,select,summary{outline-offset:3px}:focus-visible{outline:3px solid #1259a7}h1,h2,h3,p{margin-top:0}h1{font-size:1.75rem;font-weight:700;letter-spacing:-.02em}h2{font-size:1.25rem;letter-spacing:-.01em}h2,h3{font-weight:600}h3{font-size:1.02rem}p{margin-bottom:12px;line-height:1.48}.app-shell,.workout-shell{width:100%;max-width:430px;min-height:100vh;margin:auto;padding:env(safe-area-inset-top,0) env(safe-area-inset-right,16px) calc(var(--tab-bar-height) + env(safe-area-inset-bottom,20px)) env(safe-area-inset-left,16px)}.app-shell>header,.workout-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:20px 0 24px}.app-shell>header>div:first-child{flex:1 1}.app-shell>header select{max-width:160px;min-height:38px;font-size:.88rem;padding:8px 32px 8px 12px;background-position:right 10px center}.eyebrow{font-size:.65rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);opacity:.7}header h1{margin:2px 0 0;line-height:1.2;font-size:1.65rem}input,select{width:100%;min-height:50px;border:1px solid var(--line);background:var(--surface);border-radius:11px;padding:12px 14px;color:var(--ink);font-size:.95rem}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23626b78' d='M1.41 0L6 4.58 10.59 0 12 1.41l-6 6-6-6z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:38px}label{display:grid;grid-gap:4px;gap:4px;color:var(--muted);font-size:.84rem;font-weight:500}label b{color:var(--ink);font-weight:600}label b,small{font-size:.85rem}small{line-height:1.4}.card,.exercise,.hero{margin-bottom:20px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:24px;box-shadow:var(--shadow)}.hero{padding:28px}.hero h2{margin:4px 0 12px;font-size:1.75rem;font-weight:700;letter-spacing:-.025em;line-height:1.15}.exercise p,.hero p,.muted{color:var(--muted);line-height:1.5;font-size:.94rem}.button-row,.header-actions,.hero-actions,.timer-actions,.workout-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.hero-actions{margin-top:16px}.button-row{margin-top:12px}.chip-grid button,.choice-grid button,.danger,.ghost,.link,.primary,.quick-grid button,.swap-panel button,.toggle-grid button{min-height:52px;border-radius:13px;padding:14px 18px;font-weight:600;font-size:.95rem}.primary{border:0;background:var(--accent);color:#fff;box-shadow:0 2px 8px rgba(200,71,18,.2)}.primary:active{opacity:.88;transform:scale(.98)}.danger{border:1px solid #efbaba;background:var(--danger-bg);color:var(--danger)}.ghost,.link{border:1px solid transparent;background:transparent;color:var(--accent)}.link{padding-left:0;padding-right:0;min-height:44px}.pill{display:inline-flex;border-radius:999px;background:var(--accent-soft);color:var(--accent);padding:5px 11px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.chip-grid,.choice-grid,.quick-grid,.toggle-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px;margin:14px 0 16px}.chip-grid button,.choice-grid button,.quick-grid button,.swap-panel button,.toggle-grid button{border:1px solid var(--line);background:var(--surface);color:var(--ink)}.chip-grid button.active,.quick-grid button.active,.toggle-grid button.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:650}.toggle-grid button.warning,.warning{border-color:#e9b08c;background:var(--warning-bg);color:var(--warning)}.choice-grid button{display:grid;grid-gap:4px;gap:4px;text-align:left;align-content:start;padding:14px}.choice-grid button b{font-size:.95rem}.choice-grid button small,.choice-grid button span{color:var(--muted);font-weight:500;font-size:.85rem;line-height:1.38}.metrics,.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.settings-grid{margin:14px 0 16px}.metrics span{display:flex;min-height:72px;flex-direction:column;padding:12px;border-radius:12px;background:var(--bg);color:var(--muted);font-size:.9rem}.metrics b{margin-bottom:2px;color:var(--ink);font-size:1.15rem;font-weight:650}.settings-grid{margin:14px 0 18px}.connection-state{margin:0 0 12px;border:1px solid var(--line);border-radius:11px;padding:11px 14px;font-size:.88rem;color:var(--muted);background:var(--surface);line-height:1.45}.connection-state.online{border-color:#cfe8d6;background:#f2faf4}.connection-state.offline{border-color:#ebc498;background:#fff8ed;color:#72431d}.connection-state.storage-error{border-color:#efbaba;background:var(--danger-bg);color:var(--danger)}.coach-mini,.coach-note,.previous{margin:12px 0;border-radius:11px;background:#f8f1ec;padding:12px 14px;color:#59463b;line-height:1.45;font-size:.88rem}.exercise-title{display:flex;justify-content:space-between;gap:16px}.exercise-tools{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:flex-end;gap:8px}.exercise-tools .link{min-width:64px}.exercise.deferred{border-style:dashed;background:#fafafa;opacity:.75}.exercise.deferred .set:not(.done){background:#f0f1f3}.exercise h2{margin:6px 0 4px;font-size:1.2rem}.set-grid{display:grid;grid-gap:8px;gap:8px;margin:12px 0}.set{display:flex;justify-content:space-between;gap:12px;border-radius:11px;background:var(--bg);padding:13px 15px;color:var(--muted);font-size:.95rem}.set.done{background:var(--success-bg);color:var(--success);font-weight:600}.set b{font-weight:650}.log-box{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px;align-items:end}.log-box .primary,.log-box .wide-field{grid-column:1/-1}.checkbox-row{display:flex;min-height:50px;align-items:center;gap:10px;border:1px solid var(--line);border-radius:11px;padding:11px 14px;color:var(--ink);font-size:.94rem}.checkbox-row input{width:auto;min-height:auto;width:20px;height:20px;accent-color:var(--accent)}.swap-panel{margin:14px 0;border:1px solid var(--line);border-radius:13px;background:#fafbfc;padding:15px}.swap-panel h3{font-size:1rem;margin-bottom:10px}.swap-panel button{display:grid;width:100%;height:auto;margin:6px 0;text-align:left}.swap-panel small{margin-top:4px;color:var(--muted);font-weight:500;font-size:.88rem}.skill-block{padding:16px 0;border-top:1px solid var(--line)}.skill-block b{font-size:.98rem}.history{display:grid;grid-template-columns:1fr auto;grid-gap:4px;gap:4px;padding:13px 0;border-bottom:1px solid var(--line);font-size:.94rem}.history b{font-weight:600}.history .link,.history small{grid-column:1/-1;font-size:.88rem}.history small{color:var(--muted);line-height:1.4}.paused-card{text-align:center}.paused-card h2{margin-bottom:10px}.paused-card .primary{margin-top:16px;width:100%;max-width:280px}.workout-actions{margin-top:20px;gap:10px}.workout-actions .primary{flex:1 1;min-height:56px;font-size:1rem}.rest-dock{position:fixed;z-index:30;left:50%;bottom:calc(var(--tab-bar-height) + env(safe-area-inset-bottom,0) + 8px);transform:translateX(-50%);width:calc(100% - 32px);max-width:398px;display:grid;grid-template-columns:auto auto 1fr;align-items:center;grid-gap:14px;gap:14px;border-radius:16px;background:#171a1f;color:#fff;padding:16px 18px;box-shadow:0 4px 20px rgba(0,0,0,.15)}.rest-dock>span{font-size:1.65rem;font-weight:750;letter-spacing:-.01em}.rest-dock button{min-height:42px;border:0;border-radius:10px;padding:10px 13px;font-weight:600;font-size:.9rem}.timer-actions{justify-content:flex-end}.rest-dock~.bottom-nav{opacity:.4;pointer-events:none}.bottom-nav{position:fixed;z-index:20;left:50%;bottom:0;transform:translateX(-50%);width:100%;max-width:430px;display:grid;grid-template-columns:repeat(4,1fr);border-top:.5px solid rgba(0,0,0,.08);background:rgba(252,252,253,.96);padding:8px 0 calc(8px + env(safe-area-inset-bottom,0));backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px)}.bottom-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:56px;border:0;background:transparent;color:var(--muted);font-weight:600;font-size:.68rem;letter-spacing:.01em;padding:6px 8px}.bottom-nav button.active{color:var(--accent)}details{margin-top:10px;color:var(--muted);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:18px 20px}details[open]{padding-bottom:20px}summary{cursor:pointer;font-weight:600;color:var(--ink);font-size:.95rem;list-style:none;display:flex;align-items:center;justify-content:space-between}summary::-webkit-details-marker{display:none}summary:after{content:"";width:20px;height:20px;background:var(--muted);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;transition:transform .2s}details[open] summary:after{transform:rotate(180deg)}@media(min-width:500px){.app-shell,.workout-shell{padding-top:28px}.hero{padding:28px}}@media(max-width:560px){.metrics,.settings-grid{grid-template-columns:1fr}.log-box{grid-template-columns:1fr 1fr}.log-box .primary,.log-box .wide-field{grid-column:1/-1}.workout-head{flex-direction:column}.header-actions{width:100%}.header-actions button{flex:1 1}.exercise-tools{max-width:48%}.rest-dock{grid-template-columns:auto 1fr}.timer-actions{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr)}.timer-actions button{padding:9px 6px;font-size:.85rem}.choice-grid{grid-template-columns:1fr}}@media(max-width:380px){.chip-grid,.quick-grid,.toggle-grid{grid-template-columns:1fr}.bottom-nav button{font-size:.65rem;padding:6px 4px}.exercise-title{display:grid}.exercise-tools{max-width:none;justify-content:flex-start}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.route-back{display:inline-flex;align-items:center;min-height:48px;padding:11px 15px;border:1px solid var(--line);border-radius:11px;background:var(--surface);color:var(--accent);font-weight:600;text-decoration:none;font-size:.94rem}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.coaching-hero,.health-hero{background:linear-gradient(145deg,#fff,#fff7f2)}.coach-action-grid,.goal-grid,.habit-grid,.import-grid,.metric-card-grid,.source-card-grid,.trend-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.coach-action,.habit-card,.metric-card,.source-card,.trend-card{border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:15px}.coach-action strong,.metric-card strong,.trend-card strong{display:block;margin:6px 0;font-size:1.25rem;font-weight:650}.coach-action p,.metric-card p,.source-card p,.trend-card p{color:var(--muted);line-height:1.45;font-size:.92rem}.workout-heart-rate-card{margin-top:12px;background:var(--bg)}.status-badge{display:inline-flex;align-items:center;white-space:nowrap;border-radius:999px;padding:5px 10px;background:var(--bg);color:var(--muted);font-size:.7rem;font-weight:700;text-transform:capitalize}.status-current{background:var(--success-bg);color:var(--success)}.status-partial,.status-permission-required,.status-stale{background:var(--warning-bg);color:var(--warning)}.status-failed,.status-unavailable{background:var(--danger-bg);color:var(--danger)}.source-card{margin-top:10px}.source-card .button-row{margin-top:14px}.permission-scope{margin:12px 0}.permission-scope summary{min-height:44px;display:flex;align-items:center}.permission-scope fieldset{margin:8px 0 0;padding:0;border:0}.permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:6px;gap:6px}.permission-grid label{display:flex;align-items:center;gap:8px;min-height:42px;border:1px solid var(--line);border-radius:12px;background:var(--bg);padding:8px}.permission-grid input{width:20px;height:20px;flex:0 0 auto}.file-button{position:relative;min-height:82px;align-content:center;border:1px dashed #b9c0c9;border-radius:13px;background:#fafbfc;padding:15px;cursor:pointer}.file-button span{color:var(--muted);font-size:.92rem}.file-button input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.habit-card{display:grid;grid-gap:10px;gap:10px}.habit-toggle-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px;margin:12px 0 16px}.habit-toggle-grid button{min-height:48px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--muted);padding:10px;font-weight:650;font-size:.92rem}.habit-toggle-grid button.active{border-color:var(--accent);background:var(--accent-soft,#fff1ea);color:var(--accent);font-weight:650}.observation-detail{border-bottom:1px solid var(--line);padding:12px 0}.observation-detail summary{display:grid;grid-template-columns:1fr auto;grid-gap:4px;gap:4px;list-style-position:outside;font-size:.94rem}.observation-detail summary small{grid-column:1/-1;color:var(--muted);font-size:.88rem}.observation-detail dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px;margin:14px 0}.observation-detail dl div{min-width:0;border-radius:11px;background:var(--bg);padding:11px}.observation-detail dt{font-size:.78rem;font-weight:650;color:var(--muted)}.observation-detail dd{margin:4px 0 0;overflow-wrap:anywhere;font-size:.92rem}.coaching-page,.health-page{padding-bottom:48px}.coach-action{background:var(--bg)}.coach-action h3{margin:8px 0}.conversation-result{margin-top:14px;border:1px solid var(--line);border-radius:16px;background:var(--bg);padding:14px}.conversation-result dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px}.conversation-result dl div{border-radius:12px;background:#fff;padding:10px}.conversation-result dt{font-size:.75rem;color:var(--muted);font-weight:750}.conversation-result dd{margin:4px 0 0}.coach-explanation{white-space:pre-wrap;overflow-wrap:anywhere;border:1px solid var(--line);border-radius:12px;background:var(--bg);padding:14px;font:inherit;line-height:1.48;font-size:.92rem}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}@media(min-width:800px){.coach-action-grid,.goal-grid,.metric-card-grid,.trend-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:620px){.coach-action-grid,.goal-grid,.habit-grid,.import-grid,.metric-card-grid,.permission-grid,.source-card-grid,.trend-grid{grid-template-columns:1fr}.habit-toggle-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.section-heading{align-items:flex-start}.coaching-page>header,.health-page>header{align-items:center}.conversation-result dl,.observation-detail dl{grid-template-columns:1fr}}@media(max-width:380px){.route-back{padding:8px 10px;font-size:.85rem}.habit-toggle-grid{grid-template-columns:1fr}}