:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--primary:#3498db;--primary-hover:#2980b9;--danger:#e74c3c;--danger-hover:#c0392b;--success:#28a745;--success-hover:#1e7e34;--warning:#ffc107;--warning-bg:#fff3cd;--warning-text:#664d03;--success-bg:#d4edda;--success-text:#155724;--info-bg:#d1ecf1;--info-text:#0c5460;--danger-soft-bg:#fde8e8;--danger-soft-border:#fcc;--recover-bg:#fff8e1;--recover-text:#b26a00;--timer-bg-ready:#fff3cd;--timer-bg-active:#d1e7dd;--timer-bg-warn:#ffe0a3;--timer-bg-danger:#f8d7da;--bg:#f5f5f5;--bg-secondary:#f9f9f9;--surface:#fff;--text:#333;--text-muted:#666;--text-secondary:var(--text-muted);--text-light:#999;--border:#ddd;--border-subtle:#e9ecef;--surface-alt:#00000005;--surface-hover:#0000000a;--surface-variant:#0000000d;--primary-light:#e3f2fd;--block-bg:#3498db0f;--nav-bg:#2c3e50;--nav-text:#fff;--heading:var(--nav-bg);--font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"Courier New", ui-monospace, SFMono-Regular, Menlo, monospace;--font-size-xs:.75rem;--font-size-sm:.85rem;--font-size-base:1rem;--font-size-md:1.125rem;--font-size-lg:1.25rem;--font-size-xl:1.5rem;--line-height:1.6;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--max-width-sm:400px;--max-width-md:600px;--max-width-lg:900px;--max-width-xl:1200px;--radius:4px;--radius-sm:2px;--radius-lg:8px;--shadow-sm:0 2px 4px #0000001a;--shadow:0 2px 10px #0000001a;--shadow-lg:0 4px 20px #00000026;--transition:.2s}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#121212;--bg-secondary:#2a2a2a;--surface:#1e1e1e;--text:#e8e8e8;--text-muted:#a8a8a8;--text-light:gray;--border:#3a3a3a;--border-subtle:#333;--warning-bg:#4d3b00;--warning-text:#ffd54f;--success-bg:#28a7452e;--success-text:#7ddc8f;--info-bg:#17a2b82e;--info-text:#7fd4e4;--danger-soft-bg:#e74c3c29;--danger-soft-border:#e74c3c73;--recover-bg:#f39c1229;--recover-text:#ffcc80;--timer-bg-ready:#ffc10738;--timer-bg-active:#28a7453d;--timer-bg-warn:#ff980052;--timer-bg-danger:#e74c3c47;--surface-alt:#ffffff08;--surface-hover:#ffffff12;--surface-variant:#ffffff14;--primary-light:#3498db33;--block-bg:#3498db1f;--transition-duration:.25s;--heading:#e8e8e8;--shadow-sm:0 2px 4px #0006;--shadow:0 2px 10px #0006;--shadow-lg:0 4px 20px #00000080}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--bg);color:var(--text);line-height:var(--line-height)}.navbar{padding:var(--space-md) var(--space-xl);background-color:var(--nav-bg);color:var(--nav-text);justify-content:space-between;align-items:center;display:flex}.nav-brand{letter-spacing:1.5px;text-transform:uppercase;font-size:1.1rem;font-weight:700}.nav-brand a{color:var(--nav-text);transition:opacity var(--transition);text-decoration:none}.nav-brand a:hover{opacity:.8}.nav-links{align-items:center;gap:var(--space-lg);display:flex}.nav-links a{color:var(--nav-text);text-decoration:none}.nav-links a:hover{text-decoration:underline}.nav-user{color:#ecf0f1}.nav-points{color:#f39c12;border-radius:var(--radius);background:#f39c121a;align-items:center;gap:4px;padding:4px 8px;font-weight:600;display:inline-flex}.nav-points svg{color:#f39c12}.nav-settings-link{align-items:center;gap:6px;display:inline-flex}.nav-bell-link{justify-content:center;align-items:center;display:inline-flex;position:relative}.nav-requests-badge{background:var(--danger);color:#fff;border-radius:10px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:.72rem;font-weight:700;line-height:1;display:inline-flex}.nav-bell-link .nav-requests-badge{pointer-events:none;position:absolute;top:-6px;right:-10px}.auth-error-banner{background-color:var(--warning-bg);color:var(--warning-text);padding:var(--space-xs) var(--space-md);font-size:var(--font-size-sm);border-bottom:1px solid var(--warning);justify-content:space-between;align-items:center;display:flex}.auth-error-dismiss{color:var(--warning-text);cursor:pointer;padding:0 var(--space-xs);background:0 0;border:none;font-size:1.2rem;line-height:1}.auth-error-dismiss:hover{opacity:.7}.btn-logout{background-color:var(--danger);color:var(--nav-text);padding:var(--space-sm) var(--space-md);border-radius:var(--radius);cursor:pointer;transition:background-color var(--transition);border:none}.btn-logout:hover{background-color:var(--danger-hover)}.auth-container{max-width:var(--max-width-sm);padding:var(--space-xl);background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow);margin:4rem auto}.auth-container h2{margin-bottom:var(--space-lg);text-align:center}.auth-container .form-group label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:var(--space-xs);font-size:.8rem;font-weight:600}.form-group label{margin-bottom:var(--space-sm);display:block}.form-group input{border:1px solid var(--border);border-radius:var(--radius);width:100%;font-size:var(--font-size-base);padding:.75rem}button[type=submit]{background-color:var(--primary);width:100%;color:var(--nav-text);border-radius:var(--radius);font-size:var(--font-size-base);cursor:pointer;margin-top:var(--space-md);transition:background-color var(--transition);border:none;padding:.75rem}button[type=submit]:hover:not(:disabled){background-color:var(--primary-hover)}button[type=submit]:disabled{background-color:var(--text-light);cursor:not-allowed}.error{background-color:var(--danger-soft-bg);border:1px solid var(--danger-soft-border);color:var(--danger);border-radius:var(--radius);margin-bottom:var(--space-md);padding:.75rem}.auth-container p{text-align:center;margin-top:var(--space-md)}.auth-container a{color:var(--primary)}.dashboard{max-width:var(--max-width-md);padding:var(--space-xl);background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow);margin:4rem auto}.dashboard h2{margin-bottom:var(--space-lg)}.user-info{background-color:var(--bg-secondary);padding:var(--space-md);border-radius:var(--radius);margin-bottom:var(--space-md)}.user-info p{margin-bottom:var(--space-sm)}.loading{height:100vh;font-size:var(--font-size-lg);color:var(--text-muted);justify-content:center;align-items:center;display:flex}.app-selector-bg{min-height:100vh;position:relative}.app-selector{max-width:var(--max-width-lg);margin:var(--space-xl) auto;padding:var(--space-xl)}.app-selector h1{margin-bottom:var(--space-sm)}.app-selector h2{margin-bottom:var(--space-lg);color:var(--text-muted)}.app-grid{gap:var(--space-lg);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.app-card{padding:var(--space-xl);background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow);color:inherit;transition:transform var(--transition), box-shadow var(--transition);text-decoration:none;display:block}.app-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}.app-card h3{margin-bottom:var(--space-sm);color:var(--heading)}.app-card p{color:var(--text-muted);font-size:.9rem}.app-card-locked{opacity:.7;background:var(--surface)}.app-card-locked:hover{opacity:.85;transform:none}.app-card-link{color:inherit;text-decoration:none;display:block}.app-card-locked-content{text-align:center}.app-card-locked-content h3{color:var(--text-muted)}.app-status-locked{color:var(--warning);font-weight:600}.app-status-expired{color:var(--danger);font-weight:600}.app-expiry{color:var(--success);margin-top:var(--space-sm);font-size:.8rem}.app-header{margin-bottom:var(--space-lg);justify-content:space-between;align-items:center;display:flex}.app-header h2{margin-bottom:0}.app-header-actions{align-items:center;gap:var(--space-md);display:flex}.dashboard-widgets{gap:var(--space-xl);flex-direction:column;display:flex}.dashboard-widget{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:var(--space-lg);color:var(--heading)}.dashboard-widget-header{margin-bottom:var(--space-md);justify-content:space-between;align-items:center;display:flex}.dashboard-widget-header h2{color:inherit;margin-bottom:0}.dashboard-widget-title-row{align-items:center;gap:var(--space-sm);display:flex}.dashboard-widget-collapse-btn{cursor:pointer;color:var(--text-muted);padding:var(--space-xs);background:0 0;border:none;font-size:.9rem;line-height:1}.dashboard-widget-controls{align-items:center;gap:var(--space-sm);display:flex}.dashboard-widget-controls button{border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-xs) var(--space-sm);cursor:pointer;color:var(--text-muted);background:0 0}.dashboard-widget-controls button:disabled{opacity:.4;cursor:not-allowed}.dashboard-widget-hide{color:var(--warning)!important}.dashboard-color-swatch{align-items:center;gap:var(--space-xs);cursor:pointer;font-size:.95rem;display:inline-flex}.dashboard-color-swatch input[type=color]{border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:0 0;width:24px;height:24px;padding:0}.dashboard-border-style-select{border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-xs);color:var(--text);background:var(--surface);cursor:pointer;font-size:.85rem}.dashboard-border-style-select:disabled{opacity:.4;cursor:not-allowed}.dashboard-color-reset{color:var(--text-muted);cursor:pointer;padding:0 var(--space-xs);background:0 0;border:none;font-size:1rem;line-height:1}.dashboard-page-style-controls{align-items:center;gap:var(--space-md);margin-bottom:var(--space-lg);padding:var(--space-sm) var(--space-md);background:var(--surface);border-radius:var(--radius-lg);border:1px dashed var(--border);display:flex}.dashboard-page-style-label{color:var(--text-muted);font-size:.9rem}.dashboard-skin-option{align-items:center;gap:var(--space-xs);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-xs) var(--space-sm);cursor:pointer;color:var(--text);background:0 0;font-size:.85rem;display:inline-flex}.dashboard-skin-option-active{border-color:var(--primary);background:var(--primary-light)}.dashboard-skin-option-preview{width:18px;height:18px}.dashboard-stamp-tray-item{align-items:center;gap:var(--space-xs);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-xs) var(--space-sm);cursor:grab;color:var(--text);background:0 0;font-size:.85rem;display:inline-flex}.dashboard-stamp-tray-preview{width:22px;height:22px}.dashboard-stamp-placed{z-index:5;position:absolute;transform:translate(-50%,-50%)}.dashboard-stamp-placed-img{-webkit-user-select:none;user-select:none;width:48px;height:48px;display:block}.dashboard-stamp-remove{border:1px solid var(--border);background:var(--surface);width:18px;height:18px;color:var(--danger);cursor:pointer;border-radius:50%;padding:0;font-size:.8rem;line-height:1;position:absolute;top:-8px;right:-8px}.dashboard-stamp-drag-ghost{pointer-events:none;opacity:.7;z-index:9999;width:48px;height:48px;position:fixed;transform:translate(-50%,-50%)}.dashboard-hidden-tray{margin-top:var(--space-lg);padding:var(--space-lg);background:var(--surface);border-radius:var(--radius-lg);border:1px dashed var(--border);align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.dashboard-hidden-tray h3{width:100%;color:var(--text-muted);margin-bottom:var(--space-xs);font-size:.9rem}.shop-btn{cursor:pointer;border-radius:var(--radius-lg);transition:transform var(--transition), box-shadow var(--transition);background:0 0;border:none;padding:0}.shop-btn:hover{box-shadow:var(--shadow-lg);transform:scale(1.05)}.shop-btn:disabled{opacity:.6;cursor:not-allowed}.shop-btn img{object-fit:contain;width:50px;height:50px}.modal-overlay{z-index:1000;background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:var(--surface);padding:var(--space-xl);border-radius:var(--radius-lg);width:90%;max-width:500px;max-height:80vh;overflow-y:auto}.modal-content h2{margin-bottom:var(--space-sm)}.modal-content .points-balance{color:var(--warning);margin-bottom:var(--space-lg);font-weight:600}.tour-overlay{z-index:10000;pointer-events:none;position:fixed;inset:0}.tour-dim,.tour-spotlight-hole{pointer-events:none;position:fixed}.tour-dim{background:#0009;inset:0}.tour-spotlight-hole{border-radius:var(--radius-md,6px);box-shadow:0 0 0 9999px #0009}.tour-demo-badge{top:var(--space-sm,8px);z-index:10001;background:var(--warning);color:#1a1a1a;border-radius:var(--radius-md,6px);pointer-events:none;padding:4px 14px;font-size:.8rem;font-weight:600;position:fixed;left:50%;transform:translate(-50%)}.tour-tooltip{z-index:10001;background:var(--surface);border-radius:var(--radius-lg);padding:var(--space-lg);pointer-events:auto;max-width:320px;position:fixed;box-shadow:0 4px 24px #00000059}.tour-tooltip-centered{top:50%;left:50%;transform:translate(-50%,-50%)}.tour-tooltip-close{cursor:pointer;color:var(--text-secondary,inherit);background:0 0;border:none;font-size:1.2rem;position:absolute;top:6px;right:10px}.tour-tooltip-step-counter{color:var(--text-secondary,inherit);margin-bottom:var(--space-xs,4px);font-size:.75rem}.tour-tooltip-actions{margin-top:var(--space-md,12px);justify-content:space-between;align-items:center;display:flex}.tour-tooltip-nav{gap:var(--space-sm,8px);display:flex}.tour-btn-skip{color:var(--text-secondary,inherit);cursor:pointer;background:0 0;border:none;text-decoration:underline}.shop-items{margin:var(--space-lg) 0}.shop-tabs{gap:var(--space-xs);margin-bottom:var(--space-md);display:flex}.shop-tab{padding:var(--space-sm) var(--space-md);border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:var(--radius)}.shop-tab.active{background:var(--primary);color:#fff;border-color:var(--primary)}.shop-item{padding:var(--space-md);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.shop-item:last-child{border-bottom:none}.shop-item-info h4{margin-bottom:var(--space-xs);color:var(--heading)}.shop-item-cost{color:var(--warning);font-weight:600}.license-choices{margin:var(--space-md) 0}.license-choice-item{padding:var(--space-md);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:var(--space-sm);justify-content:space-between;align-items:center;display:flex}.license-choice-info{flex-direction:column;display:flex}.text-muted{color:var(--text-muted);font-size:var(--font-size-sm)}.license-selector{max-width:var(--max-width-md);margin:var(--space-xl) auto;padding:var(--space-xl);text-align:center}.license-selector h2{margin-bottom:var(--space-lg)}.license-grid{gap:var(--space-md);margin:var(--space-lg) 0;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));display:grid}.license-card{padding:var(--space-lg);background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow);color:inherit;transition:transform var(--transition), box-shadow var(--transition);text-decoration:none;display:block}.license-card:hover{transform:translateY(-2px);box-shadow:0 4px 15px #0000001f}.license-card h3{color:var(--primary)}.app-page,.shared-page{max-width:var(--max-width-lg);margin:var(--space-xl) auto;padding:var(--space-xl)}.app-page h1,.shared-page h1{margin-bottom:var(--space-md);color:var(--heading)}.tool-grid{gap:var(--space-lg);margin-top:var(--space-xl);grid-template-columns:repeat(auto-fill,minmax(250px,1fr));display:grid}.tool-card{background:var(--surface);padding:var(--space-lg);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.tool-card h3{margin-bottom:var(--space-sm);color:var(--heading)}.tool-card p{color:var(--text-muted)}.profile-info{background:var(--surface);padding:var(--space-lg);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.profile-info p{margin-bottom:var(--space-sm)}.settings-section{background:var(--surface);padding:var(--space-lg);border-radius:var(--radius-lg);box-shadow:var(--shadow);margin-bottom:var(--space-lg)}.settings-section h3{margin-bottom:var(--space-md)}.settings-hint{font-size:var(--font-size-sm);color:var(--text-muted);margin-top:var(--space-xs)}.follow-requests-section{margin-top:var(--space-lg);padding-top:var(--space-lg);border-top:1px solid var(--border)}.follow-requests-section h4{margin-bottom:var(--space-md)}.requests-list{gap:var(--space-sm);flex-direction:column;display:flex}.request-item{padding:var(--space-sm) var(--space-md);background:var(--bg);border-radius:var(--radius);justify-content:space-between;align-items:center;display:flex}.request-actions{gap:var(--space-sm);display:flex}.request-actions button{padding:var(--space-xs) var(--space-md);border-radius:var(--radius);cursor:pointer;font-size:var(--font-size-sm);border:none}.request-actions button:first-child{background:var(--success);color:#fff}.request-actions button:last-child{background:var(--bg);color:var(--text);border:1px solid var(--border)}.btn-danger{background:var(--danger);color:#fff;border-radius:var(--radius);padding:var(--space-xs) var(--space-md);cursor:pointer;font-size:var(--font-size-sm);border:none}.btn-danger:hover{filter:brightness(.92)}.text-muted{color:var(--text-muted)}.follow-request-form{gap:var(--space-sm);margin-top:var(--space-md);align-items:flex-start;display:flex}.follow-request-form .form-group{flex:1;margin:0}.follow-request-form input{padding:var(--space-sm) var(--space-md);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-base);min-width:300px}.error-message{color:var(--danger);margin-top:var(--space-sm)}.success-message{color:var(--success);margin-top:var(--space-sm)}.selected-dates-info{margin-top:var(--space-sm);font-size:var(--font-size-sm);color:var(--text-muted)}.stats-grid{gap:var(--space-md);max-width:400px;margin:var(--space-xl) 0;grid-template-columns:repeat(2,1fr);display:grid}.stat-card{background:var(--surface);padding:var(--space-lg);border-radius:var(--radius-lg);box-shadow:var(--shadow);text-align:center}.stat-card h3{color:var(--primary);margin-bottom:var(--space-xs);font-size:2rem}.stat-card p{color:var(--text-muted);font-size:.9rem}.licenses-overview{margin:var(--space-xl) 0;max-width:500px}.licenses-overview h3,.app-licenses{margin-bottom:var(--space-md)}.app-licenses h4{color:var(--primary);margin-bottom:var(--space-sm)}.license-list{gap:var(--space-sm);flex-wrap:wrap;display:flex}.license-item{background:var(--surface);padding:var(--space-sm) var(--space-md);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.license-item.expiring-soon{background:var(--warning-bg);border:1px solid var(--warning)}.license-item.expired{background:var(--danger-soft-bg);border:1px solid var(--danger)}.license-expiry{color:var(--text-muted);font-size:var(--font-size-sm)}.license-item.expiring-soon .license-expiry{color:var(--warning-text)}.license-item.expired .license-expiry{color:var(--danger)}.quick-links{gap:var(--space-md);display:flex}.quick-links a{padding:var(--space-sm) var(--space-lg);background:var(--primary);color:var(--nav-text);border-radius:var(--radius);text-decoration:none}.quick-links a:hover{background:var(--primary-hover)}.field-error{color:var(--danger);font-size:var(--font-size-sm);margin-top:var(--space-xs);display:block}.password-requirements{margin-top:var(--space-sm);padding:var(--space-sm);background:var(--bg-secondary);border-radius:var(--radius);font-size:var(--font-size-sm)}.password-strength{margin-bottom:var(--space-sm);font-weight:500}.password-strength span{color:var(--text-muted)}.password-strength span.met{color:var(--success)}.password-hints{gap:var(--space-xs);flex-direction:column;display:flex}.password-hints small{color:var(--text-muted);margin-bottom:var(--space-xs)}.password-hints span{color:var(--text-light)}.password-hints span.met{color:var(--success)}.password-warning{margin-top:var(--space-sm);padding:var(--space-sm);background:var(--warning-bg);border:1px solid var(--warning);border-radius:var(--radius);color:var(--warning-text);font-size:.8rem}.toolbox-hamburger{bottom:var(--space-lg);right:var(--space-lg);background:var(--primary);cursor:pointer;width:50px;height:50px;box-shadow:var(--shadow-lg);z-index:100;border:none;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:5px;display:flex;position:fixed}.toolbox-hamburger span{background:var(--nav-text);border-radius:2px;width:24px;height:3px;display:block}.toolbox-hamburger:hover{background:var(--primary-hover)}.toolbox-sidenav{background:var(--surface);z-index:1000;flex-direction:column;width:350px;max-width:90%;height:100vh;animation:.2s ease-out slideIn;display:flex;position:fixed;top:0;right:0;box-shadow:-4px 0 20px #00000026}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.toolbox-sidenav-header{padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border);align-items:center;display:flex}.toolbox-sidenav-header h3{text-align:center;flex:1;margin:0}.toolbox-back-btn{color:var(--primary);cursor:pointer;font-size:var(--font-size-base);background:0 0;border:none}.toolbox-close-btn{cursor:pointer;color:var(--text-muted);background:0 0;border:none;font-size:1.5rem}.toolbox-sidenav-body{padding:var(--space-lg);flex:1;overflow-y:auto}.toolbox-grid{gap:var(--space-md);grid-template-columns:repeat(2,1fr);display:grid}.toolbox-tool{align-items:center;gap:var(--space-sm);padding:var(--space-xl);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition);flex-direction:column;display:flex}.toolbox-tool.active{background:var(--primary);color:#fff}.select-training{gap:var(--space-md);flex-direction:column;display:flex}.simple-calendar{gap:var(--space-sm);-webkit-user-select:none;user-select:none;flex-direction:column;display:flex}.simple-calendar .calendar-header{justify-content:space-between;align-items:center;display:flex}.simple-calendar .calendar-nav-btn{cursor:pointer;color:var(--primary);padding:var(--space-sm) var(--space-md);background:0 0;border:none;font-size:1.25rem}.simple-calendar .calendar-month{font-weight:600;font-size:var(--font-size-lg)}.simple-calendar .calendar-weekdays{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.simple-calendar .calendar-weekday{text-align:center;font-size:var(--font-size-sm);color:var(--text-muted);padding:var(--space-sm)}.simple-calendar .calendar-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.simple-calendar .calendar-day{background:var(--bg);border-radius:var(--radius);cursor:pointer;transition:all var(--transition);aspect-ratio:1;flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative}.simple-calendar .calendar-day--empty{cursor:default;background:0 0}.simple-calendar .calendar-day:hover:not(.calendar-day--empty){background:var(--surface);box-shadow:var(--shadow-sm)}.simple-calendar .calendar-day--selected{background:var(--primary);color:var(--nav-text)}.simple-calendar .calendar-day-number{font-size:var(--font-size-sm)}.simple-calendar .calendar-day-badge{background:var(--success);color:#fff;text-align:center;border-radius:8px;min-width:14px;padding:0 4px;font-size:.6rem;line-height:1.4;position:absolute;bottom:2px;right:2px}.simple-calendar .calendar-day-stamps{flex-wrap:wrap;justify-content:center;gap:1px;display:flex;position:absolute;top:2px;left:2px;right:2px}.simple-calendar .calendar-day-stamp{font-size:.65rem;line-height:1}.program-panel{margin-top:var(--space-lg);padding-top:var(--space-lg);border-top:1px solid var(--border)}.program-panel h3{margin-bottom:var(--space-md);color:var(--heading)}.program-list{gap:var(--space-md);flex-direction:column;display:flex}.program-item{padding:var(--space-md);background:var(--bg);border-radius:var(--radius);justify-content:space-between;align-items:flex-start;display:flex}.program-info{gap:var(--space-xs);flex-direction:column;display:flex}.program-info strong{color:var(--heading)}.program-info span{color:var(--text-muted);font-size:var(--font-size-sm)}.program-info p{color:var(--text-muted);font-size:var(--font-size-sm);margin-top:var(--space-xs)}.program-info a{color:var(--primary);font-size:var(--font-size-sm)}.program-delete-btn{color:var(--danger);cursor:pointer;padding:var(--space-xs);background:0 0;border:none;font-size:1.25rem}.program-actions{gap:var(--space-xs);display:flex}.complete-btn{background:var(--success);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;justify-content:center;align-items:center;width:28px;height:28px;font-size:1rem;display:flex}.complete-btn:hover{background:var(--success-hover)}.no-programs{color:var(--text-muted);font-style:italic}.add-program-btn{width:100%;margin-top:var(--space-md);padding:var(--space-sm) var(--space-md);background:var(--primary);color:var(--nav-text);border-radius:var(--radius);cursor:pointer;border:none}.add-program-btn:hover{background:var(--primary-hover)}.add-program-form{gap:var(--space-sm);margin-top:var(--space-md);flex-direction:column;display:flex}.add-program-form input,.add-program-form textarea{padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);font-family:inherit}.add-program-form-row{gap:var(--space-sm);display:flex}.add-program-form-row input{flex:1}.add-program-form-row input:first-child{flex:2}.add-program-form textarea{resize:vertical;min-height:60px}.add-program-form button{padding:var(--space-sm) var(--space-md);background:var(--success);color:var(--nav-text);border-radius:var(--radius);cursor:pointer;border:none}.add-program-form button:hover{background:var(--success-hover)}.diary{gap:var(--space-lg);flex-direction:column;display:flex}.diary-section{background:var(--surface);padding:var(--space-lg);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.diary-section h3{margin:0 0 var(--space-md) 0;color:var(--text)}.diary-add-entry-btn{width:100%;padding:var(--space-md);background:var(--primary);color:#fff;border-radius:var(--radius);cursor:pointer;transition:background var(--transition);border:none}.diary-add-entry-btn:hover{background:var(--primary-hover)}.diary-quick-btns{gap:var(--space-sm);margin-bottom:var(--space-md);flex-wrap:wrap;display:flex}.diary-quick-btn:hover{background:var(--primary);color:#fff}.diary-quick-section{margin-bottom:var(--space-md)}.diary-quick-header{margin-bottom:var(--space-sm);justify-content:space-between;align-items:center;display:flex}.diary-quick-label{color:var(--text-secondary);font-size:.9rem;font-weight:600}.diary-quick-media-toggle{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;padding:2px 8px;font-size:.8rem}.diary-quick-media-toggle:hover{background:var(--primary);color:#fff}.diary-quick-btn{padding:var(--space-sm) var(--space-md);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:all var(--transition)}.diary-quick-btn--with-media{flex-direction:column;align-items:center;gap:4px;min-width:70px;padding:6px 10px;display:flex}.diary-quick-btn-thumb{background:var(--bg-secondary);border-radius:4px;justify-content:center;align-items:center;width:40px;height:40px;display:flex;overflow:hidden}.diary-quick-btn-thumb img{object-fit:contain;width:100%;height:100%}.diary-quick-btn-letter{color:var(--text-secondary);font-size:1.1rem;font-weight:700}.diary-entry-media-preview{background:var(--bg-secondary);border-radius:var(--radius);flex-direction:column;align-items:center;gap:6px;padding:8px;display:flex}.diary-entry-media-preview img{object-fit:contain;width:240px;height:240px}.diary-entry-media-name{font-size:.9rem;font-weight:600}.diary-entry-form{gap:var(--space-sm);margin-top:var(--space-md);padding:var(--space-md);background:var(--bg);border-radius:var(--radius);flex-direction:column;display:flex}.diary-entry-form input,.diary-entry-form textarea{width:100%;padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-base)}.diary-entry-form-row{gap:var(--space-sm);display:flex}.diary-entry-form-row input{flex:1}.diary-entry-form button,.diary-goal-form button{padding:var(--space-sm) var(--space-md);background:var(--success);color:#fff;border-radius:var(--radius);cursor:pointer;border:none}.diary-entry-form button:hover,.diary-goal-form button:hover{background:var(--success-hover)}.diary-entries{gap:var(--space-sm);margin-top:var(--space-md);flex-direction:column;display:flex}.diary-entry{padding:var(--space-md);background:var(--bg);border-radius:var(--radius);justify-content:space-between;align-items:flex-start;display:flex}.diary-entry-info{gap:var(--space-xs);flex-direction:column;display:flex}.diary-entry-info strong{color:var(--text)}.diary-entry-info span{color:var(--text-muted);font-size:var(--font-size-sm)}.diary-entry-info p{margin:var(--space-xs) 0 0 0;color:var(--text-muted);font-size:var(--font-size-sm)}.diary-entry-delete{color:var(--danger);cursor:pointer;background:0 0;border:none;font-size:1.25rem;line-height:1}.diary-view{gap:var(--space-md);flex-direction:column;display:flex}.diary-options{gap:var(--space-lg);background:var(--surface);padding:var(--space-md);border-radius:var(--radius);display:flex}.diary-options label,.training-options label{align-items:center;gap:var(--space-sm);cursor:pointer;display:flex}.training-view{gap:var(--space-md);flex-direction:column;display:flex}.training-options{gap:var(--space-lg);background:var(--surface);padding:var(--space-md);border-radius:var(--radius);display:flex}.diary-stats{gap:var(--space-md);grid-template-columns:repeat(2,1fr);display:grid}.diary-stat{background:var(--bg);padding:var(--space-md);border-radius:var(--radius);text-align:center}.diary-stat-value{font-size:var(--font-size-xl);color:var(--primary);font-weight:700;display:block}.diary-stat-label{font-size:var(--font-size-sm);color:var(--text-muted);margin-top:var(--space-xs);display:block}.diary-stats-toggle{margin-bottom:var(--space-md)}.diary-stats-toggle label{align-items:center;gap:var(--space-sm);cursor:pointer;font-size:var(--font-size-sm);color:var(--text-muted);display:flex}.diary-stats-moves{border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-sm);overflow-x:auto}.diagram-bar-chart,.diagram-line-chart{display:block}.diagram-baseline{stroke:var(--border);stroke-width:1px}.diagram-bar-group{cursor:pointer}.diagram-bar{fill:var(--primary);transition:fill var(--transition)}.diagram-bar-group:hover .diagram-bar,.diagram-bar-group.selected .diagram-bar{fill:var(--primary-hover)}.diagram-bar-value,.diagram-bar-label,.diagram-line-label{fill:var(--text-muted);text-anchor:middle;font-size:10px}.diagram-bar-group.selected .diagram-bar-label{fill:var(--primary-hover);font-weight:600}.diagram-line{fill:none;stroke:var(--primary);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.diagram-point{fill:var(--primary);stroke:var(--surface);stroke-width:2px}.diary-stats-detail{margin-top:var(--space-md);padding:var(--space-md);background:var(--bg);border-radius:var(--radius);overflow-x:auto}.diary-stats-detail h4{margin:0 0 var(--space-sm) 0;color:var(--primary)}.diary-stats-last-set,.diary-stats-totals{font-size:var(--font-size-sm);margin:0}.diary-stats-last-set{margin-bottom:var(--space-xs)}.diary-stats-totals{color:var(--text-muted)}.diary-stats-no-data{font-size:var(--font-size-sm);color:var(--text-muted);margin:0}.estimate-hint{font-size:var(--font-size-xs,.75rem);color:var(--text-muted);margin:0;font-style:italic}.diary-no-stats{padding:var(--space-md);text-align:center;color:var(--text-muted);margin:0}.diary-section-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;display:flex}.diary-section.collapsed>.diary-section-toggle{margin-bottom:0}.diary-section:not(.collapsed)>.diary-section-toggle{margin-bottom:var(--space-md);border-bottom:1px solid var(--border);padding-bottom:var(--space-sm)}.diary-history-dates{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md);flex-wrap:wrap;display:flex}.diary-history-dates input{padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-sm)}.diary-history-dates span{color:var(--text-muted)}.diary-history-dates button{padding:var(--space-sm) var(--space-md);background:var(--primary);color:#fff;border-radius:var(--radius);cursor:pointer;font-size:var(--font-size-sm);border:none}.diary-history-dates button:disabled{opacity:.6;cursor:not-allowed}.diary-history-list{max-height:300px;overflow-y:auto}.diary-history-date-group{margin-bottom:var(--space-md)}.diary-history-date-header{color:var(--text-muted);font-weight:700;font-size:var(--font-size-sm);margin-bottom:var(--space-sm);padding-bottom:var(--space-xs);border-bottom:1px solid var(--border)}.diary-history-entry{padding:var(--space-sm) 0;border-bottom:1px solid var(--border);justify-content:space-between;display:flex}.diary-history-move{font-weight:500}.diary-history-sets{color:var(--text-muted)}.diary-no-sets{color:var(--text-muted);font-style:italic}.diary-goals h3{margin-bottom:var(--space-md);color:var(--heading)}.diary-no-goals{color:var(--text-muted);margin-bottom:var(--space-md);font-style:italic}.diary-goal{background:var(--bg);padding:var(--space-md);border-radius:var(--radius);margin-bottom:var(--space-md)}.diary-goal-header{margin-bottom:var(--space-sm);justify-content:space-between;align-items:center;display:flex}.diary-goal-move{color:var(--heading);font-weight:600}.diary-goal-delete{color:var(--danger);cursor:pointer;background:0 0;border:none;font-size:1.25rem}.diary-goal-progress{gap:var(--space-xs);flex-direction:column;display:flex}.diary-goal-bar{background:var(--border);border-radius:var(--radius);height:8px;overflow:hidden}.diary-goal-fill{background:var(--primary);border-radius:var(--radius);height:100%;transition:width var(--transition)}.diary-goal-text{font-size:var(--font-size-sm);color:var(--text-muted)}.diary-add-goal-btn{width:100%;padding:var(--space-sm);background:var(--primary);color:var(--nav-text);border-radius:var(--radius);cursor:pointer;border:none}.diary-add-goal-btn:hover{background:var(--primary-hover)}.diary-goal-form{gap:var(--space-sm);margin-top:var(--space-md);flex-direction:column;display:flex}.diary-goal-form input,.diary-goal-form select{padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);font-family:inherit}.diary-goal-form-row{gap:var(--space-sm);display:flex}.diary-goal-form-row input{flex:1}.diary-goal-form-row select{width:70px}.diary-goal-form button{padding:var(--space-sm);background:var(--success);color:var(--nav-text);border-radius:var(--radius);cursor:pointer;border:none}.program-entries-preview{margin-top:var(--space-md);padding:var(--space-sm);background:var(--bg);border-radius:var(--radius)}.program-entries-preview h4{margin:0 0 var(--space-sm) 0;font-size:var(--font-size-sm)}.program-entry-preview{padding:var(--space-xs) 0;border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.program-entry-preview:last-child{border-bottom:none}.program-entry-preview button{background:var(--danger);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;width:24px;height:24px;font-size:14px;line-height:1}.save-all-btn{margin-top:var(--space-md);padding:var(--space-sm) var(--space-lg);background:var(--success);color:var(--nav-text);border-radius:var(--radius);cursor:pointer;border:none;width:100%;font-weight:500}.save-all-btn:hover{background:var(--success-hover)}.training-selector{gap:var(--space-xs);margin-bottom:var(--space-md);flex-wrap:wrap;display:flex}.training-select-btn{padding:var(--space-xs) var(--space-sm);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;font-size:var(--font-size-sm)}.training-select-btn:hover{background:var(--border)}.training-select-btn.active{background:var(--primary);color:var(--nav-text);border-color:var(--primary)}.athletes-view,.coach-training{gap:var(--space-lg);padding:var(--space-lg);max-width:var(--max-width-lg);flex-direction:column;margin:0 auto;display:flex}.coach-tabs{gap:var(--space-sm);border-bottom:2px solid var(--border);display:flex}.coach-tabs button{padding:var(--space-md) var(--space-lg);cursor:pointer;font-size:var(--font-size-base);color:var(--text-muted);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px}.coach-tabs button.active{color:var(--primary);border-bottom-color:var(--primary)}.coach-section{gap:var(--space-md);flex-direction:column;display:flex}.coach-form{background:var(--surface);padding:var(--space-lg);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.coach-form h3{margin:0 0 var(--space-md) 0;color:var(--heading)}.form-group{margin-bottom:var(--space-md)}.form-group label{margin-bottom:var(--space-xs);color:var(--text);font-weight:500;display:block}.form-group input,.form-group select{width:100%;padding:var(--space-sm) var(--space-md);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-base)}.entries-section h4{margin:var(--space-md) 0 var(--space-sm) 0;color:var(--text)}.entry-row{padding:var(--space-sm) var(--space-md);background:var(--bg);border-radius:var(--radius);margin-bottom:var(--space-xs);justify-content:space-between;align-items:center;display:flex}.entry-row button{background:var(--danger);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;width:24px;height:24px}.entry-form{gap:var(--space-sm);margin-top:var(--space-sm);flex-wrap:wrap;display:flex}.entry-form input,.entry-form select{padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-sm)}.entry-form input[type=text]{flex:1;min-width:100px}.entry-form input[type=number],.entry-form>input[type=number]{width:70px}.entry-form button{padding:var(--space-sm) var(--space-md);background:var(--primary);color:#fff;border-radius:var(--radius);cursor:pointer;border:none}.form-actions{gap:var(--space-sm);margin-top:var(--space-md);display:flex}.form-actions button{padding:var(--space-sm) var(--space-lg);border-radius:var(--radius);cursor:pointer;font-size:var(--font-size-base);border:none}.form-actions button.btn-primary{background:var(--primary);color:#fff}.form-actions button:not(.btn-primary){background:var(--bg);color:var(--text);border:1px solid var(--border)}.trainings-list{gap:var(--space-md);flex-direction:column;display:flex}.training-card{background:var(--surface);padding:var(--space-lg);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.training-header{margin-bottom:var(--space-md);justify-content:space-between;align-items:center;display:flex}.training-header h4{color:var(--heading);margin:0}.user-count{font-size:var(--font-size-sm);color:var(--text-muted)}.training-entries{margin-bottom:var(--space-md)}.entry-preview{padding:var(--space-xs) 0;color:var(--text);font-size:var(--font-size-sm)}.more-entries{font-size:var(--font-size-sm);color:var(--text-muted);font-style:italic}.training-actions{gap:var(--space-sm);display:flex}.training-actions button{padding:var(--space-xs) var(--space-md);border-radius:var(--radius);cursor:pointer;font-size:var(--font-size-sm);background:var(--bg);color:var(--text);border:none}.training-actions button.btn-danger{background:var(--danger);color:#fff}.empty-message{color:var(--text-muted);text-align:center;padding:var(--space-lg);font-style:italic}.assign-section h3{margin:0 0 var(--space-md) 0;color:var(--heading)}.assign-section h4{margin:var(--space-lg) 0 var(--space-sm) 0;color:var(--text)}.assign-section select{width:100%;padding:var(--space-sm) var(--space-md);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-base)}.users-list{gap:var(--space-sm);flex-direction:column;display:flex}.user-row{align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);background:var(--bg);border-radius:var(--radius);display:flex}.user-row span{flex:1}.pending-requests{margin-bottom:var(--space-md)}.pending-requests-title{font-size:var(--font-size-sm);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-sm)}.user-row.selected{background:var(--primary);color:#fff}.user-row{cursor:pointer}.selected-indicator{font-size:var(--font-size-sm);background:var(--primary);color:#fff;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius)}.user-row.selected .selected-indicator{background:var(--surface);color:var(--primary)}.license-badge{font-size:var(--font-size-sm);color:var(--text-muted);background:var(--surface);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius)}.user-row button{padding:var(--space-xs) var(--space-md);background:var(--primary);color:#fff;border-radius:var(--radius);cursor:pointer;font-size:var(--font-size-sm);border:none}.user-actions{gap:var(--space-xs);display:flex}.user-actions button{padding:var(--space-xs) var(--space-sm);background:var(--primary);color:#fff;border-radius:var(--radius);cursor:pointer;font-size:var(--font-size-sm);border:none}.user-select-row{align-items:center;gap:var(--space-sm);cursor:pointer;flex:1;display:flex}.user-select-row input[type=checkbox]{accent-color:var(--primary);cursor:pointer;width:16px;height:16px}.user-assign-actions{align-items:center;gap:var(--space-sm);margin-top:var(--space-sm);flex-wrap:wrap;display:flex}.user-assign-actions button:disabled{opacity:.5;cursor:not-allowed}.user-assign-count{font-size:var(--font-size-sm);color:var(--text-muted)}.user-actions .btn-danger{background:var(--danger)}.athletes-list{gap:var(--space-md);flex-direction:column;display:flex}.athletes-list-header{justify-content:space-between;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm);display:flex}.athletes-list-header h3{margin:0}.athletes-list-toggle{flex-shrink:0}.selected-athlete-strip{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md);display:flex}.selected-athlete-name{color:var(--text);font-weight:600}.athlete-card{align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;transition:box-shadow var(--transition), transform var(--transition);display:flex}.athlete-card:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.athlete-avatar{background:var(--primary);color:#fff;width:48px;height:48px;font-size:var(--font-size-lg);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:600;display:flex}.athlete-info{gap:var(--space-xs);flex-direction:column;flex:1;min-width:0;display:flex}.athlete-email{color:var(--text);font-weight:600;font-size:var(--font-size-base);word-break:break-all}.athlete-since{font-size:var(--font-size-sm);color:var(--text-muted)}.athlete-unfollow{border:1px solid var(--border);background:var(--surface);width:32px;height:32px;color:var(--text-muted);font-size:var(--font-size-lg);cursor:pointer;transition:all var(--transition);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.athlete-unfollow:hover{background:var(--danger);border-color:var(--danger);color:#fff}.group-card{align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;transition:box-shadow var(--transition), transform var(--transition);display:flex}.group-card:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.group-icon{background:var(--success);color:#fff;width:48px;height:48px;font-size:var(--font-size-lg);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:600;display:flex}.group-info{gap:var(--space-xs);flex-direction:column;flex:1;min-width:0;display:flex}.group-name{color:var(--text);font-weight:600;font-size:var(--font-size-base)}.group-meta{font-size:var(--font-size-sm);color:var(--text-muted)}.group-delete{border:1px solid var(--border);background:var(--surface);width:32px;height:32px;color:var(--text-muted);font-size:var(--font-size-lg);cursor:pointer;transition:all var(--transition);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.group-delete:hover{background:var(--danger);border-color:var(--danger);color:#fff}.group-form{background:var(--surface);padding:var(--space-lg);border-radius:var(--radius-lg);box-shadow:var(--shadow);gap:var(--space-md);align-items:flex-end;display:flex}.group-form input{padding:var(--space-sm) var(--space-md);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-base);flex:1}.group-form button{padding:var(--space-sm) var(--space-lg);background:var(--primary);color:#fff;border-radius:var(--radius);cursor:pointer;font-size:var(--font-size-base);transition:background var(--transition);border:none}.group-form button:hover:not(:disabled){background:var(--primary-hover)}.group-form button:disabled{opacity:.5;cursor:not-allowed}.members-list{gap:var(--space-sm);flex-direction:column;display:flex}.member-row{align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);background:var(--bg);border-radius:var(--radius);display:flex}.member-avatar{background:var(--primary);color:#fff;width:36px;height:36px;font-size:var(--font-size-sm);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:600;display:flex}.member-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.member-email{color:var(--text);font-weight:500;font-size:var(--font-size-base);word-break:break-all}.member-type{font-size:var(--font-size-sm);color:var(--text-muted)}.member-remove{padding:var(--space-xs) var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition);background:0 0}.member-remove:hover{background:var(--danger);border-color:var(--danger);color:#fff}.auto-follow-hint{font-size:var(--font-size-sm);color:var(--text-muted);margin:var(--space-xs) 0 var(--space-sm)}.auto-follow-label{align-items:center;gap:var(--space-xs);font-size:var(--font-size-sm);color:var(--text-muted);cursor:pointer;white-space:nowrap;display:inline-flex}.auto-follow-label input[type=checkbox]{cursor:pointer}.after-training-section{gap:var(--space-lg);padding:var(--space-md);flex-direction:column;display:flex}.athlete-assessments{gap:var(--space-md);flex-direction:column;display:flex}.athlete-rating-card{background:var(--surface);padding:var(--space-lg);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.athlete-rating-header{align-items:center;gap:var(--space-md);margin-bottom:var(--space-md);display:flex}.set-rating-row{padding:var(--space-sm) var(--space-md);background:var(--bg);border-radius:var(--radius);margin-bottom:var(--space-xs);justify-content:space-between;align-items:center;display:flex}.set-rating-row span{font-size:var(--font-size-sm);color:var(--text)}.set-rating-row input{width:80px;padding:var(--space-xs);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-sm)}.trainings-summary{gap:var(--space-md);margin-bottom:var(--space-lg);display:flex}.trainings-stat-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-sm) var(--space-md);text-align:center;flex:1}.trainings-stat-card .stat-number{font-size:var(--font-size-xl);color:var(--primary);font-weight:700;display:block}.trainings-stat-card .stat-label{font-size:var(--font-size-sm);color:var(--text-muted);margin-top:2px;display:block}.trainings-layout{gap:var(--space-lg);grid-template-columns:auto 1fr;align-items:start;display:grid}.trainings-detail{gap:var(--space-md);flex-direction:column;min-height:120px;display:flex}.trainings-detail-prompt{color:var(--text-muted);text-align:center;padding:var(--space-xl);background:var(--bg);border:1px dashed var(--border);border-radius:var(--radius);font-style:italic}.trainings-detail-date{font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:var(--space-xs);font-weight:600}@media (width<=700px){.trainings-layout{grid-template-columns:1fr}}.loading{text-align:center;padding:var(--space-xl);color:var(--text-muted)}.swimpal-programs{padding:var(--space-md)}.program-form{background:var(--surface);padding:var(--space-lg);border-radius:var(--radius-lg);margin-bottom:var(--space-lg)}.program-form h3,.program-form .form-group{margin-bottom:var(--space-md)}.program-form .form-group label{margin-bottom:var(--space-xs);font-weight:500;display:block}.program-form .form-group input{width:100%;padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius)}.program-form .form-actions{gap:var(--space-sm);margin-top:var(--space-md);display:flex}.program-table{border-collapse:collapse;width:100%;margin-bottom:var(--space-md);font-size:var(--font-size-sm)}.program-table th,.program-table td{padding:var(--space-xs);border:1px solid var(--border);text-align:left}.program-table th{background:var(--bg);font-weight:500}.program-pace-perc{color:var(--text-muted);font-size:var(--font-size-xs)}.program-table select,.program-table input[type=number],.program-table input[type=text]{width:100%;padding:var(--space-xs);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-sm)}.program-table td input[type=number]{width:80px;padding:var(--space-sm)}.program-table td input[type=text]{width:140px;padding:var(--space-sm)}.program-table td textarea{width:100%;min-width:80px;padding:var(--space-xs);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-sm);resize:both;font-family:inherit}.program-table-edit td input[type=number],.program-table-edit td input[type=text],.program-table-edit td textarea{width:100%;min-width:0}.program-table-wrap{overflow-x:auto}.program-table-wrap .program-table{min-width:640px}.program-table-wrap .program-table-edit{min-width:780px}.program-table td select{min-width:64px}.program-table-edit td input[type=number]{min-width:56px}.notes-display{white-space:pre-wrap;word-wrap:break-word;max-width:200px}.program-total-row{background:var(--bg-secondary);border-top:2px solid var(--border)}.program-total-row td{padding:var(--space-sm) var(--space-xs)}.program-total-note td{padding:var(--space-xs) var(--space-sm);color:var(--danger);background:var(--bg-secondary);font-size:.8rem;font-style:italic}.program-timer-loop-header{background:var(--surface-alt);letter-spacing:.03em;text-transform:uppercase;color:var(--text-secondary);padding:var(--space-xs) var(--space-sm);border-top:1px dashed var(--border);border-bottom:1px dashed var(--border);margin-top:var(--space-xs);justify-content:space-between;align-items:center;gap:var(--space-sm);font-size:.8rem;font-weight:600;display:flex}.program-timer-block-toggle{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;text-transform:uppercase;letter-spacing:.03em;background:0 0;border-radius:4px;flex-shrink:0;padding:2px 8px;font-size:.7rem;font-weight:600}.program-timer-block-toggle:hover{color:var(--primary);border-color:var(--primary)}.program-timer-set-row--in-loop{background:var(--block-bg);box-shadow:inset 3px 0 0 var(--primary)}.program-loop-header td{background:var(--surface-alt);letter-spacing:.03em;text-transform:uppercase;color:var(--text-secondary);padding:var(--space-xs) var(--space-sm);border-top:1px dashed var(--border);border-bottom:1px dashed var(--border);font-size:.8rem;font-weight:600}.program-block-end td{border-top:1px dashed var(--border);border-bottom:1px solid var(--border);background:var(--bg);padding:0;line-height:0}.loop-block-controls{align-items:center;gap:var(--space-sm);display:inline-flex}.program-table-edit .loop-block-controls .loop-input{width:52px}tr.program-row-in-loop td{background:var(--block-bg)}tr.program-row-in-loop td:first-child{box-shadow:inset 3px 0 0 var(--primary);padding-left:calc(var(--space-xs) + var(--space-sm))}.program-add-actions{gap:var(--space-sm);margin-top:var(--space-sm);display:flex}.btn-copy{background:var(--primary);color:#fff;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius);cursor:pointer;font-size:var(--font-size-sm);margin-right:var(--space-xs);border:none}.btn-danger-small{background:var(--danger);color:#fff;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius);cursor:pointer;font-size:var(--font-size-sm);border:none}.btn-insert{background:var(--bg-secondary);color:var(--text);border:1px solid var(--border);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius);cursor:pointer;font-size:var(--font-size-sm);margin-right:var(--space-xs)}.btn-insert:hover{background:var(--primary);color:#fff}.draft-restored-banner{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-sm);margin-bottom:var(--space-sm);font-size:var(--font-size-sm);color:var(--text-muted)}.program-shared-banner{background:var(--warning);color:var(--nav-text);border-radius:var(--radius);padding:var(--space-xs) var(--space-sm);margin:0 var(--space-sm) var(--space-xs);font-size:var(--font-size-sm);font-weight:600}.share-dialog-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.share-dialog{background:var(--surface);border-radius:var(--radius);padding:var(--space-lg);width:min(440px,90vw);max-height:80vh;box-shadow:var(--shadow);overflow-y:auto}.share-dialog-header{margin-bottom:var(--space-sm);justify-content:space-between;align-items:center;display:flex}.share-dialog-header h3{font-size:var(--font-size-md);margin:0}.share-dialog-message{background:var(--success);color:var(--nav-text);border-radius:var(--radius);padding:var(--space-xs) var(--space-sm);margin-bottom:var(--space-sm);font-size:var(--font-size-sm)}.share-filter-input{width:100%;padding:var(--space-xs) var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:var(--space-sm);font-size:var(--font-size-sm)}.share-coach-list{gap:var(--space-xs);flex-direction:column;display:flex}.share-coach-row{justify-content:space-between;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);display:flex}.share-coach-info{flex-direction:column;min-width:0;display:flex}.share-coach-name{font-weight:600;font-size:var(--font-size-sm)}.share-coach-email{color:var(--text-muted);font-size:var(--font-size-sm)}.share-coach-already{color:var(--success);font-size:var(--font-size-sm);font-weight:600}.share-link-desc{color:var(--text-muted);font-size:var(--font-size-sm);margin-bottom:var(--space-sm)}.share-link-fields{gap:var(--space-sm);margin-bottom:var(--space-sm);flex-direction:column;display:flex}.share-link-field-label{font-weight:600;font-size:var(--font-size-sm)}.share-link-athletes{gap:var(--space-xs);border:1px solid var(--border);border-radius:var(--radius);max-height:180px;padding:var(--space-xs);flex-direction:column;display:flex;overflow-y:auto}.share-link-athlete{align-items:center;gap:var(--space-xs);font-size:var(--font-size-sm);display:flex}.share-link-hint{color:var(--text-muted);font-size:var(--font-size-sm)}.share-link-window{gap:var(--space-sm);flex-direction:column;display:flex}.share-link-window-field{justify-content:space-between;align-items:center;gap:var(--space-sm);font-size:var(--font-size-sm);display:flex}.share-link-window-field input{padding:var(--space-xs);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-sm)}.share-link-result{gap:var(--space-sm);flex-direction:column;display:flex}.share-link-result-title{font-weight:600;font-size:var(--font-size-sm)}.share-link-url-row{gap:var(--space-xs);display:flex}.share-link-url{min-width:0;padding:var(--space-xs) var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-sm);color:var(--text);background:var(--bg);flex:1}.share-link-note{color:var(--text-muted);font-size:var(--font-size-sm)}.share-training-page{max-width:720px;padding:var(--space-lg);gap:var(--space-md);flex-direction:column;margin:0 auto;display:flex}.share-training-program h3{margin:0 0 var(--space-xs)}.share-training-coach{color:var(--text-muted);font-size:var(--font-size-sm);margin:0 0 var(--space-sm)}.share-training-form{gap:var(--space-sm);flex-direction:column;display:flex}.share-training-set-toggle{align-items:center;gap:var(--space-xs);font-size:var(--font-size-sm);cursor:pointer;display:flex}.share-training-success{background:var(--success);color:var(--nav-text);border-radius:var(--radius);padding:var(--space-md);text-align:center;font-weight:600}.btn-share{background:var(--primary);color:var(--nav-text);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius);cursor:pointer;font-size:var(--font-size-sm);border:none;flex-shrink:0}.btn-share:hover{filter:brightness(1.1)}.program-card{background:var(--surface);border-radius:var(--radius);margin-bottom:var(--space-sm);overflow:hidden}.program-header{padding:var(--space-md);background:var(--bg);cursor:pointer;justify-content:space-between;align-items:center;display:flex}.program-header:hover{background:var(--border)}.program-name{font-weight:500}.program-meta{color:var(--text-muted);font-size:var(--font-size-sm)}.expand-icon{margin-left:var(--space-sm)}.program-content{padding:var(--space-md)}.program-actions{gap:var(--space-sm);margin-top:var(--space-md);display:flex}.program-search-row{margin-bottom:var(--space-sm)}.program-search-input{width:100%;padding:var(--space-xs) var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-sm)}.programs-list{margin-top:var(--space-lg)}.swimpal-stats{padding:var(--space-md)}.stat-form{background:var(--surface);padding:var(--space-lg);border-radius:var(--radius-lg);margin-bottom:var(--space-lg)}.stat-form h3{margin-bottom:var(--space-md)}.stat-form .form-row{gap:var(--space-md);flex-wrap:wrap;display:flex}.stat-form .form-group{flex:1;min-width:120px}.stat-form .form-group label{margin-bottom:var(--space-xs);font-weight:500;display:block}.stat-form .form-group input,.stat-form .form-group select{width:100%;padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius)}.stats-save-notice{padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-md);background:var(--warning-bg);border:1px solid var(--warning);border-radius:var(--radius);color:var(--warning-text)}.splits-section{margin:var(--space-md) 0}.splits-section label{margin-bottom:var(--space-sm);font-weight:500;display:block}.split-row{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-xs);display:flex}.split-row input[type=number],.split-row input[type=text]{padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius)}.split-row input[type=number]{width:80px}.split-row input[type=text]{width:100px}.split-label{color:var(--text-muted)}.stats-list{margin-top:var(--space-lg)}.stats-filter-bar{border:1px solid var(--border);background:var(--bg-secondary);border-radius:6px;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.75rem;padding:.5rem;display:flex}.stats-list h3{margin-bottom:var(--space-md)}.stats-table{border-collapse:collapse;width:100%}.stats-table th,.stats-table td{padding:var(--space-sm);border:1px solid var(--border);text-align:left}.stats-table th{background:var(--bg);font-weight:500}.splits-display{gap:var(--space-xs);flex-direction:column;display:flex}.split-item{font-size:var(--font-size-sm);background:var(--bg);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius)}.split-item.sub{opacity:.7;font-size:var(--font-size-xs);padding:2px var(--space-xs)}@media (width<=768px){:root{--font-size-base:1.1rem;--font-size-lg:1.35rem;--font-size-xl:1.6rem}body{font-size:var(--font-size-base)}.navbar{flex-wrap:wrap;gap:1vh;padding:1.5vh 3vw}.nav-brand{font-size:var(--font-size-lg)}.nav-links{flex-wrap:wrap;justify-content:center;gap:2vw}.nav-links a,.nav-user{font-size:var(--font-size-sm)}.license-warning{cursor:help;font-size:1.2rem}.btn-logout{font-size:var(--font-size-sm);padding:1vh 2.5vw}.app-page{padding:2vw}.toolbox-sidenav{width:min(350px,85vw);padding:2vw}.toolbox-tool-btn{font-size:var(--font-size-base);padding:1.5vh 2vw}.diary-entry-form input,.diary-entry-form select,.diary-goal-form input,.diary-goal-form select,.diary-goal-form-row input,.diary-entry-form-row input{font-size:var(--font-size-base);min-height:44px;padding:1.2vh 2vw}.diary-entry-form-row,.diary-goal-form-row{flex-wrap:wrap;gap:1.5vw}.diary-entry-form-row input,.diary-entry-form-row select,.diary-goal-form-row input,.diary-goal-form-row select{flex:40%;min-width:35%}button,.btn-primary{font-size:var(--font-size-base);min-width:44px;min-height:44px;padding:1.5vh 3vw}.coach-tabs{flex-wrap:wrap;gap:1vw}.coach-tabs button{font-size:var(--font-size-sm);flex:30%;min-width:30%;padding:1.5vh 2.5vw}.user-row{flex-direction:column;gap:1vh;padding:2vh 2vw}.user-info,.user-info button{width:100%}.search-form{flex-direction:column;gap:1vh}.search-form input{width:100%;font-size:var(--font-size-base);padding:1.5vh 2vw}.search-form button{width:100%}.calendar-container .calendar-grid{gap:.5vw}.calendar-container .calendar-day{min-height:8vh;font-size:var(--font-size-sm);padding:.5vh}.form-group input,.form-group select,.form-group textarea{font-size:var(--font-size-base);padding:1.5vh 2vw}.stats-table{font-size:var(--font-size-sm);display:block;overflow-x:auto}.stats-table th,.stats-table td{min-width:80px;padding:1vh 1.5vw}.tool-grid{grid-template-columns:1fr;gap:2vh}.tool-card{padding:2vh 2vw}.app-selector{grid-template-columns:repeat(auto-fill,minmax(40vw,1fr));gap:2vh}.app-card,.diary-section{padding:2vh 2vw}.diary-entry{flex-direction:column;gap:1vh}.diary-entry-info{width:100%}.diary-entry-delete{align-self:flex-end}.diary-goal{padding:2vh 2vw}.diary-goal-header{flex-wrap:wrap;gap:1vh}.diary-goal-bar{height:2vh}.toolbox-hamburger{width:56px;height:56px;font-size:1.5rem}.toolbox-close{font-size:var(--font-size-lg);padding:1.5vh 2vw}.diary-add-goal-btn{width:100%;margin-top:2vh;padding:1.5vh}.input-group{flex-direction:column;gap:1vh}.input-group label{font-size:var(--font-size-sm)}.input-group input,.input-group select{width:100%;font-size:var(--font-size-base);padding:1.5vh 2vw}h1{font-size:var(--font-size-xl)}h2{font-size:var(--font-size-lg)}h3{font-size:var(--font-size-base)}.text-muted,.empty-message,.text-small{font-size:var(--font-size-sm)}}@media (width<=480px){:root{--font-size-base:1rem;--space-md:.75rem;--space-lg:1rem}.navbar{padding:1vh 2vw}.nav-brand{font-size:var(--font-size-base)}.coach-tabs button{min-width:40%;font-size:var(--font-size-sm);flex:45%;padding:1vh 1.5vw}.app-selector{grid-template-columns:1fr}.calendar-container .calendar-day{min-height:7vh;font-size:.85rem}.diary-entry-form-row input,.diary-entry-form-row select{flex:100%}.diary-goal-form-row{flex-direction:column}.diary-goal-form-row input,.diary-goal-form-row select{width:100%}}.tab-container{gap:var(--space-xs);margin-bottom:var(--space-md);display:flex}.tab-container button{padding:var(--space-sm) var(--space-md);border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:var(--radius)}.tab-container button.tab-active{background:var(--primary);color:#fff;border-color:var(--primary)}.codelist-items{gap:var(--space-sm);margin-bottom:var(--space-md);flex-wrap:wrap;display:flex}.codelist-item{align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);background:var(--bg);border-radius:var(--radius);cursor:pointer;display:flex}.codelist-item span{cursor:pointer;min-width:60px}.codelist-item input{min-width:60px;padding:var(--space-xs)}.codelist-item-edit{gap:var(--space-xs);flex:1;min-width:0;display:flex}.codelist-short-input{flex:0 90px;min-width:50px;max-width:110px}.codelist-item-short{margin-left:var(--space-xs);font-size:var(--font-size-xs);color:var(--text-muted);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1px 6px;display:inline-block}.pace-defs-section{margin-top:var(--space-lg);padding-top:var(--space-lg);border-top:1px solid var(--border)}.pace-defs-section h4{margin-bottom:var(--space-md)}.pace-defs-tabs{gap:var(--space-xs);margin-bottom:var(--space-md);flex-wrap:wrap;display:flex}.pace-defs-table-wrap{overflow-x:auto}.pace-defs-table{border-collapse:collapse;width:100%;min-width:400px}.pace-defs-table th,.pace-defs-table td{border:1px solid var(--border);text-align:center;font-size:var(--font-size-sm);padding:4px 6px}.pace-defs-table th{background:var(--bg-secondary);font-weight:600}.pace-defs-dist{white-space:nowrap;font-weight:600}.pace-defs-cell{border:1px solid var(--border);border-radius:var(--radius);text-align:center;width:56px;min-width:48px;font-size:var(--font-size-sm);background:var(--surface);padding:3px 4px}.pace-defs-step-row,.pace-defs-step{background:var(--bg-secondary)}.codelist-item-actions{gap:2px;display:flex}.codelist-item-actions button{padding:2px 6px;font-size:10px}.codelist-add{gap:var(--space-sm);margin-bottom:var(--space-md);display:flex}.codelist-add input{padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);flex:1}.btn-sm{padding:var(--space-xs) var(--space-sm);font-size:var(--font-size-sm)}.time-input-group{align-items:center;gap:var(--space-xs);display:flex}.time-input-group input{width:60px}.time-input-group span,.input-label{font-size:var(--font-size-sm);color:var(--text-muted);margin:0 2px}.add-program-form-row .input-label{display:inline-block}.codelist-header-row{margin-bottom:var(--space-md);justify-content:space-between;align-items:center;display:flex}.codelist-header-row h4{margin:0}.codelist-list{gap:var(--space-md);flex-direction:column;display:flex}.codelist-meta{border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-md);background:var(--bg)}.codelist-meta.active{border-color:var(--primary);background:var(--surface)}.codelist-meta-header{margin-bottom:var(--space-sm);justify-content:space-between;align-items:center;display:flex}.codelist-name{font-weight:700}.active-badge{margin-left:var(--space-sm);background:var(--success);color:#fff;border-radius:var(--radius);font-size:var(--font-size-sm);padding:2px 6px}.codelist-meta-actions{gap:var(--space-xs);display:flex}.codelist-add-item{gap:var(--space-xs);margin-top:var(--space-sm);display:flex}.codelist-add-item input{padding:var(--space-xs);border:1px solid var(--border);border-radius:var(--radius);flex:1}.feedback-form{background:var(--surface);padding:var(--space-lg);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.feedback-form h3,.feedback-form .form-group{margin-bottom:var(--space-md)}.feedback-form label{margin-bottom:var(--space-xs);color:var(--text);font-weight:500;display:block}.feedback-form input,.feedback-form select,.feedback-form textarea{width:100%;padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-base)}.feedback-form textarea{resize:vertical;min-height:80px}.feedback-success{background:var(--surface);padding:var(--space-xl);border-radius:var(--radius-lg);box-shadow:var(--shadow);text-align:center}.feedback-success p{margin-bottom:var(--space-md);color:var(--success)}.swimpal-timer-view{padding:var(--space-md)}.swimpal-timer-view .coach-tabs{gap:var(--space-sm);margin-bottom:var(--space-lg);border-bottom:2px solid var(--border);padding-bottom:var(--space-sm);display:flex}.swimpal-timer-view .coach-tabs button{padding:var(--space-sm) var(--space-md);color:var(--text-muted);font-size:var(--font-size-base);cursor:pointer;border-radius:var(--radius);transition:var(--transition);background:0 0;border:none}.swimpal-timer-view .coach-tabs button:hover{background:var(--bg);color:var(--text)}.swimpal-timer-view .coach-tabs button.active{background:var(--primary);color:#fff}.coach-tabs--compact{margin-bottom:var(--space-sm);padding-bottom:var(--space-xs);border-bottom-width:1px;gap:4px}.coach-tabs--compact button{min-width:32px;padding:4px 8px;font-size:.85rem}.coach-tabs--compact .tab-label{display:none}.coach-tabs--compact button:hover .tab-label,.coach-tabs--compact button.active .tab-label{display:inline}.coach-tabs--compact .tab-icon{font-size:1rem;line-height:1}.timer-athlete-selector{background:var(--surface);padding:var(--space-md);border-radius:var(--radius-lg);box-shadow:var(--shadow);margin-bottom:var(--space-lg)}.timer-athlete-header{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm);display:flex}.timer-label{color:var(--text);font-weight:500}.timer-athlete-count{color:var(--text-muted)}.timer-settings-grid{gap:var(--space-md);margin-bottom:var(--space-lg);grid-template-columns:repeat(auto-fill,minmax(150px,1fr));display:grid}.timer-setting-item{gap:var(--space-xs);flex-direction:column;display:flex}.timer-setting-item label{font-size:var(--font-size-sm);color:var(--text-muted);font-weight:500}.timer-sounds-editor{gap:var(--space-xs);padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;grid-column:1/-1;display:flex}.timer-sounds-editor-title{font-size:var(--font-size-sm);color:var(--text-muted);font-weight:500}.timer-sounds-editor-row{align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.timer-sounds-editor-label{min-width:80px;font-size:var(--font-size-sm)}.timer-sounds-editor-row select{padding:var(--space-xs) var(--space-sm);border:1px solid var(--border);border-radius:var(--radius)}.timer-sounds-test-btn{padding:var(--space-xs) var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer}.timer-sounds-test-btn:hover{border-color:var(--primary)}.timer-setting-item input[type=number]{padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-base);width:100%}.timer-setting-item input[type=number]:focus{border-color:var(--primary);outline:none}.timer-setting-item.timer-setting-checkbox{padding:var(--space-sm) 0;flex-direction:row;align-items:center}.timer-setting-item.timer-setting-checkbox label{margin-left:var(--space-sm);cursor:pointer}.timer-setting-item.timer-setting-checkbox input[type=checkbox]{cursor:pointer;width:18px;height:18px}.timer-show-wall-time{align-items:center;gap:var(--space-sm);padding:var(--space-sm) 0;font-size:var(--font-size-sm);display:flex}.timer-show-wall-time label{align-items:center;gap:var(--space-sm);cursor:pointer;display:inline-flex}.timer-show-wall-time input[type=checkbox]{cursor:pointer;width:18px;height:18px}.timer-setting-unit{font-size:var(--font-size-sm);color:var(--text-muted)}.timer-setting-item select{padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-base);background:var(--surface);width:100%}.timer-setting-item select:focus{border-color:var(--primary);outline:none}.timer-active-settings{margin-bottom:var(--space-md);font-size:var(--font-size-sm);color:var(--text-light)}.unassigned-badge{background:var(--warning);color:#333;white-space:nowrap;border-radius:12px;flex-shrink:0;align-items:center;gap:2px;padding:2px 8px;font-size:.75rem;font-weight:700;display:inline-flex}.timer-save-stats{align-items:center;gap:var(--space-md);margin:var(--space-lg) 0;display:flex}.btn-save-stats{padding:var(--space-md) var(--space-xl);border-radius:var(--radius-lg);font-size:var(--font-size-base);cursor:pointer;transition:var(--transition);background:var(--success);color:#fff;box-shadow:var(--shadow-sm);border:none;font-weight:600}.btn-save-stats:hover:not(:disabled){background:var(--success-hover);box-shadow:var(--shadow);transform:translateY(-1px)}.btn-save-stats:disabled{opacity:.6;cursor:not-allowed}.timer-save-message{font-size:var(--font-size-sm);color:var(--success);font-weight:500}.timer-display{background:var(--surface);padding:var(--space-xl);border-radius:var(--radius-lg);box-shadow:var(--shadow);text-align:center;margin-bottom:var(--space-lg)}.timer-time{color:var(--text);letter-spacing:2px;font-family:Courier New,monospace;font-size:4rem;font-weight:700}.timer-controls{justify-content:center;gap:var(--space-md);margin-bottom:var(--space-lg);display:flex}.btn-timer{border-radius:var(--radius);cursor:pointer;transition:var(--transition);border:none;min-width:56px;padding:6px 12px;font-size:.85rem;font-weight:600;line-height:1.4}.btn-timer:disabled{opacity:.5;cursor:not-allowed}.btn-timer.btn-start{background:var(--success);color:#fff}.btn-timer.btn-start:hover:not(:disabled){background:var(--success-hover)}.btn-timer.btn-stop{background:var(--danger);color:#fff}.btn-timer.btn-stop:hover:not(:disabled){background:var(--danger-hover)}.btn-timer.btn-split{background:var(--primary);color:#fff;flex-shrink:0;margin-left:auto}.btn-timer.btn-split:hover:not(:disabled){background:var(--primary-hover)}.btn-timer.btn-reset{background:var(--text-muted);color:#fff}.btn-timer.btn-reset:hover:not(:disabled){background:var(--text)}.timer-splits{background:var(--surface);padding:var(--space-md);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.timer-splits h4{margin-bottom:var(--space-md);color:var(--text)}.splits-list{gap:var(--space-sm);margin-bottom:var(--space-md);flex-direction:column;display:flex}.split-item{align-items:center;gap:var(--space-md);padding:var(--space-sm);background:var(--bg);border-radius:var(--radius);display:flex}.btn-remove-split{color:var(--danger);cursor:pointer;background:0 0;border:none;margin-left:auto;padding:0 4px;font-size:1.1rem;line-height:1}.btn-remove-split:hover{color:var(--danger);font-weight:700}.split-number{color:var(--primary);min-width:50px;font-weight:600}.split-time{color:var(--text);font-family:Courier New,monospace}.btn-save-history{width:100%;margin-top:var(--space-md)}.timer-top-controls{align-items:center;gap:var(--space-md);margin-bottom:var(--space-lg);display:flex}.timer-top-controls .btn-timer:first-child{margin-right:auto}.timer-time-centered{font-variant-numeric:tabular-nums;color:var(--text);font-size:2rem;font-weight:700}.program-timer-set-list{gap:var(--space-sm);margin:var(--space-md) 0;flex-direction:column;display:flex}.program-timer-set-row{align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;display:flex}.program-timer-set-info{flex-direction:column;gap:2px;min-width:180px;margin-right:auto;display:flex}.program-timer-set-label{color:var(--primary);font-weight:600}.program-timer-set-desc{font-size:var(--font-size-sm);color:var(--text-muted)}.program-timer-mode-select{padding:var(--space-xs) var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-sm);background:var(--surface)}.program-timer-est-label{font-size:var(--font-size-sm);color:var(--text-muted);font-weight:500}.program-timer-est-input{width:80px;padding:var(--space-xs) var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-base);font-variant-numeric:tabular-nums;background:var(--surface);font-family:Courier New,monospace}.program-timer-est-input:focus{border-color:var(--primary);outline:none}.program-timer-rest-label{font-size:var(--font-size-sm);color:var(--text-muted);font-weight:500}.program-timer-rest-input{width:80px;padding:var(--space-xs) var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-base);font-variant-numeric:tabular-nums;background:var(--surface);font-family:Courier New,monospace}.program-timer-rest-input:focus{border-color:var(--primary);outline:none}.program-timer-continue-label{font-size:var(--font-size-sm);color:var(--text-muted);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.program-timer-set-count{align-items:center;gap:4px;display:inline-flex}.program-timer-set-count-btn{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-width:28px;height:26px;color:var(--text);font-size:var(--font-size-base);cursor:pointer;padding:0 6px;line-height:1}.program-timer-set-count-btn:hover{border-color:var(--primary);color:var(--primary)}.program-timer-set-count-value{text-align:center;min-width:22px;font-size:var(--font-size-sm);font-variant-numeric:tabular-nums;font-weight:600}.program-timer-set-count-reset{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-width:24px;height:26px;color:var(--text-muted);font-size:var(--font-size-sm);cursor:pointer;padding:0 4px;line-height:1}.program-timer-set-count-reset:hover{border-color:var(--danger);color:var(--danger)}.program-timer-continue-checkbox{width:16px;height:16px;accent-color:var(--primary);cursor:pointer}.program-timer-save-defaults-row{align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-md);display:flex}.program-timer-save-defaults-confirm{color:var(--success,#2ecc71);font-size:var(--font-size-sm)}.program-timer-count-row{align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-md);display:flex}.program-timer-count-input{width:64px;padding:var(--space-xs) var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-base);background:var(--surface)}.program-timer-count-input:focus{border-color:var(--primary);outline:none}.program-timer-count-hint{font-size:var(--font-size-sm);color:var(--text-muted)}.timer-setting-hint{font-size:var(--font-size-sm);color:var(--text-muted);flex-basis:100%}.program-timer-recommend-row{align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-md);flex-wrap:wrap;display:flex}.program-timer-recommend-label{align-items:center;gap:var(--space-xs);font-size:var(--font-size-sm);cursor:pointer;display:inline-flex}.program-timer-recommend-checkbox{width:auto}.program-timer-recommend-value{align-items:center;gap:var(--space-sm);font-size:var(--font-size-sm);color:var(--primary);font-weight:600;display:inline-flex}.program-timer-recommend-apply{font-size:var(--font-size-sm);padding:4px 12px}.program-timer-group-rows{gap:var(--space-xs);width:100%;margin-top:var(--space-xs);padding-top:var(--space-xs);border-top:1px dashed var(--border);flex-direction:column;display:flex}.program-timer-group-row{align-items:center;gap:var(--space-md);flex-wrap:wrap;display:flex}.program-timer-group-label{font-size:var(--font-size-sm);color:var(--primary);white-space:nowrap;font-weight:700}.program-timer-group-athletes{font-size:var(--font-size-sm);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:200px;margin-right:auto;overflow:hidden}.program-timer-group-tabs{align-items:center;gap:var(--space-xs);margin-top:var(--space-sm);flex-wrap:wrap;display:flex}.program-timer-group-tab{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font-size:var(--font-size-sm);color:var(--text-muted);cursor:pointer;transition:var(--transition);padding:4px 12px}.program-timer-group-tab:hover{border-color:var(--primary)}.program-timer-group-tab--selected{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}.timer-rest-input{width:80px;padding:var(--space-xs) var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-base);font-variant-numeric:tabular-nums;background:var(--surface);font-family:Courier New,monospace}.timer-rest-input:focus{border-color:var(--primary);outline:none}.program-timer-running{align-items:center;gap:var(--space-md);padding:var(--space-lg);background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow);margin-top:var(--space-md);flex-direction:column;transition:background-color .4s;display:flex}.program-timer-bg-ready{background:var(--timer-bg-ready)}.program-timer-bg-active{background:var(--timer-bg-active)}.program-timer-bg-warn{background:var(--timer-bg-warn)}.program-timer-bg-danger{background:var(--timer-bg-danger)}.program-timer-bg-last-rep{background:#ff4d4f;animation:1s ease-in-out infinite program-timer-last-rep-pulse;box-shadow:inset 0 0 0 4px #ffffff8c}@keyframes program-timer-last-rep-pulse{0%,to{box-shadow:inset 0 0 0 4px #ffffff8c}50%{box-shadow:inset 0 0 0 4px #fff3,inset 0 0 24px #ffffff73}}.program-timer-group--last-rep{border-color:#ff4d4f;box-shadow:0 0 0 1px #ff4d4f66,0 0 14px #ff4d4f59}.program-timer-countdown{font-variant-numeric:tabular-nums;color:var(--text);font-family:Courier New,monospace;font-size:2.6rem;font-weight:700}.program-timer-progress{color:var(--primary);font-size:1.1rem;font-weight:600}.program-timer-set-desc{color:var(--text);font-size:1.2rem;font-weight:600}.program-timer-next-set{font-size:var(--font-size-sm);color:var(--text-muted)}.program-timer-coming-set{margin-top:var(--space-xs);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius);background:#ffffff0f;flex-direction:column;align-items:center;gap:2px;display:flex}.program-timer-coming-set-label{font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.program-timer-coming-set-desc{color:var(--text);font-size:1.1rem;font-weight:600}.program-timer-coming-set-target{color:var(--primary);font-size:1rem;font-weight:600}.program-timer-rest-banner{justify-content:center;align-items:baseline;gap:var(--space-sm);width:100%;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius);background:var(--warning-bg);border:2px solid var(--warning);animation:2s ease-in-out infinite rest-banner-pulse;display:flex}.program-timer-rest-banner-label{text-transform:uppercase;letter-spacing:.06em;color:var(--warning-text);font-size:1.1rem;font-weight:700}.program-timer-rest-banner-value{color:var(--warning-text);font-family:Courier New,monospace;font-size:1.6rem;font-weight:700}@keyframes rest-banner-pulse{0%,to{filter:brightness()}50%{filter:brightness(1.15)}}.program-timer-groups{gap:var(--space-sm);grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));width:100%;display:grid}.program-timer-group{align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);border:2px solid var(--border);border-radius:var(--radius);cursor:pointer;min-width:0;transition:var(--transition);background:#ffffff0f;flex-direction:column;display:flex}.program-timer-group:hover{border-color:var(--primary)}.program-timer-group--selected{border-color:var(--primary);background:#0000001f}.program-timer-group .program-timer-countdown{flex-wrap:wrap;justify-content:center;align-items:baseline;row-gap:0;font-size:clamp(2rem,min(14vw,12vh),4.5rem);display:flex}.program-timer-countdown-main,.program-timer-countdown-bracket{white-space:nowrap}.program-timer-group-coming-set{flex-direction:column;align-items:center;gap:1px;margin-top:2px;display:flex}.program-timer-group-coming-set-desc{font-size:var(--font-size-sm);color:var(--text);text-align:center;font-weight:600}.program-timer-group-coming-set-target{font-size:var(--font-size-sm);color:var(--primary);font-weight:600}.program-timer-countdown-bracket{color:var(--primary);font-size:1.15em;font-weight:700}.program-timer-countdown-main--soon{color:var(--primary);animation:1s ease-in-out infinite wave-soon-pulse}.program-timer-pre-nav{justify-content:center;align-items:center;gap:var(--space-sm);margin-top:var(--space-sm);padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);display:flex}.program-timer-pre-nav .program-timer-pre-nav-info{flex-direction:column;align-items:center;gap:2px;display:flex}.program-timer-stopped-bar{justify-content:center;align-items:center;gap:var(--space-sm);margin-top:var(--space-sm);padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);display:flex}.program-timer-stopped-edit{margin-top:var(--space-sm)}.program-timer-stopped-group{padding:var(--space-md);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);gap:var(--space-sm);flex-direction:column;align-items:center;display:flex;box-shadow:0 2px 8px #0000000f}.program-timer-stopped-group-head{justify-content:space-between;align-items:center;gap:var(--space-sm);width:100%;display:flex}.program-timer-stopped-group-position{font-size:var(--font-size-sm);color:var(--text-muted);white-space:nowrap}.program-timer-stopped-group-athletes{color:var(--text-muted);text-align:center;font-size:.9rem}.program-timer-stopped-est{width:100%;max-width:420px;padding:var(--space-sm);font-variant-numeric:tabular-nums;text-align:center;color:var(--nav-text);background:var(--primary);border-radius:var(--radius);cursor:text;border:none;font-family:Courier New,Courier,monospace;font-size:clamp(2rem,min(14vw,12vh),4rem);font-weight:700}.program-timer-stopped-est:focus{outline:3px solid #fff9}.program-timer-stopped-bar .heats-nav-arrow:disabled{opacity:.4;cursor:not-allowed}.program-timer-stopped-label{font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-weight:700}.program-timer-stopped-nav{align-items:center;gap:var(--space-md);margin-top:var(--space-sm);display:flex}.program-timer-stopped-nav .heats-nav-arrow:disabled{opacity:.4;cursor:not-allowed}.program-timer-stopped-info{text-align:center;min-width:0}.program-timer-stopped-position{color:var(--text);white-space:nowrap;font-size:1rem;font-weight:600}.program-timer-stopped-desc{font-size:var(--font-size-sm);color:var(--text-muted)}.program-timer-lock-btn{border-radius:var(--radius);background:var(--primary);color:#fff;cursor:pointer;transition:var(--transition);border:none;padding:6px 16px;font-weight:600}.program-timer-lock-btn:hover{background:var(--primary-hover)}.program-timer-fake-fullscreen{z-index:9999;width:100%;height:100%;box-shadow:none;width:100vw;height:100vh;padding:var(--space-sm);justify-content:center;gap:var(--space-xs);box-shadow:none;border-radius:0;margin:0;position:fixed;inset:0;overflow-y:auto}.program-timer-fake-fullscreen .program-timer-countdown{white-space:nowrap;max-width:100%;font-size:clamp(3rem,min(15vw,48vh),20rem);line-height:1;overflow:hidden}.program-timer-running:fullscreen .program-timer-countdown{white-space:nowrap;max-width:100%;font-size:clamp(3rem,min(15vw,48vh),20rem);line-height:1;overflow:hidden}.program-timer-running:-webkit-full-screen .program-timer-countdown{white-space:nowrap;max-width:100%;font-size:clamp(3rem,min(15vw,48vh),20rem);line-height:1;overflow:hidden}.program-timer-fake-fullscreen .program-timer-progress{font-size:1.8rem}.program-timer-running:fullscreen .program-timer-progress{font-size:1.8rem}.program-timer-running:-webkit-full-screen .program-timer-progress{font-size:1.8rem}.program-timer-fake-fullscreen .program-timer-set-desc{font-size:1.6rem}.program-timer-running:fullscreen .program-timer-set-desc{font-size:1.6rem}.program-timer-running:-webkit-full-screen .program-timer-set-desc{font-size:1.6rem}.program-timer-fake-fullscreen .program-timer-next-set{font-size:1.1rem}.program-timer-running:fullscreen .program-timer-next-set{font-size:1.1rem}.program-timer-running:-webkit-full-screen .program-timer-next-set{font-size:1.1rem}.program-timer-fake-fullscreen .program-timer-coming-set-desc{font-size:1.4rem}.program-timer-running:fullscreen .program-timer-coming-set-desc{font-size:1.4rem}.program-timer-running:-webkit-full-screen .program-timer-coming-set-desc{font-size:1.4rem}.program-timer-fake-fullscreen .program-timer-coming-set-target{font-size:1.2rem}.program-timer-running:fullscreen .program-timer-coming-set-target{font-size:1.2rem}.program-timer-running:-webkit-full-screen .program-timer-coming-set-target{font-size:1.2rem}.program-timer-fake-fullscreen .program-timer-rest-banner{padding:var(--space-sm) var(--space-md)}.program-timer-running:fullscreen .program-timer-rest-banner{padding:var(--space-sm) var(--space-md)}.program-timer-running:-webkit-full-screen .program-timer-rest-banner{padding:var(--space-sm) var(--space-md)}.program-timer-fake-fullscreen .program-timer-rest-banner-label{font-size:1.6rem}.program-timer-running:fullscreen .program-timer-rest-banner-label{font-size:1.6rem}.program-timer-running:-webkit-full-screen .program-timer-rest-banner-label{font-size:1.6rem}.program-timer-fake-fullscreen .program-timer-rest-banner-value{font-size:2.6rem}.program-timer-running:fullscreen .program-timer-rest-banner-value{font-size:2.6rem}.program-timer-running:-webkit-full-screen .program-timer-rest-banner-value{font-size:2.6rem}.program-timer-fake-fullscreen .program-timer-group-coming-set-desc,.program-timer-fake-fullscreen .program-timer-group-coming-set-target{font-size:1rem}.program-timer-running:fullscreen .program-timer-group-coming-set-desc{font-size:1rem}.program-timer-running:-webkit-full-screen .program-timer-group-coming-set-desc{font-size:1rem}.program-timer-running:fullscreen .program-timer-group-coming-set-target{font-size:1rem}.program-timer-running:-webkit-full-screen .program-timer-group-coming-set-target{font-size:1rem}.program-timer-fake-fullscreen .program-timer-lock-btn{padding:12px 28px;font-size:1.1rem}.program-timer-running:fullscreen .program-timer-lock-btn{padding:12px 28px;font-size:1.1rem}.program-timer-running:-webkit-full-screen .program-timer-lock-btn{padding:12px 28px;font-size:1.1rem}.program-timer-fake-fullscreen .program-timer-groups{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}.program-timer-running:fullscreen .program-timer-groups{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}.program-timer-running:-webkit-full-screen .program-timer-groups{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}.program-timer-fake-fullscreen .program-timer-group{padding:var(--space-md)}.program-timer-running:fullscreen .program-timer-group{padding:var(--space-md)}.program-timer-running:-webkit-full-screen .program-timer-group{padding:var(--space-md)}.program-timer-fake-fullscreen .program-timer-group .program-timer-countdown{font-size:clamp(2.5rem,min(18vw,16vh),8rem)}.program-timer-running:fullscreen .program-timer-group .program-timer-countdown{font-size:clamp(2.5rem,min(18vw,16vh),8rem)}.program-timer-running:-webkit-full-screen .program-timer-group .program-timer-countdown{font-size:clamp(2.5rem,min(18vw,16vh),8rem)}.program-timer-fake-fullscreen .program-timer-group .program-timer-progress{font-size:1.1rem}.program-timer-running:fullscreen .program-timer-group .program-timer-progress{font-size:1.1rem}.program-timer-running:-webkit-full-screen .program-timer-group .program-timer-progress{font-size:1.1rem}.program-timer-fake-fullscreen .program-timer-group .program-timer-group-label{font-size:1rem}.program-timer-running:fullscreen .program-timer-group .program-timer-group-label{font-size:1rem}.program-timer-running:-webkit-full-screen .program-timer-group .program-timer-group-label{font-size:1rem}@media (orientation:landscape) and (height<=1200px){.program-timer-fake-fullscreen{padding:var(--space-sm);gap:var(--space-xs);justify-content:flex-start;overflow-y:auto}.program-timer-running:fullscreen{padding:var(--space-sm);gap:var(--space-xs);justify-content:flex-start;overflow-y:auto}.program-timer-running:-webkit-full-screen{padding:var(--space-sm);gap:var(--space-xs);justify-content:flex-start;overflow-y:auto}.program-timer-fake-fullscreen .program-timer-countdown{white-space:nowrap;max-width:100%;font-size:clamp(3rem,26vh,9rem)}.program-timer-running:fullscreen .program-timer-countdown{white-space:nowrap;max-width:100%;font-size:clamp(3rem,26vh,9rem)}.program-timer-running:-webkit-full-screen .program-timer-countdown{white-space:nowrap;max-width:100%;font-size:clamp(3rem,26vh,9rem)}.program-timer-fake-fullscreen .program-timer-progress{font-size:1.3rem}.program-timer-running:fullscreen .program-timer-progress{font-size:1.3rem}.program-timer-running:-webkit-full-screen .program-timer-progress{font-size:1.3rem}.program-timer-fake-fullscreen .program-timer-set-desc{font-size:1.2rem}.program-timer-running:fullscreen .program-timer-set-desc{font-size:1.2rem}.program-timer-running:-webkit-full-screen .program-timer-set-desc{font-size:1.2rem}.program-timer-fake-fullscreen .program-timer-next-set{font-size:.9rem}.program-timer-running:fullscreen .program-timer-next-set{font-size:.9rem}.program-timer-running:-webkit-full-screen .program-timer-next-set{font-size:.9rem}.program-timer-fake-fullscreen .program-timer-coming-set-desc{font-size:1rem}.program-timer-running:fullscreen .program-timer-coming-set-desc{font-size:1rem}.program-timer-running:-webkit-full-screen .program-timer-coming-set-desc{font-size:1rem}.program-timer-fake-fullscreen .program-timer-coming-set-target{font-size:.9rem}.program-timer-running:fullscreen .program-timer-coming-set-target{font-size:.9rem}.program-timer-running:-webkit-full-screen .program-timer-coming-set-target{font-size:.9rem}.program-timer-fake-fullscreen .program-timer-lock-btn{padding:8px 18px;font-size:.95rem}.program-timer-running:fullscreen .program-timer-lock-btn{padding:8px 18px;font-size:.95rem}.program-timer-running:-webkit-full-screen .program-timer-lock-btn{padding:8px 18px;font-size:.95rem}.program-timer-fake-fullscreen .program-timer-groups{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}.program-timer-running:fullscreen .program-timer-groups{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}.program-timer-running:-webkit-full-screen .program-timer-groups{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}.program-timer-fake-fullscreen .program-timer-group .program-timer-countdown{font-size:clamp(2rem,16vh,6rem)}.program-timer-running:fullscreen .program-timer-group .program-timer-countdown{font-size:clamp(2rem,16vh,6rem)}.program-timer-running:-webkit-full-screen .program-timer-group .program-timer-countdown{font-size:clamp(2rem,16vh,6rem)}.program-timer-fake-fullscreen .program-timer-group .program-timer-progress{font-size:1rem}.program-timer-running:fullscreen .program-timer-group .program-timer-progress{font-size:1rem}.program-timer-running:-webkit-full-screen .program-timer-group .program-timer-progress{font-size:1rem}}.program-timer-complete{padding:var(--space-sm) var(--space-md);background:var(--success);color:#fff;border-radius:var(--radius);text-align:center;font-weight:600}.timer-lanes-table{margin:var(--space-lg) 0;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);overflow:hidden}.timer-lanes-header{gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--bg);border-bottom:1px solid var(--border);font-weight:600;font-size:var(--font-size-sm);color:var(--text-muted);grid-template-columns:80px 100px 1fr 60px;display:grid}.timer-lane-row{gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border);grid-template-columns:80px 100px 1fr 60px;align-items:center;display:grid}.timer-lane-row:last-child{border-bottom:none}.lane-col-skip{align-items:center;display:flex}.lane-col-number{color:var(--text);font-weight:600}.lane-col-athletes{grid-template-columns:80px 1fr;align-items:center;gap:2px 6px;display:grid}.btn-skip{background:var(--warning);color:var(--text);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius);cursor:not-allowed;font-size:var(--font-size-sm);opacity:.6;border:none;width:100%}.btn-assign{background:var(--success);color:var(--nav-text);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius);cursor:pointer;font-size:var(--font-size-sm);width:100%;transition:background var(--transition);border:none}.btn-assign:hover{background:var(--success-hover)}.lane-col-skip-btn{justify-content:center;align-items:center;display:flex}.btn-skip-lane{background:var(--warning);color:var(--text);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius);cursor:pointer;font-size:var(--font-size-sm);width:100%;transition:background var(--transition);border:none}.btn-skip-lane:hover{background:var(--warning-bg)}.lane-athlete{color:var(--text);display:contents}.lane-athlete--selected.lane-athlete-name{outline:2px solid var(--primary);outline-offset:1px;border-radius:var(--radius)}.lane-athlete-name{white-space:nowrap;text-overflow:ellipsis;cursor:pointer;border-radius:var(--radius);padding:1px 2px;font-weight:500;overflow:hidden}.lane-athlete-name:hover{outline:1px solid var(--primary)}.lane-athlete-name--with-goal{white-space:normal;flex-direction:column;align-items:flex-start;gap:1px;display:flex}.lane-athlete-name-text{white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.lane-athlete-goal{cursor:default;align-items:center;gap:2px;display:inline-flex}.lane-athlete-goal-input{border:1px solid var(--border);border-radius:var(--radius);font-variant-numeric:tabular-nums;background:var(--surface);width:62px;color:var(--text);padding:1px 4px;font-size:.7rem}.lane-athlete-goal-input:focus{border-color:var(--primary);outline:none}.lane-athlete-walltime{font-variant-numeric:tabular-nums;width:62px;color:var(--primary);background:color-mix(in srgb, var(--primary) 12%, transparent);border:1px solid color-mix(in srgb, var(--primary) 35%, transparent);border-radius:var(--radius);white-space:nowrap;justify-content:center;align-items:center;padding:1px 4px;font-size:.7rem;display:inline-flex}.lane-athlete-walltime--empty{color:var(--text-muted);border-color:var(--border);background:0 0}.selected-athlete-hcp{align-items:center;gap:var(--space-xs);margin-left:auto;display:inline-flex}.athlete-hcp-label{color:var(--text-secondary,inherit);font-size:.75rem}.athlete-hcp-input{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:46px;color:var(--text);padding:2px 4px;font-size:.8rem}.athlete-hcp-input:focus{border-color:var(--warning);outline:none}.athlete-hcp-unit,.athlete-hcp-status{color:var(--text-secondary,inherit);font-size:.7rem}.timer-lane-order-bar{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm);display:flex}.timer-lane-order-bar label{font-size:var(--font-size-sm);color:var(--text-muted)}.lane-athlete-splits{flex-wrap:wrap;gap:2px;min-width:0;display:inline-flex}.lane-athlete-split{background:var(--primary);color:var(--nav-text);font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:3px;padding:1px 6px;font-size:.75rem}.lane-athlete-split--faster{background:var(--success)}.lane-athlete-split--slower{background:var(--danger)}.lane-athlete-split--equal{background:var(--warning);color:var(--text)}.lane-athlete-split--editable{cursor:pointer}.lane-athlete-split--editable:hover{filter:brightness(1.15)}.lane-athlete-rep-divider{background:var(--border);align-self:stretch;width:1px;min-height:1.2em;margin:0 2px;display:inline-block}.split-edit-dialog{max-width:340px}.split-edit-field{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm);display:flex}.split-edit-field label{min-width:90px;font-size:var(--font-size-sm);color:var(--text-muted);text-align:right;flex-shrink:0}.split-edit-field select,.split-edit-field input{padding:var(--space-xs) var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-sm);background:var(--surface);color:var(--text);flex:1;min-width:0}.split-edit-field select:focus,.split-edit-field input:focus{border-color:var(--primary);outline:none}.split-edit-time-input{font-variant-numeric:tabular-nums}.split-edit-actions{justify-content:space-between;gap:var(--space-sm);margin-top:var(--space-md);display:flex}.lane-athlete-record-eq{margin-left:4px;font-weight:700}.lane-athlete-split--skipped{background:var(--danger);font-weight:700}.lane-athlete-splits-toggle{background:var(--border);color:var(--text);cursor:pointer;min-width:24px;transition:background var(--transition);border:none;border-radius:3px;justify-content:center;align-items:center;padding:1px 6px;font-size:.7rem;font-weight:600;line-height:1.5;display:inline-flex}.lane-athlete-splits-toggle:hover{background:var(--text-muted);color:#fff}.lane-athlete-frek{color:var(--text-muted);opacity:.8;margin-left:4px;font-size:.65rem;display:inline-block}.lane-athlete-split-leg{opacity:.85;margin-right:4px;font-weight:700;display:inline-block}.lane-athlete-split--overall{border:1px solid var(--nav-text);font-weight:700}.frek-panel{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;margin:8px 0;padding:8px 12px;display:flex}.frek-panel-info{align-items:center;gap:8px;display:flex}.frek-panel-label{color:var(--text);font-weight:600}.frek-panel-athlete{color:var(--text-muted)}.frek-panel-count{background:var(--primary);color:#fff;border-radius:10px;padding:2px 8px;font-size:.75rem;font-weight:600}.frek-panel-pending{background:var(--success);color:#fff;border-radius:10px;padding:2px 8px;font-size:.75rem;font-weight:600}.frek-panel-actions{gap:8px;display:flex}.btn-frek{border:2px solid var(--primary);color:var(--primary);cursor:pointer;transition:all var(--transition);background:0 0;border-radius:6px;padding:6px 16px;font-weight:600}.btn-frek:hover{background:var(--primary);color:#fff}.btn-frek--active{background:var(--primary);color:#fff;animation:.6s ease-in-out infinite frek-pulse}@keyframes frek-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.split-frek-input{width:60px}.split-frek{color:var(--text-muted);font-size:.85rem}.lane-empty{color:var(--text-muted);font-style:italic;font-size:var(--font-size-sm);grid-column:1/-1}.athlete-picker-item{border-bottom:1px solid var(--border);flex-direction:column;padding:4px 8px;display:flex}.athlete-picker-item:last-child{border-bottom:none}.athlete-picker-checkbox{cursor:pointer;align-items:center;gap:6px;display:flex}.athlete-goal-row{align-items:center;gap:4px;margin-top:2px;margin-left:22px;display:flex}.athlete-goal-label{color:var(--text-muted);white-space:nowrap;font-size:.75rem}.athlete-goal-input{border:1px solid var(--border);border-radius:var(--radius);font-variant-numeric:tabular-nums;background:var(--surface);width:72px;color:var(--text);padding:2px 6px;font-size:.8rem}.athlete-goal-input:focus{border-color:var(--primary);outline:none}.lane-control-panel{justify-content:flex-end;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);margin:var(--space-sm) 0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);display:flex}.lane-control-info{align-items:center;gap:var(--space-xs);display:flex}.lane-control-label{font-size:var(--font-size-sm);color:var(--text-muted)}.lane-control-athlete{font-size:var(--font-size-sm);color:var(--text);font-weight:600}.lane-control-actions{align-items:center;gap:4px;display:flex}.lane-move-btn{background:var(--surface);border:1px solid var(--border);cursor:pointer;color:var(--text);border-radius:3px;min-width:28px;padding:2px 8px;font-size:.85rem;line-height:1.5}.lane-move-btn:hover{background:var(--bg);border-color:var(--primary)}.lane-athlete-lane-select{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:3px;padding:2px 4px;font-size:.8rem}.lane-athlete-diff{white-space:nowrap;margin-left:2px;font-size:.7rem}.lane-athlete-diff--faster{color:var(--success)}.lane-athlete-diff--slower{color:var(--danger)}.athlete-picker-dropdown{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-sm);margin-top:var(--space-sm);max-height:200px;overflow-y:auto}.athlete-picker-item{align-items:center;gap:var(--space-sm);padding:var(--space-xs);cursor:pointer;border-radius:var(--radius);display:flex}.athlete-picker-item:hover{background:var(--bg)}.athlete-picker-filters{gap:var(--space-sm);margin-bottom:var(--space-sm);display:flex}.athlete-picker-search{padding:var(--space-xs) var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-sm);flex:1}.athlete-picker-group-select{padding:var(--space-xs) var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-sm);background:var(--bg);min-width:140px}.athlete-picker-item input{cursor:pointer}.timer-heats-section{padding:var(--space-md) 0}.heats-top-bar{justify-content:space-between;align-items:center;gap:var(--space-md);margin-bottom:var(--space-lg);flex-wrap:wrap;display:flex}.heats-session-name{align-items:center;gap:var(--space-sm);display:flex}.heats-session-name label{font-size:var(--font-size-sm);color:var(--text-muted);white-space:nowrap;font-weight:500}.heats-session-name input{padding:var(--space-sm) var(--space-md);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-base);background:var(--surface);color:var(--text);min-width:200px}.heats-session-name input:focus{border-color:var(--primary);outline:none}.heats-actions{gap:var(--space-sm);display:flex}.btn-heat-action{padding:var(--space-xs) var(--space-md);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font-size:var(--font-size-sm);cursor:pointer;transition:var(--transition)}.btn-heat-action:hover:not(:disabled){background:var(--primary);color:#fff;border-color:var(--primary)}.btn-heat-action:disabled{opacity:.5;cursor:not-allowed}.btn-heat-danger:hover:not(:disabled){background:var(--danger);border-color:var(--danger)}.btn-heat-add{padding:var(--space-sm) var(--space-lg);border-radius:var(--radius);background:var(--primary);color:#fff;font-size:var(--font-size-base);cursor:pointer;transition:var(--transition);border:none;font-weight:600}.btn-heat-add:hover{background:var(--primary-hover)}.heats-empty{text-align:center;padding:var(--space-xl);color:var(--text-muted)}.heats-empty p{margin-bottom:var(--space-lg)}.heats-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden}.heats-nav-header{padding:var(--space-md);background:var(--bg);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.heats-nav-label{font-weight:600;font-size:var(--font-size-base);color:var(--text)}.heats-nav-arrow{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-xs) var(--space-sm);cursor:pointer;color:var(--text);text-align:center;min-width:36px;transition:var(--transition);font-size:1rem}.heats-nav-arrow:hover:not(:disabled){background:var(--primary);color:#fff;border-color:var(--primary)}.heats-nav-arrow:disabled{opacity:.3;cursor:not-allowed}.heats-card-body{padding:var(--space-md);gap:var(--space-lg);flex-direction:column;display:flex}.heats-field-row{gap:var(--space-lg);flex-wrap:wrap;display:flex}.heats-field{gap:var(--space-xs);flex-direction:column;min-width:140px;display:flex}.heats-field label{font-size:var(--font-size-sm);color:var(--text-muted);font-weight:500}.heats-field select,.heats-field input[type=number]{padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-base);background:var(--surface);color:var(--text)}.heats-field select:focus,.heats-field input[type=number]:focus{border-color:var(--primary);outline:none}.heats-field input[type=number]{width:100px}.heats-unit{font-size:var(--font-size-sm);color:var(--text-muted);margin-top:2px}.heats-athletes-section{gap:var(--space-sm);flex-direction:column;display:flex}.heats-athletes-section>label{font-size:var(--font-size-sm);color:var(--text-muted);font-weight:500}.heats-athlete-tags{gap:var(--space-xs);flex-wrap:wrap;display:flex}.heats-athlete-tag{background:var(--primary);color:#fff;border-radius:var(--radius);align-items:center;gap:4px;padding:2px 8px;font-size:.8rem;font-weight:500;display:inline-flex}.heats-athlete-tag-name{white-space:nowrap}.heats-best-time-input{border:1px solid var(--border);background:var(--surface);width:52px;color:var(--text);font-variant-numeric:tabular-nums;text-align:center;border-radius:4px;padding:1px 4px;font-size:.8rem}.heats-best-time-input:focus{border-color:var(--primary);outline:none}.heats-record-db-badge{background:#fff3;border-radius:4px;padding:0 4px;font-size:.65rem;font-weight:700;line-height:1.4}.heats-record-db-badge--est{color:#ffd54f;background:#ffc10740}.heats-athlete-tag-remove{color:#fffc;cursor:pointer;background:0 0;border:none;padding:0;font-size:1rem;line-height:1}.heats-athlete-tag-remove:hover{color:#fff}.heats-no-athletes{font-size:var(--font-size-sm);color:var(--text-muted);font-style:italic}.heats-athlete-picker select{padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-sm);background:var(--surface);color:var(--text);min-width:180px}.heats-athlete-picker select:focus{border-color:var(--primary);outline:none}.heats-card-actions{gap:var(--space-sm);display:flex}.heats-bottom-bar{margin-top:var(--space-lg);justify-content:space-between;align-items:center;display:flex}.heats-bottom-nav{gap:var(--space-sm);display:flex}.timer-heat-nav{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md);display:flex}.timer-heat-nav .heats-nav-arrow{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-xs) var(--space-sm);cursor:pointer;color:var(--text);text-align:center;min-width:32px;transition:var(--transition);font-size:.85rem;line-height:1.4}.timer-heat-nav .heats-nav-arrow:hover:not(:disabled){background:var(--primary);color:#fff;border-color:var(--primary)}.timer-heat-nav .heats-nav-arrow:disabled{opacity:.3;cursor:not-allowed}.timer-heat-info{background:var(--primary);color:#fff;padding:var(--space-xs) var(--space-md);border-radius:var(--radius);font-size:var(--font-size-sm);text-align:center;flex:1;font-weight:600}@media (width<=600px){.timer-time{font-size:2.5rem}.timer-controls{flex-direction:column;align-items:stretch}.btn-timer{min-width:52px;padding:6px 10px;font-size:.8rem}.timer-top-controls{flex-wrap:wrap;gap:6px}.timer-top-controls .btn-timer:first-child{margin-right:0}.timer-time-centered{text-align:center;order:-1;width:100%;font-size:1.4rem}.program-timer-set-row{gap:var(--space-sm);padding:var(--space-sm)}.program-timer-set-info{min-width:100%;margin-right:0}.program-timer-est-input,.program-timer-rest-input{width:72px}.program-timer-stopped-group-head{flex-direction:column;align-items:center}.program-timer-stopped-est{font-size:clamp(1.6rem,10vw,3rem)}.program-timer-countdown{font-size:1.8rem}.program-timer-group{min-width:0;padding:var(--space-xs) var(--space-sm)}.program-timer-group .program-timer-countdown,.program-timer-fake-fullscreen .program-timer-group .program-timer-countdown{font-size:clamp(1.4rem,8vw,2rem)}.program-timer-running:fullscreen .program-timer-group .program-timer-countdown{font-size:clamp(1.4rem,8vw,2rem)}.program-timer-running:-webkit-full-screen .program-timer-group .program-timer-countdown{font-size:clamp(1.4rem,8vw,2rem)}.timer-lanes-header{grid-template-columns:44px 48px 1fr 36px;gap:4px;padding:4px 6px;font-size:.7rem}.timer-lane-row{grid-template-columns:44px 48px 1fr 36px;gap:4px;padding:4px 6px}.btn-assign{min-width:0;padding:2px 6px;font-size:.7rem}.btn-skip-lane{padding:2px 4px;font-size:.7rem}.lane-col-number{font-size:.75rem}.lane-athlete-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.75rem;overflow:hidden}.lane-athlete-name--with-goal{white-space:normal}.timer-settings-grid{grid-template-columns:repeat(2,1fr)}.heats-top-bar,.heats-session-name{flex-direction:column;align-items:stretch}.heats-session-name input{min-width:0}.heats-field-row{gap:var(--space-md);flex-direction:column}.heats-field{min-width:0}.heats-field input[type=number]{width:100%}.heats-card-body{padding:var(--space-sm)}.heats-athlete-picker select{width:100%;min-width:0}.heats-bottom-bar{gap:var(--space-md);flex-direction:column}.timer-heat-nav{flex-wrap:wrap;justify-content:center}.timer-heat-info{min-width:0;font-size:.75rem}}.diary-today-sets{margin:var(--space-md) 0;padding:var(--space-md);background:var(--surface);border-radius:var(--radius-lg);border:1px solid var(--border)}.diary-today-sets h4{margin:0 0 var(--space-sm) 0;color:var(--text);font-size:var(--font-size-base)}.diary-today-sets .diary-entry{padding:var(--space-sm);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.diary-today-sets .diary-entry:last-child{border-bottom:none}.diary-today-sets .diary-entry-info{flex:1}.diary-today-sets .diary-entry-info strong{margin-bottom:var(--space-xs);display:block}.diary-today-sets .diary-entry-info span{color:var(--text-muted);font-size:var(--font-size-sm)}.diary-today-sets .diary-entry-info p{margin:var(--space-xs) 0 0 0;font-size:var(--font-size-sm);color:var(--text-muted)}.diary-today-sets .diary-entry-delete{color:var(--danger);cursor:pointer;padding:0 var(--space-sm);background:0 0;border:none;font-size:1.2rem;line-height:1}.diary-today-sets .diary-entry-delete:hover{color:var(--danger-hover)}.diary-history-entry{padding:var(--space-xs) 0;justify-content:space-between;align-items:center;display:flex}.diary-history-entry .diary-entry-info{gap:var(--space-sm);flex:1;display:flex}.diary-history-entry .diary-entry-delete{color:var(--danger);cursor:pointer;padding:0 var(--space-xs);background:0 0;border:none;font-size:1rem;line-height:1}.diary-history-entry .diary-entry-delete:hover{color:var(--danger-hover)}.events-table{border-collapse:collapse;width:100%;margin-top:var(--space-md)}.events-table th,.events-table td{padding:var(--space-sm) var(--space-md);text-align:left;border-bottom:1px solid var(--border)}.events-table th{background:var(--bg);color:var(--text-muted);font-weight:600;font-size:var(--font-size-sm)}.events-table tr:hover{background:var(--bg)}.badge{padding:var(--space-xs) var(--space-sm);border-radius:var(--radius);font-size:var(--font-size-sm);font-weight:600;display:inline-block}.badge-warning{background:var(--warning-bg);color:var(--warning-text)}.badge-info{background:var(--info-bg);color:var(--primary)}.owner-badge{background:var(--warning-bg);color:var(--warning-text);vertical-align:middle;border-radius:4px;margin-left:8px;padding:1px 6px;font-size:.7rem;font-weight:600;display:inline-block}.temp-users-section{border-top:1px solid var(--border);margin-top:30px;padding-top:20px}.temp-users-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.temp-users-header h4{color:var(--text);margin:0;font-size:1rem}.btn-temp-user-add{background:var(--primary,#007bff);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:5px 12px;font-size:.8rem}.btn-temp-user-add:hover{opacity:.9}.temp-user-form{background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;flex-direction:column;gap:8px;margin-bottom:12px;padding:12px;display:flex}.temp-user-form input{border:1px solid var(--border);border-radius:4px;padding:8px;font-size:.9rem}.temp-user-form-actions{justify-content:flex-end;gap:8px;display:flex}.temp-user-form-actions button{background:var(--primary,#007bff);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:6px 16px}.temp-user-form-actions button:disabled{opacity:.5;cursor:not-allowed}.temp-user-edit-inline{flex-direction:column;gap:6px;width:100%;display:flex}.temp-user-edit-inline input{border:1px solid var(--border);border-radius:4px;padding:6px;font-size:.85rem}.temp-user-inline-actions{gap:6px;display:flex}.temp-user-inline-actions button{cursor:pointer;border:none;border-radius:3px;padding:4px 10px;font-size:.8rem}.temp-user-inline-actions button:first-child{background:var(--primary,#007bff);color:#fff}.temp-user-inline-actions button:last-child{color:#fff;background:#6c757d}.temp-user-inline-actions button:disabled{opacity:.5;cursor:not-allowed}.temp-user-badge{background:var(--warning-bg);color:var(--warning-text);vertical-align:middle;border-radius:4px;margin-left:8px;padding:1px 6px;font-size:.7rem;font-weight:600;display:inline-block}.temp-user-actions{align-items:center;gap:4px;display:flex}.btn-temp-user-edit{border:1px solid var(--border);cursor:pointer;color:var(--primary,#007bff);background:0 0;border-radius:3px;padding:4px 8px;font-size:.85rem}.btn-temp-user-edit:hover{background:var(--primary,#007bff);color:#fff}.btn-temp-user-delete{border:1px solid var(--border);cursor:pointer;color:var(--danger,#e74c3c);background:0 0;border-radius:3px;padding:4px 8px;font-size:1rem;line-height:1}.btn-temp-user-delete:hover{background:var(--danger,#e74c3c);color:#fff}.merge-request-section{margin-top:6px}.merge-request-badge{border-radius:4px;align-items:center;gap:6px;padding:3px 8px;font-size:.78rem;display:inline-flex}.merge-request-pending{background:var(--warning-bg);color:var(--warning-text)}.merge-request-rejected{background:var(--danger-soft-bg,var(--warning-bg));color:var(--danger,#e74c3c);flex-direction:column;align-items:flex-start;display:inline-flex}.merge-request-notes{color:var(--text-secondary,inherit);margin-top:2px;font-size:.75rem}.btn-merge-request-cancel{cursor:pointer;color:inherit;background:0 0;border:none;padding:0 4px;font-size:.9rem;line-height:1}.btn-request-merge{border:1px solid var(--border);cursor:pointer;color:var(--primary,#007bff);background:0 0;border-radius:3px;margin-top:4px;padding:4px 10px;font-size:.8rem}.btn-request-merge:hover{background:var(--primary,#007bff);color:#fff}.merge-request-form{flex-direction:column;gap:6px;min-width:220px;display:flex}.merge-request-form input{border:1px solid var(--border);border-radius:4px;padding:6px;font-size:.85rem}.my-events{gap:var(--space-lg);padding:var(--space-lg);max-width:var(--max-width-lg);flex-direction:column;margin:0 auto;display:flex}.events-calendar{gap:var(--space-md);flex-direction:column;display:flex}.calendar-stamp-legend{gap:var(--space-md);font-size:var(--font-size-sm);color:var(--text-muted);flex-wrap:wrap;display:flex}.calendar-stamp-legend-item{align-items:center;gap:4px;display:inline-flex}.calendar-day-detail{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:var(--space-md)}.calendar-day-detail-list{flex-direction:column;gap:4px;margin:0;padding-left:1.2em;display:flex}.event-form{background:var(--surface);padding:var(--space-lg);border-radius:var(--radius-lg);box-shadow:var(--shadow);gap:var(--space-md);flex-direction:column;display:flex}.event-form select,.event-form input,.event-form textarea{padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-base)}.form-actions{gap:var(--space-sm);display:flex}.coach-visibility-note{background:var(--bg);border-left:3px solid var(--primary);padding:var(--space-md);margin-top:var(--space-md);border-radius:var(--radius)}.coach-visibility-note p{margin:0 0 var(--space-sm) 0;color:var(--text)}.coach-visibility-note ul{padding-left:var(--space-lg);color:var(--text-muted);margin:0}.coach-visibility-note li{margin-bottom:var(--space-xs)}.coach-visibility-note strong{color:var(--text)}.learn-more{color:var(--primary);cursor:pointer;font-size:var(--font-size-sm);margin-left:var(--space-sm);text-decoration:underline}.learn-more:hover{color:var(--primary-hover)}.visibility-help-text{margin-top:var(--space-sm);padding:var(--space-sm);background:var(--surface);border-radius:var(--radius);font-size:var(--font-size-sm);color:var(--text-muted)}.seasons-header{margin-bottom:var(--space-md);justify-content:space-between;align-items:center;display:flex}.seasons-header h3{margin:0}.btn-create-season{background:var(--primary);color:#fff;padding:var(--space-sm) var(--space-md);border-radius:var(--radius);cursor:pointer;font-size:var(--font-size-base);transition:background var(--transition);border:none}.btn-create-season:hover{background:var(--primary-hover)}.season-form{background:var(--surface);padding:var(--space-lg);border-radius:var(--radius-lg);box-shadow:var(--shadow);gap:var(--space-md);margin-bottom:var(--space-lg);flex-direction:column;display:flex}.season-form input[type=text],.season-form input[type=date]{padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-base)}.season-dates-row{gap:var(--space-md);display:flex}.season-dates-row label{gap:var(--space-xs);font-size:var(--font-size-sm);color:var(--text-muted);flex-direction:column;flex:1;display:flex}.season-form button{align-self:flex-end}.seasons-list{gap:var(--space-sm);flex-direction:column;display:flex}.season-card{align-items:center;gap:var(--space-md);background:var(--surface);padding:var(--space-md);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);cursor:pointer;transition:box-shadow var(--transition), transform var(--transition);display:flex}.season-card:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.season-card.active{border-left:3px solid var(--primary)}.season-icon{background:var(--success);color:#fff;width:40px;height:40px;font-size:var(--font-size-lg);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.season-info{flex:1}.season-name{color:var(--text);font-weight:600;font-size:var(--font-size-base)}.season-dates{font-size:var(--font-size-sm);color:var(--text-muted);margin-top:var(--space-xs)}.season-delete{width:32px;height:32px;color:var(--text-muted);font-size:var(--font-size-lg);cursor:pointer;transition:background var(--transition), color var(--transition);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.season-delete:hover{background:var(--danger);color:#fff}.season-detail-dates{color:var(--text-muted);font-size:var(--font-size-sm);margin-bottom:var(--space-md)}.coming-soon{text-align:center;padding:var(--space-xl);color:var(--text-muted);font-style:italic}.locations-list{gap:var(--space-sm);flex-direction:column;display:flex}.location-card{align-items:center;gap:var(--space-md);background:var(--surface);padding:var(--space-md);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);cursor:pointer;transition:box-shadow var(--transition), transform var(--transition);display:flex}.location-card:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.location-card.active{border-left:3px solid var(--primary)}.location-icon{background:var(--primary);color:#fff;width:40px;height:40px;font-size:var(--font-size-lg);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.location-info{flex:1}.location-name{color:var(--text);font-weight:600;font-size:var(--font-size-base)}.location-meta{font-size:var(--font-size-sm);color:var(--text-muted);margin-top:var(--space-xs);white-space:pre-line}.records-table{border-collapse:collapse;width:100%;font-size:.9rem}.records-table thead th{text-align:left;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);border-bottom:1px solid var(--border);white-space:nowrap;padding:6px 8px;font-size:.78rem;font-weight:600}.records-table tbody td{border-bottom:1px solid var(--border);vertical-align:middle;padding:5px 8px}.records-table .record-table-time,.records-table .record-table-age,.records-table .record-table-distance{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.records-table .record-table-date{white-space:nowrap}.records-table-actions-head{width:1%}.records-table .record-table-actions{text-align:right;white-space:nowrap}.record-table-edit-row td{background:var(--surface);border-bottom:1px solid var(--border);padding:8px}.record-table-notes-row td.record-table-notes{color:var(--text-muted);padding-top:0;font-size:.8rem}.location-delete{width:32px;height:32px;color:var(--text-muted);font-size:var(--font-size-lg);cursor:pointer;transition:background var(--transition), color var(--transition);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.record-import-file-input{display:none}.records-toolbar{margin-bottom:var(--space-sm);flex-wrap:wrap;align-items:center;gap:8px;display:flex}.records-toolbar .record-search{border:1px solid var(--border);background:var(--bg-secondary,#fff);min-width:0;color:var(--text);border-radius:4px;flex:200px;padding:8px;font-size:.9rem}.records-toolbar select{border:1px solid var(--border);background:var(--bg-secondary,#fff);color:var(--text);cursor:pointer;border-radius:4px;padding:7px 8px;font-size:.9rem}.records-header{justify-content:space-between;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm);flex-wrap:wrap;display:flex}.records-header-actions{align-items:center;gap:8px;display:flex}.record-import-panel{background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;flex-direction:column;gap:8px;margin-bottom:12px;padding:12px;display:flex}.record-import-panel h3{color:var(--text);margin:0;font-size:1rem}.record-import-hint{font-size:var(--font-size-sm);color:var(--text-muted);margin:0}.import-error{color:#d9534f;font-size:var(--font-size-sm);margin:0}.import-result{color:var(--success,#28a745);font-size:var(--font-size-sm);margin:0}.import-summary-line{font-size:var(--font-size-sm);color:var(--text);margin:0}.record-import-list{flex-direction:column;gap:8px;max-height:320px;padding-right:4px;display:flex;overflow-y:auto}.location-delete:hover{background:var(--danger);color:#fff}.location-form{background:var(--surface);padding:var(--space-lg);border-radius:var(--radius-lg);box-shadow:var(--shadow);gap:var(--space-md);flex-direction:column;display:flex}.location-form input[type=text],.location-form input[type=number]{padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-base);width:100%}.location-form input[type=number]{width:120px}.location-form textarea{padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-base);resize:vertical;min-height:60px}.location-form-row{gap:var(--space-md);flex-wrap:wrap;display:flex}.location-form-row label{gap:var(--space-xs);min-width:140px;font-size:var(--font-size-sm);color:var(--text-muted);flex-direction:column;flex:1;display:flex}.location-form-row input[type=text],.location-form-row input[type=number]{width:100%}.location-checkbox{align-items:center;gap:var(--space-sm)!important;flex-direction:row!important}.location-checkbox input[type=checkbox]{cursor:pointer;width:18px;height:18px}.location-form-actions{justify-content:flex-end;display:flex}.location-details{background:var(--surface);padding:var(--space-lg);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.location-details h3,.location-details h4{margin:0 0 var(--space-md) 0}.detail-grid{gap:var(--space-md);margin-bottom:var(--space-lg);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.detail-item{gap:var(--space-xs);flex-direction:column;display:flex}.detail-item.full-width{grid-column:1/-1}.detail-label{font-size:var(--font-size-sm);color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-weight:600}.detail-value{font-size:var(--font-size-base);color:var(--text)}.location-detail-actions{gap:var(--space-sm);margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--border);display:flex}.btn-edit{background:var(--primary);color:#fff;padding:var(--space-sm) var(--space-lg);border-radius:var(--radius);cursor:pointer;font-size:var(--font-size-base);transition:background var(--transition);border:none}.btn-edit:hover{background:var(--primary-hover)}.btn-delete-inline{background:var(--danger);color:#fff;padding:var(--space-sm) var(--space-lg);border-radius:var(--radius);cursor:pointer;font-size:var(--font-size-base);transition:background var(--transition);border:none}.btn-delete-inline:hover{background:var(--danger-hover)}.calendar-container{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:var(--space-lg);margin-top:var(--space-lg)}.calendar-container .calendar-header{margin-bottom:var(--space-lg);justify-content:space-between;align-items:center;display:flex}.calendar-container .calendar-nav-btn{background:var(--surface);border:1px solid var(--border);padding:var(--space-sm) var(--space-md);border-radius:var(--radius);cursor:pointer;transition:background var(--transition);font-size:var(--font-size-base)}.calendar-container .calendar-nav-btn:hover:not(:disabled){background:var(--bg)}.calendar-container .calendar-nav-btn:disabled{opacity:.5;cursor:not-allowed}.calendar-container .calendar-month-year{font-size:var(--font-size-xl);color:var(--text);font-weight:600}.calendar-container .calendar-filter-bar{flex-wrap:wrap;align-items:center;gap:4px;padding:4px 0;display:flex}.calendar-container .calendar-filter-dropdown{position:relative}.calendar-container .calendar-filter-btn{background:var(--surface);border:1px solid var(--border);cursor:pointer;white-space:nowrap;color:var(--text);border-radius:3px;padding:2px 6px;font-size:.65rem}.calendar-container .calendar-filter-btn:hover{background:var(--bg)}.calendar-container .calendar-filter-menu{z-index:100;background:var(--surface);border:1px solid var(--border);border-radius:4px;min-width:140px;max-height:200px;margin-top:2px;padding:4px 0;position:absolute;top:100%;left:0;overflow-y:auto;box-shadow:0 2px 8px #00000026}.calendar-container .calendar-filter-option{cursor:pointer;color:var(--text);white-space:nowrap;align-items:center;gap:6px;padding:3px 8px;font-size:.7rem;display:flex}.calendar-container .calendar-filter-option:hover{background:var(--bg)}.calendar-container .calendar-filter-option input{margin:0}.calendar-container .calendar-filter-search{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:3px;outline:none;width:100px;padding:2px 6px;font-size:.65rem}.calendar-container .calendar-filter-search:focus{border-color:var(--primary)}.calendar-container .calendar-grid{background:var(--border);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:repeat(7,1fr);gap:1px;display:grid;overflow:hidden}.calendar-container .calendar-weekdays{display:contents}.calendar-container .calendar-weekday{background:var(--bg);padding:var(--space-sm);text-align:center;font-weight:600;font-size:var(--font-size-sm);color:var(--text-muted)}.calendar-container .calendar-day{background:var(--surface);cursor:pointer;min-width:0;min-height:100px;transition:background var(--transition);padding:2px;position:relative;overflow:hidden}.calendar-container .calendar-day:hover:not(.calendar-day--outside){background:var(--bg)}.calendar-container .calendar-day--outside{background:var(--bg);opacity:.5;cursor:default}.calendar-container .calendar-day--today{background:var(--info-bg)}.calendar-container .calendar-day-number{color:var(--text);margin-bottom:2px;font-size:.7rem;font-weight:600}.calendar-container .calendar-events{flex-direction:column;gap:1px;max-height:80px;display:flex;overflow-y:auto}.calendar-container .calendar-events--expanded{max-height:none;overflow-y:visible}.calendar-container .calendar-events--columns{flex-direction:row;gap:1px;max-height:none;overflow-y:visible}.calendar-container .calendar-location-column{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.calendar-container .calendar-location-header{text-transform:uppercase;color:var(--text-muted);text-align:center;border-bottom:1px solid var(--border);white-space:nowrap;text-overflow:ellipsis;padding:1px 0;font-size:.5rem;font-weight:700;overflow:hidden}.calendar-container .calendar-event{color:#fff;cursor:pointer;overflow-wrap:break-word;transition:opacity var(--transition);border-radius:2px;padding:1px 3px;font-size:.65rem;line-height:1.3}.calendar-container .calendar-event:hover{opacity:.9}.calendar-container .calendar-event--continued{opacity:.7;border-left:2px solid #ffffff80;padding:1px 3px 1px 10px;font-size:.6rem}.calendar-container .calendar-event--all-day{background-image:repeating-linear-gradient(45deg,#0000,#0000 6px,#ffffff1f 6px 10px);border-left:3px solid #ffffff80}.calendar-container .calendar-event-indicator{opacity:.85;font-size:.6rem;font-weight:600}.calendar-container .calendar-event--competition{background:#2196f3}.calendar-container .calendar-event--training{background:#4caf50}.calendar-container .calendar-event--camp{background:#ff9800}.calendar-container .calendar-event--vacation{background:#9c27b0}.calendar-container .calendar-event--other{background:#9e9e9e}.calendar-container .calendar-more{color:var(--text-muted);padding:2px var(--space-xs);cursor:pointer;font-size:.7rem}.recurrence-section{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--border)}.recurrence-section h4{margin-bottom:var(--space-sm);font-size:var(--font-size-base)}.recurrence-section label{margin-bottom:var(--space-sm);display:block}.recurrence-section .location-checkbox{margin-right:var(--space-md);display:inline-flex}.competition-card{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-lg);margin-bottom:var(--space-md)}.competition-header{margin-bottom:var(--space-md);justify-content:space-between;align-items:flex-start;gap:var(--space-sm);flex-wrap:wrap;display:flex}.competition-title{font-weight:600;font-size:var(--font-size-base);color:var(--text)}.competition-meta{font-size:var(--font-size-sm);color:var(--text-muted)}.strokes-list{gap:var(--space-xs);margin-bottom:var(--space-md);flex-direction:column;display:flex}.stroke-row{align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);background:var(--bg);border-radius:var(--radius);font-size:var(--font-size-sm);display:flex}.stroke-name{color:var(--text);min-width:100px;font-weight:600}.stroke-detail{color:var(--text-muted);min-width:60px}.stroke-timelimits{gap:var(--space-xs);padding:var(--space-xs) var(--space-md);flex-wrap:wrap;display:flex}.stroke-timelimit-badge{background:var(--bg-secondary,var(--bg));border:1px solid var(--border-subtle,var(--border));border-radius:var(--radius-sm,4px);font-size:var(--font-size-xs,.75rem);color:var(--text-muted);align-items:center;gap:4px;padding:2px 8px;line-height:1.4;display:inline-flex}.stroke-timelimit-icon{font-size:.85em}.stroke-timelimit-edit{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:.85em}.stroke-timelimit-edit:hover{color:var(--primary)}.stroke-timelimit-form{align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-md);display:flex}.stroke-timelimit-form input[type=text]{width:90px;font-size:var(--font-size-sm)}.stroke-timelimit-form select{font-size:var(--font-size-sm)}.support-roles-section{margin-top:var(--space-md)}.support-roles-title{font-size:var(--font-size-sm);color:var(--text-muted);margin-bottom:var(--space-xs);font-weight:600}.support-roles-list{gap:var(--space-xs);flex-wrap:wrap;display:flex}.support-role-check{padding:var(--space-xs) var(--space-sm);background:var(--bg);border:1px solid var(--border-subtle,var(--border));border-radius:var(--radius);font-size:var(--font-size-sm);color:var(--text);cursor:pointer;align-items:center;gap:6px;display:inline-flex}.support-role-check input{accent-color:var(--primary);cursor:pointer;margin:0}.support-role-chip{padding:var(--space-xs) 10px;background:var(--bg-secondary,var(--bg));border:1px solid var(--border-subtle,var(--border));font-size:var(--font-size-xs,.75rem);color:var(--text-muted);border-radius:999px;align-items:center;display:inline-flex}.support-link-section{margin-top:var(--space-md);gap:var(--space-sm);flex-direction:column;display:flex}.support-link-controls,.support-phase-control{align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.support-phase-control select{padding:var(--space-xs) var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text);font-size:var(--font-size-sm)}.support-link-form{gap:var(--space-sm);flex-direction:column;display:flex}.support-link-form label{gap:var(--space-xs);font-size:var(--font-size-sm);color:var(--text-muted);flex-direction:column;display:flex}.support-link-form input[type=datetime-local]{padding:var(--space-xs) var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text)}.support-link-hint{font-size:var(--font-size-sm);color:var(--text-muted);margin:0}.support-assignment-editor{gap:var(--space-sm);flex-direction:column;max-height:50vh;display:flex;overflow-y:auto}.support-assignment-member{gap:var(--space-xs);padding:var(--space-sm);border:1px solid var(--border-subtle,var(--border));border-radius:var(--radius);flex-direction:column;display:flex}.support-assignment-member-name{font-weight:600;font-size:var(--font-size-sm)}.support-assignment-picked{gap:var(--space-2xs,4px);opacity:.85;flex-wrap:wrap;display:flex}.support-role-checkrow{gap:var(--space-xs);flex-wrap:wrap;display:flex}.share-dialog-actions{gap:var(--space-sm);margin-top:var(--space-sm);justify-content:flex-end;display:flex}.support-roles-page{max-width:720px;padding:var(--space-lg);gap:var(--space-sm);flex-direction:column;margin:0 auto;display:flex}.support-link-subtitle{font-size:var(--font-size-lg,1.1rem);margin:0;font-weight:600}.support-link-meta{color:var(--text-muted);font-size:var(--font-size-sm);margin:0}.support-phase-chip{padding:var(--space-xs) 10px;background:var(--primary-soft,#3b82f61f);color:var(--primary);font-size:var(--font-size-xs,.75rem);border-radius:999px;align-self:flex-start;font-weight:600}.support-swimify-link{padding:var(--space-xs) var(--space-sm);background:var(--primary);color:var(--primary-contrast,#fff);border-radius:var(--radius-sm,6px);font-size:var(--font-size-sm);align-self:flex-start;font-weight:600;text-decoration:none}.support-select-form{gap:var(--space-sm);margin-top:var(--space-sm);flex-direction:column;display:flex}.support-role-list{gap:var(--space-xs);flex-direction:column;display:flex}.support-role-option{align-items:center;gap:var(--space-sm);padding:var(--space-sm);border:1px solid var(--border-subtle,var(--border));border-radius:var(--radius);background:var(--bg);cursor:pointer;display:flex;position:relative}.support-role-option.checked{border-color:var(--primary);background:var(--primary-soft,#3b82f61f)}.support-role-option input{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.support-role-hand{pointer-events:none;flex-shrink:0;width:28px;height:28px;position:relative}.support-role-hand svg{display:block}.support-role-hand .hand-fist,.support-role-hand .hand-open{transform-origin:12px 14px;transition:opacity .18s,transform .18s}.support-role-hand .hand-fist rect,.support-role-hand .hand-open rect{fill:var(--text-muted);transition:fill .18s}.support-role-hand .hand-fist-crease{stroke:var(--bg)}.support-role-hand .hand-open,.support-role-option.checked .support-role-hand .hand-fist{opacity:0;transform:scale(.85)}.support-role-option.checked .support-role-hand .hand-open{opacity:1;transform:scale(1)}.support-role-option.checked .support-role-hand .hand-open rect{fill:var(--primary)}.support-role-option input:focus-visible~.support-role-hand{outline:2px solid var(--primary);outline-offset:2px;border-radius:var(--radius-sm,6px)}.support-role-main{flex-direction:column;flex:1;min-width:0;display:flex}.support-role-name{font-weight:500}.support-role-desc{font-size:var(--font-size-xs,.75rem);color:var(--text-muted);overflow-wrap:break-word;white-space:pre-line;margin-top:2px}.support-role-count{font-size:var(--font-size-sm);color:var(--text-muted)}.support-role-count.nonzero{color:var(--primary);font-weight:600}.support-role-you{font-size:var(--font-size-xs,.75rem);color:var(--primary);font-weight:600}.support-select-save{align-self:flex-start}.support-link-saved{padding:var(--space-sm) var(--space-md);background:var(--success-soft,#16a34a1f);color:var(--success,#16a34a);border-radius:var(--radius);font-weight:600}.support-suggest-view{gap:var(--space-sm);margin-top:var(--space-sm);flex-direction:column;display:flex}.support-suggest-view h3{margin:var(--space-sm) 0 0}.support-assignment-list{gap:var(--space-xs);flex-direction:column;display:flex}.support-assignment-row{align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);border:1px solid var(--border-subtle,var(--border));border-radius:var(--radius);flex-wrap:wrap;display:flex}.support-assignment-name{min-width:140px;font-weight:600}.support-assignment-roles{gap:var(--space-xs);flex-wrap:wrap;display:flex}.support-assignment-chip{background:var(--bg-secondary,var(--bg));border:1px solid var(--border-subtle,var(--border));font-size:var(--font-size-xs,.75rem);color:var(--text-muted);border-radius:999px;align-items:center;padding:2px 10px;display:inline-flex}.support-assignment-chip.support-stroke-empty{border-style:dashed;font-style:italic}.support-spare-list{padding-left:var(--space-md);gap:var(--space-xs);flex-direction:column;margin:0;display:flex}.btn-add-timelimit{font-size:var(--font-size-xs,.75rem);padding:2px 6px}.stroke-delete{width:24px;height:24px;color:var(--text-muted);font-size:var(--font-size-base);cursor:pointer;transition:background var(--transition), color var(--transition);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;margin-left:auto;display:flex}.stroke-delete:hover{background:var(--danger);color:#fff}.stroke-add{border-radius:var(--radius);border:1px solid var(--primary);color:var(--primary);font-size:var(--font-size-sm);cursor:pointer;transition:background var(--transition), color var(--transition);background:0 0;margin-left:auto;padding:2px 10px}.stroke-add:hover{background:var(--primary);color:#fff}.stroke-form{gap:var(--space-sm);padding:var(--space-md);background:var(--bg);border-radius:var(--radius);margin-bottom:var(--space-md);flex-wrap:wrap;align-items:flex-end;display:flex}.stroke-form select,.stroke-form input{padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-sm);flex:1;min-width:100px}.stroke-form-actions{gap:var(--space-sm);width:100%;margin-top:var(--space-xs);justify-content:flex-end;display:flex}.btn-add-stroke{border:1px dashed var(--border);color:var(--text-muted);padding:var(--space-sm) var(--space-md);border-radius:var(--radius);cursor:pointer;font-size:var(--font-size-sm);transition:all var(--transition);background:0 0;width:100%}.btn-add-stroke:hover{border-color:var(--primary);color:var(--primary);background:var(--bg)}.stroke-athletes{padding-left:var(--space-lg);margin-bottom:var(--space-sm)}.stroke-athlete-row{align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);font-size:var(--font-size-sm);display:flex}.athlete-name{color:var(--text);min-width:120px;font-weight:500}.can-edit-toggle{font-size:var(--font-size-sm);color:var(--text-muted);cursor:pointer;align-items:center;gap:4px;margin-left:auto;display:flex}.can-edit-toggle input[type=checkbox]{cursor:pointer;width:14px;height:14px}.stroke-status{font-size:var(--font-size-sm);text-align:right;min-width:70px}.stroke-assigned{color:var(--primary);font-weight:600}.relay-badge{font-size:var(--font-size-sm);color:var(--primary);border:1px solid var(--primary);border-radius:var(--radius);padding:2px 8px;font-weight:600}.relay-legs{padding-left:var(--space-lg);margin-bottom:var(--space-sm);gap:var(--space-xs);flex-direction:column;display:flex}.relay-leg-row{align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);font-size:var(--font-size-sm);display:flex}.relay-leg-label{color:var(--text-muted);min-width:60px;font-weight:500}.relay-stroke-row{flex-direction:column;align-items:stretch}.sick-badge{border-radius:10px;width:fit-content;margin-top:4px;padding:2px 8px;font-size:.75rem;font-weight:600;display:inline-block}.sick-badge--current{background:var(--danger-soft-bg);color:var(--danger);border:1px solid var(--danger)}.sick-badge--recovering{background:var(--recover-bg);color:var(--recover-text);border:1px solid #f39c12}.goal-count-badge{background:var(--info-bg);width:fit-content;color:var(--info-text);white-space:nowrap;border:1px solid #3b82f6;border-radius:10px;padding:2px 8px;font-size:.75rem;font-weight:600;display:inline-block}.hcp-badge{background:var(--warning-soft-bg,var(--recover-bg));width:fit-content;color:var(--warning-text,var(--recover-text));white-space:nowrap;border:1px solid #f39c12;border-radius:10px;padding:2px 8px;font-size:.75rem;font-weight:600;display:inline-block}.training-badge{background:var(--info-bg);width:fit-content;color:var(--info-text);white-space:nowrap;border:1px solid #3b82f6;border-radius:10px;padding:2px 8px;font-size:.75rem;font-weight:600;display:inline-block}.athlete-group-tag{background:var(--surface-alt,var(--border));width:fit-content;color:var(--text-muted);border:1px solid var(--border);border-radius:10px;margin-right:4px;padding:1px 6px;font-size:.7rem;font-weight:600;display:inline-block}.athlete-picker-item .sick-badge,.athlete-picker-item .goal-count-badge,.athlete-picker-item .hcp-badge,.drop-test-picker-item .sick-badge,.drop-test-picker-item .goal-count-badge,.drop-test-picker-item .hcp-badge,.program-assign-user .sick-badge,.program-assign-user .goal-count-badge,.program-assign-user .hcp-badge,.share-link-athlete .sick-badge,.share-link-athlete .goal-count-badge,.share-link-athlete .hcp-badge,.athlete-rating-row .sick-badge,.athlete-rating-row .goal-count-badge,.athlete-rating-row .hcp-badge{flex-shrink:0;margin-top:0;padding:1px 6px;font-size:.7rem}.sick-summary-bar{border-radius:var(--radius-lg);margin-bottom:var(--space-md);font-size:var(--font-size-sm);padding:10px 16px;font-weight:500}.sick-summary-bar--active{background:var(--danger-soft-bg);color:var(--danger);border-left:4px solid #e74c3c}.sick-summary-bar--recovering{background:var(--recover-bg);color:var(--recover-text);border-left:4px solid #f39c12}.sick-summary-text{display:block}.legal-page-crosslink{margin-top:var(--space-lg);padding-top:var(--space-md);border-top:1px solid var(--border);font-size:var(--font-size-sm)}.register-agreement{font-size:var(--font-size-sm);color:var(--text-muted);margin-top:var(--space-sm)}.oauth-sync-controls{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md);flex-wrap:wrap;display:flex}.oauth-sync-provider-select{padding:var(--space-xs) var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font-size:var(--font-size-sm)}.oauth-sync-athletes-list{gap:var(--space-xs);flex-direction:column;display:flex}.oauth-sync-athlete-row{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);display:flex}.oauth-sync-athlete-row input[type=checkbox]{flex-shrink:0}.oauth-sync-providers{gap:var(--space-xs);flex-wrap:wrap;margin-left:auto;display:flex}.oauth-badge{font-size:var(--font-size-xs);text-transform:capitalize;border-radius:12px;align-items:center;gap:4px;padding:2px 8px;font-weight:600;display:inline-flex}.oauth-badge--polar{background:var(--success-bg);color:var(--success-text)}.oauth-badge--oura{background:var(--info-bg);color:var(--primary)}.oauth-badge-date{opacity:.7;font-size:.7rem;font-weight:400}.oauth-sync-results{margin-top:var(--space-md);padding:var(--space-md);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.oauth-sync-results h4{margin:0 0 var(--space-sm)}.oauth-sync-summary{gap:var(--space-md);margin-bottom:var(--space-sm);font-size:var(--font-size-sm);font-weight:600;display:flex}.oauth-sync-synced{color:var(--success)}.oauth-sync-skipped{color:var(--text-muted)}.oauth-sync-failed{color:var(--danger)}.oauth-sync-result-row{padding:var(--space-xs) 0;border-bottom:1px solid var(--border-subtle);font-size:var(--font-size-sm);justify-content:space-between;display:flex}.oauth-sync-result-row:last-child{border-bottom:none}.oauth-sync-result-row.success{color:var(--success)}.oauth-sync-result-row.error{color:var(--danger)}.oauth-sync-results.error{border-color:var(--danger);background:var(--danger-soft-bg)}.exercise-tool{max-width:var(--max-width-lg);padding:var(--space-lg);margin:0 auto}.exercise-tool h1{margin-bottom:var(--space-lg);color:var(--heading)}.exercise-add-form{gap:var(--space-sm);margin-bottom:var(--space-lg);padding:var(--space-lg);background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;display:flex}.exercise-add-form input,.exercise-add-form textarea{border:1px solid var(--border);border-radius:var(--radius);width:100%;font-size:var(--font-size-base);font-family:var(--font-family);transition:border-color var(--transition);padding:.6rem .75rem}.exercise-add-form input:focus,.exercise-add-form textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 2px #3498db26}.exercise-add-form button[type=submit]{align-self:flex-start;width:auto;margin-top:0;padding:.5rem 1.5rem}.exercise-pose-list{gap:var(--space-sm);flex-direction:column;display:flex}.exercise-pose-card{padding:var(--space-md);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);transition:box-shadow var(--transition);justify-content:space-between;align-items:flex-start;display:flex}.exercise-pose-card:hover{box-shadow:var(--shadow-sm)}.exercise-pose-info strong{font-size:var(--font-size-base);color:var(--text);margin-bottom:2px;display:block}.exercise-pose-info .text-muted{font-size:var(--font-size-sm);color:var(--text-muted);margin:0}.exercise-pose-actions{gap:var(--space-xs);flex-shrink:0;display:flex}.exercise-pose-edit{gap:var(--space-sm);flex-direction:column;width:100%;display:flex}.exercise-pose-edit input,.exercise-pose-edit textarea{border:1px solid var(--border);border-radius:var(--radius);width:100%;font-size:var(--font-size-base);font-family:var(--font-family);transition:border-color var(--transition);padding:.5rem .75rem}.exercise-pose-edit input:focus,.exercise-pose-edit textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 2px #3498db26}.exercise-tool .btn-primary{background:var(--primary);color:#fff;border-radius:var(--radius);cursor:pointer;font-size:var(--font-size-base);transition:background var(--transition), transform var(--transition);border:none;padding:.5rem 1.25rem}.exercise-tool .btn-primary:hover{background:var(--primary-hover)}.exercise-tool .btn-secondary{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;font-size:var(--font-size-base);transition:background var(--transition);padding:.5rem 1.25rem}.exercise-tool .btn-secondary:hover{background:var(--border-subtle)}.exercise-tool .btn-danger{background:var(--danger);color:#fff;border-radius:var(--radius);cursor:pointer;font-size:var(--font-size-base);transition:background var(--transition);border:none;padding:.5rem 1.25rem}.exercise-tool .btn-danger:hover{background:var(--danger-hover)}.exercise-tool .btn-sm{font-size:var(--font-size-sm);padding:.25rem .75rem}.exercise-tool .alert-error{background:var(--danger-soft-bg);border:1px solid var(--danger-soft-border);color:var(--danger);border-radius:var(--radius);margin-bottom:var(--space-md);padding:.75rem}.exercise-programs{gap:var(--space-md);flex-direction:column;display:flex}.exercise-programs>.btn-primary{align-self:flex-start}.exercise-program-list{gap:var(--space-sm);flex-direction:column;display:flex}.exercise-program-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);transition:box-shadow var(--transition);overflow:hidden}.exercise-program-card:hover{box-shadow:var(--shadow-sm)}.exercise-program-header{padding:var(--space-md);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;display:flex}.exercise-program-header:hover{background:var(--bg-secondary)}.exercise-program-info{flex-direction:column;gap:2px;display:flex}.exercise-program-info strong{font-size:var(--font-size-base);color:var(--text)}.exercise-program-info .text-muted{font-size:var(--font-size-sm);color:var(--text-muted)}.exercise-program-actions{gap:var(--space-xs);display:flex}.exercise-program-detail{padding:0 var(--space-md) var(--space-md);border-top:1px solid var(--border);padding-top:var(--space-md);margin:0 var(--space-md);gap:var(--space-xs);flex-direction:column;display:flex}.exercise-program-exercise-row{align-items:center;gap:var(--space-sm);padding:var(--space-xs) 0;font-size:var(--font-size-sm);display:flex}.exercise-row-num{color:var(--text-muted);min-width:20px;font-weight:600}.exercise-program-exercise-row strong{color:var(--text);flex:1}.exercise-program-exercise-row .text-muted{color:var(--text-muted)}.exercise-program-form-overlay{z-index:1000;background:#00000073;justify-content:center;align-items:flex-start;padding-top:2rem;display:flex;position:fixed;inset:0}.exercise-program-form{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-xl);width:90%;max-width:650px;max-height:85vh;overflow-y:auto}.exercise-program-form h3{margin-bottom:var(--space-lg);color:var(--heading)}.exercise-program-form form{gap:var(--space-md);flex-direction:column;display:flex}.exercise-program-form input[type=text]{border:1px solid var(--border);border-radius:var(--radius);width:100%;font-size:var(--font-size-base);font-family:var(--font-family);transition:border-color var(--transition);padding:.6rem .75rem}.exercise-program-form input[type=text]:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 2px #3498db26}.exercise-form-exercises{gap:var(--space-md);flex-direction:column;display:flex}.exercise-form-row{border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-md);background:var(--bg)}.exercise-form-row-header{align-items:center;gap:var(--space-xs);margin-bottom:var(--space-sm);display:flex}.exercise-form-row-header .btn-sm{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;min-width:28px;color:var(--text);transition:background var(--transition);padding:2px 6px;font-size:.8rem}.exercise-form-row-header .btn-sm:hover:not(:disabled){background:var(--border-subtle)}.exercise-form-row-header .btn-sm:disabled{opacity:.4;cursor:not-allowed}.exercise-form-row-header .btn-danger{background:var(--danger);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;min-width:28px;margin-left:auto;padding:2px 8px;font-size:.85rem}.exercise-form-row select{border:1px solid var(--border);border-radius:var(--radius);width:100%;font-size:var(--font-size-base);background:var(--surface);font-family:var(--font-family);margin-bottom:var(--space-sm);transition:border-color var(--transition);padding:.5rem .75rem}.exercise-form-row select:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 2px #3498db26}.exercise-form-inputs{gap:var(--space-md);flex-wrap:wrap;display:flex}.exercise-form-field{flex-direction:column;gap:3px;display:flex}.exercise-form-field label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-size:.75rem;font-weight:600}.exercise-form-field label .text-muted{text-transform:none;letter-spacing:0;font-weight:400}.exercise-form-field input{border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-base);width:100%;font-family:var(--font-family);transition:border-color var(--transition);padding:.4rem .6rem}.exercise-form-field input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 2px #3498db26}.duration-split{align-items:center;gap:4px;display:flex}.duration-split input.duration-min,.duration-split input.duration-sec{width:55px}.duration-split span{color:var(--text-muted);font-weight:600}.exercise-chain-section{gap:var(--space-sm);flex-direction:column;width:100%;display:flex}.exercise-chain-items{gap:var(--space-sm);padding:var(--space-sm);background:var(--bg);border-radius:var(--radius);flex-direction:column;display:flex}.exercise-chain-item{padding:var(--space-sm);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:4px;display:flex}.exercise-chain-item-header{align-items:center;gap:4px;display:flex}.exercise-chain-item-num{color:var(--text-muted);min-width:20px;font-size:.8rem;font-weight:600}.exercise-chain-item-body{gap:var(--space-sm);align-items:flex-end;display:flex}.exercise-chain-item-body select{border:1px solid var(--border);border-radius:var(--radius);min-width:0;font-size:var(--font-size-base);flex:1;padding:.4rem .6rem}.exercise-chain-item-body .exercise-form-field{min-width:120px}.exercise-auto-duration{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text-muted);font-size:var(--font-size-base);font-variant-numeric:tabular-nums;text-align:center;min-width:80px;padding:.4rem .6rem}.exercise-chain-preview{margin-top:var(--space-xs);padding-left:var(--space-md);flex-direction:column;gap:2px;display:flex}.exercise-chain-preview-item{align-items:center;gap:var(--space-xs);font-size:.8rem;display:flex}.exercise-chain-preview-num{color:var(--text-muted);min-width:16px;font-weight:600}.exercise-form-actions{gap:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--border);display:flex}.exercise-current-pose{align-items:center;gap:var(--space-sm);display:flex}.exercise-pose-preview-badge{text-transform:uppercase;letter-spacing:.5px;border-radius:var(--radius);background:var(--warning);color:var(--text);opacity:.8;padding:2px 6px;font-size:.65rem;font-weight:600}.exercise-start{gap:var(--space-lg);flex-direction:column;align-items:flex-start;display:flex}.exercise-start-select{gap:var(--space-sm);flex-direction:column;width:100%;max-width:400px;display:flex}.exercise-start-select label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:.85rem;font-weight:600}.exercise-start-select select{border:1px solid var(--border);border-radius:var(--radius);width:100%;font-size:var(--font-size-base);background:var(--surface);font-family:var(--font-family);transition:border-color var(--transition);padding:.6rem .75rem}.exercise-start-select select:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 2px #3498db26}.exercise-start-preview{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-lg);width:100%;max-width:500px;box-shadow:var(--shadow-sm)}.exercise-start-preview h3{margin-bottom:var(--space-md);color:var(--heading)}.exercise-start-preview ol{margin-bottom:var(--space-lg);padding-left:1.25rem}.exercise-start-preview li{font-size:var(--font-size-sm);color:var(--text);padding:4px 0}.exercise-start-preview .btn-primary{margin-top:var(--space-sm)}.exercise-start-active{align-items:center;gap:var(--space-xl);padding:var(--space-lg) 0;text-align:center;flex-direction:column;display:flex}.exercise-start-header h2{color:var(--heading);margin-bottom:var(--space-xs)}.exercise-start-header .text-muted{font-size:var(--font-size-sm);color:var(--text-muted)}.exercise-timer-display{align-items:center;gap:var(--space-sm);flex-direction:column;display:flex}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.exercise-current-pose{font-size:var(--font-size-xl);color:var(--heading);margin:0}.pose-name-stack{justify-content:center;width:100%;min-height:1.5em;display:flex;position:relative}.pose-name-stack .exercise-current-pose{white-space:nowrap;position:absolute}.pose-name-leaving{animation:fadeOut var(--transition-duration,.25s) ease forwards}.pose-name-entering{animation:fadeIn var(--transition-duration,.25s) ease}.exercise-timer-countdown{font-variant-numeric:tabular-nums;color:var(--primary);letter-spacing:3px;font-size:3.5rem;font-weight:700;line-height:1}.exercise-timer-controls{gap:var(--space-md);align-items:center;display:flex}.exercise-timer-controls .btn-primary{font-size:var(--font-size-lg);padding:.75rem 2rem;font-weight:600}.exercise-timer-controls .btn-secondary,.exercise-timer-controls .btn-danger{font-size:var(--font-size-base);padding:.75rem 1.5rem}.exercise-progress-bar{justify-content:center;gap:8px;display:flex}.exercise-progress-dot{background:var(--border);width:12px;height:12px;transition:background var(--transition), transform var(--transition);border-radius:50%}.exercise-progress-dot.done{background:var(--success)}.exercise-progress-dot.active{background:var(--primary);transform:scale(1.3)}.exercise-start-complete{align-items:center;gap:var(--space-md);padding:var(--space-xl);text-align:center;flex-direction:column;display:flex}.exercise-start-complete h2{color:var(--success);font-size:var(--font-size-xl)}.exercise-start-complete p{color:var(--text-muted);font-size:var(--font-size-base);margin:0}.exercise-start-complete .btn-primary{font-size:var(--font-size-base);padding:.75rem 2rem}.rhythm-circle-container{width:200px;height:200px;margin:var(--space-lg) auto;position:relative}.rhythm-circle-ring{border:3px dashed var(--primary);opacity:.6;pointer-events:none;border-radius:50%;position:absolute;inset:0}.rhythm-circle-inner-ring{border:2px solid var(--primary);opacity:.4;pointer-events:none;border-radius:50%;position:absolute;inset:30px}.rhythm-circle{background:var(--primary);opacity:.18;will-change:transform;pointer-events:none;border-radius:50%;position:absolute;inset:30px}.rhythm-circle-label{font-variant-numeric:tabular-nums;color:var(--primary);letter-spacing:2px;pointer-events:none;justify-content:center;align-items:center;font-size:2.5rem;font-weight:700;display:flex;position:absolute;inset:0}.pose-media-img{border-radius:var(--radius);max-width:100%;height:auto;box-shadow:var(--shadow-sm)}.pose-media-video-wrapper{aspect-ratio:16/9;width:100%;max-width:400px;position:relative}.pose-media-video{border-radius:var(--radius);border:none;width:100%;height:100%;position:absolute;inset:0}.pose-media-link{color:var(--primary);font-size:var(--font-size-sm);text-decoration:underline;display:inline-block}.pose-media-preview{max-width:200px;margin-top:var(--space-xs)}.pose-media-thumb{border-radius:var(--radius);max-width:60px;max-height:60px;box-shadow:var(--shadow-sm);object-fit:cover;margin-left:var(--space-sm)}.pose-media-session{width:300px;height:200px;margin:var(--space-md) auto;border-radius:var(--radius-lg);box-shadow:var(--shadow);object-fit:contain;background:var(--bg);display:block}.pose-media-session[src*=svg]{background:0 0}.pose-media-stack{width:300px;height:200px;margin:var(--space-md) auto;position:relative}.pose-media-stack .pose-media-session{width:100%;height:100%;margin:0;position:absolute;top:0;left:0}.pose-media-leaving{animation:fadeOut var(--transition-duration,.3s) ease forwards;pointer-events:none}.pose-media-entering{animation:fadeIn var(--transition-duration,.3s) ease}.pose-media-svg-input{resize:vertical;width:100%;min-height:80px;font-family:monospace;font-size:.85rem}.exercise-row-body{align-items:center;gap:var(--space-sm);flex-wrap:wrap;flex:1;display:flex}.exercise-tab-pose-media{margin-top:var(--space-sm)}.oauth-connections{margin-bottom:var(--space-lg)}.oauth-providers-list{gap:var(--space-md);margin-top:var(--space-md);flex-direction:column;display:flex}.oauth-provider-card{align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition);flex-wrap:wrap;display:flex}.oauth-provider-card:hover{box-shadow:var(--shadow)}.oauth-provider-card.connected{border-left:3px solid var(--success)}.oauth-provider-icon{background:var(--bg);width:40px;height:40px;font-weight:700;font-size:var(--font-size-lg);color:var(--text-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.oauth-provider-info{gap:var(--space-xs);flex-direction:column;flex:1;display:flex}.oauth-provider-name{color:var(--text);font-weight:600}.oauth-provider-status{font-size:var(--font-size-sm);color:var(--success)}.oauth-provider-status.disconnected{color:var(--text-muted)}.oauth-provider-actions{align-items:center;gap:var(--space-xs);flex-wrap:wrap;flex:260px;min-width:0;display:flex}.oauth-provider-actions .oauth-coach-visibility-toggle,.oauth-provider-actions>.settings-hint{width:100%;min-width:0}.btn-sync{background:var(--primary);color:#fff;padding:var(--space-xs) var(--space-md);border-radius:var(--radius);cursor:pointer;font-size:var(--font-size-sm);transition:background var(--transition);border:none}.btn-sync:hover:not(:disabled){background:var(--primary-hover)}.btn-sync:disabled{opacity:.6;cursor:not-allowed}.btn-connect{background:var(--success);color:#fff;padding:var(--space-xs) var(--space-md);border-radius:var(--radius);cursor:pointer;font-size:var(--font-size-sm);transition:background var(--transition);border:none}.btn-connect:hover:not(:disabled){background:var(--success-hover)}.btn-connect:disabled{opacity:.6;cursor:not-allowed}.oauth-provider-disabled-hint{margin:var(--space-xs) 0 0;font-size:var(--font-size-xs);color:var(--text-muted)}.sync-success{background:var(--success-bg);color:var(--success-text);padding:var(--space-md);border-radius:var(--radius);margin-bottom:var(--space-md);font-size:var(--font-size-sm);border:1px solid var(--success)}.error-message{background:var(--danger);color:#fff;padding:var(--space-sm) var(--space-md);border-radius:var(--radius);margin-bottom:var(--space-md);font-size:var(--font-size-sm)}.consent-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.consent-modal{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);flex-direction:column;width:90%;max-width:560px;max-height:85vh;display:flex;overflow-y:auto}.consent-header{align-items:center;gap:var(--space-md);padding:var(--space-lg);border-bottom:1px solid var(--border);display:flex}.consent-header h3{color:var(--text);margin:0}.consent-provider-icon{background:var(--primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.1rem;font-weight:700;display:flex}.consent-body{padding:var(--space-lg);gap:var(--space-md);flex-direction:column;display:flex}.consent-section{font-size:var(--font-size-sm);color:var(--text);line-height:var(--line-height)}.consent-section strong{margin-bottom:var(--space-xs);color:var(--text);display:block}.consent-data-list,.consent-handling-list{padding-left:var(--space-lg);color:var(--text-muted);margin:0}.consent-data-list li,.consent-handling-list li{margin-bottom:var(--space-xs)}.consent-privacy-link{color:var(--primary);font-size:var(--font-size-sm);text-decoration:underline}.consent-privacy-link:hover{color:var(--primary-hover)}.consent-checkbox-label{align-items:flex-start;gap:var(--space-sm);font-size:var(--font-size-sm);color:var(--text);line-height:var(--line-height);cursor:pointer;padding:var(--space-md);background:var(--bg);border-radius:var(--radius);border-left:3px solid var(--primary);display:flex}.consent-checkbox-label input[type=checkbox]{flex-shrink:0;margin-top:3px}.consent-checkbox-label--optional{border-left-color:var(--success);background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--success)}.consent-checkbox-label--optional:before{content:"Optional";float:right;color:var(--success);text-transform:uppercase;letter-spacing:.5px;font-size:.7rem;font-weight:600}.consent-actions{justify-content:flex-end;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);border-top:1px solid var(--border);display:flex}.oauth-provider-summary{font-size:var(--font-size-sm);color:var(--text-muted);gap:var(--space-xs);flex-wrap:wrap;display:flex}.oauth-disconnect-options{align-items:center;gap:var(--space-sm);margin-top:var(--space-xs);padding-top:var(--space-xs);border-top:1px solid var(--border);width:100%;display:flex}.oauth-disconnect-radio{cursor:pointer;font-size:var(--font-size-sm);align-items:center;gap:4px;display:flex}.oauth-disconnect-label--danger{color:var(--danger)}.synced-data-viewer{gap:var(--space-md);flex-direction:column;display:flex}.synced-data-header{justify-content:space-between;align-items:center;display:flex}.synced-data-header h4{color:var(--text);margin:0}.synced-data-actions{gap:var(--space-sm);display:flex}.synced-data-count{font-size:var(--font-size-sm);color:var(--text-muted);font-weight:600}.synced-data-list{gap:var(--space-xs);flex-direction:column;max-height:400px;display:flex;overflow-y:auto}.synced-data-entry{padding:var(--space-sm) var(--space-md);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);justify-content:space-between;align-items:center;display:flex}.synced-data-entry-info{flex-direction:column;gap:2px;display:flex}.synced-data-type{font-weight:600;font-size:var(--font-size-sm);color:var(--text)}.synced-data-date{font-size:var(--font-size-sm);color:var(--text-muted)}.synced-data-id{color:var(--text-light);font-size:.75rem}.privacy-section{margin-bottom:var(--space-lg)}.privacy-section h3{color:var(--text);margin-bottom:var(--space-sm)}.privacy-section p{color:var(--text);line-height:var(--line-height);margin-bottom:var(--space-sm)}.privacy-section ul{padding-left:var(--space-lg);color:var(--text-muted);margin-bottom:var(--space-sm)}.privacy-section li{margin-bottom:var(--space-xs)}.entry-description{margin-top:var(--space-xs);padding:var(--space-xs) var(--space-sm);background:var(--bg);border-radius:var(--radius);font-size:var(--font-size-sm);color:var(--text-muted);line-height:var(--line-height);white-space:pre-wrap}.entry-row-info{align-items:center;gap:var(--space-sm);flex:1;display:flex}.pose-header-bar{margin-bottom:var(--space-md);justify-content:space-between;align-items:center;display:flex}.pose-add-form{gap:var(--space-sm);padding:var(--space-md);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:var(--space-md);flex-direction:column;display:flex}.pose-add-form input,.pose-add-form textarea{border:1px solid var(--border);border-radius:var(--radius);width:100%;font-size:var(--font-size-base);font-family:var(--font-family);transition:border-color var(--transition);padding:.5rem .75rem}.pose-add-form input:focus,.pose-add-form textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 2px #3498db26}.pose-filter-bar{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md);flex-wrap:wrap;display:flex}.pose-search-input{border:1px solid var(--border);border-radius:var(--radius);min-width:180px;font-size:var(--font-size-base);font-family:var(--font-family);transition:border-color var(--transition);flex:1;padding:.5rem .75rem}.pose-search-input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 2px #3498db26}.pose-filter-select{border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-base);font-family:var(--font-family);background:var(--surface);cursor:pointer;padding:.5rem .75rem}.pose-filter-select:focus{border-color:var(--primary);outline:none}.pose-browse-toggle{border:1px solid var(--border);border-radius:var(--radius);display:flex;overflow:hidden}.pose-browse-btn{background:var(--surface);cursor:pointer;font-size:var(--font-size-sm);font-family:var(--font-family);color:var(--text-muted);transition:background var(--transition), color var(--transition);border:none;padding:.4rem .75rem}.pose-browse-btn:not(:last-child){border-right:1px solid var(--border)}.pose-browse-btn.active{background:var(--primary);color:#fff}.pose-results-count{font-size:var(--font-size-sm);color:var(--text-muted);margin-bottom:var(--space-sm)}.exercise-pose-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;display:grid}.exercise-pose-card-v2{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;transition:transform var(--transition), box-shadow var(--transition);position:relative;overflow:hidden}.exercise-pose-card-v2:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.pose-card-preview{background:var(--bg-secondary);justify-content:center;align-items:center;height:180px;padding:8px;display:flex}.pose-card-preview img{object-fit:contain;max-width:100%;max-height:100%}.pose-card-body{border-top:1px solid var(--border);padding:8px 10px}.pose-card-name{font-weight:600;font-size:var(--font-size-sm);color:var(--text);white-space:nowrap;text-overflow:ellipsis;margin-bottom:4px;overflow:hidden}.pose-card-category{background:var(--bg);color:var(--text-muted);border-radius:10px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-block}.pose-card-star{cursor:pointer;width:28px;height:28px;transition:transform var(--transition);z-index:2;background:#ffffffd9;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:16px;line-height:1;display:flex;position:absolute;top:4px;right:4px}.pose-card-star:hover{transform:scale(1.2)}.pose-card-star--filled{color:#f1c40f}.pose-category-header{background:var(--surface);border-bottom:2px solid var(--border);padding:var(--space-sm) 0;margin-bottom:var(--space-sm);font-weight:600;font-size:var(--font-size-lg);color:var(--text);z-index:10;position:sticky;top:0}.pose-category-header span{font-size:var(--font-size-sm);color:var(--text-muted);font-weight:400}.pose-detail-overlay{z-index:1000;padding:var(--space-md);background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.pose-detail-modal{background:var(--surface);border-radius:var(--radius-lg);width:100%;max-width:700px;max-height:85vh;box-shadow:var(--shadow-lg);padding:var(--space-lg);position:relative;overflow-y:auto}.pose-detail-close{top:var(--space-sm);right:var(--space-sm);background:var(--bg);cursor:pointer;width:32px;height:32px;font-size:var(--font-size-lg);color:var(--text-muted);border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute}.pose-detail-close:hover{background:var(--border);color:var(--text)}.pose-detail-star{top:var(--space-sm);background:var(--bg);cursor:pointer;width:32px;height:32px;transition:transform var(--transition);border:none;border-radius:50%;justify-content:center;align-items:center;font-size:18px;display:flex;position:absolute;right:44px}.pose-detail-star:hover{transform:scale(1.2)}.pose-detail-star--filled{color:#f1c40f}.pose-detail-svg{margin-bottom:var(--space-md);background:var(--bg-secondary);border-radius:var(--radius-lg);padding:var(--space-md);justify-content:center;align-items:center;min-height:200px;display:flex}.pose-detail-svg img{object-fit:contain;max-width:100%;max-height:300px}.pose-detail-name{font-size:var(--font-size-xl);color:var(--text);margin-bottom:var(--space-xs);font-weight:700}.pose-detail-category{background:var(--bg);font-size:var(--font-size-sm);color:var(--text-muted);margin-bottom:var(--space-sm);border-radius:10px;padding:3px 10px;display:inline-block}.pose-detail-desc{color:var(--text-muted);font-size:var(--font-size-sm);line-height:var(--line-height);margin-bottom:var(--space-md);white-space:pre-wrap}.pose-detail-muscle-section{margin-bottom:var(--space-sm)}.pose-detail-muscle-section h4{font-size:var(--font-size-sm);color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-xs)}.muscle-pills{margin-bottom:var(--space-sm);flex-wrap:wrap;gap:6px;display:flex}.muscle-pill{font-size:var(--font-size-sm);border-radius:12px;padding:3px 10px;font-weight:500;display:inline-block}.muscle-pill--working{background:var(--success-bg);color:var(--success-text)}.muscle-pill--helper{background:var(--info-bg);color:var(--info-text)}.pose-detail-actions{gap:var(--space-sm);margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--border);display:flex}.pose-pagination{margin-top:var(--space-lg);flex-wrap:wrap;justify-content:center;align-items:center;gap:4px;display:flex}.pose-page-btn{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;min-width:36px;height:36px;font-size:var(--font-size-sm);font-family:var(--font-family);color:var(--text);transition:background var(--transition), color var(--transition);justify-content:center;align-items:center;display:flex}.pose-page-btn:hover:not(.active):not(.disabled){background:var(--bg)}.pose-page-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}.pose-page-btn.disabled{opacity:.4;cursor:default}.pose-page-info{font-size:var(--font-size-sm);color:var(--text-muted);text-align:center;margin-top:var(--space-sm)}.muscle-multi-select{border:1px solid var(--border);border-radius:var(--radius);max-height:200px;padding:var(--space-xs);overflow-y:auto}.muscle-multi-select-search{border:none;border-bottom:1px solid var(--border);width:100%;font-size:var(--font-size-sm);font-family:var(--font-family);margin-bottom:var(--space-xs);background:var(--surface);outline:none;padding:.4rem .5rem;position:sticky;top:0}.muscle-multi-select label{font-size:var(--font-size-sm);cursor:pointer;border-radius:var(--radius);align-items:center;gap:6px;padding:3px 6px;display:flex}.muscle-multi-select label:hover{background:var(--bg)}.muscle-multi-select input[type=checkbox]{margin:0}.move-picker-modal{background:var(--surface);border-radius:var(--radius-lg);padding:var(--space-lg);flex-direction:column;width:90%;max-width:600px;max-height:85vh;display:flex}.move-picker-header{margin-bottom:var(--space-md)}.move-picker-header h3{margin-bottom:var(--space-sm)}.move-picker-header input{width:100%;padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-base);box-sizing:border-box}.move-picker-grid{gap:var(--space-sm);padding:var(--space-sm) 0;flex:1;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));display:grid;overflow-y:auto}.move-picker-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:border-color var(--transition), box-shadow var(--transition);text-align:center;overflow:hidden}.move-picker-card:hover{border-color:var(--primary);box-shadow:0 2px 8px #0000001a}.move-picker-card .pose-card-preview{height:100px}.move-picker-card-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;padding:4px 6px;font-size:12px;font-weight:600;overflow:hidden}.move-picker-card .pose-card-category{margin-bottom:4px}.move-picker-close{margin-top:var(--space-md);padding:var(--space-sm) var(--space-md);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;font-size:var(--font-size-base);align-self:center}.move-edit-modal{background:var(--surface);border-radius:var(--radius-lg);padding:var(--space-xl);width:90%;max-width:500px;max-height:85vh;overflow-y:auto}.move-edit-modal h3{margin-bottom:var(--space-lg)}.move-edit-modal .form-group{margin-bottom:var(--space-md)}.move-edit-modal .form-group label{margin-bottom:var(--space-xs);font-weight:600;font-size:var(--font-size-sm);color:var(--text);display:block}.move-edit-modal .form-group input[type=text],.move-edit-modal .form-group textarea,.move-edit-modal .form-group select{width:100%;padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-base);box-sizing:border-box}.move-edit-modal .form-group textarea{resize:vertical;min-height:60px}.muscle-search-input{margin-bottom:var(--space-xs)}.muscle-checkbox-list{border:1px solid var(--border);border-radius:var(--radius);max-height:150px;padding:var(--space-xs);overflow-y:auto}.muscle-checkbox{font-size:var(--font-size-sm);cursor:pointer;border-radius:var(--radius);align-items:center;gap:6px;padding:3px 6px;display:flex}.muscle-checkbox:hover{background:var(--bg)}.muscle-checkbox.checked{background:var(--primary-light,#e3f2fd)}.muscle-checkbox input[type=checkbox]{margin:0}.entry-row-content{flex:1}.entry-row-media-row{align-items:center;gap:var(--space-sm);display:flex}.entry-row-media-row .pose-media-thumb{object-fit:contain;border-radius:var(--radius);background:var(--bg-secondary);flex-shrink:0;width:50px;height:50px}.entry-row-info{flex-direction:column;gap:2px;display:flex}.entry-row-name{color:var(--text);font-weight:600}.entry-row-actions{align-items:center;gap:var(--space-xs);display:flex}.entry-row-actions .btn-sm{background:var(--primary);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;padding:4px 8px;font-size:11px}.entry-row-actions button:last-child{background:var(--danger);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;width:24px;height:24px}.entry-row--editing{background:var(--surface-alt,#00000005)}.entry-edit-form{padding:var(--space-sm);gap:var(--space-xs);flex-direction:column;display:flex}.entry-edit-row{align-items:center;gap:var(--space-xs);flex-wrap:wrap;display:flex}.entry-edit-row label{font-size:var(--font-size-sm);color:var(--text-muted)}.entry-edit-row input,.entry-edit-row select{border:1px solid var(--border);border-radius:var(--radius-sm);max-width:80px;font-size:var(--font-size-sm);padding:4px 6px}.entry-edit-row select{max-width:90px}.entry-edit-row .time-input-group{align-items:center;gap:4px;display:inline-flex}.entry-edit-row .time-input-group input{max-width:50px}.entry-edit-row .time-input-group span{font-size:var(--font-size-sm);color:var(--text-muted)}.entry-edit-actions{gap:var(--space-xs);display:flex}.entry-row-name--clickable{cursor:pointer;text-underline-offset:2px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.entry-row-name--clickable:hover{color:var(--primary)}.entry-preview-media-row{align-items:flex-start;gap:var(--space-sm);display:flex}.entry-preview-media-row .pose-media-thumb{object-fit:contain;border-radius:var(--radius);background:var(--bg-secondary);flex-shrink:0;width:50px;height:50px}.entry-preview-info{flex-direction:column;gap:2px;display:flex}.entry-preview-info strong{color:var(--text)}.entry-preview-info .muscle-pills{margin-top:2px}.program-info-row{align-items:center;gap:var(--space-sm);display:flex}.program-info-row .pose-media-thumb{object-fit:contain;border-radius:var(--radius);background:var(--bg-secondary);flex-shrink:0;width:40px;height:40px}.program-info-text{flex-direction:column;gap:1px;display:flex}.program-info .muscle-pills{margin-top:4px;margin-left:0}.pose-card-preview--empty{background:var(--bg);color:var(--text-muted);font-size:24px;font-weight:700}.program-assign-badge{color:var(--primary);margin-left:4px;font-weight:600}.program-assign-section{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);margin-top:1rem;padding:1rem}.program-assign-section h4{font-size:var(--font-size-base);margin:0 0 .75rem}.program-assign-users{flex-direction:column;gap:.5rem;margin-bottom:1rem;display:flex}.program-assign-user{cursor:pointer;align-items:center;gap:.5rem;padding:.25rem 0;display:flex}.program-assign-user input[type=checkbox]{cursor:pointer;width:16px;height:16px}.program-assign-dates{margin-bottom:1rem}.program-assign-dates label{margin-bottom:.5rem;font-weight:500;display:block}.program-current-assignments{border-top:1px solid var(--border);margin-top:1rem;padding-top:.75rem}.program-current-assignments h5{font-size:var(--font-size-sm);color:var(--text-muted);margin:0 0 .5rem}.program-assignment-row{font-size:var(--font-size-sm);align-items:center;gap:.75rem;padding:.35rem 0;display:flex}.program-assignment-user{min-width:120px;font-weight:500}.program-assignment-date{color:var(--text-muted);flex:1}.swimpal-assigned-programs h3{margin:0 0 1rem}.swimpal-assigned-programs .program-assign-date{color:var(--text-muted);font-size:var(--font-size-sm)}.program-print-header{display:none}.btn-print{background:var(--primary);color:#fff;border-radius:var(--radius);cursor:pointer;font-size:var(--font-size-sm);border:none;padding:.5rem 1rem}.btn-print:hover{opacity:.9}.btn-start-timer{background:var(--success);color:#fff;border-radius:var(--radius);cursor:pointer;font-size:var(--font-size-sm);white-space:nowrap;border:none;flex-shrink:0;padding:.4rem .85rem}.btn-start-timer:hover{opacity:.9}.timer-back-btn{margin-bottom:var(--space-md)}@media print{body *{visibility:hidden}#print-area,#print-area *{visibility:visible}#print-area{width:100%;padding:1rem;position:absolute;top:0;left:0}.program-print-header{margin-bottom:1rem;display:block}.program-print-header h3{margin:0 0 .25rem;font-size:1.25rem}.program-print-header p{color:#666;margin:0;font-size:.9rem}.program-actions,.btn-print,.toolbox-hamburger,.toolbox-sidenav,.coach-tabs,.app-page>h1,.app-page>p{display:none!important}.program-table{border:1px solid #333}.program-table th,.program-table td{border:1px solid #333;padding:4px 8px}}.user-search .search-form{gap:var(--space-sm);margin-bottom:var(--space-sm);display:flex}.user-search .search-form input{padding:var(--space-sm) var(--space-md);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-sm);flex:1}.user-search .btn-primary{padding:var(--space-sm) var(--space-lg);background:var(--primary);color:#fff;border-radius:var(--radius);cursor:pointer;font-size:var(--font-size-sm);border:none}.user-search .btn-primary:hover:not(:disabled){filter:brightness(1.1)}.user-search .btn-primary:disabled{opacity:.5;cursor:not-allowed}.user-search .search-results{gap:var(--space-sm);margin-top:var(--space-md);flex-direction:column;display:flex}.user-search .user-row{justify-content:space-between;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);display:flex}.user-search .user-info{flex-direction:column;min-width:0;display:flex}.user-search .user-email{font-weight:600}.user-search .user-detail{font-size:var(--font-size-sm);color:var(--text-muted)}.user-search .user-row button{padding:var(--space-xs) var(--space-md);border-radius:var(--radius);cursor:pointer;font-size:var(--font-size-sm);background:var(--primary);color:#fff;white-space:nowrap;border:none}.user-search .user-row button:hover:not(:disabled){filter:brightness(1.1)}.user-search .user-row button:disabled{opacity:.6;cursor:not-allowed}.user-search .user-row .btn-success{background:var(--success)}.swimpal-tests .btn-primary,.swimpal-tests .btn-secondary{border-radius:var(--radius);padding:var(--space-xs) var(--space-md);cursor:pointer;font-size:var(--font-size-sm);border:none}.swimpal-tests .btn-primary{background:var(--primary);color:#fff}.swimpal-tests .btn-primary:hover:not(:disabled){background:var(--primary-hover)}.swimpal-tests .btn-secondary{background:var(--bg);color:var(--text);border:1px solid var(--border)}.swimpal-tests .btn-primary:disabled,.swimpal-tests .btn-secondary:disabled{opacity:.6;cursor:not-allowed}.tests-coach-section,.tests-results-section{padding:var(--space-md)}.tests-header{margin-bottom:var(--space-md)}.tests-list{gap:var(--space-sm);margin-top:var(--space-sm);flex-direction:column;display:flex}.tests-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);padding:var(--space-md);gap:var(--space-sm);flex-direction:column;display:flex;box-shadow:0 1px 3px #00000014}.tests-card-header{justify-content:space-between;align-items:center;gap:var(--space-sm);display:flex}.tests-card-name{font-weight:600}.tests-card-meta{font-size:var(--font-size-sm);color:var(--text-secondary);white-space:nowrap}.tests-card-actions{gap:var(--space-sm);display:flex}.tests-builder{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);padding:var(--space-md);margin-bottom:var(--space-md)}.tests-builder h3,.tests-builder h4{margin:0 0 var(--space-sm)}.tests-field-label{font-size:var(--font-size-sm);color:var(--text-secondary);margin:var(--space-sm) 0 var(--space-xs);display:block}.tests-name-input{width:100%;padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-base)}.tests-builder-cols{gap:var(--space-md);margin-top:var(--space-md);grid-template-columns:1fr 1fr;display:grid}.tests-builder-col{border:1px dashed var(--border);border-radius:var(--radius);padding:var(--space-sm)}.tests-editor-empty{font-size:var(--font-size-sm);color:var(--text-muted);margin:var(--space-xs) 0}.tests-edit-row{align-items:center;gap:var(--space-xs);margin-bottom:var(--space-xs);display:flex}.tests-edit-row input{min-width:0;padding:var(--space-xs) var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-sm);flex:1}.tests-edit-row select{padding:var(--space-xs);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-sm)}.tests-edit-actions{gap:var(--space-xs);flex-shrink:0;display:flex}.tests-move-btn,.tests-remove-btn{border-radius:var(--radius);cursor:pointer;width:26px;height:26px;font-size:var(--font-size-sm);background:var(--bg);color:var(--text);border:none;border:1px solid var(--border)}.tests-move-btn:disabled{opacity:.4;cursor:not-allowed}.tests-remove-btn{color:var(--danger)}.tests-add-btn{margin-top:var(--space-xs)}.tests-preview{margin-top:var(--space-md)}.tests-form-error{margin-top:var(--space-sm)}.tests-builder-actions{gap:var(--space-sm);margin-top:var(--space-md);display:flex}.tests-select,.tests-date-input{width:100%;padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-base);margin-bottom:var(--space-sm)}.tests-result-form{margin-top:var(--space-sm)}.tests-notes-input{width:100%;padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);font-family:inherit;font-size:var(--font-size-base);resize:vertical}.tests-result-actions{gap:var(--space-sm);margin-top:var(--space-sm);display:flex}.tests-save-msg{color:var(--success);font-size:var(--font-size-sm)}.tests-saved-heading{margin:var(--space-md) 0 var(--space-sm)}.tests-grid-table{border-collapse:collapse;width:100%;font-size:var(--font-size-sm);margin:var(--space-sm) 0}.tests-grid-table th,.tests-grid-table td{border:1px solid var(--border);padding:var(--space-xs);text-align:left;vertical-align:top}.tests-grid-table th{background:var(--bg);font-weight:600}.tests-grid-table input{box-sizing:border-box;width:100%;min-width:0;padding:var(--space-xs);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-sm)}.tests-result-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);padding:var(--space-md);margin-bottom:var(--space-sm);box-shadow:0 1px 3px #00000014}.tests-result-card-header{justify-content:space-between;align-items:center;gap:var(--space-sm);display:flex}.tests-result-athlete{font-weight:600}.tests-result-date{font-size:var(--font-size-sm);color:var(--text-secondary)}.tests-result-run{font-size:var(--font-size-sm);color:var(--primary);background:var(--surface-variant,#0000000d);white-space:nowrap;border-radius:10px;padding:2px 10px;font-weight:600}.tests-results-list{gap:var(--space-sm);flex-direction:column;display:flex}.test-result-grid{margin:var(--space-sm) 0;overflow-x:auto}.test-results-table{border-collapse:collapse;width:100%;font-size:var(--font-size-sm)}.test-results-table th,.test-results-table td{border:1px solid var(--border);padding:var(--space-xs);text-align:left;vertical-align:top}.test-results-table th{background:var(--bg);font-weight:600}.test-result-row-label{background:var(--bg);font-weight:500}.test-result-notes{font-size:var(--font-size-sm);color:var(--text-secondary);white-space:pre-wrap}.swimpal-drop-test{padding:var(--space-md);gap:var(--space-md);flex-direction:column;display:flex}.drop-test-top{align-items:center;gap:var(--space-md);display:flex}.drop-test-top h3{margin:0}.drop-test-settings{gap:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);padding:var(--space-md);grid-template-columns:repeat(auto-fill,minmax(150px,1fr));display:grid}.drop-test-field{gap:var(--space-xs);flex-direction:column;display:flex}.drop-test-field label{font-size:var(--font-size-sm);color:var(--text-secondary)}.drop-test-field input,.drop-test-field select{padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-base);width:100%}.drop-test-field input:disabled,.drop-test-field select:disabled{opacity:.6}.drop-test-athletes,.drop-test-picker{gap:var(--space-sm);flex-direction:column;display:flex}.drop-test-picker-list{gap:var(--space-xs);flex-direction:column;display:flex}.drop-test-picker-item{align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;display:flex}.drop-test-picker-item:hover{border-color:var(--primary)}.drop-test-picker-item input[type=checkbox]{accent-color:var(--primary);cursor:pointer;flex-shrink:0}.drop-test-picker-item input[type=checkbox]:disabled{cursor:not-allowed}.drop-test-picker-item:has(input:disabled){opacity:.6;cursor:not-allowed}.drop-test-picker-name{font-size:var(--font-size-sm);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.drop-test-table-wrap{overflow-x:auto}.drop-test-table{border-collapse:collapse;width:100%;font-size:var(--font-size-sm)}.drop-test-table th,.drop-test-table td{border:1px solid var(--border);padding:var(--space-xs);text-align:left;vertical-align:middle}.drop-test-table th{background:var(--bg);font-weight:600}.drop-test-table td input[type=number],.drop-test-table td select{width:100%;min-width:0;padding:var(--space-xs);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-sm)}.drop-test-athlete-name{white-space:nowrap;font-weight:600}.drop-test-row--dropped{background:#dc35450f}.drop-test-reps{gap:var(--space-xs);flex-wrap:wrap;display:flex}.drop-test-rep{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);align-items:center;gap:4px;padding:2px 6px;display:inline-flex}.drop-test-rep-label{color:var(--text-secondary);font-size:.75rem;font-weight:600}.drop-test-rep input{width:48px;font-size:var(--font-size-sm);text-align:right;background:0 0;border:none}.drop-test-reps-empty{color:var(--text-muted)}.drop-test-badge{background:var(--danger);color:#fff;border-radius:var(--radius);padding:var(--space-xs) var(--space-sm);font-size:var(--font-size-sm);white-space:nowrap;cursor:pointer;font-weight:600;display:inline-block}.drop-test-timer{align-items:center;gap:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);padding:var(--space-md);flex-direction:column;display:flex}.drop-test-countdown{font-variant-numeric:tabular-nums;font-size:3rem;font-weight:700;font-family:var(--font-mono,monospace);line-height:1}.drop-test-ready-label{margin-left:var(--space-sm);font-size:var(--font-size-sm);color:var(--warning,#b45309);vertical-align:middle;font-weight:600;display:inline-block}.drop-test-meta{font-size:var(--font-size-sm);color:var(--text-secondary)}.drop-test-actions{gap:var(--space-sm);justify-content:center;align-items:center;display:flex}.drop-test-hint{font-size:var(--font-size-sm);color:var(--text-muted)}.drop-test-result-note{font-size:var(--font-size-sm);color:var(--text-secondary);margin:0 0 var(--space-sm)}.drop-test-result-meta{font-size:var(--font-size-sm);color:var(--text-secondary);margin:0 0 var(--space-xs)}.tests-card-type{font-size:var(--font-size-sm);color:var(--primary);border-radius:var(--radius);background:#0d6efd1a;padding:2px 8px;font-weight:600}@media (width<=600px){.drop-test-settings{grid-template-columns:1fr 1fr}.drop-test-countdown{font-size:2.2rem}.tests-builder-cols{grid-template-columns:1fr}.tests-card-header{flex-direction:column;align-items:flex-start}}.notification-list{flex-direction:column;gap:8px;display:flex}.notification-item{border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-sm) var(--space-md);cursor:pointer;transition:background-color var(--transition), border-color var(--transition)}.notification-item:hover{background:var(--surface-hover,#00000008)}.notification-item--unread{border-color:var(--primary);background:#3498db0f}.notification-header{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.notification-type{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:.72rem;font-weight:700}.notification-unread-dot{background:var(--primary);border-radius:50%;width:9px;height:9px}.notification-body{color:var(--text);font-size:.9rem}.notification-text{white-space:pre-wrap;color:var(--text-muted);margin-top:4px}.notification-date{color:var(--text-muted);margin-top:6px;font-size:.75rem}.notification-footer{justify-content:space-between;align-items:center;gap:var(--space-sm);display:flex}.notification-footer .notification-date{margin-top:0}.notification-open-btn{padding:4px 12px;font-size:.8rem}.notification-row{justify-content:space-between;align-items:center;gap:var(--space-md);padding:var(--space-sm) 0;border-bottom:1px solid var(--border);display:flex}.notification-row:last-child{border-bottom:none}.notification-row-info{flex-direction:column;gap:2px;min-width:0;display:flex}.notification-row-name{font-weight:600}.notification-row-sub{color:var(--text-muted);font-size:.8rem}.notification-row-actions{flex-shrink:0;gap:8px;display:flex}.btn-back{border:1px solid var(--border);background:var(--surface);width:36px;height:36px;color:var(--text);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:1.1rem;line-height:1;display:inline-flex}.btn-back:hover{background:var(--bg)}.wave-timer-panel{gap:var(--space-sm);margin-bottom:var(--space-md);flex-direction:column;display:flex}.wave-timer-head{justify-content:space-between;align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.wave-timer-title{font-weight:600;font-size:var(--font-size-sm);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.wave-lanes{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;display:grid}.wave-lane{background:var(--surface-variant,var(--bg-secondary));border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:4px;padding:6px 8px;display:flex}.wave-lane-head{justify-content:space-between;align-items:center;gap:6px;display:flex}.wave-lane-label{font-size:var(--font-size-xs);color:var(--text-muted);text-transform:uppercase;font-weight:600}.wave-lane-next{align-items:baseline;gap:6px;min-width:0;display:inline-flex}.wave-lane-name{font-weight:600;font-size:var(--font-size-sm);white-space:nowrap;text-overflow:ellipsis;max-width:120px;overflow:hidden}.wave-lane-count{font-variant-numeric:tabular-nums;color:var(--text);font-family:Courier New,monospace;font-size:1.9rem;font-weight:700;line-height:1}.wave-lane--soon{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}@keyframes wave-soon-pulse{0%,to{opacity:1}50%{opacity:.35}}.wave-lane-next--clear{color:var(--success-text,var(--text-muted));font-size:var(--font-size-xs)}.wave-lane-athletes{flex-wrap:wrap;gap:3px;display:flex}.wave-chip{font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm,var(--radius));white-space:nowrap;padding:1px 6px}.wave-chip--upcoming{color:var(--text-muted)}.wave-chip--done{background:var(--success-bg);color:var(--success-text);border-color:var(--success-bg);font-weight:600}.wave-chip--overrun{background:var(--warning-bg);color:var(--warning-text);border-color:var(--warning-bg)}.wave-lane--resting{border-style:dashed}.wave-chip--resting{color:var(--text-muted);background:0 0;border-style:dashed}.wave-eta{gap:var(--space-sm);flex-direction:column;width:100%;max-width:700px;display:flex}.program-timer-fake-fullscreen .wave-eta{max-width:940px}.program-timer-running:fullscreen .wave-eta{max-width:940px}.program-timer-running:-webkit-full-screen .wave-eta{max-width:940px}.program-timer-fake-fullscreen .wave-lane-count{font-size:2.4rem}.program-timer-running:fullscreen .wave-lane-count{font-size:2.4rem}.program-timer-running:-webkit-full-screen .wave-lane-count{font-size:2.4rem}.program-timer-fake-fullscreen .program-timer-countdown-main--soon{color:var(--primary);animation:1s ease-in-out infinite wave-soon-pulse}.program-timer-running:fullscreen .program-timer-countdown-main--soon{color:var(--primary);animation:1s ease-in-out infinite wave-soon-pulse}.program-timer-running:-webkit-full-screen .program-timer-countdown-main--soon{color:var(--primary);animation:1s ease-in-out infinite wave-soon-pulse}.program-timer-fake-fullscreen .wave-chip{font-size:var(--font-size-sm);padding:3px 9px}.program-timer-running:fullscreen .wave-chip{font-size:var(--font-size-sm);padding:3px 9px}.program-timer-running:-webkit-full-screen .wave-chip{font-size:var(--font-size-sm);padding:3px 9px}.gympal-timer{gap:var(--space-lg);padding:var(--space-lg);max-width:var(--max-width-lg);flex-direction:column;margin:0 auto;display:flex}.gympal-timer--loading,.gympal-timer--complete{text-align:center;align-items:center}.gympal-timer-title{color:var(--heading);margin:0}.gympal-timer-select{padding:var(--space-md);border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:var(--font-size-base);border-radius:8px}.gympal-timer-preview{gap:var(--space-sm);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.gympal-timer-preview-entry{align-items:center;gap:var(--space-md);padding:var(--space-md);border:1px solid var(--border);background:var(--surface-alt);border-radius:8px;display:flex}.gympal-timer-preview-media{object-fit:cover;border-radius:8px;flex-shrink:0;width:48px;height:48px}.gympal-timer-preview-info{flex-direction:column;gap:2px;display:flex}.gympal-timer-preview-info em{color:var(--text-muted);font-size:var(--font-size-sm);white-space:pre-wrap}.gympal-timer-progress{font-size:var(--font-size-sm);color:var(--text-muted)}.gympal-timer-card{gap:var(--space-lg);padding:var(--space-lg);border:1px solid var(--border);background:var(--surface-alt);border-radius:8px;flex-direction:column;display:flex}.gympal-timer-entry-header{align-items:flex-start;gap:var(--space-md);display:flex}.gympal-timer-media{object-fit:cover;border-radius:8px;flex-shrink:0;width:64px;height:64px}.gympal-timer-entry-info{flex-direction:column;gap:4px;display:flex}.gympal-timer-move-name{color:var(--heading);font-size:1.1rem}.gympal-timer-entry-set{color:var(--text-muted);font-size:var(--font-size-sm)}.gympal-timer-entry-detail{color:var(--text)}.gympal-timer-entry-notes{color:var(--text-muted);font-size:var(--font-size-sm);white-space:pre-wrap;margin:4px 0 0}.gympal-timer-countdown-block{align-items:center;gap:var(--space-md);flex-direction:column;display:flex}.gympal-timer-countdown{color:var(--heading);font-variant-numeric:tabular-nums;font-size:4rem;font-weight:700;line-height:1}.gympal-timer-countdown--warning{color:#e74c3c}.gympal-timer-controls{gap:var(--space-md);flex-wrap:wrap;justify-content:center;display:flex}.gympal-timer-footer{justify-content:center;display:flex}.gympal-timer-next-up{align-items:center;gap:var(--space-sm);margin-top:var(--space-md);padding:var(--space-sm) var(--space-md);border:1px solid var(--border);background:var(--surface-alt);color:var(--text-muted);border-radius:8px;display:flex}.gympal-timer-next-up-label{font-size:var(--font-size-xs,.75rem);text-transform:uppercase;letter-spacing:.03em;flex-shrink:0}.gympal-timer-next-up-media{object-fit:cover;border-radius:6px;flex-shrink:0;width:36px;height:36px}.gympal-timer-next-up-info{flex-direction:column;gap:2px;display:flex}.gympal-timer-next-up-detail{font-size:var(--font-size-sm)}.gympal-timer-empty{color:var(--text-muted)}.gympal-timer-athletes{gap:var(--space-sm);flex-direction:column;display:flex}.gympal-timer-rest-settings{gap:var(--space-md);flex-wrap:wrap;display:flex}.gympal-timer-rest-settings label{gap:var(--space-xs);font-size:var(--font-size-sm);color:var(--text-muted);flex-direction:column;display:flex}.gympal-timer-rest-settings input{width:6em}.gympal-timer-rest-title{text-align:center;color:var(--text-muted)}.gympal-timer-athletes-title{color:var(--heading);margin:0;font-size:1rem}.gympal-timer-athletes-search{padding:var(--space-sm);border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px}.gympal-timer-athletes-list{gap:var(--space-sm);flex-wrap:wrap;display:flex}.gympal-timer-athlete-item{padding:var(--space-sm);border:1px solid var(--border);background:var(--surface-alt);border-radius:8px;align-items:center;gap:6px;display:flex}.gympal-timer-review{text-align:left;align-self:stretch;gap:var(--space-md);flex-direction:column;display:flex}.gympal-timer-review-title{color:var(--heading);margin:0}.gympal-timer-review-instructions{color:var(--text-muted);font-size:var(--font-size-sm);margin:0}.gympal-timer-review-row{gap:var(--space-sm);padding:var(--space-md);border:1px solid var(--border);background:var(--surface-alt);border-radius:8px;flex-direction:column;display:flex}.gympal-timer-review-athletes{gap:var(--space-md);flex-wrap:wrap;display:flex}.gympal-timer-review-cell{align-items:center;gap:6px;display:flex}.gympal-timer-review-message{color:var(--text-muted)}.team-diary{padding:var(--space-md)}.team-diary h2{margin-bottom:var(--space-md)}.team-diary-header{justify-content:space-between;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md);flex-wrap:wrap;display:flex}.team-diary-search{width:100%;max-width:420px;padding:var(--space-sm);margin-bottom:var(--space-md);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text)}.team-diary-athlete-list{gap:var(--space-sm);margin-top:var(--space-sm);flex-direction:column;display:flex}.team-diary-athlete-card{text-align:left;justify-content:flex-start;align-items:center;width:100%}.team-diary-actions{margin-bottom:var(--space-md)}.team-diary-form-actions{gap:var(--space-sm);flex-wrap:wrap;display:flex}.team-diary-entry{align-items:center;gap:var(--space-sm);flex-wrap:wrap}.team-diary-entry .diary-history-notes{color:var(--text-muted);font-size:var(--font-size-sm)}.team-diary-entry-actions{gap:var(--space-xs);display:flex}.team-diary-date-detail{margin-top:var(--space-md)}.team-diary-training-select{width:100%;max-width:420px;padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text)}.team-diary-bulk-section{margin-top:var(--space-md);background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:var(--space-md);gap:var(--space-md);flex-direction:column;display:flex}.team-diary-moves{gap:var(--space-sm);flex-direction:column;display:flex}.team-diary-move-row{align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.team-diary-move-name{min-width:120px}.team-diary-move-fields{align-items:center;gap:var(--space-xs);flex-wrap:wrap;display:flex}.team-diary-move-input{width:80px}.team-diary-athletes-present-hint{color:var(--text-muted);font-size:var(--font-size-sm);margin:0}.team-diary-bulk-athletes{gap:var(--space-sm);flex-direction:column;display:flex}.team-diary-bulk-athlete-row{gap:var(--space-xs);border-bottom:1px solid var(--border);padding-bottom:var(--space-sm);flex-direction:column;display:flex}.team-diary-bulk-athlete-check{align-items:center;gap:var(--space-xs);display:flex}.team-diary-athlete-link{color:var(--primary);cursor:pointer;font:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.team-diary-athlete-overrides{gap:var(--space-xs);padding-left:var(--space-lg);flex-direction:column;display:flex}.team-diary-override-row{align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.team-diary-override-summary{color:var(--text-muted)}.team-diary-bulk-message{font-size:var(--font-size-sm)}.heats-relay-section{border-top:1px solid var(--border);padding-top:var(--space-sm);margin-top:var(--space-sm)}.heats-relay-toggle{align-items:center;gap:var(--space-xs);cursor:pointer;font-weight:600;display:flex}.heats-relay-label-text{align-items:center;gap:var(--space-xs);display:inline-flex}.heats-relay-controls{gap:var(--space-sm);margin-top:var(--space-sm);flex-wrap:wrap;align-items:flex-end;display:flex}.heats-relay-spec{color:var(--muted,#888);align-self:flex-end;font-size:.85rem}.heats-relay-teams{gap:var(--space-sm);margin-top:var(--space-xs);flex-wrap:wrap;flex:100%;display:flex}.heats-relay-team{border:1px solid var(--border);padding:var(--space-sm);border-radius:8px;min-width:180px}.heats-relay-team-head{margin-bottom:var(--space-xs);justify-content:space-between;align-items:center;font-weight:600;display:flex}.heats-relay-team-size{color:var(--muted,#888);font-size:.8rem}.heats-relay-team-roster{gap:var(--space-xxs);flex-direction:column;display:flex}.heats-relay-team-athlete{align-items:center;gap:var(--space-xxs);display:flex}.heats-relay-athlete-name{flex:1;font-size:.9rem}.heats-relay-athlete-move,.heats-relay-athlete-up,.heats-relay-athlete-down{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:4px;padding:2px 6px;font-size:.8rem}.heats-relay-athlete-move:disabled,.heats-relay-athlete-up:disabled,.heats-relay-athlete-down:disabled{opacity:.4;cursor:default}.relay-panel{border:1px solid var(--border);padding:var(--space-sm);margin:var(--space-sm) 0;border-radius:8px}.relay-panel-head{margin-bottom:var(--space-sm);justify-content:space-between;align-items:center;display:flex}.relay-panel-title{font-weight:700}.relay-panel-summary{color:var(--muted,#888);font-size:.85rem}.relay-panel-teams{gap:var(--space-sm);flex-wrap:wrap;display:flex}.relay-team{border:1px solid var(--border);padding:var(--space-sm);border-radius:8px;flex:200px;min-width:200px}.relay-team--active{border-color:var(--primary,#2c7be5);box-shadow:0 0 0 1px var(--primary,#2c7be5)}.relay-team--done{opacity:.6}.relay-team-head{margin-bottom:var(--space-xs);justify-content:space-between;align-items:center;font-weight:600;display:flex}.relay-team-progress{color:var(--muted,#888);font-size:.85rem}.relay-team-roster{gap:var(--space-xxs);margin-bottom:var(--space-sm);flex-direction:column;display:flex}.relay-roster-athlete{align-items:center;gap:var(--space-xs);border-radius:4px;padding:2px 4px;font-size:.9rem;display:flex}.relay-roster-athlete--next{background:color-mix(in srgb, var(--primary,#2c7be5) 12%, transparent);font-weight:600}.relay-roster-num{width:1.2em;color:var(--muted,#888)}.relay-team-actions{gap:var(--space-xs);display:flex}.teamup-import-modal{max-width:700px}.teamup-import-form,.teamup-import-review{gap:var(--space-md);flex-direction:column;display:flex}.teamup-import-form label{gap:var(--space-xs);flex-direction:column;display:flex}.teamup-mapping-section,.teamup-events-section{border:1px solid var(--border);border-radius:var(--radius-md,6px);padding:var(--space-md)}.teamup-mapping-row{justify-content:space-between;align-items:center;gap:var(--space-sm);padding:var(--space-xs) 0;display:flex}.teamup-events-header{justify-content:space-between;align-items:center;gap:var(--space-sm);display:flex}.teamup-events-list{gap:var(--space-xs);flex-direction:column;max-height:300px;display:flex;overflow-y:auto}.teamup-event-row{align-items:center;gap:var(--space-sm);padding:var(--space-xs) 0;border-bottom:1px solid var(--border);display:flex}.teamup-event-title{font-weight:600}.teamup-event-dates,.teamup-event-subcalendar{color:var(--text-muted);font-size:var(--font-size-sm)}.teamup-already-imported-badge{background:var(--surface-alt);color:var(--text-muted);border-radius:var(--radius-sm);font-size:var(--font-size-sm);padding:2px 6px}.teamup-import-actions{justify-content:space-between;display:flex}.teamup-assign-section{border:1px solid var(--border);border-radius:var(--radius-md,6px);padding:var(--space-md)}.teamup-assign-row{gap:var(--space-md);margin-top:var(--space-xs);display:flex}.teamup-assign-row label{gap:var(--space-xs);flex-direction:column;flex:1;display:flex}.teamup-assign-row select{width:100%;height:90px;padding:8px}.teamup-name-filter{width:100%;margin:var(--space-sm) 0;padding:8px}.move-library-actions{gap:var(--space-sm);margin-bottom:var(--space-sm);display:flex}.move-import-modal{max-width:700px}.move-import-form,.move-import-review{gap:var(--space-md);flex-direction:column;display:flex}.move-import-rows{gap:var(--space-xs);flex-direction:column;max-height:400px;display:flex;overflow-y:auto}.move-import-row{align-items:center;gap:var(--space-sm);padding:var(--space-xs) 0;border-bottom:1px solid var(--border);flex-wrap:wrap;display:flex}.move-import-row--duplicate{opacity:.6}.move-import-row-name{font-weight:600}.move-import-row-category{color:var(--text-muted);font-size:var(--font-size-sm)}.move-import-badge{background:var(--surface-alt);color:var(--text-muted);border-radius:var(--radius-sm);font-size:var(--font-size-sm);padding:2px 6px}.move-import-warning{color:var(--warning-text);font-size:var(--font-size-sm)}.move-import-actions{justify-content:space-between;display:flex}
