:root{--bg: #f3f6f8;--surface: #ffffff;--surface-soft: #eef2f4;--ink: #17181c;--muted: #697382;--line: #dde3ea;--brand: #003b36;--brand-deep: #003b36;--accent: #003b36;--accent-soft: #e4efed;--success: #22b15d;--danger: #f57d66;--shadow: 0 24px 50px rgba(19, 34, 55, .08)}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;font-family:Manrope,system-ui,sans-serif;background:var(--bg);color:var(--ink)}button,input{font:inherit}button{cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;border:0;box-shadow:none;background-image:none;-webkit-tap-highlight-color:transparent;color:inherit;text-decoration:none}#root{min-height:100vh}.app{max-width:30rem;margin:0 auto;padding:.9rem 1rem 10rem}main{display:flex;flex-direction:column;gap:1rem}.card-shell{background:#ffffffe0;border:1px solid #e7ecef;border-radius:1.7rem;box-shadow:0 12px 28px #1322370d}.eyebrow{font-size:.64rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.top-timer{position:sticky;top:0;z-index:50;padding:.9rem 0 .75rem}.top-timer-inner{padding:.85rem 1rem 1rem}.status-row,.loader-topline,.session-meta,.group-header,.group-header-side,.exercise-header,.exercise-subline,.timer-panel,.rest,.rest-main,.rest-controls,.log-row{display:flex;align-items:center}.status-row,.loader-topline,.session-meta,.group-header,.exercise-header,.log-row{justify-content:space-between}.top-reset-btn{display:inline-flex;align-items:center;gap:.38rem;padding:.55rem .8rem;border-radius:999px;background:#f2f5f6;color:var(--brand);font-size:.72rem;font-weight:800}.timer-display.hero{font-size:clamp(1.75rem,6vw,2.15rem);font-weight:500;line-height:1;text-align:center;letter-spacing:-.015em;margin:.35rem 0 .8rem;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-variant-numeric:tabular-nums}.segmented-progress{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem;margin-bottom:1rem}.segment{height:.36rem;border-radius:999px;background:#b8c9c7;opacity:.35;transition:.18s ease}.segment.active,.segment.done{opacity:1}.segment.active{background:var(--accent)}.timer-controls,.row,.switcher,.sets{display:flex;gap:.75rem}.timer-controls{justify-content:center}.pill-button,.icon-button,.row button,.set,.switcher-btn,.play-button,.ghost-button,.inline-button,.secondary,.big-btn{border-radius:999px;transition:transform .16s ease,background-color .16s ease,color .16s ease,border-color .16s ease;overflow:hidden;background-clip:padding-box}.pill-button,.row button,.switcher-btn,.play-button,.ghost-button,.inline-button{padding:.85rem 1rem;background:var(--surface-soft);color:var(--ink)}.with-icon,.icon-only{display:inline-flex;align-items:center;justify-content:center;gap:.6rem}.pill-button.primary,.big-btn,.switcher-btn.active{background:var(--brand);color:#fff}.icon-button{width:3rem;height:3rem;background:var(--brand-deep);color:#fff;padding:0}.loader,.sheet-selector{padding:1rem}.sheet-selector-row{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.75rem}.sheet-pill{padding:.7rem .95rem;border-radius:999px;background:#eef2f4;color:var(--ink);font-size:.78rem;font-weight:700}.sheet-pill.active{background:var(--brand);color:#fff}.loader label{display:block;margin:.8rem 0 .45rem;font-size:.78rem;font-weight:700}.loader-status,.session-copy,.group-overline,.group-meta,.exercise-notes,.log-subtle,.empty-subtle{color:var(--muted)}.loader input{width:100%;padding:.95rem 1rem;border-radius:1rem;border:1px solid var(--line);background:#fff}.row{margin-top:.8rem;flex-wrap:wrap}.row button{flex:1 1 30%;min-width:6rem}.error{margin-top:.8rem;color:#ae2d1f;font-size:.78rem}.session-summary{overflow:hidden}.part-banner{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;background:var(--brand);color:#fff;padding:1.15rem 1.15rem 1.5rem;border-radius:1.7rem 1.7rem 1rem 1rem}.part-banner-title{font-size:1.36rem;font-weight:800}.part-banner-chip,.group-chip,.active-pill,.log-pill{border-radius:999px;font-weight:800;white-space:nowrap}.part-banner-chip,.group-chip{background:#ffffff2e;color:inherit;padding:.55rem .95rem}.session-copy,.session-meta{padding:0 1.15rem}.session-copy{margin:1rem 0 .8rem;font-size:.85rem;line-height:1.55}.session-start-row{padding:0 1.15rem .95rem}.inline-start-btn{width:100%;padding:.95rem 1rem;border-radius:999px;background:var(--brand);color:#fff;font-size:.9rem;font-weight:800}.session-meta{padding-bottom:1rem;font-size:.78rem;font-weight:700}.exercise-list{display:flex;flex-direction:column;gap:1rem}.group{border-radius:1.7rem}.group.active{background:#ffffffeb;border:1px solid rgba(0,59,54,.15);box-shadow:0 12px 28px #1322370d}.group.inactive{background:#f8fafb;border:1px solid #e3e9ed}.group-header{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:.9rem;padding:1.1rem 1.15rem;text-align:left;background:transparent}.group-overline{font-size:.71rem;font-weight:700;margin-bottom:.24rem}.group-title{font-size:.94rem;line-height:1.24;font-weight:800;max-width:100%}.group-header-side{flex-direction:column;align-items:flex-end;gap:.45rem}.group-meta{font-size:.7rem;font-weight:700}.group.inactive .group-header{padding:.95rem 1rem}.group.inactive .group-title{font-size:.83rem}.group.inactive .group-chip{padding:.45rem .8rem;font-size:.7rem}.group.active .group-chip{background:#003b3614;color:var(--brand)}.group-body{padding:0 1rem 1rem}.switcher{padding:.35rem;background:#e8ecf0;border-radius:999px;margin-bottom:1rem}.switcher-btn{flex:1;text-align:center;font-weight:800;padding-block:.76rem;font-size:.85rem}.exercise-stack{display:flex;flex-direction:column;gap:1rem}.exercise-card{display:flex;flex-direction:column;gap:.95rem;padding:1rem;background:var(--surface);border:1px solid rgba(0,59,54,.18);border-radius:1.7rem;box-shadow:none}.exercise-card.done{border-color:#003b3659}.exercise-visual-row{width:100%}.exercise-visual{width:100%;min-height:10.2rem;border-radius:1.35rem;background:#dbe3e8;position:relative;overflow:hidden}.exercise-image{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.exercise-visual:after{content:"";position:absolute;inset:auto 1rem .85rem;height:.8rem;border-radius:999px;background:#6773822e}.exercise-step{position:absolute;left:.95rem;font-weight:800}.exercise-step{top:.9rem;font-size:.8rem;color:var(--brand-deep)}.exercise-content{min-width:0}.exercise-header{gap:.75rem;align-items:flex-start;margin-bottom:.8rem}.exercise-header h3,.log-name{margin:0;font-size:1.06rem;line-height:1.2;font-weight:800}.exercise-subline{flex-wrap:wrap;gap:.5rem .85rem;font-size:.81rem;font-weight:700;margin-top:.5rem;color:#7d8793}.exercise-notes{margin:.55rem 0 0;font-size:.78rem;line-height:1.45}.active-pill{padding:.45rem .8rem;background:var(--brand);color:#fff}.sets{flex-wrap:wrap;margin-bottom:.9rem}.set{width:3rem;height:3rem;background:#fff;border:1px solid var(--line);font-weight:800}.set.done{background:var(--brand);color:#fff;border-color:var(--brand)}.set:disabled,.play-button:disabled,.ghost-button:disabled,.inline-button:disabled,.inline-start-btn:disabled{opacity:.45;cursor:not-allowed}.timer-panel{gap:.65rem;margin-bottom:.9rem;padding:.35rem;border:1px solid #e7edf2;border-radius:1.1rem;background:#fbfdff}.play-button{background:var(--brand);color:#fff;min-width:5.1rem}.ghost-button{background:transparent;color:var(--brand)}.time-display{flex:1;text-align:center;font-size:.98rem;font-weight:600;letter-spacing:-.015em;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-variant-numeric:tabular-nums}.rest{justify-content:space-between;gap:.8rem;padding:.8rem .9rem;border:1px solid #e7edf2;border-radius:1.1rem;background:#fdfefe}.rest.warning{background:var(--accent-soft);border-color:#ff930059}.rest-main{gap:.55rem}.rest-label{font-size:.75rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.rest-time{font-size:.85rem;font-weight:600;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-variant-numeric:tabular-nums}.rest-controls{gap:.55rem}.inline-button{padding:.65rem .9rem}.inline-button.reset{background:transparent;color:var(--brand)}.icon-only{width:2.9rem;min-width:2.9rem;height:2.9rem;padding:0}.play-button.icon-only{background:var(--brand);color:#fff}.play-button.icon-only.is-running,.inline-button.icon-only{background:#f1f5f8;color:var(--brand)}.shared-rest{margin-top:.15rem;background:#fff}.log-panel{display:flex;flex-direction:column;gap:.8rem}.log-row{gap:1rem;padding:1rem;background:#ffffffeb;border-radius:1.15rem;border:1px solid rgba(221,227,234,.9)}.log-subtle{margin-top:.35rem;font-size:.78rem}.log-checks{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.45rem}.log-check{width:1.35rem;height:1.35rem;border-radius:.35rem;border:1.5px solid #c9d5d3;background:#fff;flex:0 0 auto}.log-check.is-checked{background:var(--brand);border-color:var(--brand);position:relative}.log-check.is-checked:after{content:"";position:absolute;top:.22rem;right:.38rem;bottom:.3rem;left:.34rem;border-right:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(45deg)}.session-summary.complete .part-banner{background:var(--brand)}.empty-state{padding:1.25rem}.empty-state p{margin:0;line-height:1.55}.empty-subtle{margin-top:.6rem!important;font-size:.81rem}.bottom-controls{position:fixed;left:0;right:0;bottom:1rem;display:flex;justify-content:center;z-index:60;pointer-events:none}.controls-inner{width:min(30rem,calc(100vw - 1.5rem));display:flex;flex-direction:column;gap:.75rem;pointer-events:auto}.big-btn,.secondary{padding:1.2rem 1.4rem;font-size:.98rem;font-weight:800}.secondary{background:#fffffffa;color:var(--ink);border:1.5px solid rgba(0,59,54,.2)}.big-btn:disabled,.secondary:disabled{opacity:.45;cursor:not-allowed}.pill-button:hover,.icon-button:hover,.row button:hover,.switcher-btn:hover,.play-button:hover,.ghost-button:hover,.inline-button:hover,.secondary:hover,.big-btn:hover,.set:hover{transform:translateY(-1px)}@media (min-width: 40rem){.app{max-width:34rem}.controls-inner{width:min(34rem,calc(100vw - 2rem))}}@media (max-width: 30rem){.exercise-visual{min-height:8.5rem}.exercise-header,.group-header,.session-meta{align-items:flex-start}.group-header,.session-meta{flex-direction:column}.group-header-side{align-items:flex-start}.timer-panel,.rest{flex-direction:row;align-items:center}}.summary-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:#f3f6f8eb;overflow-y:auto;padding:1rem}.summary-modal{max-width:30rem;margin:0 auto;min-height:calc(100vh - 2rem);background:#fff;border-radius:2rem;padding:1.3rem 1.2rem 2rem;box-shadow:0 18px 40px #1322371a}.summary-modal-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:2.6rem}.summary-icon-button{width:2.8rem;height:2.8rem;border-radius:999px;background:transparent;color:var(--ink);font-size:1.4rem}.summary-title{margin:0;font-size:2rem;line-height:1.1;letter-spacing:-.03em}.summary-subtitle{margin:.55rem 0 0;color:var(--muted);font-size:.95rem}.summary-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-bottom:1.8rem}.summary-stat-label{display:block;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:.78rem;font-weight:800;margin-bottom:.35rem}.summary-stat-value{font-size:2rem;letter-spacing:-.04em;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace}.summary-description-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.summary-copy-btn{display:inline-flex;align-items:center;gap:.45rem;padding:.7rem .9rem;border-radius:999px;background:#f2f5f6;color:var(--brand);font-size:.82rem;font-weight:800}.summary-description-title{font-size:1.1rem;font-weight:800}.summary-description-group{margin-bottom:1.3rem}.summary-description-group p{margin:0 0 .28rem;font-size:.95rem;line-height:1.5}.confirm-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:95;background:#17181c47;display:flex;align-items:center;justify-content:center;padding:1rem}.confirm-dialog{width:min(26rem,100%);background:#fff;border-radius:1.5rem;padding:1.2rem;box-shadow:0 18px 40px #1322371f}.confirm-dialog-title{margin:0;font-size:1.1rem;font-weight:800}.confirm-dialog-message{margin:.6rem 0 0;color:var(--muted);font-size:.88rem;line-height:1.5}.confirm-dialog-actions{display:flex;gap:.75rem;margin-top:1rem}.confirm-dialog-btn{flex:1;padding:.9rem 1rem;border-radius:999px;font-weight:800}.confirm-dialog-btn.secondary{background:#f2f5f6;color:var(--ink)}.confirm-dialog-btn.danger{background:var(--brand);color:#fff}
