@keyframes marching-ants{0%{background-position:0 0,0 100%,0 0,100% 0}to{background-position:20px 0,-20px 100%,0 -20px,100% 20px}}:root{--rc-drag-handle-size: 12px;--rc-drag-handle-mobile-size: 24px;--rc-drag-handle-bg-colour: rgba(0, 0, 0, .2);--rc-drag-bar-size: 6px;--rc-border-color: rgba(255, 255, 255, .7);--rc-focus-color: #0088ff}.ReactCrop{position:relative;display:inline-block;cursor:crosshair;max-width:100%}.ReactCrop *,.ReactCrop *:before,.ReactCrop *:after{box-sizing:border-box}.ReactCrop--disabled,.ReactCrop--locked{cursor:inherit}.ReactCrop__child-wrapper{overflow:hidden;max-height:inherit}.ReactCrop__child-wrapper>img,.ReactCrop__child-wrapper>video{display:block;max-width:100%;max-height:inherit}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>img,.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>video{touch-action:none}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__crop-selection{touch-action:none}.ReactCrop__crop-mask{position:absolute;inset:0;pointer-events:none;width:calc(100% + .5px);height:calc(100% + .5px)}.ReactCrop__crop-selection{position:absolute;top:0;left:0;transform:translateZ(0);cursor:move}.ReactCrop--disabled .ReactCrop__crop-selection{cursor:inherit}.ReactCrop--circular-crop .ReactCrop__crop-selection{border-radius:50%}.ReactCrop--circular-crop .ReactCrop__crop-selection:after{pointer-events:none;content:"";position:absolute;inset:-1px;border:1px solid var(--rc-border-color);opacity:.3}.ReactCrop--no-animate .ReactCrop__crop-selection{outline:1px dashed white}.ReactCrop__crop-selection:not(.ReactCrop--no-animate .ReactCrop__crop-selection){animation:marching-ants 1s;background-image:linear-gradient(to right,#fff 50%,#444 50%),linear-gradient(to right,#fff 50%,#444 50%),linear-gradient(to bottom,#fff 50%,#444 50%),linear-gradient(to bottom,#fff 50%,#444 50%);background-size:10px 1px,10px 1px,1px 10px,1px 10px;background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;color:#fff;animation-play-state:running;animation-timing-function:linear;animation-iteration-count:infinite}.ReactCrop__crop-selection:focus{outline:2px solid var(--rc-focus-color);outline-offset:-1px}.ReactCrop--invisible-crop .ReactCrop__crop-mask,.ReactCrop--invisible-crop .ReactCrop__crop-selection{display:none}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after,.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{content:"";display:block;position:absolute;background-color:#fff6}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after{width:1px;height:100%}.ReactCrop__rule-of-thirds-vt:before{left:33.3333333333%}.ReactCrop__rule-of-thirds-vt:after{left:66.6666666667%}.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{width:100%;height:1px}.ReactCrop__rule-of-thirds-hz:before{top:33.3333333333%}.ReactCrop__rule-of-thirds-hz:after{top:66.6666666667%}.ReactCrop__drag-handle{position:absolute;width:var(--rc-drag-handle-size);height:var(--rc-drag-handle-size);background-color:var(--rc-drag-handle-bg-colour);border:1px solid var(--rc-border-color)}.ReactCrop__drag-handle:focus{background:var(--rc-focus-color)}.ReactCrop .ord-nw{top:0;left:0;transform:translate(-50%,-50%);cursor:nw-resize}.ReactCrop .ord-n{top:0;left:50%;transform:translate(-50%,-50%);cursor:n-resize}.ReactCrop .ord-ne{top:0;right:0;transform:translate(50%,-50%);cursor:ne-resize}.ReactCrop .ord-e{top:50%;right:0;transform:translate(50%,-50%);cursor:e-resize}.ReactCrop .ord-se{bottom:0;right:0;transform:translate(50%,50%);cursor:se-resize}.ReactCrop .ord-s{bottom:0;left:50%;transform:translate(-50%,50%);cursor:s-resize}.ReactCrop .ord-sw{bottom:0;left:0;transform:translate(-50%,50%);cursor:sw-resize}.ReactCrop .ord-w{top:50%;left:0;transform:translate(-50%,-50%);cursor:w-resize}.ReactCrop__disabled .ReactCrop__drag-handle{cursor:inherit}.ReactCrop__drag-bar{position:absolute}.ReactCrop__drag-bar.ord-n{top:0;left:0;width:100%;height:var(--rc-drag-bar-size);transform:translateY(-50%)}.ReactCrop__drag-bar.ord-e{right:0;top:0;width:var(--rc-drag-bar-size);height:100%;transform:translate(50%)}.ReactCrop__drag-bar.ord-s{bottom:0;left:0;width:100%;height:var(--rc-drag-bar-size);transform:translateY(50%)}.ReactCrop__drag-bar.ord-w{top:0;left:0;width:var(--rc-drag-bar-size);height:100%;transform:translate(-50%)}.ReactCrop--new-crop .ReactCrop__drag-bar,.ReactCrop--new-crop .ReactCrop__drag-handle,.ReactCrop--fixed-aspect .ReactCrop__drag-bar,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-n,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-e,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-s,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-w{display:none}@media(pointer:coarse){.ReactCrop .ord-n,.ReactCrop .ord-e,.ReactCrop .ord-s,.ReactCrop .ord-w{display:none}.ReactCrop__drag-handle{width:var(--rc-drag-handle-mobile-size);height:var(--rc-drag-handle-mobile-size)}}:root{--color-primary-50: #e3f2fd;--color-primary-100: #bbdefb;--color-primary-500: #2196f3;--color-primary-600: #1e88e5;--color-primary-700: #1976d2;--color-success-50: #e8f5e9;--color-success-500: #4caf50;--color-success-600: #43a047;--color-danger-50: #ffebee;--color-danger-500: #f44336;--color-danger-600: #e53935;--color-neutral-0: #ffffff;--color-neutral-50: #fafafa;--color-neutral-100: #f5f5f5;--color-neutral-200: #eeeeee;--color-neutral-300: #e0e0e0;--color-neutral-600: #757575;--color-neutral-700: #616161;--color-neutral-900: #212121;--color-bg-primary: var(--color-neutral-50);--color-bg-elevated: var(--color-neutral-0);--color-text-primary: var(--color-neutral-900);--color-text-secondary: var(--color-neutral-600);--color-border-subtle: var(--color-neutral-200);--font-family-base: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-family-mono: "JetBrains Mono", "Courier New", monospace;--font-size-xs: .64rem;--font-size-sm: .8rem;--font-size-base: 1rem;--font-size-md: 1.25rem;--font-size-lg: 1.563rem;--font-size-xl: 1.953rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-extrabold: 800;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.625;--spacing-1: .25rem;--spacing-2: .5rem;--spacing-3: .75rem;--spacing-4: 1rem;--spacing-5: 1.25rem;--spacing-6: 1.5rem;--spacing-8: 2rem;--spacing-12: 3rem;--spacing-20: 5rem;--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--shadow-primary: 0 4px 14px 0 rgba(33, 150, 243, .25);--shadow-success: 0 4px 14px 0 rgba(76, 175, 80, .25);--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-full: 9999px;--duration-fast: .2s;--duration-normal: .3s;--duration-slow: .4s;--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--transition-base: var(--duration-normal) var(--ease-out);--transition-fast: var(--duration-fast) var(--ease-out)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body{font-family:var(--font-family-base);background:var(--color-bg-primary);color:var(--color-text-primary);line-height:var(--line-height-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app{min-height:100vh;display:flex;flex-direction:column}.main-content{flex:1;padding:var(--spacing-4);max-width:600px;width:100%;margin:0 auto;padding-bottom:5rem}.nav-bar{background:#fffc;backdrop-filter:blur(10px) saturate(180%);-webkit-backdrop-filter:blur(10px) saturate(180%);border-top:1px solid var(--color-border-subtle);box-shadow:0 -4px 16px #00000014;padding:var(--spacing-2);position:fixed;bottom:0;left:0;right:0;z-index:100;display:flex;justify-content:space-around}.nav-link{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-1);padding:var(--spacing-2) var(--spacing-4);border-radius:var(--radius-lg);text-decoration:none;color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);transition:all var(--transition-fast);position:relative}.nav-link svg{width:24px;height:24px;stroke-width:2;transition:transform var(--transition-fast)}.nav-link:hover svg{transform:scale(1.1)}.nav-link.active{background:linear-gradient(135deg,var(--color-primary-100),var(--color-primary-50));color:var(--color-primary-700)}.nav-link.active svg{transform:scale(1.15);filter:drop-shadow(0 2px 4px rgba(33,150,243,.3))}.btn-primary{background:linear-gradient(135deg,var(--color-primary-600),var(--color-primary-500));color:#fff;border:none;padding:var(--spacing-4) var(--spacing-6);border-radius:var(--radius-lg);font-size:var(--font-size-base);font-weight:var(--font-weight-bold);cursor:pointer;box-shadow:var(--shadow-md),var(--shadow-primary);transition:all var(--transition-base);position:relative;overflow:hidden}.btn-primary:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.2),transparent);opacity:0;transition:opacity var(--transition-base);pointer-events:none}.btn-primary:hover:before{opacity:1}.btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg),var(--shadow-primary)}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-secondary{background:transparent;color:var(--color-primary-500);border:2px solid var(--color-primary-500);padding:calc(var(--spacing-4) - 2px) calc(var(--spacing-6) - 2px);border-radius:var(--radius-lg);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-base)}.btn-secondary:hover{background:var(--color-primary-50);transform:translateY(-1px)}.btn-secondary:active{transform:translateY(0)}.btn-danger{background:linear-gradient(135deg,var(--color-danger-600),var(--color-danger-500));color:#fff;border:none;padding:var(--spacing-4) var(--spacing-6);border-radius:var(--radius-lg);font-size:var(--font-size-base);font-weight:var(--font-weight-bold);cursor:pointer;box-shadow:var(--shadow-md);transition:all var(--transition-base)}.btn-danger:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);opacity:1}.btn-danger:active{transform:translateY(0)}.btn-text{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;font-size:var(--font-size-sm);text-decoration:underline;transition:color var(--transition-fast)}.btn-text:hover{color:var(--color-primary-500)}.dashboard-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--spacing-4)}.dashboard-header-right{display:flex;align-items:center;gap:var(--spacing-3)}.btn-print-link{font-size:1.2rem;text-decoration:none;opacity:.6;transition:opacity var(--transition-fast);line-height:1}.btn-print-link:hover{opacity:1}.dashboard-header h1{font-size:var(--font-size-xl);font-weight:var(--font-weight-extrabold);background:linear-gradient(135deg,var(--color-primary-600),var(--color-primary-500));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.02em;margin-bottom:var(--spacing-2)}.dashboard-date{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.dashboard-summary{background:var(--color-bg-elevated);border:1px solid var(--color-border-subtle);border-radius:var(--radius-xl);padding:var(--spacing-5);margin-bottom:var(--spacing-6);box-shadow:var(--shadow-md);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-align:center}.dashboard-empty{text-align:center;margin-top:var(--spacing-12)}.dashboard-empty p{margin-bottom:var(--spacing-4);color:var(--color-text-secondary)}.page-loading{text-align:center;padding:var(--spacing-12);color:var(--color-text-secondary)}.skeleton-card{background:var(--color-bg-elevated);border-radius:var(--radius-xl);padding:var(--spacing-4);margin-bottom:var(--spacing-3);box-shadow:var(--shadow-sm)}.skeleton-line{height:16px;background:linear-gradient(90deg,var(--color-neutral-200) 25%,var(--color-neutral-100) 50%,var(--color-neutral-200) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-sm);margin-bottom:var(--spacing-2)}.skeleton-line:last-child{width:60%;margin-bottom:0}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.inactive-section{margin-top:var(--spacing-6)}.inactive-section-toggle{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);cursor:pointer;padding:var(--spacing-2) 0;margin-bottom:var(--spacing-3);list-style:none}.inactive-section-toggle::-webkit-details-marker{display:none}.inactive-section-toggle:before{content:"▸ "}.inactive-section[open]>.inactive-section-toggle:before{content:"▾ "}.exercise-list{display:flex;flex-direction:column;gap:var(--spacing-3)}.exercise-card{background:var(--color-bg-elevated);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-subtle);overflow:hidden;position:relative;transition:all var(--transition-base);transform-origin:center}.exercise-card:before{content:"";position:absolute;inset:0;border-radius:var(--radius-xl);padding:2px;background:linear-gradient(135deg,var(--color-primary-500),var(--color-primary-700));-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity var(--transition-base);pointer-events:none}.exercise-card:hover:before{opacity:1}.exercise-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.exercise-card:active{transform:translateY(0);box-shadow:var(--shadow-sm)}.exercise-card-done{background:linear-gradient(135deg,var(--color-success-50),var(--color-bg-elevated));border-color:var(--color-success-500);opacity:1}.exercise-card-inactive{opacity:.5}.exercise-card-position{display:inline-flex;align-items:center;gap:var(--spacing-1);padding:var(--spacing-1) var(--spacing-3);border-radius:var(--radius-full);background:linear-gradient(135deg,var(--color-primary-100),var(--color-primary-50));color:var(--color-primary-700);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.025em;border:1px solid var(--color-primary-500)}.exercise-card-done .exercise-card-position{background:var(--color-success-50);color:var(--color-success-600);border-color:var(--color-success-500)}.exercise-card-times{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);background:var(--color-neutral-100);padding:var(--spacing-1) var(--spacing-3);border-radius:var(--radius-full);border:1px solid var(--color-neutral-300)}.exercise-card-paused{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);background:var(--color-neutral-200);padding:var(--spacing-1) var(--spacing-3);border-radius:var(--radius-full)}.exercise-card-days-old{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-warning-700, #92400e);background:var(--color-warning-50, #fffbeb);padding:var(--spacing-1) var(--spacing-3);border-radius:var(--radius-full);border:1px solid var(--color-warning-400, #fbbf24)}.exercise-card-header{padding:var(--spacing-4);cursor:pointer}.exercise-card-title-row{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-2);margin-bottom:var(--spacing-2)}.exercise-card-badges{display:flex;align-items:center;gap:var(--spacing-2);flex-shrink:0}.exercise-card-title{font-size:var(--font-size-md);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.exercise-card-reps{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.exercise-card-details{padding:0 var(--spacing-4) var(--spacing-4);animation:expandIn var(--duration-normal) var(--ease-out);transform-origin:top}@keyframes expandIn{0%{opacity:0;transform:scaleY(.95)}to{opacity:1;transform:scaleY(1)}}.exercise-card-image{width:100%;max-height:200px;object-fit:contain;border-radius:var(--radius-md);margin-bottom:var(--spacing-2)}.exercise-card-desc{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--spacing-3);white-space:pre-wrap;line-height:var(--line-height-relaxed)}.btn-note{display:inline-flex;align-items:center;justify-content:center;width:48px;padding:0;background:var(--color-bg-elevated);border:2px solid var(--color-border-subtle);border-radius:var(--radius-lg);cursor:pointer;color:var(--color-text-secondary);transition:all var(--transition-base);flex-shrink:0;box-shadow:var(--shadow-sm)}.exercise-card-actions-inactive{justify-content:flex-end}.btn-note:hover{border-color:var(--color-primary-500);color:var(--color-primary-500);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-note-active{border-color:var(--color-primary-400);color:var(--color-primary-600);background:var(--color-primary-50)}.exercise-card-done .btn-note-active{border-color:var(--color-success-500);color:var(--color-success-600);background:var(--color-success-50)}.btn-note-open{border-color:var(--color-primary-500);color:var(--color-primary-600);background:var(--color-primary-100)}.exercise-card-note{padding:0 var(--spacing-4) var(--spacing-3);display:flex;flex-direction:column;gap:var(--spacing-2);animation:expandIn var(--duration-normal) var(--ease-out)}.exercise-card-note-textarea{width:100%;padding:var(--spacing-3);border:1.5px solid var(--color-border-subtle);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-family:var(--font-family-base);background:var(--color-neutral-50);color:var(--color-text-primary);resize:vertical;min-height:72px;line-height:var(--line-height-relaxed);transition:border-color var(--transition-fast)}.exercise-card-note-textarea:focus{outline:none;border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-primary-50)}.btn-note-clear{background:none;border:none;color:var(--color-danger-500);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);cursor:pointer;padding:0;text-align:left;text-decoration:underline;width:fit-content}.btn-note-clear:hover{color:var(--color-danger-600)}.exercise-card-actions{display:flex;gap:var(--spacing-2);padding:0 var(--spacing-4) var(--spacing-4)}.btn-log{flex:1;background:linear-gradient(135deg,var(--color-primary-600),var(--color-primary-500));color:#fff;border:none;padding:var(--spacing-4);border-radius:var(--radius-lg);font-size:var(--font-size-base);font-weight:var(--font-weight-bold);cursor:pointer;box-shadow:var(--shadow-sm);transition:all var(--transition-base);position:relative;overflow:hidden}.btn-log:before{content:"";position:absolute;inset:0;background:radial-gradient(circle,rgba(255,255,255,.4) 0%,transparent 70%);transform:scale(0);opacity:0;pointer-events:none}.btn-log:active:before{transform:scale(2.5);opacity:1;transition:transform .6s var(--ease-out),opacity var(--duration-normal)}.btn-log:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-log:active{transform:translateY(0)}.btn-log-done{background:linear-gradient(135deg,var(--color-success-600),var(--color-success-500));box-shadow:var(--shadow-success)}.btn-log-done:hover{transform:translateY(-1px);box-shadow:var(--shadow-success),var(--shadow-md)}.btn-undo{width:48px;background:var(--color-bg-elevated);border:2px solid var(--color-border-subtle);border-radius:var(--radius-lg);font-size:1.3rem;font-weight:var(--font-weight-bold);cursor:pointer;color:var(--color-text-secondary);transition:all var(--transition-base);box-shadow:var(--shadow-sm)}.btn-undo:hover:not(:disabled){border-color:var(--color-primary-500);color:var(--color-primary-500);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-undo:active:not(:disabled){transform:translateY(0)}.btn-undo:disabled{opacity:.3;cursor:not-allowed}.progress-bar-container{display:flex;align-items:center;gap:var(--spacing-3)}.progress-bar-track{flex:1;height:10px;background:var(--color-neutral-200);border-radius:var(--radius-full);overflow:hidden;box-shadow:inset 0 2px 4px #0000000f}.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--color-primary-600),var(--color-primary-500));border-radius:var(--radius-full);transition:width .5s var(--ease-out);position:relative;overflow:hidden}.progress-bar-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:progressShimmer 2s infinite}@keyframes progressShimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.progress-bar-done{background:linear-gradient(90deg,var(--color-success-600),var(--color-success-500));box-shadow:0 0 20px #4caf5066}.progress-bar-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);white-space:nowrap;font-variant-numeric:tabular-nums}.exercise-form-page h1{font-size:var(--font-size-xl);font-weight:var(--font-weight-extrabold);margin-bottom:var(--spacing-4);color:var(--color-text-primary)}.exercise-form{display:flex;flex-direction:column;gap:var(--spacing-4)}.form-field{display:flex;flex-direction:column;gap:var(--spacing-2)}.form-field span,.form-field label{font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);color:var(--color-text-primary);margin-bottom:var(--spacing-1)}.form-field input,.form-field textarea,.form-field select{padding:var(--spacing-4);border:2px solid var(--color-border-subtle);border-radius:var(--radius-lg);font-size:var(--font-size-base);font-family:var(--font-family-base);background:var(--color-bg-elevated);transition:all var(--transition-base);color:var(--color-text-primary)}.form-field input:focus,.form-field textarea:focus,.form-field select:focus{outline:none;border-color:var(--color-primary-500);box-shadow:0 0 0 4px var(--color-primary-50),var(--shadow-primary)}.form-hint{font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);color:var(--color-text-secondary);font-style:italic}.form-field-toggle{flex-direction:row;align-items:center;justify-content:space-between;padding:var(--spacing-3) var(--spacing-4);background:var(--color-neutral-50);border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);cursor:pointer}.form-field-toggle span{margin-bottom:0}.form-toggle{width:44px;height:24px;appearance:none;background:var(--color-neutral-300);border-radius:var(--radius-full);cursor:pointer;position:relative;transition:background .2s;flex-shrink:0}.form-toggle:after{content:"";position:absolute;width:18px;height:18px;background:#fff;border-radius:50%;top:3px;left:3px;transition:transform .2s;box-shadow:var(--shadow-sm)}.form-toggle:checked{background:var(--color-primary-500)}.form-toggle:checked:after{transform:translate(20px)}.form-actions{display:flex;gap:var(--spacing-3);margin-top:var(--spacing-2)}.form-actions .btn-primary{flex:1}.image-upload{display:flex;flex-direction:column;gap:var(--spacing-2);align-items:flex-start}.image-upload-preview{width:100%;max-height:200px;object-fit:contain;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.image-upload-label{display:inline-block;padding:calc(var(--spacing-4) - 2px) calc(var(--spacing-6) - 2px);background:transparent;color:var(--color-primary-500);border:2px solid var(--color-primary-500);border-radius:var(--radius-lg);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-base)}.image-upload-label:hover:not(:disabled){background:var(--color-primary-50)}.image-upload-label:disabled{opacity:.5;cursor:not-allowed}.settings-page h1{font-size:var(--font-size-xl);font-weight:var(--font-weight-extrabold);margin-bottom:var(--spacing-5);color:var(--color-text-primary)}.settings-section{background:var(--color-bg-elevated);border:1px solid var(--color-border-subtle);border-radius:var(--radius-xl);padding:var(--spacing-6);margin-bottom:var(--spacing-6);box-shadow:var(--shadow-sm)}.settings-section h2{font-size:var(--font-size-md);font-weight:var(--font-weight-bold);margin-bottom:var(--spacing-2);color:var(--color-text-primary)}.settings-hint{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--spacing-3)}.sync-code-display{display:flex;align-items:center;gap:var(--spacing-3)}.sync-code-value{font-family:var(--font-family-mono);font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);letter-spacing:.15em;background:var(--color-bg-elevated);padding:var(--spacing-4) var(--spacing-6);border-radius:var(--radius-lg);border:2px solid var(--color-primary-500);color:var(--color-primary-700);box-shadow:var(--shadow-sm)}.sync-code-input{display:flex;gap:var(--spacing-2)}.sync-code-input input{flex:1;padding:var(--spacing-4);border:2px solid var(--color-border-subtle);border-radius:var(--radius-lg);font-size:var(--font-size-base);font-family:var(--font-family-base);background:var(--color-bg-elevated);transition:all var(--transition-base)}.sync-code-input input:focus{outline:none;border-color:var(--color-primary-500);box-shadow:0 0 0 4px var(--color-primary-50),var(--shadow-primary)}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-4)}.modal-content{background:var(--color-bg-elevated);border-radius:var(--radius-xl);padding:var(--spacing-6);max-width:400px;width:100%;display:flex;flex-direction:column;gap:var(--spacing-3);box-shadow:var(--shadow-xl)}.modal-content h2{font-size:var(--font-size-md);font-weight:var(--font-weight-bold);margin-bottom:var(--spacing-2)}.btn-capture-primary{background:linear-gradient(135deg,var(--color-primary-600),var(--color-primary-500));color:#fff;border:none;padding:var(--spacing-4);border-radius:var(--radius-lg);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);cursor:pointer;min-height:56px;transition:all var(--transition-base);box-shadow:var(--shadow-md)}.btn-capture-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.btn-capture-secondary{background:transparent;color:var(--color-primary-500);border:2px solid var(--color-primary-500);padding:calc(var(--spacing-4) - 2px);border-radius:var(--radius-lg);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);cursor:pointer;min-height:56px;transition:all var(--transition-base)}.btn-capture-secondary:hover{background:var(--color-primary-50)}.crop-modal-overlay{position:fixed;inset:0;background:#000;z-index:1001;display:flex;flex-direction:column}.crop-modal-header{background:var(--color-bg-elevated);padding:var(--spacing-4);border-bottom:1px solid var(--color-border-subtle)}.crop-modal-header h2{font-size:var(--font-size-md);font-weight:var(--font-weight-bold);margin-bottom:var(--spacing-1)}.crop-hint{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.crop-container{flex:1;overflow:auto;display:flex;align-items:center;justify-content:center;padding:var(--spacing-4);background:#000}.crop-image{max-width:100%;max-height:100%;display:block;touch-action:none}.crop-modal-actions{background:var(--color-bg-elevated);padding:var(--spacing-4);display:flex;gap:var(--spacing-3);border-top:1px solid var(--color-border-subtle)}.crop-modal-actions .btn-primary{flex:2}.crop-modal-actions .btn-secondary{flex:1}.camera-capture-overlay{position:fixed;inset:0;background:#000;z-index:1002;display:flex;flex-direction:column}.camera-capture-container{flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden}.camera-video{width:100%;height:100%;object-fit:contain}.camera-capture-controls{background:var(--color-bg-elevated);padding:var(--spacing-6);display:flex;gap:var(--spacing-3);border-top:1px solid var(--color-border-subtle)}.btn-camera-capture{flex:2;background:linear-gradient(135deg,var(--color-primary-600),var(--color-primary-500));color:#fff;border:none;padding:var(--spacing-4);border-radius:var(--radius-lg);font-size:var(--font-size-md);font-weight:var(--font-weight-bold);cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-md)}.btn-camera-capture:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-lg)}.btn-camera-capture:disabled{opacity:.5;cursor:not-allowed}.camera-capture-error{position:fixed;inset:0;background:#000000e6;z-index:1002;display:flex;align-items:center;justify-content:center;padding:var(--spacing-4)}.camera-error-content{background:var(--color-bg-elevated);border-radius:var(--radius-xl);padding:var(--spacing-8);max-width:400px;text-align:center;box-shadow:var(--shadow-xl)}.camera-error-content p{margin-bottom:var(--spacing-4);color:var(--color-danger-500)}.print-main{flex:1;width:100%}.print-view-toolbar{display:flex;gap:var(--spacing-3);padding:var(--spacing-4) var(--spacing-6);background:var(--color-bg-elevated);border-bottom:1px solid var(--color-border-subtle);position:sticky;top:0;z-index:10}.print-page{max-width:1040px;margin:0 auto;padding:var(--spacing-8) var(--spacing-6)}.print-page-header{text-align:center;margin-bottom:var(--spacing-8);padding-bottom:var(--spacing-6);border-bottom:2px solid var(--color-border-subtle)}.print-page-header h1{font-size:var(--font-size-xl);font-weight:var(--font-weight-extrabold);color:var(--color-text-primary);margin-bottom:var(--spacing-2)}.print-page-date{font-size:var(--font-size-base);color:var(--color-text-secondary)}.print-section-title{font-size:var(--font-size-md);font-weight:var(--font-weight-bold);color:var(--color-text-secondary);margin:var(--spacing-8) 0 var(--spacing-4);padding-bottom:var(--spacing-2);border-bottom:1px solid var(--color-border-subtle);text-transform:uppercase;letter-spacing:.05em}.print-exercise-list{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--spacing-4)}.print-exercise-list-inactive{opacity:.6}.print-exercise{border:1px solid var(--color-border-subtle);border-radius:var(--radius-xl);padding:var(--spacing-5);background:var(--color-bg-elevated);box-shadow:var(--shadow-sm);page-break-inside:avoid;break-inside:avoid}.print-exercise-header{display:flex;align-items:flex-start;gap:var(--spacing-3);margin-bottom:var(--spacing-4)}.print-exercise-meta{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-2);flex-shrink:0}.print-exercise-number{width:28px;height:28px;background:var(--color-primary-600);color:#fff;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:var(--font-size-sm);font-weight:var(--font-weight-bold)}.print-position-badge{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);padding:2px var(--spacing-2);border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.print-position-laying{background:var(--color-primary-100);color:var(--color-primary-700);border:1px solid var(--color-primary-300)}.print-position-seated{background:#fef3c7;color:#92400e;border:1px solid #fcd34d}.print-position-standing{background:#d1fae5;color:#065f46;border:1px solid #6ee7b7}.print-exercise-title-block{flex:1}.print-exercise-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin-bottom:var(--spacing-1)}.print-exercise-sets{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-primary-600)}.print-exercise-body{display:flex;flex-direction:column;gap:var(--spacing-3);margin-bottom:var(--spacing-4)}.print-exercise-image{width:100%;max-height:160px;object-fit:contain;border-radius:var(--radius-md);border:1px solid var(--color-border-subtle);background:var(--color-bg-primary)}.print-exercise-desc{font-size:var(--font-size-sm);color:var(--color-text-secondary);white-space:pre-wrap;line-height:var(--line-height-relaxed);flex:1}.print-exercise-tracker{display:flex;gap:var(--spacing-2);flex-wrap:wrap;border-top:1px solid var(--color-border-subtle);padding-top:var(--spacing-3)}.print-set-box{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-1)}.print-set-label{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.print-set-check{width:36px;height:36px;border:2px solid var(--color-border-subtle);border-radius:var(--radius-md)}.print-empty{color:var(--color-text-secondary);text-align:center;padding:var(--spacing-8)}@media print{.no-print{display:none!important}body{background:#fff}.print-page{padding:0;max-width:none}.print-exercise-list{grid-template-columns:1fr 1fr 1fr}.print-exercise{box-shadow:none;border-color:#ccc}.print-exercise-number,.print-position-badge,.print-exercise-sets{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
