*,:before,:after{box-sizing:border-box}*{margin:0}body{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;line-height:1.5}img,picture,svg{max-width:100%;display:block}:root{--color-bg:#fff;--color-fg:#1a1a1a;--color-accent:#0a7d3a;--color-accent-fg:#fff;--color-nav-bg:#f5f5f5;--color-nav-border:#d8d8d8;--space-1:.25rem;--space-2:.5rem;--space-3:1rem;--space-4:1.5rem;--font-size-base:16px;--font-stack:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--color-destructive:#c02020}@media (prefers-color-scheme:dark){:root{--color-bg:#1a1a1a;--color-fg:#e8e8e8;--color-accent:#4ade80;--color-accent-fg:#0a1a10;--color-nav-bg:#242424;--color-nav-border:#3a3a3a;--color-destructive:#ff6b6b}}:root[data-theme=light]{--color-bg:#fff;--color-fg:#1a1a1a;--color-accent:#0a7d3a;--color-accent-fg:#fff;--color-nav-bg:#f5f5f5;--color-nav-border:#d8d8d8;--color-destructive:#c02020}:root[data-theme=dark]{--color-bg:#1a1a1a;--color-fg:#e8e8e8;--color-accent:#4ade80;--color-accent-fg:#0a1a10;--color-nav-bg:#242424;--color-nav-border:#3a3a3a;--color-destructive:#ff6b6b}body{background:var(--color-bg);color:var(--color-fg);font-family:var(--font-stack);font-size:var(--font-size-base);min-height:100vh;margin:0}.app-nav{gap:var(--space-1);background:var(--color-nav-bg);border-top:1px solid var(--color-nav-border);display:flex}.app-nav a{padding:var(--space-3) var(--space-2);color:var(--color-fg);text-align:center;border-top:2px solid #0000;flex:1 1 0;font-size:.95rem;text-decoration:none}.app-nav a:hover,.app-nav a:focus-visible{background:color-mix(in srgb, var(--color-accent) 12%, transparent)}.app-nav a[aria-current=page]{border-top-color:var(--color-accent);color:var(--color-accent);font-weight:600}@media (width<=600px){.app-nav{z-index:10;position:fixed;inset:auto 0 0}#app{padding-bottom:calc(var(--space-4) + 1rem)}}@media (width>=601px){.app-nav{z-index:10;border-top:none;border-bottom:1px solid var(--color-nav-border);position:sticky;top:0}.app-nav a{padding:var(--space-3) var(--space-4);border-top:none;border-bottom:2px solid #0000;flex:none}.app-nav a[aria-current=page]{border-top-color:#0000;border-bottom-color:var(--color-accent)}}#app{max-width:720px;padding:var(--space-3);margin:0 auto}#app section{padding:var(--space-3) 0}#app h1{margin-bottom:var(--space-2);font-size:1.5rem}#app p{color:color-mix(in srgb, var(--color-fg) 80%, transparent)}.today-form{gap:var(--space-2);margin-bottom:var(--space-4);flex-direction:column;display:flex}.today-form__label{font-size:.875rem;font-weight:600;line-height:1.4}.today-form__row{gap:var(--space-2);display:flex}.today-form__field{gap:var(--space-1);flex-direction:column;flex:1 1 0;display:flex}.today-form__input{font-family:var(--font-stack);font-size:var(--font-size-base);padding:var(--space-2);border:1px solid var(--color-nav-border);border-radius:var(--space-1);background:var(--color-bg);color:var(--color-fg);min-height:40px}.today-form__input:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.today-form__cta{background:var(--color-accent);color:var(--color-accent-fg);border-radius:var(--space-1);padding:var(--space-2) var(--space-3);cursor:pointer;border:none;min-height:40px;font-size:.875rem;font-weight:600}.today-form__cta:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.inline-error{color:var(--color-destructive);min-height:1.25rem;font-size:.875rem;font-weight:400}.set-list{gap:var(--space-2);flex-direction:column;padding:0;list-style:none;display:flex}.set-row{background:var(--color-nav-bg);padding:var(--space-2);border-radius:var(--space-1);gap:var(--space-1);flex-direction:column;display:flex}.set-row__name{font-size:var(--font-size-base);font-weight:600}.set-row__field{font-size:var(--font-size-base);font-weight:400}.set-row__notes{font-size:var(--font-size-base);color:color-mix(in srgb, var(--color-fg) 80%, transparent);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.toast{left:50%;bottom:calc(var(--space-4) + 4rem);background:var(--color-nav-bg);border:1px solid var(--color-nav-border);border-radius:var(--space-1);padding:var(--space-2) var(--space-3);z-index:20;gap:var(--space-2);max-width:calc(100vw - 2 * var(--space-3));align-items:center;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 4px 12px #00000026}.toast__body{font-size:var(--font-size-base);color:var(--color-fg)}.toast__action{color:var(--color-accent);cursor:pointer;min-height:40px;padding:var(--space-1) var(--space-2);font-weight:600;font-family:var(--font-stack);background:0 0;border:none;font-size:.875rem}.toast__action:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.set-row__actions{gap:var(--space-2);margin-top:var(--space-1);display:flex}.set-row__action{color:var(--color-fg);border:1px solid var(--color-nav-border);border-radius:var(--space-1);padding:var(--space-1) var(--space-2);font-family:var(--font-stack);cursor:pointer;background:0 0;min-height:40px;font-size:.875rem;font-weight:600}.set-row__action:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.set-row__action.delete-btn{color:var(--color-destructive)}.set-row--editing{background:var(--color-nav-bg);border-left:3px solid var(--color-accent)}.set-row__edit-fields{gap:var(--space-2);flex-direction:column;display:flex}.set-row__edit-fields .today-form__input{width:100%}.history-list{gap:var(--space-2);flex-direction:column;padding:0;list-style:none;display:flex}.history-row{background:var(--color-nav-bg);padding:var(--space-2);border:1px solid var(--color-nav-border);border-radius:var(--space-1);gap:var(--space-1);cursor:pointer;text-align:left;width:100%;font-family:var(--font-stack);color:var(--color-fg);flex-direction:column;min-height:44px;display:flex}.history-row:hover,.history-row:focus-visible{background:color-mix(in srgb, var(--color-accent) 12%, transparent)}.history-row:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.history-row__date{font-size:var(--font-size-base);font-weight:600}.history-row__meta{font-size:var(--font-size-base);color:color-mix(in srgb, var(--color-fg) 80%, transparent);font-weight:400}.by-exercise-link{color:var(--color-fg);padding:var(--space-1) 0;margin-bottom:var(--space-2);min-height:40px;font-size:.875rem;font-weight:600;line-height:1.4;text-decoration:underline;display:inline-block}.by-exercise-link:hover,.by-exercise-link:focus-visible{color:var(--color-accent)}.by-exercise-link:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.back-button{color:var(--color-fg);border:1px solid var(--color-nav-border);border-radius:var(--space-1);padding:var(--space-1) var(--space-2);font-family:var(--font-stack);cursor:pointer;min-height:40px;margin-top:var(--space-3);background:0 0;font-size:.875rem;font-weight:600}.back-button:hover,.back-button:focus-visible{color:var(--color-accent)}.back-button:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.export-button{color:var(--color-fg);border:1px solid var(--color-nav-border);border-radius:var(--space-1);padding:var(--space-1) var(--space-2);font-family:var(--font-stack);cursor:pointer;min-height:40px;margin-bottom:var(--space-2);background:0 0;font-size:.875rem;font-weight:600}.export-button:hover,.export-button:focus-visible{color:var(--color-accent)}.export-button:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.import-button{color:var(--color-fg);border:1px solid var(--color-nav-border);border-radius:var(--space-1);padding:var(--space-1) var(--space-2);font-family:var(--font-stack);cursor:pointer;min-height:40px;margin-bottom:var(--space-2);background:0 0;font-size:.875rem;font-weight:600}.import-button:hover,.import-button:focus-visible{color:var(--color-accent)}.import-button:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.import-errors{margin:var(--space-2) 0;color:var(--color-fg);font-size:.875rem}.import-error-row{padding:var(--space-1) 0;border-top:1px solid var(--color-nav-border)}.import-error-more{padding:var(--space-1) 0;color:color-mix(in srgb, var(--color-fg) 80%, transparent);font-style:italic}.bests-card{background:var(--color-nav-bg);border:1px solid var(--color-nav-border);border-left:3px solid var(--color-accent);border-radius:var(--space-1);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-3)}.bests-card__stat{font-size:var(--font-size-base);font-weight:600}.session-detail__header{font-size:var(--font-size-base);margin-bottom:var(--space-1);font-weight:600}.session-detail__title{font-size:var(--font-size-base);color:color-mix(in srgb, var(--color-fg) 80%, transparent);margin-bottom:var(--space-2);font-weight:400}.session-detail__empty,.session-detail__not-found-body,.session-detail__loading{font-size:var(--font-size-base);color:color-mix(in srgb, var(--color-fg) 80%, transparent);font-weight:400}.session-detail__not-found-heading{margin-bottom:var(--space-2);font-size:1.5rem;font-weight:600}.session-detail__groups{gap:var(--space-3);flex-direction:column;display:flex}.session-detail__group{gap:var(--space-2);flex-direction:column;display:flex}.session-detail__group-heading{font-size:var(--font-size-base);font-weight:600}.session-detail__set{background:var(--color-nav-bg);padding:var(--space-2);border-radius:var(--space-1);gap:var(--space-1);flex-direction:column;display:flex}.session-detail__set-field{font-size:var(--font-size-base);font-weight:400}.session-detail__set-notes{font-size:var(--font-size-base);color:color-mix(in srgb, var(--color-fg) 80%, transparent);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.exercise-list{gap:var(--space-2);flex-direction:column;display:flex}.exercise-row{background:var(--color-nav-bg);padding:var(--space-2);border:1px solid var(--color-nav-border);border-radius:var(--space-1);gap:var(--space-1);cursor:pointer;text-align:left;width:100%;font-family:var(--font-stack);color:var(--color-fg);flex-direction:column;min-height:44px;display:flex}.exercise-row:hover,.exercise-row:focus-visible{background:color-mix(in srgb, var(--color-accent) 12%, transparent)}.exercise-row:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.exercise-row__name{font-size:var(--font-size-base);font-weight:600}.exercise-row__meta{font-size:var(--font-size-base);color:color-mix(in srgb, var(--color-fg) 80%, transparent);font-weight:400}.exercise-list__empty-heading,.exercise-detail__not-found-heading{margin-bottom:var(--space-2);font-size:1.5rem;font-weight:600}.exercise-list__empty-body,.exercise-detail__not-found-body,.exercise-detail__loading{font-size:var(--font-size-base);color:color-mix(in srgb, var(--color-fg) 80%, transparent);font-weight:400}.exercise-detail__heading{font-size:var(--font-size-base);margin-bottom:var(--space-2);font-weight:600}.exercise-detail__set-list{gap:var(--space-2);flex-direction:column;display:flex}.exercise-detail__set{background:var(--color-nav-bg);padding:var(--space-2);border-radius:var(--space-1);gap:var(--space-1);flex-direction:column;display:flex}.exercise-detail__set-field{font-size:var(--font-size-base);font-weight:400}.exercise-detail__set-notes{font-size:var(--font-size-base);color:color-mix(in srgb, var(--color-fg) 80%, transparent);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.settings-group{margin-bottom:var(--space-4);padding:var(--space-3) 0;border-top:1px solid var(--color-nav-border)}.settings-group h2{margin-bottom:var(--space-2);font-size:1.125rem;font-weight:600}.unit-toggle,.theme-toggle{gap:var(--space-2);flex-wrap:wrap;display:flex}.unit-toggle button,.theme-toggle button,.settings-export,.settings-import-append,.settings-import-replace,.settings-erase{color:var(--color-fg);border:1px solid var(--color-nav-border);border-radius:var(--space-1);padding:var(--space-1) var(--space-2);font-family:var(--font-stack);cursor:pointer;background:0 0;min-height:40px;font-size:.875rem;font-weight:600}.unit-toggle button:hover,.theme-toggle button:hover,.settings-export:hover,.settings-import-append:hover,.settings-import-replace:hover,.settings-erase:hover{color:var(--color-accent)}.unit-toggle button[aria-pressed=true],.theme-toggle button[aria-pressed=true]{background:color-mix(in srgb, var(--color-accent) 18%, transparent);color:var(--color-accent);border-color:var(--color-accent)}.settings-export,.settings-import-append,.settings-import-replace,.settings-erase{width:100%;margin-bottom:var(--space-2);text-align:left;display:block}.settings-erase{color:var(--color-destructive);border-color:color-mix(in srgb, var(--color-destructive) 50%, transparent)}.storage-usage,.storage-backup-reminder,.privacy-statement{margin:0 0 var(--space-2) 0;font-size:.9375rem;line-height:1.5}.storage-backup-reminder{color:var(--color-fg);opacity:.85}.privacy-statement{margin-bottom:var(--space-3)}.telemetry-toggle{margin-right:var(--space-2);min-width:16px;min-height:40px}.confirm-overlay{z-index:30;padding:var(--space-3);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.confirm-title{margin-bottom:var(--space-2);color:var(--color-fg);font-size:1.125rem;font-weight:600}.confirm-body{font-size:var(--font-size-base);color:color-mix(in srgb, var(--color-fg) 80%, transparent);margin-bottom:var(--space-3);max-width:480px}.confirm-text-input{width:100%;font-family:var(--font-stack);font-size:var(--font-size-base);padding:var(--space-2);border:1px solid var(--color-nav-border);border-radius:var(--space-1);background:var(--color-bg);color:var(--color-fg);min-height:40px;margin-bottom:var(--space-3);display:block}.confirm-export-first,.confirm-cancel,.confirm-confirm{color:var(--color-fg);border:1px solid var(--color-nav-border);border-radius:var(--space-1);padding:var(--space-1) var(--space-2);font-family:var(--font-stack);cursor:pointer;min-height:40px;margin-right:var(--space-2);background:0 0;font-size:.875rem;font-weight:600}.confirm-confirm{background:var(--color-accent);color:var(--color-accent-fg);border-color:var(--color-accent)}.confirm-confirm:disabled{opacity:.5;cursor:not-allowed}.confirm-confirm.confirm-destructive{background:var(--color-destructive);color:#fff;border-color:var(--color-destructive)}.confirm-cancel:hover,.confirm-export-first:hover{color:var(--color-accent)}.confirm-overlay{flex-direction:column;justify-content:center;align-items:stretch}.confirm-overlay>*{width:100%;max-width:480px;margin-left:auto;margin-right:auto}
