:root{--bg: #f3f4f1;--bg-accent: #ecece7;--surface: #fffefa;--surface-soft: #f4f5f1;--ink: #1b1d1b;--ink-subtle: #596059;--line: #d7d9d2;--primary: #2d6d57;--primary-strong: #1f4f3f;--danger: #b54040;--shadow: 0 12px 28px rgba(16, 23, 17, .08);color-scheme:light dark;font-family:Inter,Avenir Next,Nunito Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--rest: #536bcd;--active: #de6363}@media(prefers-color-scheme:dark){:root{--bg: #101412;--bg-accent: #151c18;--surface: #1a231f;--surface-soft: #212d27;--ink: #f0f3ef;--ink-subtle: #a4b1aa;--line: #2d3a34;--primary: #63b290;--primary-strong: #4e9175;--danger: #de6363;--shadow: 0 16px 30px rgba(0, 0, 0, .35)}}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;color:var(--ink);background:radial-gradient(circle at 0% -20%,var(--bg-accent) 0%,transparent 45%),var(--bg)}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;background:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.app-shell{max-width:34rem;margin:0 auto;padding:calc(env(safe-area-inset-top) + 1rem) 1rem calc(env(safe-area-inset-bottom) + 5.5rem)}.global-timer-shell{max-width:34rem;margin:0 auto;padding:calc(env(safe-area-inset-top) + .4rem) 1rem 0;position:sticky;top:10px;z-index:10}.db-warning-banner{background:#b5404024;border:1px solid rgba(181,64,64,.5);color:var(--danger);border-radius:.85rem;padding:.7rem .8rem;font-size:.86rem;line-height:1.35;margin-bottom:1rem}.app-header{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin:1rem 0}.app-header-with-back{flex-direction:column;align-items:stretch;gap:.3rem}.app-header-back{display:flex;align-items:center}.app-header-back a{display:inline-flex;align-items:center;gap:.25rem;color:var(--primary-strong);font-size:.9rem;font-weight:500;text-decoration:none}.app-header h1{margin:0;font-size:1.6rem;letter-spacing:-.02em;min-width:0;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-header-title{max-width:100%;min-width:0}.app-content{display:flex;flex-direction:column;gap:.85rem}.back-link{color:var(--primary-strong);font-weight:600}.timer-panel{background:var(--surface);border:1px solid var(--line);border-radius:.9rem;padding:.8rem;box-shadow:var(--shadow);transition:background-color .22s ease,border-color .22s ease,box-shadow .22s ease}.timer-panel-link{display:block;cursor:pointer}.timer-panel.active{background-color:#291f1d;border:1px solid var(--active)}.timer-panel.rest{background-color:#1f273a;border:1px solid var(--rest)}.timer-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.timer-label{display:block;font-size:.7rem;color:var(--ink-subtle);text-transform:uppercase;letter-spacing:.05em}.timer-label.active{color:var(--active)}.timer-label.rest{color:var(--rest)}.timer-grid strong{font-size:1.2rem}.timer-activity-name{margin:.5rem 0 0;color:var(--ink);font-size:.85rem;display:inline-flex;align-items:center;gap:.45rem}.session-active-panel{display:grid;gap:.7rem}.bottom-action-spacer{height:2rem;flex-shrink:0}.bottom-action-spacer.bottom-action-spacer-double{height:4rem}.bottom-action-dock{position:fixed;left:50%;bottom:0;transform:translate(-50%);width:100%;padding:.7rem;background:color-mix(in srgb,var(--bg) 66%,var(--surface));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow);display:grid;gap:.55rem;z-index:20;filter:drop-shadow(0 8px 16px rgba(16,23,17,.2))}.bottom-action-dock>.primary-btn,.bottom-action-dock>.hold-confirm-btn{width:100%;padding:1rem}.finish-workout-btn,.primary-btn{border:none;border-radius:.8rem;background:var(--primary-strong);color:#fff;font:inherit;font-weight:600;padding:.75rem 1rem}.finish-workout-btn{background:var(--danger)}.hold-confirm-btn{position:relative;overflow:hidden;border:1px solid color-mix(in srgb,var(--danger) 70%,var(--line));border-radius:.8rem;background:var(--danger);color:#fff;font:inherit;font-weight:600;padding:.75rem 1rem;transition:background-color .2s ease,color .12s ease,border-color .12s ease;cursor:pointer;touch-action:none}.hold-confirm-btn.is-holding{background-color:transparent;color:var(--ink);border-color:var(--danger)}.hold-confirm-btn:disabled{opacity:1;cursor:not-allowed;background:var(--line);border-color:var(--line);color:var(--ink-subtle)}.hold-confirm-fill{position:absolute;inset:0;width:var(--hold-progress, 0%);background-color:color-mix(in srgb,var(--danger) 88%,white 6%);transition:width var(--hold-transition, 0ms) linear;z-index:0}.hold-confirm-content{position:relative;z-index:1;display:flex;align-items:center;justify-content:center}.finish-set-btn{background:#c5792a}.predicted-next-action-btn{transition:background-color .18s ease,border-color .18s ease,color .18s ease,transform .18s ease}.predicted-next-action-btn.predicted-next-action-btn-emphasis{background:color-mix(in srgb,var(--primary) 66%,var(--primary-strong));transform:translateY(-1px)}.predicted-next-action-btn.predicted-next-action-btn-muted{background:color-mix(in srgb,var(--line) 32%,var(--primary-strong))}.muted-btn{opacity:.8}.primary-btn:disabled{opacity:1;cursor:not-allowed;background:var(--line);color:var(--ink-subtle)}.session-list,.activity-list,.suggestion-list{margin:0;padding:0;list-style:none}.session-list,.activity-list,.suggestion-list{display:grid;gap:.7rem}.session-card{background:var(--surface);border:1px solid var(--line);border-radius:1rem;padding:.95rem;display:flex;align-items:center;justify-content:space-between;gap:.8rem;box-shadow:var(--shadow);width:100%;min-width:0}.session-list-skeleton{pointer-events:none}.session-card-skeleton{position:relative;overflow:hidden}.session-card-skeleton:after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 0%,color-mix(in srgb,var(--surface) 70%,white 30%) 45%,transparent 100%);transform:translate(-100%);animation:skeleton-shimmer 1.4s ease-in-out infinite}.skeleton-line{display:block;border-radius:999px;background:color-mix(in srgb,var(--line) 70%,var(--surface) 30%)}.skeleton-line-title{width:min(11rem,70%);height:1rem}.skeleton-line-subtitle{width:min(15rem,90%);height:.82rem;margin-top:.56rem}.session-card-chevron-skeleton{width:.8rem;height:1.2rem;border-radius:999px;background:color-mix(in srgb,var(--line) 80%,var(--surface) 20%)}.session-rest-skeleton{justify-content:center}.skeleton-line-rest{width:5.8rem;height:.7rem}.session-list li.session-rest{background:transparent;border:none;padding:.15rem .75rem;font-size:.75rem;color:var(--ink-subtle);display:flex;justify-content:center}.create-session-card{border:2px dashed color-mix(in srgb,var(--primary) 60%,var(--line));background:var(--surface-soft);box-shadow:none;color:var(--primary-strong);justify-content:flex-start;gap:.75rem;font-weight:600;text-align:left}.create-session-card:disabled{opacity:.6;cursor:wait}.create-session-plus{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:999px;background:linear-gradient(180deg,var(--primary) 0%,var(--primary-strong) 100%);color:#fff;font-size:1.4rem;line-height:1;flex:0 0 auto}.create-session-text{font-size:1.02rem}.in-progress-item{position:relative;overflow:hidden;border-color:#de636373}.in-progress-item:after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 0%,rgba(83,107,205,.12) 32%,rgba(222,99,99,.22) 50%,rgba(83,107,205,.12) 68%,transparent 100%);transform:translate(-100%);animation:progress-sweep 2.4s ease-in-out infinite}.in-progress-item>*{position:relative;z-index:1}.session-card-main h2{margin:0;font-size:1.05rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-card-main p{margin:.35rem 0 0;color:var(--ink-subtle);font-size:.88rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-card-main{flex:1 1 auto;min-width:0}.session-card-chevron{flex:0 0 auto}.session-card-chevron{color:var(--ink-subtle);font-size:1.6rem;line-height:1}.activity-preview-line{display:inline-flex;align-items:center;gap:.45rem;max-width:100%}.activity-name-with-dot{display:inline-flex;align-items:center;gap:.45rem;min-width:0;flex:1 1 auto;overflow:hidden}.activity-name-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-notes{width:100%;text-align:left;padding:0;margin:0;border:none;background:transparent;color:var(--ink-subtle);font-size:.92rem;line-height:1.35rem;cursor:pointer;white-space:pre-wrap;overflow:hidden;display:-webkit-box;line-clamp:1;-webkit-line-clamp:1;-webkit-box-orient:vertical}.activity-notes.expanded{display:block;line-clamp:unset;-webkit-line-clamp:unset;max-height:8rem;overflow:auto}.activity-color-dot{width:.56rem;height:.56rem;border-radius:999px;background:var(--activity-dot-color, var(--primary));flex:0 0 auto}.activity-color-dot-large{width:.66rem;height:.66rem}.activity-list li{background:var(--surface);border:1px solid var(--line);border-radius:.85rem;min-width:0;overflow:hidden}.activity-list a{padding:.75rem .8rem;display:flex;align-items:center;justify-content:space-between;gap:.8rem;width:100%;min-width:0;overflow:hidden}.activity-list small{color:var(--ink-subtle);font-size:.8rem;white-space:nowrap;flex-shrink:0}.activity-suggestion-item{background:transparent!important;border:none!important}.activity-suggestion-item-first{margin-top:.5rem}.activity-suggestion-btn{width:100%;border:2px dashed var(--line);background:transparent;border-radius:.85rem;padding:.8rem;text-align:left;display:flex;justify-content:space-between;align-items:center;gap:1rem;color:var(--ink)}.activity-suggestion-btn small{color:var(--ink-subtle);white-space:nowrap;flex-shrink:0}.activity-add-item{background:var(--surface-soft)!important;border:2px dashed color-mix(in srgb,var(--primary) 55%,var(--line))!important}.activity-add-item-spaced{margin-top:.35rem}.activity-add-btn{width:100%;border:none;background:transparent;padding:.8rem;text-align:left;color:var(--primary-strong);font:inherit;font-weight:600;display:flex;align-items:center;gap:.75rem}.activity-add-plus{max-width:100%;display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:999px;background:linear-gradient(180deg,var(--primary) 0%,var(--primary-strong) 100%);color:#fff;font-size:1.35rem;line-height:1;flex:0 0 auto}.activity-add-text{font-size:1.02rem}.suggestion-list li{min-width:0;overflow:hidden}.empty-state{background:var(--surface);min-width:0;overflow:hidden;border-radius:1rem;border:1px dashed var(--line);padding:1.1rem}.empty-state h2{margin:0;font-size:1.05rem}.empty-state p,.empty-inline{margin:.4rem 0 0;color:var(--ink-subtle)}.error-text{margin:.4rem 0 0;color:var(--danger);font-weight:600}.floating-button{position:fixed;right:max(1rem,env(safe-area-inset-right));bottom:calc(env(safe-area-inset-bottom) + 1.15rem);border:none;border-radius:999px;background:linear-gradient(180deg,var(--primary) 0%,var(--primary-strong) 100%);color:#fff;font-size:2rem;width:3.4rem;height:3.4rem;line-height:1;box-shadow:0 14px 22px #12362b6b}.input-label{color:var(--ink-subtle);font-size:.87rem;font-weight:600}.input-large,.notes-input{width:100%;border:1px solid var(--line);border-radius:.85rem;padding:.8rem .85rem;background:var(--surface);color:var(--ink);font:inherit}.suggestion-btn{width:100%;border:1px solid var(--line);background:var(--surface);border-radius:.85rem;padding:.8rem;text-align:left;display:flex;justify-content:space-between;align-items:center;gap:1rem;color:var(--ink);min-width:0;overflow:hidden}.suggestion-btn small{color:var(--ink-subtle);white-space:nowrap;flex-shrink:0}.activity-status-card{background:var(--surface);border:1px solid var(--line);border-radius:.9rem;padding:.8rem;display:flex;justify-content:space-between;align-items:center}.activity-status-card span{color:var(--ink-subtle);font-size:1.2rem}.activity-status-card strong{font-size:1.45rem}.metric-grid{display:grid;gap:.7rem;grid-template-rows:1fr 1fr}.metric-card{background:var(--surface);border:1px solid var(--line);border-radius:.9rem;padding:.7rem;display:grid;gap:.4rem}.metric-card span{color:var(--ink-subtle);font-size:.82rem}.metric-card-header-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.metric-card-action-btn{border:1px solid var(--line);border-radius:.6rem;background:var(--surface-soft);color:var(--ink);font-size:.72rem;font-weight:600;padding:.3rem .55rem}.target-reps-card strong{font-size:1.1rem;font-weight:600;color:var(--ink)}@keyframes progress-sweep{0%{transform:translate(-100%)}55%{transform:translate(100%)}to{transform:translate(100%)}}@keyframes skeleton-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@media(prefers-reduced-motion:reduce){.session-card-skeleton:after{animation:none}}.activity-actions{display:grid;grid-template-rows:1fr 1fr;gap:.6rem}.activity-actions.single-column{grid-template-rows:1fr 1fr}.set-list-section{display:grid;gap:.5rem}.set-list-history{display:grid;gap:1rem}.set-list-header{margin:.4rem 0 .2rem;font-size:.95rem;color:var(--ink);font-weight:600}.history-link{color:var(--primary-strong);font-size:.85rem;font-weight:600;text-decoration:none;text-align:center;display:block;margin-top:10px}.history-link:focus-visible,.history-link:hover{text-decoration:underline}.set-list{margin:0;padding:0;list-style:none;display:grid}.set-list li.set-item{background:var(--surface);border-radius:.75rem;padding:.5rem .75rem;display:grid;gap:.35rem}.set-list li.set-item.clickable-set-item{cursor:pointer}.set-meta{display:flex;justify-content:space-between;gap:.75rem}.set-effort{margin-right:.1rem}.set-notes{color:var(--ink-subtle);font-size:.8rem;line-height:1.2rem;white-space:pre-wrap;overflow:hidden;display:-webkit-box;line-clamp:1;-webkit-line-clamp:1;-webkit-box-orient:vertical}.set-notes.expanded{display:block;line-clamp:unset;-webkit-line-clamp:unset;max-height:6rem;overflow:auto}.set-list li.set-rest{background:transparent;border:none;padding:.15rem .75rem;font-size:.75rem;color:var(--ink-subtle);display:flex;justify-content:center}.set-list small{color:var(--ink-subtle)}.toast{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom) + 5.6rem);transform:translate(-50%);background:#343635e6;color:#fff;border-radius:999px;padding:.5rem 1.2rem;font-size:.82rem;z-index:20;-webkit-user-select:none;user-select:none;pointer-events:none}.target-hint{margin:0;color:var(--ink-subtle);font-size:.88rem}.modal-backdrop{position:fixed;inset:0;background:color-mix(in srgb,var(--bg) 80%,black 4%);display:flex;align-items:center;justify-content:center;padding:1rem;z-index:30;animation:backdrop-fade-in .2s ease}@keyframes backdrop-fade-in{0%{background:transparent}to{background:color-mix(in srgb,var(--bg) 80%,black 4%)}}.set-modal{width:min(34rem,100%);background:var(--surface);border:1px solid var(--line);border-radius:1rem;padding:1rem;box-shadow:var(--shadow);display:grid;gap:.75rem;animation:modal-slide-up .2s ease}@keyframes modal-slide-up{0%{opacity:0;transform:translateY(2rem)}to{opacity:1;transform:translateY(0)}}.set-modal h2{margin:0;font-size:1.2rem}.weight-calculator-modal{max-height:min(90vh,52rem);overflow-y:auto}.weight-calculator-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.weight-calculator-close{border:1px solid var(--line);border-radius:.6rem;background:var(--surface-soft);color:var(--ink);font-size:.86rem;font-weight:600;padding:.45rem .6rem}.weight-calculator-grid{display:grid;gap:.55rem}.slot-option-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}.slot-option-pill{border:1px solid var(--line);border-radius:.75rem;background:var(--surface-soft);padding:.55rem .5rem;display:flex;align-items:center;justify-content:center;gap:.45rem;font-size:.9rem;font-weight:600}.slot-option-pill input{margin:0;display:none}.slot-option-pill.selected{border-color:var(--primary-strong);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--primary) 50%,transparent)}.weight-toggle-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem}.weight-toggle-btn{border:1px solid var(--line);border-radius:.7rem;background:var(--surface-soft);color:var(--ink-subtle);font-size:.85rem;font-weight:600;padding:.5rem .45rem}.weight-toggle-btn.selected{border-color:color-mix(in srgb,var(--primary) 55%,var(--line));color:var(--ink);background:color-mix(in srgb,var(--primary) 16%,var(--surface))}.calculator-warning-card{margin:0;border:1px solid #d1a100;border-radius:.8rem;background:color-mix(in srgb,#d1a100 16%,var(--surface));padding:.6rem .7rem;color:#a97a00;font-size:.82rem;display:inline-flex;align-items:center;gap:.35rem}.slot-visual-list{display:grid;gap:.6rem}.slot-visual-card{border:1px solid var(--line);border-radius:.85rem;background:var(--surface);padding:.65rem;display:grid;gap:.45rem}.slot-visual-meta{display:flex;justify-content:space-between;align-items:baseline;gap:.6rem}.slot-visual-meta strong{font-size:.92rem}.slot-visual-meta span{color:var(--ink-subtle);font-size:.78rem}.slot-visual-row{display:flex;align-items:center;gap:.55rem;overflow-x:auto;padding-bottom:.2rem}.slot-visual-bar{width:.34rem;height:1.8rem;border-radius:999px;background:color-mix(in srgb,var(--ink) 20%,var(--line));flex:0 0 auto}.slot-plate-stack{display:flex;align-items:center;gap:.3rem;min-height:1.9rem;flex-wrap:wrap}.slot-plate{border:1px solid var(--line);border-radius:.45rem;background:color-mix(in srgb,var(--primary) 25%,var(--surface));color:var(--ink);font-size:.7rem;font-weight:700;padding:.32rem .25rem;text-align:center;line-height:1;flex:0 0 auto}.slot-plate-empty{color:var(--ink-subtle);font-size:.8rem}.feel-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem}.feel-pill{border:1px solid var(--line);border-radius:.75rem;background:var(--surface-soft);color:var(--ink);padding:.55rem .4rem;display:grid;gap:.2rem;justify-items:center}.feel-pill.selected{border-color:var(--primary-strong);background:color-mix(in srgb,var(--primary) 16%,var(--surface))}.feel-pill small{font-size:.72rem}.modal-actions{display:grid;grid-template-columns:1fr;gap:.6rem}.warning-input-wrap{position:relative}.warning-indicator{position:absolute;right:.7rem;top:50%;transform:translateY(-50%);font-size:1rem;pointer-events:none;color:#b38300}.error-indicator{position:absolute;right:.7rem;top:50%;transform:translateY(-50%);font-size:1rem;pointer-events:none;color:#c43d3d}.warning-input{border-color:#d1a100;box-shadow:inset 0 0 0 1px #d1a1008c;padding-right:2rem}.error-input{border-color:#c43d3d;box-shadow:inset 0 0 0 1px #c43d3d73;padding-right:2rem}.warning-hold-btn{border-color:#d1a100;background:#f0cf61;color:#3f3400}.warning-hold-btn .hold-confirm-fill{background-color:#d8b44a}.session-meta{margin:0;color:var(--ink-subtle);font-size:.87rem}.session-meta-secondary{margin-top:.2rem}.workout-summary-card{background:var(--surface);border:1px solid var(--line);border-radius:.9rem;box-shadow:var(--shadow);padding:.85rem;display:grid;gap:.7rem}.workout-summary-card h2{margin:0;font-size:.96rem}.workout-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem}.workout-summary-grid span{display:block;font-size:.74rem;color:var(--ink-subtle);text-transform:uppercase;letter-spacing:.04em}.workout-summary-grid strong{font-size:1.08rem}.icon-action-btn{width:2.4rem;height:2.4rem;border-radius:999px;border:1px solid var(--line);background:var(--surface);display:inline-flex;align-items:center;justify-content:center;color:var(--ink-subtle);box-shadow:var(--shadow)}.icon-action-btn svg{width:1.2rem;height:1.2rem}.settings-category-list{margin:0;padding:0;list-style:none;display:grid;gap:.7rem}.settings-category-card{display:grid;gap:.35rem;background:var(--surface);border:1px solid var(--line);border-radius:1rem;box-shadow:var(--shadow);padding:.9rem}.settings-category-card strong{font-size:1rem}.settings-category-card p{margin:0;color:var(--ink-subtle);font-size:.9rem}.settings-section-card{background:var(--surface);border:1px solid var(--line);border-radius:1rem;box-shadow:var(--shadow);padding:.9rem;display:grid;gap:.7rem}.settings-section-card h2{margin:0;font-size:1rem}.settings-form-card{gap:.6rem}.settings-form-card textarea{resize:vertical}.settings-section-danger{border-color:color-mix(in srgb,var(--danger) 45%,var(--line))}.settings-help-text{margin:0;color:var(--ink-subtle);font-size:.9rem}.settings-actions-grid{display:grid;gap:.55rem}.file-upload-btn{position:relative;display:inline-flex;align-items:center;justify-content:center}.file-upload-btn input{position:absolute;opacity:0;pointer-events:none}.danger-btn{border:none;border-radius:.8rem;background:var(--danger);color:#fff;font:inherit;font-weight:600;padding:.75rem 1rem}.settings-status-text{margin:0;color:var(--primary-strong);font-weight:600}@media(min-width:700px){.app-shell{padding-left:1.25rem;padding-right:1.25rem}.bottom-action-dock{width:min(34rem,calc(100vw - 2.5rem))}.floating-button{right:calc(50% - 16rem)}}
