:root{--font-sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, "SF Mono", "Cascadia Code", "Source Code Pro", Menlo, Consolas, monospace;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--space-12: 3rem;--space-16: 4rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .2s cubic-bezier(.4, 0, .2, 1);--transition-slow: .3s cubic-bezier(.4, 0, .2, 1)}:root,:root[data-theme=light]{--color-bg: #ffffff;--color-bg-secondary: #f8f9fa;--color-bg-tertiary: #f1f3f5;--color-surface: #ffffff;--color-surface-hover: #f8f9fa;--color-text-primary: #212529;--color-text-secondary: #6c757d;--color-text-tertiary: #adb5bd;--color-border: #dee2e6;--color-border-hover: #ced4da;--color-primary: #6366f1;--color-primary-hover: #4f46e5;--color-primary-active: #4338ca;--color-success: #10b981;--color-error: #ef4444;--color-warning: #f59e0b;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1)}:root[data-theme=dark]{--color-bg: #0f172a;--color-bg-secondary: #1e293b;--color-bg-tertiary: #334155;--color-surface: #1e293b;--color-surface-hover: #334155;--color-text-primary: #f1f5f9;--color-text-secondary: #cbd5e1;--color-text-tertiary: #64748b;--color-border: #334155;--color-border-hover: #475569;--color-primary: #818cf8;--color-primary-hover: #a5b4fc;--color-primary-active: #c7d2fe;--color-success: #34d399;--color-error: #f87171;--color-warning: #fbbf24;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .5);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .5), 0 2px 4px -2px rgb(0 0 0 / .5);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .5), 0 4px 6px -4px rgb(0 0 0 / .5);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .5), 0 8px 10px -6px rgb(0 0 0 / .5)}*,*:before,*:after{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{margin:0;font-family:var(--font-sans);font-size:1rem;line-height:1.6;color:var(--color-text-primary);background-color:var(--color-bg);transition:background-color var(--transition-base),color var(--transition-base)}#root{min-height:100vh;display:flex;flex-direction:column}h1,h2,h3,h4,h5,h6{margin:0 0 var(--space-4);font-weight:600;line-height:1.2;color:var(--color-text-primary)}h1{font-size:2.5rem;font-weight:700;letter-spacing:-.02em}h2{font-size:2rem;font-weight:600}h3{font-size:1.5rem}p{margin:0 0 var(--space-4)}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-hover);text-decoration:underline}label{display:block;margin-bottom:var(--space-2);font-size:.875rem;font-weight:500;color:var(--color-text-secondary)}input[type=text],input[type=email],input[type=password],input[type=number],textarea,select{width:100%;padding:var(--space-3) var(--space-4);font-family:var(--font-sans);font-size:1rem;line-height:1.5;color:var(--color-text-primary);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--transition-fast);-webkit-appearance:none;-moz-appearance:none;appearance:none}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #6366f11a}input:disabled,textarea:disabled,select:disabled{opacity:.6;cursor:not-allowed}input::placeholder,textarea::placeholder{color:var(--color-text-tertiary)}button{font-family:var(--font-sans);font-size:1rem;font-weight:500;cursor:pointer;border:none;transition:all var(--transition-fast)}button:disabled{opacity:.6;cursor:not-allowed}button[type=submit],.btn-primary{padding:var(--space-3) var(--space-6);color:#fff;background-color:var(--color-primary);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}button[type=submit]:hover:not(:disabled),.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}button[type=submit]:active:not(:disabled),.btn-primary:active:not(:disabled){background-color:var(--color-primary-active);transform:translateY(0)}.btn-secondary{padding:var(--space-3) var(--space-6);color:var(--color-text-primary);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.btn-secondary:hover:not(:disabled){background-color:var(--color-surface-hover);border-color:var(--color-border-hover)}.btn-ghost{padding:var(--space-3) var(--space-6);color:var(--color-text-secondary);background-color:transparent;border-radius:var(--radius-md)}.btn-ghost:hover:not(:disabled){background-color:var(--color-bg-secondary);color:var(--color-text-primary)}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;padding:0;color:var(--color-text-secondary);background-color:transparent;border-radius:var(--radius-md)}.btn-icon:hover:not(:disabled){background-color:var(--color-bg-secondary);color:var(--color-text-primary)}.card{padding:var(--space-6);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.card-hover{transition:all var(--transition-base)}.card-hover:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.container{width:100%;max-width:1200px;margin-left:auto;margin-right:auto;padding-left:var(--space-4);padding-right:var(--space-4)}.container-sm{max-width:640px}.text-center{text-align:center}.text-secondary{color:var(--color-text-secondary)}.text-error{color:var(--color-error)}.spinner{display:inline-block;width:1.25rem;height:1.25rem;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.workout-shell{grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr)}.diet-layout{display:grid;grid-template-columns:minmax(260px,.45fr) minmax(0,1fr);gap:var(--space-6);align-items:start}.quick-meal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}.quick-day-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:var(--space-2)}.quick-meal-grid .btn-secondary{padding:var(--space-2)}.compact-inline-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-3);align-items:end}.meal-token{display:inline-flex;align-items:center;justify-content:center;min-width:2rem;min-height:2rem;padding:0 var(--space-2);color:#fff;background-color:var(--color-primary);border-radius:var(--radius-md);font-size:.875rem}.macro-summary{display:grid;grid-template-columns:repeat(4,minmax(64px,1fr));gap:var(--space-2)}.macro-summary>div{display:grid;gap:.125rem;padding:var(--space-2);background-color:var(--color-bg-secondary);border-radius:var(--radius-md)}.macro-summary strong{font-size:1.1rem}.macro-summary span{color:var(--color-text-secondary);font-size:.78rem}.food-form{display:grid;grid-template-columns:minmax(180px,1.4fr) minmax(72px,.6fr) minmax(90px,.7fr) repeat(4,minmax(72px,.6fr)) auto;gap:var(--space-2);align-items:end;padding:var(--space-3);background-color:var(--color-bg-secondary);border-radius:var(--radius-md)}.food-entry-panel{display:grid;gap:var(--space-2);padding:var(--space-3);background-color:var(--color-bg-secondary);border-radius:var(--radius-md)}.food-preset-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-2)}.food-preset-grid .btn-secondary{padding:var(--space-2);font-size:.875rem}.food-form button{min-height:3rem}.food-list{display:grid;gap:var(--space-2);margin-top:var(--space-4)}.food-row{display:grid;grid-template-columns:minmax(160px,1fr) minmax(260px,auto) auto;gap:var(--space-3);align-items:center;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md)}.food-macros{display:grid;grid-template-columns:repeat(4,minmax(54px,auto));gap:var(--space-2);color:var(--color-text-secondary);font-size:.875rem;text-align:right}.diet-day-meals{display:grid;gap:var(--space-2)}.diet-mini-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-1) var(--space-3);padding:var(--space-3);background-color:var(--color-bg-secondary);border-radius:var(--radius-md)}.diet-mini-summary span{color:var(--color-text-secondary);font-size:.875rem}.diet-mini-summary span:last-child{grid-column:1 / -1}.routine-day-status{margin:var(--space-1) 0 0;font-size:.8rem;font-weight:700}.routine-day-status-ready{color:var(--color-success)}.routine-day-status-empty{color:var(--color-warning)}.workout-set-row{grid-template-columns:3rem repeat(3,minmax(72px,1fr)) minmax(220px,1.2fr) auto}.workout-set-target,.workout-set-notes{grid-column:1 / -1}.workout-set-notes textarea{resize:vertical}.workout-quick-controls{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-2)}.workout-quick-controls .btn-secondary{padding:var(--space-2);white-space:nowrap}.exercise-stepper{display:flex;gap:var(--space-2);overflow-x:auto}.exercise-stepper button{display:inline-flex;align-items:center;gap:var(--space-2);flex:0 0 auto}.exercise-stepper-count{display:inline-flex;align-items:center;justify-content:center;min-width:2.25rem;padding:.125rem var(--space-2);border-radius:var(--radius-sm);background-color:#ffffff2e;font-size:.8rem;font-weight:700}.btn-secondary .exercise-stepper-count{background-color:var(--color-bg-tertiary);color:var(--color-text-secondary)}.exercise-stepper-complete{border:1px solid var(--color-success)}.prescription-editor{grid-template-columns:4rem repeat(3,minmax(84px,1fr))}.session-set-summary{grid-template-columns:4rem repeat(3,minmax(70px,1fr))}.session-set-notes{grid-column:1 / -1;padding-top:var(--space-1)}.rest-timer-controls{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);background-color:var(--color-bg-secondary);border-radius:var(--radius-md);font-weight:700}.rest-timer-controls .btn-secondary,.rest-timer-controls .btn-ghost{padding:var(--space-2) var(--space-3)}.progression-hint{padding:var(--space-3);margin-bottom:var(--space-3);color:var(--color-text-secondary);background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:.9rem}.progression-hint-positive{color:var(--color-success);border-color:var(--color-success)}.progression-hint-warning{color:var(--color-warning);border-color:var(--color-warning)}@media (max-width: 760px){h1{font-size:2rem}h2{font-size:1.5rem}.card{padding:var(--space-4)}.workout-shell,.diet-layout,.compact-inline-form,.food-form,.food-row{grid-template-columns:1fr}.macro-summary,.quick-meal-grid,.quick-day-grid,.food-preset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.food-macros{grid-template-columns:repeat(2,minmax(0,1fr));text-align:left}.prescription-editor{grid-template-columns:1fr}.session-set-summary{grid-template-columns:1fr 1fr}.workout-set-row{grid-template-columns:repeat(3,minmax(0,1fr))}.workout-set-row>strong,.workout-set-row>.workout-quick-controls,.workout-set-row>.workout-set-notes,.workout-set-row>button{grid-column:1 / -1}.workout-quick-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.workout-set-row>button{min-height:3rem}.rest-timer-controls{width:100%;justify-content:space-between}}.auth-layout{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:var(--space-4);background:linear-gradient(135deg,var(--color-bg) 0%,var(--color-bg-secondary) 100%)}.auth-card{width:100%;max-width:420px;padding:var(--space-8);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl)}.auth-header{margin-bottom:var(--space-8);text-align:center}.auth-title{margin-bottom:var(--space-2);font-size:2rem;font-weight:700;color:var(--color-text-primary)}.auth-subtitle{margin:0;font-size:.95rem;color:var(--color-text-secondary)}.auth-form{display:flex;flex-direction:column;gap:var(--space-4)}.form-group{display:flex;flex-direction:column}.form-group label{margin-bottom:var(--space-2);font-size:.875rem;font-weight:500;color:var(--color-text-secondary)}.form-error{padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);font-size:.875rem;color:var(--color-error);background-color:#ef44441a;border:1px solid rgba(239,68,68,.2);border-radius:var(--radius-md)}.auth-footer{margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--color-border);text-align:center;font-size:.9rem;color:var(--color-text-secondary)}.auth-footer a{font-weight:500;color:var(--color-primary)}.auth-footer a:hover{color:var(--color-primary-hover)}.submit-button{margin-top:var(--space-2);padding:var(--space-4) var(--space-6);font-size:1rem;font-weight:600}
