:root{--app-header-height: 3.8125rem;--app-header-gap: .25rem;--app-header-offset: calc(var(--app-header-height) + var(--app-header-gap));--color-bg: #000;--color-surface: #0a0a0a;--color-surface-hover: #141414;--color-text: #e0e0e0;--color-text-muted: #666;--color-primary: #00e5ff;--color-accent: #ff2d7b;--color-warmup: #ffab40;--color-work: #00e676;--color-backoff: #d500f9;--color-joker: #ffea00;--color-completed: #00e676;--color-danger: #ff1744;--color-border: #1a1a1a;--color-border-glow: #00e5ff;--color-surface-alt: #111;--color-weekday: #00e5ff;--color-weekend: #ff2d7b;--color-month-tag-strength: #ffab40;--radius: 12px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%}body{font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:var(--color-bg);color:var(--color-text);line-height:1.5;min-height:100dvh}#root{max-width:600px;margin:0 auto;padding:0 .75rem}.workout-select{text-align:center;padding-bottom:30vh}.banner{display:flex;flex-direction:column;align-items:center;gap:0;margin-bottom:1.5rem}.banner-logo{flex-shrink:0}.banner-title{font-size:2rem;font-weight:700;letter-spacing:.35em;text-indent:.35em;color:var(--color-primary)}.banner-rule{width:6rem;height:2px;background:linear-gradient(90deg,transparent,var(--color-primary),transparent);opacity:.5}.motivational-quote{text-align:center;margin-top:5rem;margin-bottom:5rem}.quote-text{font-family:Pacifico,cursive;font-size:1.15rem;line-height:1.6;color:var(--color-accent);text-shadow:0 0 5px color-mix(in srgb,var(--color-accent) 85%,transparent),0 0 16px color-mix(in srgb,var(--color-accent) 65%,transparent),0 0 36px color-mix(in srgb,var(--color-accent) 35%,transparent),0 0 55px color-mix(in srgb,var(--color-accent) 20%,transparent)}.app-title{font-size:2rem;font-weight:700;margin-bottom:.25rem}.subtitle{color:var(--color-text-muted);margin-bottom:1.5rem}.todays-plan{margin-top:6rem;margin-bottom:12rem}.today-card-row{display:flex;align-items:center;gap:.5rem}.today-card-row .workout-card{flex:1}.workout-list{display:flex;flex-direction:column;gap:.75rem}.workout-card{display:flex;align-items:center;gap:1rem;padding:.5rem 1rem;background:var(--color-bg);border:1px solid var(--color-border-glow);border-radius:var(--radius);color:var(--color-text);text-align:left;cursor:pointer;font-size:1rem;transition:background .15s;min-height:64px}.workout-card:active{background:var(--color-surface-hover)}.workout-card-done{border-color:var(--color-completed)}.lift-badge{display:flex;align-items:center;justify-content:center;width:3rem;height:3rem;border-radius:50%;flex-shrink:0;object-fit:contain}.workout-name{font-weight:500}.strength-badge{display:flex;align-items:center;justify-content:center;width:3rem;height:3rem;border-radius:50%;flex-shrink:0;background:#00e5ff1f;color:var(--color-primary)}.workout-view{padding-bottom:1rem}.workout-header{display:flex;flex-direction:column;position:sticky;top:0;background:var(--color-bg);z-index:10}.workout-header-row{display:flex;align-items:center;gap:.75rem;padding:1rem 0 .5rem}.workout-header-timer{height:1.5rem;display:flex;align-items:center;justify-content:center}.btn-back{display:flex;align-items:center;gap:.25rem;background:none;border:none;color:var(--color-text-muted);font-size:1rem;cursor:pointer;padding:.5rem;min-width:44px;min-height:44px}.workout-title{flex:1;font-size:1.125rem;font-weight:600}.progress-badge{background:var(--color-surface);padding:.25rem .625rem;border-radius:999px;font-size:.875rem;color:var(--color-text-muted);white-space:nowrap}.exercise-card{margin-bottom:1.5rem}.exercise-name{font-size:1rem;font-weight:600;padding:.5rem 0;border-bottom:1px solid var(--color-border);margin-bottom:.5rem;display:flex;align-items:center;gap:.5rem}.role-tag{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:.15rem .4rem;border-radius:4px;white-space:nowrap;margin-left:auto}.role-primary{background:#333;color:#aaa}.role-secondary{background:#282828;color:#888}.role-assistance{background:#1e1e1e;color:#666}.rest-timer{font-family:Courier New,Consolas,monospace;font-size:.9rem;font-weight:700;letter-spacing:.08em;color:var(--color-accent);white-space:nowrap}.sets-list{display:flex;flex-direction:column;gap:.375rem}.set-row{display:flex;flex-wrap:wrap;align-items:center;gap:.375rem;padding:.5rem .375rem;background:var(--color-surface);border-radius:8px;border:1px solid transparent;transition:background .15s,border-color .15s}.set-row.set-completed{background:#00e6761f;border-color:var(--color-completed)}.set-checkbox{display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-right:5px}.set-checkbox input[type=checkbox]{width:1.25rem;height:1.25rem;accent-color:var(--color-completed);cursor:pointer}.set-type{font-size:.5625rem;font-weight:600;text-transform:uppercase;padding:.125rem .3rem;border-radius:999px;white-space:nowrap;text-align:center}.set-type-warmup{background:#ffab4026;color:var(--color-warmup)}.set-type-work{background:#00e67626;color:var(--color-work)}.set-type-backoff{background:#d500f926;color:var(--color-backoff)}.set-type-joker{background:#ffea0026;color:var(--color-joker)}.set-type-select{font-size:.5625rem;font-weight:600;text-transform:uppercase;text-align:center;text-align-last:center;padding:.2rem .25rem;border-radius:6px;white-space:nowrap;border:none;cursor:pointer;min-height:32px;min-width:4rem;flex-shrink:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.set-type-select.set-type-warmup{background-color:#ffab4026;color:var(--color-warmup)}.set-type-select.set-type-work{background-color:#00e67626;color:var(--color-work)}.set-type-select.set-type-backoff{background-color:#d500f926;color:var(--color-backoff)}.set-type-select.set-type-joker{background-color:#ffea0026;color:var(--color-joker)}.set-fields{display:flex;align-items:center;gap:.25rem;margin-left:auto}.field-group{display:flex;flex-direction:column;align-items:center}.field-label{font-size:.625rem;text-transform:uppercase;color:var(--color-text-muted);line-height:1}.field-input{width:3rem;padding:.25rem .125rem;text-align:center;font-size:.9rem;font-weight:600;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg);color:var(--color-text);-moz-appearance:textfield}.field-input::-webkit-outer-spin-button,.field-input::-webkit-inner-spin-button{-webkit-appearance:none}.field-separator{color:var(--color-text-muted);font-size:.875rem;padding:.75rem .125rem 0}.rep-stepper{display:flex;flex-direction:row;align-items:center;gap:2px}.rep-stepper-btn{display:flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;padding:0;font-size:.875rem;font-weight:600;line-height:1;color:var(--color-text-muted);background:var(--color-bg);border:1px solid var(--color-border);border-radius:4px;cursor:pointer;-webkit-tap-highlight-color:transparent}.rep-stepper-btn:active{background:var(--color-surface-hover);color:var(--color-text)}.set-comment{flex-basis:100%;font-size:.75rem;color:var(--color-text-muted);font-style:italic;padding-left:2rem;margin:0}.set-previous{font-size:.6875rem;color:var(--color-text-muted);white-space:nowrap;padding-top:.75rem;margin-right:.5rem}.btn-add-set{display:flex;align-items:center;justify-content:center;gap:.25rem;width:100%;min-height:44px;padding:.5rem;font-size:.875rem;font-weight:600;color:var(--color-text-muted);background:transparent;border:1px dashed var(--color-border);border-radius:8px;cursor:pointer}.btn-add-set:active{background:var(--color-surface)}.btn-add-exercise{display:flex;align-items:center;justify-content:center;gap:.25rem;width:100%;min-height:48px;padding:.75rem;margin-top:.5rem;font-size:.9375rem;font-weight:600;color:var(--color-primary);background:transparent;border:1px dashed var(--color-primary);border-radius:var(--radius);cursor:pointer}.btn-add-exercise:active{background:var(--color-surface)}.exercise-picker-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:flex-end;justify-content:center;background:#000000b3}.exercise-picker{width:100%;max-width:480px;max-height:70vh;display:flex;flex-direction:column;background:var(--color-surface);border-radius:var(--radius) var(--radius) 0 0;border:1px solid var(--color-border);border-bottom:none}.exercise-picker-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--color-border)}.exercise-picker-header h3{margin:0;font-size:1rem;color:var(--color-text)}.btn-close-picker{display:flex;align-items:center;justify-content:center;padding:.25rem;background:transparent;border:none;color:var(--color-text-muted);cursor:pointer}.exercise-picker-list{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:.5rem 0}.exercise-picker-item{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:48px;padding:.75rem 1rem;font-size:.9375rem;color:var(--color-text);background:transparent;border:none;cursor:pointer;text-align:left}.exercise-picker-item:active{background:var(--color-surface-hover)}.exercise-picker-name{font-weight:500}.exercise-picker-detail{font-size:.8125rem;color:var(--color-text-muted)}.btn-finish{margin-left:auto;padding:.375rem .75rem;font-size:.875rem;font-weight:600;border:none;border-radius:var(--radius);background:var(--color-primary);color:#000;cursor:pointer;min-height:36px;white-space:nowrap}.btn-finish:active{opacity:.85}.btn-wake-lock{display:flex;align-items:center;justify-content:center;padding:.25rem;border:none;border-radius:var(--radius);background:transparent;cursor:pointer;line-height:1}.btn-wake-lock.active{color:var(--color-primary)}.btn-wake-lock.inactive{color:var(--color-text-muted);animation:pulse-wake 2s ease-in-out infinite}@keyframes pulse-wake{0%,to{opacity:.5}50%{opacity:1}}.finish-summary{text-align:center;padding:3rem 1rem}.finish-summary h2{font-size:1.5rem;margin-bottom:.5rem}.finish-summary p{color:var(--color-text-muted);margin-bottom:1rem}.finish-note{font-size:.875rem;font-style:italic}.finish-go-back{display:flex;align-items:center;justify-content:center;gap:.25rem;margin:1rem auto 0;font-size:1rem;color:var(--color-text-muted)}.btn-primary{padding:.875rem 2rem;font-size:1rem;font-weight:600;border:none;border-radius:var(--radius);background:var(--color-primary);color:#000;cursor:pointer;min-height:48px}.btn-primary:active{opacity:.85}.auth-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60dvh;text-align:center;gap:1rem;padding:2rem 1rem}.auth-status{color:var(--color-text-muted);font-size:1rem}.auth-error{color:var(--color-danger);font-size:.875rem;background:#ff17441a;padding:.625rem 1rem;border-radius:8px;max-width:100%;word-break:break-word}.config-warning{color:var(--color-warmup);font-size:.8125rem;background:#ffab401a;padding:.5rem .75rem;border-radius:8px;margin-top:1rem;text-align:left}.workout-import-defaults-prompt{display:flex;flex-direction:column;gap:.75rem;align-items:flex-start;padding:.75rem .25rem 0}.btn-google{padding:.875rem 2rem;font-size:1rem;font-weight:600;border:none;border-radius:var(--radius);background:#fff;color:#333;cursor:pointer;min-height:48px;display:flex;align-items:center;gap:.5rem}.btn-google:active{opacity:.85}.sheet-form{display:flex;flex-direction:column;gap:.75rem;width:100%;max-width:400px}.sheet-url-input{padding:.75rem 1rem;font-size:.875rem;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);color:var(--color-text);width:100%}.sheet-url-input::placeholder{color:var(--color-text-muted)}.sheet-option{width:100%;max-width:400px}.sheet-option-label{font-size:.9375rem;font-weight:600;color:var(--color-text);margin-bottom:.5rem}.sheet-divider{display:flex;align-items:center;width:100%;max-width:400px;gap:1rem;color:var(--color-text-muted);font-size:.8125rem}.sheet-divider:before,.sheet-divider:after{content:"";flex:1;height:1px;background:var(--color-border)}.btn-link{background:none;border:none;color:var(--color-text-muted);font-size:.875rem;cursor:pointer;padding:.5rem;text-decoration:underline}.btn-link:active{opacity:.7}.auth-connected{display:flex;align-items:center;height:var(--app-header-height);gap:.75rem;padding:.75rem 0;font-size:.875rem;border-bottom:1px solid var(--color-border);margin-bottom:var(--app-header-gap);position:sticky;top:0;z-index:30;background:var(--color-bg);box-shadow:0 var(--app-header-gap) 0 var(--color-bg)}.toolbar-nav{display:flex;align-items:center;gap:.25rem;flex:1}.btn-toolbar{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:8px;background:transparent;color:var(--color-text-muted);cursor:pointer;transition:background .15s,color .15s}.btn-toolbar:active{background:var(--color-surface);color:var(--color-text)}.progression-subtitle{color:var(--color-text-muted);font-size:.875rem;margin-bottom:1.25rem}.progression-list{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.progression-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:.75rem 1rem}.progression-lift-name{font-size:1rem;font-weight:600;margin-bottom:.5rem}.progression-row{display:flex;align-items:center;gap:.5rem;padding:.375rem 0}.progression-label{font-size:.75rem;font-weight:600;text-transform:uppercase;color:var(--color-text-muted);min-width:3.5rem}.progression-current{font-size:.875rem;color:var(--color-text-muted);min-width:2.5rem;text-align:right}.progression-arrow{display:inline-flex;align-items:center;color:var(--color-text-muted);font-size:.875rem}.progression-input{width:4.5rem;padding:.375rem;text-align:center;font-size:1rem;font-weight:600;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg);color:var(--color-text);-moz-appearance:textfield}.progression-input::-webkit-outer-spin-button,.progression-input::-webkit-inner-spin-button{-webkit-appearance:none}.progression-label-unit{font-size:.75rem;color:var(--color-text-muted)}.progression-hit{display:inline-flex;align-items:center;gap:.125rem;font-size:.75rem;font-weight:600;color:var(--color-work);margin-left:auto}.weight-stepper{display:flex;flex-direction:row;align-items:center;gap:2px}.progression-actions{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1rem 0}.setup-page{text-align:center;padding:2rem 0}.setup-title{font-size:1.5rem;font-weight:700;color:var(--color-primary);margin-bottom:.5rem}.setup-subtitle{color:var(--color-text-muted);font-size:.875rem;margin-bottom:1.5rem}.setup-list{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.setup-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:.75rem 1rem;text-align:left}.setup-lift-name{font-size:1rem;font-weight:600;margin-bottom:.5rem}.setup-field{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.setup-label{font-size:.75rem;font-weight:600;text-transform:uppercase;color:var(--color-text-muted)}.setup-input-row{display:flex;align-items:center;gap:.375rem}.setup-input{width:5rem;padding:.5rem .375rem;text-align:center;font-size:1.125rem;font-weight:600;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg);color:var(--color-text);-moz-appearance:textfield}.setup-input::-webkit-outer-spin-button,.setup-input::-webkit-inner-spin-button{-webkit-appearance:none}.setup-unit{font-size:.75rem;color:var(--color-text-muted)}.setup-derived{font-size:.8125rem;color:var(--color-text-muted);margin-top:.375rem}.setup-actions{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1rem 0}.setup-confirm{width:100%;max-width:320px}.btn-calendar{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;margin-top:1.25rem;padding:.75rem 1rem;font-size:1rem;font-weight:600;color:var(--color-primary);background:transparent;border:1px solid var(--color-primary);border-radius:var(--radius);cursor:pointer;min-height:48px;transition:background .15s}.btn-calendar:active{background:#00e5ff1a}.calendar-view{display:flex;flex-direction:column;height:calc(100dvh - var(--app-header-offset));min-height:0;overflow:hidden}.calendar-fixed-section{flex:none;max-height:65%;overflow-y:auto}.calendar-fixed-section-plan{max-height:80%}.calendar-days-scroll{flex:1;min-height:0;overflow-y:auto;padding-bottom:2rem;scrollbar-gutter:stable}.calendar-month-section{padding:0 0 .75rem}.calendar-month-controls{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.5rem}.calendar-month-controls-label{color:var(--color-text-muted);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.calendar-month-filter-controls{display:flex;align-items:center;gap:.375rem}.calendar-months{display:flex;flex-direction:column;gap:.75rem}.calendar-month{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:.75rem}.calendar-month-header{position:relative}.calendar-month-title{margin:0 0 .625rem;color:var(--color-text);font-size:.9375rem;text-align:center}.calendar-month-close{position:absolute;top:-.25rem;right:-.25rem;display:flex;align-items:center;justify-content:center;padding:.2rem;border:0;background:transparent;color:var(--color-text-muted);cursor:pointer}.calendar-month-close:hover,.calendar-month-close:focus-visible{color:var(--color-text)}.calendar-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-month-weekday{color:var(--color-text-muted);font-size:.625rem;font-weight:600;padding-bottom:.375rem;text-align:center;text-transform:uppercase}.calendar-month-day{position:relative;display:flex;flex-direction:column;min-height:3.25rem;margin:0;padding:.25rem;border:0;border-top:1px solid rgba(255,255,255,.06);background:transparent;color:var(--color-text-muted);font:inherit;font-size:.75rem;text-align:center;cursor:pointer}.calendar-month-day-empty{cursor:default}.calendar-month-day-heading{display:flex;align-items:center;justify-content:flex-end;min-height:1.4rem}.calendar-month-day-icons{display:flex;align-items:center;gap:.15rem;margin-right:auto}.calendar-month-location{stroke-width:3}.calendar-month-location-home{color:#4caf50}.calendar-month-location-elsewhere{color:#ff9800}.calendar-month-location-travel{color:var(--color-joker)}.calendar-month-visitors{color:#bb86fc;stroke-width:3}.calendar-month-day-blocked .calendar-month-day-number{color:var(--color-danger)}.calendar-month-day-today .calendar-month-day-number{display:inline-flex;align-items:center;justify-content:center;width:1.4rem;height:1.4rem;border-radius:50%;background:#707070;color:var(--color-text);font-weight:700}.calendar-month-tags{display:flex;flex-direction:column;gap:.15rem;margin-top:.25rem}.calendar-month-tag{display:block;margin:0;overflow:hidden;padding:.025rem .1rem;border-radius:.0625rem;color:var(--color-bg);font-size:.5rem;font-weight:700;line-height:1;white-space:nowrap}.calendar-month-tag-strength{background:var(--color-month-tag-strength)}.calendar-month-tag-cardio{background:var(--color-primary)}.calendar-month-tag-rest{background:#777}.calendar-month-tag-blocker{background:var(--color-danger)}.calendar-month-section .calendar-load-more{margin:.75rem 0 0}.calendar-days{display:flex;flex-direction:column;gap:.5rem}.calendar-day{background:var(--color-surface);border:1px solid var(--color-border);border-left:4px solid var(--color-weekday);border-radius:var(--radius);padding:.75rem 1rem}.calendar-day-today{border-color:var(--color-primary);border-left-color:var(--color-weekday)}.calendar-day-weekend,.calendar-day-today.calendar-day-weekend{border-left-color:var(--color-weekend)}.calendar-day-header{display:flex;align-items:center;justify-content:space-between}.calendar-day-date{display:flex;align-items:center;gap:.5rem}.calendar-weekday{font-size:.75rem;font-weight:600;text-transform:uppercase;color:var(--color-text-muted);min-width:2rem}.calendar-display-date{font-size:.9375rem;font-weight:500}.calendar-display-date-today{color:var(--color-primary);font-weight:700}.calendar-add-btn{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--color-primary);cursor:pointer;padding:.375rem;min-width:36px;min-height:36px;border-radius:8px;transition:color .15s,background .15s}.calendar-add-btn:active{color:var(--color-primary);background:#00e5ff1a}.calendar-workouts{display:flex;flex-direction:column;gap:.375rem;margin-top:.5rem}.calendar-workout-item{display:flex;align-items:center;gap:.5rem;background:var(--color-bg);border-radius:8px;padding:.375rem .5rem}.calendar-workout-link{flex:1;display:flex;align-items:center;gap:.25rem;background:none;border:none;color:var(--color-text);cursor:pointer;font-size:.875rem;font-weight:500;text-align:left;padding:.25rem 0;min-height:36px}.calendar-workout-link:active{color:var(--color-primary)}.calendar-workout-name{flex:1}.calendar-remove-btn{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:.25rem;min-width:28px;min-height:28px;border-radius:4px}.calendar-remove-btn:active{color:var(--color-danger)}.calendar-label-edit-btn{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:.25rem;min-width:28px;min-height:28px;border-radius:4px}.calendar-label-edit-btn:active{color:var(--color-primary)}.calendar-workout-item-editing{gap:.375rem}.calendar-label-input{flex:1;min-width:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;color:var(--color-text);font-size:.875rem;padding:.3125rem .5rem}.calendar-label-input:focus{outline:none;border-color:var(--color-primary)}.calendar-label-save-btn{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--color-primary);cursor:pointer;padding:.25rem;min-width:28px;min-height:28px;border-radius:4px}.calendar-delete-btn{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:.25rem;min-width:28px;min-height:28px;border-radius:4px;flex-shrink:0}.calendar-delete-btn:active{color:var(--color-danger)}.calendar-delete-confirm-btn{background:var(--color-danger);border:none;color:#fff;cursor:pointer;font-size:.75rem;font-weight:600;padding:.25rem .625rem;border-radius:4px;min-height:28px;flex-shrink:0;transition:opacity .15s}.calendar-delete-confirm-btn:active{opacity:.8}.calendar-picker{margin-top:.5rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;overflow:hidden}.calendar-picker-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;font-size:.8125rem;font-weight:600;color:var(--color-text-muted);border-bottom:1px solid var(--color-border)}.calendar-picker-close{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:.25rem;min-width:28px;min-height:28px}.calendar-picker-list{display:flex;flex-direction:column}.calendar-picker-item{background:none;border:none;border-bottom:1px solid var(--color-border);color:var(--color-text);cursor:pointer;font-size:.875rem;text-align:left;padding:.625rem .75rem;min-height:44px;transition:background .15s}.calendar-picker-item:last-child{border-bottom:none}.calendar-picker-item:active{background:var(--color-surface-hover)}.calendar-picker-divider{font-size:.6875rem;font-weight:600;text-transform:uppercase;color:var(--color-text-muted);padding:.375rem .75rem;border-bottom:1px solid var(--color-border);background:var(--color-surface-alt)}.calendar-picker-item-strength{display:flex;align-items:center;gap:.5rem}.calendar-picker-item-cardio{display:flex;align-items:center;gap:.5rem;color:var(--color-text)}.calendar-picker-item-rest{display:flex;align-items:center;gap:.5rem;color:var(--color-text-muted)}.calendar-picker-item-blocker{display:flex;align-items:center;gap:.5rem;color:var(--color-danger)}.calendar-workout-link-cardio{color:var(--color-text)}.calendar-workout-link-rest{color:var(--color-text-muted)}.calendar-workout-link-blocker{color:var(--color-danger)}.calendar-day-actions{display:flex;align-items:center;gap:.375rem}.calendar-flag-toggle{background:none;border:none;padding:.125rem;cursor:pointer;color:var(--color-text-muted);opacity:.7;transition:opacity .15s,color .15s;display:flex;align-items:center}.calendar-flag-active.calendar-flag-home{color:#4caf50;opacity:1}.calendar-flag-active.calendar-flag-elsewhere{color:#ff9800;opacity:1}.calendar-flag-active.calendar-flag-travel{color:var(--color-joker);opacity:1}.calendar-flag-active.calendar-flag-visitors{color:#bb86fc;opacity:1}.calendar-flag-active.calendar-flag-alcohol{color:#1565c0;opacity:1}.calendar-flag-active.calendar-flag-blocked{color:#ff1744;opacity:1}.calendar-toolbar{display:flex;gap:.25rem;padding:0 0 .75rem}.calendar-toolbar-btn{display:flex;align-items:center;gap:.2rem;flex:1;min-width:0;justify-content:center;background:var(--color-surface);border:1px solid rgba(255,255,255,.08);color:var(--color-primary);cursor:pointer;font-size:.7rem;font-weight:600;padding:.45rem .2rem;border-radius:8px;transition:background .15s,border-color .15s}.calendar-toolbar-btn:active{background:#00e5ff14;border-color:var(--color-primary)}.calendar-toolbar-btn-active{color:var(--color-primary);border-color:var(--color-primary)}.calendar-load-more{display:flex;justify-content:center;margin-bottom:.75rem}.calendar-load-more-btn{background:none;border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;font-size:.8125rem;font-weight:500;padding:.5rem 1rem;border-radius:8px;transition:color .15s,border-color .15s}.calendar-load-more-btn:active{color:var(--color-primary);border-color:var(--color-primary)}.calendar-completed-bar{width:3px;align-self:stretch;min-height:24px;background:var(--color-completed);border-radius:2px;flex-shrink:0}.calendar-history-sessions{display:flex;flex-direction:column;gap:.25rem;margin-top:.25rem}.calendar-session-link{display:flex;align-items:center;gap:.25rem;background:none;border:none;color:var(--color-primary);cursor:pointer;font-size:.75rem;font-weight:500;padding:.25rem .5rem;opacity:.8}.calendar-session-link:active{opacity:1}.session-detail{padding-bottom:2rem}.session-detail-header{display:flex;align-items:center;gap:.5rem;padding:.5rem 0;margin-bottom:1rem;border-bottom:1px solid var(--color-border)}.session-detail-back{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:.375rem;min-width:36px;min-height:36px;border-radius:8px}.session-detail-back:active{color:var(--color-primary)}.session-detail-title{flex:1;display:flex;flex-direction:column;gap:.125rem}.session-detail-name{font-size:1rem;font-weight:600}.session-detail-date{font-size:.75rem;color:var(--color-text-muted)}.session-detail-save{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:.375rem;min-width:36px;min-height:36px;border-radius:8px;opacity:.4}.session-detail-save-active{color:var(--color-completed);opacity:1}.session-detail-save-active:active{background:#00e6761a}.session-detail-exercises{display:flex;flex-direction:column;gap:1.25rem}.session-detail-exercise{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:.75rem}.session-detail-exercise-name{font-size:.875rem;font-weight:600;color:var(--color-primary);margin-bottom:.5rem}.session-detail-sets{display:flex;flex-direction:column;gap:.25rem}.session-detail-set-header{display:flex;align-items:center;gap:.375rem;font-size:.6875rem;font-weight:600;text-transform:uppercase;color:var(--color-text-muted);padding:0 .25rem .25rem;border-bottom:1px solid var(--color-border)}.session-detail-set-row{display:flex;align-items:center;gap:.375rem;padding:.375rem .25rem;border-radius:4px}.session-detail-set-num{width:1.5rem;font-size:.75rem;color:var(--color-text-muted);text-align:center;flex-shrink:0}.session-detail-set-type{width:4.5rem;flex-shrink:0}.session-detail-set-type-input{width:4.5rem;background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text);border-radius:4px;font-size:.75rem;padding:.25rem;cursor:pointer}.session-detail-set-weight{flex:1}.session-detail-set-weight-input{width:100%;background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text);border-radius:4px;font-size:.8125rem;padding:.375rem;text-align:center}.session-detail-set-reps{width:3rem;flex-shrink:0}.session-detail-set-reps-input{width:3rem;background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text);border-radius:4px;font-size:.8125rem;padding:.375rem;text-align:center}.session-detail-set-done{width:2rem;text-align:center;flex-shrink:0}.session-detail-set-check{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;background:none;border:1px solid var(--color-border);color:var(--color-text-muted);border-radius:4px;cursor:pointer;flex-shrink:0}.session-detail-set-checked{background:#00e67626;border-color:var(--color-completed);color:var(--color-completed)}.session-detail-set-warmup{border-left:3px solid var(--color-warmup)}.session-detail-set-work{border-left:3px solid var(--color-work)}.session-detail-set-backoff{border-left:3px solid var(--color-backoff)}.session-detail-set-joker{border-left:3px solid var(--color-joker)}.calendar-push{margin:0 0 1rem;padding:1rem;background:var(--color-surface);border:1px solid rgba(255,255,255,.08);border-radius:10px}.calendar-push-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.calendar-push-header h3{margin:0;font-size:1rem;font-weight:600;color:var(--color-primary)}.calendar-push-close{background:none;border:none;color:#ffffff80;cursor:pointer;padding:.25rem}.calendar-push-section{margin-bottom:1rem}.calendar-push-label{display:block;font-size:.75rem;font-weight:600;color:#ffffff80;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem}.calendar-push-days{display:flex;flex-direction:column;gap:.375rem}.calendar-push-day-row{display:flex;align-items:center;gap:.75rem}.calendar-push-day-name{width:5.5rem;font-size:.875rem;color:#ffffffb3}.calendar-push-select,.calendar-push-input{flex:1;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#fff;padding:.5rem .625rem;font-size:.875rem;font-family:inherit}.calendar-push-select:focus,.calendar-push-input:focus{outline:none;border-color:var(--color-primary)}.calendar-push-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.75rem 1rem;background:var(--color-primary);border:none;border-radius:8px;color:#000;font-size:.9375rem;font-weight:700;cursor:pointer;transition:opacity .15s}.calendar-push-btn:disabled{opacity:.4;cursor:not-allowed}.calendar-push-btn:not(:disabled):active{opacity:.85}.calendar-push-feedback{display:flex;align-items:flex-start;gap:.5rem;padding:.625rem .75rem;border-radius:8px;font-size:.8125rem;line-height:1.4;margin-top:.5rem}.calendar-push-feedback-success{color:#4caf50;background:#4caf5014;border:1px solid rgba(76,175,80,.2)}.calendar-push-feedback-error{color:var(--color-accent);background:#ff2d7b14;border:1px solid rgba(255,45,123,.2)}.calendar-push-error-detail{font-size:.75rem;opacity:.7;margin:.25rem 0 0}.calendar-push-loading,.calendar-push-error{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;color:var(--color-text-muted)}.calendar-clear-checks{display:flex;flex-direction:column;gap:.5rem}.calendar-clear{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.08)}.calendar-clear-check{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--color-text);cursor:pointer}.calendar-clear-check input[type=checkbox]{accent-color:var(--color-primary);width:1rem;height:1rem}.calendar-clear-range{font-size:.8125rem;color:var(--color-text-muted)}.calendar-clear-actions{display:flex;gap:.5rem}.calendar-clear-actions .calendar-push-btn{flex:1}.calendar-clear-btn{background:var(--color-accent)!important;border-color:var(--color-accent)!important}.calendar-clear-cancel-btn{background:var(--color-surface)!important;border-color:var(--color-border)!important;color:var(--color-text)!important}.calendar-sync-description{font-size:.8125rem;color:#ffffff80;line-height:1.4;margin:0}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin 1s linear infinite}.workout-editor{padding-bottom:2rem}.editor-section{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.25rem}.editor-field-inline{flex:1}.editor-field-label{font-size:.75rem;font-weight:600;text-transform:uppercase;color:var(--color-text-muted)}.editor-field-hint{font-weight:400;text-transform:none;color:var(--color-text-muted);opacity:.7}.editor-text-input{padding:.625rem .75rem;font-size:1rem;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);color:var(--color-text);width:100%}.editor-text-input::placeholder{color:var(--color-text-muted)}.editor-id-input{font-family:monospace;font-size:.875rem}.editor-select{padding:.5rem .75rem;font-size:.875rem;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);color:var(--color-text);min-height:40px;cursor:pointer}.editor-exercise{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:.75rem;margin-bottom:.75rem}.editor-exercise-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.editor-exercise-number{font-size:.8125rem;font-weight:600;color:var(--color-primary);text-transform:uppercase}.btn-remove-exercise{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:.375rem;min-width:32px;min-height:32px;border-radius:6px}.btn-remove-exercise:active{color:var(--color-danger);background:#ff17441a}.editor-exercise-meta{display:flex;gap:.5rem;margin-bottom:.75rem}.editor-sets{display:flex;flex-direction:column;gap:.25rem}.editor-sets-header{display:flex;align-items:center;gap:.25rem;padding:0 .25rem .25rem;font-size:.625rem;font-weight:600;text-transform:uppercase;color:var(--color-text-muted)}.editor-set-row{display:flex;align-items:center;gap:.25rem;padding:.25rem;background:var(--color-bg);border-radius:6px}.editor-col-type{width:3.5rem}.editor-col-pct{width:3rem;text-align:center}.editor-col-basis{flex:1;min-width:4rem}.editor-col-reps,.editor-col-amrap{width:2rem;text-align:center}.editor-col-comment,.editor-col-move,.editor-col-remove{width:1.75rem}.editor-set-type{width:3.5rem;font-size:.5625rem;min-height:28px;min-width:3.5rem}.editor-pct-input{width:3rem;padding:.25rem;text-align:center;font-size:.875rem;font-weight:600;border:1px solid var(--color-border);border-radius:4px;background:var(--color-surface);color:var(--color-text);-moz-appearance:textfield}.editor-pct-input::-webkit-outer-spin-button,.editor-pct-input::-webkit-inner-spin-button{-webkit-appearance:none}.editor-basis-group{flex:1;display:flex;flex-direction:column;gap:.125rem;min-width:4rem}.editor-basis-select{font-size:.6875rem;padding:.25rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-surface);color:var(--color-text);min-height:28px;cursor:pointer}.editor-basis-extra{font-size:.6875rem;padding:.125rem .25rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-surface);color:var(--color-primary);min-height:24px;cursor:pointer}.editor-basis-extra-input{width:100%;font-size:.75rem;padding:.125rem .25rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-surface);color:var(--color-primary);-moz-appearance:textfield}.editor-basis-extra-input::-webkit-outer-spin-button,.editor-basis-extra-input::-webkit-inner-spin-button{-webkit-appearance:none}.editor-rep-input{width:2rem;padding:.2rem;text-align:center;font-size:.8rem;font-weight:600;border:1px solid var(--color-border);border-radius:4px;background:var(--color-surface);color:var(--color-text);-moz-appearance:textfield}.editor-rep-input::-webkit-outer-spin-button,.editor-rep-input::-webkit-inner-spin-button{-webkit-appearance:none}.editor-amrap-check{display:flex;align-items:center;justify-content:center;width:2rem}.editor-amrap-check input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--color-primary);cursor:pointer}.btn-remove-set{display:flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;padding:0;background:none;border:none;color:var(--color-text-muted);cursor:pointer;border-radius:4px}.btn-remove-set:active{color:var(--color-danger)}.editor-set-move{display:flex;flex-direction:column;width:1.75rem}.btn-move-set{display:flex;align-items:center;justify-content:center;width:1.75rem;height:.875rem;padding:0;background:none;border:none;color:var(--color-text-muted);cursor:pointer}.btn-move-set:active:not(:disabled){color:var(--color-primary)}.btn-move-set:disabled{opacity:.2;cursor:default}.btn-set-comment{display:flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;padding:0;background:none;border:none;color:var(--color-text-muted);cursor:pointer;border-radius:4px;opacity:.5}.btn-set-comment.has-comment{color:var(--color-primary);opacity:1}.btn-set-comment:active{opacity:1}.comment-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#000000b3;padding:1rem}.comment-overlay-content{width:100%;max-width:400px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem;display:flex;flex-direction:column;gap:.75rem}.comment-overlay-title{margin:0;font-size:1rem;color:var(--color-text)}.comment-overlay-input{width:100%;padding:.625rem .75rem;font-size:.875rem;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg);color:var(--color-text);resize:vertical;font-family:inherit}.comment-overlay-input::placeholder{color:var(--color-text-muted)}.comment-overlay-done{align-self:flex-end;background:var(--color-primary);border:none;color:#000;cursor:pointer;font-size:.875rem;font-weight:600;padding:.5rem 1.25rem;border-radius:6px}.btn-add-exercise{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;min-height:48px;padding:.75rem;font-size:1rem;font-weight:600;color:var(--color-primary);background:transparent;border:1px dashed var(--color-primary);border-radius:var(--radius);cursor:pointer;margin-bottom:1rem}.btn-add-exercise:active{background:#00e5ff1a}.editor-errors{margin-top:.75rem}.editor-error{color:var(--color-danger);font-size:.8125rem;background:#ff17441a;padding:.375rem .75rem;border-radius:6px;margin-bottom:.25rem}.editor-delete-section{margin-top:2rem;border-top:1px solid var(--color-border);padding-top:1.5rem}.btn-delete-workout{display:flex;align-items:center;gap:.5rem;width:100%;justify-content:center;background:none;border:1px solid var(--color-danger);color:var(--color-danger);cursor:pointer;font-size:.875rem;font-weight:600;padding:.625rem 1rem;border-radius:8px;transition:background .15s,color .15s}.btn-delete-workout:active{background:var(--color-danger);color:#fff}.editor-delete-confirm{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.editor-delete-confirm-label{flex:1;color:var(--color-danger);font-size:.875rem;font-weight:600}.btn-delete-workout-confirm{background:var(--color-danger);border:none;color:#fff;cursor:pointer;font-size:.8125rem;font-weight:600;padding:.5rem 1rem;border-radius:6px;transition:opacity .15s}.btn-delete-workout-confirm:active{opacity:.8}.btn-delete-workout-cancel{background:none;border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;font-size:.8125rem;font-weight:500;padding:.5rem 1rem;border-radius:6px}.workout-card-wrapper{display:flex;align-items:stretch;gap:0;background:var(--color-bg);border:1px solid var(--color-border-glow);border-radius:var(--radius);transition:background .15s}.plan-info-card-body{flex:1;cursor:default;border:none;border-radius:var(--radius)}.plan-info-card-cardio .strength-badge{background:#00e5ff1f;color:var(--color-primary)}.plan-info-card-rest .strength-badge{background:#ffffff0f;color:var(--color-text-muted)}.plan-info-card-rest .workout-name{color:var(--color-text-muted)}.plan-info-card-blocker{border-color:var(--color-danger)}.plan-info-card-blocker .strength-badge{background:#ff17441f;color:var(--color-danger)}.workout-more-select{display:none}.btn-more-toggle{display:flex;align-items:center;justify-content:center;gap:.375rem;width:100%;padding:.625rem 1rem;font-size:.875rem;font-weight:500;background:none;color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer}.btn-more-toggle:active{background:var(--color-surface)}.more-chevron{transition:transform .2s}.more-chevron-open{transform:rotate(180deg)}.btn-fav-workout{display:flex;align-items:center;justify-content:center;background:none;border:none;border-right:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;padding:0 .625rem;min-width:40px;border-radius:var(--radius) 0 0 var(--radius)}.btn-fav-workout:active,.btn-fav-active{color:var(--color-accent)}.workout-card-wrapper .workout-card{flex:1;border:none;border-radius:0}.workout-card-wrapper .workout-card:first-child{border-radius:var(--radius) 0 0 var(--radius)}.workout-card-wrapper .workout-card:last-child{border-top-right-radius:var(--radius);border-bottom-right-radius:var(--radius)}.workout-card-wrapper-done{border-color:var(--color-completed)}.btn-edit-workout{display:flex;align-items:center;justify-content:center;background:none;border:none;border-left:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;padding:0 .75rem;min-width:44px;border-radius:0 var(--radius) var(--radius) 0}.btn-edit-workout:active{color:var(--color-primary);background:#00e5ff1a}.workout-menu-container{position:relative;display:flex;align-items:center}.workout-dropdown-menu{position:absolute;top:100%;right:0;z-index:100;min-width:140px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:0 4px 16px #00000080;padding:.25rem 0;margin-top:2px}.workout-dropdown-item{display:flex;align-items:center;gap:.5rem;width:100%;padding:.6rem .75rem;background:none;border:none;color:var(--color-text);font-size:.85rem;cursor:pointer;text-align:left}.workout-dropdown-item:hover{background:#00e5ff0d}.workout-dropdown-item:active{background:#00e5ff1a;color:var(--color-primary)}.workout-dropdown-item-danger{color:var(--color-accent)}.workout-dropdown-item-danger:hover{background:#ff2d7b0d}.workout-dropdown-item-danger:active{background:#ff2d7b1a;color:var(--color-accent)}.workout-import{display:flex;flex-direction:column;align-items:center;gap:1rem;max-width:420px;margin:4rem auto;padding:2rem;text-align:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius)}.workout-import-details{color:var(--color-text-muted)}.workout-import-actions{display:flex;align-items:center;justify-content:flex-end;gap:.75rem;width:100%}.btn-new-workout{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;margin-top:.75rem;padding:.75rem 1rem;font-size:1rem;font-weight:600;color:var(--color-primary);background:transparent;border:1px dashed var(--color-primary);border-radius:var(--radius);cursor:pointer;min-height:48px}.btn-new-workout:active{background:#00e5ff1a}.cardio-section{margin-top:1.5rem}.btn-cardio-toggle{display:flex;align-items:center;gap:.5rem;width:100%;padding:.75rem 1rem;font-size:1rem;font-weight:600;color:var(--color-text-muted, #aaa);background:transparent;border:none;cursor:pointer;min-height:48px}.btn-cardio-toggle:active{color:var(--color-primary)}.cardio-list{display:flex;flex-direction:column;gap:.25rem;padding:0 .5rem}.cardio-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-radius:var(--radius);background:var(--color-surface);min-height:40px}.cardio-name{flex:1;font-size:.9rem;color:var(--color-text, #eee)}.btn-cardio-action{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;color:var(--color-text-muted, #888);background:transparent;border:none;border-radius:4px;cursor:pointer;flex-shrink:0}.btn-cardio-action:active{background:#ffffff1a}.btn-cardio-confirm{color:var(--color-primary)}.btn-cardio-cancel{color:var(--color-text-muted, #888)}.btn-cardio-delete{color:var(--color-accent)}.cardio-edit-row{display:flex;align-items:center;gap:.5rem;width:100%}.cardio-edit-input{flex:1;padding:.4rem .6rem;font-size:.9rem;color:var(--color-text, #eee);background:var(--color-bg, #000);border:1px solid var(--color-primary);border-radius:4px;outline:none;min-width:0}.cardio-add-row{padding:.5rem .75rem;border-radius:var(--radius);background:var(--color-surface)}.btn-new-cardio{display:flex;align-items:center;gap:.4rem;width:100%;margin-top:.25rem;padding:.5rem .75rem;font-size:.85rem;font-weight:600;color:var(--color-primary);background:transparent;border:1px dashed rgba(0,229,255,.3);border-radius:var(--radius);cursor:pointer;min-height:36px}.btn-new-cardio:active{background:#00e5ff1a}.exercise-library{padding:1rem;max-width:600px;margin:0 auto}.exercise-library-title{color:var(--color-primary);font-size:1.25rem;font-weight:600;margin:0 0 1rem}.exercise-list{display:flex;flex-direction:column;gap:.75rem}.exercise-card-wrapper{display:flex;align-items:stretch;gap:0;background:var(--color-bg);border:1px solid var(--color-border-glow);border-radius:var(--radius);transition:background .15s}.exercise-library .exercise-card{display:flex;align-items:center;gap:1rem;padding:.5rem 1rem;margin-bottom:0;background:var(--color-bg);border:none;border-radius:0;color:var(--color-text);text-align:left;cursor:pointer;font-size:1rem;transition:background .15s;min-height:64px;flex:1;width:0}.exercise-card-wrapper .exercise-card:first-child{border-radius:var(--radius) 0 0 var(--radius)}.exercise-library .exercise-card:active{background:var(--color-surface-hover)}.exercise-card-info{display:flex;flex-direction:column;gap:.15rem;min-width:0}.exercise-library .exercise-name{font-weight:500}.exercise-detail{font-size:.8rem;color:var(--color-text-muted)}.btn-edit-exercise{display:flex;align-items:center;justify-content:center;background:none;border:none;border-left:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;padding:0 .625rem;min-width:40px;border-radius:0 var(--radius) var(--radius) 0;transition:color .15s;-webkit-tap-highlight-color:transparent}.btn-edit-exercise:active{color:var(--color-primary)}.exercise-editor{padding:0 1rem 2rem;max-width:600px;margin:0 auto}.exercise-editor-form{display:flex;flex-direction:column;gap:1rem;margin-top:1rem}.editor-field{display:flex;flex-direction:column;gap:.25rem}.editor-label{font-size:.85rem;color:var(--color-text-muted);font-weight:500}.editor-input{padding:.6rem .75rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;color:var(--color-text);font-size:1rem;outline:none;transition:border-color .15s}.editor-input:focus{border-color:var(--color-primary)}.editor-input:disabled{opacity:.5}.editor-select{padding:.6rem .75rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;color:var(--color-text);font-size:1rem;outline:none;transition:border-color .15s;cursor:pointer}.editor-select:focus{border-color:var(--color-primary)}.editor-error{font-size:.8rem;color:var(--color-danger)}.editor-hint{font-size:.9rem;color:var(--color-text-muted);margin:0}.editor-type-toggle{display:flex;gap:.5rem}.editor-type-btn{flex:1;padding:.5rem 1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;color:var(--color-text-muted);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .15s}.editor-type-active{border-color:var(--color-primary);color:var(--color-primary);background:#00e5ff14}.progress-view{padding:0 16px}.progress-title{color:var(--color-accent);font-size:1.25rem;font-weight:700;margin:.75rem 0;letter-spacing:.03em}.progress-empty{color:var(--color-text-muted);font-size:.9rem;text-align:center;padding:2rem 1rem}.progress-controls{margin-bottom:.75rem}.progress-select{width:100%;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);color:var(--color-text);font-size:.9rem;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center}.progress-select:focus{outline:none;border-color:var(--color-primary)}.progress-toggle-group{display:flex;gap:.25rem;margin-bottom:.75rem}.progress-toggle{flex:1;padding:.4rem .25rem;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);color:var(--color-text-muted);font-size:.8rem;cursor:pointer;transition:all .15s;text-align:center}.progress-toggle.active{border-color:var(--color-primary);color:var(--color-primary);background:#00e5ff14}.progress-toggle.progress-toggle-sm{flex:0 0 auto;padding:.3rem .5rem;font-size:.7rem;margin-left:.25rem}.progress-line{fill:none;stroke:var(--color-primary);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.progress-area{fill:#00e5ff14}.progress-dot{fill:var(--color-primary)}.progress-unit{position:absolute;top:.4rem;right:.5rem;font-size:.7rem;color:var(--color-text-muted)}.progress-big4{display:flex;flex-direction:column;gap:0;margin-bottom:0}.settings-view{padding:1rem;max-width:600px;margin:0 auto}.settings-title{color:var(--color-primary);font-size:1.5rem;margin:0 0 1.5rem;font-weight:700}.settings-section{border:1px solid var(--color-border);border-radius:var(--radius);padding:1.25rem;background:var(--color-surface)}.settings-section-title{display:flex;align-items:center;gap:.5rem;color:var(--color-text);font-size:1.1rem;margin:0 0 1rem;font-weight:600}.settings-section-disconnect,.settings-section-firebase{margin-top:1.5rem}.firebase-migration-identity{display:flex;flex-direction:column;align-items:flex-start;gap:.75rem;margin-bottom:.75rem}.firebase-migration-email{color:var(--color-text-muted);font-size:.875rem}.firebase-migration-uid{width:100%;padding:.75rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);color:var(--color-primary);font-size:.8125rem;overflow-wrap:anywhere;-webkit-user-select:all;user-select:all}.firebase-migration-copy{display:flex;align-items:center;justify-content:center;gap:.5rem}.firebase-migration-switch{padding-left:0}.firebase-migration-error{margin-top:1rem}.settings-disconnect-description{color:var(--color-text-muted);font-size:.875rem;line-height:1.5;margin:0 0 1rem}.settings-toggle-row{display:flex;align-items:center;justify-content:space-between;padding:.75rem 0;cursor:pointer;border-bottom:1px solid var(--color-border);position:relative}.settings-toggle-row:last-of-type{border-bottom:none}.settings-toggle-label{display:flex;flex-direction:column;gap:.15rem}.settings-toggle-name{color:var(--color-text);font-size:.9375rem;font-weight:500}.settings-toggle-description{color:var(--color-text-muted);font-size:.75rem}.settings-toggle-input{position:absolute;opacity:0;width:0;height:0}.settings-toggle-switch{position:relative;flex-shrink:0;width:44px;height:24px;background:var(--color-border);border-radius:12px;transition:background .2s}.settings-toggle-switch:after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;background:var(--color-text-muted);border-radius:50%;transition:transform .2s,background .2s}.settings-toggle-input:checked+.settings-toggle-switch{background:var(--color-primary)}.settings-toggle-input:checked+.settings-toggle-switch:after{transform:translate(20px);background:#000}.settings-percent-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}.settings-subsection-title{margin-top:.5rem;color:var(--color-primary);font-size:.85rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:.75rem 0;border-bottom:1px solid var(--color-border)}.settings-percent-input-group{display:flex;align-items:center;gap:.25rem;flex-shrink:0}.settings-percent-input{width:4rem;padding:.4rem .5rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-size:.9375rem;text-align:right;-moz-appearance:textfield}.settings-percent-input::-webkit-inner-spin-button,.settings-percent-input::-webkit-outer-spin-button{opacity:1}.settings-percent-unit{color:var(--color-text-muted);font-size:.875rem}.btn-danger{padding:.75rem 1.5rem;border:1px solid var(--color-accent);border-radius:var(--radius);background:transparent;color:var(--color-accent);cursor:pointer;font-size:.9375rem;font-weight:600;min-height:48px}.btn-danger:active{background:var(--color-accent);color:#000}.strava-view{padding:16px}.strava-subview{padding:0}.strava-subview>.strava-section-title:first-child{margin-top:0}.strava-title{color:var(--color-primary);font-size:1.5rem;margin:0 0 16px}.strava-empty{color:#ffffff80;font-size:.9rem;text-align:center;padding:40px 16px}.chart-controls-sticky{position:sticky;top:var(--app-header-offset);z-index:20;background:var(--color-bg);padding:12px 0 0}.strava-range-group{display:flex;gap:4px;margin-bottom:12px}.strava-range-btn{flex:1;background:var(--color-bg);border:1px solid rgba(255,255,255,.1);color:#fff9;padding:6px 4px;border-radius:6px;font-size:.8rem;cursor:pointer;transition:all .15s}.strava-range-btn.active{background:var(--color-primary);color:#000;border-color:var(--color-primary);font-weight:600}.strava-range-more{min-width:0;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;text-align:center}.strava-agg-group{display:flex;gap:4px;margin-bottom:12px}.strava-agg-btn{flex:1;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);color:#fff9;padding:5px 4px;border-radius:6px;font-size:.75rem;cursor:pointer;transition:all .15s}.strava-agg-btn.active{background:var(--color-accent);color:#fff;border-color:var(--color-accent);font-weight:600}.strava-filter{margin-bottom:12px}.strava-filter-toggle{display:flex;align-items:center;gap:6px;background:none;border:1px solid rgba(255,255,255,.15);color:#ffffffb3;padding:6px 12px;border-radius:6px;font-size:.8rem;cursor:pointer}.strava-filter-options{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.strava-filter-chip{background:#ffffff0f;border:1px solid rgba(255,255,255,.15);color:#ffffff80;padding:4px 10px;border-radius:12px;font-size:.75rem;cursor:pointer;transition:all .15s}.strava-filter-chip.active{background:#00e5ff26;border-color:var(--color-primary);color:var(--color-primary)}.strava-section-title{color:#fff9;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;margin:16px 0 8px}.strava-section-freshness{color:var(--color-primary);margin-left:8px;text-transform:none}.strava-freshness{color:var(--color-primary);font-size:.8rem;letter-spacing:.05em;margin:0 0 8px}.strava-chart-card{background:var(--color-surface);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius);padding:12px;margin-bottom:16px}.strava-chart-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;position:relative}.strava-chart-label{color:#fff;font-size:.95rem;margin:0;display:flex;align-items:baseline;gap:8px}.strava-chart-total{color:var(--color-primary);font-size:.8rem;font-weight:400}.withings-delta{font-size:.75rem;font-weight:500;color:#ffffff80}.withings-delta.good{color:#4ade80}.withings-delta.bad{color:#f87171}.strava-goal-btn{background:none;border:none;color:#fff6;cursor:pointer;padding:4px;border-radius:4px;transition:color .15s}.strava-goal-btn:hover{color:var(--color-primary)}.strava-goal-input-row{display:flex;gap:8px;margin-bottom:8px}.strava-goal-input{flex:1;background:#ffffff0f;border:1px solid rgba(255,255,255,.15);color:#fff;padding:6px 10px;border-radius:6px;font-size:.8rem;outline:none}.strava-goal-input:focus{border-color:var(--color-primary)}.strava-goal-save{background:var(--color-primary);color:#000;border:none;padding:6px 14px;border-radius:6px;font-size:.8rem;font-weight:600;cursor:pointer}.strava-chart-container{width:100%;overflow:hidden}.strava-chart-svg{width:100%;height:auto;display:block}.strava-grid-line{stroke:#ffffff0f;stroke-width:.5}.strava-axis-label{fill:#fff6;font-size:8px;font-family:inherit}.strava-axis-right{fill:#ff2d7b99}.strava-bar{fill:var(--color-primary);opacity:.8}.strava-overflow-pattern-bg{fill:var(--color-primary);opacity:.35}.strava-overflow-pattern-line{fill:none;stroke:var(--color-primary);stroke-width:1.25}.strava-bar-resting{fill:#6b7280;opacity:.85}.strava-bar-active{fill:#2563eb;opacity:.9}.strava-cumulative-line{fill:none;stroke:var(--color-accent);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.strava-cumulative-dot{fill:var(--color-accent)}.strava-cumulative-dot.active{fill:var(--color-accent);filter:drop-shadow(0 0 4px var(--color-accent))}.wellness-cumulative-line{fill:none;stroke:#ffffff59;stroke-width:1;stroke-linejoin:round;stroke-linecap:round}.wellness-cumulative-dot{fill:#ffffff59}.wellness-cumulative-dot.active{fill:#ffffffb3}.strava-goal-line{fill:none;stroke:#fff6;stroke-width:1.5;stroke-dasharray:6 4}.strava-week-boundary-line{stroke:#ffffff1a;stroke-width:.5;pointer-events:none}.strava-bar.active{opacity:1;filter:drop-shadow(0 0 3px var(--color-primary))}.strava-bar-resting.active{opacity:1;filter:drop-shadow(0 0 3px rgba(107,114,128,.8))}.strava-bar-active.active{opacity:1;filter:drop-shadow(0 0 3px rgba(37,99,235,.9))}.chart-crosshair{stroke:#ffffff4d;stroke-width:.75;stroke-dasharray:3 2;pointer-events:none}.strava-chart-container{position:relative;touch-action:pan-y}.chart-tooltip{position:absolute;top:0;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;background:#141414eb;border:1px solid rgba(255,255,255,.15);border-radius:6px;padding:4px 8px;pointer-events:none;white-space:nowrap;z-index:10}.chart-tooltip-value{color:var(--color-primary);font-size:.8rem;font-weight:600;line-height:1.3}.chart-tooltip-secondary{color:var(--color-accent);font-size:.7rem;font-weight:500;line-height:1.3}.chart-tooltip-date{color:#ffffff80;font-size:.65rem;line-height:1.3}.progress-dot.active{fill:#fff;filter:drop-shadow(0 0 4px var(--color-primary))}.activity-list-view{margin-top:1rem}.activity-list-controls{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.activity-list-search{position:relative;flex:1}.activity-list-search-icon{position:absolute;left:.65rem;top:50%;transform:translateY(-50%);color:var(--color-text-muted);pointer-events:none}.activity-list-search-input{width:100%;padding:.5rem .75rem .5rem 2.1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-size:.9rem;box-sizing:border-box}.activity-list-search-input:focus{outline:none;border-color:var(--color-primary)}.activity-type-filter{position:relative;flex-shrink:0}.activity-type-filter-btn{display:flex;align-items:center;gap:.35rem;padding:.45rem .7rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-size:.85rem;cursor:pointer;white-space:nowrap}.activity-type-filter-btn:hover{border-color:var(--color-primary)}.activity-type-filter-menu{position:absolute;right:0;top:calc(100% + 4px);z-index:200;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);min-width:180px;max-height:280px;overflow-y:auto;padding:.4rem 0;box-shadow:0 4px 16px #00000080}.activity-type-filter-actions{display:flex;gap:.4rem;padding:.25rem .6rem .5rem;border-bottom:1px solid var(--color-border);margin-bottom:.25rem}.activity-type-filter-actions button{flex:1;padding:.2rem 0;font-size:.78rem;background:none;border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text-muted);cursor:pointer}.activity-type-filter-actions button:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.activity-type-filter-actions button:disabled{opacity:.4;cursor:default}.activity-type-filter-option{display:flex;align-items:center;gap:.5rem;padding:.3rem .75rem;cursor:pointer;font-size:.85rem;color:var(--color-text)}.activity-type-filter-option:hover{background:#00e5ff0f}.activity-type-filter-option input[type=checkbox]{accent-color:var(--color-primary);cursor:pointer}.activity-list{display:flex;flex-direction:column;gap:.5rem}.activity-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:.65rem .85rem}.activity-card-header{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.3rem}.activity-card-name{font-weight:600;font-size:.95rem;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.activity-card-link{color:inherit;text-decoration:none}.activity-card-link:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.activity-card-date{font-size:.78rem;color:var(--color-text-muted);white-space:nowrap;flex-shrink:0}.activity-card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .75rem}.activity-card-type{font-size:.78rem;color:var(--color-primary);font-weight:500}.activity-card-stat{font-size:.82rem;color:var(--color-text-muted)}.wellness-legend-trigger{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:none;padding:0;color:#fff;font:inherit;cursor:pointer;transition:color .15s ease}.wellness-legend-trigger:hover,.wellness-legend-trigger:focus-visible{color:var(--color-primary);outline:none}.wellness-legend-popover{position:absolute;top:calc(100% + 8px);right:0;min-width:160px;padding:10px 12px;display:flex;flex-direction:column;gap:4px;background:#0a0a0af5;border:1px solid rgba(255,255,255,.1);border-radius:10px;box-shadow:0 12px 28px #00000073;z-index:2}.wellness-legend-item{display:flex;align-items:center;justify-content:space-between;gap:12px}.wellness-legend-label-group{display:flex;align-items:center;gap:6px}.wellness-legend-swatch{width:8px;height:8px;border-radius:50%;flex-shrink:0}.wellness-legend-range{color:#ffffff8c;font-size:.7rem;font-weight:500}.wellness-legend-value{color:#fff;font-size:.75rem;font-weight:600;text-align:right}
