.notification-container{position:fixed;z-index:9999;pointer-events:none}.notification-container.top-right{top:20px;right:20px}.notification-container.top-left{top:20px;left:20px}.notification-container.top-center{top:20px;left:50%;transform:translate(-50%)}.notification-container.bottom-right{bottom:20px;right:20px}.notification-container.bottom-left{bottom:20px;left:20px}.notification-container.bottom-center{bottom:20px;left:50%;transform:translate(-50%)}.notification{min-width:300px;max-width:500px;padding:0;border-radius:8px;box-shadow:0 4px 12px #00000026;opacity:0;transform:translateY(-20px);transition:all .3s cubic-bezier(.68,-.55,.265,1.55);pointer-events:auto;margin-bottom:10px}.notification.show{opacity:1;transform:translateY(0)}.notification-content{display:flex;align-items:center;padding:16px;gap:12px}.notification-icon{font-size:18px;font-weight:700;flex-shrink:0;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff}.notification-message{flex:1;font-size:14px;font-weight:500;line-height:1.4;color:#fff}.notification-close{background:none;border:none;color:#fff;font-size:18px;font-weight:700;cursor:pointer;padding:0;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background-color .2s ease;flex-shrink:0}.notification-close:hover{background-color:#ffffff1a}.notification.success{background:linear-gradient(135deg,#10b981,#059669);border:1px solid #10b981}.notification.success .notification-icon{background-color:#fff3}.notification.error{background:linear-gradient(135deg,#ef4444,#dc2626);border:1px solid #ef4444}.notification.error .notification-icon{background-color:#fff3}.notification.warning{background:linear-gradient(135deg,#f59e0b,#d97706);border:1px solid #f59e0b}.notification.warning .notification-icon{background-color:#fff3}.notification.info{background:linear-gradient(135deg,#3b82f6,#2563eb);border:1px solid #3b82f6}.notification.info .notification-icon{background-color:#fff3}@keyframes slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes slideOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}@media(max-width:768px){.notification-container{left:10px!important;right:10px!important;transform:none!important}.notification{min-width:auto;max-width:none}.notification-message{font-size:13px}}:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background-color:#fff;color:#111827;font-size:14px}a{font-weight:500;color:#dc2626;text-decoration:inherit}a:hover{color:#b91c1c}h1{font-size:2rem;line-height:1.2;font-weight:600;letter-spacing:-.025em}button{border-radius:6px;border:1px solid transparent;padding:.5rem 1rem;font-size:.875rem;font-weight:500;font-family:inherit;background-color:#dc2626;color:#fff;cursor:pointer;transition:background-color .15s ease}button:hover{background-color:#b91c1c}button:focus,button:focus-visible{outline:2px solid #dc2626;outline-offset:1px}.auth-loading-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:#fff}.auth-loading-spinner{text-align:center;color:#6b7280}.spinner-icon{width:32px;height:32px;border:3px solid #f3f4f6;border-top:3px solid #dc2626;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 16px}.auth-loading-spinner p{font-size:16px;font-weight:500;margin:0}.unauthorized-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.unauthorized-card{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;padding:48px 40px;max-width:500px;width:100%;text-align:center}.unauthorized-icon{font-size:80px;margin-bottom:24px;animation:shake .5s ease-in-out}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}.unauthorized-card h1{font-size:32px;color:#1f2937;margin:0 0 16px;font-weight:700}.unauthorized-message{font-size:16px;color:#6b7280;margin:0 0 24px;line-height:1.6}.user-role-info{font-size:14px;color:#9ca3af;margin:0 0 32px;padding:12px;background:#f3f4f6;border-radius:8px}.user-role-info strong{color:#667eea;font-weight:600}.unauthorized-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.btn-primary,.btn-secondary{padding:12px 24px;border-radius:8px;font-size:14px;font-weight:600;text-decoration:none;transition:all .2s;cursor:pointer;display:inline-block}.btn-primary{background:#667eea;color:#fff;border:2px solid #667eea}.btn-primary:hover{background:#5568d3;border-color:#5568d3;transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.btn-secondary{background:#fff;color:#667eea;border:2px solid #667eea}.btn-secondary:hover{background:#f3f4f6;transform:translateY(-2px)}.logout-modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.logout-modal{background:#fff;border-radius:12px;box-shadow:0 20px 60px #00000026;width:100%;max-width:400px;margin:20px;animation:modalSlideIn .2s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.logout-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 0;border-bottom:1px solid #e5e7eb;margin-bottom:20px}.logout-modal-header h3{margin:0;font-size:18px;font-weight:600;color:#111827}.logout-modal-close{background:none;border:none;font-size:24px;color:#6b7280;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .15s ease}.logout-modal-close:hover{background-color:#f3f4f6;color:#374151}.logout-modal-content{padding:0 24px 20px}.user-info{display:flex;align-items:center;gap:16px;margin-bottom:20px;padding:16px;background-color:#f9fafb;border-radius:8px}.user-avatar-large{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-weight:600;font-size:18px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.user-details-modal{flex:1}.user-name-modal{font-weight:600;color:#111827;font-size:16px;margin-bottom:2px}.user-role-modal{color:#6b7280;font-size:14px;margin-bottom:4px}.current-club{color:#059669;font-size:12px;background-color:#ecfdf5;padding:4px 8px;border-radius:4px;display:inline-block}.logout-modal-message{text-align:center;color:#374151;font-size:16px;margin-bottom:4px}.logout-modal-actions{display:flex;flex-direction:column;gap:8px;padding:0 24px 24px}.logout-modal-button{padding:12px 16px;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px}.logout-modal-button:focus{outline:2px solid #3b82f6;outline-offset:2px}.logout-modal-button-primary{background-color:#dc2626;color:#fff}.logout-modal-button-primary:hover{background-color:#b91c1c}.logout-modal-button-secondary{background-color:#059669;color:#fff}.logout-modal-button-secondary:hover{background-color:#047857}.logout-modal-button-cancel{background-color:#f3f4f6;color:#374151;border:1px solid #d1d5db}.logout-modal-button-cancel:hover{background-color:#e5e7eb}.button-icon{font-size:16px}@media(max-width:480px){.logout-modal{margin:10px;max-width:none}.logout-modal-header{padding:16px 20px 0}.logout-modal-content{padding:0 20px 16px}.logout-modal-actions{padding:0 20px 20px}.user-info{flex-direction:column;text-align:center;gap:12px}.user-details-modal{text-align:center}}.session-expired-overlay{position:fixed;inset:0;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:10000;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.session-expired-modal{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0003;width:100%;max-width:420px;margin:20px;animation:sessionExpiredSlideIn .3s ease-out}@keyframes sessionExpiredSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.session-expired-header{display:flex;align-items:center;justify-content:center;padding:20px 24px 0;border-bottom:1px solid #fde68a;margin-bottom:20px}.session-expired-header h3{margin:0;font-size:18px;font-weight:600;color:#92400e}.session-expired-content{padding:0 24px 20px;text-align:center}.session-expired-icon{margin-bottom:16px}.session-expired-icon span{font-size:48px;line-height:1}.session-expired-message{margin-bottom:4px}.session-expired-title{font-size:18px;font-weight:600;color:#111827;margin:0 0 8px}.session-expired-description{font-size:14px;color:#6b7280;margin:0;line-height:1.5}.session-expired-actions{padding:0 24px 24px}.session-expired-button{width:100%;padding:12px 16px;border:none;border-radius:8px;font-size:15px;font-weight:500;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;background-color:#dc2626;color:#fff}.session-expired-button:hover{background-color:#b91c1c}.session-expired-button:focus{outline:2px solid #dc2626;outline-offset:2px}.session-expired-button .button-icon{font-size:16px}@media(max-width:480px){.session-expired-modal{margin:10px;max-width:none}.session-expired-header{padding:16px 20px 0}.session-expired-content{padding:0 20px 16px}.session-expired-actions{padding:0 20px 20px}}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f5f7fa,#c3cfe2);padding:20px}.login-card{background:#fff;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;padding:48px;width:100%;max-width:420px;border:1px solid #e5e7eb}.login-header{text-align:center;margin-bottom:32px}.login-logo-container{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:24px}.login-logo{width:48px;height:48px;flex-shrink:0}.login-header h1{color:#dc2626;font-size:24px;font-weight:600;margin:0;letter-spacing:-.025em}.login-header h2{color:#111827;font-size:20px;font-weight:600;margin:0 0 8px;letter-spacing:-.025em}.login-header p{color:#6b7280;font-size:14px;margin:0;line-height:1.5}.login-form{margin-bottom:24px}.form-group label{display:block;font-weight:500;color:#374151;margin-bottom:6px;font-size:14px}.form-group input{width:100%;padding:12px 16px;border:1px solid #d1d5db;border-radius:8px;font-size:16px;transition:all .15s ease;background-color:#fff;color:#374151;box-sizing:border-box}.form-group input:focus{outline:none;border-color:#dc2626;box-shadow:0 0 0 2px #dc26261a}.form-group input::placeholder{color:#9ca3af}.login-button{width:100%;padding:12px 24px;background-color:#dc2626;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .15s ease;position:relative}.login-button:hover:not(:disabled){background-color:#b91c1c;transform:translateY(-1px);box-shadow:0 4px 12px #dc26264d}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{background-color:#9ca3af;cursor:not-allowed;transform:none;box-shadow:none}.login-button:disabled:after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:16px;height:16px;border:2px solid transparent;border-top:2px solid currentColor;border-radius:50%;animation:spin 1s linear infinite;margin-left:8px}.forgot-password-link{text-align:right;margin-bottom:20px}.link-button{background:none;border:none;color:#dc2626;font-size:14px;font-weight:500;cursor:pointer;padding:0;text-decoration:none;transition:color .15s ease}.link-button:hover:not(:disabled){color:#fff;text-decoration:underline}.link-button:disabled{color:#9ca3af;cursor:not-allowed}.honeypot{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}.back-button{width:100%;padding:12px 24px;background-color:#fff;color:#374151;border:1px solid #d1d5db;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .15s ease;margin-top:12px}.back-button:hover:not(:disabled){background-color:#f9fafb;border-color:#9ca3af}.back-button:disabled{background-color:#f9fafb;color:#9ca3af;cursor:not-allowed}.login-footer{text-align:center;padding-top:20px;border-top:1px solid #e5e7eb}.login-footer p{color:#6b7280;font-size:13px;margin:0;line-height:1.5}@media(max-width:480px){.login-container{padding:16px}.login-card{padding:32px 24px}.login-logo-container{flex-direction:column;gap:8px}.login-header h1{font-size:20px}.login-header h2{font-size:18px}}.login-button:disabled:not(:hover){animation:pulse 2s infinite}.form-hint{display:block;margin-top:6px;font-size:13px;color:#6b7280;line-height:1.4}.password-requirements{margin-top:12px;padding:12px;background-color:#f9fafb;border-radius:6px;border:1px solid #e5e7eb}.password-input-wrapper{position:relative;display:flex;align-items:center}.password-input-wrapper input{flex:1;padding-right:45px}.password-toggle{position:absolute;right:12px;background:none;border:none;cursor:pointer;padding:4px 8px;font-size:18px;line-height:1;color:#6b7280;transition:color .2s ease;display:flex;align-items:center;justify-content:center}.password-toggle:hover:not(:disabled){color:#374151}.password-toggle:disabled{cursor:not-allowed;opacity:.5}.password-toggle:focus{outline:none}.requirement-title{font-size:13px;font-weight:600;color:#374151;margin-bottom:8px}.requirement-item{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:13px;color:#dc2626;transition:color .2s ease}.requirement-item.met{color:#16a34a}.requirement-icon{font-weight:700;font-size:14px;width:16px;display:inline-block;text-align:center}.requirement-item.met .requirement-icon{color:#16a34a}.requirement-item:not(.met) .requirement-icon{color:#dc2626}.honeypot-field{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}.login-divider{display:flex;align-items:center;margin:24px 0;text-align:center}.login-divider:before,.login-divider:after{content:"";flex:1;border-bottom:1px solid #e0e0e0}.login-divider span{padding:0 16px;color:#666;font-size:14px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.google-signin-container{width:100%;display:flex;justify-content:center;margin-top:8px;margin-bottom:8px}.google-signin-loading{width:100%;padding:12px;background:#f8f9fa;border:1px solid #e0e0e0;border-radius:4px;display:flex;align-items:center;justify-content:center;gap:12px;color:#666;font-size:14px}.google-signin-loading:before{content:"";width:20px;height:20px;border:2px solid #e0e0e0;border-top-color:#4285f4;border-radius:50%;animation:spin .8s linear infinite}.club-selection-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f5f7fa,#c3cfe2);padding:20px}.club-selection-card{background:#fff;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;padding:48px;width:100%;max-width:520px;border:1px solid #e5e7eb}.club-selection-header{text-align:center;margin-bottom:32px}.club-logo-container{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:24px}.club-logo{width:48px;height:48px;flex-shrink:0}.club-selection-header h1{color:#dc2626;font-size:24px;font-weight:600;margin:0;letter-spacing:-.025em}.club-selection-header h2{color:#111827;font-size:20px;font-weight:600;margin:0 0 8px;letter-spacing:-.025em}.club-selection-header p{color:#6b7280;font-size:14px;margin:0;line-height:1.5}.club-selection-content{margin-bottom:24px}.error-message{background-color:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:12px 16px;margin-bottom:20px}.error-message p{margin:0;color:#dc2626;font-size:14px;font-weight:500}.clubs-list{display:flex;flex-direction:column;gap:12px}.club-button{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border:2px solid #e5e7eb;border-radius:8px;background-color:#fff;cursor:pointer;transition:all .15s ease;text-align:left;width:100%}.club-button:hover:not(:disabled){border-color:#dc2626;background-color:#fef2f2;transform:translateY(-1px);box-shadow:0 4px 12px #dc262626}.club-button:active:not(:disabled){transform:translateY(0)}.club-button:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.club-info{flex:1}.club-info h3{color:#111827;font-size:16px;font-weight:600;margin:0 0 4px;letter-spacing:-.025em}.club-description{color:#6b7280;font-size:14px;margin:0;line-height:1.4}.club-arrow{color:#dc2626;font-size:18px;font-weight:600;flex-shrink:0;margin-left:16px}.no-access-message{text-align:center;padding:40px 20px;background-color:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin:16px 0}.security-icon{font-size:48px;margin-bottom:16px;opacity:.7}.no-access-message h3{color:#dc2626;font-size:18px;font-weight:600;margin:0 0 12px;letter-spacing:-.025em}.no-access-message p:first-of-type{font-size:16px;font-weight:500;margin-bottom:8px;color:#991b1b}.no-access-message p:last-of-type{font-size:14px;margin:0;color:#dc2626}.no-clubs-message{text-align:center;padding:32px 20px;color:#6b7280}.no-clubs-message p:first-child{font-size:16px;font-weight:500;margin-bottom:8px;color:#374151}.no-clubs-message p:last-child{font-size:14px;margin:0}.club-selection-footer{text-align:center;padding-top:20px;border-top:1px solid #e5e7eb}.back-to-login-button{padding:10px 20px;background-color:transparent;color:#6b7280;border:1px solid #d1d5db;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease}.back-to-login-button:hover:not(:disabled){background-color:#f3f4f6;color:#374151;border-color:#9ca3af}.back-to-login-button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:480px){.club-selection-container{padding:16px}.club-selection-card{padding:32px 24px}.club-logo-container{flex-direction:column;gap:8px}.club-selection-header h1{font-size:20px}.club-selection-header h2{font-size:18px}.club-button{padding:14px 16px}.club-info h3{font-size:15px}.club-description{font-size:13px}}.club-button:disabled{animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:.6}50%{opacity:.4}}.confirm-email-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.confirm-email-card{background:#fff;border-radius:12px;padding:3rem 2.5rem;max-width:480px;width:100%;text-align:center;box-shadow:0 20px 60px #0000004d}.confirm-email-icon{width:80px;height:80px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem;font-size:3rem;font-weight:700}.confirm-email-icon.loading{background-color:#f0f0f0}.confirm-email-icon.success{background-color:#d1fae5;color:#065f46}.confirm-email-icon.error{background-color:#fee2e2;color:#991b1b}.spinner{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #667eea;border-radius:50%;animation:spin 1s linear infinite}.confirm-email-card h1{font-size:1.75rem;margin:0 0 1rem;color:#1a1a1a;font-weight:600}.confirm-email-card p{font-size:1rem;color:#666;line-height:1.6;margin:0 0 2rem}.success-message{color:#065f46}.error-message{color:#991b1b}.login-button{padding:.75rem 2rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;width:100%}.login-button:hover{transform:translateY(-2px);box-shadow:0 8px 20px #667eea66}.login-button.secondary{background:#6c757d}.login-button.secondary:hover{background:#5a6268;box-shadow:0 8px 20px #6c757d66}@media(max-width:640px){.confirm-email-card{padding:2rem 1.5rem}.confirm-email-card h1{font-size:1.5rem}.confirm-email-icon{width:64px;height:64px;font-size:2.5rem}.spinner{width:32px;height:32px}}.athletes-list-container{flex:1;display:flex;flex-direction:column;overflow:hidden}.athletes-list{background-color:#fff;border-radius:6px;border:1px solid #e5e5e5;overflow:hidden;flex:1;display:flex;flex-direction:column}.athletes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;padding:16px;overflow-y:auto;max-height:calc(100vh - 380px)}.athlete-card{background-color:#fafafa;border:1px solid #e5e5e5;border-radius:6px;padding:16px;transition:all .15s ease;position:relative;display:flex;flex-direction:column;min-height:200px;cursor:pointer}.athlete-card:hover{border-color:#d1d5db;background-color:#f9fafb;transform:translateY(-1px);box-shadow:0 4px 8px #0000001a}.athlete-card.inactive{opacity:.6;border-left:3px solid #dc2626}.athlete-content-row{display:flex;gap:12px;align-items:flex-start;margin-top:12px}.athlete-portrait{width:80px;height:80px;border-radius:8px;overflow:visible;border:2px solid #e5e7eb;background:#fff;flex-shrink:0;position:relative;cursor:pointer}.athlete-portrait img{width:100%;height:100%;object-fit:cover;object-position:center top;border-radius:6px;transition:all .3s ease}.athlete-portrait:hover img{transform:scale(3);z-index:1000;box-shadow:0 20px 60px #0006;border-radius:8px;position:relative}.athlete-details-column{flex:1;display:flex;flex-direction:column;gap:4px}.athlete-info{margin-bottom:12px;flex-grow:1;flex-direction:column}.athlete-name{color:#111827;font-size:16px;font-weight:600;margin:0 0 6px;letter-spacing:-.025em;display:flex;align-items:center;gap:8px}.athlete-club-badge{display:inline-block;font-size:10px;font-weight:600;color:#4b5563;background:#f3f4f6;border:1px solid #d1d5db;border-radius:4px;padding:1px 6px;margin-left:6px;vertical-align:middle;letter-spacing:.3px}.athlete-details{color:#6b7280;font-size:13px;margin:3px 0}.athlete-status.inactive{color:#dc2626;font-size:12px;font-weight:500;margin:6px 0 0;text-transform:uppercase}.athlete-tags{display:flex;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid #e9ecef;flex-wrap:wrap;margin-bottom:0}.athlete-tag{display:inline-flex;align-items:center;padding:4px 8px;border-radius:12px;font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.025em}.athlete-fina-points{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding-top:12px;border-top:1px solid #e5e7eb;gap:8px;flex-shrink:0}.athlete-actions{position:absolute;top:12px;right:12px;display:flex;gap:6px}.view-toggle-container{display:flex;align-items:center;gap:12px}.view-buttons{display:flex;gap:4px;background-color:#f3f4f6;border-radius:6px;padding:2px}.view-btn{padding:6px 12px;border:none;background-color:transparent;border-radius:4px;cursor:pointer;font-size:13px;color:#6b7280;transition:all .15s ease;font-weight:500}.order-by-container{display:flex;align-items:center;gap:6px}.order-by-label{font-size:13px;color:#6b7280;white-space:nowrap;font-weight:500}.order-by-select{padding:6px 10px;border:1px solid #d1d5db;border-radius:4px;font-size:13px;color:#374151;background-color:#fff;cursor:pointer;transition:all .15s ease}.order-by-select:hover{border-color:#9ca3af}.order-by-select:focus{outline:none;border-color:#dc2626;box-shadow:0 0 0 1px #dc2626}.order-direction-btn{padding:6px 10px;border:1px solid #d1d5db;border-radius:4px;background-color:#fff;color:#374151;cursor:pointer;font-size:16px;transition:all .15s ease;display:flex;align-items:center;justify-content:center;min-width:36px}.order-direction-btn:hover{background-color:#f3f4f6;border-color:#9ca3af}.order-direction-btn:active{background-color:#e5e7eb}@media(max-width:768px){.athletes-grid{grid-template-columns:1fr;gap:12px;padding:12px}.athlete-actions{position:static;justify-content:flex-end;margin-top:12px}.pagination-controls{flex-direction:column;gap:12px;align-items:stretch}.pagination-section{justify-content:center!important}.pagination-left,.pagination-center,.pagination-right{flex:none;width:100%}.pagination-info-inline{text-align:center;justify-content:center}.pagination-buttons,.records-per-page{justify-content:center}.pagination-button{min-width:80px}}.athletes-table-container{background-color:#fff;border-radius:6px;border:1px solid #e5e5e5;overflow:hidden;display:flex;flex-direction:column;max-height:calc(100vh - 280px)}.athletes-table{width:100%;border-collapse:collapse;font-size:14px;display:block}.athletes-table thead{display:table;width:100%;table-layout:fixed}.athletes-table tbody{display:block;overflow-y:auto;max-height:calc(100vh - 380px)}.athletes-table tbody tr{display:table;width:100%;table-layout:fixed}.athletes-table th{background-color:#f9fafb;color:#374151;font-weight:600;text-align:left;padding:12px 16px;border-bottom:1px solid #e5e5e5;font-size:13px;text-transform:uppercase;letter-spacing:.05em}.athletes-table th.sortable-header{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .15s ease;position:relative}.athletes-table th.sortable-header:hover{background-color:#f3f4f6;color:#111827}.athletes-table th.sortable-header:active{background-color:#e5e7eb}.athletes-table td{padding:12px 16px;border-bottom:1px solid #f3f4f6;color:#374151;vertical-align:middle}.athletes-table tr:hover{background-color:#f9fafb}.athletes-table tr.clickable-row:hover{background-color:#f0f9ff;transition:background-color .15s ease}.athletes-table tr.inactive-row{opacity:.6}.athletes-table tr.inactive-row td{color:#6b7280}.athlete-name-cell{min-width:180px}.athlete-name-cell span{display:inline-flex;align-items:center;gap:8px}@media(max-width:768px){.athletes-table-container{overflow-x:auto}.athletes-table{min-width:600px}.athletes-table th,.athletes-table td{padding:8px 12px}.view-mode-toggle{order:2}.sort-controls{order:1;justify-content:center}.export-controls{order:0;margin-bottom:8px}.pagination-controls{flex-wrap:wrap}}.modal-overlay{position:fixed;inset:0;background-color:#0006;display:flex;justify-content:center;align-items:center;z-index:10100;padding:20px;overflow:hidden}.modal-content{background:#fff;border-radius:8px;border:1px solid #e5e5e5;max-width:1160px;width:100%;max-height:90vh;overflow-y:auto;position:relative;z-index:10101}.modal-content.athlete-form-modal{max-width:1440px!important;max-height:95vh;min-height:600px;height:85vh;display:flex;flex-direction:column;overflow:hidden;z-index:10101}.athlete-form{display:flex;flex-direction:column;flex:1;padding:20px;overflow-y:auto;min-height:0}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}.form-group label{font-weight:500;color:#374151;margin-bottom:4px;font-size:14px}.form-group input,.form-group select{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;transition:border-color .15s ease;background-color:#fff;color:#374151}@media(max-width:768px){.athlete-form-modal{max-width:95vw;margin:10px}.tab-button{min-width:80px;padding:10px 12px;font-size:13px}.tab-icon{font-size:14px}.tab-content{padding:20px}}@media(max-width:640px){.modal-overlay{padding:16px}.modal-content{max-height:95vh}.athlete-form-modal{max-width:100%;margin:0}.modal-header{padding:16px 20px 0;margin-bottom:0}.athlete-form{padding:0 16px 16px}.tab-content{padding:12px 16px}.form-row{grid-template-columns:1fr;gap:10px;margin-bottom:10px}.modal-header h2{font-size:16px}.tab-button{min-width:60px;padding:8px 6px;font-size:12px;gap:4px}.tab-icon{font-size:14px}}.multi-select-dropdown{position:relative;min-width:180px}.dropdown-header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background-color:#fff;border:1px solid #d1d5db;border-radius:6px;cursor:pointer;font-size:14px;color:#374151;transition:all .15s ease;-webkit-user-select:none;user-select:none}.dropdown-header:hover{border-color:#9ca3af;background-color:#f9fafb}.dropdown-header.disabled{background-color:#f3f4f6;color:#9ca3af;cursor:not-allowed}.dropdown-header.disabled:hover{border-color:#d1d5db;background-color:#f3f4f6}.dropdown-label{font-weight:500}.dropdown-arrow{font-size:10px;color:#6b7280;transition:transform .15s ease}.dropdown-arrow.open{transform:rotate(180deg)}.dropdown-content{position:absolute;top:100%;left:0;min-width:100%;background-color:#fff;border:1px solid #d1d5db;border-top:none;border-radius:0 0 6px 6px;box-shadow:0 4px 6px -1px #0000001a;z-index:1000;max-height:200px;overflow-y:auto}.dropdown-options{padding:4px 0}.clear-all-button{width:100%;padding:6px 12px;background-color:#f3f4f6;color:#374151;border:none;border-bottom:1px solid #e5e7eb;font-size:12px;cursor:pointer;font-weight:500;transition:background-color .15s ease;text-align:left}.clear-all-button:hover{background-color:#e5e7eb}.dropdown-option{display:flex;align-items:center;padding:6px 12px;cursor:pointer;font-size:13px;color:#374151;transition:background-color .15s ease;-webkit-user-select:none;user-select:none}.dropdown-option:hover:not(.disabled){background-color:#f3f4f6}.dropdown-option.selected{background-color:#fef2f2;color:#dc2626}.dropdown-option.selected:hover{background-color:#fee2e2}.dropdown-option.disabled{color:#9ca3af;cursor:default;font-style:italic}.option-checkbox{width:16px;height:16px;display:flex;align-items:center;justify-content:center;margin-right:8px;border:1px solid #d1d5db;border-radius:3px;font-size:10px;font-weight:700;transition:all .15s ease}.dropdown-option.selected .option-checkbox{background-color:#dc2626;border-color:#dc2626;color:#fff}.option-text{flex:1}.search-container{display:flex;align-items:center;gap:12px}.switch-container{display:flex;align-items:center}.switch-label{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.switch-text{font-size:14px;color:#374151;font-weight:500}.switch-wrapper{position:relative;display:inline-block;width:44px;height:24px}.switch-checkbox{opacity:0;width:0;height:0}.switch-slider{position:absolute;cursor:pointer;inset:0;background-color:#d1d5db;transition:.3s;border-radius:24px}.switch-slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:.3s;border-radius:50%}.switch-checkbox:checked+.switch-slider{background-color:#dc2626}.switch-checkbox:checked+.switch-slider:before{transform:translate(20px)}.switch-checkbox:focus+.switch-slider{box-shadow:0 0 0 2px #dc262633}.search-box{position:relative;flex:1}.search-input{width:280px;padding:8px 36px 8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;outline:none;transition:border-color .15s ease;background-color:#fff;color:#374151}.clear-search-button{position:absolute;right:8px;background:none;border:none;color:#9ca3af;cursor:pointer;padding:4px;border-radius:4px;width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:12px;transition:all .15s ease}.clear-search-button:hover{background-color:#f3f4f6;color:#6b7280}@media(max-width:768px){.search-container{flex-direction:column;align-items:stretch;gap:12px}.search-box,.search-input{width:100%}}.athletes-container{display:flex;flex-direction:column;height:100vh;overflow:hidden;padding:32px}.athletes-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding:0 0 16px;border-bottom:1px solid #e5e5e5;flex-shrink:0;background:#fff;position:relative}.athletes-header h2{color:#111827;margin:0;font-size:20px;font-weight:600;letter-spacing:-.025em}.athletes-stats{display:flex;gap:16px;margin-bottom:24px;flex-shrink:0}.athletes-content-wrapper{flex:1;min-height:0;padding:0}.filters-panel{position:absolute;top:calc(100% + 8px);left:0;background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:20px;box-shadow:0 10px 25px #0000001a,0 4px 10px #0000000d;z-index:10000;min-width:320px;animation:slideDown .2s ease-out}.age-groups-ribbon{display:flex;align-items:center;gap:12px;padding:16px 20px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:10px;box-shadow:0 4px 6px #0000001a;margin-bottom:20px;flex-shrink:0}.age-groups-label{font-weight:600;color:#fff;font-size:14px;white-space:nowrap}.birthday-banner{position:relative;margin-bottom:20px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 1px 3px #0000001a;flex-shrink:0;z-index:50}.birthday-banner-header{display:flex;align-items:center;gap:8px;padding:0 20px;background:#f9fafb;border-bottom:1px solid #e5e7eb;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .15s ease;border-radius:8px}.birthday-banner-header:hover{background:#f3f4f6}.banner-icon{font-size:20px}.banner-title{font-size:14px;font-weight:600;color:#374151;flex:1}.banner-toggle{font-size:12px;color:#6b7280;transition:transform .2s ease}.birthday-scroll-container{position:absolute;top:100%;left:0;right:0;display:flex;flex-wrap:wrap;gap:16px;padding:16px 20px;background:#fff;border:1px solid #e5e7eb;border-top:none;border-radius:0 0 8px 8px;box-shadow:0 4px 12px #00000026;z-index:100;max-height:400px;overflow-y:auto}.birthday-scroll-container::-webkit-scrollbar{height:6px}.birthday-scroll-container::-webkit-scrollbar-track{background:#fbbf241a;border-radius:3px}.birthday-scroll-container::-webkit-scrollbar-thumb{background:#f59e0b;border-radius:3px}.birthday-scroll-container::-webkit-scrollbar-thumb:hover{background:#d97706}.birthday-card{display:flex;flex-direction:row;gap:12px;width:calc(25% - 12px);min-width:250px;padding:12px 16px;background:#fff;border:2px solid #fde68a;border-radius:8px;transition:all .2s ease;cursor:pointer;flex-shrink:0}.birthday-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #f59e0b4d;border-color:#f59e0b}.birthday-card.birthday-today{background:linear-gradient(135deg,#fef3c7,#fde047);border-color:#f59e0b;border-width:3px;animation:birthdayPulse 2s ease-in-out infinite}.birthday-card.birthday-passed{background:#f9fafb;border-color:#d1d5db;opacity:.75}.birthday-card.birthday-passed:hover{opacity:1;transform:translateY(-2px);box-shadow:0 4px 12px #6b728033;border-color:#9ca3af}.birthday-card.birthday-passed .birthday-card-name,.birthday-card.birthday-passed .birthday-card-date{color:#6b7280}.birthday-card.birthday-passed .birthday-card-icon{opacity:.6}@keyframes birthdayPulse{0%,to{box-shadow:0 0 #f59e0b66}50%{box-shadow:0 0 0 8px #f59e0b00}}.birthday-card-icon{font-size:32px;display:flex;align-items:center;justify-content:center}.birthday-card-content{display:flex;flex-direction:column;gap:4px;flex:1}.birthday-card-name{font-size:14px;font-weight:600;color:#111827}.birthday-card-date{font-size:12px;color:#6b7280;font-weight:500}.birthday-card-age{margin-top:4px}.birthday-badge{display:inline-block;padding:3px 8px;background:#fde68a;color:#92400e;border-radius:4px;font-size:11px;font-weight:600}.birthday-badge-today{display:inline-block;padding:3px 8px;background:#f59e0b;color:#fff;border-radius:4px;font-size:11px;font-weight:600;animation:todayBadgePulse 1.5s ease-in-out infinite}.birthday-badge-passed{display:inline-block;padding:3px 8px;background:#e5e7eb;color:#6b7280;border-radius:4px;font-size:11px;font-weight:600}@keyframes todayBadgePulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@media(max-width:768px){.athletes-container{padding:24px}.athletes-header{flex-direction:column;align-items:flex-start;gap:16px}.header-actions{width:100%;flex-direction:column;align-items:stretch;gap:12px}.search-input{width:100%}.athletes-stats{flex-direction:column;gap:12px}.stat-card{text-align:left}}.header-tabs{width:100%}.header-tabs-container{position:relative;display:flex;align-items:center;background:#f8f9fa;border-bottom:1px solid #e9ecef;border-radius:8px 8px 0 0;overflow:hidden}.header-tabs-nav{display:flex;overflow-x:auto;overflow-y:hidden;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;flex:1}.header-tabs-nav::-webkit-scrollbar{display:none}.tab-button{padding:12px 20px;background:none;border:none;font-size:18px;font-weight:500;color:#6c757d;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;min-width:fit-content;border-bottom:2px solid transparent;flex-shrink:0}.tab-button:hover:not(.active){background:#e9ecef;color:#495057}.tab-button.active{background:#fff;color:#007bff;border-bottom-color:#007bff}.tab-icon,.tab-label{font-size:16px}.scroll-button{background:#f8f9fa;border:none;color:#6c757d;cursor:pointer;font-size:18px;font-weight:700;padding:0;width:32px;height:100%;display:flex;align-items:center;justify-content:center;transition:all .2s ease;border-right:1px solid #e9ecef;flex-shrink:0}.scroll-button:hover:not(.disabled){background:#e9ecef;color:#495057}.scroll-button.disabled{opacity:.4;cursor:not-allowed}.scroll-button.scroll-right{border-right:none;border-left:1px solid #e9ecef}@media(max-width:768px){.tab-button{padding:10px 16px;font-size:13px;gap:4px}.tab-icon,.tab-label{font-size:13px}.scroll-button{width:28px;font-size:16px}}@media(max-width:480px){.tab-button{padding:8px 12px;font-size:12px}.tab-icon,.tab-label{font-size:12px}.scroll-button{width:24px;font-size:14px}}.header-tabs.compact .tab-button{padding:8px 16px;font-size:18px}.header-tabs.compact .tab-icon,.header-tabs.compact .tab-label{font-size:16px}.header-tabs.compact .scroll-button{width:28px;font-size:16px}.header-tabs.full-width .tab-button{flex:1;min-width:0;flex-shrink:1;text-align:center}.header-tabs.full-width .header-tabs-nav{overflow:visible}.header-tabs.full-width .scroll-button{display:none}@media(max-width:400px){.header-tabs.wrap .header-tabs-nav{flex-wrap:wrap;overflow:visible}.header-tabs.wrap .scroll-button{display:none}.header-tabs.wrap .tab-button{min-width:0;flex:1;flex-basis:calc(50% - 2px)}}.athlete-details-page{margin:0 auto;padding:20px 24px;min-height:100vh;background:#fff;max-width:none;overflow:visible}.athlete-details-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;gap:20px}.loading-spinner{width:40px;height:40px;border:3px solid #f3f4f6;border-top:3px solid #0c5aa6;border-radius:50%;animation:spin 1s linear infinite}.athlete-details-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;gap:20px;text-align:center}.error-icon{font-size:48px}.athlete-details-error h2{color:#dc3545;margin:0}.athlete-details-error p{color:#6c757d;margin:0}.athlete-details-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:16px}.nav-left{display:flex;align-items:center;gap:16px}.back-button{background:#f8f9fa;border:1px solid #dee2e6;color:#495057;padding:8px 16px;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s ease;text-decoration:none;display:inline-flex;align-items:center;gap:8px}.back-button:hover{background:#e9ecef;border-color:#ced4da;color:#343a40}.athlete-navigation{display:flex;align-items:center;gap:12px;padding:4px 12px;background:#f8f9fa;border:1px solid #dee2e6;border-radius:6px}.nav-arrow-button{background:#fff;border:1px solid #dee2e6;color:#495057;padding:6px 12px;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;transition:all .15s ease;display:inline-flex;align-items:center;justify-content:center;min-width:36px}.nav-arrow-button:hover:not(:disabled){background:#0c5aa6;border-color:#0c5aa6;color:#fff}.nav-arrow-button:disabled{background:#f8f9fa;border-color:#e9ecef;color:#adb5bd;cursor:not-allowed;opacity:.6}.athlete-position{font-size:13px;color:#6c757d;font-weight:500;min-width:60px;text-align:center}.athlete-header{background:#fff;color:#212529;border-radius:12px;padding:16px 20px;margin-bottom:24px;box-shadow:0 8px 25px #00000026;border:1px solid #e9ecef}.athlete-header-card{margin-bottom:8px;display:flex;gap:20px;align-items:flex-start}.athlete-title-section{display:flex;flex-direction:column;gap:8px;flex:1}.athlete-header-portrait{width:150px;height:150px;border-radius:8px;overflow:visible;border:2px solid #e5e7eb;background:#fff;flex-shrink:0;position:relative;cursor:pointer}.athlete-header-portrait img{width:100%;height:100%;object-fit:cover;object-position:center top;border-radius:6px;transition:all .3s ease;transform-origin:top right}.athlete-header-portrait:hover img{transform:scale(3);z-index:1000;box-shadow:0 20px 60px #0006;border-radius:8px;position:relative}.athlete-name-row{display:flex;flex-wrap:wrap;align-items:center;gap:16px}.athlete-name-row h1{font-size:28px;font-weight:700;margin:0;line-height:1.2;color:#212529}.athlete-info-badges{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.athlete-age{background:#e3f2fd;color:#0d47a1;padding:6px 12px;border-radius:16px;font-size:14px;font-weight:600}.athlete-birth-year{background:#f3e5f5;color:#6a1b9a;padding:6px 12px;border-radius:16px;font-size:14px;font-weight:600}.athlete-age-group{background:#fff3e0;color:#e65100;padding:6px 12px;border-radius:16px;font-size:14px;font-weight:600}.athlete-training-group{background:#e8f5e9;color:#2e7d32;padding:6px 12px;border-radius:16px;font-size:14px;font-weight:600}.athlete-club-row{display:flex;align-items:center;gap:12px;margin-left:2px}.club-badge{background:#28a745;color:#fff;padding:4px 8px;border-radius:12px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.club-name{font-size:14px;color:#6b7280;font-weight:500}.athlete-fina-points{display:flex;gap:16px;margin-top:12px;padding-top:12px;border-top:1px solid #e9ecef;justify-content:flex-start;width:fit-content}.fina-point-item{display:flex;flex-direction:column;gap:4px;white-space:nowrap}.fina-label{font-size:11px;color:#6b7280;text-transform:uppercase;letter-spacing:.5px;font-weight:600}.fina-value{font-size:16px;color:#1f2937;font-weight:700}.fina-value-club{font-size:11px;color:#9ca3af;font-weight:500;margin-left:4px}.athlete-tabs-container{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;border:1px solid #e9ecef;overflow:visible}.athlete-tabs-container .header-tabs.minimal-width .header-tabs-nav{justify-content:flex-start}.athlete-tabs-container .header-tabs.minimal-width .tab-button{flex:0 0 auto;min-width:fit-content;width:auto}.tab-content{padding:24px;min-height:400px}.athlete-home-content{display:flex;flex-direction:column;gap:24px}.athlete-overview{margin-bottom:24px}.stat-inline{display:flex;align-items:center;gap:6px;padding:4px 8px;border:1px solid #dee2e6;border-radius:3px}.stat-inline .stat-icon{font-size:16px}.stat-inline .stat-text{font-size:14px;font-weight:500;color:inherit}.athlete-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}.info-section{background:#f8f9fa;border-radius:8px;padding:20px;border:1px solid #e9ecef}.info-section h3{margin:0 0 16px;color:#343a40;font-size:18px;font-weight:600;border-bottom:2px solid #dee2e6;padding-bottom:8px}.info-details{display:flex;flex-direction:column;gap:12px}.info-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid #e9ecef}.info-item:last-child{border-bottom:none}.info-label{font-weight:600;color:#495057;flex-shrink:0;margin-right:16px}.info-value{color:#212529;text-align:right;flex:1}.coming-soon{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;text-align:center;gap:16px;background:#f8f9fa;border-radius:12px;padding:40px;border:2px dashed #dee2e6}.coming-soon-icon{font-size:48px;margin-bottom:8px}.coming-soon h3{color:#343a40;margin:0 0 8px;font-size:24px;font-weight:600}.coming-soon p{color:#6c757d;margin:0;font-size:16px;line-height:1.5}.coming-soon p:last-child{font-style:italic;font-size:14px;color:#868e96}.athlete-rankings-content{padding:24px}.rankings-section h3{color:#111827;font-size:20px;font-weight:600;margin-bottom:24px}.rankings-instruction{color:#6b7280;font-size:14px;margin-bottom:16px;font-style:italic}.rankings-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:24px}.ranking-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:24px;box-shadow:0 1px 3px #0000001a;transition:all .15s ease}.ranking-card.clickable:hover{box-shadow:0 4px 6px #00000026;transform:translateY(-2px)}.ranking-card.selected{border-color:#059669;border-width:2px;box-shadow:0 0 0 3px #0596691a}.ranking-card-header{border-bottom:2px solid #f3f4f6;padding-bottom:16px;margin-bottom:16px}.ranking-card-header h4{color:#059669;font-size:18px;font-weight:700;margin:0 0 4px}.ranking-card-header .club-name{display:block;color:#374151;font-size:14px;font-weight:500;margin-bottom:4px}.ranking-card-header .region-name{display:block;color:#6b7280;font-size:13px}.ranking-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px;padding:16px;background:#f9fafb;border-radius:8px}.ranking-stats .stat-item{display:flex;flex-direction:column;align-items:center;gap:4px}.ranking-stats .stat-label{font-size:12px;color:#6b7280;text-transform:uppercase;letter-spacing:.5px;font-weight:500}.ranking-stats .stat-value{font-size:20px;color:#111827;font-weight:700}.ranking-positions{margin-bottom:16px}.ranking-positions h5{color:#374151;font-size:14px;font-weight:600;margin:0 0 12px;text-transform:uppercase;letter-spacing:.5px}.position-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px}.position-item{display:flex;flex-direction:column;gap:4px;padding:12px;background:#f9fafb;border-radius:8px;border-left:4px solid #d1d5db}.position-item .position-label{font-size:12px;color:#6b7280;font-weight:500;word-wrap:break-word;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;line-height:1.3}.position-item .position-value{font-size:24px;color:#111827;font-weight:700}.position-item .position-value.position-gold{color:#fbbf24}.position-item .position-value.position-silver{color:#9ca3af}.position-item .position-value.position-bronze{color:#cd7f32}.position-item .position-sublabel{font-size:11px;color:#9ca3af}.ranking-metadata{display:flex;justify-content:space-between;align-items:center;padding-top:16px;border-top:1px solid #f3f4f6;font-size:12px;color:#6b7280}.loading-state,.error-state{display:flex;align-items:center;justify-content:center;min-height:300px;color:#6b7280;font-size:16px}.error-state{color:#dc2626}@media(max-width:768px){.athlete-details-page{padding:16px}.athlete-header{padding:12px 16px}.athlete-name-row{gap:12px}.athlete-name-row h1{font-size:24px}.athlete-info-badges{gap:6px}.athlete-age,.athlete-birth-year,.athlete-age-group,.athlete-training-group{font-size:12px;padding:4px 8px}.athlete-club-row{gap:8px}.tab-content{padding:16px}.athlete-info-grid{grid-template-columns:1fr;gap:16px}.info-section{padding:16px}.overview-stats-inline{gap:8px}.stat-inline{padding:3px 6px}.stat-inline .stat-text{font-size:12px}.coming-soon{padding:24px;min-height:250px}.coming-soon-icon{font-size:36px}.coming-soon h3{font-size:20px}.coming-soon p{font-size:14px}.rankings-cards{grid-template-columns:1fr}.ranking-stats{grid-template-columns:repeat(2,1fr)}.ranking-metadata{flex-direction:column;gap:8px;align-items:flex-start}}@media(max-width:480px){.athlete-details-nav{flex-direction:column;align-items:stretch;gap:12px}.nav-actions,.back-button,.edit-button-primary{justify-content:center}.athlete-name-row{flex-direction:column;align-items:flex-start;gap:8px}.athlete-name-row h1{font-size:20px}.athlete-club-row{margin-left:0}}.athlete-presences-content{padding:0 20px 20px}.presences-filters{display:flex;align-items:center;gap:16px;margin-bottom:16px;padding:10px 14px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 1px 3px #0000000d;flex-wrap:wrap}.presences-date-filters{display:flex;align-items:center;gap:10px}.presences-date-filters .filter-group{display:flex;align-items:center;gap:4px}.presences-date-filters .filter-group label{font-size:12px;color:#6b7280;font-weight:500}.presences-date-filters .filter-input{padding:4px 8px;border:1px solid #d1d5db;border-radius:6px;font-size:12px;color:#374151;background:#f9fafb;outline:none}.presences-date-filters .filter-input:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f626}.presences-quick-ranges{display:flex;gap:4px}.quick-range-btn{padding:3px 8px;font-size:11px;font-weight:600;border:1px solid #d1d5db;border-radius:4px;background:#f9fafb;color:#4b5563;cursor:pointer;transition:all .15s}.quick-range-btn:hover{background:#3b82f6;color:#fff;border-color:#3b82f6}.presences-summary{display:flex;align-items:center;gap:12px;margin-left:auto;font-size:13px}.presences-total{font-weight:600;color:#1f2937}.presences-avg{color:#6b7280;font-size:12px}.presences-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:40px 20px;font-size:14px;color:#6b7280}.presences-overview-chart{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:16px 8px 8px;margin-bottom:12px;box-shadow:0 1px 3px #0000000a}.presences-weeks{background:#fff;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000000a}.presences-table-toolbar{display:flex;justify-content:flex-end;padding:5px 10px;background:#f8fafc;border-bottom:1px solid #e5e7eb}.presences-collapse-btn{padding:2px 10px;font-size:11px;font-weight:500;color:#6b7280;background:transparent;border:1px solid #d1d5db;border-radius:4px;cursor:pointer;transition:all .15s}.presences-collapse-btn:hover{background:#e5e7eb;color:#374151}.presences-toolbar-spacer{flex:1}.presences-export-btn{padding:2px 10px;font-size:11px;font-weight:500;color:#6b7280;background:transparent;border:1px solid #d1d5db;border-radius:4px;cursor:pointer;transition:all .15s}.presences-export-btn:hover{background:#3b82f6;color:#fff;border-color:#3b82f6}.presences-week-row{background:#f0f1f3;cursor:pointer;-webkit-user-select:none;user-select:none}.presences-week-row:hover{background:#e8e9ec}.week-toggle{font-size:9px;margin-right:6px;color:#9ca3af}.presences-week-row td{padding:6px 10px!important;font-size:11px;color:#6b7280;font-weight:600;border-bottom:1px solid #d1d5db!important;border-top:1px solid #d1d5db}.presences-week-row .week-range{font-size:12px;font-weight:700;color:#1f2937;margin-right:10px}.presences-week-row .week-total-count{font-size:10px;color:#fff;font-weight:600;background:#6b7280;padding:1px 7px;border-radius:10px;margin-left:6px;display:inline-block;vertical-align:middle;line-height:16px}.presences-table{width:100%;border-collapse:collapse;font-size:12px}.presences-table thead th{padding:4px 10px;text-align:left;font-size:10px;font-weight:600;color:#fff;background:#374151;text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid #f3f4f6;white-space:nowrap}.presences-table tbody tr{border-bottom:1px solid #f3f4f6;transition:background .1s}.presences-table tbody tr:last-child{border-bottom:none}.presences-table tbody tr:hover{background:#f8fafc}.presences-table td{padding:5px 10px;vertical-align:middle;color:#374151}.presences-table .col-day{width:100px;font-weight:500;white-space:nowrap;vertical-align:middle}.presences-table td.col-day{color:#6b7280}.presences-empty-day td,.presences-empty-day td.col-day{color:#d1d5db}.presences-meet-row{background:#eff6ff}.meet-badge{display:inline-block;font-size:10px;font-weight:600;color:#2563eb;background:#dbeafe;padding:1px 6px;border-radius:4px;margin-right:6px;vertical-align:middle}.meet-stat{display:inline-block;font-size:11px;color:#4b5563;background:#f3f4f6;padding:1px 6px;border-radius:4px;margin-right:4px;font-weight:500}.meet-stat.meet-pb{color:#15803d;background:#dcfce7;font-weight:600}.meet-stat.meet-sb{color:#b45309;background:#fef3c7;font-weight:600}.presences-meet-row .session-name{color:#1e40af;font-weight:600}.presences-table .col-title{min-width:140px}.session-time-label{font-size:10px;color:#9ca3af;font-weight:500;margin-right:6px}.presences-table .col-title .session-name{font-weight:600;color:#1f2937;margin-right:6px}.session-training-badge{font-size:10px;color:#7c3aed;font-weight:500;background:#ede9fe;padding:1px 5px;border-radius:3px;white-space:nowrap}.presences-table .col-keywords{min-width:100px}.session-keyword{font-size:10px;padding:1px 5px;border-radius:3px;background:#f0f9ff;color:#0369a1;border:1px solid #bae6fd;margin-right:3px;white-space:nowrap;display:inline-block;margin-bottom:1px}.presences-table .col-distance,.presences-table .col-time{width:90px;white-space:nowrap;text-align:right}.presences-table .col-recovery{width:80px;white-space:nowrap;text-align:right}.presences-table td.col-recovery{color:#6b7280;font-size:.85em}.presences-table .col-local{width:110px;white-space:nowrap}.presences-table td.col-local{color:#6b7280}@media(max-width:640px){.presences-filters{flex-direction:column;align-items:flex-start;gap:10px}.presences-summary{margin-left:0}.presences-week-header{flex-direction:column;align-items:flex-start;gap:4px}.presences-table{font-size:11px}.presences-table .col-local{display:none}}.athlete-meets-content{padding:0 20px 20px}.meets-overview-content{min-height:200px}.overview-table-container{overflow-x:auto}.overview-stats-table{width:100%;border-collapse:collapse;font-size:13px;min-width:500px}.overview-stats-table thead{background:#f8fafc}.overview-year-header{padding:10px 14px;text-align:left;font-weight:700;color:#374151;border-bottom:2px solid #e5e7eb;vertical-align:bottom}.overview-group-select{padding:4px 8px;font-size:13px;font-weight:600;color:#374151;background:#f9fafb;border:1px solid #d1d5db;border-radius:4px;cursor:pointer;outline:none}.overview-group-select:hover{border-color:#0c5aa6}.overview-group-select:focus{border-color:#0c5aa6;box-shadow:0 0 0 2px #0c5aa626}.overview-course-header{padding:8px 12px;text-align:center;font-weight:700;font-size:13px;color:#374151;letter-spacing:.5px}.overview-total-header{border-bottom:3px solid #374151!important}.overview-course-divider{border-left:2px solid #e5e7eb}.overview-sub-header{padding:6px 10px;text-align:center;font-weight:500;font-size:11px;color:#9ca3af;text-transform:uppercase;letter-spacing:.3px;border-bottom:1px solid #e5e7eb}.overview-year-cell{padding:10px 14px;font-weight:600;color:#374151;border-bottom:1px solid #f3f4f6;white-space:nowrap}.overview-stat-cell{padding:8px 10px;text-align:center;color:#6b7280;border-bottom:1px solid #f3f4f6;font-variant-numeric:tabular-nums}.overview-pb-cell{color:#d97706;font-weight:600}.overview-sb-cell{color:#2563eb;font-weight:600}.overview-total-cell{font-weight:700;color:#374151;background:#f9fafb}.overview-pct-cell{color:#7c3aed;font-weight:600;font-size:12px}.overview-pbevpct-cell{color:#059669;font-weight:700;font-size:12px;background:#05966914}.overview-totals-row{border-top:2px solid #e5e7eb}.overview-totals-row .overview-year-cell{font-weight:700;color:#111827}.overview-totals-row .overview-stat-cell{font-weight:700}.overview-stats-table tbody tr:hover{background:#f9fafb}.loading-message,.error-message,.no-data-message{text-align:center;padding:40px 20px;font-size:16px;color:#6b7280}.meets-filters{display:flex;gap:16px;margin-bottom:20px;padding:16px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 1px 3px #0000000d}.filter-group{display:flex;align-items:center;gap:8px}.filter-group label{font-size:13px;font-weight:500;color:#374151;white-space:nowrap}.filter-select{padding:6px 12px;font-size:13px;border:1px solid #d1d5db;border-radius:6px;background:#fff;color:#111827;cursor:pointer;transition:border-color .15s;min-width:120px}.filter-select:focus{outline:none;border-color:#0c5aa6;box-shadow:0 0 0 3px #0c5aa61a}.meets-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(450px,1fr));gap:20px}.year-separator{grid-column:1 / -1;margin:32px 0;height:1px;background:linear-gradient(to right,transparent,#d1d5db,transparent)}.year-header{grid-column:1 / -1}.year-header-with-timeline{grid-column:1 / -1;display:flex;align-items:center;gap:24px;margin-bottom:24px;background:linear-gradient(135deg,#f0f4f8,#e8eef4);border:1px solid #d6e0eb;border-radius:10px;padding:12px 18px}.year-title{font-size:20px;font-weight:600;color:#374151;margin:0;padding-bottom:8px;display:inline-flex;align-items:center;gap:8px;flex-shrink:0;min-width:80px}.year-title-clickable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .15s}.year-title-clickable:hover{color:#0c5aa6}.year-toggle-icon{font-size:14px;color:#9ca3af;transition:color .15s}.year-title-clickable:hover .year-toggle-icon{color:#0c5aa6}.year-meet-count{font-size:14px;font-weight:500;color:#9ca3af}.year-timeline-inline{flex:1;padding:0 10px}.year-timeline{grid-column:1 / -1;margin:20px 0 24px;padding:0 10px}.timeline-container{position:relative;width:100%;height:60px;overflow:visible;margin-bottom:16px}.timeline-line{position:absolute;top:30px;left:0;right:0;height:2px;background:#e5e7eb}.timeline-months{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between}.timeline-month{flex:1;text-align:center;position:relative}.timeline-month:before{content:"";position:absolute;left:50%;top:20px;width:1px;height:10px;background:#d1d5db;transform:translate(-50%)}.timeline-month-label{font-size:11px;color:#6b7280;font-weight:500}.timeline-markers{position:absolute;top:0;left:0;right:0;height:100%}.timeline-marker{position:absolute;top:23px;width:14px;height:14px;transform:translate(-50%);cursor:pointer;z-index:2}.timeline-marker-dot{width:14px;height:14px;border-radius:50%;border:2px solid white;box-shadow:0 2px 4px #0003;transition:transform .2s ease}.timeline-marker:hover .timeline-marker-dot{transform:scale(1.3);box-shadow:0 3px 6px #0000004d}.timeline-marker-badges{display:flex;flex-direction:column;align-items:center;gap:1px;margin-top:2px;white-space:nowrap}.timeline-pb-count,.timeline-sb-count{font-size:7px;font-weight:700;line-height:1;padding:1px 3px;border-radius:3px;text-align:center;min-width:10px}.timeline-pb-count{background:#f59e0b;color:#fff}.timeline-sb-count{background:#3b82f6;color:#fff}.meet-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;overflow:visible;box-shadow:0 1px 3px #0000001a;transition:box-shadow .2s;max-width:100%;position:relative}.meet-top-badges{position:absolute;top:8px;right:8px;display:flex;gap:4px;z-index:5;align-items:center}.meet-pb-count,.meet-sb-count{padding:3px 8px;border-radius:6px;font-size:11px;font-weight:700;line-height:1.3;text-align:center;box-shadow:0 2px 4px #00000026;white-space:nowrap}.meet-pb-count{background:#fef3c7;color:#92400e;border:1px solid #fcd34d}.meet-pb-count-current{background:#f59e0b;color:#fff;border:1px solid #d97706;box-shadow:0 2px 6px #f59e0b66}.meet-sb-count{background:#dbeafe;color:#1e40af;border:1px solid #93c5fd}.meet-sb-count-current{background:#3b82f6;color:#fff;border:1px solid #2563eb;box-shadow:0 2px 6px #3b82f666}.meet-date-badge{position:absolute;top:-8px;left:-6px;background:#0c5aa6;color:#fff;border-radius:6px;padding:3px 10px;font-size:11px;font-weight:600;line-height:1.3;text-align:center;box-shadow:0 2px 4px #00000026;z-index:5;white-space:nowrap}.meet-card-lcm .meet-date-badge{background:#0c5aa6}.meet-card-lcm{border-left:2px solid #0c5aa6}.meet-card:hover{box-shadow:0 4px 6px #0000001a}.meet-card-highlighted{box-shadow:0 0 0 3px #0c5aa64d;transform:scale(1.02);transition:all .3s ease;z-index:10;position:relative}.meet-header{background:#f9fafb;padding:10px 12px;border-bottom:1px solid #e5e7eb}.meet-name{font-size:14px;font-weight:600;color:#111827;margin:0 0 3px}.meet-info{display:flex;flex-wrap:wrap;gap:4px;font-size:11px;color:#6b7280}.meet-date,.meet-location,.meet-course{font-size:11px;color:#6b7280}.meet-swims{padding:0;display:flex;flex-direction:column}.swim-table-header{display:grid;grid-template-columns:100px 1fr;gap:12px;padding:6px 12px;background:#f9fafb;border-bottom:2px solid #e5e7eb;font-size:9px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}.header-event{display:flex;align-items:center}.header-details{display:grid;grid-template-columns:70px 60px 50px 1fr 40px;gap:12px;align-items:center}.header-time,.header-diff,.header-points,.header-record{display:flex;align-items:center}.swim-card{background:#fff;border-bottom:1px solid #e5e7eb;padding:6px 12px;display:grid;grid-template-columns:100px 1fr;gap:12px;align-items:center;transition:background-color .15s}.swim-card:hover{background:#f9fafb}.swim-card:last-child{border-bottom:none}.swim-event{font-size:12px;font-weight:600;color:#0c5aa6;margin:0;white-space:nowrap}.swim-details{display:grid;grid-template-columns:70px 60px 50px 1fr 40px;gap:12px;align-items:center}.swim-time,.swim-diff,.swim-points{display:flex;align-items:center}.swim-details .value{font-size:12px;font-weight:600;color:#111827;font-family:Courier New,monospace;white-space:nowrap}.swim-diff.improvement .value{color:#059669}.swim-diff.slower .value{color:#dc2626}.swim-record{display:flex;gap:6px}.swim-club,.header-club{display:flex;align-items:center;justify-content:flex-end}.swim-club .club-code{font-size:10px;font-weight:600;color:#6b7280}.pb-badge,.sb-badge{display:inline-block;padding:2px 5px;border-radius:2px;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.3px}.pb-badge{background:#fef3c7;color:#92400e;border:1px solid #fcd34d}.pb-badge-current{background:#f59e0b;color:#fff;border:1px solid #d97706;font-size:10px;padding:2px 7px;border-radius:4px;box-shadow:0 1px 4px #f59e0b66}.sb-badge{background:#dbeafe;color:#1e40af;border:1px solid #93c5fd}.sb-badge-current{background:#3b82f6;color:#fff;border:1px solid #2563eb;font-size:10px;padding:2px 7px;border-radius:4px;box-shadow:0 1px 4px #3b82f666}@media(max-width:768px){.meets-grid{grid-template-columns:1fr}.swim-table-header{display:none}.swim-card{grid-template-columns:1fr;gap:8px;padding:12px 16px}.swim-event{white-space:normal}.swim-details{grid-template-columns:repeat(2,1fr);gap:12px}.swim-time:before{content:"TIME: ";font-size:10px;color:#6b7280;font-weight:500;margin-right:4px}.swim-diff:before{content:"DIFF: ";font-size:10px;color:#6b7280;font-weight:500;margin-right:4px}.swim-points:before{content:"POINTS: ";font-size:10px;color:#6b7280;font-weight:500;margin-right:4px}.swim-record{grid-column:1 / -1}}.athlete-times-content{padding:20px}.times-sub-tabs,.meets-sub-tabs{display:flex;gap:8px;margin-bottom:20px;border-bottom:2px solid #e5e7eb;padding-bottom:0}.sub-tab-button{padding:10px 20px;background:transparent;border:none;border-bottom:3px solid transparent;color:#6b7280;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;position:relative;bottom:-2px;outline:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.sub-tab-button:focus{outline:none}.sub-tab-button:active{outline:none}.sub-tab-button:hover{color:#0c5aa6;background:#f9fafb}.sub-tab-button.active{color:#0c5aa6;border-bottom-color:#0c5aa6;font-weight:600}.personal-bests-content,.event-progression-content{min-height:400px}.print-progression-btn{display:inline-flex;align-items:center;gap:4px;padding:6px 14px;font-size:13px;font-weight:600;color:#374151;background:#f3f4f6;border:1px solid #d1d5db;border-radius:6px;cursor:pointer;transition:all .15s ease}.print-progression-btn:hover{background:#e5e7eb;border-color:#9ca3af}.progression-actions-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;gap:12px}.progression-actions-left{position:relative;display:flex;align-items:center;gap:8px}.progression-actions-right{display:flex;align-items:center;gap:6px}.compare-btn{background:#eff6ff!important;color:#1d4ed8!important;border-color:#93c5fd!important}.compare-btn:hover{background:#dbeafe!important;border-color:#60a5fa!important}.compare-dropdown{position:absolute;top:100%;left:0;z-index:50;margin-top:4px;width:280px;background:#fff;border:1px solid #d1d5db;border-radius:8px;box-shadow:0 8px 24px #0000001f;overflow:hidden}.compare-search-input{width:100%;padding:10px 12px;font-size:13px;border:none;border-bottom:1px solid #e5e7eb;outline:none;background:#f9fafb;box-sizing:border-box}.compare-search-input:focus{background:#fff}.compare-scope-toggle{display:flex;align-items:center;gap:6px;padding:6px 12px;font-size:11px;color:#6b7280;border-bottom:1px solid #e5e7eb;cursor:pointer;-webkit-user-select:none;user-select:none}.compare-scope-toggle input[type=checkbox]{width:14px;height:14px;accent-color:#0c5aa6;cursor:pointer;margin:0}.compare-scope-toggle span{line-height:1}.compare-results-list{max-height:200px;overflow-y:auto}.compare-result-item{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;font-size:13px;color:#1f2937;cursor:pointer;transition:background .1s}.compare-result-item:hover{background:#eff6ff}.compare-result-age{font-size:11px;color:#9ca3af;font-weight:500}.compare-dropdown-loading,.compare-dropdown-empty{padding:12px;font-size:12px;color:#9ca3af;text-align:center}.compare-dropdown-saved{border-top:1px solid #e5e7eb;margin-top:4px;padding-top:4px}.compare-dropdown-saved-label{padding:4px 12px;font-size:10px;font-weight:700;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}.compare-dropdown-saved-item{display:flex;align-items:center;justify-content:space-between;padding:7px 12px;font-size:13px;font-weight:600;color:#1f2937;cursor:pointer;transition:background .1s}.compare-dropdown-saved-item:hover{background:#eff6ff;color:#0c5aa6}.compare-athletes-sidebar{display:flex;flex-direction:column;min-width:150px;max-width:180px;border:1px solid #e5e7eb;background:#f9fafb;border-radius:8px 0 0 8px;overflow:hidden}.compare-athletes-header{display:flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.5px;padding:8px 10px 6px;border-bottom:1px solid #e5e7eb;overflow:hidden}.compare-active-label{display:flex;align-items:flex-start;gap:4px;font-size:10px;font-weight:700;color:#0c5aa6;line-height:1.3;background:#eff6ff;padding:4px 6px 4px 8px;margin:0 6px;border-radius:6px;border:1px solid #bfdbfe}.compare-active-label-name{flex:1;text-align:center;word-break:break-word;white-space:normal}.compare-active-label-remove{flex-shrink:0;background:none;border:none;color:#93c5fd;font-size:14px;font-weight:700;cursor:pointer;padding:0;line-height:1;transition:color .15s}.compare-active-label-remove:hover{color:#dc2626}.compare-athletes-list{display:flex;flex-direction:column;gap:2px;padding:6px;overflow-y:auto}.compare-athlete-chip{display:flex;flex-direction:column;gap:2px;padding:5px 6px;background:#fff;border-radius:4px;border-left:3px solid;font-size:11px;transition:background .1s}.compare-athlete-chip-top{display:flex;align-items:center;justify-content:space-between;gap:4px}.compare-athlete-events-table{width:100%;border-collapse:collapse;margin-top:2px}.compare-athlete-events-table thead{cursor:default}.compare-athlete-events-table.has-more thead{cursor:pointer}.compare-athlete-events-table th{font-size:8px;font-weight:700;color:#9ca3af;text-transform:uppercase;letter-spacing:.3px;padding:1px 2px;text-align:center;border-bottom:1px solid #e5e7eb;white-space:nowrap}.compare-athlete-events-table.has-more th:after{content:"";display:inline-block;width:0;height:0;margin-left:1px;vertical-align:middle;border-left:2px solid transparent;border-right:2px solid transparent;border-top:3px solid #c9cdd3}.compare-athlete-events-table td{padding:1px;text-align:center;vertical-align:top}.compare-events-selected{display:table-row-group}.compare-events-all,.compare-athlete-events-table:hover .compare-events-selected{display:none}.compare-athlete-events-table:hover .compare-events-all{display:table-row-group}.compare-event-chip{font-size:9px;font-weight:600;padding:1px 3px;border-radius:3px;border:1px solid #d1d5db;background:#fff;color:#9ca3af;cursor:pointer;line-height:1.3;transition:all .15s;width:100%;display:block}.compare-event-chip:hover{background:#f3f4f6}.compare-event-chip.active{background:#eff6ff;font-weight:700}.compare-athlete-chip:hover{background:#f3f4f6}.compare-athlete-chip.compare-athlete-hidden{opacity:.5;border-left-color:#d1d5db!important}.compare-athlete-chip.compare-athlete-hidden .compare-athlete-name{text-decoration:line-through}.compare-athlete-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.compare-athlete-remove{display:flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;background:none;border:none;border-radius:50%;font-size:14px;font-weight:700;color:#9ca3af;cursor:pointer;transition:all .15s;flex-shrink:0}.compare-athlete-remove:hover{background:#fee2e2;color:#dc2626}.compare-refresh-btn{display:flex;align-items:center;justify-content:center;gap:4px;width:100%;padding:6px 8px;font-size:11px;font-weight:600;color:#4b5563;background:#f3f4f6;border:none;border-top:1px solid #e5e7eb;cursor:pointer;transition:all .15s}.compare-refresh-btn:hover:not(:disabled){background:#e5e7eb;color:#1f2937}.compare-refresh-btn:disabled{opacity:.5;cursor:not-allowed}.compare-sidebar-actions{display:flex;flex-wrap:wrap;gap:2px;padding:4px;border-top:1px solid #e5e7eb;background:#f9fafb}.compare-action-btn{display:flex;align-items:center;justify-content:center;gap:2px;flex:1;min-width:0;padding:4px 2px;font-size:10px;font-weight:600;color:#4b5563;background:#fff;border:1px solid #e5e7eb;border-radius:4px;cursor:pointer;transition:all .15s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.compare-action-btn:hover:not(:disabled){background:#eff6ff;border-color:#93c5fd;color:#0c5aa6}.compare-action-btn:disabled{opacity:.5;cursor:not-allowed}.compare-load-wrapper{position:relative;flex:1;min-width:0}.saved-compares-dropdown{position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%);min-width:200px;max-width:280px;max-height:260px;overflow-y:auto;background:#fff;border:1px solid #d1d5db;border-radius:8px;box-shadow:0 8px 25px #00000026;z-index:100}.saved-compares-loading,.saved-compares-empty{padding:12px 16px;font-size:12px;color:#9ca3af;text-align:center}.saved-compare-item{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;border-bottom:1px solid #f3f4f6;transition:background .1s}.saved-compare-item:last-child{border-bottom:none}.saved-compare-item:hover{background:#f9fafb}.saved-compare-item.active{background:#eff6ff}.saved-compare-name{flex:1;font-size:12px;font-weight:600;color:#1f2937;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:6px}.saved-compare-name:hover{color:#0c5aa6}.saved-compare-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 4px;font-size:10px;font-weight:700;color:#6b7280;background:#f3f4f6;border-radius:9px;flex-shrink:0}.saved-compare-actions{display:flex;gap:2px;flex-shrink:0;margin-left:4px}.saved-compare-action-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:none;border:none;border-radius:4px;cursor:pointer;font-size:12px;opacity:.5;transition:all .15s}.saved-compare-action-btn:hover{opacity:1;background:#f3f4f6}.saved-compare-delete:hover{background:#fee2e2}.save-compare-overlay{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.save-compare-modal{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0003;width:380px;max-width:90vw;overflow:hidden}.save-compare-modal-header{padding:16px 20px;font-size:16px;font-weight:700;color:#1f2937;border-bottom:1px solid #e5e7eb}.save-compare-modal-body{padding:16px 20px}.save-compare-label{display:block;font-size:12px;font-weight:600;color:#374151;margin-bottom:6px}.save-compare-input{width:100%;padding:8px 12px;font-size:14px;border:1px solid #d1d5db;border-radius:6px;outline:none;transition:border-color .15s;box-sizing:border-box}.save-compare-input:focus{border-color:#0c5aa6;box-shadow:0 0 0 3px #0c5aa61a}.save-compare-athletes-preview{display:flex;flex-wrap:wrap;gap:4px;margin-top:12px}.save-compare-preview-chip{display:inline-block;padding:3px 8px;font-size:11px;font-weight:600;border-left:3px solid;background:#f9fafb;border-radius:4px}.save-compare-modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid #e5e7eb;background:#f9fafb}.load-compare-modal-body{padding:8px 0;max-height:400px;overflow-y:auto}.load-compare-list{display:flex;flex-direction:column}.load-compare-item{display:flex;align-items:center;padding:10px 20px;border-bottom:1px solid #f3f4f6;transition:background .1s}.load-compare-item:last-child{border-bottom:none}.load-compare-item:hover{background:#f9fafb}.load-compare-item.active{background:#eff6ff}.load-compare-item-main{flex:1;min-width:0;cursor:pointer}.load-compare-name{font-size:14px;font-weight:700;color:#1f2937;display:block;margin-bottom:4px}.load-compare-item-main:hover .load-compare-name{color:#0c5aa6}.load-compare-athletes{display:flex;flex-wrap:wrap;gap:4px}.load-compare-athlete-tag{display:inline-block;padding:1px 6px;font-size:10px;font-weight:600;color:#6b7280;background:#f3f4f6;border-radius:4px}.load-compare-item-actions{display:flex;gap:2px;flex-shrink:0;margin-left:8px}.save-compare-cancel{padding:6px 16px;font-size:13px;font-weight:600;color:#6b7280;background:#fff;border:1px solid #d1d5db;border-radius:6px;cursor:pointer;transition:all .15s}.save-compare-cancel:hover{background:#f3f4f6}.save-compare-submit{padding:6px 20px;font-size:13px;font-weight:700;color:#fff;background:#0c5aa6;border:none;border-radius:6px;cursor:pointer;transition:all .15s}.save-compare-submit:hover:not(:disabled){background:#0a4a8a}.save-compare-submit:disabled{opacity:.5;cursor:not-allowed}.progression-chart-row{display:flex;gap:0;align-items:stretch}.event-buttons-sidebar{display:flex;flex-direction:column;min-width:100px;max-width:120px;border:1px solid #e5e7eb;background:#f9fafb;border-radius:0 8px 8px 0;overflow:hidden}.event-buttons-header{font-size:11px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.5px;padding:8px 10px 6px;border-bottom:1px solid #e5e7eb}.event-buttons-list{display:flex;flex-direction:column;gap:4px;padding:6px}.event-toggle-btn{display:block;width:100%;padding:6px 8px;font-size:13px;font-weight:500;border:1.5px solid #d1d5db;border-radius:5px;background:#fff;color:#374151;cursor:pointer;text-align:center;transition:all .15s ease;white-space:nowrap}.event-toggle-btn:hover{background:#f3f4f6}.event-toggle-btn.active{background:#4b5563;color:#fff;border-color:#4b5563;font-weight:600}.event-toggle-btn.active:hover{background:#374151;border-color:#374151}.progression-chart-area{flex:1;min-width:0;display:flex;flex-direction:column}.progression-filters{display:flex;gap:16px;padding:16px;background:#fff;border-radius:8px}.progression-filters .filter-group{display:flex;align-items:center;gap:8px}.progression-filters .filter-select{padding:6px 12px;font-size:13px;border:1px solid #d1d5db;border-radius:6px;background:#fff;color:#111827;cursor:pointer;min-width:180px;transition:all .15s}.progression-filters .filter-select:hover:not(:disabled){border-color:#9ca3af}.progression-filters .filter-select:focus{outline:none;border-color:#0c5aa6;box-shadow:0 0 0 3px #0c5aa61a}.progression-filters .filter-select:disabled{background:#f3f4f6;color:#9ca3af;cursor:not-allowed}.event-navigation-buttons{display:flex;gap:8px;align-items:center;margin-left:auto}.event-nav-button{padding:6px 16px;font-size:13px;font-weight:500;border:1px solid #d1d5db;border-radius:6px;background:#fff;color:#374151;cursor:pointer;transition:all .15s;white-space:nowrap}.event-nav-button:hover:not(:disabled){background:#f3f4f6;border-color:#0c5aa6;color:#0c5aa6}.event-nav-button:disabled{background:#f3f4f6;color:#9ca3af;cursor:not-allowed;border-color:#e5e7eb}.personal-bests-charts{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:20px 0}.personal-bests-charts .chart-container{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:20px}.personal-bests-charts .chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.personal-bests-charts .chart-title{margin:0;font-size:14px;font-weight:600;color:#374151;text-align:center;flex:1}.chart-expand-btn{background:none;border:1px solid #e5e7eb;border-radius:4px;width:32px;height:32px;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;transition:all .2s;padding:0}.chart-expand-btn:hover{background:#f3f4f6;border-color:#d1d5db}.chart-modal-overlay{position:fixed;inset:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:9999;padding:20px}.chart-modal-content{background:#fff;border-radius:12px;width:90vw;height:85vh;max-width:1400px;display:flex;flex-direction:column;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.chart-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e5e7eb}.chart-modal-header h3{margin:0;font-size:18px;font-weight:600;color:#111827}.chart-modal-close{background:none;border:none;font-size:24px;cursor:pointer;color:#6b7280;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .2s;padding:0}.chart-modal-close:hover{background:#f3f4f6;color:#111827}.chart-modal-body{flex:1;padding:24px;overflow:auto}.progression-chart-container{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:20px;margin-top:16px}.progression-chart{width:100%;height:auto;display:block}.table-athlete-selector{display:flex;align-items:center;gap:8px;margin-top:16px;padding:8px 12px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;flex-wrap:wrap}.table-athlete-selector-label{font-size:12px;font-weight:600;color:#6b7280;white-space:nowrap}.table-athlete-chip{display:inline-flex;align-items:center;padding:4px 12px;font-size:12px;font-weight:600;border:2px solid #d1d5db;border-radius:20px;background:#fff;color:#6b7280;cursor:pointer;transition:all .15s;white-space:nowrap}.table-athlete-chip:hover{background:#f3f4f6;border-color:#9ca3af}.table-athlete-chip.active{background:#eff6ff;font-weight:700;box-shadow:0 0 0 1px #0000000d}.progression-table-container{background:#fff;border:1px solid #e5e7eb;border-radius:8px;overflow-x:auto;overflow-y:hidden;margin-top:16px}.table-athlete-selector+.progression-table-container{margin-top:8px}.progression-table{width:100%;border-collapse:collapse;font-size:13px}.progression-table thead{background:#f9fafb;border-bottom:1px solid #e5e7eb}.progression-table th{padding:12px 16px;text-align:left;font-weight:600;color:#374151;font-size:12px;text-transform:uppercase;letter-spacing:.5px}.progression-table th:nth-child(2){text-align:center}.progression-table th:nth-child(4),.progression-table th:nth-child(5){text-align:right}.progression-table tbody tr{border-bottom:1px solid #f3f4f6;transition:background-color .1s}.progression-table tbody tr:hover{background:#f9fafb}.progression-table tbody tr:last-child{border-bottom:none}.progression-table td{padding:12px 16px;color:#1f2937}.progression-table .date-cell{font-size:13px}.progression-table .time-cell{font-family:Courier New,monospace;font-weight:600;font-size:14px;text-align:center}.progression-table .meet-cell{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.progression-table .points-cell{text-align:right;font-weight:500}.season-wr-badge{font-size:11px;font-weight:700;padding:2px 8px;border-radius:12px;border:1px solid;white-space:nowrap;-webkit-print-color-adjust:exact;print-color-adjust:exact}.progression-table .improvement-cell{font-family:Courier New,monospace;font-weight:600;font-size:13px;text-align:right}.progression-table .improvement-cell.improved{color:#059669}.progression-table .improvement-cell.slower{color:#dc2626}.progression-table .season-separator-row td{padding:0;border-bottom:none}.progression-table .season-separator-row:hover{background:transparent}.season-separator-content{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;background:#f0f4f8;border:1px solid #d1d5db;border-radius:4px}.season-separator-name{font-size:14px;font-weight:700;color:#374151;text-transform:uppercase;letter-spacing:.5px;display:flex;align-items:center;gap:6px}.season-separator-name .season-toggle-icon{font-size:10px;color:#6b7280}.season-separator-row:hover .season-separator-content{background:#e5eaf0}.season-improvement-total{font-size:12px;font-weight:700;color:#059669;background:#ecfdf5;border:1px solid #a7f3d0;padding:2px 10px;border-radius:12px;white-space:nowrap}.progression-table-multi .event-group-header{text-align:center;background:#f0f4f8;border-bottom:2px solid #d1d5db;font-size:12px;padding:6px 4px}.progression-table-multi .sub-header{text-align:right;font-size:10px;font-weight:600;color:#6b7280;padding:4px 6px;background:#f9fafb}.progression-table-multi td.time-cell,.progression-table-multi td.improvement-cell,.progression-table-multi td.points-cell{text-align:right;font-size:12px;padding:6px}.progression-table-multi .season-separator-improvement-cell{text-align:right;padding:6px 6px 2px!important;border-bottom:none!important}.progression-table-multi .season-separator-empty-cell{border-bottom:none!important;padding:0!important}@media print{.season-separator-content{background:#f0f4f8!important;border:1px solid #d1d5db!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.season-improvement-total{color:#059669!important;background:#ecfdf5!important;border:1px solid #a7f3d0!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.season-separator-improvement-cell{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.times-filters{display:flex;gap:16px;padding:16px;background:#fff;border-radius:8px}.times-filters .filter-group{display:flex;align-items:center;gap:8px}.times-filters .filter-select{padding:6px 12px;font-size:13px;border:1px solid #d1d5db;border-radius:6px;background:#fff;color:#111827;cursor:pointer;min-width:150px;transition:all .15s}.times-filters .filter-select:hover{border-color:#9ca3af}.times-filters .filter-select:focus{outline:none;border-color:#0c5aa6;box-shadow:0 0 0 3px #0c5aa61a}.course-tables-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:16px;align-items:start}.course-table-wrapper{min-width:0;overflow-x:auto}.course-table-header{display:flex;align-items:center;gap:10px;margin-bottom:8px}.course-table-badge{display:inline-block;padding:4px 12px;background:#0c5aa6;color:#fff;border-radius:6px;font-size:13px;font-weight:700;letter-spacing:.5px}.course-table-count{font-size:12px;color:#6b7280;font-weight:500}.times-table-container{background:#fff;border:1px solid #e5e7eb;border-radius:8px;overflow-x:auto;box-shadow:0 1px 3px #0000001a}.times-table{width:100%;border-collapse:collapse;font-size:13px}.times-table thead{background:#f9fafb;border-bottom:2px solid #e5e7eb}.times-table th{padding:10px 12px;text-align:left;font-size:10px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}.times-table tbody tr{border-bottom:1px solid #e5e7eb;transition:background-color .15s}.times-table tbody tr:hover{background:#f9fafb}.times-table tbody tr.podium-first{background:#fef3c7;border-left:4px solid #f59e0b}.times-table tbody tr.podium-first:hover{background:#fde68a}.times-table tbody tr.podium-second{background:#f3f4f6;border-left:4px solid #9ca3af}.times-table tbody tr.podium-second:hover{background:#e5e7eb}.times-table tbody tr.podium-third{background:#fef5e7;border-left:4px solid #cd7f32}.times-table tbody tr.podium-third:hover{background:#fee8c8}.times-table tbody tr.podium-separator-row{height:6px;background:transparent;border:none;pointer-events:none}.times-table tbody tr.podium-separator-row td{padding:0;height:6px;border-bottom:2px solid #e5e7eb;background:transparent}.times-table tbody tr:last-child{border-bottom:none}.times-table td{padding:10px 12px;vertical-align:middle}.event-cell{display:flex;align-items:center;gap:8px}.event-name{font-size:12px;font-weight:600;color:#0c5aa6;white-space:nowrap}.course-badge{display:inline-block;padding:2px 6px;background:#f3f4f6;color:#6b7280;border-radius:3px;font-size:10px;font-weight:600}.time-cell{font-family:Courier New,monospace;font-weight:600;color:#111827;white-space:nowrap;text-align:right}.points-cell{text-align:right;color:#374151;font-weight:500}.count-cell{text-align:center;color:#6b7280;font-weight:500;width:50px}.improvement-cell{text-align:right;color:#059669;font-weight:600;font-family:Courier New,monospace;white-space:nowrap}.meet-cell{color:#374151;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meet-name-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.meet-date-line{font-size:11px;color:#9ca3af;margin-top:2px}.season-cell{white-space:nowrap;text-align:center;vertical-align:middle}.season-year{font-size:12px;font-weight:600;color:#374151}.season-ago{font-size:11px;color:#9ca3af;margin-top:1px}.club-code{color:#6b7280;font-size:.95em}.club-code-highlight{color:#0c5aa6;font-weight:600;font-size:.95em}.date-cell{color:#6b7280;white-space:nowrap}.days-ago{color:#9ca3af;font-size:11px}.clickable-row{transition:background-color .15s ease}.clickable-row:hover{background-color:#f3f4f6!important}@media(max-width:768px){.course-tables-grid{grid-template-columns:1fr}.times-table-container{overflow-x:auto}.times-table{font-size:12px}.times-table th,.times-table td{padding:8px 10px}.meet-cell{max-width:200px}.rankings-cards{grid-template-columns:1fr}.ranking-stats{grid-template-columns:repeat(2,1fr)}.personal-bests-charts{grid-template-columns:1fr}}@media(max-width:480px){.position-grid{grid-template-columns:1fr}}@media(min-width:769px)and (max-width:1200px){.personal-bests-charts{grid-template-columns:repeat(2,1fr)}}.session-name-link{cursor:pointer;color:#2563eb!important;text-decoration:underline;text-decoration-color:transparent;transition:text-decoration-color .2s,color .2s}.session-name-link:hover{color:#1d4ed8!important;text-decoration-color:#2563eb}.polar-popup-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.polar-popup{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;width:90vw;min-width:340px;min-height:200px;max-height:90vh;display:flex;flex-direction:column;resize:both;overflow:auto}.polar-popup-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #e5e7eb;position:sticky;top:0;background:#fff;border-radius:12px 12px 0 0;z-index:1}.polar-popup-header h3{margin:0;font-size:16px;font-weight:700;color:#1f2937}.polar-popup-close{background:none;border:none;font-size:18px;color:#6b7280;cursor:pointer;padding:4px 8px;border-radius:4px;transition:all .2s}.polar-popup-close:hover{background:#f3f4f6;color:#1f2937}.polar-popup-actions{display:flex;align-items:center;gap:4px}.polar-popup-print{background:none;border:none;font-size:16px;color:#6b7280;cursor:pointer;padding:4px 8px;border-radius:4px;transition:all .2s}.polar-popup-print:hover{background:#f3f4f6;color:#1f2937}@media print{body *{visibility:hidden!important}.polar-popup-overlay,.polar-popup-overlay *{visibility:visible!important}.polar-popup-overlay{position:fixed!important;inset:0!important;background:#fff!important;z-index:99999!important;overflow:visible!important;display:block!important}.polar-popup{position:absolute!important;top:0!important;left:0!important;width:100%!important;max-width:100%!important;max-height:none!important;height:auto!important;box-shadow:none!important;border:none!important;resize:none!important;overflow:visible!important;margin:0!important}.polar-popup-actions{display:none!important}.polar-popup-header{position:static!important}.polar-popup-body{overflow:visible!important}.polar-hr-chart,.polar-compliance-table,.polar-zone-table,.polar-plan-table{break-inside:avoid}.polar-zone-bar-segment,.polar-plan-bar-segment,.polar-zone-color,.polar-plan-color{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.polar-popup-body{padding:20px}.polar-info-grid{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px}.polar-info-item{display:flex;flex-direction:column;gap:2px;padding:10px 12px;background:#f9fafb;border-radius:8px;border:1px solid #f3f4f6}.polar-info-label{font-size:11px;color:#6b7280;text-transform:uppercase;letter-spacing:.3px;font-weight:500}.polar-info-value{font-size:14px;font-weight:600;color:#1f2937}.polar-hr{color:#ef4444}.polar-hr-max{color:#dc2626}.polar-load-badge{font-size:10px;font-weight:600;padding:2px 6px;border-radius:4px;text-transform:uppercase;letter-spacing:.3px}.polar-load-badge.high{background:#fef2f2;color:#dc2626}.polar-load-badge.medium{background:#fffbeb;color:#d97706}.polar-load-badge.low{background:#f0fdf4;color:#16a34a}.polar-hr-chart{background:#f9fafb;border-radius:8px;padding:16px;border:1px solid #f3f4f6}.polar-hr-chart-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:12px}.polar-hr-chart-header h4{margin:0;font-size:14px;font-weight:600;color:#374151}.polar-chart-legend{display:flex;flex-wrap:wrap;gap:4px}.polar-legend-item{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;font-size:11px;font-weight:600;color:#374151;background:#fff;border:1px solid #e5e7eb;border-radius:14px;cursor:pointer;transition:all .15s;-webkit-user-select:none;user-select:none}.polar-legend-item:hover{border-color:#d1d5db;background:#f9fafb}.polar-legend-item.off{opacity:.4;text-decoration:line-through}.polar-legend-item.off .polar-legend-swatch{opacity:.3}.polar-legend-swatch{width:10px;height:10px;border-radius:3px;flex-shrink:0}.polar-legend-swatch.polar-legend-line{height:3px;width:14px;border-radius:2px}.polar-loading{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 20px;color:#6b7280;font-size:14px}.polar-loading-spinner{width:32px;height:32px;border:3px solid #e5e7eb;border-radius:50%;border-top-color:#3b82f6;animation:polar-spin .8s linear infinite}@keyframes polar-spin{to{transform:rotate(360deg)}}.polar-error{padding:16px 20px;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;font-size:13px;text-align:center}.polar-no-data{padding:40px 20px;text-align:center;color:#9ca3af;font-size:14px}.polar-zone-section{background:#f9fafb;border-radius:8px;padding:16px;border:1px solid #f3f4f6;margin-top:12px}.polar-zone-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;gap:12px;flex-wrap:wrap}.polar-zone-section h4{margin:0;font-size:14px;font-weight:600;color:#374151}.polar-zone-groupby{display:flex;align-items:center;gap:6px}.polar-zone-groupby-label{font-size:12px;color:#6b7280;margin-right:2px}.polar-zone-groupby-btn{padding:3px 10px;font-size:11px;font-weight:600;border:1px solid #d1d5db;border-radius:4px;background:#fff;color:#6b7280;cursor:pointer;transition:all .15s}.polar-zone-groupby-btn:hover{border-color:#9ca3af;color:#374151}.polar-zone-groupby-btn.active{background:#2563eb;border-color:#2563eb;color:#fff}.polar-zone-hrmax{font-weight:400;font-size:12px;color:#6b7280;margin-left:6px}.polar-zone-bar{display:flex;height:28px;border-radius:6px;overflow:hidden;margin-bottom:14px;box-shadow:inset 0 1px 2px #0000000f}.polar-zone-bar-segment{display:flex;align-items:center;justify-content:center;min-width:2px;transition:opacity .15s;cursor:default}.polar-zone-bar-segment:hover{opacity:.8}.polar-zone-bar-label{font-size:10px;font-weight:700;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.4);white-space:nowrap}.polar-zone-table{display:flex;flex-direction:column;gap:6px}.polar-zone-row{display:flex;align-items:center;gap:8px;font-size:12px;color:#374151;padding:4px 0;border-bottom:1px solid #f3f4f6}.polar-zone-row:last-child{border-bottom:none}.polar-zone-color{width:12px;height:12px;border-radius:3px;flex-shrink:0}.polar-zone-code{font-weight:700;min-width:32px;color:#1f2937}.polar-zone-desc{flex:1;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.polar-zone-range{min-width:90px;text-align:right;color:#9ca3af;font-size:11px}.polar-zone-time{min-width:70px;text-align:right;font-weight:600;color:#1f2937}.polar-zone-pct{min-width:44px;text-align:right;font-weight:600;color:#6b7280}.polar-plan-timeline{margin-top:18px}.polar-plan-timeline h4{margin:0 0 8px;font-size:13px;font-weight:700;color:#1f2937}.polar-plan-bar{display:flex;height:26px;border-radius:6px;overflow:hidden;margin-bottom:10px;box-shadow:inset 0 1px 2px #0000000f;border:1px solid rgba(0,0,0,.06)}.polar-plan-bar-segment{display:flex;align-items:center;justify-content:center;min-width:2px;transition:opacity .15s;cursor:default;border-right:1px solid rgba(255,255,255,.4)}.polar-plan-bar-segment:last-child{border-right:none}.polar-plan-bar-segment:hover{opacity:.8}.polar-plan-bar-label{font-size:10px;font-weight:700;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.4);white-space:nowrap}.polar-plan-table{display:flex;flex-direction:column;gap:2px}.polar-plan-row{display:flex;align-items:center;gap:8px;font-size:11px;color:#374151;padding:3px 0;border-bottom:1px solid #f3f4f6}.polar-plan-row:last-child{border-bottom:none}.polar-plan-color{width:10px;height:10px;border-radius:3px;flex-shrink:0}.polar-plan-zone{font-weight:700;min-width:32px;color:#1f2937;flex-shrink:0}.polar-plan-range{flex:1;text-align:right;color:#9ca3af;font-size:10px}.polar-plan-time{color:#6b7280;min-width:100px;text-align:right;font-family:monospace;font-size:11px}.polar-plan-dur{min-width:55px;text-align:right;font-weight:600;color:#1f2937}.polar-plan-pct{min-width:40px;text-align:right;font-weight:600;color:#6b7280}.polar-compliance{margin-top:14px}.polar-compliance h4{margin:0 0 8px;font-size:13px;font-weight:700;color:#1f2937}.polar-compliance-table{width:100%;border-collapse:collapse;font-size:11px}.polar-compliance-table th{padding:5px 8px;text-align:left;font-weight:600;color:#6b7280;border-bottom:2px solid #e5e7eb;white-space:nowrap}.polar-compliance-table td{padding:4px 8px;border-bottom:1px solid #f3f4f6;white-space:nowrap}.polar-compliance-table tfoot td{border-top:2px solid #e5e7eb;border-bottom:none;font-weight:700}.polar-compliance-zone{font-weight:700;color:#1f2937}.polar-compliance-range{color:#9ca3af;font-size:10px}td.polar-compliance-below,th.polar-compliance-below{color:#3b82f6;text-align:right}td.polar-compliance-in,th.polar-compliance-in{color:#10b981;text-align:right}td.polar-compliance-above,th.polar-compliance-above{color:#ef4444;text-align:right}@media(max-width:600px){.polar-info-grid{grid-template-columns:repeat(2,1fr)}.polar-popup{max-width:100%}}.coaches-list-container{flex:1;display:flex;flex-direction:column;overflow:hidden}.loading-spinner{text-align:center;color:#6b7280;font-size:14px;padding:40px;position:relative}.loading-spinner:after{content:"";display:inline-block;width:16px;height:16px;border:2px solid #f3f4f6;border-top:2px solid #dc2626;border-radius:50%;animation:spin 1s linear infinite;margin-left:8px}.error-message{text-align:center;color:#dc2626;padding:16px;background-color:#fef2f2;border:1px solid #fecaca;border-radius:6px;margin:16px 0}.retry-button{padding:6px 12px;background-color:#dc2626;color:#fff;border:none;border-radius:4px;cursor:pointer;margin-top:8px;font-size:14px;transition:background-color .15s ease}.retry-button:hover{background-color:#0056b3}.coaches-list{background-color:#fff;border-radius:6px;border:1px solid #e5e5e5;overflow:hidden;flex:1;display:flex;flex-direction:column}.coaches-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;padding:16px;overflow-y:auto;max-height:calc(100vh - 380px)}.coach-card{background-color:#fafafa;border:1px solid #e5e5e5;border-radius:6px;padding:16px;transition:all .15s ease;position:relative;display:flex;flex-direction:column;min-height:200px;cursor:pointer}.coach-card:hover{border-color:#d1d5db;background-color:#f9fafb;transform:translateY(-1px);box-shadow:0 4px 8px #0000001a}.coach-card.inactive{opacity:.6;border-left:3px solid #dc2626}.coach-content-row{display:flex;gap:12px;align-items:flex-start;margin-top:12px}.coach-portrait{width:80px;height:80px;border-radius:8px;overflow:visible;border:2px solid #e5e7eb;background:#fff;flex-shrink:0;position:relative;cursor:pointer}.coach-portrait img{width:100%;height:100%;object-fit:cover;object-position:center top;border-radius:6px;transition:all .3s ease}.coach-portrait:hover img{transform:scale(3);z-index:1000;box-shadow:0 20px 60px #0006;border-radius:8px;position:relative}.coach-details-column{flex:1;display:flex;flex-direction:column;gap:4px}.coach-info{margin-bottom:12px;flex-grow:1;flex-direction:column}.coach-name{color:#111827;font-size:16px;font-weight:600;margin:0 0 6px;letter-spacing:-.025em;display:flex;align-items:center;gap:8px}.access-badge{display:inline-flex;align-items:center;justify-content:center;font-size:11px;padding:0;background-color:transparent;border:none;color:#10b981;font-weight:400;cursor:help;opacity:.7;margin-left:4px}.coach-details{color:#6b7280;font-size:13px;margin:3px 0}.coach-details.coach-role{color:#2563eb;font-size:14px;margin-bottom:6px}.coach-email{color:#6b7280;font-size:12px;margin:0;padding-top:8px;border-top:1px solid #e5e7eb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%;text-align:center}.coach-status.inactive{color:#dc2626;font-size:12px;font-weight:500;margin:6px 0 0;text-transform:uppercase}.coach-tags{display:flex;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid #e9ecef;flex-wrap:wrap;margin-bottom:0}.coach-tag{display:inline-flex;align-items:center;padding:4px 8px;border-radius:12px;font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.025em}.stroke-tag{background-color:#dbeafe;color:#1e40af;border:1px solid #bfdbfe}.training-group-tag{background-color:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.coach-fina-points{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding-top:12px;border-top:1px solid #e5e7eb;gap:8px;flex-shrink:0}.fina-point-item{display:flex;flex-direction:column;align-items:center;flex:1}.fina-label{font-size:10px;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px;font-weight:500}.fina-value{font-size:14px;color:#111827;font-weight:600}.coach-actions{position:absolute;top:12px;right:12px;display:flex;gap:6px}.action-button{width:28px;height:28px;border:none;border-radius:4px;background-color:#f3f4f6;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease;color:#6b7280}.action-button:hover{background-color:#e5e7eb;color:#374151}.action-button.edit:hover{background-color:#fbbf24;color:#fff}.action-button.view:hover{background-color:#3b82f6;color:#fff}.age-group-label{position:absolute;top:-2px;left:-2px;background-color:#6b7280;color:#fff;padding:2px 6px;border-radius:3px;font-size:8px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;z-index:1;box-shadow:0 1px 3px #0000001a}.empty-state{text-align:center;padding:48px 20px;color:#6b7280}.empty-state p:first-child{font-size:16px;margin-bottom:8px;font-weight:500}.empty-state p:last-child{font-size:14px}.clear-search-button-large{padding:8px 16px;background-color:#6b7280;color:#fff;border:none;border-radius:6px;cursor:pointer;margin-top:12px;font-size:14px;transition:background-color .15s ease}.clear-search-button-large:hover{background-color:#4b5563}.pagination-controls{display:flex;justify-content:space-between;align-items:center;gap:24px}.pagination-center{flex:0 0 auto;display:flex;align-items:center;gap:12px;justify-content:center}.view-mode-toggle{display:flex;gap:4px;background-color:#f3f4f6;border-radius:6px;padding:2px}.view-toggle-button{padding:6px 10px;border:none;background-color:transparent;border-radius:4px;cursor:pointer;font-size:14px;color:#6b7280;transition:all .15s ease}.view-toggle-button:hover{background-color:#e5e7eb;color:#374151}.view-toggle-button.active{background-color:#dc2626;color:#fff}.sort-controls{display:flex;align-items:center;gap:8px}.sort-controls label{font-size:13px;color:#6b7280;white-space:nowrap}.sort-select{padding:4px 8px;border:1px solid #d1d5db;border-radius:4px;font-size:13px;outline:none;cursor:pointer;background-color:#fff;color:#374151}.sort-select:focus{border-color:#dc2626;box-shadow:0 0 0 1px #dc2626}.sort-direction-button{padding:4px 8px;border:1px solid #d1d5db;border-radius:4px;background-color:#fff;color:#374151;font-size:14px;cursor:pointer;transition:background-color .15s ease;min-width:32px}.sort-direction-button:hover{background-color:#f3f4f6}.sort-direction-button:active{background-color:#e5e7eb}.export-controls{display:flex;align-items:center}.export-button{padding:6px 12px;border:1px solid #d1d5db;border-radius:4px;background-color:#dc2626;color:#fff;font-size:13px;cursor:pointer;transition:background-color .15s ease;font-weight:500}.export-button:hover{background-color:#b91c1c}.export-dropdown-content{display:none;position:absolute;right:0;background-color:#fff;min-width:140px;box-shadow:0 8px 16px #0000001a;border:1px solid #e5e7eb;border-radius:4px;z-index:1000;margin-top:4px}.export-option{display:block;width:100%;padding:8px 12px;text-align:left;border:none;background-color:transparent;color:#374151;font-size:13px;cursor:pointer;transition:background-color .15s ease}.export-option:first-child{border-radius:4px 4px 0 0}.export-option:last-child{border-radius:0 0 4px 4px}.pagination-info{text-align:center;margin-bottom:12px;color:#6b7280;font-size:13px}.pagination-button:hover:not(:disabled){background-color:#dc2626;color:#fff}@media(max-width:768px){.coaches-grid{grid-template-columns:1fr;gap:12px;padding:12px}.coach-actions{position:static;justify-content:flex-end;margin-top:12px}.pagination-controls{flex-direction:column;gap:12px;align-items:stretch}.pagination-section{justify-content:center!important}.pagination-left,.pagination-center,.pagination-right{flex:none;width:100%}.pagination-info-inline{text-align:center;justify-content:center}.pagination-buttons,.records-per-page{justify-content:center}.pagination-button{min-width:80px}}.coaches-table-container{background-color:#fff;border-radius:6px;border:1px solid #e5e5e5;overflow:hidden;display:flex;flex-direction:column;max-height:calc(100vh - 280px)}.coaches-table{width:100%;border-collapse:collapse;font-size:14px;display:block}.coaches-table thead{display:table;width:100%;table-layout:fixed}.coaches-table tbody{display:block;overflow-y:auto;max-height:calc(100vh - 380px)}.coaches-table tbody tr{display:table;width:100%;table-layout:fixed}.coaches-table th{background-color:#f9fafb;color:#374151;font-weight:600;text-align:left;padding:12px 16px;border-bottom:1px solid #e5e5e5;font-size:13px;text-transform:uppercase;letter-spacing:.05em}.coaches-table th.sortable-header{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .15s ease;position:relative}.coaches-table th.sortable-header:hover{background-color:#f3f4f6;color:#111827}.coaches-table th.sortable-header:active{background-color:#e5e7eb}.coaches-table td{padding:12px 16px;border-bottom:1px solid #f3f4f6;color:#374151;vertical-align:middle}.coaches-table tr:hover{background-color:#f9fafb}.coaches-table tr.clickable-row:hover{background-color:#f0f9ff;transition:background-color .15s ease}.coaches-table tr.inactive-row{opacity:.6}.coaches-table tr.inactive-row td{color:#6b7280}.coach-name-cell{min-width:180px}.status-badge{padding:4px 8px;border-radius:12px;font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.025em}.status-badge.active{background-color:#d1fae5;color:#065f46}.status-badge.inactive{background-color:#fee2e2;color:#991b1b}.stroke-badge{padding:4px 8px;border-radius:12px;font-size:11px;font-weight:500;background-color:#dbeafe;color:#1e40af;border:1px solid #bfdbfe;display:inline-flex;align-items:center}.training-group-badge{padding:4px 8px;border-radius:12px;font-size:11px;font-weight:500;background-color:#f0fdf4;color:#166534;border:1px solid #bbf7d0;display:inline-flex;align-items:center}.table-actions{display:flex;gap:6px}.fina-points-cell{text-align:center;font-weight:600;color:#374151}.age-group-cell{display:inline-block;padding:3px 8px;background-color:#f3f4f6;color:#374151;border-radius:12px;font-size:11px;font-weight:500;border:1px solid #d1d5db;text-align:center}@media(max-width:768px){.coaches-table-container{overflow-x:auto}.coaches-table{min-width:600px}.coaches-table th,.coaches-table td{padding:8px 12px}.view-mode-toggle{order:2}.sort-controls{order:1;justify-content:center}.export-controls{order:0;margin-bottom:8px}.pagination-controls{flex-wrap:wrap}}.modal-content{background:#fff;border-radius:8px;border:1px solid #e5e5e5;max-width:1160px;width:100%;max-height:90vh;overflow-y:auto;position:relative}.modal-content.coach-form-modal{max-width:1440px!important;max-height:95vh;min-height:600px;height:85vh;display:flex;flex-direction:column;overflow:hidden}.modal-body-layout{display:flex;gap:20px;flex:1;min-height:0;overflow:hidden}.portrait-sidebar{width:200px;flex-shrink:0;display:flex;flex-direction:column;gap:16px;padding:16px;background:#f9fafb;border-right:1px solid #e5e7eb;overflow-y:auto;overflow-x:visible}.portrait-sidebar .portrait-preview{width:100%;height:200px;border-radius:8px;overflow:visible;border:2px solid #e5e7eb;background:#fff;display:flex;align-items:flex-start;justify-content:flex-start;position:relative;cursor:pointer;z-index:1}.portrait-sidebar .portrait-preview img{width:100%;height:100%;object-fit:cover;border-radius:6px;transition:all .3s ease;transform-origin:top left;position:relative;z-index:1}.portrait-sidebar .portrait-preview:hover img{width:auto;height:auto;max-width:calc(100vw - 250px);max-height:calc(100vh - 150px);object-fit:contain;z-index:10000;box-shadow:0 20px 60px #0006;border-radius:8px;position:fixed;top:150px;left:32px}.portrait-sidebar .portrait-placeholder{text-align:center;color:#9ca3af}.portrait-sidebar .portrait-placeholder span{font-size:48px;display:block;margin-bottom:8px}.portrait-sidebar .portrait-placeholder p{margin:0;font-size:12px}.portrait-sidebar .portrait-actions{display:flex;flex-direction:column;gap:8px}.portrait-sidebar .portrait-btn{padding:8px 12px;border-radius:6px;border:1px solid #d1d5db;background:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s;text-align:center;display:inline-block}.portrait-sidebar .portrait-btn:hover:not(.disabled){background:#f3f4f6;border-color:#9ca3af}.portrait-sidebar .portrait-btn-select{background:#3b82f6;color:#fff;border-color:#3b82f6}.portrait-sidebar .portrait-btn-select:hover:not(.disabled){background:#2563eb;border-color:#2563eb}.portrait-sidebar .portrait-btn-upload{background:#10b981;color:#fff;border-color:#10b981}.portrait-sidebar .portrait-btn-upload:hover:not(:disabled){background:#059669;border-color:#059669}.portrait-sidebar .portrait-btn-remove{background:#ef4444;color:#fff;border-color:#ef4444}.portrait-sidebar .portrait-btn-remove:hover:not(:disabled){background:#dc2626;border-color:#dc2626}.portrait-sidebar .portrait-btn:disabled,.portrait-sidebar .portrait-btn.disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.portrait-sidebar .portrait-filename{padding:6px 8px;background:#fff;border:1px solid #e5e7eb;border-radius:6px;font-size:11px;color:#6b7280;word-break:break-all}.tabs-container{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.tabs-header{display:flex;border-bottom:1px solid #e5e5e5;background-color:#f9fafb;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;flex-shrink:0}.tabs-header::-webkit-scrollbar{display:none}.tab-button{flex:1;min-width:100px;display:flex;align-items:center;justify-content:center;gap:6px;padding:12px 16px;border:none;border-bottom:3px solid transparent;background:none;cursor:pointer;transition:all .2s ease;color:#6b7280;font-size:14px;font-weight:500;outline:none}.tab-button:hover:not(.active):not(:disabled){color:#374151;background-color:#f3f4f6}.tab-button:focus{outline:none;border-left:none;border-right:none;border-top:none}.tab-button.active{color:#dc2626;background-color:#fff;border-bottom-color:#dc2626;border-left:none;border-right:none;border-top:none}.tab-button:disabled{opacity:.5;cursor:not-allowed}.tab-icon{font-size:16px}.tab-label{white-space:nowrap}.tab-content{flex:1;overflow-y:auto;min-height:0;display:flex;flex-direction:column}.tab-content h4{margin:0 0 12px;color:#374151;font-size:16px;font-weight:600;border-bottom:1px solid #e5e5e5;padding-bottom:6px}.tab-content h4:not(:first-child){margin-top:24px}.form-group textarea{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;transition:border-color .15s ease;background-color:#fff;color:#374151;resize:vertical;min-height:80px;font-family:inherit}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px 0;border-bottom:1px solid #e5e5e5;margin-bottom:16px}.modal-header h2{margin:0;color:#111827;font-size:18px;font-weight:600;letter-spacing:-.025em}.close-button{background:none;border:none;font-size:20px;cursor:pointer;color:#6b7280;padding:4px;border-radius:4px;transition:all .15s ease}.coach-form{display:flex;flex-direction:column;flex:1;padding:16px;overflow-y:auto;min-height:0}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:8px}.form-group{display:flex;flex-direction:column}.form-group label{font-weight:500;color:#374151;margin-bottom:2px;font-size:14px}.form-group input,.form-group select{padding:6px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;transition:border-color .15s ease;background-color:#fff;color:#374151}.checkbox-group{justify-content:center;align-items:center;margin-top:12px}.checkbox-label{display:flex;align-items:center;cursor:pointer;font-weight:500;color:#374151;font-size:14px}.checkbox-label input[type=checkbox]{margin-right:8px;width:16px;height:16px;cursor:pointer}.error-message{background-color:#fef2f2;border:1px solid #fecaca;border-radius:6px;padding:10px;margin-bottom:12px}.error-message p{margin:0;color:#dc2626;font-size:14px}.loading-message{background-color:#f0f9ff;border:1px solid #bae6fd;border-radius:6px;padding:10px;margin-bottom:12px}.loading-message p{margin:0;color:#0369a1;font-size:14px;font-weight:500}.form-actions{display:flex;justify-content:flex-end;align-items:center;gap:12px;padding:12px 20px 20px;border-top:1px solid #e5e5e5;background:#fff;margin-top:auto;flex-shrink:0;flex-wrap:wrap}.cancel-button,.submit-button{padding:8px 16px;border-radius:6px;font-weight:500;font-size:14px;cursor:pointer;transition:all .15s ease;border:none}.cancel-button{background-color:#f9fafb;color:#374151;border:1px solid #d1d5db}.cancel-button:hover:not(:disabled){background-color:#f3f4f6}.submit-button{background-color:#dc2626;color:#fff}.submit-button:hover:not(:disabled){background-color:#b91c1c}.delete-button{padding:8px 16px;border-radius:6px;font-weight:500;font-size:14px;cursor:pointer;transition:all .15s ease;border:1px solid #dc3545;background-color:#dc3545;color:#fff}.delete-button:hover:not(:disabled){background-color:#c82333;border-color:#c82333}.link-user-button,.unlink-user-button{padding:8px 16px;border-radius:6px;font-weight:500;font-size:14px;cursor:pointer;transition:all .15s ease;border:none}.link-user-button{background-color:#2563eb;color:#fff;border:1px solid #2563eb}.link-user-button:hover:not(:disabled){background-color:#1d4ed8;border-color:#1d4ed8}.unlink-user-button{background-color:#f59e0b;color:#fff;border:1px solid #f59e0b}.unlink-user-button:hover:not(:disabled){background-color:#d97706;border-color:#d97706}.email-with-link{display:flex;flex-direction:column;gap:8px}.email-with-link input[type=email]{width:100%}.email-link-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.inline-link-user-button,.inline-unlink-user-button{padding:8px 14px;border-radius:6px;font-weight:500;font-size:13px;cursor:pointer;transition:all .15s ease;border:none;white-space:nowrap;flex-shrink:0}.inline-link-user-button{background-color:#2563eb;color:#fff;border:1px solid #2563eb}.inline-link-user-button:hover:not(:disabled){background-color:#1d4ed8;border-color:#1d4ed8}.inline-unlink-user-button{background-color:#f59e0b;color:#fff;border:1px solid #f59e0b}.inline-unlink-user-button:hover:not(:disabled){background-color:#d97706;border-color:#d97706}.inline-link-user-form{display:flex;gap:6px;align-items:center;flex-wrap:wrap;width:100%}.user-select-inline{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:13px;min-width:180px;background-color:#fff;flex:1}.user-select-inline:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 1px #2563eb}.link-user-submit-inline{padding:8px 14px;border-radius:6px;font-weight:500;font-size:13px;cursor:pointer;transition:all .15s ease;border:none;background-color:#16a34a;color:#fff;white-space:nowrap;flex-shrink:0}.link-user-submit-inline:hover:not(:disabled){background-color:#15803d}.link-user-cancel-inline{padding:8px 14px;border-radius:6px;font-weight:500;font-size:13px;cursor:pointer;transition:all .15s ease;background-color:#f9fafb;color:#374151;border:1px solid #d1d5db;white-space:nowrap;flex-shrink:0}.link-user-cancel-inline:hover:not(:disabled){background-color:#f3f4f6}.link-user-form{display:flex;gap:8px;align-items:center}.user-select{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;min-width:200px;background-color:#fff}.user-select:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 1px #2563eb}.link-user-submit{padding:8px 16px;border-radius:6px;font-weight:500;font-size:14px;cursor:pointer;transition:all .15s ease;border:none;background-color:#16a34a;color:#fff}.link-user-submit:hover:not(:disabled){background-color:#15803d}.link-user-cancel{padding:8px 16px;border-radius:6px;font-weight:500;font-size:14px;cursor:pointer;transition:all .15s ease;background-color:#f9fafb;color:#374151;border:1px solid #d1d5db}.link-user-cancel:hover:not(:disabled){background-color:#f3f4f6}.cancel-button:disabled,.submit-button:disabled,.delete-button:disabled,.link-user-button:disabled,.unlink-user-button:disabled,.link-user-submit:disabled,.link-user-cancel:disabled,.inline-link-user-button:disabled,.inline-unlink-user-button:disabled,.link-user-submit-inline:disabled,.link-user-cancel-inline:disabled{opacity:.5;cursor:not-allowed}@media(max-width:768px){.coach-form-modal{max-width:95vw;margin:10px}.tab-button{min-width:80px;padding:10px 12px;font-size:13px}.tab-icon{font-size:14px}.tab-content{padding:20px}}@media(max-width:640px){.modal-overlay{padding:16px}.modal-content{max-height:95vh}.coach-form-modal{max-width:100%;margin:0}.modal-header{padding:16px 20px 0;margin-bottom:0}.coach-form{padding:0 16px 16px}.tab-content{padding:12px 16px}.form-row{grid-template-columns:1fr;gap:10px;margin-bottom:10px}.modal-header h2{font-size:16px}.tab-button{min-width:60px;padding:8px 6px;font-size:12px;gap:4px}.tab-icon{font-size:14px}}.submit-button:disabled{position:relative}.submit-button:disabled:after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:14px;height:14px;border:2px solid transparent;border-top:2px solid currentColor;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}.confirmation-dialog{background:#fff;border-radius:8px;box-shadow:0 25px 50px -12px #00000040;max-width:400px;width:90%;padding:24px;text-align:center}.coaches-container{display:flex;flex-direction:column;height:100vh;overflow:hidden;padding:32px}.coaches-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding:0 0 16px;border-bottom:1px solid #e5e5e5;flex-shrink:0;background:#fff;z-index:10}.coaches-header h2{color:#111827;margin:0;font-size:20px;font-weight:600;letter-spacing:-.025em}.active-filter-select{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;outline:none;transition:border-color .15s ease;background-color:#fff;cursor:pointer;color:#374151}.active-filter-select:focus{border-color:#dc2626;box-shadow:0 0 0 1px #dc2626}.search-container{margin-right:0}.filter-dropdown{position:relative;display:inline-block}.filter-toggle-button{padding:8px 16px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease;background-color:#fff;color:#374151;white-space:nowrap;position:relative}.filter-toggle-button:hover{background-color:#f9fafb;border-color:#dc2626}.filter-toggle-button.has-filters{border-color:#dc2626;background-color:#fef2f2;color:#dc2626}.filter-indicator{position:absolute;top:-4px;right:-4px;width:10px;height:10px;background-color:#dc2626;border:2px solid white;border-radius:50%;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.export-dropdown-content{display:none;position:absolute;background-color:#fff;min-width:160px;box-shadow:0 8px 16px #0003;border-radius:6px;z-index:1;right:0;top:100%;margin-top:4px;border:1px solid #e5e7eb}.export-option{color:#374151;padding:8px 12px;text-decoration:none;display:block;background:none;border:none;width:100%;text-align:left;cursor:pointer;font-size:14px;transition:background-color .15s ease}.coaches-stats{display:flex;gap:16px;margin-bottom:24px;flex-shrink:0}.stat-card{background-color:#fafafa;padding:16px;border-radius:6px;border:1px solid #e5e5e5;text-align:center;min-width:100px}.stat-number{display:block;font-size:24px;font-weight:600;color:#111827;margin-bottom:4px;letter-spacing:-.025em}.stat-label{display:block;font-size:12px;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;font-weight:500}.age-groups-section{margin-bottom:24px;padding:16px;background-color:#fafafa;border-radius:6px;border:1px solid #e5e5e5;flex-shrink:0;z-index:9}.coaches-content-wrapper{flex:1;min-height:0;padding:0}.age-groups-section h3{margin:0 0 12px;font-size:16px;font-weight:600;color:#111827;letter-spacing:-.025em}.age-groups-header{justify-content:flex-end;align-items:center;margin-bottom:12px;min-height:24px}.age-groups-content{display:flex;justify-content:space-between;align-items:center;gap:16px}.age-groups-list{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.age-groups-content{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.filter-selects-container{display:flex;gap:16px;align-items:flex-start;flex:1}.view-toggle-container{display:flex;align-items:flex-start;flex-shrink:0}.training-group-dropdown,.strokes-dropdown{flex-shrink:0}.training-group-select{padding:6px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:13px;outline:none;transition:border-color .15s ease;background-color:#fff;cursor:pointer;color:#374151;min-width:160px}.training-group-select:focus{border-color:#dc2626;box-shadow:0 0 0 1px #dc2626}.strokes-select-container{flex-shrink:0}.strokes-select{padding:6px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:13px;outline:none;transition:border-color .15s ease;background-color:#fff;cursor:pointer;color:#374151;min-width:140px}.strokes-select:focus{border-color:#dc2626;box-shadow:0 0 0 1px #dc2626}.age-groups-loading{color:#6b7280;font-size:14px;text-align:center;padding:12px}.age-groups-error{text-align:center;color:#dc2626;padding:12px}.age-groups-error p{margin:0 0 8px;font-size:14px}.retry-button{padding:6px 12px;background-color:#dc2626;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px;transition:background-color .15s ease}.filters-panel{position:absolute;top:calc(100% + 8px);left:0;background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:20px;box-shadow:0 10px 25px #0000001a,0 4px 10px #0000000d;z-index:1000;min-width:320px;animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.filters-content{display:flex;flex-direction:column;gap:16px}.clear-filters-btn{padding:8px 16px;background:#6c757d;color:#fff;border:none;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .15s ease;margin-top:8px;width:100%}.filter-item{display:flex;flex-direction:column;gap:6px}.filter-item label{font-size:14px;font-weight:500;color:#374151}.filter-item .active-filter-select{width:100%}@media(max-width:768px){.coaches-container{padding:24px}.coaches-header{flex-direction:column;align-items:flex-start;gap:16px}.header-actions{width:100%;flex-direction:column;align-items:stretch;gap:12px}.search-input{width:100%}.coaches-stats{flex-direction:column;gap:12px}.stat-card{text-align:left}}.season-planning{padding:32px;width:calc(100vw - 240px);height:100vh;max-width:calc(100vw - 240px);max-height:100vh;overflow:auto;background:#fff;position:fixed;top:0;left:240px;box-sizing:border-box;display:flex;flex-direction:column;transition:width .3s ease,left .3s ease}.sidebar.collapsed~.main-content .season-planning{width:calc(100vw - 60px);max-width:calc(100vw - 60px);left:60px}.season-planning h2{color:#111827;font-size:24px;font-weight:600;margin:0 0 24px;letter-spacing:-.025em;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;flex-shrink:0}.planning-table-container{flex:1;overflow:auto;border-radius:8px;box-shadow:0 4px 6px -1px #0000001a;width:100%;max-width:calc(100vw - 304px);transition:max-width .3s ease}.sidebar.collapsed~.main-content .planning-table-container{max-width:calc(100vw - 124px)}.planning-table{border:1px solid #e5e5e5;background:#fff;border-collapse:collapse;min-width:2000px;width:max-content;font-size:11px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;border-radius:8px;overflow:visible;box-shadow:0 4px 6px -1px #0000001a;flex-shrink:0}.table-row{display:flex;border-bottom:1px solid #e5e5e5;min-height:25px}.header-row{background:#fafafa;font-weight:600;min-height:33px;position:sticky;top:0;z-index:100;border-bottom:2px solid #e5e5e5}.weeks-row{min-height:66px;position:sticky;top:33px;z-index:99;background:#fff;border-bottom:2px solid #e5e5e5}.activities-row{min-height:248px}.volume-header-row .row-label{border-bottom:1px solid #6b7280}.row-label{min-width:132px;max-width:132px;border-right:1px solid #e5e5e5;background:#fafafa;display:flex;align-items:center;justify-content:center;font-weight:600;padding:4px;text-align:center;font-size:12px;writing-mode:horizontal-tb;color:#374151}.volume-header{writing-mode:vertical-lr;text-orientation:mixed;height:100%}.weeks-container{display:flex;flex:1}.volume-weeks{flex:1}.month-header{display:flex;align-items:center;justify-content:center;font-weight:600;border-right:1px solid #374151;text-align:center;padding:4px 2px;background:#f3f4f6;width:calc(var(--weeks) * 35px);min-width:calc(var(--weeks) * 35px);color:#111827}.week-cell{width:35px;min-width:35px;border-right:1px solid #e5e5e5;display:flex;align-items:center;justify-content:center;padding:2px;text-align:center;font-size:9px;cursor:pointer;transition:all .15s ease;color:#6b7280}.week-cell:hover{background-color:#f3f4f6;color:#374151}.week-cell.selected{background-color:#dc2626;color:#fff}.activity-cell{width:35px;min-width:35px;border-right:1px solid #e5e5e5;padding:2px;text-align:center;font-size:8px;position:relative;overflow:hidden}.activity-text{transform:rotate(-90deg);white-space:nowrap;position:absolute;left:50%;top:50%;transform-origin:center;transform:translate(-50%,-50%) rotate(-90deg);font-size:7px;line-height:1;max-width:200px;color:#374151;font-weight:500}.competition-cell{width:35px;min-width:35px;border-right:1px solid #e5e5e5;background:#f9fafb}.competition-cell.has-competition{background:#fef3c7}.camp-cell{width:35px;min-width:35px;border-right:1px solid #e5e5e5;background:#f9fafb}.camp-cell.has-camp{background:#dcfce7}.test-cell{width:35px;min-width:35px;border-right:1px solid #e5e5e5;background:#f9fafb}.test-cell.has-test{background:#fef2f2}.competitions-cell{width:35px;min-width:35px;border-right:1px solid #e5e5e5;background:#f9fafb}.competitions-cell.has-competitions{background:#fef3c7}.trainingcamp-cell{width:35px;min-width:35px;border-right:1px solid #e5e5e5;background:#f9fafb}.trainingcamp-cell.has-trainingcamp{background:#dcfce7}.tests-cell{width:35px;min-width:35px;border-right:1px solid #e5e5e5;background:#f9fafb}.tests-cell.has-tests{background:#fef2f2}.other-cell{width:35px;min-width:35px;border-right:1px solid #e5e5e5;background:#fafafa}.other-cell.has-other{background:#f3f4f6}.activity-count{display:flex;align-items:center;justify-content:center;width:18px;height:18px;background:#ffffffe6;border-radius:50%;font-size:10px;font-weight:700;color:#374151;margin:auto;border:1px solid rgba(0,0,0,.1);box-shadow:0 1px 2px #0000001a}.activity-tooltip{background:#fff;border:1px solid #e5e5e5;border-radius:8px;box-shadow:0 10px 25px #00000026;max-width:300px;font-size:12px;z-index:1000}.tooltip-header{background:#f8f9fa;padding:8px 12px;border-bottom:1px solid #e5e5e5;border-radius:7px 7px 0 0;font-weight:600;color:#374151}.tooltip-content{padding:8px 12px}.tooltip-activity{margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid #f1f1f1}.tooltip-activity:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.activity-name{font-weight:600;color:#111827;margin-bottom:2px}.activity-dates{color:#6b7280;font-size:11px}.micro-cell{width:35px;min-width:35px;border-right:1px solid #e5e5e5;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:10px;background:#fef3c7;color:#92400e}.meso-cell{width:35px;min-width:35px;height:25px;border-right:1px solid #e5e5e5;display:flex;align-items:center;justify-content:center;position:relative;font-size:9px;font-weight:600;text-align:center;cursor:pointer;transition:all .15s ease}.meso-cell:hover{transform:scale(1.02);box-shadow:0 2px 4px #0000001a;z-index:10}.meso-cell.selected{border:2px solid #dc2626;box-shadow:0 4px 8px #dc26264d;z-index:10}.meso-label{writing-mode:horizontal-tb;text-orientation:mixed;display:flex;align-items:center;justify-content:center;font-weight:700;text-shadow:1px 1px 2px rgba(0,0,0,.3);white-space:nowrap}.macro-cell{width:35px;min-width:35px;height:25px;border-right:1px solid #e5e5e5;display:flex;align-items:center;justify-content:center;position:relative;font-size:9px;font-weight:600;text-align:center;cursor:pointer;transition:all .15s ease}.macro-cell:hover{transform:scale(1.02);box-shadow:0 2px 4px #0000001a;z-index:10}.macro-cell.selected{border:2px solid #dc2626;box-shadow:0 4px 8px #dc26264d;z-index:10}.macro-label{writing-mode:horizontal-tb;text-orientation:mixed;height:100%;display:flex;align-items:center;justify-content:center;white-space:nowrap;font-weight:700;text-shadow:1px 1px 2px rgba(0,0,0,.3)}.sessions-cell{width:35px;min-width:35px;border-right:1px solid #e5e5e5;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:10px;background:#fafafa;color:#374151}.water-sessions-cell{background:#dbeafe;color:#1e40af}.gym-sessions-cell{background:#fef3c7;color:#92400e}.volume-week-cell{width:35px;min-width:35px;border-right:1px solid #e5e5e5;border-bottom:1px solid #6b7280}.volume-cell{width:35px;min-width:35px;border-right:1px solid #e5e5e5;min-height:33px}.volume-bar-cell{height:130px;display:flex;align-items:flex-end;justify-content:center;position:relative;padding:10px 2px 20px}.volume-bar-container{width:20px;display:flex;flex-direction:column;align-items:center;position:relative;min-height:2px}.volume-bar{width:20px;background:linear-gradient(to top,#e5e7eb,#f3f4f6);border-radius:2px;position:relative;transition:all .3s ease;min-height:2px;box-shadow:0 1px 3px #0000001a;border:1px solid #d1d5db}.completion-indicator{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,#10b981,#34d399);border-radius:1px;transition:all .3s ease;box-shadow:inset 0 1px 2px #0000001a}.volume-bar-container:hover .volume-bar{background:linear-gradient(to top,#d1d5db,#e5e7eb);transform:scaleX(1.1)}.volume-bar-container:hover .completion-indicator{background:linear-gradient(to top,#059669,#10b981)}.volume-values{position:absolute;bottom:-18px;display:flex;flex-direction:column;align-items:center;gap:1px}.volume-value{font-size:8px;font-weight:600;color:#374151;text-align:center;white-space:nowrap}.sessions-value{font-size:7px;font-weight:600;color:#10b981;text-align:center;white-space:nowrap}.volume-row{min-height:33px}.volume-label{background:#fafafa;border-bottom:none}.planning-legend{margin-top:30px;background:#fff;padding:20px;border:1px solid #e5e5e5;border-radius:8px;box-shadow:0 4px 6px -1px #0000001a}.planning-legend h3{margin-top:0;margin-bottom:15px;color:#111827;font-size:18px;font-weight:600}.legend-section{margin-bottom:15px}.legend-section h4{margin:0 0 10px;color:#374151;font-size:14px;font-weight:500}.legend-items{display:flex;flex-wrap:wrap;gap:15px}.legend-item{display:flex;align-items:center;gap:8px}.legend-item span{color:#6b7280;font-size:13px}.legend-color{width:20px;height:15px;border:1px solid #e5e5e5;border-radius:3px}.week-details{margin-top:20px;background:#fafafa;padding:16px 20px;border-radius:8px;border:1px solid #e5e5e5;box-shadow:0 4px 6px -1px #0000001a}.week-details h3{margin-top:0;color:#111827;font-size:18px;font-weight:600;margin-bottom:12px}.week-details p{margin:8px 0;color:#6b7280;font-size:14px;line-height:1.5}.week-details p strong{color:#374151;font-weight:500}.week-activities{margin-top:12px}.activity-group{margin-bottom:6px;padding:6px 8px;background:#f8f9fa;border-radius:3px;border-left:3px solid #3b82f6}.group-title{margin:0 0 3px;color:#1f2937;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;line-height:1.2}.activity-list{list-style:none;padding:0;margin:0}.activity-item{line-height:1}.activity-item:last-child{border-bottom:none;padding-bottom:0}.activity-name{font-weight:500;color:#111827;margin-bottom:1px;font-size:12px;line-height:1.3}.activity-details{display:flex;flex-wrap:wrap;gap:8px;font-size:10px;line-height:1.2}.activity-dates{color:#059669;font-weight:500}.activity-type{color:#7c3aed;font-weight:500;text-transform:capitalize}.activities-summary{margin-top:8px;padding:4px 8px;border-top:1px solid #e5e7eb;background:#f3f4f6;border-radius:3px}.activities-summary p{margin:0;font-size:11px;color:#374151;line-height:1.3}.session-breakdown{margin-top:8px;padding:8px 12px;background:#f8f9fa;border-radius:4px;border-left:3px solid #3b82f6}.session-breakdown p{margin:4px 0;font-size:12px;line-height:1.3}.session-meters{color:#6b7280;font-weight:400;font-style:italic}.cycle-details{margin-top:20px;background:#fafafa;padding:16px 20px;border-radius:8px;border:1px solid #e5e5e5;box-shadow:0 4px 6px -1px #0000001a}.details-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.details-header h3,.week-details .details-header h3{margin:0;color:#111827;font-size:18px;font-weight:600}.cycle-details h3{margin-top:0;color:#111827;font-size:18px;font-weight:600;margin-bottom:12px}.close-button{background:none;border:none;font-size:24px;font-weight:700;color:#6b7280;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease;line-height:1}.close-button:hover{background-color:#f3f4f6;color:#374151;transform:scale(1.1)}.close-button:active{background-color:#e5e7eb;transform:scale(.95)}.cycle-details h4{margin:12px 0 6px;color:#374151;font-size:14px;font-weight:600}.cycle-details p{margin:8px 0;color:#6b7280;font-size:14px;line-height:1.5}.cycle-details p strong{color:#374151;font-weight:500}.meso-details{border-left:4px solid #3b82f6}.macro-details{border-left:4px solid #059669}.contained-cycles{margin-top:12px;padding:8px 12px;background:#f8f9fa;border-radius:4px;border-left:3px solid #6b7280}.contained-cycles h4{margin-top:0;margin-bottom:6px;color:#374151;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.contained-cycles p{margin:3px 0;font-size:12px;line-height:1.3}@media(max-width:1200px){.season-planning{padding:10px 16px}.planning-table{font-size:10px}.legend-items{gap:10px}.season-planning h2{font-size:20px}}@media(max-width:768px){.season-planning{padding:16px 12px}.season-planning h2{font-size:18px;margin-bottom:16px}.planning-legend{padding:16px}.week-details{padding:12px 16px}.planning-table{font-size:9px}.week-cell,.activity-cell,.competition-cell,.camp-cell,.test-cell,.other-cell,.micro-cell,.meso-cell,.sessions-cell,.volume-cell{width:30px;min-width:30px}}@media print{.season-planning{padding:0}.week-details{display:none}.planning-legend{margin-top:20px;break-inside:avoid}.planning-table{font-size:9px}}.season-planning,.planning-table-container{scrollbar-width:thin;scrollbar-color:#9ca3af #f3f4f6}.season-planning::-webkit-scrollbar:horizontal,.planning-table-container::-webkit-scrollbar:horizontal{height:12px}.season-planning::-webkit-scrollbar:vertical,.planning-table-container::-webkit-scrollbar:vertical{width:8px}.season-planning::-webkit-scrollbar-track,.planning-table-container::-webkit-scrollbar-track{background:#f3f4f6;border-radius:6px;margin:2px}.season-planning::-webkit-scrollbar-thumb,.planning-table-container::-webkit-scrollbar-thumb{background:#9ca3af;border-radius:6px;border:1px solid #f3f4f6}.season-planning::-webkit-scrollbar-thumb:hover,.planning-table-container::-webkit-scrollbar-thumb:hover{background:#6b7280}.season-planning::-webkit-scrollbar-corner,.planning-table-container::-webkit-scrollbar-corner{background:#f3f4f6}.visualizer-overlay{position:fixed;inset:0;width:100vw;height:100vh;background:#fff;z-index:9999;display:flex;flex-direction:column;animation:slideIn .3s ease-out}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.visualizer-container{display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden}.visualizer-header{background:linear-gradient(135deg,#007bff,#0056b3);color:#fff;padding:0;display:flex;justify-content:space-between;align-items:stretch;flex-shrink:0;position:relative;min-height:70px}.visualizer-header.live-mode{background:linear-gradient(135deg,#dc2626,#991b1b);animation:pulse-glow 2s ease-in-out infinite}@keyframes pulse-glow{0%,to{box-shadow:0 4px 20px #dc262666}50%{box-shadow:0 4px 30px #dc2626b3}}.live-badge{position:absolute;top:80px;left:50%;transform:translate(-50%);background:#fffc;color:#dc2626;padding:8px 24px;border-radius:24px;font-size:20px;font-weight:800;letter-spacing:2px;box-shadow:0 4px 12px #0000004d;display:flex;align-items:center;gap:8px;z-index:10}@keyframes blink{0%,49%,to{opacity:1}50%,99%{opacity:.3}}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.8}}.live-badge-container{position:absolute;top:-2px;left:50%;transform:translate(-50%);z-index:100;cursor:pointer}.live-badge{background:#fffc;color:#dc2626;padding:8px 24px;border-radius:24px;font-size:20px;font-weight:800;letter-spacing:2px;box-shadow:0 4px 12px #0000004d;display:flex;flex-direction:column;align-items:center;gap:0;white-space:nowrap;transition:all .3s ease;min-width:fit-content}.live-badge.expanded{background:#fffffffa;box-shadow:0 6px 20px #0006;padding:12px 20px;border-radius:16px;gap:12px;min-width:300px;max-width:400px}.live-badge-header{display:flex;align-items:center;gap:8px;white-space:nowrap}.live-badge-users{display:flex;flex-direction:column;gap:8px;width:100%;padding-top:8px;border-top:2px solid rgba(220,38,38,.2)}.live-user-item{display:flex;align-items:center;gap:10px;padding:6px 8px;background:#dc26260d;border-radius:8px;transition:background .2s}.live-user-item:hover{background:#dc26261a}.live-user-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#dc2626,#991b1b);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;flex-shrink:0}.live-user-info{flex:1;min-width:0;text-align:left}.live-user-name{font-weight:600;color:#1f2937;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.5px}.live-user-email{font-size:11px;color:#6b7280;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:0}.connected-users-dropdown,.connected-users-toggle,.users-toggle-btn{display:none}.connected-users-header{background:#f3f4f6;padding:12px 16px;font-weight:600;color:#1f2937;font-size:14px;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #e5e7eb}.connected-users-list{max-height:300px;overflow-y:auto}.connected-user-item{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid #f3f4f6;transition:background .15s}.connected-user-item:last-child{border-bottom:none}.connected-user-item:hover{background:#f9fafb}.user-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#007bff,#0056b3);color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:600;flex-shrink:0}.user-info{flex:1;min-width:0}.user-name{font-weight:600;color:#1f2937;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-email{font-size:12px;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.visualizer-header h3{margin:0;font-size:20px;font-weight:600;flex-shrink:0;display:flex;align-items:center;padding:0 25px}.visualizer-header .control-buttons{display:flex;gap:10px;flex:0;justify-content:flex-start;align-items:stretch;padding:4px 0 4px 15px}.active-task-container{flex:1;display:flex;align-items:stretch;justify-content:flex-end;padding:10px;gap:10px;flex-wrap:wrap}.active-task-display{display:flex;align-items:center;gap:12px;background:#ffffff26;padding:14px 20px;border-radius:6px;max-width:450px;height:52px}.active-task-label{font-size:16px;font-weight:600;opacity:.8;text-transform:uppercase;letter-spacing:.5px}.active-task-info{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:600}.active-task-rep{background:#28a745;color:#fff;padding:4px 12px;border-radius:6px;font-size:17px;font-weight:700}.active-task-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.visualizer-close{height:52px;min-width:60px;padding:14px 20px;border-radius:8px;border:2px solid rgba(255,255,255,.25);background:linear-gradient(135deg,#ffffff26,#ffffff0d);color:#fff;font-size:28px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;line-height:1;flex-shrink:0;box-shadow:0 4px 12px #00000026;-webkit-tap-highlight-color:transparent}.visualizer-close:hover{background:linear-gradient(135deg,#ffffff40,#ffffff26);border-color:#fff6;box-shadow:0 6px 16px #0003;transform:translateY(-1px)}.visualizer-close:active{transform:translateY(0)}.custom-dropdown{position:relative;min-width:200px;-webkit-user-select:none;user-select:none}.custom-dropdown-selected{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;height:52px;border-radius:8px;border:2px solid rgba(255,255,255,.25);background:linear-gradient(135deg,#ffffff26,#ffffff0d);color:#fff;font-size:17px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #00000026;-webkit-tap-highlight-color:transparent}.custom-dropdown-selected:hover{background:linear-gradient(135deg,#ffffff40,#ffffff26);border-color:#fff6;box-shadow:0 6px 16px #0003;transform:translateY(-1px)}.custom-dropdown-selected:active{transform:translateY(0)}.custom-dropdown-arrow{flex-shrink:0;transition:transform .3s ease}.custom-dropdown-options{position:absolute;top:calc(100% + 8px);left:0;right:0;max-height:400px;overflow-y:auto;background:#1e3a8a;border-radius:8px;box-shadow:0 8px 24px #0000004d;z-index:1000;animation:dropdownSlide .2s ease}.custom-dropdown-option{padding:20px 24px;font-size:18px;font-weight:600;color:#fff;cursor:pointer;transition:all .2s ease;border-bottom:1px solid rgba(255,255,255,.1);-webkit-tap-highlight-color:transparent;min-height:60px;display:flex;align-items:center}.custom-dropdown-option:last-child{border-bottom:none}.custom-dropdown-option:hover{background:#ffffff26}.custom-dropdown-option:active{background:#ffffff40;transform:scale(.98)}.custom-dropdown-option.selected{background:#fff3;font-weight:700}.group-selector{padding:14px 40px 14px 20px;border-radius:8px;border:2px solid rgba(255,255,255,.25);background:linear-gradient(135deg,#ffffff26,#ffffff0d);color:#fff;font-size:17px;font-weight:600;cursor:pointer;outline:none;transition:all .3s ease;box-shadow:0 4px 12px #00000026;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='white' d='M8 12L2 5h12z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;min-width:200px;height:52px;-webkit-tap-highlight-color:transparent}.group-selector:hover{background:linear-gradient(135deg,#ffffff40,#ffffff26);border-color:#fff6;box-shadow:0 6px 16px #0003;transform:translateY(-1px)}.group-selector:focus{border-color:#fff9;box-shadow:0 0 0 3px #ffffff26,0 6px 16px #0003}.group-selector option{background:#1e3a8a;color:#fff;padding:20px 24px;font-weight:600;font-size:18px;line-height:1.8;min-height:60px}.visualizer-content{padding-top:25px;padding-left:50px;padding-right:50px;flex:1;position:relative;display:flex;flex-direction:column;overflow-y:auto}.visualizer-progress-line{position:absolute;top:0;bottom:0;width:3px;background:#28a745;z-index:100;transition:none;pointer-events:auto;box-shadow:0 0 10px #28a74580;margin-left:-1.5px;cursor:grab}.visualizer-progress-line:active,.visualizer-progress-line.dragging{cursor:grabbing}.time-marker-moving{position:absolute;left:50%;top:61px;transform:translate(-50%);background:#28a745;color:#fff;padding:15px 30px;border-radius:10px;font-size:24px;font-weight:700;white-space:nowrap;font-family:Courier New,monospace;box-shadow:0 4px 12px #0006;min-width:120px;text-align:center;cursor:grab;-webkit-user-select:none;user-select:none}.visualizer-progress-line:active .time-marker-moving,.visualizer-progress-line.dragging .time-marker-moving{cursor:grabbing}.time-marker-moving:after{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%);width:0;height:0;border-left:10px solid transparent;border-right:10px solid transparent;border-bottom:10px solid #28a745}.visualizer-empty{text-align:center;padding:60px 20px;color:#6c757d}.control-buttons{display:flex;gap:10px}.control-btn{padding:0 20px;border:none;border-radius:6px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:5px;min-width:120px}.control-btn:disabled{opacity:.5;cursor:not-allowed}.control-btn.active{background:#ffffff4d;box-shadow:inset 0 2px 4px #0003}.start-btn{background:#28a745;color:#fff}.start-btn:hover:not(:disabled){background:#218838}.pause-btn{background:#ffc107;color:#333}.pause-btn:hover:not(:disabled){background:#e0a800}.reset-btn{background:#ffffffe6;color:#007bff}.reset-btn:hover{background:#fff}.run-btn{background:linear-gradient(135deg,#28a745,#218838);color:#fff;font-weight:700}.run-btn:hover:not(:disabled){background:linear-gradient(135deg,#218838,#1e7e34);transform:translateY(-1px);box-shadow:0 4px 12px #28a74566}.clear-btn{background:#dc3545;color:#fff}.clear-btn:hover{background:#c82333}.visualizer-time-scale{position:relative;height:30px;border-bottom:2px solid #dee2e6;margin-bottom:20px;background:#fff}.visualizer-time-marker{position:absolute;font-size:11px;color:#6c757d;transform:translate(-50%);white-space:nowrap;z-index:2}.visualizer-time-marker:before{content:"";position:absolute;top:20px;left:50%;width:1px;height:6px;background:#dee2e6}.visualizer-groups{display:flex;flex-direction:column;flex:1;gap:10px}.visualizer-group{flex:1;min-height:120px;border:1px solid #dee2e6;border-radius:8px;overflow:visible;background:#f8f9fa;display:flex;flex-direction:column}.visualizer-group-header{background:#fff;padding:12px 15px;border-bottom:1px solid #dee2e6;display:flex;align-items:center;gap:15px}.visualizer-group-name{font-weight:600;font-size:15px;color:#333}.visualizer-group-stats{display:flex;gap:15px;font-size:13px;color:#6c757d}.visualizer-group-total{color:#007bff;font-weight:600}.visualizer-timeline{position:relative;min-height:80px;padding:10px 0;background:#f8f9fa;overflow:visible;flex:1}.visualizer-block{position:absolute;min-height:60px;height:auto;border-radius:6px;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;padding:8px;box-shadow:0 2px 4px #0000001a;border:2px solid transparent;overflow:visible}.visualizer-block.expanded{align-items:flex-start;z-index:20;padding-bottom:12px}.visualizer-block:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0003;z-index:10}.visualizer-block.selected{border-color:#ffc107;box-shadow:0 0 0 3px #ffc1074d;z-index:20}.visualizer-block.is-base{opacity:1}.visualizer-block-content{color:#fff;text-align:center;font-size:11px;font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.3);width:100%;display:flex;flex-direction:column;align-items:center;gap:4px}.visualizer-block-header{display:flex;gap:4px;justify-content:center;align-items:center;margin-bottom:2px}.visualizer-block-rep-counter{background:#007bff;color:#fff;padding:3px 10px;border-radius:12px;font-size:16px;font-weight:600;margin-right:8px;box-shadow:0 1px 3px #0003;transition:background .3s ease}.visualizer-block-rep-counter.completed{background:#28a745}.visualizer-block-rep{background:#0003;padding:2px 6px;border-radius:10px;font-size:20px}.visualizer-block-status-icon{display:inline-block;margin-left:8px;font-size:24px;color:#28a745;font-weight:700}.visualizer-block-current-rep{background:#28a745;color:#fff;padding:2px 8px;border-radius:10px;font-size:18px;margin-left:8px;font-weight:600}.visualizer-block-zone{font-size:20px;font-weight:700}.visualizer-block-distance{font-size:14px;opacity:.9}.visualizer-block-tasks-inner{margin-top:10px;padding:8px;background:#fff;color:#333;border-radius:4px;width:100%;font-size:22px;text-align:left;line-height:1.5;min-width:150px;box-shadow:0 2px 4px #0000001a}.visualizer-task-inline{padding:8px 0;white-space:normal;word-break:break-word;border-bottom:1px solid #e5e5e5;transition:all .3s ease}.visualizer-task-inline.status-completed{opacity:.6;text-decoration:line-through}.visualizer-task-inline.status-in-progress{background:#28a7451a;border:3px solid #000000;padding:4px 8px;font-weight:600;box-shadow:0 0 8px #0000004d}.visualizer-task-inline.status-pending{opacity:.8}.task-status-icon{display:inline-block;margin-right:8px;padding:2px 6px;background:#28a745;color:#fff;border-radius:4px;font-size:16px;font-weight:600}.visualizer-task-inline.status-completed .task-status-icon{background:#6c757d}.visualizer-task-inline:last-child{border-bottom:none}.visualizer-interval-inline{padding:8px 0;font-size:20px;color:#007bff;font-weight:600;border-bottom:1px solid #e5e5e5}.visualizer-interval-inline:last-child{border-bottom:none}.task-main{position:relative;padding-right:50px;font-weight:500;margin-bottom:4px}.task-rep-counter{position:absolute;top:2px;right:4px;background:#007bff;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600;color:#fff;box-shadow:0 1px 3px #0003;transition:background .3s ease}.task-rep-counter.completed{background:#28a745}.task-comments{display:flex;flex-direction:column;gap:4px;margin-top:6px}.task-comment{font-size:18px;color:#6c757d;font-style:italic;padding-left:8px;border-left:3px solid #e5e5e5}.task-zone-badge{display:inline-block;padding:2px 8px;margin-left:6px;border-radius:4px;color:#fff;font-weight:600;font-size:18px;vertical-align:middle;box-shadow:0 1px 3px #0003}.visualizer-block-tasks{position:absolute;top:70px;background:#fff;border:2px solid #ffc107;border-radius:6px;padding:10px;box-shadow:0 4px 12px #0003;z-index:50;font-size:12px;color:#333;line-height:1.6;display:none}.visualizer-details{background:#fff;border:1px solid #dee2e6;border-radius:8px;padding:20px;margin-bottom:20px;box-shadow:0 2px 8px #0000001a}.visualizer-details-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;padding-bottom:15px;border-bottom:2px solid #007bff}.visualizer-details-header h4{margin:0;color:#007bff;font-size:16px}.visualizer-details-header button{background:#f8f9fa;border:1px solid #dee2e6;color:#495057;font-size:20px;width:28px;height:28px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;line-height:1;padding:0}.visualizer-details-header button:hover{background:#e9ecef}.visualizer-details-content{font-size:13px}.visualizer-detail-row{padding:8px 0;border-bottom:1px solid #f0f0f0}.visualizer-detail-row:last-child{border-bottom:none}.visualizer-detail-row strong{color:#495057;margin-right:8px}.visualizer-tasks{margin-top:15px;padding-top:15px;border-top:1px solid #e9ecef}.visualizer-tasks strong{display:block;margin-bottom:10px;color:#495057}.visualizer-task{padding:8px 12px;background:#f8f9fa;border-left:3px solid #007bff;margin-bottom:8px;border-radius:4px;font-size:12px}.visualizer-task-line{display:block;color:#333;font-family:Courier New,monospace}.visualizer-task-comment{display:block;color:#6c757d;font-style:italic;margin-top:4px;font-size:11px}.visualizer-intervals{margin-top:15px;padding-top:15px;border-top:1px solid #e9ecef}.visualizer-intervals strong{display:block;margin-bottom:8px;color:#495057}.visualizer-interval{padding:6px 12px;background:#fff3cd;border-left:3px solid #ffc107;margin-bottom:6px;border-radius:4px;font-size:12px;color:#856404}.visualizer-legend{display:flex;gap:15px;flex-wrap:wrap;align-items:center;padding:15px;background:#f8f9fa;border-radius:8px;border:1px solid #dee2e6}.visualizer-legend-title{font-weight:600;color:#495057;font-size:13px}.visualizer-legend-item{display:flex;align-items:center;gap:6px;font-size:12px;color:#495057}.visualizer-legend-color{width:20px;height:20px;border-radius:4px;box-shadow:0 1px 3px #0003}@media(max-width:768px){.visualizer-header{padding:15px 20px}.visualizer-header h3{font-size:16px}.visualizer-content{padding:15px}.visualizer-group-header{flex-direction:column;align-items:flex-start;gap:8px}.visualizer-timeline{height:60px}.visualizer-block{height:40px}.visualizer-block-content{font-size:9px}.visualizer-legend{gap:10px}}.task-mode-view{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;background:linear-gradient(135deg,#f8f9fa,#e9ecef);overflow-y:auto;overflow-x:hidden;padding:20px;box-sizing:border-box}.task-mode-content{max-width:100%;width:100%;height:100%;display:flex;flex-direction:column;gap:20px;box-sizing:border-box;overflow-y:hidden}.task-mode-main{display:flex;gap:20px;flex:1;min-height:0;min-width:0;overflow-x:hidden}.task-mode-right{flex:1;display:flex;flex-direction:column;gap:20px;min-height:0;overflow-y:hidden}.task-mode-left{display:flex;flex-direction:column;gap:20px;flex:0 1 30%;max-width:30%;min-width:0;overflow-y:auto}.task-mode-material{flex:2;display:flex;flex-direction:column;gap:20px;background:linear-gradient(135deg,#e3f2fd,#bbdefb);border-radius:12px;box-shadow:0 6px 20px #2196f34d}.task-mode-material .task-mode-value{font-size:28px;font-weight:700;color:#0d47a1;line-height:1.4;padding:20px;background:#fff;border-radius:10px;box-shadow:0 3px 10px #0000001a;border-left:6px solid #2196f3;text-align:center}.task-mode-material-items{display:flex;flex-direction:column;gap:15px}.task-mode-material-item{font-size:36px;font-weight:700;color:#0d47a1;line-height:1.3;padding:25px 30px;background:#fff;border-radius:12px;box-shadow:0 4px 15px #00000026;border-left:8px solid #2196f3;text-align:center;transition:all .3s ease}.task-mode-material-item:hover{transform:translate(5px);box-shadow:0 6px 20px #2196f34d}.task-mode-comments{display:flex;flex-direction:column;gap:12px}.task-mode-comment{font-size:28px;font-weight:500;color:#1565c0;font-style:italic;padding:15px 20px;background:#fff;border-radius:10px;box-shadow:0 3px 10px #0000001a;border-left:6px solid #2196f3;line-height:1.5}.task-mode-next{flex:2;display:flex;flex-direction:column;gap:15px;padding:20px;background:linear-gradient(135deg,#fff3cd,#ffeaa7);border-radius:12px;box-shadow:0 4px 12px #ffc1074d;border:2px solid #ffc107}.task-mode-next-header{display:flex;align-items:center;font-size:20px;font-weight:700;color:#856404;text-transform:uppercase;letter-spacing:1px;padding-bottom:10px;border-bottom:2px solid #ffc107}.task-mode-next-content{display:flex;flex-direction:column;gap:12px}.task-mode-next-main{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.task-mode-next-distance{font-size:48px;font-weight:700;color:#495057}.task-mode-next-technique{font-size:36px;font-weight:600;color:#6c757d}.task-mode-next-type{padding:4px 12px;background:#495057;color:#fff;border-radius:12px;font-size:24px;font-weight:600}.task-mode-next-reps{font-size:20px;font-weight:600;color:#856404;padding:4px 12px;background:#ffc1074d;border-radius:8px;align-self:flex-start}.task-mode-next-zone{font-size:24px}.task-mode-next-detail{display:flex;flex-direction:column;gap:8px;padding:12px;background:#ffffff80;border-radius:8px;border-left:4px solid #ffc107}.task-mode-next-detail-label{font-size:14px;font-weight:700;color:#856404;text-transform:uppercase;letter-spacing:.5px}.task-mode-next-detail-value{font-size:18px;font-weight:600;color:#495057;line-height:1.4}.task-mode-next-detail-items{display:flex;flex-direction:column;gap:8px}.task-mode-next-detail-items .task-mode-next-detail-value{padding:10px 15px;background:#fff;border-radius:6px;box-shadow:0 2px 6px #0000001a;border-left:3px solid #ffc107}.task-mode-next-comments{display:flex;flex-direction:column;gap:6px}.task-mode-next-comment{font-size:20px;font-weight:500;color:#6c757d;font-style:italic;padding:8px 12px;background:#fff;border-radius:6px;border-left:3px solid #ffc107}.task-mode-label{font-weight:600;font-size:16px;color:#495057;min-width:100px}.task-mode-value{font-size:18px;color:#212529;font-weight:500}.task-mode-rep{margin-left:auto;padding:6px 12px;background:#007bff;color:#fff;border-radius:20px;font-size:14px;font-weight:600}.task-mode-task{flex:3;padding:60px 30px 30px;border-radius:12px;box-shadow:0 8px 24px #0000004d;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:28px;position:relative}.task-mode-task-main{display:flex;align-items:center;gap:28px;flex-wrap:wrap;flex:1;line-height:1.2}.task-mode-distance,.task-mode-technique{font-size:clamp(32px,6vw,120px);font-weight:700;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.2);line-height:1.2}.task-mode-type{padding:8px 16px;background:#000;color:#fff;border-radius:20px;font-size:clamp(20px,3.5vw,64px);font-weight:600;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);line-height:1.2}.task-mode-comments{display:flex;flex-direction:column;gap:12px;width:100%;max-width:90%}.task-mode-comment{font-size:28px;font-weight:500;color:#fff;font-style:italic;padding:15px 20px;background:#fff3;border-radius:10px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-left:6px solid rgba(255,255,255,.5);line-height:1.5;text-shadow:0 1px 3px rgba(0,0,0,.3)}.task-mode-timer-total{font-size:clamp(24px,4.5vw,60px);font-weight:600;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.3);margin-top:10px}.task-mode-reps{position:absolute;top:12px;right:12px;display:flex;align-items:baseline;gap:6px;padding:8px 16px;background:#fff;border-radius:50px;box-shadow:0 4px 12px #00000026}.task-mode-zone-badge{position:absolute;top:12px;left:12px;padding:8px 16px;background:#ffffff40;color:#fff;border-radius:8px;font-size:clamp(16px,2vw,32px);font-weight:700;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid rgba(255,255,255,.4);text-shadow:0 2px 4px rgba(0,0,0,.3)}.task-mode-current-rep{font-size:clamp(24px,3vw,40px);font-weight:700;color:#007bff}.task-mode-rep-separator{font-size:clamp(22px,2.5vw,36px);font-weight:400;color:#6c757d}.task-mode-total-reps{font-size:clamp(22px,2.5vw,40px);font-weight:600;color:#6c757d}.task-mode-description-content{display:flex;flex-direction:column;gap:10px}.task-mode-description-content .task-mode-label{color:#856404}.task-mode-description-content .task-mode-value{font-size:16px;line-height:1.6;color:#212529;margin:0}.task-mode-timer{flex:1;min-height:0;padding:30px;border-radius:12px;text-align:center;box-shadow:0 8px 24px #28a7454d;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:15px;transition:background .3s ease;position:relative;container-type:size;container-name:timer-container;cursor:pointer}.task-mode-font-controls{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;gap:15px;background:#000000e6;padding:20px 25px;border-radius:12px;box-shadow:0 8px 24px #00000080;z-index:100;border:2px solid white}.font-controls-section{display:flex;flex-direction:column;gap:8px;align-items:center}.font-controls-label{color:#fff;font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.font-controls-buttons{display:flex;gap:10px;align-items:center}.font-controls-value{background:#fff;color:#333;padding:10px 20px;border-radius:8px;font-size:16px;font-weight:700;min-width:50px;text-align:center;font-family:Courier New,monospace}.font-controls-divider{height:1px;background:#ffffff4d;width:100%}.task-mode-font-controls button{background:#fff;color:#333;border:none;padding:10px 20px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;min-width:60px}.task-mode-font-controls button:hover{background:#f0f0f0;transform:scale(1.05)}.task-mode-font-controls button:active{transform:scale(.95)}.task-mode-timer-add-btn,.task-mode-timer-remove-btn{position:absolute;bottom:15px;right:15px;width:50px;height:50px;border-radius:50%;border:3px solid white;color:#fff;font-size:32px;font-weight:700;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;line-height:1;padding:0;box-shadow:0 4px 12px #0000004d}.task-mode-timer-add-btn{background:#007bffe6}.task-mode-timer-add-btn:hover{background:#007bff;transform:scale(1.1);box-shadow:0 6px 16px #007bff80}.task-mode-timer-remove-btn{background:#dc3545e6}.task-mode-timer-remove-btn:hover{background:#dc3545;transform:scale(1.1);box-shadow:0 6px 16px #dc354580}.task-mode-timer.blinking{animation:borderBlink 1s ease-in-out infinite}@keyframes borderBlink{0%,to{border-color:var(--timer-color, #28a745);box-shadow:0 8px 24px #ff00004d;background:linear-gradient(90deg,var(--timer-color, #28a745) 0%,var(--timer-color, #28a745) var(--progress-percent, 50%),var(--timer-color-dark, #1e7e34) var(--progress-percent, 50%),var(--timer-color-dark, #1e7e34) 100%)}50%{border-color:#000;box-shadow:0 8px 24px #000c,0 0 60px #000c;background:#000}}.task-mode-timer-label{font-size:clamp(calc(22px * var(--font-scale, 1)),calc(7cqh * var(--font-scale, 1)),calc(108px * var(--font-scale, 1)));font-weight:600;color:#fff;text-transform:uppercase;letter-spacing:1px;text-shadow:0 2px 4px rgba(0,0,0,.3)}.task-mode-timer-value{font-size:clamp(calc(58px * var(--font-scale, 1)),calc(45cqh * var(--font-scale, 1)),calc(810px * var(--font-scale, 1)));font-weight:700;color:#fff;line-height:1;text-shadow:0 4px 8px rgba(0,0,0,.4);font-family:Courier New,monospace}.task-mode-empty{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;min-height:400px;background:#fff;border-radius:12px;padding:40px;box-shadow:0 4px 12px #0000001a}.task-mode-empty p{font-size:36px;color:#333;margin:10px 0;font-weight:600}.task-mode-hint{font-size:24px!important;color:#666!important;font-style:italic}@media(max-width:768px){.task-mode-view{padding:15px}.task-mode-main{flex-direction:column}.task-mode-content{padding:20px}.task-mode-distance{font-size:36px}.task-mode-technique{font-size:24px}.task-mode-type{font-size:14px;padding:6px 12px}.task-mode-current-rep{font-size:32px}.task-mode-rep-separator,.task-mode-total-reps{font-size:24px}.task-mode-timer-value{font-size:48px}.task-mode-timer-total{font-size:18px}}.scorecard-mode-view{display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden;background:#1a1a1a}.scorecard-content{flex:1;overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth}.swimmers-popup-left::-webkit-scrollbar{width:22px}.swimmers-popup-left::-webkit-scrollbar-track{background:#f1f1f1;border-radius:8px}.swimmers-popup-left::-webkit-scrollbar-thumb{background:#888;border-radius:8px;border:3px solid #f1f1f1}.swimmers-popup-left::-webkit-scrollbar-thumb:hover{background:#555}.swimmers-popup-right::-webkit-scrollbar{width:22px}.swimmers-popup-right::-webkit-scrollbar-track{background:#f1f1f1;border-radius:8px}.swimmers-popup-right::-webkit-scrollbar-thumb{background:#888;border-radius:8px;border:3px solid #f1f1f1}.swimmers-popup-right::-webkit-scrollbar-thumb:hover{background:#555}.scorecard-content::-webkit-scrollbar{width:10px}.scorecard-content::-webkit-scrollbar-track{background:#1a1a1a}.scorecard-content::-webkit-scrollbar-thumb{background:#555;border-radius:5px}.scorecard-content::-webkit-scrollbar-thumb:hover{background:#777}.scorecard-task-section{animation:slideInFromBottom .3s ease-out}@keyframes slideInFromBottom{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.scorecard-task-header{position:relative}.scorecard-times-table{font-size:16px}kbd{background:#333;border:1px solid #555;border-radius:3px;padding:2px 6px;font-family:monospace;font-size:14px;box-shadow:0 2px 4px #0003}.trainings-list{display:flex;flex-direction:column;height:100vh;overflow:hidden;padding:32px}.trainings-list-header{flex-shrink:0;margin-bottom:24px;background:#fff;z-index:10}.trainings-list-header .header-left{flex:1}.trainings-list-header .header-left h2{color:#111827;margin:0 0 4px;font-size:24px;font-weight:600;letter-spacing:-.025em}.trainings-count{margin:0;color:#6b7280;font-size:14px;font-weight:400}.age-groups-ribbon{display:flex;align-items:center;gap:16px;padding:12px 20px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:8px;margin-bottom:20px;flex-shrink:0}.age-groups-label{color:#fff;font-weight:600;font-size:14px;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.age-group-badge{padding:6px 12px;border-radius:6px;font-size:13px;font-weight:500;background:#ffffff4d;color:#ffffffe6;border:2px solid rgba(255,255,255,.4);transition:all .2s ease;-webkit-user-select:none;user-select:none}.age-group-badge:hover{background:#fff6;transform:translateY(-1px)}.age-group-badge.active:hover{background:#fff}.trainings-filter-section{margin-bottom:20px;flex-shrink:0}.filter-section-title{font-size:16px;font-weight:600;color:#111827}.filters-section{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:20px;margin-top:8px;margin-bottom:20px;flex-shrink:0;max-height:60vh;overflow-y:auto}.filter-group-title{font-size:14px;font-weight:600;color:#111827;margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid #e5e7eb}.filters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}.filter-group{display:flex;flex-direction:column;gap:8px}.filter-group.age-groups-filter{margin-bottom:12px}.filter-input,.filter-select{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;background:#fff;color:#374151;outline:none;transition:all .15s ease}.filter-input:focus,.filter-select:focus{border-color:#dc2626;box-shadow:0 0 0 1px #dc2626}.filter-select.multi-select{min-height:120px}.filter-actions{display:flex;justify-content:flex-end;padding-top:12px;border-top:1px solid #e5e7eb;margin-top:12px}.btn-clear-filters{padding:8px 16px;background:#ef4444;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease}.btn-clear-filters:hover{background:#dc2626}.detach-button,.toggle-filters-button{padding:8px 16px;background:#fff;border:1px solid #d1d5db;border-radius:6px;font-size:14px;cursor:pointer;transition:all .15s ease;color:#374151;font-weight:500;display:flex;align-items:center;gap:6px;outline:none}.detach-button:hover,.toggle-filters-button:hover{background:#f9fafb;border-color:#9ca3af}.trainings-filter-section.detached{background:#fff;border:2px solid #d1d5db;border-radius:8px;overflow:hidden;position:relative}.trainings-filter-section.detached .filter-section-header{background:#f9fafb;color:#111827;padding:12px 16px;border-bottom:1px solid #e5e7eb;-webkit-user-select:none;user-select:none}.trainings-filter-section.detached .filter-section-header h3{color:#111827}.trainings-filter-section.detached .detach-button{background:#fffffff2;color:#374151;border:1px solid rgba(255,255,255,.3)}.trainings-filter-section.detached .detach-button:hover{background:#fff;border-color:#ffffff80}.trainings-filter-section.detached .filters-section{background:#fff;border:none;border-radius:0;margin:0}.trainings-list .btn{padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;border:none;display:inline-flex;align-items:center;gap:8px}.trainings-list .btn-primary{background-color:#dc2626;color:#fff}.trainings-list .btn-primary:hover{background-color:#b91c1c;transform:translateY(-1px);box-shadow:0 4px 6px #dc262633}.trainings-list .btn-secondary{background-color:#f3f4f6;color:#374151;border:1px solid #d1d5db}.trainings-list .btn-secondary:hover{background-color:#e5e7eb}.trainings-list .btn-secondary:disabled{opacity:.5;cursor:not-allowed}.trainings-list .btn-link{background:none;color:#dc2626;padding:8px 12px;text-decoration:none}.trainings-list .btn-link:hover{text-decoration:underline}.trainings-filters{display:flex;gap:16px;align-items:center;margin-top:20px;flex-wrap:wrap}.trainings-list-content{flex:1;overflow:auto;margin-top:16px}.trainings-list-wrapper{background-color:#fff;border-radius:6px;border:1px solid #e5e5e5;overflow:hidden;flex:1;display:flex;flex-direction:column}.loading-state,.empty-state{text-align:center;padding:60px 20px}.spinner{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #007bff;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 16px}.empty-state p{color:#666;font-size:16px;margin-bottom:20px}.trainings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:16px;padding:16px;overflow-y:auto}.training-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:20px;transition:all .2s;cursor:pointer;position:relative}.training-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.training-card-header{margin-bottom:16px}.training-card-header h3{margin:0;font-size:18px;color:#1a1a1a;word-break:break-word;padding-right:100px}.training-card-body{display:flex;flex-direction:column;gap:12px}.training-meta{display:flex;flex-wrap:wrap;gap:12px}.btn-preview{position:absolute;top:16px;right:16px;background:#2196f3;border:none;color:#fff;padding:6px 14px;border-radius:6px;cursor:pointer;font-size:13px;font-weight:500;display:flex;align-items:center;gap:6px;transition:all .2s;flex-shrink:0}.btn-preview:hover{background:#1976d2;transform:translateY(-1px);box-shadow:0 2px 8px #2196f34d}.training-card-actions{margin-top:4px;padding-top:12px;border-top:1px solid #f0f0f0;display:flex;justify-content:flex-end}.btn-delete{background:none;border:1px solid #dc3545;color:#dc3545;padding:6px 12px;border-radius:4px;cursor:pointer;font-size:13px;font-weight:500;transition:all .2s;display:flex;align-items:center;gap:4px}.btn-delete:hover{background:#dc3545;color:#fff}.training-comments{color:#666;font-size:14px;line-height:1.5;margin:0;display:-webkit-box;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.training-card-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.training-card-stats .stat{display:flex;flex-direction:column;gap:4px}.training-card-stats .stat-label{font-size:12px;color:#888;text-transform:uppercase;letter-spacing:.5px}.training-card-stats .stat-value{font-size:15px;font-weight:600;color:#1a1a1a}.training-card-stats .stat-value.difficulty-1{color:#28a745}.training-card-stats .stat-value.difficulty-2{color:#17a2b8}.training-card-stats .stat-value.difficulty-3{color:#ffc107}.training-card-stats .stat-value.difficulty-4{color:#fd7e14}.training-card-stats .stat-value.difficulty-5{color:#dc3545}.training-details{display:flex;flex-direction:column;gap:8px;padding:12px 0;border-top:1px solid #f0f0f0;font-size:13px}.training-detail-row{display:flex;gap:8px;align-items:flex-start}.detail-label{font-weight:600;color:#555;min-width:85px;flex-shrink:0}.detail-value{color:#666;flex:1}.training-meta{display:flex;flex-wrap:wrap;gap:12px;padding-top:12px;border-top:1px solid #f0f0f0;font-size:13px;color:#666}.meta-item{display:flex;align-items:center;gap:4px}.trainings-list .pagination-container{background-color:#fafafa;border-top:1px solid #e5e5e5;padding:12px 16px;flex-shrink:0}.trainings-list .pagination-container.pagination-top{border-top:none;border-bottom:1px solid #e5e5e5;margin-bottom:0}.trainings-list .pagination-section{display:flex;align-items:center;gap:16px;width:100%}.trainings-list .pagination-left{flex:1;display:flex;align-items:center;gap:12px;justify-content:flex-start}.trainings-list .pagination-right{flex:1;display:flex;align-items:center;justify-content:flex-end}.trainings-list .records-per-page{display:flex;align-items:center;gap:6px}.trainings-list .records-per-page label{font-size:13px;color:#6b7280;white-space:nowrap}.trainings-list .records-select{padding:4px 8px;border:1px solid #d1d5db;border-radius:4px;font-size:13px;outline:none;cursor:pointer;background-color:#fff;color:#374151;min-width:60px}.trainings-list .records-select:focus{border-color:#dc2626;box-shadow:0 0 0 1px #dc2626}.trainings-list .pagination-info-inline{display:flex;align-items:center;color:#6b7280;font-size:13px;font-weight:500;white-space:nowrap}.trainings-list .pagination-buttons{display:flex;align-items:center;gap:8px}.trainings-list .pagination-button{padding:6px 10px;border:1px solid #d1d5db;border-radius:4px;background-color:#fff;color:#374151;font-size:13px;cursor:pointer;transition:background-color .15s ease}.trainings-list .pagination-button:hover:not(:disabled){background-color:#dc2626;color:#fff}.trainings-list .pagination-button:disabled{background-color:#f9fafb;color:#9ca3af;cursor:not-allowed;border-color:#e5e7eb}.trainings-list .page-indicator{font-size:13px;color:#6b7280;font-weight:500;white-space:nowrap;min-width:60px;text-align:center}.btn{padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.btn-primary{background:#007bff;color:#fff}.btn-primary:hover{background:#0056b3}.btn-secondary{background:#6c757d;color:#fff}.btn-secondary:hover{background:#5a6268}.btn-link{background:none;color:#007bff;padding:8px 12px}.btn-link:hover{background:#f0f0f0;color:#0056b3}@media(max-width:768px){.trainings-list{padding:16px}.trainings-list-header{flex-direction:column;align-items:stretch}.trainings-grid{grid-template-columns:1fr}.trainings-list .pagination-section{flex-direction:column;align-items:stretch;gap:12px}.trainings-list .pagination-left,.trainings-list .pagination-right{justify-content:center}.filters-grid{grid-template-columns:1fr}}.training-sessions-page{width:100%;height:100%}.step-indicator{display:flex;align-items:center;justify-content:center;padding:16px 24px;border-bottom:1px solid #e5e7eb;background:#f9fafb}.step{display:flex;flex-direction:column;align-items:center;gap:6px}.step-number{width:36px;height:36px;border-radius:50%;background:#e5e7eb;color:#6b7280;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;transition:all .3s}.step.active .step-number{background:#2563eb;color:#fff}.step.completed .step-number{background:#10b981;color:#fff}.step-label{font-size:12px;color:#6b7280;font-weight:500}.step.active .step-label{color:#2563eb;font-weight:600}.step.completed .step-label{color:#10b981}.step-line{width:80px;height:2px;background:#e5e7eb;margin:0 16px 20px}.selected-training-display{padding:12px 16px;background:#eff6ff;border:2px solid #3b82f6;border-radius:8px}.selected-training-display .training-item-name{font-weight:600;color:#1e40af;margin-bottom:4px}.selected-training-display .training-item-keywords{font-size:12px;color:#3b82f6}.training-item-modal{padding:12px 16px;border-bottom:1px solid #e5e7eb;cursor:pointer;transition:background .2s;background:#fff}.training-item-modal.alternate{background:#f9fafb}.training-item-modal:hover{background:#eff6ff!important}.training-item-modal.selected{background:#dbeafe!important;border-left:4px solid #3b82f6;padding-left:12px}.btn-next,.btn-back{padding:10px 20px;border:1px solid #2563eb;background:#fff;border-radius:8px;font-size:14px;font-weight:600;color:#2563eb;cursor:pointer;transition:all .2s}.btn-next{background:#2563eb;color:#fff}.btn-next:hover:not(:disabled){background:#1d4ed8}.btn-next:disabled{background:#9ca3af;border-color:#9ca3af;color:#fff;cursor:not-allowed}.btn-back:hover{background:#eff6ff}.btn-create{padding:10px 20px;border:none;background:#2563eb;border-radius:8px;font-size:14px;font-weight:600;color:#fff;cursor:pointer;display:flex;align-items:center;gap:8px}.spinner-mini{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:spin 1s ease-in-out infinite;display:inline-block;vertical-align:middle}.training-sessions-list{padding:32px;display:flex;flex-direction:column;min-height:100vh}.training-sessions-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #e5e5e5;flex-shrink:0;background:#fff}.btn-overall-totals{background:#667eea;color:#fff;border:none;border-radius:6px;padding:8px 16px;font-size:14px;font-weight:600;cursor:pointer;transition:background .2s;display:flex;align-items:center;gap:8px}.btn-overall-totals:hover{background:#5568d3}.overall-totals-section{margin-bottom:24px;padding:20px;background:#f9fafb;border:2px solid #667eea;border-radius:8px}.age-groups-ribbon{display:flex;align-items:center;gap:12px;padding:12px 16px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:8px;margin-bottom:16px;box-shadow:0 2px 8px #667eea33}.training-sessions-list-header h2{color:#111827;margin:0;font-size:20px;font-weight:600;letter-spacing:-.025em}.training-sessions-subtitle{margin:4px 0 0;color:#6b7280;font-size:14px;font-weight:400}.training-sessions-controls{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:12px 16px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:20px;flex-shrink:0}.training-sessions-athlete-filter{flex:1;min-width:200px}.athlete-name-input{width:100%;border:1px solid #d1d5db;border-radius:8px;padding:8px 12px;font-size:14px;color:#374151;transition:border-color .2s}.athlete-name-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.athlete-name-input::placeholder{color:#9ca3af}.training-groups-filter{flex:1;min-width:200px}.view-mode-header-cell{display:flex;align-items:center;justify-content:center}.view-mode-toggle{width:32px;height:32px;border:1px solid #d1d5db;border-radius:6px;font-size:18px;line-height:1;color:#6b7280;background:#fff;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.view-mode-toggle:hover{border-color:#667eea;color:#667eea;background:#667eea0d}.view-mode-toggle.active{border-color:#667eea;color:#667eea;background:#667eea1a}.additional-options-toggle{width:36px;height:36px;border:2px solid #667eea;background:#fff;color:#667eea;border-radius:6px;font-size:20px;font-weight:700;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;flex-shrink:0}.additional-options-toggle:hover{background:#667eea;color:#fff;transform:scale(1.05)}.additional-options{display:flex;gap:16px;flex-wrap:wrap;width:100%;padding:12px;background:#f3f4f6;border-radius:6px;border:1px solid #e5e7eb}.training-sessions-toggle label{display:flex;align-items:center;gap:10px;font-size:14px;color:#374151}.training-sessions-range{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.training-sessions-range label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#6b7280}.training-sessions-range input{border:1px solid #d1d5db;border-radius:8px;padding:6px 10px;font-size:14px}.show-sunday-toggle{display:flex;align-items:center;gap:8px;font-size:14px;color:#374151;cursor:pointer}.show-sunday-toggle input[type=checkbox]{cursor:pointer}.training-sessions-week-nav{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.training-sessions-week-nav button{border:1px solid #d1d5db;background:#fff;border-radius:8px;padding:6px 12px;font-size:13px;cursor:pointer;color:#374151;font-weight:500}.training-sessions-week-nav button:hover{background:#f9fafb;border-color:#9ca3af}.training-sessions-week-label{font-weight:600;color:#1f2937}.training-sessions-loading,.training-sessions-empty{padding:32px;text-align:center;color:#6b7280;background:#f9fafb;border-radius:12px;border:1px solid #e5e7eb}.training-sessions-weeks{display:flex;flex-direction:column;gap:20px;flex:1}.training-week-block{background:#fff;border-radius:12px;border:1px solid #e5e7eb}.training-week-header{display:flex;align-items:center;gap:24px;justify-content:space-between;padding:16px 20px;background:#f3f4f6;border-bottom:1px solid #e5e7eb;cursor:pointer;transition:background .2s}.training-week-header:hover{background:#e5e7eb}.training-week-header h3{margin:0;font-size:16px;color:#1f2937;flex-shrink:0}.training-week-header .stat-value{font-size:18px;color:#111827;font-weight:600}.training-week-header .expand-icon{color:#667eea;font-size:16px;font-weight:700;margin-left:auto}.training-week-stats{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:16px;margin-bottom:16px}.week-stats-header{display:flex;justify-content:space-between;align-items:center;cursor:pointer;padding:4px 0;margin-bottom:12px;transition:background .2s}.week-stats-header:hover{background:#00000005;border-radius:4px}.week-stats-header h4{margin:0;font-size:14px;color:#111827;font-weight:600}.week-stats-header .expand-icon{color:#6b7280;font-size:12px}.week-stats-content{padding-top:8px}.group-filter-section{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding:12px;background:#fff;border:1px solid #e5e7eb;border-radius:6px}.group-filter-label{font-size:14px;font-weight:600;color:#374151;margin:0}.group-filter-select{font-size:14px;padding:6px 12px;border:1px solid #d1d5db;border-radius:6px;background:#fff;color:#374151;cursor:pointer;transition:border-color .2s;min-width:150px}.group-filter-select:hover{border-color:#9ca3af}.group-filter-select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.week-stats-summary{display:flex;gap:24px;flex-wrap:wrap;align-items:center;padding:12px;background:#fff;border:1px solid #e5e7eb;border-radius:6px;transition:background .2s;position:relative}.week-stats-summary:hover{background:#f9fafb}.week-stats-summary .expand-icon{margin-left:auto;color:#667eea;font-size:16px;font-weight:700}.week-stats-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:16px}.week-stats-column{background:#fff;padding:16px;border-radius:6px;border:1px solid #e5e7eb}.week-stats-column h4{font-size:13px;color:#374151;font-weight:600;margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid #f3f4f6}.zone-header-with-toggle{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #f3f4f6}.zone-header-with-toggle h4{margin:0;padding:0;border:none}.zone-agg-select{font-size:11px;padding:4px 8px;border:1px solid #d1d5db;border-radius:4px;background:#fff;color:#374151;cursor:pointer;transition:border-color .2s}.zone-agg-select:hover{border-color:#9ca3af}.zone-agg-select:focus{outline:none;border-color:#667eea}.stats-list{display:flex;flex-direction:column;gap:8px}.stats-empty{font-size:12px;color:#9ca3af;text-align:center;padding:12px}.stat-item{display:flex;flex-direction:column;gap:4px}.stat-label{font-size:14px;color:#6b7280;font-weight:500}.week-stats-value{font-size:20px;color:#111827;font-weight:600}.week-stats-breakdown{margin-top:12px}.week-stats-breakdown h4{font-size:13px;color:#374151;font-weight:600;margin:0 0 8px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}.breakdown-item{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:2px 8px;background:#f9fafb;border-radius:4px;font-size:18px}.breakdown-name{color:#111827;font-weight:600;flex-shrink:0}.breakdown-values{color:#6b7280;font-weight:400;text-align:right}.training-week-table-wrapper{overflow-x:visible}.training-week-sticky-header{display:flex;position:sticky;top:0;z-index:10;background:#f9fafb;border-bottom:2px solid #e5e7eb;box-shadow:0 2px 4px #00000014}.sticky-header-cell{flex:1;padding:10px 12px;font-weight:600;font-size:14px;color:#374151;text-align:center;border-right:1px solid #e5e7eb;min-width:160px}.sticky-header-cell:last-child{border-right:none}.sticky-header-cell.time-slot-header-cell{flex:0 0 52px;min-width:52px;max-width:52px;padding:0;border-right:2px solid #e5e7eb}.sticky-header-cell.time-slot-header-cell:last-child{border-right:none;border-left:2px solid #e5e7eb}.training-week-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}.training-week-table th,.training-week-table td{border-bottom:1px solid #e5e7eb;border-right:1px solid #e5e7eb;vertical-align:top;min-width:160px}.training-week-table th:last-child,.training-week-table td:last-child{border-right:none}.training-day-stack{display:flex;flex-direction:column;padding-bottom:8px}.time-slot-header{width:52px!important;min-width:52px!important;max-width:52px!important;padding:0!important;border-right:2px solid #e5e7eb!important;background:#f9fafb!important}.time-slot-label-cell{width:52px;min-width:52px;max-width:52px;padding:0!important;vertical-align:middle;text-align:center;border-right:2px solid #e5e7eb;background:#f9fafb;position:relative;height:100%}.time-slot-label{writing-mode:vertical-rl;text-orientation:mixed;transform:rotate(180deg);font-size:18px;font-weight:700;color:#374151;letter-spacing:1px;white-space:nowrap;padding:8px 0;display:flex;align-items:center;justify-content:center;width:100%;height:100%;position:absolute;top:0;left:0}.time-slot-label.time-slot-label-right{transform:none}.time-slot-clickable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s}.time-slot-clickable:hover{background:#e5e7eb!important}.time-slot-chevron{font-size:10px;transition:transform .2s;display:inline-block}.time-slot-label-right .time-slot-chevron{transform:none}.chevron-collapsed{transform:rotate(-90deg)!important}.time-slot-label-right .chevron-collapsed{transform:rotate(90deg)!important}.time-slot-collapsed>td{padding-top:2px!important;padding-bottom:2px!important}.time-slot-collapsed-cell{text-align:center;background:#f9fafb;border-top:1px dashed #d1d5db;border-bottom:1px dashed #d1d5db;cursor:pointer;padding:14px 0!important}.time-slot-collapsed-cell:hover{background:#f3f4f6}.time-slot-collapsed-time{font-size:16px;font-weight:700;color:#374151}.time-slot-collapsed-hint{font-size:13px;font-weight:500;color:#9ca3af}.time-slot-row td{vertical-align:top;padding:4px 6px}.time-slot-cell .training-day-stack{padding-bottom:0}.time-slot-empty{min-height:0}.add-session-row td{padding:4px 6px 8px}.training-day-empty{font-size:12px;color:#9ca3af;padding:12px;background:#f9fafb;border-radius:8px;text-align:center}.training-session-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:20px;transition:all .2s;cursor:pointer;position:relative}.training-session-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.training-session-card:not(.repeat-session){border:1px solid #9ca3af;border-left:3px solid #6b7280}.training-session-card:not(.repeat-session):hover{box-shadow:0 4px 12px #0000001a}.training-session-card.compact{padding:8px 12px;border-radius:6px;display:flex;flex-direction:column;gap:2px}.training-session-card.compact:not(.repeat-session){border-left:3px solid #6b7280}.training-session-card.compact:hover{transform:translateY(-1px)}.training-session-card.compact .compact-time{font-size:12px;font-weight:600;color:#2563eb;display:flex;align-items:center}.training-session-card.compact .compact-presences{margin-left:auto;font-size:11px;font-weight:500;color:#6b7280;flex-shrink:0}.training-session-card.compact .compact-local{font-size:11px;color:#6b7280;font-weight:500}.training-session-card.compact .compact-title{font-size:13px;font-weight:600;color:#1a1a1a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.training-session-card.compact .compact-coaches{font-weight:500;color:#6b7280;font-size:12px}.training-session-card.compact .compact-expand{display:none;padding-top:8px;border-top:1px solid #e5e7eb;margin-top:6px}.training-session-card.compact:hover .compact-expand{display:block}.training-session-card.compact:hover{z-index:10;box-shadow:0 6px 16px #00000026;position:relative}.training-session-time-top{font-size:13px;font-weight:600;color:#2563eb;margin:-20px -20px 12px;padding:10px 20px;background:#f3f4f6;border-bottom:1px solid #e5e7eb;border-radius:8px 8px 0 0;display:flex;justify-content:space-between;align-items:center}.training-session-time-top.clickable{cursor:pointer;transition:background .2s}.training-session-time-top.clickable:hover{background:#e5e7eb}.time-content{flex:1}.session-local{color:#6b7280;font-weight:500}.training-session-card-header h3{margin:0;font-size:18px;color:#1a1a1a;word-break:break-word}.expand-icon{font-size:12px;color:#2563eb;margin-left:8px;flex-shrink:0}.training-session-expanded-info{display:flex;flex-direction:column;gap:8px;padding-top:12px;border-top:1px solid #f0f0f0}.training-session-top-info{display:flex;flex-wrap:wrap;gap:12px;padding:12px 0;border-bottom:1px solid #f0f0f0;font-size:13px;font-weight:500}.training-session-top-info .info-item{color:#374151;display:flex;align-items:center;gap:4px}.training-session-top-info .status-badge{background:#e5e7eb;padding:4px 10px;border-radius:12px;color:#1f2937;font-weight:600}.training-session-card-body{display:flex;flex-direction:column}.training-keywords{color:#666;font-size:14px;line-height:1.5;margin:0;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.training-coaches{display:flex;align-items:center;gap:6px;margin:8px 0;padding:8px 12px;background:#f3f4f6;border-radius:6px;font-size:14px}.coaches-label{flex-shrink:0;font-size:16px}.coaches-names{color:#374151;font-weight:500;line-height:1.4}.training-session-card-stats{display:flex;flex-direction:column;gap:4px}.training-session-card-stats .stat{display:flex;flex-direction:column;gap:0;align-items:flex-start;text-align:left}.training-session-card-stats .stat-inline{flex-direction:row;align-items:center;gap:8px}.stat-separator{color:#d1d5db;font-weight:400}.training-session-card-stats .stat-label{display:none}.training-session-card-stats .stat-value{font-size:15px;font-weight:600;color:#1a1a1a}.training-session-card-stats .stat-value-difficulty{font-size:14px;font-weight:600}.training-session-card-stats .stat-value-difficulty.difficulty-1{color:#28a745}.training-session-card-stats .stat-value-difficulty.difficulty-2{color:#17a2b8}.training-session-card-stats .stat-value-difficulty.difficulty-3{color:#ffc107}.training-session-card-stats .stat-value-difficulty.difficulty-4{color:#fd7e14}.training-session-card-stats .stat-value-difficulty.difficulty-5{color:#dc3545}.training-tags{display:flex;flex-wrap:wrap;gap:6px}.tag{padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500}.tag-group{background:#e3f2fd;color:#1976d2}.training-session-meta{display:flex;flex-wrap:wrap;gap:12px;padding-top:8px;border-top:1px solid #f0f0f0;font-size:13px}.meta-item{color:#666;display:flex;align-items:center;gap:4px}.btn-add-session{width:100%;padding:10px;margin-top:12px;background:#f3f4f6;border:2px dashed #d1d5db;border-radius:8px;color:#6b7280;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}.btn-add-session:hover{background:#e5e7eb;border-color:#9ca3af;color:#374151}.add-session-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.add-session-modal{background:#fff;border-radius:12px;width:90%;max-width:600px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d}.add-session-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e5e7eb}.add-session-modal-header h3{margin:0;font-size:20px;color:#111827}.modal-close{background:none;border:none;font-size:28px;color:#6b7280;cursor:pointer;line-height:1;padding:0;width:32px;height:32px}.modal-close:hover{color:#111827}.add-session-modal-body{padding:24px;overflow-y:auto;flex:1}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-size:14px;font-weight:600;color:#374151}.form-input{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:8px;font-size:14px}.form-input:disabled{background:#f9fafb;color:#6b7280}.checkbox-label{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:14px;color:#374151;padding:8px 0;font-weight:400!important}.form-checkbox{width:18px;height:18px;cursor:pointer;accent-color:#667eea}.checkbox-label span{-webkit-user-select:none;user-select:none}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.trainings-list-modal{max-height:300px;overflow-y:auto;border:1px solid #e5e7eb;border-radius:8px}.modal-loading,.modal-empty{padding:24px;text-align:center;color:#6b7280}.training-item-modal{padding:12px 16px;border-bottom:1px solid #e5e7eb;cursor:pointer;transition:background .2s}.training-item-modal:last-child{border-bottom:none}.training-item-modal:hover{background:#f9fafb}.training-item-modal.selected{background:#eff6ff;border-left:3px solid #2563eb}.training-item-name{font-weight:600;color:#111827;margin-bottom:4px}.training-item-keywords{font-size:12px;color:#6b7280}.add-session-modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #e5e7eb}.btn-cancel{padding:10px 20px;border:1px solid #d1d5db;background:#fff;border-radius:8px;font-size:14px;font-weight:600;color:#374151;cursor:pointer}.btn-cancel:hover{background:#f9fafb}.btn-create{padding:10px 20px;border:none;background:#2563eb;border-radius:8px;font-size:14px;font-weight:600;color:#fff;cursor:pointer}.btn-create:hover:not(:disabled){background:#1d4ed8}.btn-create:disabled{background:#9ca3af;cursor:not-allowed}.spinner-mini{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:spin 1s ease-in-out infinite;display:inline-block;vertical-align:middle;margin-right:8px}.session-group{display:flex;flex-direction:column;gap:12px;padding:12px;border-radius:8px;margin-bottom:8px}.session-group-morning{background-color:#fff7ed;border:1px solid #ffedd5}.session-group-afternoon{background-color:#eff6ff;border:1px solid #dbeafe}.session-group-evening{background-color:#f5f3ff;border:1px solid #ede9fe}.session-group-empty{min-height:48px;display:flex;align-items:center;justify-content:center;opacity:.6}.session-group-empty-label{font-size:13px;color:#9ca3af;font-weight:500;text-transform:capitalize}.btn-print-week{background:#667eea;color:#fff;border:none;border-radius:6px;padding:8px 16px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:6px;white-space:nowrap;flex-shrink:0}.btn-print-week:hover{background:#5568d3;transform:translateY(-1px);box-shadow:0 2px 8px #667eea4d}.btn-week-totals{background:#667eea;color:#fff;border:none;border-radius:6px;padding:8px 16px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:6px;white-space:nowrap;flex-shrink:0}.btn-week-totals:hover{background:#5568d3;transform:translateY(-1px);box-shadow:0 2px 8px #667eea4d}.btn-week-totals .expand-icon{color:#fff;font-size:12px;margin-left:4px}.btn-week-presences{background:#10b981;color:#fff;border:none;border-radius:6px;padding:8px 16px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:6px;white-space:nowrap;flex-shrink:0}.btn-week-presences:hover{background:#059669;transform:translateY(-1px);box-shadow:0 2px 8px #10b9814d}.training-week-presences{margin:16px 0;padding:20px;background:#f9fafb;border-radius:8px;border:1px solid #e5e7eb}.presences-grid-container{width:100%}.presences-table-wrapper{overflow-x:auto;border-radius:8px;border:1px solid #e5e7eb;background:#fff}.presences-table{width:100%;border-collapse:collapse;font-size:13px}.presences-table thead{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.presences-table th{padding:12px 8px;text-align:center;font-weight:600;border-right:1px solid rgba(255,255,255,.2);vertical-align:top}.presences-table th:last-child{border-right:none}.athlete-name-header{text-align:left!important;padding-left:16px!important;min-width:180px;position:sticky;left:0;background:linear-gradient(135deg,#667eea,#764ba2);z-index:2}.day-header{min-width:120px}.day-label{font-size:12px;font-weight:700;margin-bottom:2px}.day-date{font-size:10px;font-weight:400;opacity:.9;margin-bottom:6px}.day-sessions{display:flex;flex-direction:column;gap:4px}.session-info{display:flex;flex-direction:column;align-items:center;background:#fffffff2;padding:2px 4px;border-radius:3px;font-size:10px;color:#1f2937;font-weight:600}.session-time{font-weight:700;font-size:10px;color:#1f2937}.session-local{font-weight:400;opacity:.9;font-size:9px;color:#4b5563}.totals-header{min-width:100px;background:#0000001a}.presences-table tbody tr{border-bottom:1px solid #e5e7eb;transition:background .2s}.presences-table tbody tr:hover{background:#f3f4f6}.athlete-name-cell{padding:6px 12px;text-align:left;font-weight:600;position:sticky;left:0;background:#fff;border-right:2px solid #e5e7eb;z-index:2}.presences-table tbody tr:hover .athlete-name-cell{background:#f3f4f6}.day-cell{padding:4px 6px;text-align:center;border-right:1px solid #e5e7eb}.presence-marks-container{display:flex;align-items:center;justify-content:center;gap:4px}.presence-mark{min-height:20px;min-width:20px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;border-radius:3px;transition:all .2s ease}.presence-mark.present{color:#10b981;background-color:#10b9811a}.presence-mark.absent{color:#d1d5db;background-color:transparent}.total-cell{padding:6px 8px;text-align:center;font-weight:600;background:#f9fafb;border-right:1px solid #e5e7eb;font-size:13px}.total-sessions-header{min-width:50px;max-width:60px;width:55px}.total-sessions-cell{min-width:50px;max-width:60px;width:55px;position:sticky;left:0;z-index:1;background:#f9fafb}.total-cell:last-child{border-right:none}.athlete-row:hover{background-color:#667eea0d}.athlete-row .expand-icon{color:#667eea;font-weight:700;display:inline-block;width:16px;text-align:center}.presences-summary-row{font-weight:600;background-color:#f3f4f6;border-top:2px solid #d1d5db}.training-week-header-content{display:flex;align-items:center;gap:24px;flex:1}@media print{@page{size:landscape;margin:.5in;@bottom-right{content:"Page " counter(page) " of " counter(pages);font-size:10px;color:#666}}*{overflow:visible!important}body,html{overflow:visible!important;height:auto!important}.btn-print-week,.btn-week-totals,.btn-week-presences,.btn-add-session,.expand-icon,.athlete-row .expand-icon,.time-slot-clickable,.time-slot-collapsed-cell,.time-slot-label-cell,.time-slot-header-cell,.time-slot-header,.time-slot-collapsed{display:none!important}body.printing-week .training-sessions-list-header,body.printing-week .training-sessions-controls,body.printing-week .overall-totals-section,body.printing-week .training-week-block:not([data-print-target=true]){display:none!important}body.printing-week .training-sessions-list{padding:0!important}body.printing-week .sidebar,body.printing-week .app-sidebar,body.printing-week nav,body.printing-week .navigation{display:none!important}body.printing-week .app-main,body.printing-week main,body.printing-week .main-content{margin-left:0!important;width:100%!important}.training-week-header-content{display:flex!important;cursor:default!important}.training-week-header{display:flex!important;padding:12px 20px!important;background:#f3f4f6!important;page-break-inside:avoid;page-break-after:avoid;cursor:default!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.training-week-header h3{font-size:18px!important;margin:0!important}.training-week-sticky-header{position:static!important;box-shadow:none!important;border-bottom:2px solid #666!important}.training-week-presences,.training-week-stats,.training-week-table-wrapper{margin-top:0!important}.training-week-block{display:flex!important;flex-direction:column!important;page-break-inside:auto;border:1px solid #000!important;overflow:visible!important;height:auto!important}.training-week-header{order:1}.training-week-table-wrapper{order:2}.training-week-presences{order:3;page-break-before:always;page-break-inside:avoid}.training-week-stats{order:4;page-break-before:always;page-break-inside:avoid}.training-week-table-wrapper{overflow:visible!important;height:auto!important;display:block!important}.training-week-table{width:100%!important;page-break-inside:auto;display:table!important;border-collapse:collapse!important}.training-week-table thead{display:table-header-group!important;break-inside:avoid}.training-week-table tbody{display:table-row-group!important}.training-week-table tbody tr{page-break-inside:avoid;display:table-row!important}.training-week-table td{page-break-inside:auto;vertical-align:top!important;display:table-cell!important}.training-week-table th,.training-week-table td{border:1px solid #666!important;padding:8px!important;font-size:11px!important}.training-week-table th{background:#e5e7eb!important;font-weight:700!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.training-day-stack{max-height:none!important;overflow:visible!important;height:auto!important}.training-session-card{page-break-inside:avoid;margin-bottom:8px!important;box-shadow:none!important;border:1px solid #ccc!important;font-size:10px!important;break-inside:avoid}.training-session-time-top{font-size:11px!important;padding:6px 12px!important;margin:-12px -12px 8px!important}.training-session-card-header h3{font-size:13px!important}.training-keywords{font-size:10px!important;-webkit-line-clamp:3!important;line-clamp:3!important}.training-session-card-stats{font-size:10px!important}.session-group{page-break-inside:auto;break-inside:auto;padding:8px!important;margin-bottom:6px!important}.session-group-morning{background-color:#fff7ed!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.session-group-afternoon{background-color:#eff6ff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.session-group-evening{background-color:#f5f3ff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.session-group-empty-label{font-size:11px!important}.week-stats-columns{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:12px!important;page-break-inside:avoid}.week-stats-column{font-size:10px!important;padding:10px!important}.breakdown-item{font-size:9px!important;padding:4px 6px!important}}.training-sessions-list-page{width:100%;height:100%}.training-stats{background:#fff;width:400px;min-width:350px;max-width:500px;flex-shrink:0;border-left:1px solid #dee2e6;padding:12px;overflow-y:auto;height:100%;font-size:16px}.training-stats h3{margin:0 0 12px;color:#333;font-size:20px;border-bottom:1px solid #dee2e6;padding-bottom:6px}.training-stats .stats-overview{display:grid!important;grid-template-columns:repeat(2,1fr)!important;gap:4px!important;margin-bottom:12px!important}.training-stats .stats-overview .stat-card{background:#fff!important;border:1px solid #dee2e6!important;padding:2px 4px!important;border-radius:3px!important;display:block!important}.training-stats .stats-overview .stat-card.primary,.training-stats .stats-overview .stat-card.success{background:#fff!important}.training-stats .stats-overview .stat-card .stat-label{font-size:14px!important;text-transform:uppercase!important;letter-spacing:0px!important;color:#6c757d!important;margin-bottom:3px!important;line-height:1.2!important;display:block!important;font-weight:400!important}.training-stats .stats-overview .stat-card .stat-value{font-size:24px!important;font-weight:600!important;color:#333!important;line-height:1!important;display:block!important}.training-stats .groups-breakdown{margin-top:10px;overflow-x:hidden}.training-stats .groups-breakdown h4{color:#555;font-size:17px;margin-bottom:8px;font-weight:600}.training-stats .zones-breakdown{margin-top:10px;padding:10px;background:#fff9e6;border-radius:4px;border:1px solid #ffc107}.training-stats .zones-breakdown h4{color:#555;font-size:17px;margin-bottom:8px;font-weight:600;margin-top:0}.training-stats .zones-breakdown .clickable-title,.training-stats .types-breakdown .clickable-title,.training-stats .equipment-breakdown .clickable-title{cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:6px}.training-stats .zones-breakdown .clickable-title:hover,.training-stats .types-breakdown .clickable-title:hover,.training-stats .equipment-breakdown .clickable-title:hover{opacity:.8}.training-stats .zones-breakdown .expand-icon,.training-stats .types-breakdown .expand-icon,.training-stats .equipment-breakdown .expand-icon{font-size:9px;color:#666;transition:transform .2s ease}.training-stats .types-breakdown{margin-top:10px;padding:10px;background:#f0f8ff;border-radius:4px;border:1px solid #90caf9}.training-stats .types-breakdown h4{color:#555;font-size:17px;margin-bottom:8px;font-weight:600;margin-top:0}.training-stats .equipment-breakdown{margin-top:10px;padding:10px;background:#f3e5f5;border-radius:4px;border:1px solid #ba68c8}.training-stats .equipment-breakdown h4{color:#555;font-size:17px;margin-bottom:8px;font-weight:600;margin-top:0}.training-stats .blocks-breakdown{margin-top:10px;padding:10px;background:#e8f5e9;border-radius:4px;border:1px solid #66bb6a}.training-stats .blocks-breakdown h4{color:#555;font-size:17px;margin-bottom:8px;font-weight:600;margin-top:0}.training-stats .blocks-breakdown .clickable-title{cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:6px}.training-stats .blocks-breakdown .clickable-title:hover{opacity:.8}.training-stats .blocks-breakdown .expand-icon{font-size:16px;color:#666;transition:transform .2s ease}.training-stats .zone-item{display:flex;justify-content:space-between;align-items:center;padding:6px 8px;margin-bottom:4px;background:#fff;border-radius:3px;font-size:15px}.training-stats .zone-item:last-child{margin-bottom:0}.training-stats .zone-item .zone-name{font-weight:600;background:#ffc107;color:#fff;padding:3px 8px;border-radius:12px;font-size:14px!important;min-width:45px;text-align:center}.training-stats .zone-stats{display:flex;gap:12px;font-size:15px;color:#666;align-items:center}.training-stats .zone-stat{font-weight:500}.training-stats .zone-percentage{font-weight:600;color:#333;background:#fff3cd;padding:3px 8px;border-radius:4px;font-size:13px;min-width:50px;text-align:center;border:1px solid #ffc107}.training-stats .groups-breakdown .group-item{background:#f8f9fa!important;border-left:2px solid #007bff!important;padding:5px 6px!important;margin-bottom:5px!important;border-radius:2px!important;display:block!important}.training-stats .groups-breakdown .group-item:hover{background:#e9ecef!important}.training-stats .groups-breakdown .group-header{display:flex!important;justify-content:space-between!important;align-items:center!important;margin-bottom:3px!important}.training-stats .groups-breakdown .group-header.clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.training-stats .groups-breakdown .group-header.clickable:hover{opacity:.8}.training-stats .groups-breakdown .group-name{font-weight:600!important;color:#333!important;font-size:18px!important;display:flex!important;align-items:center!important;gap:6px!important}.training-stats .groups-breakdown .expand-icon{display:inline-block!important;font-size:16px!important;color:#007bff!important;min-width:16px!important}.training-stats .groups-breakdown .group-stats{display:flex!important;gap:10px!important;font-size:15px!important;color:#666!important}.training-stats .groups-breakdown .group-stat{display:flex!important;align-items:center!important;gap:5px!important}.training-stats .groups-breakdown .group-stat-label{font-weight:500!important}.training-stats .groups-breakdown .group-stat-value{color:#007bff!important;font-weight:600!important}.training-stats .groups-breakdown .group-with-base{margin-top:8px!important;padding-top:6px!important;border-top:1px dashed #dee2e6!important;font-size:14px!important}.training-stats .groups-breakdown .base-addition{color:#666!important;margin-bottom:4px!important;font-size:14px!important}.training-stats .groups-breakdown .group-total{display:flex!important;justify-content:space-between!important;align-items:center!important;background:#e7f3ff!important;padding:4px 6px!important;border-radius:3px!important;font-weight:600!important;font-size:15px!important}.training-stats .groups-breakdown .total-label{color:#555!important}.training-stats .groups-breakdown .total-values{color:#007bff!important}.blocks-list{margin-left:6px;margin-top:4px}.block-item{background:#fff;padding:6px 7px;margin-bottom:4px;border-radius:3px;font-size:15px;border:1px solid #e9ecef}.block-header{display:flex;justify-content:space-between;align-items:center;color:#555;margin-bottom:3px}.block-info{font-weight:500;font-size:16px;display:flex;align-items:center;gap:5px}.block-start-time{background:#e9ecef;color:#495057;padding:3px 8px;border-radius:12px;font-size:13px;font-weight:600;font-family:Courier New,monospace;min-width:50px;text-align:center}.block-zone{background:#007bff;color:#fff;padding:2px 6px;border-radius:10px;font-size:13px;font-weight:600}.block-stats{display:flex;gap:8px;font-size:15px;color:#666}.tasks-list{margin-left:6px;margin-top:2px;padding-left:6px;border-left:1px solid #e9ecef}.task-item{padding:3px 0;font-size:15px;color:#666;font-family:Courier New,monospace;line-height:1.5;display:flex;align-items:center;gap:6px}.task-start-time{background:#d1ecf1;color:#0c5460;padding:2px 7px;border-radius:10px;font-size:13px;font-weight:600;min-width:50px;text-align:center;flex-shrink:0}.intervals-list{margin-top:4px;padding-left:6px;border-left:1px solid #e9ecef}.interval-item{padding:1px 0;font-size:13px;color:#17a2b8;font-family:Courier New,monospace;line-height:1.3;font-weight:500}.empty-state{text-align:center;padding:20px 10px;color:#6c757d}.empty-state-icon{font-size:32px;margin-bottom:8px;opacity:.3}.empty-state-text{font-size:15px}.group-with-base{margin-top:8px;padding-top:6px;border-top:1px dashed #dee2e6;font-size:10px}.group-details .zones-breakdown{margin:8px 0;padding:8px;background:#fffbf0;border:1px solid #ffe58f;border-radius:4px}.group-details .zones-breakdown .zones-title{font-size:10px;font-weight:600;color:#856404;margin:0 0 6px;text-transform:uppercase;letter-spacing:.3px}.group-details .zones-breakdown .zones-list{display:flex;flex-direction:column;gap:4px}.group-details .types-breakdown{margin:8px 0;padding:8px;background:#f0f8ff;border:1px solid #90caf9;border-radius:4px}.group-details .types-breakdown .types-title{font-size:10px;font-weight:600;color:#1565c0;margin:0 0 6px;text-transform:uppercase;letter-spacing:.3px}.group-details .types-breakdown .types-list{display:flex;flex-direction:column;gap:4px}.type-item{display:flex;justify-content:space-between;align-items:center;padding:6px 8px;margin-bottom:4px;background:#fff;border-radius:3px;font-size:15px}.type-item:last-child{margin-bottom:0}.type-name{font-weight:600;color:#fff;background:#1976d2;padding:3px 8px;border-radius:12px;font-size:14px!important;min-width:45px;text-align:center;text-transform:capitalize}.type-stats{display:flex;gap:12px;font-size:15px;color:#666;align-items:center}.type-percentage{font-weight:600;color:#333;background:#e3f2fd;padding:3px 8px;border-radius:4px;font-size:13px;min-width:50px;text-align:center;border:1px solid #42a5f5}.group-details .equipment-breakdown{margin:8px 0;padding:8px;background:#f3e5f5;border:1px solid #ba68c8;border-radius:4px}.group-details .equipment-breakdown .equipment-title{font-size:10px;font-weight:600;color:#6a1b9a;margin:0 0 6px;text-transform:uppercase;letter-spacing:.3px}.group-details .equipment-breakdown .equipment-list{display:flex;flex-direction:column;gap:4px}.equipment-item{display:flex;justify-content:space-between;align-items:center;padding:6px 8px;margin-bottom:4px;background:#fff;border-radius:3px;font-size:15px}.equipment-item:last-child{margin-bottom:0}.equipment-item .equipment-name{font-weight:600;color:#4a148c;background:#e1bee7;padding:3px 8px;border-radius:12px;font-size:14px!important;min-width:45px;text-align:center;text-transform:capitalize}.equipment-stats{display:flex;gap:12px;font-size:15px;color:#666;align-items:center}.equipment-percentage{font-weight:600;color:#4a148c;background:#f3e5f5;padding:3px 8px;border-radius:4px;font-size:13px;min-width:50px;text-align:center;border:1px solid #ba68c8}.base-addition{color:#6c757d;font-style:italic;margin-bottom:4px;padding-left:2px}.group-total{display:flex;justify-content:space-between;align-items:center;font-weight:600;color:#28a745;padding:4px 6px;background:#f0fff4;border-radius:3px;margin-top:4px}.total-label{font-size:10px}.total-values{font-size:11px}.training-stats .all-techniques-section{margin-top:16px;padding:12px;background:#fff9e6;border-radius:4px;border:1px solid #ffc107}.training-stats .all-techniques-section h4{font-size:17px!important;font-weight:600!important;color:#555!important;margin:0 0 8px!important}.training-stats .all-equipment-section{margin-top:16px;padding:12px;background:#fafafa;border-radius:4px;border:1px solid #e0e0e0}.training-stats .all-equipment-section h4{font-size:17px!important;font-weight:600!important;color:#555!important;margin:0 0 8px!important}.training-stats .all-equipment-section .equipment-tags{display:flex!important;flex-wrap:wrap!important;gap:6px!important}.training-stats .all-equipment-section .equipment-name{font-weight:600!important;color:#4a148c!important;background:#e1bee7!important;padding:5px 10px!important;border-radius:14px!important;font-size:14px!important;text-transform:capitalize!important;display:inline-block!important}@media(max-width:768px){.stats-overview{grid-template-columns:1fr}.group-header{flex-direction:column;align-items:flex-start;gap:8px}.block-header{flex-direction:column;align-items:flex-start;gap:5px}}.help-modal-overlay{position:fixed;inset:0;background:#0009;display:flex;justify-content:center;align-items:center;z-index:10000;padding:20px;overflow-y:auto}.help-modal{background:#fff;border-radius:12px;max-width:900px;width:100%;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 10px 40px #0000004d;animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(-50px)}to{opacity:1;transform:translateY(0)}}.help-modal-header{background:linear-gradient(135deg,#007bff,#0056b3);color:#fff;padding:20px 25px;display:flex;justify-content:space-between;align-items:center;border-radius:12px 12px 0 0}.help-modal-header h2{margin:0;font-size:24px}.help-modal-close{background:#fff3;border:none;color:#fff;font-size:28px;width:40px;height:40px;border-radius:50%;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;line-height:1}.help-modal-close:hover{background:#ffffff4d;transform:rotate(90deg)}.help-modal-body{padding:25px;overflow-y:auto;flex:1}.help-section{margin-bottom:30px}.help-section:last-child{margin-bottom:0}.help-section h3{color:#007bff;font-size:20px;margin:0 0 15px;padding-bottom:8px;border-bottom:2px solid #e9ecef}.help-section h4{color:#495057;font-size:16px;margin:15px 0 10px}.help-section p{color:#6c757d;line-height:1.6;margin-bottom:12px}.help-section ul{list-style:none;padding:0;margin:10px 0}.help-section li{padding:8px 0;color:#495057;line-height:1.6}.help-section li strong{color:#212529}.syntax-example{background:#f8f9fa;border-left:4px solid #007bff;padding:15px;margin:15px 0;border-radius:4px;font-family:Courier New,monospace;font-size:14px}.syntax-example-title{font-weight:600;color:#007bff;margin-bottom:8px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.syntax-example code{display:block;background:#fff;padding:10px;border-radius:4px;margin:5px 0;color:#212529}.help-table{width:100%;border-collapse:collapse;margin:15px 0}.help-table th{background:#007bff;color:#fff;padding:12px;text-align:left;font-weight:600;font-size:14px}.help-table td{padding:10px 12px;border-bottom:1px solid #dee2e6;font-size:14px;color:#495057}.help-table tr:last-child td{border-bottom:none}.help-table code{background:#e9ecef;padding:2px 6px;border-radius:3px;font-family:Courier New,monospace;font-size:13px;color:#007bff}.help-tips{background:#d1ecf1;border:1px solid #bee5eb;border-radius:6px;padding:15px;margin:15px 0}.help-tips-title{color:#0c5460;font-weight:600;margin-bottom:10px;font-size:15px}.help-tips ul{margin:0;padding-left:20px}.help-tips li{color:#0c5460;padding:4px 0}.help-modal-footer{background:#f8f9fa;padding:15px 25px;border-top:1px solid #dee2e6;display:flex;justify-content:flex-end;border-radius:0 0 12px 12px}.help-modal-footer button{background:#007bff;color:#fff;border:none;padding:10px 24px;border-radius:6px;cursor:pointer;font-size:15px;font-weight:500;transition:all .2s}.help-modal-footer button:hover{background:#0056b3;transform:translateY(-1px);box-shadow:0 4px 8px #007bff4d}@media(max-width:768px){.help-modal{max-width:100%;max-height:100vh;border-radius:0}.help-modal-header{border-radius:0}.help-modal-body{padding:20px}.syntax-example,.help-table{font-size:12px}}.code-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin-top:10px}.code-item{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#f8f9fa;border-radius:6px;border:1px solid #dee2e6}.code-item code{background:#007bff;color:#fff;padding:3px 8px;border-radius:4px;font-weight:600;font-size:12px;min-width:50px;text-align:center}.code-item span{font-size:13px;color:#495057;flex:1}.run-dialog-overlay{position:fixed;inset:0;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:10000;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.run-dialog{background:#fff;border-radius:12px;box-shadow:0 8px 32px #0000004d;width:90%;max-width:600px;max-height:80vh;display:flex;flex-direction:column;animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}.run-dialog-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e5e7eb}.run-dialog-header h2{margin:0;font-size:20px;font-weight:600;color:#1f2937}.run-dialog-close{background:none;border:none;font-size:28px;color:#6b7280;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .2s}.run-dialog-close:hover{background:#f3f4f6;color:#1f2937}.run-dialog-content{padding:24px;overflow-y:auto;flex:1}.run-dialog-loading{text-align:center;padding:40px;color:#6b7280;font-size:16px}.run-option{border:2px solid #e5e7eb;border-radius:8px;margin-bottom:16px;transition:all .2s;overflow:hidden}.run-option:hover{border-color:#d1d5db}.run-option.selected{border-color:#2563eb;background:#eff6ff}.run-option-header{display:flex;align-items:center;padding:16px;cursor:pointer;gap:12px}.run-option-header input[type=radio]{width:18px;height:18px;cursor:pointer;accent-color:#2563eb}.run-option-header label{font-size:16px;font-weight:500;color:#1f2937;cursor:pointer;-webkit-user-select:none;user-select:none;flex:1}.run-option-content{padding:0 16px 16px;display:flex;flex-direction:column;gap:12px}.session-name-input{width:100%;padding:12px;border:1px solid #d1d5db;border-radius:6px;font-size:15px;font-family:inherit;transition:all .2s}.session-name-input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.date-time-row{display:flex;gap:12px;width:100%}.date-time-field{flex:1;display:flex;flex-direction:column;gap:6px}.date-time-field label{font-size:13px;font-weight:500;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}.session-date-input,.session-time-input{padding:12px;border:1px solid #d1d5db;border-radius:6px;font-size:15px;font-family:inherit;transition:all .2s}.session-date-input:focus,.session-time-input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.run-dialog-button{padding:12px 24px;border:none;border-radius:6px;font-size:15px;font-weight:500;cursor:pointer;transition:all .2s;align-self:flex-start}.run-dialog-button.primary{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff}.run-dialog-button.primary:hover:not(:disabled){background:linear-gradient(135deg,#1d4ed8,#1e40af);transform:translateY(-1px);box-shadow:0 4px 12px #2563eb4d}.run-dialog-button:disabled{opacity:.5;cursor:not-allowed}.active-sessions-list{display:flex;flex-direction:column;gap:8px;max-height:300px;overflow-y:auto;padding:4px}.session-item{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;transition:all .2s;background:#fff}.session-item:hover{border-color:#2563eb;background:#f9fafb}.session-item.selected{border-color:#2563eb;background:#eff6ff}.session-item input[type=radio]{width:18px;height:18px;cursor:pointer;accent-color:#2563eb;flex-shrink:0}.session-info{flex:1;min-width:0}.session-name{font-weight:500;color:#1f2937;margin-bottom:4px}.session-meta{font-size:13px;color:#6b7280}.no-sessions-message{text-align:center;padding:40px 20px;color:#6b7280;font-size:15px}.active-sessions-list::-webkit-scrollbar{width:8px}.active-sessions-list::-webkit-scrollbar-track{background:#f3f4f6;border-radius:4px}.active-sessions-list::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:4px}.active-sessions-list::-webkit-scrollbar-thumb:hover{background:#9ca3af}.session-history{margin-top:32px;padding-top:24px;border-top:2px solid #e5e7eb}.session-history h3{margin:0 0 8px;font-size:18px;font-weight:600;color:#1f2937}.session-history-description{margin:0 0 16px;color:#6b7280;font-size:14px}.session-history-list{display:flex;flex-direction:column;gap:12px;max-height:300px;overflow-y:auto;padding-right:4px}.history-session-item{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:12px 16px;cursor:pointer;transition:all .2s}.history-session-item:hover{background:#f3f4f6;border-color:#d1d5db;transform:translate(2px)}.history-session-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.history-session-name{font-weight:500;color:#1f2937;font-size:15px;flex:1;margin-right:12px}.session-state-badge{padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.session-state-badge.active{background:#dcfce7;color:#16a34a}.session-state-badge.completed{background:#dbeafe;color:#2563eb}.session-state-badge.paused{background:#fef3c7;color:#d97706}.session-state-badge.pending{background:#f3f4f6;color:#6b7280}.history-session-meta{display:flex;gap:16px;font-size:13px;color:#6b7280}.history-session-meta span{display:flex;align-items:center;gap:4px}.session-history-list::-webkit-scrollbar{width:8px}.session-history-list::-webkit-scrollbar-track{background:#f3f4f6;border-radius:4px}.session-history-list::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:4px}.session-history-list::-webkit-scrollbar-thumb:hover{background:#9ca3af}.editor-tabs{display:flex;gap:4px;background:#f8f9fa;border-bottom:2px solid #e5e7eb;padding:12px 20px 0}.editor-tab{padding:10px 20px;background:transparent;border:none;border-bottom:3px solid transparent;cursor:pointer;font-size:14px;font-weight:500;color:#6b7280;transition:all .2s ease;position:relative;bottom:-2px}.editor-tab:hover{color:#374151;background:#f3f4f6;border-radius:6px 6px 0 0}.editor-tab.active{color:#667eea;border-bottom-color:#667eea;background:#fff;border-radius:6px 6px 0 0}.tab-content{padding:24px;background:#fff;min-height:400px}.coaches-management,.presences-management,.training-editor-container{display:flex;flex-direction:column;height:100%;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.training-editor-container.fullscreen{position:fixed;inset:0;width:100vw;height:100vh;z-index:9999;border-radius:0;box-shadow:none;margin:0}.training-metadata{background:#f8f9fa;border-bottom:1px solid #dee2e6;padding:16px 20px}.metadata-row{display:grid;grid-template-columns:1.5fr 1.2fr 1fr 1.2fr 1.2fr;gap:12px}.metadata-field{display:flex;flex-direction:column;gap:6px}.metadata-field label{font-size:12px;font-weight:600;color:#495057;text-transform:uppercase;letter-spacing:.5px}.metadata-input,.metadata-select{padding:8px 12px;border:1px solid #ced4da;border-radius:4px;font-size:14px;font-family:inherit;background:#fff;transition:border-color .2s}.metadata-input:focus,.metadata-select:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 3px #007bff1a}.metadata-input::placeholder{color:#adb5bd}.editor-header{background:linear-gradient(135deg,#007bff,#0056b3);color:#fff;padding:15px 20px;display:flex;justify-content:space-between;align-items:center}.editor-header h3{margin:0;font-size:18px}.editor-controls{display:flex;gap:10px;align-items:center;margin-left:auto}.interval-control{display:flex;align-items:center;gap:8px;background:#fff3;padding:5px 12px;border-radius:20px}.interval-control label{font-size:13px;font-weight:500}.interval-control input{width:60px;padding:4px 8px;border:none;border-radius:4px;font-size:13px;text-align:center}.editor-actions{display:flex;gap:8px}.editor-btn{background:#ffffffe6;color:#007bff;border:none;padding:10px 18px;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s;min-height:44px;min-width:80px}.editor-btn:hover{background:#fff;transform:translateY(-1px)}.editor-btn.secondary{background:#fff3;color:#fff;border:1px solid rgba(255,255,255,.5)}.editor-btn.secondary:hover{background:#ffffff4d}.editor-body{display:flex;flex:1;position:relative;min-height:0}.editor-wrapper{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;position:relative;overflow:hidden}.editor-body:has(.editor-sidebar) .editor-wrapper{flex:0 0 60%}.editor-sidebar{flex:0 0 40%;display:flex;flex-direction:column;border-left:1px solid #dee2e6;background:#fff;overflow:hidden}.sidebar-section{flex:1;display:flex;flex-direction:column;min-height:0}.sidebar-section:not(:last-child){border-bottom:1px solid #dee2e6}.sidebar-header{background:#f8f9fa;padding:12px 20px;border-bottom:1px solid #dee2e6}.sidebar-header h3{margin:0;font-size:14px;font-weight:600;color:#374151}.sidebar-textarea{flex:1;padding:16px 20px;border:none;resize:none;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:14px;line-height:1.6;color:#374151;outline:none}.sidebar-textarea::placeholder{color:#9ca3af}.editor-toolbar{background:#f8f9fa;border-bottom:1px solid #dee2e6;padding:10px 15px;display:flex;gap:10px;flex-wrap:wrap}.toolbar-group{display:flex;gap:5px;padding-right:15px;border-right:1px solid #dee2e6}.toolbar-group:last-child{border-right:none}.toolbar-row-separator{width:100%;height:0;border-top:1px solid #dee2e6;margin:5px 0}.toolbar-btn{background:#fff;border:1px solid #ced4da;padding:5px 10px;border-radius:4px;cursor:pointer;font-size:12px;color:#495057;font-weight:500;transition:all .2s;white-space:nowrap}.toolbar-btn:hover{background:#007bff;color:#fff;border-color:#007bff}.editor-textarea-wrapper{flex:1;position:relative;overflow:hidden;display:flex}.editor-line-numbers{background:#f8f9fa;border-right:1px solid #dee2e6;padding:12px 8px;font-family:Courier New,monospace;font-size:14px;line-height:1.5;color:#6c757d;-webkit-user-select:none;user-select:none;overflow-y:hidden;min-width:50px;text-align:right}.line-number{height:21px;position:relative;padding-right:8px}.line-number.invalid{color:#dc3545;font-weight:700;background:#fff5f5}.line-number.invalid:before{content:"⚠";position:absolute;left:-2px;color:#dc3545;font-size:12px}.line-number.valid{color:#6c757d}.editor-textarea{flex:1;padding:12px 20px;border:none;font-family:Courier New,Consolas,monospace;font-size:14px;line-height:1.5;resize:none;outline:none;box-sizing:border-box;overflow-y:auto}.editor-textarea:focus{background:#fafbfc}.autocomplete-popup{position:absolute;background:#fff;border:1px solid #ced4da;border-radius:4px;box-shadow:0 4px 12px #00000026;max-height:300px;overflow-y:auto;z-index:1000;min-width:250px}.autocomplete-category{padding:6px 12px;background:#f8f9fa;border-bottom:1px solid #dee2e6;font-size:11px;font-weight:600;text-transform:uppercase;color:#6c757d;letter-spacing:.5px}.autocomplete-item{padding:8px 12px;cursor:pointer;font-size:13px;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;align-items:center}.autocomplete-item:last-child{border-bottom:none}.autocomplete-item:hover,.autocomplete-item.selected{background:#007bff;color:#fff}.autocomplete-label{font-weight:500}.autocomplete-code{font-family:Courier New,monospace;font-size:11px;opacity:.8}.editor-actions-bar{display:flex;justify-content:flex-start;align-items:center;gap:12px;padding:16px 20px;background:#f8f9fa;border-top:1px solid #dee2e6}.editor-actions-bar .editor-btn{padding:10px 24px;font-size:14px;font-weight:500;background:#fff;border:1px solid #dee2e6}.editor-actions-bar .editor-btn.secondary{background:#fff;color:#6c757d;border:1px solid #dee2e6}.editor-actions-bar .editor-btn.secondary:hover{background:#e9ecef;color:#495057;border-color:#adb5bd}.editor-actions-bar .editor-btn.primary{background:#dc2626;color:#fff;border:1px solid #dc2626}.editor-actions-bar .editor-btn.primary:hover{background:#b91c1c;border-color:#b91c1c}.editor-actions-bar .editor-btn.add-to-schedule-btn{background:#667eea;color:#fff;border:1px solid #667eea;font-weight:600;margin-left:8px}.editor-actions-bar .editor-btn.add-to-schedule-btn:hover:not(:disabled){background:#5568d3;border-color:#5568d3;transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.editor-actions-bar .editor-btn.run-btn{background:linear-gradient(135deg,#28a745,#218838);color:#fff;border:1px solid #28a745;font-weight:600;margin-left:8px}.editor-actions-bar .editor-btn.run-btn:hover:not(:disabled){background:linear-gradient(135deg,#218838,#1e7e34);transform:translateY(-1px);box-shadow:0 4px 12px #28a74566}.help-header{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .2s}.help-header:hover{background:#e9ecef}.help-toggle{font-size:18px;font-weight:700;color:#007bff;width:20px;text-align:center}.help-content{padding:0 20px 12px;animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.help-item{margin-bottom:5px}.help-item:last-child{margin-bottom:0}.help-item code{background:#e9ecef;padding:2px 6px;border-radius:3px;font-family:Courier New,monospace;color:#495057}.help-more{margin-top:10px;text-align:right}.help-more a{color:#007bff;cursor:pointer;font-size:12px;text-decoration:none;transition:color .2s}.help-more a:hover{color:#0056b3;text-decoration:underline}.line-numbers{position:absolute;left:0;top:0;bottom:0;width:40px;background:#f8f9fa;color:#6c757d;text-align:right;padding:20px 8px 20px 0;font-family:Courier New,Consolas,monospace;font-size:14px;line-height:1.6;-webkit-user-select:none;user-select:none;border-right:1px solid #dee2e6;overflow:hidden}.editor-textarea.with-line-numbers{padding-left:60px}.syntax-highlight{position:absolute;left:60px;top:20px;right:20px;pointer-events:none;font-family:Courier New,Consolas,monospace;font-size:14px;line-height:1.6;white-space:pre-wrap;word-wrap:break-word;color:transparent}.syntax-group{color:#06c;font-weight:700}.syntax-block{color:#c00;font-weight:700}.syntax-comment{color:#6c757d;font-style:italic}.toolbar-dropdown-wrapper{position:relative}.toolbar-dropdown{position:absolute;top:100%;left:0;margin-top:5px;background:#fff;border:1px solid #dee2e6;border-radius:8px;box-shadow:0 4px 12px #00000026;min-width:250px;max-width:400px;max-height:400px;z-index:1000;animation:dropdownSlide .2s ease-out}.toolbar-dropdown.align-right{left:auto;right:0}@keyframes dropdownSlide{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.toolbar-dropdown-header{background:#f8f9fa;padding:10px 15px;border-bottom:1px solid #dee2e6;border-radius:8px 8px 0 0;display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:600;color:#495057}.toolbar-dropdown-close{background:transparent;border:none;color:#6c757d;font-size:20px;line-height:1;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.toolbar-dropdown-close:hover{background:#dee2e6;color:#495057}.toolbar-dropdown-list{max-height:340px;overflow-y:auto;padding:8px}.toolbar-dropdown-item{display:block;width:100%;background:#fff;border:1px solid #dee2e6;padding:10px 12px;margin-bottom:6px;border-radius:6px;cursor:pointer;font-size:13px;font-weight:500;color:#495057;text-align:left;transition:all .2s}.toolbar-dropdown-item:last-child{margin-bottom:0}.toolbar-dropdown-item:hover{background:#007bff;color:#fff;border-color:#007bff;transform:translate(4px)}.toolbar-dropdown-empty{padding:20px;text-align:center;color:#6c757d;font-size:13px}@media(max-width:768px){.editor-header{flex-direction:column;gap:10px;align-items:flex-start}.editor-controls{width:100%;justify-content:space-between}.toolbar-group{padding-right:8px}.toolbar-btn{padding:4px 8px;font-size:11px}.toolbar-dropdown{min-width:200px;max-width:280px}.metadata-row{grid-template-columns:1fr}}.editor-btn:disabled{opacity:.5;cursor:not-allowed}.age-groups-ribbon{display:flex;align-items:center;gap:12px;padding:12px 16px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:8px;box-shadow:0 2px 8px #667eea33}.age-groups-label{font-size:14px;font-weight:700;color:#fff;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.age-groups-list{display:flex;flex-wrap:wrap;gap:8px;flex:1}.age-group-badge{padding:6px 14px;background:#ffffff4d;color:#ffffffe6;border:2px solid rgba(255,255,255,.4);border-radius:20px;font-size:13px;font-weight:600;box-shadow:0 2px 4px #0000001a;transition:all .2s;cursor:pointer;-webkit-user-select:none;user-select:none}.age-group-badge:hover{transform:translateY(-1px);box-shadow:0 4px 8px #00000026;background:#ffffff80;border-color:#fff9}.age-group-badge.active{background:#fff;color:#667eea;border:2px solid white;box-shadow:0 0 0 3px #ffffff80,0 4px 12px #0003;transform:scale(1.05);font-weight:700}.age-group-badge.favorite{position:relative;border-color:#ffd700cc}.age-group-badge.favorite:not(.active){background:#ffd70026;border-color:#ffd70099}.spinner-mini{width:16px;height:16px;border:2px solid rgba(102,126,234,.3);border-radius:50%;border-top-color:#667eea;animation:spin 1s ease-in-out infinite;display:inline-block;flex-shrink:0}.training-session-editor-page{padding:20px;max-width:100%;height:100%;display:flex;flex-direction:column}.training-session-editor-page .page-header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;flex-shrink:0;flex-wrap:wrap}.training-session-editor-page .page-header .header-left{display:flex;align-items:center;gap:16px;flex:1;min-width:0}.training-session-editor-page .btn-back{background:#f8f9fa;border:1px solid #dee2e6;color:#495057;padding:8px 16px;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s ease;text-decoration:none;display:inline-flex;align-items:center;gap:8px;white-space:nowrap}.training-session-editor-page .btn-back:hover{background:#e9ecef;border-color:#ced4da;color:#343a40}.training-session-editor-page .page-header h2{margin:0;font-size:24px;color:#1a1a1a}.training-session-editor-page .navigation-buttons{display:flex;gap:8px;flex-shrink:0}.training-session-editor-page .btn-nav{background:#f8f9fa;border:1px solid #dee2e6;color:#495057;padding:6px 12px;border-radius:6px;cursor:pointer;font-size:13px;font-weight:500;transition:all .2s ease;white-space:nowrap}.training-session-editor-page .btn-nav:hover:not(:disabled){background:#667eea;border-color:#667eea;color:#fff}.training-session-editor-page .btn-nav:disabled{opacity:.4;cursor:not-allowed}.training-session-editor-page .btn-delete-training{background:none;border:1px solid #dc3545;color:#dc3545;padding:8px 16px;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s ease;display:flex;align-items:center;gap:6px;white-space:nowrap}.training-session-editor-page .btn-delete-training:hover{background:#dc3545;color:#fff}.training-session-editor-page .editor-content{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:16px}.spinner{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #007bff;border-radius:50%;animation:spin 1s linear infinite}.loading-container p{color:#666;font-size:16px}@media(max-width:768px){.training-session-editor-page{padding:16px}.editor-header{flex-direction:column;align-items:flex-start}}.meetings-calendar{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden}.meetings-calendar .monthly-nav{border-bottom:1px solid #e5e7eb}.calendar-container{max-height:700px;overflow-y:auto}.calendar-container.scroll{max-height:800px}.month-calendar{padding:20px}.month-calendar+.month-calendar{border-top:1px solid #e1e5e9}.month-title{margin:18px 0 20px;padding:10px 16px;background-color:#f8fafc;border-left:3px solid #dc2626;border-radius:4px;font-size:16px;font-weight:600;color:#374151;text-transform:uppercase;letter-spacing:.05em;text-align:center}.calendar-grid{width:100%;border:1px solid #e1e5e9;border-radius:4px;overflow:hidden;display:flex;flex-direction:column}.weekdays,.calendar-days{width:100%;box-sizing:border-box}.weekdays{display:grid;grid-template-columns:repeat(7,1fr);background:#e1e5e9;overflow:hidden}.weekday-header{background:#343a40;color:#fff;padding:12px 8px;text-align:center;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.5px;border-right:1px solid #e1e5e9}.weekday-header:last-child{border-right:none}.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);background:#e1e5e9;overflow:hidden}.calendar-day{background:#fff;min-height:120px;padding:6px;position:relative;display:flex;flex-direction:column;transition:background-color .2s ease;border-right:1px solid #e1e5e9;border-bottom:1px solid #e1e5e9}.calendar-day:hover{background:#f8f9fa}.calendar-day:nth-child(7n){border-right:none}.calendar-day.other-month{background:#f8f9fa;opacity:.6}.calendar-day.today{background:#e3f2fd;border:2px solid #2196f3}.calendar-day.today .day-number{color:#1976d2;font-weight:700}.day-number{font-size:14px;font-weight:600;color:#495057;margin-bottom:4px;flex-shrink:0}.day-meetings{flex:1;display:flex;flex-direction:column;gap:1px;overflow:hidden}.meeting-item{background:#007bff;color:#fff;padding:3px 5px;border-radius:3px;font-size:10px;line-height:1.2;cursor:pointer;transition:all .2s ease;overflow:hidden;position:relative;border-left:3px solid transparent;margin-bottom:1px;min-height:18px;display:flex;flex-direction:column;justify-content:center}.meeting-item:hover{transform:translateY(-1px);box-shadow:0 2px 4px #0003}.meeting-item.multi-day.color-0{background:#e91e63;border-left-color:#ad1457}.meeting-item.multi-day.color-1{background:#9c27b0;border-left-color:#6a1b9a}.meeting-item.multi-day.color-2{background:#673ab7;border-left-color:#4527a0}.meeting-item.multi-day.color-3{background:#3f51b5;border-left-color:#283593}.meeting-item.multi-day.color-4{background:#2196f3;border-left-color:#1565c0}.meeting-item.multi-day.color-5{background:#03a9f4;border-left-color:#0277bd}.meeting-item.multi-day{border-radius:3px;position:relative}.meeting-item.multi-day.first-day{border-radius:3px 0 0 3px}.meeting-item.multi-day.last-day{border-radius:0 3px 3px 0}.meeting-item.multi-day:not(.first-day):not(.last-day){border-radius:0}.meeting-item.highlighted,.popup-meeting-item.highlighted{border:2px solid #000!important;box-shadow:0 2px 4px #0000004d}.meeting-item.highlighted:hover,.popup-meeting-item.highlighted:hover{box-shadow:0 3px 6px #0006}.multi-day-indicator{font-size:10px;margin-right:2px;opacity:.8}.meeting-name{font-weight:600;margin-bottom:1px;overflow:hidden;display:flex;align-items:center;font-size:12px;line-height:1.1;word-break:break-word;-webkit-hyphens:auto;hyphens:auto;white-space:normal}.meeting-details{font-size:11px;opacity:.9;overflow:hidden;line-height:1.1;word-break:break-word;-webkit-hyphens:auto;hyphens:auto;white-space:normal}.meeting-organizer{font-size:10px;opacity:.8;font-style:italic;overflow:hidden;line-height:1.1;word-break:break-word;-webkit-hyphens:auto;hyphens:auto;white-space:normal}.meeting-edit-btn{position:absolute;top:2px;right:2px;background:#ffffffe6;border:1px solid rgba(0,0,0,.2);border-radius:3px;width:18px;height:18px;display:flex;align-items:center;justify-content:center;font-size:10px;cursor:pointer;color:#495057;transition:all .2s ease;z-index:10;opacity:0;visibility:hidden}.meeting-item:hover .meeting-edit-btn{opacity:1;visibility:visible}.meeting-edit-btn:hover{background:#fff;transform:scale(1.1);box-shadow:0 1px 3px #0000004d}.meeting-edit-btn.popup{position:absolute;top:3px;right:3px;opacity:0;visibility:hidden}.popup-meeting-item:hover .meeting-edit-btn.popup{opacity:1;visibility:visible}.more-meetings{background:#6c757d;color:#fff;padding:2px 6px;border-radius:3px;font-size:10px;text-align:center;margin-top:1px;transition:background-color .2s ease;font-weight:500;line-height:1.2}.more-meetings.clickable{cursor:pointer}.more-meetings.clickable:hover{background:#5a6268}.more-events-overlay{position:fixed;inset:0;background:transparent;z-index:999}.more-events-popup{background:#fff;border:1px solid #dee2e6;border-radius:6px;box-shadow:0 4px 12px #00000026;z-index:1000;overflow:hidden;resize:none;position:relative}.popup-header{background:#f8f9fa;border-bottom:1px solid #dee2e6;padding:8px 12px;display:flex;justify-content:space-between;align-items:center;cursor:move;-webkit-user-select:none;user-select:none}.popup-date{font-weight:600;color:#495057;font-size:14px}.popup-close-btn{background:none;border:none;font-size:18px;font-weight:700;color:#6c757d;cursor:pointer;padding:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease}.popup-close-btn:hover{background:#e9ecef;color:#495057}.popup-content{padding:8px;overflow-y:auto;flex:1;height:calc(100% - 45px)}.resize-handle{position:absolute;background:transparent;z-index:10}.resize-handle:hover{background:#007bff4d}.resize-se{bottom:0;right:0;width:15px;height:15px;cursor:se-resize}.resize-s{bottom:0;left:15px;right:15px;height:5px;cursor:s-resize}.resize-e{top:45px;right:0;width:5px;bottom:15px;cursor:e-resize}.popup-meeting-item{background:#007bff;color:#fff;padding:8px 10px;border-radius:4px;margin-bottom:4px;cursor:pointer;transition:all .2s ease;border-left:3px solid transparent}.popup-meeting-item:last-child{margin-bottom:0}.popup-meeting-item:hover{transform:translate(2px);box-shadow:0 2px 6px #0003}.popup-meeting-item.multi-day.color-0{background:#e91e63;border-left-color:#ad1457}.popup-meeting-item.multi-day.color-1{background:#9c27b0;border-left-color:#6a1b9a}.popup-meeting-item.multi-day.color-2{background:#673ab7;border-left-color:#4527a0}.popup-meeting-item.multi-day.color-3{background:#3f51b5;border-left-color:#283593}.popup-meeting-item.multi-day.color-4{background:#2196f3;border-left-color:#1565c0}.popup-meeting-item.multi-day.color-5{background:#03a9f4;border-left-color:#0277bd}.popup-meeting-name{font-weight:600;font-size:13px;margin-bottom:2px;display:flex;align-items:center}.popup-meeting-details{font-size:11px;opacity:.9;margin-bottom:1px}.popup-meeting-organizer{font-size:10px;opacity:.8;font-style:italic}.calendar-no-meetings{padding:60px 20px;text-align:center;color:#6c757d}.no-meetings-icon{font-size:48px;margin-bottom:16px;opacity:.6}.calendar-no-meetings h3{margin:0 0 8px;color:#495057;font-size:18px}.calendar-no-meetings p{margin:0;font-size:14px}@media(max-width:768px){.meetings-calendar .monthly-nav{flex-wrap:wrap;gap:8px;padding:12px}.meetings-calendar .monthly-title{font-size:16px;min-width:auto}.calendar-day{min-height:80px;padding:4px}.meeting-item{font-size:10px;padding:2px 4px}.meeting-details,.meeting-organizer{display:none}.more-events-popup{max-width:250px;left:10px!important;right:10px;width:auto}}@media(max-width:480px){.weekday-header{padding:8px 4px;font-size:10px}.calendar-day{min-height:60px;padding:2px}.day-number{font-size:12px}.meeting-item{font-size:9px;padding:1px 3px}.monthly-nav-btn{padding:4px 10px;font-size:12px}}.monthly-view{display:flex;flex-direction:column;gap:16px}.monthly-nav{display:flex;align-items:center;justify-content:center;gap:16px}.monthly-nav-btn{padding:6px 14px;border:1px solid #d1d5db;border-radius:6px;background:#fff;cursor:pointer;font-size:16px;color:#374151;transition:all .15s}.monthly-nav-btn:hover{background:#f3f4f6;border-color:#9ca3af}.monthly-today-btn{font-size:13px;font-weight:600;color:#2563eb;border-color:#2563eb}.monthly-today-btn:hover{background:#eff6ff;border-color:#2563eb}.monthly-title{margin:0;font-size:18px;font-weight:600;color:#1f2937;min-width:200px;text-align:center}.monthly-grid{display:flex;flex-direction:column;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.monthly-header-row{display:flex;background:#f9fafb;border-bottom:2px solid #e5e7eb}.monthly-header-cell{flex:1;padding:10px 8px;text-align:center;border-right:1px solid #e5e7eb}.monthly-header-cell:last-child{border-right:none}.monthly-week-label{font-size:13px;font-weight:600;color:#374151}.monthly-week-count{font-weight:400;color:#6b7280;font-size:12px}.monthly-week-dates{font-size:11px;color:#6b7280;margin-top:2px}.monthly-body-row{display:flex;align-items:stretch;min-height:120px}.monthly-body-cell{flex:1;padding:8px;border-right:1px solid #e5e7eb;display:flex;flex-direction:column;gap:6px;background:#fff}.monthly-body-cell:last-child{border-right:none}.monthly-empty{color:#d1d5db;text-align:center;padding:16px 0;font-size:14px}.monthly-meeting-card{padding:8px 10px;border:1px solid #e5e7eb;border-left:3px solid #9ca3af;border-radius:6px;background:#fafafa;cursor:pointer;transition:all .15s;font-size:13px}.monthly-meeting-card:hover{box-shadow:0 2px 8px #0000001a;transform:translateY(-1px);background:#fff}.monthly-meeting-card.highlighted{border-left-color:#1f2937;border-left-width:3px}.monthly-meeting-card.participated{background:#eff6ff;border-left-color:#2563eb}.monthly-meeting-card.participated .monthly-card-title{color:#1e40af;font-weight:700}.monthly-meeting-card.participated .athletes-mini{font-weight:700;color:#1e40af}.monthly-card-date{font-size:11px;color:#6b7280;font-weight:500;margin-bottom:2px}.monthly-card-title{font-size:13px;font-weight:600;color:#1f2937;line-height:1.3;margin-bottom:4px}.monthly-card-meta{display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin-bottom:2px}.status-badge-mini{font-size:10px;padding:1px 6px;border-radius:10px;font-weight:600;text-transform:uppercase}.status-badge-mini.status-official{background:#dcfce7;color:#166534}.status-badge-mini.status-entries{background:#dbeafe;color:#1e40af}.status-badge-mini.status-seeded{background:#fef3c7;color:#92400e}.status-badge-mini.status-running{background:#fce7f3;color:#9d174d}.status-badge-mini.status-default{background:#f3f4f6;color:#6b7280}.course-mini{font-size:10px;color:#6b7280;font-weight:500}.athletes-mini{font-size:10px;color:#6b7280}.monthly-card-location{font-size:11px;color:#6b7280}@media(max-width:768px){.monthly-header-row,.monthly-body-row{flex-direction:column}.monthly-header-cell,.monthly-body-cell{border-right:none;border-bottom:1px solid #e5e7eb}.monthly-body-cell:last-child{border-bottom:none}.monthly-body-row{min-height:auto}}.modal-backdrop{position:fixed;inset:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000;padding:20px}.meeting-modal{background:#fff;border-radius:8px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;max-width:800px;width:100%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.modal-header{padding:24px 24px 16px;border-bottom:1px solid #e5e5e5;display:flex;justify-content:space-between;align-items:center;background-color:#fafafa}.modal-title{margin:0;font-size:20px;font-weight:600;color:#111827;line-height:1.3;flex:1;padding-right:16px}.close-button{background:none;border:none;font-size:20px;cursor:pointer;color:#6b7280;padding:4px;border-radius:4px;transition:all .15s ease;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.close-button:hover{background-color:#f3f4f6;color:#374151}.modal-body{flex:1;overflow-y:auto;padding:20px}.meeting-form{display:flex;flex-direction:column;gap:16px}.upload-mode-selector{margin-bottom:20px}.mode-tabs{display:flex;border-radius:6px;border:1px solid #d1d5db;overflow:hidden;background-color:#f9fafb}.mode-tab{flex:1;padding:12px 16px;background:none;border:none;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease;color:#6b7280;background-color:#f9fafb}.mode-tab:hover{background-color:#f3f4f6;color:#374151}.mode-tab.active{background-color:#3b82f6;color:#fff}.file-upload-section{padding:24px;border:2px dashed #d1d5db;border-radius:8px;background-color:#fafafa;text-align:center}.file-input{margin:16px 0;padding:8px;border:1px solid #d1d5db;border-radius:4px;background-color:#fff;width:100%;cursor:pointer}.file-info{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:12px;padding:8px 12px;background-color:#e0f2fe;border-radius:4px;font-size:14px}.file-name{font-weight:500;color:#0277bd}.file-size{color:#546e7a}.upload-info{margin-top:16px}.upload-info p{margin:0;font-size:14px;color:#6b7280;line-height:1.5}.upload-error{display:flex;align-items:flex-start;gap:8px;margin-top:16px;padding:12px 16px;background-color:#fef2f2;border:1px solid #fecaca;border-radius:6px;border-left:4px solid #dc2626}.error-icon{font-size:16px;line-height:1;margin-top:1px}.error-message{flex:1;font-size:14px;color:#dc2626;line-height:1.4;font-weight:500}.error-close{background:none;border:none;color:#dc2626;font-size:14px;font-weight:700;cursor:pointer;padding:2px 6px;border-radius:3px;transition:background-color .15s ease;line-height:1}.error-close:hover{background-color:#fee2e2}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}.form-group{display:flex;flex-direction:column;gap:4px}.form-group label{font-size:13px;font-weight:600;color:#374151;letter-spacing:.025em}.form-input,.form-select{padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;color:#111827;background-color:#fff;transition:border-color .15s ease,box-shadow .15s ease}.form-input:focus,.form-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-select{cursor:pointer}.form-actions{display:flex;justify-content:flex-end;gap:12px;padding-top:12px;border-top:1px solid #e5e5e5}.cancel-button,.save-button{padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease;border:1px solid}.cancel-button{background-color:#fff;color:#6b7280;border-color:#d1d5db}.cancel-button:hover{background-color:#f9fafb;color:#374151}.save-button{background-color:#3b82f6;color:#fff;border-color:#3b82f6}.save-button:hover{background-color:#2563eb;border-color:#2563eb}.save-button:disabled{background-color:#9ca3af;border-color:#9ca3af;cursor:not-allowed;opacity:.6}.save-button:disabled:hover{background-color:#9ca3af;border-color:#9ca3af}.delete-button{padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease;border:1px solid #dc3545;background-color:#dc3545;color:#fff}.delete-button:hover{background-color:#c82333;border-color:#c82333}@media(max-width:768px){.modal-backdrop{padding:10px}.meeting-modal{max-height:95vh}.modal-header{padding:16px}.modal-title{font-size:18px}.modal-body{padding:16px}.form-grid{grid-template-columns:1fr;gap:16px}.form-actions{flex-direction:column}.cancel-button,.save-button{width:100%}}.confirmation-overlay{position:fixed;inset:0;background-color:#000000b3;display:flex;justify-content:center;align-items:center;z-index:2000}.confirmation-dialog{background:#fff;border-radius:8px;box-shadow:0 25px 50px -12px #00000040;max-width:400px;width:90%;padding:24px;text-align:center;max-height:90vh;overflow-y:auto}.confirmation-dialog::-webkit-scrollbar{width:8px}.confirmation-dialog::-webkit-scrollbar-track{background:#f1f5f9;border-radius:4px}.confirmation-dialog::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.confirmation-dialog::-webkit-scrollbar-thumb:hover{background:#94a3b8}.confirmation-dialog.with-processing{max-width:700px;max-height:85vh}.confirmation-dialog h3{margin:0 0 16px;font-size:18px;font-weight:600;color:#dc2626}.confirmation-dialog p{margin:0 0 12px;color:#374151;line-height:1.5}.confirmation-dialog p:last-of-type{margin-bottom:24px;font-size:14px;color:#6b7280}.warning-text{color:#dc2626!important;font-size:14px!important;background-color:#fef2f2;padding:12px;border-radius:6px;border:1px solid #fecaca;margin:12px 0!important}.confirmation-actions{display:flex;gap:12px;justify-content:center}.confirmation-actions .cancel-button,.confirmation-actions .delete-button{min-width:80px;padding:8px 16px;font-size:14px}.confirmation-actions .cancel-button{background-color:#f3f4f6;color:#374151;border:1px solid #d1d5db}.confirmation-actions .cancel-button:hover{background-color:#e5e7eb}.confirmation-actions .delete-button{background-color:#dc2626;color:#fff}.confirmation-actions .delete-button:hover{background-color:#b91c1c}.loading-dialog{text-align:center}.loading-spinner{width:40px;height:40px;border:4px solid #f3f4f6;border-top:4px solid #dc2626;border-radius:50%;animation:spin 1s linear infinite;margin:20px auto}.result-dialog.success{border-left:5px solid #059669}.result-dialog.error{border-left:5px solid #dc2626}.result-dialog.success h3{color:#059669}.result-dialog.error h3{color:#dc2626}.success-button{background-color:#059669;color:#fff;border:none;border-radius:6px;padding:8px 16px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease;min-width:80px}.success-button:hover{background-color:#047857}.upload-details{margin:16px 0;padding:16px;background-color:#f8f9fa;border-radius:6px;border:1px solid #e5e7eb}.upload-details h4{margin:0 0 8px;color:#374151;font-size:14px;font-weight:600}.file-details,.processing-details,.upload-meeting-details,.error-details{margin-bottom:16px}.file-details:last-child,.processing-details:last-child,.upload-meeting-details:last-child,.error-details:last-child{margin-bottom:0}.upload-details p{margin:4px 0;font-size:13px;color:#6b7280}.upload-details p strong{color:#374151;font-weight:500}.processing-info{margin-top:4px;padding:4px;background-color:#f3f4f6;border-radius:4px;border:1px solid #d1d5db}.processing-info p{font-size:11px;margin:1px 0;line-height:1.2}.error-details{background-color:#fef2f2;border:1px solid #fecaca;padding:12px;border-radius:6px}.error-details h4{color:#dc2626}.upload-meeting-details{background-color:#f0f9ff;border:1px solid #bae6fd;padding:12px;border-radius:6px}.processing-steps{margin:16px 0;padding:16px;background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:6px}.processing-steps h4{margin:0 0 12px;color:#374151;font-size:14px;font-weight:600}.steps-list{max-height:200px;overflow-y:auto}.steps-list::-webkit-scrollbar{width:6px}.steps-list::-webkit-scrollbar-track{background:#f1f5f9;border-radius:3px}.steps-list::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.steps-list::-webkit-scrollbar-thumb:hover{background:#94a3b8}.steps-list{max-height:400px;overflow-y:auto;display:flex;flex-direction:column;gap:8px}.step-item{padding:10px 12px;border-radius:6px;border:1px solid #e5e7eb;background-color:#fff;transition:all .2s ease}.step-item.pending{background-color:#f9fafb;border-color:#d1d5db}.step-item.processing{background-color:#fef3c7;border-color:#fbbf24;animation:pulse 2s infinite}.step-item.success{background-color:#ecfdf5;border-color:#10b981;padding:4px 8px}.step-item.error{background-color:#fef2f2;border-color:#ef4444;padding:4px 8px}.step-item.success .step-details{margin-top:2px;padding-left:24px}.step-item.success .step-description{margin:0;line-height:1.2}.step-item.success .step-message,.step-item.success .step-records{margin:1px 0 0;line-height:1.2}.step-item.error .step-details{margin-top:2px;padding-left:24px}.step-item.error .step-description{margin:0;line-height:1.2}.step-item.error .step-message{margin:1px 0 0;line-height:1.2}@keyframes pulse{0%,to{opacity:1}50%{opacity:.8}}.step-number{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;background-color:#6b7280;color:#fff;border-radius:50%;font-size:11px;font-weight:600;flex-shrink:0}.step-item.processing .step-number{background-color:#f59e0b}.step-item.success .step-number{background-color:#10b981}.step-item.error .step-number{background-color:#ef4444}.step-title{font-weight:500;color:#374151;font-size:13px;flex:1}.step-status{font-size:14px}.step-details{margin-top:8px;padding-left:28px}.step-description{font-size:12px;color:#6b7280;margin:0 0 4px;font-style:italic}.step-message{font-size:12px;color:#374151;margin:2px 0}.step-records{font-size:11px;color:#10b981;margin:2px 0;font-weight:500}.processing-status{margin-top:12px;padding:8px 12px;background-color:#fef3c7;border:1px solid #fbbf24;border-radius:4px;text-align:center}.processing-status p{margin:0;font-size:12px;color:#92400e;font-weight:500}.processing-complete{margin-top:12px;padding:8px 12px;background-color:#ecfdf5;border:1px solid #10b981;border-radius:4px;text-align:center}.processing-complete p{margin:0;font-size:12px;color:#047857;font-weight:500}.processing-item{margin-bottom:6px}.processing-value{margin:2px 0 0 12px;font-family:monospace;background-color:#f3f4f6;padding:2px 6px;border-radius:3px;font-size:11px;line-height:1.2}.fix-counts{margin-left:12px;padding:4px;background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:3px}.fix-count-item{margin:1px 0;font-size:11px;color:#374151;line-height:1.2}.meetings-container{padding:32px;display:flex;flex-direction:column;height:100vh;overflow:hidden}.meetings-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #e5e5e5;flex-shrink:0;background:#fff;z-index:10}.meetings-header h2{color:#111827;margin:0;font-size:20px;font-weight:600;letter-spacing:-.025em}.filter-container{margin-right:0}.status-filter-select,.meet-type-filter-select{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;outline:none;transition:border-color .15s ease;background-color:#fff;cursor:pointer;color:#374151}.status-filter-select:focus,.meet-type-filter-select:focus{border-color:#dc2626;box-shadow:0 0 0 1px #dc2626}.search-container{margin-right:0;display:flex;align-items:center}.search-box{position:relative;display:flex;align-items:center;height:100%}.search-input{width:320px;padding:8px 36px 8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;outline:none;transition:border-color .15s ease;background-color:#fff;color:#374151;height:38px;box-sizing:border-box}.search-icon{position:absolute;right:36px;color:#9ca3af;font-size:14px;pointer-events:none}.clear-search-button{position:absolute;right:8px;background:none;border:none;color:#6b7280;cursor:pointer;padding:4px;border-radius:4px;font-size:12px;line-height:1}.clear-search-button:hover{background-color:#f3f4f6;color:#374151}.add-button{padding:8px 16px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease;background-color:#dc2626;color:#fff}.add-button:hover{background-color:#b91c1c}.export-controls{position:relative}.export-button{padding:8px 16px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease;background-color:#059669;color:#fff}.export-button:hover{background-color:#047857}.export-dropdown-content{display:none;position:absolute;right:0;background-color:#fff;min-width:160px;box-shadow:0 8px 16px #0000001a;border-radius:6px;z-index:1000;border:1px solid #e5e7eb;overflow:hidden}.export-option{display:block;width:100%;padding:12px 16px;background:none;border:none;color:#374151;text-align:left;cursor:pointer;font-size:14px;transition:background-color .15s ease}.export-option:first-child{border-top:none}.export-option:last-child{border-bottom:none}.meetings-filter-section{margin-bottom:24px;padding:16px;background-color:#fafafa;border-radius:6px;border:1px solid #e5e5e5;display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-shrink:0;z-index:9}.filter-selects-container{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap;flex:1}.view-toggle-container,.course-dropdown,.status-dropdown,.season-dropdown{flex-shrink:0}.checkbox-filter{display:flex;align-items:center;flex-shrink:0;height:40px}.checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px;color:#374151;-webkit-user-select:none;user-select:none;height:100%}.checkbox-input{width:16px;height:16px;cursor:pointer;accent-color:#3b82f6}.checkbox-text{font-weight:500}.seasons-loading{padding:8px 12px;color:#6b7280;font-size:14px;background-color:#f9fafb;border:1px solid #d1d5db;border-radius:6px;flex-shrink:0}.seasons-error{padding:8px 12px;color:#dc2626;font-size:14px;background-color:#fef2f2;border:1px solid #fecaca;border-radius:6px;flex-shrink:0}.seasons-error p{margin:0}.view-toggle-container{display:flex;align-items:flex-start}.view-buttons{display:flex;gap:4px;background-color:#f3f4f6;padding:2px;border-radius:6px;border:none}.view-btn{padding:6px 12px;border:none;background-color:transparent;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;color:#6b7280;transition:all .15s ease;display:flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}.view-btn:hover{background-color:#e5e7eb;color:#374151}.view-btn.active{background-color:#dc2626;color:#fff}.pagination-container{background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:16px;margin-bottom:16px}.meetings-content-wrapper{flex:1;overflow-y:auto;min-height:0}.pagination-top{margin-bottom:16px}.pagination-bottom{margin-top:16px;margin-bottom:0}.pagination-controls{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.records-per-page{display:flex;align-items:center;gap:8px;font-size:14px;color:#374151}.records-select{padding:6px 8px;border:1px solid #d1d5db;border-radius:4px;font-size:14px;outline:none;transition:border-color .15s ease;background-color:#fff;cursor:pointer;color:#374151}.records-select:focus{border-color:#dc2626;box-shadow:0 0 0 1px #dc2626}.pagination-buttons{display:flex;align-items:center;gap:12px}.pagination-button{padding:8px 12px;background-color:#fff;color:#374151;border:1px solid #d1d5db;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease}.pagination-button:hover:not(:disabled){background-color:#f3f4f6;border-color:#9ca3af}.page-indicator{font-size:14px;color:#374151;font-weight:500;white-space:nowrap}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#6b7280}.loading-spinner{width:40px;height:40px;border:3px solid #e5e7eb;border-top:3px solid #dc2626;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}.error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.error-container h3{margin:0 0 8px;color:#ef4444;font-size:20px;font-weight:600}.error-container p{margin:0 0 24px;color:#6b7280;font-size:14px}.retry-button{padding:10px 20px;background-color:#dc2626;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .15s ease}.retry-button:hover{background-color:#b91c1c}.meetings-list-container{flex:1;display:flex;flex-direction:column}.meetings-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:20px;flex:1;padding:0 4px}.month-separator{grid-column:1 / -1;margin:18px 0 10px;padding:10px 16px;background-color:#f8fafc;border-left:3px solid #dc2626;border-radius:4px}.month-separator h3{margin:0;color:#374151;font-size:16px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;text-align:center}.month-separator:first-child{margin-top:24px}.meeting-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:20px;transition:all .15s ease;box-shadow:0 2px 8px #00000014;display:flex;flex-direction:column;height:fit-content;min-height:160px}.meeting-card:hover{border-color:#d1d5db;box-shadow:0 4px 12px #0000001f;transform:translateY(-2px)}.meeting-card.highlighted{border:1px solid #000!important;box-shadow:0 2px 4px #0000004d}.meeting-card.highlighted:hover{box-shadow:0 3px 6px #0006}.meeting-header-card{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.meeting-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex:1}.meeting-title-left{display:flex;flex-direction:column;gap:8px;flex:1}.meeting-title h3{margin:0;color:#111827;font-size:16px;font-weight:600;line-height:1.3}.meeting-badges{display:flex;flex-wrap:wrap;gap:6px}.meeting-right-info{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex-shrink:0}.meeting-actions{display:flex;gap:8px}.edit-button{background:none;border:none;cursor:pointer;font-size:14px;padding:4px;border-radius:4px;transition:all .15s ease;display:flex;align-items:center;justify-content:center;width:24px;height:24px}.edit-button:hover{background-color:#f3f4f6;transform:scale(1.1)}.athletes-count-tag{background-color:#6b7280;color:#fff;font-size:11px;font-weight:500;padding:3px 8px;border-radius:4px;display:flex;align-items:center;gap:4px;white-space:nowrap}.result-link-icon{font-size:14px;padding:2px 4px;border-radius:3px;transition:all .15s ease}.result-link-icon.active{color:#059669;text-decoration:none;cursor:pointer}.result-link-icon.active:hover{background-color:#ecfdf5;transform:scale(1.1)}.result-link-icon.inactive{color:#9ca3af;cursor:default;opacity:.6}.course-type{padding:2px 6px;border-radius:3px;font-size:10px;font-weight:500;background-color:#f3f4f6;color:#4b5563;text-transform:uppercase;letter-spacing:.025em;align-self:center}.meeting-location-line{display:flex;flex-direction:column;gap:8px;font-size:13px;margin-top:auto}.location-info{display:flex;align-items:center;gap:4px;flex:1;color:#6b7280}.location-label{font-weight:500;color:#374151}.location-value,.venue-value,.nation-value{color:#6b7280}.location-separator{color:#9ca3af}.organizer-info{color:#6b7280;font-weight:500;text-align:left;word-wrap:break-word;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;line-height:1.3;font-size:12px}.meeting-date{font-size:13px;color:#6b7280;font-weight:500;white-space:nowrap;text-align:right;line-height:1.2}.meeting-date>div{white-space:nowrap}.status-badge{padding:2px 6px;border-radius:3px;font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.025em;align-self:center}.status-official{background-color:#dcfce7;color:#166534}.status-entries{background-color:#dbeafe;color:#1e40af}.status-seeded{background-color:#fef3c7;color:#92400e}.status-running{background-color:#fecaca;color:#991b1b}.status-default{background-color:#f3f4f6;color:#374151}.no-results{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;color:#6b7280}.no-results-icon{font-size:48px;margin-bottom:16px}.no-results h3{margin:0 0 8px;color:#374151;font-size:18px;font-weight:600}.no-results p{margin:0;font-size:14px}@media(max-width:768px){.meetings-container{padding:24px}.meetings-header{flex-direction:column;align-items:flex-start;gap:16px}.header-actions{width:100%;flex-direction:column;gap:12px}.search-input{width:100%}.filter-selects-container{flex-direction:column;gap:12px}.meetings-filter-section{flex-direction:column;align-items:stretch;gap:16px}.view-toggle-container{align-self:center}.course-dropdown,.status-dropdown,.season-dropdown{align-self:flex-start}.view-buttons{width:100%;justify-content:center}.view-btn{flex:1;justify-content:center;padding:8px 12px;font-size:13px;gap:4px}.pagination-controls{flex-direction:column;align-items:stretch;gap:12px}.pagination-buttons{justify-content:center}.meetings-list{grid-template-columns:1fr;gap:16px;padding:0 2px}.meeting-card{padding:16px;min-height:140px}.meeting-header-card{gap:8px;margin-bottom:12px}.meeting-title{gap:8px}.meeting-title-left{gap:6px}.meeting-badges{gap:4px}.meeting-location-line{gap:6px;font-size:12px}.organizer-info{text-align:left;max-width:none}}@media(max-width:1200px){.meetings-list{grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}}@media(max-width:992px){.meetings-list{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}}@media(max-width:480px){.view-btn{padding:6px 8px;font-size:12px;gap:4px}.meetings-filter-section{padding:12px}.meetings-list{grid-template-columns:1fr;gap:12px}.meeting-card{padding:12px;min-height:120px}.meeting-title h3{font-size:15px}}.meeting-details-page{margin:0 auto;padding:20px 24px;min-height:100vh;background:#fff;max-width:none;overflow:visible}.meeting-details-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;color:#6c757d}.loading-spinner{width:40px;height:40px;border:4px solid #f3f4f6;border-top:4px solid #007bff;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}.meeting-details-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;text-align:center;color:#6c757d}.error-icon{font-size:48px;margin-bottom:16px}.meeting-details-error h2{color:#dc3545;margin-bottom:12px}.meeting-details-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding:0 8px}.nav-actions{display:flex;gap:12px}.meeting-header{background:#fff;color:#212529;border-radius:12px;padding:16px 20px;margin-bottom:24px;box-shadow:0 8px 25px #00000026;border:1px solid #e9ecef}.meeting-header-content{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px;gap:20px}.meeting-header-main{flex:1}.meeting-header-title{font-size:28px;font-weight:700;margin:0 0 8px;line-height:1.1;text-shadow:none}.meeting-header-subtitle{display:flex;flex-direction:column;gap:4px;font-size:14px;opacity:.8}.meeting-location,.meeting-facility{display:flex;align-items:center;gap:8px}.meeting-header-details{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.meeting-date-range{display:flex;align-items:center;gap:8px;background:#ffffff26;padding:12px 16px;border-radius:8px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.date-label{font-size:18px}.date-value{font-size:16px;font-weight:600}.meeting-header-badges{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.meeting-header-organizer{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#f8f9fa;border-radius:6px;margin-bottom:8px}.organizer-label{font-size:14px;opacity:.8}.organizer-name{font-size:16px;font-weight:600}.meeting-header-card{margin-bottom:8px}.meeting-title-section{display:flex;flex-direction:column;gap:4px}.meeting-title-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.meeting-title-row h1{font-size:24px;font-weight:700;margin:0;line-height:1.2;flex-shrink:0}.meeting-date-row{font-size:14px;color:#6b7280;font-weight:500;margin-left:2px}.course-type{background:#e5f3ff;color:#0c5aa6;padding:4px 8px;border-radius:12px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.meeting-info-section{display:flex;flex-direction:column;gap:4px;padding:6px 0 0;border-top:1px solid #f3f4f6}.location-info{display:flex;align-items:center;gap:4px;font-size:14px;color:#6b7280;flex:1}.location-label{margin-right:4px}.location-value,.venue-value,.nation-value{color:#374151;font-weight:500}.organizer-info{font-size:14px;color:#6b7280;margin-left:20px}.meeting-header-summary{border-top:1px solid rgba(255,255,255,.2);padding-top:20px}.participation-summary{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.summary-label{font-weight:600}.summary-count,.summary-athletes{background:#fff3;padding:4px 8px;border-radius:12px;font-size:14px;font-weight:600}.summary-separator{opacity:.6}.back-button{display:flex;align-items:center;gap:8px;padding:10px 16px;background:#fff;border:1px solid #dee2e6;border-radius:6px;color:#495057;text-decoration:none;font-weight:500;cursor:pointer;transition:all .2s ease}.back-button:hover{background:#f8f9fa;border-color:#adb5bd;color:#343a40}.edit-button-primary{display:flex;align-items:center;gap:8px;padding:10px 20px;background:#007bff;border:1px solid #007bff;border-radius:6px;color:#fff;font-weight:500;cursor:pointer;transition:all .2s ease}.edit-button-primary:hover{background:#0056b3;border-color:#0056b3}.add-button-primary{display:flex;align-items:center;gap:8px;padding:10px 20px;background:#dc2626;border:1px solid #dc2626;border-radius:6px;color:#fff;font-weight:500;cursor:pointer;transition:all .2s ease;margin-right:12px}.add-button-primary:hover{background:#b91c1c;border-color:#b91c1c}.meeting-details-content{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden}.meeting-details-card{padding:32px}.meeting-title-section{padding-bottom:20px}.meeting-title{font-size:32px;font-weight:700;color:#212529;margin:0 0 16px;line-height:1.2}.meeting-badges{display:flex;gap:12px;flex-wrap:wrap}.status-badge,.course-badge,.type-badge{padding:6px 12px;border-radius:20px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.status-badge.status-active{background:#d4edda;color:#155724}.status-badge.status-completed{background:#cce5ff;color:#004085}.status-badge.status-cancelled{background:#f8d7da;color:#721c24}.status-badge.status-draft{background:#fff3cd;color:#856404}.status-badge.status-pending{background:#e2e3e5;color:#383d41}.status-badge.status-default{background:#f8f9fa;color:#6c757d}.course-badge{background:#e7f3ff;color:#0c5aa6}.type-badge{background:#f0f8e7;color:#2d5016}.meeting-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:32px;margin-bottom:40px}.info-section h3{font-size:16px;font-weight:600;color:#495057;margin:0 0 12px;display:flex;align-items:center;gap:8px}.info-value{font-size:18px;font-weight:500;color:#212529;margin:0;line-height:1.4}.location-details .facility-name{font-size:14px;color:#6c757d;margin:4px 0 0;font-style:italic}.info-link{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;background:#007bff;color:#fff;text-decoration:none;border-radius:6px;font-weight:500;font-size:14px;transition:all .2s ease}.info-link:hover{background:#0056b3;color:#fff;text-decoration:none;transform:translateY(-1px)}.club-participation-section{margin-bottom:40px;padding-top:32px;border-top:1px solid #e9ecef}.club-participation-section h3{font-size:18px;font-weight:600;color:#495057;margin:0 0 20px;display:flex;align-items:center;gap:8px}.clubs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}.club-card{background:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;padding:16px;transition:all .2s ease}.club-card:hover{border-color:#adb5bd;background:#f1f3f4}.club-name{font-weight:600;color:#212529;margin-bottom:8px}.athletes-count{font-size:14px;color:#6c757d;display:flex;align-items:center;gap:4px}.links-section{margin-bottom:32px;padding-top:24px;border-top:1px solid #e9ecef}.links-section h3{font-size:18px;font-weight:600;color:#495057;margin:0 0 16px;display:flex;align-items:center;gap:8px}.result-link{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;background:#007bff;color:#fff;text-decoration:none;border-radius:6px;font-weight:500;transition:all .2s ease}.result-link:hover{background:#0056b3;color:#fff;text-decoration:none}.meeting-meta{padding-top:24px;border-top:1px solid #e9ecef;text-align:center}.meeting-id{color:#6c757d;font-size:12px}.meeting-tabs-container{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:visible}.meeting-tabs-container .header-tabs.minimal-width .header-tabs-nav{justify-content:flex-start}.meeting-tabs-container .header-tabs.minimal-width .tab-button{flex:0 0 auto;min-width:fit-content;width:auto}.tab-content{padding:24px;min-height:400px;position:relative}.tab-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;color:#6c757d}.tab-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;text-align:center;color:#6c757d}.tab-error .error-icon{font-size:48px;margin-bottom:16px}.tab-error h3{color:#dc3545;margin-bottom:12px}.tab-error .retry-button{padding:10px 20px;background-color:#007bff;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .15s ease}.tab-error .retry-button:hover{background-color:#0056b3}.agenda-data,.results-data{background:#f8f9fa;border-radius:6px;padding:20px;overflow:auto}.agenda-data pre,.results-data pre{margin:0;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:12px;line-height:1.4;color:#495057;white-space:pre-wrap;word-wrap:break-word}.agenda-container{background:#fff;border-radius:8px;overflow:hidden}.overview-stats-inline{display:flex;align-items:center;gap:16px;flex-wrap:wrap;justify-content:flex-start}.overview-stats-inline .stat-inline{display:flex;align-items:center;gap:6px;padding:4px 8px;border:1px solid #dee2e6;border-radius:3px}.overview-stats-inline .stat-inline .stat-icon{font-size:16px}.overview-stats-inline .stat-inline .stat-text{font-size:14px;font-weight:500;color:inherit}.agenda-header{background:#f8f9fa;padding:20px;border-bottom:1px solid #e9ecef}.agenda-header h3{margin:0 0 4px;font-size:20px;font-weight:600;color:#212529}.agenda-header p{margin:0;color:#6c757d;font-size:14px}.agenda-empty{text-align:center;padding:60px 20px;color:#6c757d}.agenda-empty .empty-icon{font-size:48px;margin-bottom:16px}.agenda-empty h3{margin:0 0 8px;color:#495057}.agenda-empty p{margin:0;font-size:14px}.session-block{border-bottom:1px solid #e9ecef;margin-bottom:16px;border-radius:8px;overflow:hidden;box-shadow:0 2px 4px #0000000d}.session-block:last-child{border-bottom:none;margin-bottom:0}.session-header{background:#f1f3f4;padding:16px 20px;border-bottom:1px solid #dee2e6}.session-header.clickable{cursor:pointer;transition:background-color .2s ease;-webkit-user-select:none;user-select:none}.session-header.clickable:hover{background:#e9ecef}.session-title-row{display:flex;justify-content:flex-start;align-items:center;gap:12px;margin-bottom:8px}.expand-indicator{font-size:14px;color:#6c757d;font-weight:700;min-width:20px;text-align:center;transition:transform .2s ease}.session-info h4{margin:0;font-size:18px;font-weight:600;color:#212529}.session-info{text-align:left;width:100%}.session-name{flex-grow:1}.session-details{display:flex;gap:16px;flex-wrap:wrap;align-items:center;justify-content:flex-start;font-size:14px}.session-date,.session-time{color:#495057;display:flex;align-items:center;gap:4px}.session-status{padding:4px 8px;border-radius:12px;font-size:12px;font-weight:500;text-transform:uppercase}.session-status.status-official{background:#d4edda;color:#155724}.session-status.status-preliminary{background:#fff3cd;color:#856404}.session-status.status-final{background:#cce5ff;color:#004085}.session-status.status-cancelled{background:#f8d7da;color:#721c24}.session-status.status-default{background:#e2e3e5;color:#383d41}.events-list{padding:0}.event-item{display:flex;align-items:center;padding:6px 20px;border-bottom:1px solid #f1f3f4;transition:background-color .15s ease}.event-item:hover{background:#f8f9fa}.event-item:last-child{border-bottom:none}.event-item.event-relay{position:relative}.event-item.event-relay:hover{background:#f8f9fa}.event-item.event-female{background:#fce4ec}.event-item.event-female:hover{background:#f8bbd9}.event-item.event-relay.event-female{background:#fce4ec;border-left:4px solid #e91e63}.event-item.event-relay.event-female:hover{background:#f8bbd9}.event-item.event-relay.event-female .event-number{background:#e91e63;box-shadow:0 2px 4px #e91e634d}.event-number{flex:0 0 32px;height:24px;display:flex;align-items:center;justify-content:center;background:#007bff;color:#fff;border-radius:12px;font-weight:600;font-size:12px;margin-right:12px}.event-details{flex:1;min-width:0}.event-name{font-size:16px;font-weight:500;color:#212529;text-transform:capitalize}.event-info-line{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13px}.event-info-line .event-name{margin-right:4px}.event-meta{display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:13px}.event-time{color:#495057;font-weight:500}.event-round{padding:2px 6px;border-radius:8px;font-size:11px;font-weight:500;text-transform:uppercase}.event-round.status-preliminary{background:#fff3cd;color:#856404}.event-round.status-final{background:#cce5ff;color:#004085}.event-round.status-official{background:#d4edda;color:#155724}.event-round.status-default{background:#e9ecef;color:#6c757d}.event-round.status-cancelled{background:#f8d7da;color:#721c24}.event-round.status-timing{background:#e1f5fe;color:#01579b}.event-heat{color:#6c757d;font-size:12px}.event-status{flex:0 0 auto;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:500;text-transform:uppercase}.event-status.status-official{background:#d4edda;color:#155724}.event-status.status-preliminary{background:#fff3cd;color:#856404}.event-status.status-final{background:#cce5ff;color:#004085}.event-status.status-cancelled{background:#f8d7da;color:#721c24}.event-status.status-default{background:#e2e3e5;color:#383d41}.no-events{padding:20px;text-align:center;color:#6c757d;font-style:italic}.no-events p{margin:0}.results-container{max-width:100%}.results-overview{padding:12px 0;margin-bottom:8px}.results-overview .overview-stats-inline{display:flex;align-items:center;gap:16px;flex-wrap:wrap;justify-content:flex-start}.results-overview .overview-title-section{display:flex;align-items:center;gap:8px;margin-right:16px}.results-overview .overview-icon{font-size:16px;color:#0c5aa6}.results-overview .age-group-filter,.results-overview .age-group-filter .multi-select-dropdown{min-width:140px}.results-overview .age-group-filter .dropdown-toggle{padding:6px 12px;border:1px solid #bee5eb;border-radius:6px;background:#fff;color:#0c5aa6;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;min-width:140px}.results-overview .age-group-filter .dropdown-toggle:focus{outline:none;border-color:#0c5aa6;box-shadow:0 0 0 2px #0c5aa640}.results-overview .age-group-filter .dropdown-toggle:hover{border-color:#0c5aa6}.results-overview .stat-inline{display:flex;align-items:center;gap:6px;padding:4px 8px;border:1px solid #dee2e6;border-radius:3px}.results-overview .stat-inline .stat-icon{font-size:16px}.results-overview .stat-inline .stat-text{font-size:14px;font-weight:500;color:inherit;white-space:nowrap}.results-overview .club-stats-group{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:8px 16px;border-radius:8px}.results-overview .club-code-label{font-size:14px;font-weight:600;color:#0c5aa6;white-space:nowrap}.results-header{text-align:left;padding:20px;background:#f8f9fa;border-radius:8px;margin-bottom:24px}.results-header h3{margin:0 0 8px;color:#212529;font-size:24px;font-weight:600}.results-header p{margin:0;color:#6c757d;font-size:14px}.results-empty{text-align:center;padding:60px 20px;color:#6c757d}.results-empty .empty-icon{font-size:48px;margin-bottom:16px}.results-empty h3{margin:0 0 8px;color:#495057}.results-empty p{margin:0;font-size:14px}.results-event-item{background:#fff;border-radius:8px;margin-bottom:16px;border:1px solid #e9ecef;overflow:hidden}.results-event-item.event-relay{background:#f8f9fa;border-left:4px solid #6c757d}.results-event-item.event-relay .event-header{background:#e9ecef}.results-event-item.event-relay .event-header.clickable:hover{background:#dee2e6}.event-header{background:#f1f3f4;padding:12px 20px;border-bottom:1px solid #dee2e6;display:flex;justify-content:space-between;align-items:center}.event-header-main{flex:1}.event-header-main.clickable{cursor:pointer;transition:background-color .15s ease}.event-header:hover .event-header-main.clickable{background:transparent}.event-header:hover{background:#e9ecef}.event-export-buttons{display:flex;gap:8px;margin-left:16px}.export-button{padding:6px 12px;border:1px solid #dee2e6;border-radius:4px;background:#fff;color:#495057;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;gap:4px;white-space:nowrap}.export-button:hover{background:#f8f9fa;border-color:#adb5bd;transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.export-button:active{transform:translateY(0);box-shadow:0 1px 2px #0000001a}.excel-button:hover{background:#e8f5e8;border-color:#28a745;color:#28a745}.pdf-button:hover{background:#fef2f2;border-color:#dc3545;color:#dc3545}.event-header-bar{display:flex;justify-content:space-between;align-items:center;background:#f8f9fa;padding:12px 20px;border-bottom:1px solid #dee2e6;margin-bottom:0;transition:background-color .15s ease;-webkit-user-select:none;user-select:none}.event-header-bar:hover{background:#edf0f3}.event-collapse-icon{font-size:11px;color:#6c757d;width:14px;text-align:center;flex-shrink:0;transition:color .15s ease}.event-header-bar:hover .event-collapse-icon{color:#495057}.event-title-info{flex:1}.event-title{display:flex;justify-content:flex-start;align-items:center;font-weight:600;gap:12px}.event-title .expand-icon{font-size:12px;color:#495057;margin-right:8px;width:12px;text-align:center}.event-title .event-name{font-size:16px;color:#212529;text-transform:capitalize}.event-title .event-time{font-size:14px;color:#6c757d}.results-list{padding:0}.result-item{padding:4px 20px;border-bottom:1px solid #f1f3f4;transition:background-color .15s ease}.result-item:hover{background:#f8f9fa}.result-item:last-child{border-bottom:none}.result-position{display:inline-flex;align-items:center;justify-content:center;width:24px;height:20px;background:#28a745;color:#fff;border-radius:10px;font-weight:600;font-size:11px;margin-right:8px}.result-position.position-gold{background:gold;color:#000}.result-position.position-silver{background:silver;color:#000}.result-position.position-bronze{background:#cd7f32;color:#fff}.position-container{display:flex;align-items:center;gap:2px;margin-right:8px}.result-position.filtered{margin-right:0}.result-position.overall{background:#6c757d;color:#fff;font-size:10px}.position-separator{color:#6c757d;font-weight:600;font-size:12px;margin:0 1px}.result-details{flex:1;min-width:0}.result-line-1{display:grid;grid-template-columns:1fr auto 1fr auto;gap:16px;align-items:center;margin-bottom:2px;font-size:13px}.section-1{display:flex;gap:6px;align-items:center;justify-content:flex-start}.section-2{display:flex;justify-content:center;min-width:60px}.section-3{display:flex;gap:8px;align-items:center;justify-content:flex-end}.section-3a{display:flex;gap:8px;align-items:center;justify-content:flex-start;white-space:nowrap}.section-3b{display:flex;align-items:center;justify-content:flex-end;min-width:60px}.result-line-1 .athlete-name{font-size:14px;font-weight:500;color:#212529}.result-line-1 .athlete-name.clickable{color:#007bff;cursor:pointer;text-decoration:none;transition:color .2s ease}.result-line-1 .athlete-name.clickable:hover{color:#0056b3;text-decoration:underline}.result-line-1 .athlete-year{font-size:12px;color:#6c757d;font-weight:400}.result-line-2{display:grid;grid-template-columns:1fr auto 1fr auto;gap:16px;align-items:center;font-size:12px}.result-line-1 .reaction-time{font-size:11px;color:#6c757d;font-family:Courier New,monospace}.result-line-1 .swim-time{font-weight:700;color:#007bff;font-family:Courier New,monospace;font-size:13px;white-space:nowrap}.result-line-1 .time-diff{color:#dc3545;font-weight:500;font-family:Courier New,monospace;font-size:11px}.result-pb-badge,.result-sb-badge{font-size:11px;font-weight:700;padding:2px 6px;border-radius:4px;line-height:1;letter-spacing:.3px}.result-pb-badge{background:#ffc10726;color:#d4a017;border:1px solid rgba(255,193,7,.3)}.result-pb-badge.result-pb-badge-current{background:#ffc107;color:#fff;border:1px solid #e0a800;box-shadow:0 0 4px #ffc10766}.result-sb-badge{background:#17a2b826;color:#117a8b;border:1px solid rgba(23,162,184,.3)}.result-sb-badge.result-sb-badge-current{background:#17a2b8;color:#fff;border:1px solid #138496;box-shadow:0 0 4px #17a2b866}.result-improvement{font-size:10px;font-weight:600;font-family:Courier New,monospace;padding:1px 4px;border-radius:3px}.result-improvement.improved{color:#28a745;background:#28a7451a}.result-improvement.slower{color:#dc3545;background:#dc35451a}.result-line-1 .points{color:#28a745;font-weight:500;font-size:11px}.result-line-1 .club{color:#495057;background:#e9ecef;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:500;text-align:center}.result-line-2 .result-status{color:#dc3545;font-weight:500;text-transform:uppercase;background:#f8d7da;padding:2px 6px;border-radius:4px}.result-line-2 .result-comment{color:#495057;font-style:italic}.club{color:#6c757d;background:#f8f9fa;padding:2px 6px;border-radius:4px;font-size:12px}.club-selected{background:#dc3545!important;color:#fff!important;font-weight:600;box-shadow:0 1px 3px #dc35454d}.lane{color:#495057;font-size:12px}.no-results{text-align:center;padding:40px 20px;color:#6c757d}.no-results p{margin:0;font-style:italic}.splits-container{margin-top:6px;padding-left:16px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.splits-title{font-size:11px;font-weight:600;color:#495057;text-transform:uppercase;letter-spacing:.5px;margin-right:4px}.split-item{display:flex;gap:4px;align-items:center;background:#f8f9fa;padding:2px 8px;border-radius:4px;font-size:11px}.split-distance{color:#6c757d;font-weight:500}.split-time{color:#007bff;font-family:Courier New,monospace;font-weight:600}@media(max-width:768px){.meeting-details-page{padding:16px}.meeting-details-card{padding:20px}.meeting-title{font-size:24px}.meeting-header{padding:12px 16px}.meeting-header-card{margin-bottom:6px}.meeting-title-row{gap:8px}.meeting-title-row h1{font-size:20px}.meeting-date-row{font-size:13px}.meeting-info-section{gap:2px;padding:4px 0 0}.organizer-info{margin-left:16px;font-size:13px}.meeting-info-grid{grid-template-columns:1fr;gap:24px}.meeting-details-nav{flex-direction:column;align-items:stretch;gap:16px}.nav-actions{justify-content:center}.clubs-grid{grid-template-columns:1fr}.meeting-header{padding:20px}.meeting-header-content{flex-direction:column;gap:24px}.meeting-header-details{align-items:flex-start;width:100%}.meeting-header-badges{justify-content:flex-start}.meeting-date-range{align-self:stretch;justify-content:center}.participation-summary{justify-content:center}}@media(max-width:480px){.meeting-badges,.back-button,.edit-button-primary,.add-button-primary{justify-content:center}.meeting-header{padding:16px}.meeting-header-title{font-size:28px;text-align:center}.meeting-header-subtitle{align-items:center;text-align:center}.meeting-header-organizer{flex-direction:column;text-align:center;gap:8px}.tab-button{padding:12px 16px;font-size:20px}.tab-content{padding:16px}}@media(max-width:380px){.meeting-details-page{padding:16px 12px}.tab-button{padding:10px 12px;font-size:18px;gap:4px}.tab-content,.agenda-data,.results-data{padding:12px}.agenda-data pre,.results-data pre{font-size:11px}.overview-stats-inline{gap:8px}.overview-stats-inline .stat-inline{padding:3px 6px}.overview-stats-inline .stat-inline .stat-text{font-size:12px}.results-overview{padding:12px 16px}.results-overview .overview-stats-inline{gap:8px}.results-overview .overview-title-section{margin-right:8px}.results-overview .age-group-filter{min-width:120px}.results-overview .age-group-filter .dropdown-toggle{font-size:12px;padding:4px 8px;min-width:120px}.results-overview .stat-inline{padding:5px 8px}.results-overview .stat-inline .stat-text{font-size:12px}.results-overview .club-stats-group{gap:8px;padding:6px 12px}.results-overview .club-code-label{font-size:12px}.agenda-header{padding:16px}.session-header{padding:12px 16px}.event-item{padding:12px 16px;flex-direction:column;align-items:flex-start;gap:12px}.event-number{flex:0 0 auto;margin-right:0;margin-bottom:4px;width:36px;height:36px;font-size:13px}.event-details{width:100%}.event-meta{gap:8px;font-size:12px}.session-details{flex-direction:column;align-items:flex-start;gap:8px}}.filters-bar{margin-bottom:12px}.filters-bar-inner{display:flex;align-items:flex-end;gap:12px;padding:12px 16px;background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;box-shadow:0 1px 4px #0000000f;flex-wrap:wrap}.filters-bar-grid{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;flex:1}.filters-bar-grid .filter-group{display:flex;flex-direction:column;gap:3px;min-width:140px;max-width:200px;flex:1 1 140px}.filters-bar-grid .filter-group label{font-size:11px;font-weight:600;color:#495057;text-transform:uppercase;letter-spacing:.5px}.filters-bar-grid .filter-group input,.filters-bar-grid .filter-group select{padding:6px 10px;border:1px solid #ced4da;border-radius:4px;font-size:13px;background:#fff;transition:border-color .15s ease}.filters-bar-grid .filter-group input:focus,.filters-bar-grid .filter-group select:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.filters-bar-grid .clear-filters-btn{padding:6px 14px;background:#6c757d;color:#fff;border:none;border-radius:4px;font-size:12px;font-weight:500;cursor:pointer;transition:background-color .15s ease;white-space:nowrap;align-self:flex-end}.filters-bar-grid .clear-filters-btn:hover{background:#5a6268}@media(max-width:768px){.filters-bar-inner{padding:10px 12px;gap:8px}.filters-bar-grid{gap:8px}.filters-bar-grid .filter-group{min-width:120px;max-width:none;flex:1 1 100%}}.results-main{min-width:0;padding:24px 0}.filters-header{margin-bottom:16px}.filters-header h3{margin:0;color:#212529;font-size:18px;font-weight:600}.filters-grid{display:flex;flex-direction:column;gap:20px}.filter-group label{font-size:12px;font-weight:600;color:#495057;text-transform:uppercase;letter-spacing:.5px}.filter-group input,.filter-group select{padding:8px 12px;border:1px solid #ced4da;border-radius:4px;font-size:14px;background:#fff;transition:border-color .15s ease}.filter-group input:focus,.filter-group select:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.clear-filters-btn{padding:8px 16px;background:#6c757d;color:#fff;border:none;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .15s ease}.clear-filters-btn:hover{background:#5a6268}@media(max-width:768px){.filters-grid{gap:16px}}.tab-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;text-align:center;color:#6c757d;padding:40px 20px}.tab-placeholder .placeholder-icon{font-size:64px;margin-bottom:24px;opacity:.7}.tab-placeholder h3{color:#495057;margin:0 0 12px;font-size:24px;font-weight:600}.tab-placeholder p{margin:0 0 24px;font-size:16px;line-height:1.5;max-width:400px}.coming-soon{padding:8px 20px;background:#e7f3ff;color:#0c5aa6;border-radius:20px;font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.events-section{margin-bottom:32px}.section-header{margin-bottom:16px;padding-bottom:8px;border-bottom:2px solid #e9ecef}.section-title{display:flex;align-items:center;gap:8px;margin:0;font-size:20px;font-weight:600;color:#495057}.section-icon{font-size:24px}.section-count{font-size:16px;font-weight:400;color:#6c757d;margin-left:4px}.all-events-container{margin-top:16px}.events-list{display:flex;flex-direction:column;gap:16px}.results-sub-tabs-container{margin-top:16px}.results-sub-tabs{display:flex;border-bottom:2px solid #e9ecef;margin-bottom:24px;gap:2px}.sub-tab{display:flex;align-items:center;gap:8px;padding:12px 20px;background:#f8f9fa;border:none;border-radius:8px 8px 0 0;cursor:pointer;transition:all .2s ease;font-size:14px;font-weight:500;color:#6c757d;position:relative;outline:none}.sub-tab:focus{outline:none;box-shadow:none}.sub-tab:hover{background:#e9ecef;color:#495057}.sub-tab.active{background:#fff;color:#007bff;border-bottom:2px solid #007bff;margin-bottom:-2px}.sub-tab-icon{font-size:16px}.sub-tab-label{font-weight:600}.sub-tab-count{font-size:12px;background:#e9ecef;color:#6c757d;padding:2px 8px;border-radius:12px;font-weight:600}.sub-tab.active .sub-tab-count{background:#007bff;color:#fff}.results-sub-tab-content{min-height:200px}.no-events-message{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;text-align:center;color:#6c757d;padding:40px 20px}.no-events-message .empty-icon{font-size:64px;margin-bottom:16px;opacity:.6}.no-events-message h3{color:#495057;margin:0 0 8px;font-size:20px;font-weight:600}.no-events-message p{margin:0;font-size:14px;line-height:1.5;max-width:400px}@media(max-width:768px){.results-sub-tabs{flex-direction:column;gap:0}.sub-tab{border-radius:0;justify-content:center}.sub-tab.active{border-bottom:none;border-left:4px solid #007bff;margin-bottom:0;margin-left:-2px}}.relay-name{font-weight:600;color:#007bff}.relay-number{font-size:12px;background:#007bff;color:#fff;padding:2px 6px;border-radius:4px;margin-left:8px;font-weight:600}.relay-athletes-container{margin-top:8px;padding:8px 12px;background:#f8f9fa;border-radius:6px;border-left:3px solid #007bff}.relay-athletes-title{font-size:12px;font-weight:600;color:#495057;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;display:block}.relay-athletes-list{display:flex;flex-direction:column;gap:4px}.relay-athlete-item{display:flex;align-items:center;gap:6px}.relay-leg{font-size:12px;font-weight:600;color:#007bff;min-width:20px}.relay-athlete-name{font-size:13px;font-weight:500;color:#495057}.relay-athlete-year{font-size:11px;color:#6c757d;font-weight:400}.relay-athlete-time{font-size:12px;color:#0d6efd;font-weight:500;margin-left:8px;background:#e3f2fd;padding:2px 6px;border-radius:4px}.top-performance-content{padding:0}.top-performance-sections{display:grid;grid-template-columns:1fr;gap:30px}.top-performance-section{background:#f8f9fa;border-radius:8px;padding:20px}.top-performance-title{display:flex;align-items:center;gap:8px;margin:0 0 16px;font-size:18px;font-weight:600;color:#495057;border-bottom:2px solid #dee2e6;padding-bottom:8px}.gender-icon{font-size:20px}.top-performance-list{display:flex;flex-direction:column;gap:0px}.top-performance-item{display:flex;align-items:center;gap:8px;background:#fff;border-radius:6px;padding:6px 8px;border:1px solid #dee2e6;transition:all .15s ease}.top-performance-item:hover{border-color:#007bff;box-shadow:0 2px 8px #007bff1a}.performance-rank{font-size:14px;font-weight:700;color:#007bff;min-width:30px;text-align:center;background:#e3f2fd;border-radius:50%;width:30px;height:30px;display:flex;align-items:center;justify-content:center}.performance-rank:nth-child(1){color:#ff6b35;background:#fff3e0}.top-performance-item:nth-child(1) .performance-rank{color:#ff6b35;background:#fff3e0}.top-performance-item:nth-child(2) .performance-rank{color:#757575;background:#f5f5f5}.top-performance-item:nth-child(3) .performance-rank{color:#8d6e63;background:#efebe9}.performance-details{flex:1;display:flex;flex-direction:column;gap:2px}.performance-line-1{display:flex;align-items:center;gap:8px}.performance-line-2{display:flex;align-items:center;gap:8px;font-size:13px;color:#6c757d}.performance-line-3{display:flex;align-items:center;gap:4px;font-size:12px;color:#6c757d;font-style:italic;margin-top:2px}.performance-line-3 .event-details{color:#495057}.performance-details .athlete-name{font-size:14px;font-weight:600;color:#495057}.performance-details .athlete-name.clickable{cursor:pointer;color:#007bff;text-decoration:none;transition:color .2s ease}.performance-details .athlete-name.clickable:hover{color:#0056b3;text-decoration:underline}.performance-details .club{font-size:12px;font-weight:600;color:#6c757d;background:#f8f9fa;padding:2px 6px;border-radius:4px}.performance-details .club.club-selected{color:#007bff;background:#e3f2fd}.performance-details .points{font-size:13px;font-weight:700;color:#28a745;margin-left:auto}.performance-details .event-info{font-size:13px;color:#6c757d}.performance-details .swim-time{font-size:13px;font-weight:700;color:#495057;margin-left:auto}.top-performance-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.pagination-info{font-size:14px;color:#6c757d;font-weight:500}.pagination-controls{display:flex;justify-content:center;align-items:center;gap:.5rem;padding:1rem 0}.pagination-btn{background:#007bff;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s ease}.pagination-btn:hover:not(:disabled){background:#0056b3;transform:translateY(-1px)}.pagination-btn:disabled{background:#e9ecef;color:#6c757d;cursor:not-allowed;transform:none}.pagination-controls-simple{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:1.5rem;padding:12px 16px;background-color:#fafafa;border-top:1px solid #e5e5e5}.pagination-btn-grey{padding:6px 12px;border:1px solid #d1d5db;border-radius:4px;background-color:#fff;color:#374151;font-size:13px;cursor:pointer;transition:background-color .15s ease;font-weight:500}.pagination-btn-grey:hover:not(:disabled){background-color:#6b7280;color:#fff;border-color:#6b7280}.pagination-btn-grey:disabled{background-color:#f9fafb;color:#9ca3af;cursor:not-allowed;border-color:#e5e7eb}.pagination-numbers{display:flex;align-items:center;gap:.25rem}.pagination-number{background:transparent;color:#007bff;border:1px solid #dee2e6;padding:.5rem .75rem;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;min-width:40px;transition:all .2s ease}.pagination-number:hover{background:#e3f2fd;border-color:#007bff}.pagination-number.active{background:#007bff;color:#fff;border-color:#007bff}.pagination-ellipsis{color:#6c757d;padding:.5rem .25rem;font-size:14px}@media(max-width:768px){.top-performance-sections{grid-template-columns:1fr;gap:20px}.top-performance-section{padding:16px}.performance-line-1,.performance-line-2,.performance-line-3{flex-wrap:wrap;gap:8px}.performance-details .points,.performance-details .swim-time{margin-left:0}.top-performance-header{flex-direction:column;align-items:flex-start;gap:.5rem}.pagination-controls{flex-direction:column;gap:.75rem}.pagination-numbers{flex-wrap:wrap;justify-content:center}.pagination-btn{padding:.5rem .75rem;font-size:13px}.pagination-number{padding:.4rem .6rem;font-size:13px;min-width:36px}.pagination-controls-simple{flex-direction:row;gap:8px;padding:8px 12px}.pagination-btn-grey{min-width:80px;padding:8px 12px}}.top-score-content{padding:0}.top-score-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:8px;border-bottom:2px solid #dee2e6}.top-score-title{display:flex;align-items:center;gap:8px;margin:0;font-size:18px;font-weight:600;color:#495057}.header-toggle-btn{padding:6px 12px;background:#f8f9fa;border:1px solid #dee2e6;border-radius:4px;color:#6c757d;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s ease;text-transform:uppercase;letter-spacing:.5px;outline:none}.header-toggle-btn:hover{background:#e9ecef;border-color:#adb5bd;color:#495057}.header-toggle-btn:focus{outline:none;border-color:#adb5bd;box-shadow:none}.top-score-sections{display:grid;grid-template-columns:1fr;gap:30px}.top-score-section{background:#f8f9fa;border-radius:8px;padding:20px}.score-icon{font-size:20px}.top-score-list{display:flex;flex-direction:column;gap:6px}.top-score-item{display:flex;align-items:center;gap:8px;background:#fff;border-radius:6px;padding:8px;border:1px solid #dee2e6;transition:all .15s ease}.top-score-item:hover{border-color:#007bff;box-shadow:0 2px 8px #007bff1a}.score-rank{font-size:14px;font-weight:700;color:#007bff;min-width:30px;text-align:center;background:#e3f2fd;border-radius:50%;width:30px;height:30px;display:flex;align-items:center;justify-content:center}.top-score-item:nth-child(1) .score-rank{color:#ff6b35;background:#fff3e0}.top-score-item:nth-child(2) .score-rank{color:#757575;background:#f5f5f5}.top-score-item:nth-child(3) .score-rank{color:#8d6e63;background:#efebe9}.score-details{flex:1;display:flex;flex-direction:column;gap:2px}.score-line-1{display:flex;align-items:center;gap:8px}.score-line-2{display:flex;align-items:center;gap:8px;font-size:13px;color:#6c757d}.score-details .athlete-name{font-size:14px;font-weight:600;color:#495057}.score-details .athlete-name.clickable{cursor:pointer;color:#007bff;text-decoration:none;transition:color .2s ease}.score-details .athlete-name.clickable:hover{color:#0056b3;text-decoration:underline}.score-details .club-name{font-size:14px;font-weight:600;color:#495057}.score-details .club{font-size:12px;font-weight:600;color:#6c757d;background:#f8f9fa;padding:2px 6px;border-radius:4px}.score-details .club.club-selected,.score-details .club-name.club-selected{background:#dc3545!important;color:#fff!important;font-weight:600;padding:2px 6px;border-radius:4px;box-shadow:0 1px 3px #dc35454d}.score-details .total-points{font-size:14px;font-weight:700;color:#28a745;margin-left:auto}.score-details .event-count,.score-details .athlete-count{font-size:13px;color:#6c757d}.score-details .average-points{font-size:13px;font-weight:600;color:#495057;margin-left:auto}@media(max-width:768px){.top-score-sections{gap:20px}.top-score-section{padding:16px}.score-line-1,.score-line-2{flex-wrap:wrap;gap:8px}.score-details .total-points,.score-details .average-points{margin-left:0}.top-score-header{flex-direction:column;align-items:flex-start;gap:8px}.header-toggle-btn{align-self:flex-end}}.dashboard-content{padding:0}.dashboard-main{flex:1;min-width:0}.dashboard-grid{display:grid;grid-template-columns:1fr;gap:24px;max-width:100%}.dashboard-card{background:#fff;border:1px solid #e9ecef;border-radius:12px;padding:24px 24px 12px;box-shadow:0 2px 8px #00000014;transition:box-shadow .2s ease}.dashboard-card:hover{box-shadow:0 4px 16px #0000001f}.dashboard-card h3{margin:0 0 20px;color:#212529;font-size:18px;font-weight:600;display:flex;align-items:center;gap:8px}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.stat-item{flex-direction:column;gap:4px}.stat-label{font-size:12px;font-weight:500;color:#6c757d;text-transform:uppercase;letter-spacing:.5px}.stat-value{font-size:16px;font-weight:600;color:#212529}.quick-stats{display:flex;justify-content:space-between;gap:16px}.quick-stat{text-align:center;flex:1}.quick-stat-number{font-size:32px;font-weight:700;color:#007bff;line-height:1}.quick-stat-label{font-size:12px;color:#6c757d;margin-top:4px;font-weight:500}.activity-list{display:flex;flex-direction:column}.activity-item{display:flex;align-items:center;gap:12px;background:#f8f9fa;border-radius:8px}.activity-icon{font-size:16px}.activity-text{flex:1;font-size:14px;color:#212529}.activity-time{font-size:12px;color:#6c757d}.quick-actions{display:flex;flex-direction:column;gap:12px}.card-placeholder{min-height:120px;display:flex;align-items:center;justify-content:center;color:#6c757d;font-style:italic;border:2px dashed #dee2e6;border-radius:8px;background:#f8f9fa}.card-placeholder:before{content:"Content coming soon..."}.action-button{padding:12px 16px;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:8px}.action-button.primary{background:#007bff;color:#fff}.action-button.primary:hover{background:#0056b3}.action-button.secondary{background:#f8f9fa;color:#495057;border:1px solid #dee2e6}.action-button.secondary:hover{background:#e9ecef}@media(max-width:768px){.dashboard-grid{grid-template-columns:1fr;gap:16px}.stats-grid{grid-template-columns:1fr;gap:12px}.quick-stats{flex-direction:column;gap:12px}.dashboard-card{padding:20px}}.filter-indicator{font-size:.8em;color:#007bff;font-weight:400;opacity:.8}.teams-table-container{width:100%;height:100%;display:flex;flex-direction:column}.teams-table-wrapper{width:100%;overflow-x:auto;flex:1}.teams-table{width:100%;border-collapse:collapse;font-size:.8rem;min-width:600px;line-height:1.2}.teams-table th{background:#f8f9fa;color:#495057;font-weight:600;padding:4px 5px;text-align:left;border-bottom:1px solid #dee2e6;position:sticky;top:0;z-index:1;white-space:nowrap;font-size:.75rem;line-height:1.2;vertical-align:middle}.teams-table td{padding:3px 5px;border-bottom:1px solid #e9ecef;white-space:nowrap;line-height:1.2;vertical-align:middle;height:auto}.teams-table tbody tr:hover{background-color:#f8f9fa}.teams-table .rank{text-align:center;font-weight:600;color:#6c757d;min-width:35px;font-size:.75rem}.teams-table .club-name{font-weight:600;color:#007bff;min-width:60px}.teams-table .athlete-count,.teams-table .event-count{text-align:center;font-weight:500}.teams-table .first-places{text-align:center;color:gold;font-weight:600}.teams-table .second-places{text-align:center;color:silver;font-weight:600}.teams-table .third-places{text-align:center;color:#cd7f32;font-weight:600}.teams-table .top-ten,.teams-table .total-points,.teams-table .average-points{text-align:right;font-weight:500}.teams-table .total-points{color:#28a745;font-weight:600}.teams-table .average-points{color:#6c757d}.teams-table tr.club-selected{background-color:#fdf2f2!important;border-left:3px solid #dc3545;color:#495057!important}.teams-table tr.club-selected .club-name{color:#dc3545!important;font-weight:700}.events-section{margin-bottom:2rem}.events-section-header{padding:1rem 1.5rem;background:linear-gradient(135deg,#007bff,#0056b3);color:#fff;font-size:1.1rem;font-weight:600;margin:0 0 1rem;border-radius:8px;box-shadow:0 2px 4px #007bff33;display:flex;align-items:center;gap:.5rem}.events-section-header:before{content:"🏊‍♂️";font-size:1.2rem}.events-section-header.relay-section:before{content:"👥"}.events-section-content{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;overflow:hidden}@media(max-width:768px){.teams-table{font-size:.75rem;min-width:500px}.teams-table th,.teams-table td{padding:3px 4px}.high-point-table th,.high-point-table td{padding:4px 3px}.events-section-header{font-size:1rem;padding:.75rem 1rem}}.high-point-table-container{width:100%;height:100%;display:flex;flex-direction:column}.high-point-table-wrapper{width:100%;overflow-x:auto;flex:1}.high-point-table{width:100%;border-collapse:collapse;font-size:.8rem;min-width:700px;line-height:1.2}.high-point-table th{background:#f8f9fa;color:#495057;font-weight:600;padding:4px 5px;text-align:left;border-bottom:1px solid #dee2e6;position:sticky;top:0;z-index:1;white-space:nowrap;font-size:.75rem;line-height:1.2;vertical-align:middle}.high-point-table td{padding:3px 5px;border-bottom:1px solid #e9ecef;white-space:nowrap;line-height:1.2;vertical-align:middle;height:auto}.high-point-table tbody tr:hover{background-color:#f8f9fa}.high-point-table .rank{text-align:center;font-weight:600;color:#6c757d;min-width:35px;font-size:.75rem}.high-point-table .athlete-info{min-width:140px;vertical-align:middle}.high-point-table .athlete-name{font-weight:500;color:#007bff;font-size:.8rem;line-height:1.2;display:inline-block;vertical-align:middle}.high-point-table .athlete-name.clickable{cursor:pointer;text-decoration:underline}.high-point-table .athlete-name.clickable:hover{color:#0056b3}.high-point-table .gender-indicator{margin-left:3px;padding:1px 3px;font-size:.65rem;border-radius:2px;background:#e9ecef;color:#495057;line-height:1;display:inline-block;vertical-align:middle}.high-point-table .club-code{font-weight:600;color:#007bff;min-width:55px;font-size:.8rem}.high-point-table .event-info{font-size:.75rem;color:#6c757d;min-width:100px;line-height:1.2}.high-point-table .swim-time{font-family:Courier New,monospace;font-weight:700;color:#495057;text-align:left;min-width:75px;font-size:.8rem}.high-point-table .points-value{text-align:right;font-weight:600;color:#28a745;min-width:65px;font-size:.8rem}.event-results-table .high-point-table{font-size:.96rem}.event-results-table .high-point-table th,.event-results-table .high-point-table .rank{font-size:.9rem}.event-results-table .high-point-table .athlete-name{font-size:.96rem}.event-results-table .high-point-table .gender-indicator{font-size:.78rem}.event-results-table .high-point-table .club-code{font-size:.96rem}.event-results-table .high-point-table .event-info{font-size:.9rem}.event-results-table .high-point-table .swim-time{font-size:.96rem;white-space:nowrap}.event-results-table .high-point-table .badges-cell{text-align:center;padding:4px 2px;white-space:nowrap}.event-results-table .high-point-table .time-diff-cell{font-size:.82rem;color:#666;padding:4px 6px;white-space:nowrap}.event-results-table .high-point-table .points-value{font-size:.96rem}.high-point-table tr.club-selected{background-color:#fdf2f2!important;border-left:3px solid #dc3545;color:#495057!important}.high-point-table tr.club-selected .club-code{color:#dc3545!important;font-weight:700}.dashboard-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.dashboard-card-header h3{margin:0;flex:1}.view-all-btn{padding:6px 12px;border:1px solid #d1d5db;border-radius:4px;background-color:#fff;color:#374151;font-size:.8rem;cursor:pointer;transition:background-color .15s ease;font-weight:500;white-space:nowrap}.view-all-btn:hover{background-color:#6b7280;color:#fff;border-color:#6b7280}.view-all-btn:active{background-color:#4b5563;border-color:#4b5563}.export-buttons-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding:8px 12px;background-color:#f8f9fa;border-radius:4px;font-size:.8rem}.export-buttons-header .results-count{color:#6c757d;font-weight:500}.export-buttons-header .export-buttons{display:flex;gap:8px}.export-buttons-header .export-btn{padding:4px 8px;border:1px solid #d1d5db;border-radius:3px;background-color:#fff;color:#374151;font-size:.7rem;cursor:pointer;transition:background-color .15s ease;font-weight:500;white-space:nowrap}.export-buttons-header .export-btn:hover{background-color:#6b7280;color:#fff;border-color:#6b7280}.export-buttons-header .export-btn:active{background-color:#4b5563;border-color:#4b5563}.events-ribbon{display:flex;align-items:flex-start;gap:10px;padding:16px 20px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:10px;margin-bottom:16px;box-shadow:0 2px 10px #667eea40}.events-ribbon-strokes{display:flex;flex-wrap:wrap;gap:6px;flex:1;align-items:stretch}.events-ribbon-stroke-group{display:flex;flex-direction:column;align-items:stretch;background:#ffffff14;border-radius:8px;border:1px solid rgba(255,255,255,.12);overflow:hidden}.events-ribbon-stroke-label{font-size:10px;font-weight:700;color:#ffffffbf;text-transform:uppercase;letter-spacing:.8px;white-space:nowrap;cursor:pointer;padding:5px 10px;text-align:center;border-bottom:1px solid rgba(255,255,255,.1);transition:all .2s;-webkit-user-select:none;user-select:none}.events-ribbon-stroke-label:hover{color:#fff;background:#ffffff1a}.events-ribbon-stroke-label.all-active{color:#fff;background:#ffffff2e}.events-ribbon-distances{display:flex;flex-wrap:wrap;gap:4px;padding:6px;justify-content:center}.event-badge{padding:3px 10px;background:#ffffff1f;color:#ffffffe0;border:1.5px solid rgba(255,255,255,.2);border-radius:14px;font-size:11px;font-weight:600;transition:all .15s ease;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;line-height:1.4}.event-badge:hover{background:#ffffff4d;border-color:#ffffff80;transform:translateY(-1px)}.event-badge.active{background:#fff;color:#5a67d8;border-color:#fff;font-weight:700;box-shadow:0 0 0 2px #ffffff59;transform:scale(1.05)}.event-badge.relay{font-style:italic}.event-badge.relay:not(.active){border-color:#ffd7008c;background:#ffd7001f}.events-ribbon-clear{background:#ffffff26;color:#fff;border:1.5px solid rgba(255,255,255,.35);border-radius:50%;width:26px;height:26px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:13px;font-weight:700;transition:all .2s;flex-shrink:0;align-self:center}.events-ribbon-clear:hover{background:#ffffff59;border-color:#ffffffa6;transform:scale(1.1)}@media(max-width:768px){.events-ribbon{padding:10px 12px;gap:6px;flex-wrap:wrap}.events-ribbon-strokes{gap:5px}.events-ribbon-stroke-label{font-size:9px;padding:4px 8px}.event-badge{padding:2px 7px;font-size:10px}.events-ribbon-distances{padding:4px 5px;gap:3px}}.club-summary-card{background:#fff;border:1px solid #e5e7eb;border-radius:6px;padding:8px 12px;margin-bottom:10px;flex-shrink:0;transition:all .15s ease}.club-summary-card.clickable{cursor:pointer;box-shadow:0 2px 8px #00000014}.club-summary-card.clickable:hover{border-color:#d1d5db;box-shadow:0 4px 12px #0000001f;transform:translateY(-2px)}.club-summary-card.loading,.club-summary-card.error{padding:8px 12px}.club-summary-header{margin-bottom:6px}.club-name{font-size:15px;font-weight:600;color:#111827;margin:0}.club-summary-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:6px}.stat-value-row{display:flex;align-items:baseline;gap:8px}.stat-label{font-size:11px;color:#6b7280;text-transform:uppercase;font-weight:500;letter-spacing:.5px}.stat-value{font-size:16px;font-weight:700;color:#111827}.stat-subtext{display:flex;gap:6px;font-size:12px;font-weight:600}.rankings-container{padding:32px;display:flex;flex-direction:column;min-height:100vh;overflow-y:auto}.rankings-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #e5e5e5;flex-shrink:0;background:#fff}.rankings-header h2{color:#111827;margin:0;font-size:20px;font-weight:600;letter-spacing:-.025em}.rankings-header-actions{display:flex;align-items:center;gap:12px}.print-button{padding:6px 14px;background:#f0f4ff;border:1px solid #d4ddf7;border-radius:6px;color:#4b5e8a;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .2s;display:flex;align-items:center;gap:4px}.print-button:hover{background:#e0e8ff;border-color:#b0bfe8}@media print{.sidebar,.content-header,.sidebar-footer{display:none!important}.main-content{margin-left:0!important}.rankings-header-actions,.ranking-info-section,.rankings-age-groups-ribbon,.club-ranking-summary,.navigate-button,.print-button,.event-mode-group{display:none!important}.event-mode-selector{justify-content:flex-start;padding-bottom:8px}.rankings-last-update{display:flex!important;font-size:12px}.rankings-container{padding:0;min-height:auto;overflow:visible}.rankings-header{border-bottom:2px solid #111;margin-bottom:16px;padding-bottom:8px}.rankings-header h2{font-size:18px}.rankings-redirect-section{grid-template-columns:1fr 1fr 1fr;gap:16px;page-break-inside:avoid}.redirect-card{box-shadow:none;border:1px solid #ccc;padding:12px;page-break-inside:avoid}.redirect-card h3{font-size:14px;margin-bottom:8px}.top-5-table{font-size:11px}.top-5-table th,.top-5-table td{padding:3px 6px}.top-5-list h4{font-size:12px;margin-bottom:6px}}.event-mode-selector{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:0 0 16px;flex-shrink:0;flex-wrap:wrap}.event-mode-group{display:flex;align-items:center;gap:8px}.rankings-age-groups-ribbon{display:flex;align-items:center;gap:10px;padding:10px 16px;background:#f0f4ff;border:1px solid #d4ddf7;border-radius:8px;margin-bottom:12px;flex-shrink:0}.rankings-age-groups-list{display:flex;flex-wrap:wrap;gap:6px;flex:1}.rankings-age-groups-clear{background:#e0e6f5;border:1.5px solid #c0c9e0;color:#5b6b8a;border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px;font-weight:600;transition:all .2s;flex-shrink:0}.rankings-age-groups-clear:hover{background:#cdd5eb;transform:scale(1.1)}.rankings-info-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;flex-shrink:0}.rankings-last-update{display:flex;align-items:center;gap:6px;font-size:13px;color:#6b7280}.rankings-last-update .update-icon{font-size:14px}.rankings-last-update strong{color:#374151;font-weight:600}.ranking-info-toggle-btn{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:500;color:#6b7280;cursor:pointer;padding:4px 10px;border-radius:6px;transition:background-color .15s ease}.ranking-info-toggle-btn:hover{background:#f3f4f6}.ranking-info-section{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:16px;flex-shrink:0;padding:14px}.ranking-info-chevron{font-size:11px;color:#9ca3af}.ranking-info-intro{font-size:13px;color:#4b5563;line-height:1.6;margin:12px 0 16px;padding:0}.ranking-modes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px}.ranking-mode-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:12px;transition:all .15s ease}.ranking-mode-card.active{border-color:#059669;background:#ecfdf5;box-shadow:0 0 0 1px #059669}.mode-card-header{display:flex;align-items:center;gap:6px;margin-bottom:6px}.mode-card-icon{font-size:16px}.mode-card-header h4{margin:0;font-size:14px;font-weight:600;color:#111827}.ranking-mode-card p{margin:0;font-size:12px;color:#6b7280;line-height:1.5}.ranking-mode-card.active p{color:#065f46}@media(max-width:768px){.ranking-modes-grid{grid-template-columns:1fr}}.club-summary-card{background:#fff;border:1px solid #e5e7eb;border-radius:6px;padding:12px 16px;margin-bottom:16px;flex-shrink:0}.club-summary-card.loading,.club-summary-card.error{padding:12px 16px}.loading-text,.error-text,.no-data-text{font-size:14px;color:#6b7280;text-align:center}.error-text{color:#dc2626}.club-summary-header{margin-bottom:10px}.club-info{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.club-name{font-size:18px;font-weight:600;color:#111827;margin:0}.club-code{font-size:14px;color:#6b7280;background:#f3f4f6;padding:2px 6px;border-radius:4px;font-weight:500}.club-divider{font-size:14px;color:#d1d5db;font-weight:400}.club-region,.club-nation{font-size:12px;color:#6b7280;background:#f3f4f6;padding:2px 6px;border-radius:4px;font-weight:500}.club-region-name,.club-nation-name{font-size:13px;color:#6b7280;font-weight:400}.club-summary-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.stat-item{display:flex;flex-direction:column;gap:2px}.stat-item.highlight{background:#f9fafb;padding:8px;border-radius:4px;border:1px solid #e5e7eb}.stat-label{font-size:12px;color:#6b7280;text-transform:uppercase;font-weight:500;letter-spacing:.5px}.stat-value{font-size:20px;font-weight:700;color:#111827}.stat-subtext{display:flex;gap:8px;margin-top:2px;font-size:13px;font-weight:600}.stat-subtext .male{color:#3b82f6}.stat-subtext .female{color:#ec4899}.rankings-tabs-section{flex-shrink:0;background:#fff;margin-bottom:0}.rankings-sub-tabs{display:flex;gap:8px;margin-bottom:0;border-bottom:2px solid #e5e7eb;padding-bottom:0}.rankings-sub-tabs .sub-tab-button{padding:10px 20px;background:transparent;border:none;border-bottom:3px solid transparent;color:#6b7280;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;position:relative;bottom:-2px;outline:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.rankings-sub-tabs .sub-tab-button:focus{outline:none}.rankings-sub-tabs .sub-tab-button:active{outline:none}.rankings-sub-tabs .sub-tab-button:hover{color:#0c5aa6;background:#f9fafb}.rankings-sub-tabs .sub-tab-button.active{color:#0c5aa6;border-bottom-color:#0c5aa6;font-weight:600}.rankings-content{flex:1;overflow:hidden;background:#fff;padding:24px 0;display:flex;flex-direction:column}.rankings-redirect-section{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:24px}.tab-redirect{padding:48px 24px;display:flex;justify-content:center;align-items:center}.redirect-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:24px;box-shadow:0 1px 3px #0000001a;transition:box-shadow .2s,transform .2s;display:flex;flex-direction:column}.redirect-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.redirect-card h3{font-size:18px;font-weight:600;color:#111827;margin:0 0 12px}.redirect-card p{font-size:14px;color:#6b7280;line-height:1.5;margin:0 0 20px}.navigate-button{background:#0c5aa6;color:#fff;border:none;border-radius:6px;padding:12px 24px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;gap:8px}.navigate-button:hover{background:#094a8c;box-shadow:0 4px 6px -1px #0000001a;transform:translateY(-1px)}.navigate-button:active{transform:translateY(0)}.rankings-table-wrapper{flex:1;overflow:auto}.rankings-table th{padding:12px 16px;text-align:left;font-size:12px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}.rankings-table td{padding:14px 16px;font-size:14px;color:#111827}.rank-cell{font-weight:700;color:#dc2626;width:80px}.athlete-cell,.club-cell,.region-cell{font-weight:500}.points-cell{font-weight:600;color:#059669;text-align:right}.athletes-cell,.clubs-cell{color:#6b7280;text-align:center;width:100px}.rankings-table tbody tr:nth-child(1) .rank-cell{color:#fbbf24;font-size:16px}.rankings-table tbody tr:nth-child(2) .rank-cell{color:#9ca3af;font-size:15px}.rankings-table tbody tr:nth-child(3) .rank-cell{color:#cd7f32;font-size:15px}.athletes-rankings-table th{font-size:11px;padding:10px 12px}.athletes-rankings-table td{padding:10px 12px}.athletes-rankings-table .gender-cell{text-align:center;font-weight:600;color:#6b7280}.pagination-controls{display:flex;justify-content:center;align-items:center;gap:16px;padding:20px 0;background:#fff;border-top:1px solid #e5e7eb}.pagination-button{padding:8px 16px;border:1px solid #e5e7eb;border-radius:6px;background:#fff;color:#6b7280;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease}.pagination-button:hover:not(:disabled){background:#f9fafb;border-color:#d1d5db;color:#111827}.pagination-info{font-size:14px;color:#6b7280;font-weight:500}@media(max-width:768px){.rankings-container,.club-summary-card{padding:16px}.club-summary-stats{grid-template-columns:1fr;gap:12px}.stat-value{font-size:18px}.rankings-sub-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch}.rankings-sub-tabs .sub-tab-button{white-space:nowrap;min-width:100px;padding:10px 16px}.rankings-table th,.rankings-table td{padding:10px 12px;font-size:13px}}.top-5-list{margin-top:20px;padding-top:16px;border-top:1px solid #e5e7eb}.top-5-list h4{font-size:14px;font-weight:600;color:#374151;margin:0 0 12px}.top-5-table{width:100%;border-collapse:collapse;font-size:13px}.top-5-table thead{background:#f9fafb}.top-5-table th{padding:8px 10px;text-align:left;font-weight:600;color:#6b7280;font-size:12px;border-bottom:1px solid #e5e7eb}.top-5-table th:first-child{width:40px;text-align:center}.top-5-table td{padding:10px;border-bottom:1px solid #f3f4f6;color:#374151}.top-5-table td:first-child{text-align:center;font-weight:600;color:#0c5aa6}.top-5-table tbody tr{transition:background-color .15s}.top-5-table tbody tr:hover{background-color:#f9fafb}.top-5-table tbody tr:last-child td{border-bottom:none}@media(max-width:1200px){.rankings-redirect-section{grid-template-columns:1fr}}@media(max-width:768px){.top-5-table{font-size:12px}.top-5-table th,.top-5-table td{padding:8px 6px}}.club-rankings-container{padding:32px;display:flex;flex-direction:column;height:100vh;overflow:hidden}.event-mode-selector{display:flex;align-items:center;gap:12px;padding:0 0 16px;flex-shrink:0}.club-rankings-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #e5e5e5;flex-shrink:0;background:#fff}.club-rankings-header .header-left{display:flex;align-items:center;gap:16px}.club-rankings-header h2{color:#111827;margin:0;font-size:20px;font-weight:600;letter-spacing:-.025em}.back-button{background:transparent;border:1px solid #e5e7eb;border-radius:6px;padding:8px 16px;font-size:14px;font-weight:500;color:#6b7280;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;gap:4px}.club-rankings-content{flex:1;overflow-y:auto;background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:24px}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;position:relative;z-index:10}.section-title{color:#111827;font-size:18px;font-weight:600;margin:0}.export-dropdown-content{display:block;position:absolute;background-color:#fff;min-width:180px;box-shadow:0 8px 16px #0003;border-radius:6px;z-index:9999;right:0;top:100%;margin-top:4px;border:1px solid #e5e7eb}.loading-message,.error-message,.empty-message{text-align:center;padding:40px 20px;color:#6b7280;font-size:14px}.error-message{color:#dc2626}.rankings-table-wrapper{overflow-x:auto;margin-top:16px}.age-group-rankings-table{width:100%;border-collapse:collapse;font-size:14px}.age-group-rankings-table thead{background:#f9fafb;position:sticky;top:0;z-index:1}.age-group-rankings-table th{padding:12px 16px;text-align:left;font-weight:600;color:#6b7280;text-transform:uppercase;font-size:11px;letter-spacing:.5px;border-bottom:2px solid #e5e7eb}.age-group-rankings-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .15s ease}.age-group-rankings-table th.sortable:hover{background-color:#f3f4f6}.age-group-rankings-table tbody tr{border-bottom:1px solid #e5e7eb;transition:background-color .15s ease}.age-group-rankings-table tbody tr:hover{background-color:#f9fafb}.age-group-rankings-table tbody tr:last-child{border-bottom:none}.age-group-rankings-table td{padding:12px 16px;color:#111827}.age-group-cell{font-weight:600;color:#111827}.athletes-cell,.points-cell,.meets-cell,.position-cell{text-align:left}.position-main{font-weight:600;color:#111827;display:inline-block;margin-right:12px}.position-breakdown{display:inline-flex;gap:12px;font-size:12px;font-weight:500}.position-breakdown .male{color:#3b82f6}.position-breakdown .female{color:#ec4899}.age-group-rankings-table th.highlight-column{background:#eff6ff;text-align:center;font-weight:700}.age-group-rankings-table th.highlight-column:hover{background:#dbeafe}.age-group-rankings-table td.highlight-column{background:#f0f9ff;text-align:center;font-weight:500}.age-group-rankings-table tbody tr:hover td.highlight-column{background:#e0f2fe}@media(max-width:768px){.club-rankings-container{padding:16px}.age-group-rankings-table{font-size:12px}.age-group-rankings-table th,.age-group-rankings-table td{padding:8px 12px}}.athlete-rankings-container{padding:32px;display:flex;flex-direction:column;min-height:100vh}.athlete-rankings-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #e5e5e5;flex-shrink:0;background:#fff}.athlete-rankings-header .header-left{display:flex;align-items:center;gap:16px}.athlete-rankings-header .header-title-container{display:flex;align-items:center;gap:12px}.athlete-rankings-header h2{color:#111827;margin:0;font-size:20px;font-weight:600;letter-spacing:-.025em;white-space:nowrap}.athlete-rankings-header .update-date{color:#6b7280;font-size:14px;font-weight:400}.athlete-rankings-header .header-right{display:flex;align-items:center;gap:16px}.ranking-navigation-tabs{display:flex;gap:8px;padding:0 32px;margin-bottom:16px;border-bottom:2px solid #e5e7eb}.ranking-tab{padding:12px 24px;background:none;border:none;border-bottom:3px solid transparent;color:#6b7280;font-size:15px;font-weight:500;cursor:pointer;transition:all .2s ease;margin-bottom:-2px}.ranking-tab:hover{color:#374151;background-color:#f9fafb}.athlete-rankings-container .event-mode-selector{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:0 0 16px;flex-shrink:0}.athlete-filter{display:flex;align-items:center;gap:8px;flex-shrink:0}.athlete-input{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;outline:none;background-color:#fff;color:#374151;min-width:160px;max-width:180px;transition:all .15s ease}.region-filter{display:flex;align-items:center;gap:8px;flex-shrink:0}.region-input{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;outline:none;background-color:#fff;color:#374151;min-width:160px;max-width:180px;transition:all .15s ease}.club-filter{display:flex;align-items:center;gap:8px;flex-shrink:0}.club-input{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;outline:none;background-color:#fff;color:#374151;min-width:160px;max-width:180px;transition:all .15s ease}.age-group-filter{display:flex;align-items:center;gap:8px;flex-shrink:0}.age-group-dropdown{min-width:200px;max-width:220px}.athlete-rankings-content{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:16px;display:flex;flex-direction:column}@media(max-width:768px){.athlete-rankings-container{padding:16px}.rankings-table th,.rankings-table td{padding:10px 12px;font-size:13px}.pagination-section{flex-direction:column;gap:12px;align-items:stretch}.pagination-left,.pagination-right{flex:none;width:100%;justify-content:center!important}.pagination-info-inline{text-align:center;justify-content:center}.pagination-buttons,.records-per-page{justify-content:center}.pagination-button{min-width:80px}.athlete-rankings-header{flex-direction:column;align-items:flex-start;gap:12px}.athlete-rankings-header .header-left,.athlete-rankings-header .header-right{width:100%}.nation-filter-section{padding:12px;flex-direction:column;gap:16px}.filter-row{flex-direction:column;gap:16px}.nation-filter,.athlete-filter,.region-filter,.club-filter,.age-group-filter{flex-direction:column;align-items:flex-start;gap:8px;width:100%}.nation-select,.athlete-input,.region-input,.club-input,.age-group-dropdown{width:100%;min-width:100%}.history-header{flex-direction:column;align-items:flex-start;gap:12px}.history-date-filter{flex-wrap:wrap}.history-metrics-grid{grid-template-columns:repeat(2,1fr)}}.history-header-left{display:flex;align-items:center;gap:12px}.empty-message{text-align:center;padding:40px;color:#6b7280;font-size:14px}.rankings-filters-row .nation-filter,.rankings-filters-row .athlete-filter,.rankings-filters-row .club-filter,.rankings-filters-row .region-filter{display:flex;flex-shrink:0}.athlete-rankings-container .rankings-age-groups-ribbon{display:flex;align-items:center;gap:10px;padding:10px 16px;background:#f0f4ff;border:1px solid #d4ddf7;border-radius:8px;flex:1;min-width:0;box-sizing:border-box;margin-bottom:0;flex-shrink:1}.athlete-rankings-container .rankings-gender-ribbon{display:flex;align-items:center;gap:10px;padding:10px 16px;background:#f0f4ff;border:1px solid #d4ddf7;border-radius:8px;flex-shrink:0;box-sizing:border-box;margin-bottom:0}.clubs-rankings-container{padding:32px;display:flex;flex-direction:column;min-height:100vh}.clubs-rankings-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #e5e5e5;flex-shrink:0;background:#fff}.clubs-rankings-header .header-left{display:flex;align-items:center;gap:16px}.clubs-rankings-header .header-title-container{display:flex;align-items:center;gap:12px}.clubs-rankings-header h2{color:#111827;margin:0;font-size:20px;font-weight:600;letter-spacing:-.025em;white-space:nowrap}.clubs-rankings-header .update-date{color:#6b7280;font-size:14px;font-weight:400}.clubs-rankings-print-date,.clubs-rankings-print-filters{display:none}.clubs-rankings-header .header-right{display:flex;align-items:center;gap:12px}.clubs-rankings-header .print-button{padding:6px 14px;background:#f0f4ff;border:1px solid #d4ddf7;border-radius:6px;color:#4b5e8a;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .2s;display:flex;align-items:center;gap:4px}.clubs-rankings-header .print-button:hover{background:#e0e8ff;border-color:#b0bfe8}.ranking-navigation-tabs{display:flex;gap:8px;border-bottom:2px solid #e5e7eb;margin-bottom:20px;padding:0 16px}.ranking-tab{background:none;border:none;padding:12px 16px;cursor:pointer;font-size:14px;font-weight:500;color:#6b7280;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .2s,border-color .2s}.back-to-rankings-button{background:#059669;border:none;border-radius:6px;padding:8px 16px;font-size:14px;font-weight:500;color:#fff;cursor:pointer;transition:all .15s ease;white-space:nowrap}.clubs-rankings-content{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:16px;display:flex;flex-direction:column}.athletes-rankings-table .club-cell{font-weight:500}.athletes-rankings-table .club-cell .region-code{font-size:12px;color:#6b7280;font-weight:400;margin-top:2px}.club-name-link{cursor:pointer;color:#059669;text-decoration:underline;transition:color .15s ease}.club-name-link:hover{color:#047857}.dashboard-container{padding:20px;overflow-y:auto;height:100%}.stats-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;width:100%}.bar-item.my-club-highlight{background:linear-gradient(135deg,#f0fdf4,#dcfce7);border:2px solid #059669;border-radius:8px;padding:8px 12px;margin:-8px -12px;box-shadow:0 2px 4px #0596691a}.bar-item.my-club-highlight .bar-label{color:#059669;font-weight:700}.legend-item{display:flex;align-items:center;gap:8px;font-size:13px;padding:6px 8px;border-radius:6px;transition:all .2s}.legend-item.my-club-highlight{background:linear-gradient(135deg,#f0fdf4,#dcfce7);border:2px solid #059669;padding:6px 8px;box-shadow:0 2px 4px #0596691a}.legend-item.my-club-highlight .legend-text{color:#059669;font-weight:700}.grouped-bar-section.my-club-highlight{background:linear-gradient(135deg,#f0fdf4,#dcfce7)!important;border:2px solid #059669;box-shadow:0 4px 6px #0596691a,0 0 0 3px #0596690d;position:relative}.grouped-bar-section.my-club-highlight:before{content:"⭐";position:absolute;left:-24px;top:50%;transform:translateY(-50%);font-size:16px}.grouped-bar-section.my-club-highlight .grouped-region-label{color:#059669;font-weight:700}.history-container{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:24px}.history-pagination{display:flex;justify-content:center;align-items:center;gap:20px;padding:20px 0;border-top:1px solid #e5e7eb}.history-pagination .pagination-button{padding:8px 16px;background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#374151;font-size:14px;cursor:pointer;transition:all .2s}.history-pagination .pagination-button:hover:not(:disabled){background:#f9fafb;border-color:#9ca3af}.history-pagination .pagination-button:disabled{opacity:.5;cursor:not-allowed}.history-pagination .page-indicator{color:#6b7280;font-size:14px;font-weight:500}.rankings-filters-row .nation-filter,.rankings-filters-row .club-type-filter,.rankings-filters-row .club-filter,.rankings-filters-row .region-filter{display:flex;flex-shrink:0}.rankings-ribbons-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px;align-items:stretch}.clubs-rankings-container .rankings-age-groups-ribbon{display:flex;align-items:center;gap:10px;padding:10px 16px;background:#f0f4ff;border:1px solid #d4ddf7;border-radius:8px;margin-bottom:12px;flex-shrink:0}.rankings-age-groups-label{font-weight:600;color:#4b5e8a;font-size:13px;white-space:nowrap}.rankings-age-groups-list{display:flex;flex-wrap:wrap;gap:6px}.rankings-age-group-badge{padding:4px 12px;background:#fff;color:#5b6b8a;border:1.5px solid #c8d3e8;border-radius:16px;font-size:12px;font-weight:600;transition:all .2s;cursor:pointer;-webkit-user-select:none;user-select:none}.rankings-age-group-badge:hover{transform:translateY(-1px);background:#e8edfb;border-color:#a0b0d4}.rankings-age-group-badge.active{background:#4a6cf7;color:#fff;border:1.5px solid #4a6cf7;box-shadow:0 2px 6px #4a6cf74d;transform:scale(1.05);font-weight:700}.rankings-age-groups-clear,.rankings-gender-clear{background:#e0e6f5;border:1.5px solid #c0c9e0;color:#5b6b8a;border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px;font-weight:600;transition:all .2s;flex-shrink:0}.rankings-age-groups-clear:hover,.rankings-gender-clear:hover{background:#cdd5eb;transform:scale(1.1)}.clubs-rankings-container .rankings-gender-ribbon{display:flex;align-items:center;gap:10px;padding:10px 16px;background:#f0f4ff;border:1px solid #d4ddf7;border-radius:8px;flex-shrink:0;box-sizing:border-box;margin-bottom:0}.rankings-gender-label{font-weight:600;color:#4b5e8a;font-size:13px;white-space:nowrap}.rankings-gender-list{display:flex;gap:6px}.rankings-gender-badge{padding:4px 12px;background:#fff;color:#5b6b8a;border:1.5px solid #c8d3e8;border-radius:16px;font-size:12px;font-weight:600;transition:all .2s;cursor:pointer;-webkit-user-select:none;user-select:none}.rankings-gender-badge:hover{transform:translateY(-1px);background:#e8edfb;border-color:#a0b0d4}.rankings-gender-badge.active{background:#4a6cf7;color:#fff;border:1.5px solid #4a6cf7;box-shadow:0 2px 6px #4a6cf74d;transform:scale(1.05);font-weight:700}.history-help-header{margin-bottom:12px;display:flex;justify-content:flex-end}.history-info-toggle-btn{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:500;color:#6b7280;cursor:pointer;border-radius:6px;transition:background-color .15s ease;white-space:nowrap}.history-info-toggle-btn:hover{background:#f3f4f6}.history-info-chevron{font-size:11px;color:#9ca3af}.history-info-section{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:20px;padding:16px 20px}.history-info-block{margin-bottom:16px}.history-info-block:last-child{margin-bottom:0}.history-info-block h4{margin:0 0 6px;font-size:14px;font-weight:600;color:#111827}.history-info-block p{margin:0 0 8px;font-size:13px;color:#4b5563;line-height:1.6}.history-info-block ul{margin:0;padding-left:20px;list-style:disc}.history-info-block ul li{font-size:13px;color:#4b5563;line-height:1.7;margin-bottom:4px}.history-info-block ul li:last-child{margin-bottom:0}.history-metrics-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:8px}.history-metric-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:4px}.history-metric-card strong{font-size:13px;color:#111827}.history-metric-card span{font-size:12px;color:#6b7280;line-height:1.4}@media print{.sidebar,.content-header,.sidebar-footer{display:none!important}.main-content{margin-left:0!important;padding:0!important}.ranking-navigation-tabs,.event-mode-selector,.rankings-age-groups-ribbon,.rankings-filters-row,.view-mode-tabs,.pagination-container,.print-button,.export-dropdown,.clear-filters-button,.back-button,.history-container,.chart-type-selector,.chart-type-btn{display:none!important}.clubs-rankings-container{padding:0;min-height:auto;overflow:visible}.clubs-rankings-header{border-bottom:2px solid #111;margin-bottom:12px;padding-bottom:8px}.clubs-rankings-header h2{font-size:18px}.clubs-rankings-print-date{display:inline!important;font-size:12px;color:#6b7280;font-weight:400}.clubs-rankings-print-filters{display:flex!important;flex-wrap:wrap;gap:6px 16px;font-size:11px;color:#374151;padding:6px 0 2px;border-top:1px solid #e5e7eb;margin-top:4px}.clubs-rankings-print-filters span{white-space:nowrap}.clubs-rankings-header .header-right{display:none!important}.dashboard-container{overflow:visible!important}.dashboard-grid{gap:12px}.stats-cards{grid-template-columns:repeat(4,1fr)!important;gap:8px;page-break-inside:avoid}.stat-card{box-shadow:none!important;border:1px solid #ccc;padding:8px 12px;page-break-inside:avoid}.stat-card h3{font-size:11px}.stat-value{font-size:20px}.charts-row{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px}.chart-card{box-shadow:none!important;border:1px solid #ccc;padding:8px;page-break-inside:avoid;break-inside:avoid}.chart-card h3{font-size:12px;margin-bottom:6px}.bar-item{page-break-inside:avoid}.bar-label,.bar-value{font-size:11px}}.regions-rankings-container{padding:32px;display:flex;flex-direction:column;min-height:100vh}.event-mode-selector{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:0 0 16px;flex-shrink:0}.event-mode-label{font-size:14px;font-weight:500;color:#6b7280;white-space:nowrap}.event-mode-pills{display:flex;gap:0;border:1px solid #d1d5db;border-radius:8px;overflow:hidden}.event-mode-pill{padding:6px 16px;background:#fff;border:none;border-right:1px solid #d1d5db;font-size:13px;font-weight:500;color:#6b7280;cursor:pointer;transition:all .15s ease;white-space:nowrap}.event-mode-pill:last-child{border-right:none}.event-mode-pill:hover{background:#f3f4f6;color:#374151}.event-mode-pill.active{background:#059669;color:#fff;font-weight:600}.event-mode-pill.active:hover{background:#047857}.regions-rankings-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #e5e5e5;flex-shrink:0;background:#fff}.regions-rankings-header .header-left{display:flex;align-items:center;gap:16px}.regions-rankings-header .header-title-container{display:flex;align-items:center;gap:12px}.regions-rankings-header h2{color:#111827;margin:0;font-size:20px;font-weight:600;letter-spacing:-.025em;white-space:nowrap}.regions-rankings-header .update-date{color:#6b7280;font-size:14px;font-weight:400}.regions-rankings-header .header-right{display:flex;align-items:center;gap:16px}.export-dropdown-content{display:none;position:absolute;background-color:#fff;min-width:180px;box-shadow:0 8px 16px #0003;border-radius:6px;z-index:1;right:0;top:100%;margin-top:4px;border:1px solid #e5e7eb}.export-dropdown:hover .export-dropdown-content{display:block}.ranking-navigation-tabs{display:flex;gap:8px;border-bottom:2px solid #e5e7eb;margin-bottom:20px;padding:0 16px;align-items:center}.ranking-tab{background:none;border:none;padding:12px 16px;cursor:pointer;font-size:14px;font-weight:500;color:#6b7280;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .2s,border-color .2s;outline:none}.ranking-tab:hover{color:#374151}.ranking-tab:focus{outline:none}.ranking-tab:active{outline:none}.ranking-tab.active{color:#059669;border-bottom-color:#059669;font-weight:600}.view-mode-tabs{display:flex;gap:8px;margin-bottom:16px;border-bottom:2px solid #e5e7eb;padding-bottom:0}.view-mode-tab{padding:10px 20px;background:transparent;border:none;border-bottom:3px solid transparent;cursor:pointer;font-size:14px;font-weight:500;color:#6b7280;transition:all .2s;margin-bottom:-2px}.tab-separator{width:1px;height:24px;background:#e5e7eb;margin:0 8px}.ranking-tab.view-tab{color:#9ca3af;font-size:13px}.ranking-tab.view-tab:hover{color:#6b7280}.ranking-tab.view-tab:focus{outline:none}.ranking-tab.view-tab:active{outline:none}.ranking-tab.view-tab.active{color:#3b82f6;border-bottom-color:#3b82f6}.rankings-filters-row{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap;justify-content:flex-start}.rankings-filters-row .nation-filter,.rankings-filters-row .region-filter{display:flex;flex-shrink:0}.rankings-filters-row input{padding:6px 10px;border:1px solid #d1d5db;border-radius:6px;font-size:13px;outline:none;transition:border-color .2s;width:160px}.rankings-filters-row input:focus{border-color:#4a6cf7;box-shadow:0 0 0 2px #4a6cf726}.rankings-filters-row .clear-filters-button{padding:6px 14px;background:#e0e6f5;border:1px solid #c0c9e0;border-radius:6px;color:#4b5e8a;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .2s;flex-shrink:0}.rankings-filters-row .clear-filters-button:hover{background:#cdd5eb}.nation-filter-section{margin-bottom:12px;padding:12px;background:#f9fafb;border-radius:8px;border:1px solid #e5e7eb;display:flex;flex-direction:column;gap:12px;transition:all .3s ease}.nation-filter-section.collapsed{padding:8px 12px;gap:0}.filter-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px;padding:4px;border-radius:6px;transition:background-color .15s ease}.filter-section-header:hover{background-color:#f9fafb}.nation-filter-section.collapsed .filter-section-header{margin-bottom:0}.filter-section-title{margin:0;font-size:16px;font-weight:600;color:#111827;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.active-filters-summary{font-size:13px;font-weight:400;color:#059669;margin-left:4px}.toggle-filters-button{padding:6px 12px;background:#fff;border:1px solid #d1d5db;border-radius:6px;font-size:13px;font-weight:500;color:#6b7280;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;gap:4px}.toggle-filters-button:hover{background:#f3f4f6;border-color:#9ca3af;color:#111827}.filter-actions{display:flex;justify-content:flex-end;padding-top:8px;border-top:1px solid #e5e7eb}.clear-filters-button{padding:8px 16px;background:#fff;border:1px solid #d1d5db;border-radius:6px;font-size:14px;font-weight:500;color:#6b7280;cursor:pointer;transition:all .15s ease}.clear-filters-button:hover{background:#f3f4f6;border-color:#9ca3af;color:#111827}.clear-filters-button:active{background:#e5e7eb}.filter-row{display:flex;gap:16px;flex-wrap:wrap;align-items:center}.filter-row-single{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.nation-filter{display:flex;align-items:center;gap:8px;flex-shrink:0}.nation-filter label{font-size:14px;color:#6b7280;font-weight:500;white-space:nowrap}.nation-select{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;outline:none;cursor:pointer;background-color:#fff;color:#374151;min-width:180px;max-width:200px;transition:all .15s ease}.nation-select:focus{border-color:#0c5aa6;box-shadow:0 0 0 1px #0c5aa6}.athlete-filter{display:flex;align-items:center;gap:8px}.athlete-filter label{font-size:14px;color:#6b7280;font-weight:500;white-space:nowrap}.athlete-input{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;outline:none;background-color:#fff;color:#374151;min-width:200px;transition:all .15s ease}.athlete-input:focus{border-color:#0c5aa6;box-shadow:0 0 0 1px #0c5aa6}.athlete-input:hover{border-color:#9ca3af}.athlete-input::placeholder{color:#9ca3af}.region-filter{display:flex;align-items:center;gap:8px}.region-filter label{font-size:14px;color:#6b7280;font-weight:500;white-space:nowrap}.region-input{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;outline:none;background-color:#fff;color:#374151;min-width:200px;transition:all .15s ease}.region-input:focus{border-color:#0c5aa6;box-shadow:0 0 0 1px #0c5aa6}.region-input:hover{border-color:#9ca3af}.region-input::placeholder{color:#9ca3af}.club-filter{display:flex;align-items:center;gap:8px}.club-filter label{font-size:14px;color:#6b7280;font-weight:500;white-space:nowrap}.club-input{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;outline:none;background-color:#fff;color:#374151;min-width:200px;transition:all .15s ease}.club-input:focus{border-color:#0c5aa6;box-shadow:0 0 0 1px #0c5aa6}.club-input:hover{border-color:#9ca3af}.club-input::placeholder{color:#9ca3af}.age-group-filter{display:flex;align-items:center;gap:8px}.age-group-filter label{font-size:14px;color:#6b7280;font-weight:500;white-space:nowrap}.age-group-dropdown{min-width:250px}.club-type-filter{display:flex;align-items:center;gap:8px}.club-type-filter label{font-size:14px;color:#6b7280;font-weight:500;white-space:nowrap}.club-type-dropdown{min-width:250px}.nation-select:hover{border-color:#9ca3af}.back-to-rankings-button{background:#059669;border:none;border-radius:6px;padding:8px 16px;font-size:14px;font-weight:500;color:#fff;cursor:pointer;transition:all .15s ease}.back-to-rankings-button:hover{background:#047857}.back-button{background:transparent;border:1px solid #e5e7eb;border-radius:6px;padding:8px 16px;font-size:14px;font-weight:500;color:#6b7280;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;gap:4px;white-space:nowrap}.back-button:hover{background:#f9fafb;border-color:#d1d5db;color:#111827}.athlete-rankings-content{flex:1;overflow:hidden;background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:24px;display:flex;flex-direction:column}.regions-rankings-content{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:16px;display:flex;flex-direction:column}.tab-loading,.tab-error,.tab-empty{padding:48px 24px;text-align:center;color:#6b7280;font-size:14px}.tab-error{color:#dc2626}.rankings-table-wrapper{position:relative}.table-loading-overlay{position:absolute;inset:0;background:#fffc;display:flex;align-items:center;justify-content:center;z-index:10;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.loading-spinner{background:#fff;padding:16px 32px;border-radius:8px;box-shadow:0 2px 8px #0000001a;font-size:14px;color:#6b7280;font-weight:500}.rankings-table{width:100%;border-collapse:collapse;background:#fff}.rankings-table thead{background:#f9fafb;border-bottom:1px solid #e5e7eb;position:sticky;top:0;z-index:1}.rankings-table th{padding:8px 12px;text-align:left;font-size:12px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}.rankings-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .15s ease}.rankings-table th.sortable:hover{background:#f3f4f6;color:#111827}.rankings-table th.highlight-column{background:#eff6ff;position:relative}.rankings-table th.highlight-column:hover{background:#dbeafe}.rankings-table td.highlight-column{background:#f0f9ff;font-weight:500}.rankings-table tbody tr:hover td.highlight-column{background:#e0f2fe}.rankings-table tbody tr{border-bottom:1px solid #f3f4f6;transition:background-color .15s ease}.rankings-table tbody tr:hover{background:#f9fafb}.rankings-table tbody tr.user-club-row{background:#fef3c7}.rankings-table tbody tr.user-club-row:hover{background:#fde68a}.rankings-table tbody tr.user-club-row td.highlight-column{background:#fde047}.rankings-table tbody tr.user-club-row:hover td.highlight-column{background:#fcd34d}.rankings-table tbody tr:last-child{border-bottom:none}.rankings-table td{padding:8px 12px;font-size:14px;color:#111827}.athletes-rankings-table{font-size:13px}.athletes-rankings-table th{font-size:11px;padding:6px 10px}.athletes-rankings-table td{padding:6px 10px}.athletes-rankings-table .name-cell{font-weight:500}.athletes-rankings-table .name-cell .athlete-name{margin-bottom:4px}.athletes-rankings-table .name-cell .athlete-link{color:#059669;text-decoration:underline;transition:color .15s ease}.athletes-rankings-table .name-cell .athlete-link:hover{color:#047857}.athletes-rankings-table .name-cell .athlete-details{font-size:12px;color:#6b7280;font-weight:400}.athletes-rankings-table .age-group-cell{font-weight:500;white-space:nowrap}.athletes-rankings-table .meets-cell,.athletes-rankings-table .events-cell{text-align:center;color:#6b7280}.athletes-rankings-table .points-cell{text-align:right;font-weight:600;color:#059669}.athletes-rankings-table .club-cell,.athletes-rankings-table .region-cell{font-weight:500}.athletes-rankings-table .line-number-header,.athletes-rankings-table .line-number-cell{width:50px;text-align:center;font-weight:500;color:#6b7280}.athletes-rankings-table .line-number-header{font-weight:600;color:#374151}.athletes-rankings-table .club-cell .region-code,.athletes-rankings-table .region-cell .nation-code{font-size:12px;color:#6b7280;font-weight:400;margin-top:2px}.athletes-rankings-table .position-cell{text-align:center;white-space:nowrap}.athletes-rankings-table .position-main{font-weight:600;color:#111827}.athletes-rankings-table .position-sub{font-size:11px;color:#6b7280;margin-top:2px}.position-gender-container{align-items:center;justify-content:center;gap:4px}.position-separator{color:#9ca3af;font-weight:400}.club-name-link,.region-name-link{cursor:pointer;color:#059669;text-decoration:underline;transition:color .15s ease}.club-name-link:hover,.region-name-link:hover{color:#047857}.position-gold{color:#fbbf24!important;font-weight:700!important}.position-silver{color:#9ca3af!important;font-weight:700!important}.position-bronze{color:#cd7f32!important;font-weight:700!important}.empty-message-cell{text-align:center;padding:48px 24px!important;color:#6b7280;font-size:14px}.pagination-container{background-color:#fafafa;border-top:1px solid #e5e5e5;padding:12px 16px}.pagination-container.pagination-top{border-top:none;border-bottom:1px solid #e5e5e5;margin-bottom:0}.pagination-section{display:flex;justify-content:space-between;align-items:center;gap:24px;width:100%}.pagination-right{flex:1;display:flex;align-items:center;justify-content:flex-end}.records-select:focus{border-color:#0c5aa6;box-shadow:0 0 0 1px #0c5aa6}.pagination-buttons{display:flex;align-items:center;gap:8px}.pagination-button:hover:not(:disabled){background-color:#0c5aa6;color:#fff;border-color:#0c5aa6}.page-indicator{font-size:13px;color:#6b7280;font-weight:500;white-space:nowrap;min-width:60px;text-align:center}@media(max-width:768px){.athlete-rankings-container{padding:16px}.rankings-table th,.rankings-table td{padding:10px 12px;font-size:13px}.pagination-section{flex-direction:column;gap:12px;align-items:stretch}.pagination-left,.pagination-right{flex:none;width:100%;justify-content:center!important}.pagination-info-inline{text-align:center;justify-content:center}.pagination-buttons,.records-per-page{justify-content:center}.pagination-button{min-width:80px}.athlete-rankings-header{flex-direction:column;align-items:flex-start;gap:12px}.athlete-rankings-header .header-left,.athlete-rankings-header .header-right{width:100%}.nation-filter-section{padding:12px;flex-direction:column;gap:16px}.filter-row{flex-direction:column;gap:16px}.nation-filter,.athlete-filter,.region-filter,.club-filter,.age-group-filter,.club-type-filter{flex-direction:column;align-items:flex-start;gap:8px;width:100%}.nation-select,.athlete-input,.region-input,.club-input,.age-group-dropdown{width:100%;min-width:100%}}.dashboard-container{padding:20px}.dashboard-loading{display:flex;justify-content:center;align-items:center;min-height:400px;font-size:16px;color:#6b7280}.dashboard-grid{display:flex;flex-direction:column;gap:24px;max-width:100%;margin:0}.stats-cards{display:grid;grid-template-columns:repeat(4,minmax(200px,250px));gap:16px;justify-content:flex-start}.stat-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:20px;box-shadow:0 1px 3px #0000001a}.stat-card h3{margin:0 0 12px;font-size:14px;font-weight:500;color:#6b7280;text-transform:uppercase;letter-spacing:.05em}.stat-value{font-size:32px;font-weight:700;color:#059669;margin:0}.charts-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:20px}.chart-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:20px;box-shadow:0 1px 3px #0000001a}.chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.chart-card h3{margin:0;font-size:16px;font-weight:600;color:#111827}.bar-chart{display:flex;flex-direction:column;gap:12px}.bar-item{display:flex;align-items:flex-start;gap:12px}.bar-label{width:200px;flex-shrink:0;font-size:13px;font-weight:500;color:#374151;text-align:left;white-space:normal;word-wrap:break-word;line-height:1.3}.bar-wrapper{flex:1;background:#f3f4f6;border-radius:6px;height:26px;position:relative;overflow:hidden}.bar-fill{height:100%;background:linear-gradient(90deg,#8b9dc3,#a8b8d8);border-radius:6px;display:flex;align-items:center;justify-content:flex-end;padding-right:12px;transition:width .3s ease;min-width:60px}.bar-value{color:#fff;font-size:12px;font-weight:600;white-space:nowrap}@media(max-width:1400px){.stats-cards{grid-template-columns:repeat(2,minmax(200px,1fr))}}@media(max-width:1024px){.charts-row{grid-template-columns:1fr}}@media(max-width:768px){.stats-cards,.charts-row{grid-template-columns:1fr}.bar-item{flex-direction:column;align-items:stretch;gap:6px}.bar-label{text-align:left;min-width:auto}}.chart-type-selector{display:flex;gap:4px}.chart-type-btn{background:#fff;border:1px solid #e5e7eb;border-radius:4px;padding:4px 8px;cursor:pointer;font-size:14px;transition:all .2s}.chart-type-btn:hover{border-color:#059669;background:#f0fdf4}.chart-type-btn.active{border-color:#059669;background:#059669;filter:grayscale(0%) brightness(1.2)}.pie-chart-wrapper{display:flex;flex-direction:column;gap:20px}.pie-chart-container{display:flex;flex-direction:column;align-items:center;gap:20px}.pie-chart{max-width:300px;width:100%;height:auto}.pie-legend{display:flex;flex-direction:column;gap:8px;width:100%}.legend-item{display:flex;align-items:center;gap:8px;font-size:13px}.legend-color{width:16px;height:16px;border-radius:3px;flex-shrink:0}.legend-text{color:#374151}.bar-chart-3d{display:flex;flex-direction:column;gap:12px}.grouped-bar-section{display:flex;align-items:flex-start;gap:12px;padding:12px;background:#f9fafb;border-radius:8px}.grouped-region-label{min-width:60px;font-size:13px;font-weight:600;color:#111827;padding-top:4px}.grouped-bars-wrapper{display:flex;flex-direction:column;gap:4px;flex:1}.grouped-bar-row{display:flex;align-items:center;gap:12px}.grouped-bar-age-label{min-width:80px;font-size:11px;font-weight:500;color:#6b7280;text-align:right}.grouped-bar-container{flex:1;background:#e5e7eb;border-radius:4px;height:16px;position:relative;overflow:hidden}.grouped-bar-fill{height:100%;display:flex;align-items:center;justify-content:flex-end;padding-right:6px;transition:width .3s ease;min-width:40px;border-radius:4px}.grouped-bar-fill:hover{filter:brightness(1.1)}.grouped-bar-value{color:#fff;font-size:10px;font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.3)}.grouped-chart-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px;padding-top:16px;border-top:1px solid #e5e7eb}.grouped-legend-item{display:flex;align-items:center;gap:6px;font-size:12px}.grouped-legend-color{width:12px;height:12px;border-radius:2px}.history-container{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:24px;margin-top:16px}.history-loading{display:flex;justify-content:center;align-items:center;min-height:400px}.history-chart-wrapper{margin-bottom:24px}.history-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.history-chart-wrapper h3{margin:0;font-size:18px;font-weight:600;color:#111827}.history-date-filter{display:flex;gap:16px;align-items:center}.date-filter-group{display:flex;align-items:center;gap:8px}.date-filter-group label{font-size:13px;font-weight:500;color:#6b7280;white-space:nowrap}.date-input{padding:6px 10px;border:1px solid #d1d5db;border-radius:6px;font-size:13px;color:#111827;background:#fff;cursor:pointer;transition:border-color .2s}.date-input:hover{border-color:#9ca3af}.date-input:focus{outline:none;border-color:#059669;box-shadow:0 0 0 3px #0596691a}.metric-select{padding:6px 10px;border:1px solid #d1d5db;border-radius:6px;font-size:13px;color:#111827;background:#fff;cursor:pointer;transition:border-color .2s;min-width:180px}.metric-select:hover{border-color:#9ca3af}.metric-select:focus{outline:none;border-color:#059669;box-shadow:0 0 0 3px #0596691a}.results-container{display:flex;flex-direction:column;height:100vh;overflow:hidden;padding:32px;background:#fff}.results-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding:0 0 16px;border-bottom:1px solid #e5e5e5;flex-shrink:0;background:#fff;z-index:10}.results-header .header-left{display:flex;align-items:center;gap:16px}.results-header .header-right{display:flex;align-items:center;gap:12px}.results-header h2{color:#111827;margin:0;font-size:20px;font-weight:600;letter-spacing:-.025em}.export-dropdown{position:relative;display:inline-block}.export-button{padding:10px 20px;background:#059669;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;gap:8px}.export-button:hover{background:#047857}.export-dropdown-content{position:absolute;background-color:#fff;min-width:180px;box-shadow:0 8px 16px #0003;border-radius:6px;z-index:1000;right:0;top:100%;margin-top:0;border:1px solid #e5e7eb}.export-option{color:#374151;padding:10px 16px;text-decoration:none;display:block;background:none;border:none;width:100%;text-align:left;cursor:pointer;font-size:14px;transition:background-color .15s ease}.export-option:hover{background-color:#f3f4f6}.export-option:first-child{border-radius:6px 6px 0 0}.export-option:last-child{border-radius:0 0 6px 6px}.header-actions{display:flex;gap:12px;align-items:center}.toggle-filters-button{padding:8px 16px;background:#fff;border:1px solid #d1d5db;border-radius:6px;font-size:14px;cursor:pointer;transition:all .15s ease;color:#374151;font-weight:500;display:flex;align-items:center;gap:6px}.toggle-filters-button:hover{background:#f9fafb;border-color:#9ca3af}.toggle-filters-button.active{background:#f0fdf4;border-color:#059669;color:#059669}.nation-filter-section{margin-bottom:20px}.filter-section-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;transition:all .2s ease}.filter-section-header:hover{background:#f3f4f6}.filter-section-header h3{margin:0;font-size:16px;font-weight:600;color:#111827;display:flex;align-items:center;gap:12px}.active-filters-summary{font-size:13px;font-weight:400;color:#6b7280;margin-left:12px}.filters-section{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:20px;margin-bottom:20px;flex-shrink:0;max-height:60vh;overflow-y:auto}.filter-section-group{margin-bottom:20px}.filter-section-group:last-of-type{margin-bottom:0}.filter-section-title{font-size:14px;font-weight:600;color:#111827;margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid #e5e7eb}.filters-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,250px));gap:16px;justify-content:start;align-items:start}.filter-group{display:flex;flex-direction:column;gap:6px;align-items:flex-start;width:100%}.filter-group label{font-size:13px;font-weight:500;color:#374151;text-align:left;width:100%;display:flex;align-items:center}.filter-group input[type=checkbox]{width:auto;margin-right:8px;padding:0;cursor:pointer}.filter-group input:not([type=checkbox]),.filter-group select{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;outline:none;transition:border-color .15s ease;background:#fff;width:100%;text-align:left;box-sizing:border-box}.filter-group input:not([type=checkbox]):focus,.filter-group select:focus{border-color:#059669;box-shadow:0 0 0 3px #0596691a}.filter-actions{display:flex;gap:12px;margin-top:16px;padding-top:16px;border-top:1px solid #e5e7eb}.apply-filters-button,.reset-filters-button{padding:8px 16px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease}.apply-filters-button{background:#059669;color:#fff;border:none}.apply-filters-button:hover{background:#047857}.reset-filters-button{background:#fff;color:#6b7280;border:1px solid #d1d5db}.reset-filters-button:hover{background:#f9fafb}.view-mode-tab:focus,.view-mode-tab:focus-visible{outline:none;box-shadow:0 0 0 2px #05966933}.stats-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin-bottom:12px;flex-shrink:0}.stat-card{background:#fff;border:1px solid #e5e7eb;border-radius:6px;padding:10px 12px;display:flex;flex-direction:column;gap:4px}.stat-card-label{font-size:11px;color:#6b7280;font-weight:500;text-transform:uppercase;letter-spacing:.025em}.stat-card-value{font-size:20px;font-weight:600;color:#111827;line-height:1}.stat-card-trend{font-size:10px;display:flex;align-items:center;gap:4px;margin-top:2px}.stat-card-trend.positive{color:#059669}.stat-card-trend.negative{color:#dc2626}.results-content{flex:1;overflow:auto;background:#fff;border:1px solid #e5e7eb;border-radius:8px}.results-table-wrapper{overflow:auto;max-height:100%}.results-table{width:100%;border-collapse:collapse;font-size:14px}.results-table thead{position:sticky;top:0;background:#f9fafb;z-index:10}.results-table th{padding:12px 16px;text-align:left;font-weight:600;color:#374151;border-bottom:2px solid #e5e7eb;white-space:nowrap}.results-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.results-table th.sortable:hover{background:#f3f4f6}.results-table th .sort-indicator{display:inline-block;margin-left:4px;color:#9ca3af}.results-table th.sorted .sort-indicator{color:#059669}.results-table tbody tr{border-bottom:1px solid #e5e7eb;transition:background-color .15s ease}.results-table tbody tr:hover{background:#f9fafb}.results-table td{padding:12px 16px;color:#111827}.results-table td.time{font-family:Courier New,monospace;font-weight:500}.results-table td.points{font-weight:600;color:#059669}.badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase}.badge.pb{background:#fef3c7;color:#92400e}.badge.sb{background:#dbeafe;color:#1e40af}.badge.improvement{background:#dcfce7;color:#166534}.badge.decline{background:#fee2e2;color:#991b1b}.course-badge{padding:2px 6px;border-radius:3px;font-size:11px;font-weight:600;background:#f3f4f6;color:#4b5563}.charts-container{padding:24px;display:flex;flex-direction:column;gap:24px;overflow:auto}.chart-section{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:20px}.chart-title{font-size:16px;font-weight:600;color:#111827;margin-bottom:16px}.chart-wrapper{min-height:300px}.loading-container,.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#6b7280}.loading-spinner{width:40px;height:40px;border:4px solid #e5e7eb;border-top-color:#059669;border-radius:50%;animation:spin .8s linear infinite}.pagination-info{font-size:14px;color:#6b7280}.pagination-controls{display:flex;gap:8px;align-items:center}.pagination-button.active{background:#059669;color:#fff;border-color:#059669}.page-size-select{padding:6px 10px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;background:#fff;cursor:pointer}.nation-filter-section.detached{background:#fff;border:2px solid #d1d5db;border-radius:8px;overflow:hidden}.nation-filter-section.detached .filter-section-header{background:#f9fafb;color:#111827;padding:12px 16px;border-bottom:1px solid #e5e7eb;-webkit-user-select:none;user-select:none}.nation-filter-section.detached .filter-section-header h3{color:#111827}.filter-drag-handle{cursor:move!important}.filter-drag-handle:active{cursor:grabbing!important}.detach-button{padding:8px 16px;background:#fff;border:1px solid #d1d5db;border-radius:6px;font-size:14px;cursor:pointer;transition:all .15s ease;color:#374151;font-weight:500;display:flex;align-items:center;gap:6px;outline:none}.detach-button:hover{background:#f9fafb;border-color:#9ca3af}.detach-button:focus{outline:none;box-shadow:none}.nation-filter-section.detached .detach-button{background:#fffffff2;color:#374151;border:1px solid rgba(255,255,255,.3)}.nation-filter-section.detached .detach-button:hover{background:#fff;border-color:#ffffff80}.resize-handle{position:absolute;bottom:0;right:0;width:20px;height:20px;background:linear-gradient(135deg,transparent 50%,#9ca3af 50%);cursor:nwse-resize;z-index:10}.resize-handle:hover{background:linear-gradient(135deg,transparent 50%,#6b7280 50%)}.nation-filter-section.detached .filters-section{background:#fff;border:none;border-radius:0;margin:0}.seasons-list-container{width:100%}.seasons-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px;margin-bottom:24px}.season-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:20px;transition:all .2s ease;cursor:default}.season-card:hover{border-color:#dc2626;box-shadow:0 4px 6px #0000000d;transform:translateY(-2px)}.season-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #f3f4f6}.season-code-year{display:flex;align-items:center;gap:10px}.season-code{background-color:#fef2f2;color:#dc2626;padding:6px 12px;border-radius:6px;font-size:13px;font-weight:600;font-family:Courier New,monospace;letter-spacing:.5px}.season-year{background-color:#f3f4f6;color:#374151;padding:6px 12px;border-radius:6px;font-size:13px;font-weight:600}.season-card-body{display:flex;flex-direction:column;gap:12px}.date-range{display:flex;align-items:center;gap:12px;padding:12px;background-color:#f9fafb;border-radius:6px}.date-item{display:flex;flex-direction:column;gap:4px;flex:1}.date-label{font-size:11px;color:#6b7280;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.date-value{font-size:14px;color:#111827;font-weight:600}.date-separator{color:#9ca3af;font-size:18px;font-weight:300}.season-duration{display:flex;align-items:center;gap:8px;padding:8px 12px;background-color:#eff6ff;border-radius:6px}.duration-icon{font-size:16px}.duration-text{color:#1e40af;font-size:14px;font-weight:600}@media(max-width:768px){.seasons-grid{grid-template-columns:1fr;gap:16px}.season-card{padding:16px}.date-range{flex-direction:column;gap:8px}.date-separator{transform:rotate(90deg)}.empty-state{padding:48px 16px}.empty-icon{font-size:48px}}@media(max-width:480px){.season-code,.season-year{font-size:12px;padding:4px 8px}.date-label{font-size:10px}.date-value{font-size:13px}.season-duration{font-size:13px;padding:6px 10px}}.season-form{padding:24px}.form-group input[type=date]{font-family:inherit;cursor:pointer}@media(max-width:640px){.modal-content{max-width:100%;max-height:100vh;border-radius:0}.modal-header{padding:16px 20px}.modal-header h2{font-size:18px}.season-form{padding:20px}.form-row{grid-template-columns:1fr;gap:12px}.form-actions{flex-direction:column;gap:12px}.actions-left,.actions-right{width:100%}.actions-right{flex-direction:column-reverse}.btn-submit,.btn-cancel,.btn-delete{width:100%}.delete-confirm{flex-direction:column;width:100%}.btn-delete-confirm{width:100%}}.seasons-container{display:flex;flex-direction:column;height:100vh;overflow:hidden;padding:32px}.seasons-header{flex-shrink:0;margin-bottom:24px;background:#fff;z-index:10}.seasons-header h1{color:#111827;margin:0;font-size:24px;font-weight:600;letter-spacing:-.025em}.seasons-content{flex:1;overflow:auto;margin-top:16px}@media(max-width:768px){.seasons-container{padding:16px}.seasons-header h1{font-size:20px}.header-top{flex-direction:column;gap:16px;align-items:flex-start}.btn-add{width:100%;justify-content:center}.search-box{max-width:100%}}.training-groups-list-container{width:100%}.groups-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;margin-bottom:24px}.group-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:20px;transition:all .2s ease;cursor:default}.group-card:hover{border-color:#dc2626;box-shadow:0 4px 6px #0000000d;transform:translateY(-2px)}.group-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.group-code{background-color:#fef2f2;color:#dc2626;padding:6px 12px;border-radius:6px;font-size:13px;font-weight:600;font-family:Courier New,monospace;letter-spacing:.5px}.group-card-body{display:flex;flex-direction:column;gap:12px}.group-name{margin:0;font-size:18px;font-weight:600;color:#111827;line-height:1.4}.group-order{display:flex;align-items:center;gap:8px;padding:8px 12px;background-color:#f9fafb;border-radius:6px;font-size:14px}.order-label{color:#6b7280;font-weight:500}.order-value{color:#111827;font-weight:600;font-size:16px}@media(max-width:768px){.groups-grid{grid-template-columns:1fr;gap:16px}.group-card{padding:16px}.group-name{font-size:16px}.empty-state{padding:48px 16px}.empty-icon{font-size:48px}}@media(max-width:480px){.group-code{font-size:12px;padding:4px 8px}.group-order{font-size:13px;padding:6px 10px}}.training-group-form{padding:24px}@media(max-width:640px){.modal-content{max-width:100%;max-height:100vh;border-radius:0}.modal-header{padding:16px 20px}.modal-header h2{font-size:18px}.training-group-form{padding:20px}.form-row{grid-template-columns:1fr;gap:12px}.form-actions{flex-direction:column;gap:12px}.actions-left,.actions-right{width:100%}.actions-right{flex-direction:column-reverse}.btn-submit,.btn-cancel,.btn-delete{width:100%}.delete-confirm{flex-direction:column;width:100%}.btn-delete-confirm{width:100%}}.training-groups-container{display:flex;flex-direction:column;height:100vh;overflow:hidden;padding:32px}.training-groups-header{flex-shrink:0;margin-bottom:24px;background:#fff;z-index:10}.training-groups-header h1{color:#111827;margin:0;font-size:24px;font-weight:600;letter-spacing:-.025em}.training-groups-content{flex:1;overflow:auto;margin-top:16px}@media(max-width:768px){.training-groups-container{padding:16px}.training-groups-header h1{font-size:20px}.header-top{flex-direction:column;gap:16px;align-items:flex-start}.btn-add{width:100%;justify-content:center}.search-box{max-width:100%}}.training-zones-list-container{width:100%}.zones-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;margin-bottom:24px}.zone-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:20px;transition:all .2s ease;cursor:default}.zone-card:hover{border-color:#dc2626;box-shadow:0 4px 6px #0000000d;transform:translateY(-2px)}.zone-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #f3f4f6}.zone-header-left{display:flex;align-items:center;gap:10px}.zone-color-badge{width:20px;height:20px;border-radius:4px;border:1px solid rgba(0,0,0,.1);flex-shrink:0}.zone-code{background-color:#fef2f2;color:#dc2626;padding:6px 12px;border-radius:6px;font-size:13px;font-weight:600;font-family:Courier New,monospace;letter-spacing:.5px}.zone-card-body{display:flex;flex-direction:column;gap:12px}.zone-name{margin:0;font-size:18px;font-weight:600;color:#111827;line-height:1.4}.zone-description{margin:0;font-size:14px;color:#6b7280;line-height:1.5}.heart-rate-range{display:flex;align-items:center;gap:12px;padding:12px;background:linear-gradient(135deg,#fef2f2,#fee2e2);border-radius:8px;border:1px solid #fecaca}.hr-icon{font-size:24px;animation:heartbeat 1.5s ease-in-out infinite}@keyframes heartbeat{0%,to{transform:scale(1)}10%{transform:scale(1.1)}20%{transform:scale(1)}}.hr-values{flex:1}.hr-range{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}.hr-label{font-size:12px;color:#6b7280;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.hr-value{font-size:20px;font-weight:700;color:#dc2626;font-family:Courier New,monospace}.hr-separator{font-size:18px;color:#9ca3af;font-weight:300}.hr-unit{font-size:12px;color:#6b7280;font-weight:500}.no-hr-data{padding:12px;background-color:#f9fafb;border-radius:6px;text-align:center}.no-hr-text{color:#9ca3af;font-size:13px;font-style:italic}@media(max-width:768px){.zones-grid{grid-template-columns:1fr;gap:16px}.zone-card{padding:16px}.zone-name{font-size:16px}.empty-state{padding:48px 16px}.empty-icon{font-size:48px}}@media(max-width:480px){.zone-code{font-size:12px;padding:4px 8px}.hr-value{font-size:18px}.heart-rate-range{padding:10px}}.modal-content{background:#fff;border-radius:8px;border:1px solid #e5e5e5;max-width:580px;width:100%;max-height:90vh;overflow-y:auto;position:relative}.training-zone-form{padding:24px}.form-section{margin-bottom:24px}.form-section-header{display:flex;align-items:center;gap:8px;margin:20px 0 12px;padding-bottom:8px;border-bottom:1px solid #e5e7eb}.section-icon{font-size:18px}.form-section-header h3{margin:0;font-size:15px;font-weight:600;color:#374151}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.form-group.full-width{grid-column:1 / -1}.form-group textarea{padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;transition:border-color .15s ease;background-color:#fff;color:#374151;resize:vertical;min-height:80px;font-family:inherit}.form-group textarea:focus{outline:none;border-color:#dc2626;box-shadow:0 0 0 1px #dc2626}.form-group textarea:disabled{background-color:#f9fafb;color:#6b7280;cursor:not-allowed}.color-picker-container{display:flex;gap:12px;align-items:center}.color-picker{width:60px;height:40px;border:1px solid #d1d5db;border-radius:6px;cursor:pointer;padding:2px}.color-picker:focus{outline:none;border-color:#dc2626;box-shadow:0 0 0 1px #dc2626}.color-text-input{flex:1;padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;font-family:Courier New,monospace;transition:border-color .15s ease;background-color:#fff;color:#374151}.color-text-input:focus{outline:none;border-color:#dc2626;box-shadow:0 0 0 1px #dc2626}.form-group input,.form-group select{padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;transition:border-color .15s ease;background-color:#fff;color:#374151}.form-group input[type=number]{font-family:Courier New,monospace}.form-group input:focus,.form-group select:focus{outline:none;border-color:#dc2626;box-shadow:0 0 0 1px #dc2626}.form-group input:disabled,.form-group select:disabled{background-color:#f9fafb;color:#6b7280;cursor:not-allowed}@media(max-width:640px){.modal-content{max-width:100%;max-height:100vh;border-radius:0}.modal-header{padding:16px 20px}.modal-header h2{font-size:18px}.training-zone-form{padding:20px}.form-row{grid-template-columns:1fr;gap:12px}.form-actions{flex-direction:column;gap:12px}.actions-left,.actions-right{width:100%}.actions-right{flex-direction:column-reverse}.btn-submit,.btn-cancel,.btn-delete{width:100%}.delete-confirm{flex-direction:column;width:100%}.btn-delete-confirm{width:100%}}.training-zones-container{display:flex;flex-direction:column;height:100vh;overflow:hidden;padding:32px}.training-zones-header{flex-shrink:0;margin-bottom:24px;background:#fff;z-index:10}.training-zones-header h1{color:#111827;margin:0;font-size:24px;font-weight:600;letter-spacing:-.025em}.training-zones-content{flex:1;overflow:auto;margin-top:16px}@media(max-width:768px){.training-zones-container{padding:16px}.training-zones-header h1{font-size:20px}.header-top{flex-direction:column;gap:16px;align-items:flex-start}.btn-add{width:100%;justify-content:center}.search-box{max-width:100%}}.age-groups-list-container{width:100%}.spinner{width:48px;height:48px;border:4px solid #f3f4f6;border-top-color:#007bff;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}.age-groups-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px;margin-bottom:24px}.age-group-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:20px;transition:all .2s ease;cursor:default}.age-group-card:hover{border-color:#dc2626;box-shadow:0 4px 6px #0000000d;transform:translateY(-2px)}.age-group-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #f3f4f6}.age-group-header-left{display:flex;align-items:center;gap:10px}.age-group-code{background-color:#fef2f2;color:#dc2626;padding:6px 12px;border-radius:6px;font-size:13px;font-weight:600;font-family:Courier New,monospace;letter-spacing:.5px}.age-group-favorite{font-size:1.2rem;line-height:1}.age-group-card-body{display:flex;flex-direction:column;gap:12px}.age-group-name{font-size:16px;font-weight:600;color:#374151;margin:0 0 8px}.age-group-ranges{display:flex;flex-direction:column;gap:.75rem}.age-range-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;border-radius:6px;background-color:#f8f9fa}.male-range{background:linear-gradient(135deg,#e3f2fd,#bbdefb)}.female-range{background:linear-gradient(135deg,#fce4ec,#f8bbd0)}.range-label{display:flex;align-items:center;gap:.5rem;font-size:.9rem;font-weight:600;color:#333}.gender-icon{font-size:1.1rem;line-height:1}.range-value{font-size:1rem;font-weight:700;color:#1a1a1a;font-family:Courier New,monospace;letter-spacing:.5px}@media(max-width:1200px){.age-groups-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}}@media(max-width:768px){.age-groups-grid{grid-template-columns:1fr;gap:1rem}.age-group-card{padding:1.25rem}.empty-state{padding:48px 16px}.empty-icon{font-size:48px}}@media(max-width:480px){.age-group-card{padding:1rem}.age-group-code{font-size:1.1rem}.age-range-item{padding:.5rem}.range-label{font-size:.85rem}.range-value{font-size:.9rem}}.modal-content{background:#fff;border-radius:12px;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 4px 20px #00000026}.age-group-form-modal{max-width:650px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:2px solid #f0f0f0;position:sticky;top:0;background:#fff;z-index:1}.modal-header h2{margin:0;color:#1a1a1a;font-size:1.5rem}.modal-content form{padding:1.5rem}.form-section{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid #e0e0e0}.section-title{font-size:1.1rem;font-weight:600;color:#333;margin:0 0 1rem;display:flex;align-items:center;gap:.5rem}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;color:#333;font-weight:500;font-size:.95rem}.form-group input[type=text],.form-group input[type=number]{width:100%;padding:.75rem;border:2px solid #e0e0e0;border-radius:6px;font-size:1rem;transition:all .2s ease}.form-hint{display:block;margin-top:.25rem;color:#666;font-size:.85rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.modal-actions{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding-top:1.5rem;margin-top:1.5rem;border-top:2px solid #f0f0f0}.modal-actions-right{display:flex;gap:.75rem}.btn-delete{padding:.75rem 1.5rem;background-color:#dc3545;color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-cancel{padding:.75rem 1.5rem;background-color:#6c757d;color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-submit{padding:.75rem 1.5rem;background:linear-gradient(135deg,#007bff,#0056b3);color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease}@media(max-width:768px){.modal-content{max-width:100%;max-height:100vh;border-radius:0}.age-group-form-modal{max-width:100%}.modal-header{padding:1rem}.modal-header h2{font-size:1.25rem}.modal-content form{padding:1rem}.form-row{grid-template-columns:1fr}.modal-actions{flex-direction:column;align-items:stretch}.modal-actions-right,.btn-delete,.btn-cancel,.btn-submit{width:100%}}.age-groups-container{display:flex;flex-direction:column;height:100vh;overflow:hidden;padding:32px}.age-groups-header{flex-shrink:0;margin-bottom:24px;background:#fff;z-index:10}.age-groups-header h1{color:#111827;margin:0;font-size:24px;font-weight:600;letter-spacing:-.025em}.age-groups-content{flex:1;overflow:auto;margin-top:16px}@media(max-width:768px){.age-groups-container{padding:16px}.age-groups-header h1{font-size:20px}.header-top{flex-direction:column;gap:16px;align-items:flex-start}.btn-add{width:100%;justify-content:center}.search-box{max-width:100%}}.strokes-list-container{width:100%}.strokes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;margin-bottom:24px}.stroke-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:20px;transition:all .2s ease;cursor:default}.stroke-card:hover{border-color:#dc2626;box-shadow:0 4px 6px #0000000d;transform:translateY(-2px)}.stroke-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.stroke-code{background-color:#fef2f2;color:#dc2626;padding:6px 12px;border-radius:6px;font-size:13px;font-weight:600;font-family:Courier New,monospace;letter-spacing:.5px}.stroke-card-body{display:flex;flex-direction:column;gap:12px}.stroke-name{margin:0;font-size:18px;font-weight:600;color:#111827;line-height:1.4}@media(max-width:768px){.strokes-grid{grid-template-columns:1fr;gap:16px}.stroke-card{padding:16px}.stroke-name{font-size:16px}.empty-state{padding:48px 16px}.empty-icon{font-size:48px}}@media(max-width:480px){.stroke-code{font-size:12px;padding:4px 8px}}.stroke-form{padding:24px}@media(max-width:640px){.modal-content{max-width:100%;max-height:100vh;border-radius:0}.modal-header{padding:16px 20px}.modal-header h2{font-size:18px}.stroke-form{padding:20px}.form-actions{flex-direction:column;gap:12px}.actions-left,.actions-right{width:100%}.actions-right{flex-direction:column-reverse}.btn-submit,.btn-cancel,.btn-delete{width:100%}.delete-confirm{flex-direction:column;width:100%}.btn-delete-confirm{width:100%}}.strokes-container{display:flex;flex-direction:column;height:100vh;overflow:hidden;padding:32px}.strokes-header{flex-shrink:0;margin-bottom:24px;background:#fff;z-index:10}.strokes-header h1{color:#111827;margin:0;font-size:24px;font-weight:600;letter-spacing:-.025em}.strokes-content{flex:1;overflow:auto;margin-top:16px}@media(max-width:768px){.strokes-container{padding:16px}.strokes-header h1{font-size:20px}.header-top{flex-direction:column;gap:16px;align-items:flex-start}.btn-add{width:100%;justify-content:center}.search-box{max-width:100%}}.equipments-list-container{width:100%}.equipments-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;margin-bottom:24px}.equipment-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:20px;transition:all .2s ease;cursor:default}.equipment-card:hover{border-color:#dc2626;box-shadow:0 4px 6px #0000000d;transform:translateY(-2px)}.equipment-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.equipment-code{background-color:#fef2f2;color:#dc2626;padding:6px 12px;border-radius:6px;font-size:13px;font-weight:600;font-family:Courier New,monospace;letter-spacing:.5px}.equipment-card-body{display:flex;flex-direction:column;gap:12px}.equipment-name{margin:0;font-size:18px;font-weight:600;color:#111827;line-height:1.4}@media(max-width:768px){.equipments-grid{grid-template-columns:1fr;gap:16px}.equipment-card{padding:16px}.equipment-name{font-size:16px}.empty-state{padding:48px 16px}.empty-icon{font-size:48px}}@media(max-width:480px){.equipment-code{font-size:12px;padding:4px 8px}}.equipment-form{padding:24px}@media(max-width:640px){.modal-content{max-width:100%;max-height:100vh;border-radius:0}.modal-header{padding:16px 20px}.modal-header h2{font-size:18px}.equipment-form{padding:20px}.form-actions{flex-direction:column;gap:12px}.actions-left,.actions-right{width:100%}.actions-right{flex-direction:column-reverse}.btn-submit,.btn-cancel,.btn-delete{width:100%}.delete-confirm{flex-direction:column;width:100%}.btn-delete-confirm{width:100%}}.equipments-container{display:flex;flex-direction:column;height:100vh;overflow:hidden;padding:32px}.equipments-header{flex-shrink:0;margin-bottom:24px;background:#fff;z-index:10}.equipments-header h1{color:#111827;margin:0;font-size:24px;font-weight:600;letter-spacing:-.025em}.equipments-content{flex:1;overflow:auto;margin-top:16px}@media(max-width:768px){.equipments-container{padding:16px}.equipments-header h1{font-size:20px}.header-top{flex-direction:column;gap:16px;align-items:flex-start}.btn-add{width:100%;justify-content:center}.search-box{max-width:100%}}.task-types-list-container{width:100%}.loading-state,.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 24px;text-align:center;color:#6b7280}.spinner{width:48px;height:48px;border:4px solid #f3f4f6;border-top-color:#dc2626;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}.loading-state p,.empty-state p{margin:8px 0 0;font-size:14px}.empty-icon{font-size:64px;margin-bottom:16px;opacity:.5}.empty-state h3{margin:0 0 8px;font-size:18px;font-weight:600;color:#374151}.task-types-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;margin-bottom:24px}.task-type-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:20px;transition:all .2s ease;cursor:default}.task-type-card:hover{border-color:#dc2626;box-shadow:0 4px 6px #0000000d;transform:translateY(-2px)}.task-type-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.task-type-code{background-color:#fef2f2;color:#dc2626;padding:6px 12px;border-radius:6px;font-size:13px;font-weight:600;font-family:Courier New,monospace;letter-spacing:.5px}.btn-edit{background:none;border:none;font-size:18px;cursor:pointer;padding:6px;border-radius:4px;transition:all .2s ease;opacity:.6}.btn-edit:hover{opacity:1;background-color:#f3f4f6;transform:scale(1.1)}.task-type-card-body{display:flex;flex-direction:column;gap:12px}.task-type-name{margin:0;font-size:18px;font-weight:600;color:#111827;line-height:1.4}.no-name{margin:0;font-size:14px;color:#9ca3af;font-style:italic}.list-summary{padding:16px;text-align:center;color:#6b7280;font-size:14px;border-top:1px solid #e5e7eb}.list-summary p{margin:0}@media(max-width:768px){.task-types-grid{grid-template-columns:1fr;gap:16px}.task-type-card{padding:16px}.task-type-name{font-size:16px}.empty-state{padding:48px 16px}.empty-icon{font-size:48px}}@media(max-width:480px){.task-type-code{font-size:12px;padding:4px 8px}}.modal-overlay{position:fixed;inset:0;background-color:#0006;display:flex;justify-content:center;align-items:center;z-index:1000;padding:20px;overflow:hidden}.modal-content{background:#fff;border-radius:8px;border:1px solid #e5e5e5;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;position:relative}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e5e5e5}.modal-header h2{margin:0;color:#111827;font-size:20px;font-weight:600;letter-spacing:-.025em}.close-button{background:none;border:none;font-size:28px;cursor:pointer;color:#6b7280;padding:4px;border-radius:4px;transition:all .15s ease;line-height:1}.close-button:hover:not(:disabled){background-color:#f3f4f6;color:#374151}.close-button:disabled{opacity:.5;cursor:not-allowed}.task-type-form{padding:24px}.error-banner{background-color:#fef2f2;border:1px solid #fecaca;border-radius:6px;padding:12px 16px;margin-bottom:20px;display:flex;align-items:center;gap:10px}.error-icon{font-size:18px}.error-banner span:not(.error-icon){color:#dc2626;font-size:14px;flex:1}.form-section{margin-bottom:24px;display:flex;flex-direction:column;gap:16px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-weight:500;color:#374151;font-size:14px}.form-group label.required:after{content:" *";color:#dc2626}.form-group input{padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;transition:border-color .15s ease;background-color:#fff;color:#374151}.form-group input:focus{outline:none;border-color:#dc2626;box-shadow:0 0 0 1px #dc2626}.form-group input:disabled{background-color:#f9fafb;color:#6b7280;cursor:not-allowed}.form-group input.error{border-color:#dc2626}.field-hint{font-size:12px;color:#6b7280}.field-error{font-size:12px;color:#dc2626;font-weight:500}.form-actions{display:flex;justify-content:space-between;align-items:center;padding-top:20px;border-top:1px solid #e5e5e5}.actions-left,.actions-right{display:flex;gap:12px;align-items:center}.delete-confirm{display:flex;align-items:center;gap:8px;padding:8px 12px;background-color:#fef2f2;border-radius:6px}.delete-confirm-text{font-size:14px;color:#374151;font-weight:500}.btn-submit,.btn-cancel,.btn-delete,.btn-delete-confirm{padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-submit{background-color:#dc2626;color:#fff}.btn-submit:hover:not(:disabled){background-color:#b91c1c;transform:translateY(-1px);box-shadow:0 2px 4px #dc262633}.btn-submit:disabled{background-color:#fca5a5;cursor:not-allowed;transform:none}.btn-cancel{background-color:#f3f4f6;color:#374151}.btn-cancel:hover:not(:disabled){background-color:#e5e7eb}.btn-cancel:disabled{opacity:.5;cursor:not-allowed}.btn-delete{background-color:#ef4444;color:#fff}.btn-delete:hover:not(:disabled){background-color:#dc2626;transform:translateY(-1px);box-shadow:0 2px 4px #ef444433}.btn-delete:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-delete-confirm{background-color:#dc2626;color:#fff;padding:6px 12px;font-size:13px}.btn-delete-confirm:hover:not(:disabled){background-color:#b91c1c}.btn-delete-confirm:disabled{opacity:.5;cursor:not-allowed}@media(max-width:640px){.modal-content{max-width:100%;max-height:100vh;border-radius:0}.modal-header{padding:16px 20px}.modal-header h2{font-size:18px}.task-type-form{padding:20px}.form-actions{flex-direction:column;gap:12px}.actions-left,.actions-right{width:100%}.actions-right{flex-direction:column-reverse}.btn-submit,.btn-cancel,.btn-delete{width:100%}.delete-confirm{flex-direction:column;width:100%}.btn-delete-confirm{width:100%}}.task-types-container{display:flex;flex-direction:column;height:100vh;overflow:hidden;padding:32px}.task-types-header{flex-shrink:0;margin-bottom:24px;background:#fff;z-index:10}.task-types-header h1{color:#111827;margin:0;font-size:24px;font-weight:600;letter-spacing:-.025em}.search-container{margin-top:20px;display:flex;gap:12px;align-items:center}.task-types-content{flex:1;overflow:auto;margin-top:16px}@media(max-width:768px){.task-types-container{padding:16px}.task-types-header h1{font-size:20px}.header-top{flex-direction:column;gap:16px;align-items:flex-start}.btn-add{width:100%;justify-content:center}.search-box{max-width:100%}}.swimrankings-page{display:flex;flex-direction:column;height:100vh;overflow:hidden}.swimrankings-container{display:flex;flex-direction:column;height:100vh;overflow:hidden;padding:32px;background:#fff}.swimrankings-header{flex-shrink:0;margin-bottom:24px;background:#fff;z-index:10;display:flex;justify-content:space-between;align-items:center;padding:0 0 16px;border-bottom:1px solid #e5e5e5}.swimrankings-container h1{color:#111827;margin:0;font-size:20px;font-weight:600;letter-spacing:-.025em}.btn-refresh{display:flex;align-items:center;gap:8px;padding:10px 20px;background-color:#007bff;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-refresh:hover{background-color:#0056b3;transform:translateY(-1px);box-shadow:0 4px 6px #007bff33}.btn-refresh:disabled{background-color:#ccc;cursor:not-allowed;transform:none;box-shadow:none}.view-mode-tabs{display:flex;gap:8px;margin-bottom:20px;border-bottom:2px solid #e5e7eb;flex-shrink:0}.view-mode-tab{padding:12px 24px;background:none;border:none;border-bottom:3px solid transparent;cursor:pointer;font-size:14px;font-weight:500;color:#6b7280;transition:all .2s;margin-bottom:-2px}.view-mode-tab:hover{color:#111827;background:#f9fafb}.view-mode-tab.active{color:#059669;border-bottom-color:#059669;font-weight:600}.view-mode-tab:active{background:#f3f4f6}.description{color:#6b7280;font-size:14px;margin:8px 0;flex-shrink:0}.loading-state,.error-state,.empty-state{text-align:center;padding:2rem;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}.spinner{width:50px;height:50px;border:4px solid #f3f3f3;border-top:4px solid #007bff;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 1rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-state{color:#dc3545}.error-state button{margin-top:1rem;padding:10px 20px;background-color:#dc2626;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.error-state button:hover{background-color:#b91c1c;transform:translateY(-1px);box-shadow:0 4px 6px #dc262633}.meetings-list{flex:1;overflow-y:auto;margin-top:8px}.data-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px;flex:1;overflow:hidden;margin-top:4px;min-height:0}.selection-bar{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#f9fafb;border:1px solid #e5e5e7;border-radius:6px;margin-bottom:8px;flex-shrink:0}.selected-info{font-size:13px;color:#374151}.selected-info strong{color:#111827;margin:0 4px}.btn-fetch-meets{padding:6px 16px;background-color:#10b981;color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-fetch-meets:hover:not(:disabled){background-color:#059669;transform:translateY(-1px);box-shadow:0 4px 6px #10b98133}.btn-fetch-meets:disabled{background-color:#ccc;cursor:not-allowed;transform:none}.data-column{display:flex;flex-direction:column;overflow:hidden;border:1px solid #e5e5e7;border-radius:6px;background:#fff;padding:12px}.data-column h2{font-size:16px;font-weight:600;margin:0 0 8px;color:#111827;flex-shrink:0}.search-input{width:100%;padding:8px 12px;margin-bottom:8px;border:1px solid #e5e5e5;border-radius:6px;font-size:14px;box-sizing:border-box;transition:all .2s ease;flex-shrink:0}.search-input:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 3px #007bff1a}.data-list{flex:1;overflow-y:auto}.data-item{padding:4px 8px;font-size:13px;color:#374151;border-bottom:1px solid #f3f4f6;cursor:pointer;transition:background-color .15s ease}.data-item:last-child{border-bottom:none}.data-item:hover{background-color:#f9fafb}.data-item.selected{background-color:#dbeafe;color:#1e40af;font-weight:500}.meets-section{margin-top:12px;border:1px solid #e5e5e7;border-radius:6px;background:#fff;padding:0;flex-shrink:0;overflow:hidden;position:relative}.resize-handle{position:absolute;top:0;left:0;right:0;width:100%;height:8px;cursor:ns-resize;background:linear-gradient(to bottom,#3b82f64d,#3b82f61a);z-index:10;transition:background-color .2s ease;border-radius:6px 6px 0 0}.resize-handle:hover{background:linear-gradient(to bottom,#3b82f680,#3b82f633)}.resize-handle:active{background:linear-gradient(to bottom,#3b82f6b3,#3b82f64d)}.meets-header{display:flex;justify-content:space-between;align-items:center;padding:12px 12px 0;margin-bottom:12px}.meets-section h2{font-size:16px;font-weight:600;margin:0;color:#111827}.batch-download-controls{display:flex;align-items:center;gap:8px}.download-progress{font-size:12px;color:#6b7280;font-weight:500}.btn-batch-download{display:flex;align-items:center;gap:6px;padding:6px 12px;background-color:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap}.btn-batch-download:hover:not(:disabled){background-color:#2563eb;transform:translateY(-1px);box-shadow:0 4px 6px #3b82f64d}.btn-batch-download:disabled{background-color:#d1d5db;cursor:not-allowed;transform:none}.btn-batch-download.stop{background-color:#ef4444}.btn-batch-download.stop:hover{background-color:#dc2626;box-shadow:0 4px 6px #ef44444d}.meets-list{display:flex;flex-direction:column;gap:4px;padding:0 12px 12px;overflow-y:auto;max-height:calc(100% - 40px)}.meet-item{display:grid;grid-template-columns:20px 150px 70px 1fr 180px 60px 140px;align-items:center;gap:12px;padding:6px 12px;border:1px solid #e5e5e7;border-radius:4px;background:#fafafa;transition:all .2s ease;font-size:12px}.meet-item:hover{background:#f3f4f6;border-color:#d1d5db}.quality-indicator{width:10px;height:10px;border-radius:50%;flex-shrink:0}.quality-indicator.green{background-color:#10b981;box-shadow:0 0 0 2px #10b98133}.quality-indicator.yellow{background-color:#eab308;box-shadow:0 0 0 2px #eab30833}.quality-indicator.orange{background-color:#f97316;box-shadow:0 0 0 2px #f9731633}.quality-indicator.grey{background-color:#9ca3af;box-shadow:0 0 0 2px #9ca3af33}.quality-indicator.red{background-color:#ef4444;box-shadow:0 0 0 2px #ef444433}.meet-col{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.meet-col-quality{display:flex;align-items:center;justify-content:center}.meet-col-date{font-weight:600;color:#6b7280}.meet-col-id{font-weight:600;color:#6b7280;background-color:#f3f4f6;padding:2px 6px;border-radius:3px;text-align:center}.meet-col-name{font-weight:500;color:#111827;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.file-size{font-size:10px;color:#6b7280;font-weight:500;background-color:#f3f4f6;padding:2px 6px;border-radius:3px;white-space:nowrap}.meet-col-location{color:#6b7280}.meet-col-course{background-color:#e5e7eb;color:#374151;padding:2px 6px;border-radius:3px;text-align:center;font-weight:500}.meet-col-actions{display:flex;gap:6px;justify-content:flex-end}.status-badge{font-size:10px;font-weight:600;padding:2px 6px;border-radius:3px;white-space:nowrap;flex-shrink:0}.status-badge.downloaded{background-color:#dbeafe;color:#1e40af}.status-badge.imported{background-color:#d1fae5;color:#065f46}.meet-import{padding:4px 10px;background-color:#f59e0b;color:#fff;text-decoration:none;border:none;border-radius:3px;font-size:11px;font-weight:600;white-space:nowrap;transition:background-color .2s ease;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.meet-import:hover{background-color:#d97706}.meet-date{font-size:12px;font-weight:600;color:#6b7280;min-width:70px}.meet-details{flex:1;min-width:0}.meet-name{font-size:13px;font-weight:500;color:#111827;display:flex;align-items:center;gap:8px}.meet-id{font-size:11px;font-weight:600;color:#6b7280;background-color:#f3f4f6;padding:2px 6px;border-radius:3px;flex-shrink:0}.meet-location{font-size:12px;color:#6b7280}.meet-info{display:flex;gap:8px;align-items:center;margin-top:4px;font-size:11px}.meet-course{padding:2px 6px;background-color:#e5e7eb;color:#374151;border-radius:3px;font-weight:500;font-size:11px}.meet-download{padding:4px 8px;background-color:#10b981;color:#fff;text-decoration:none;border:none;border-radius:3px;font-size:14px;font-weight:600;white-space:nowrap;transition:background-color .2s ease;display:inline-flex;align-items:center;justify-content:center;min-width:24px;cursor:pointer}.meet-download:hover{background-color:#059669}.meet-link{padding:4px 8px;background-color:#3b82f6;color:#fff;text-decoration:none;border-radius:3px;font-size:14px;font-weight:600;white-space:nowrap;transition:background-color .2s ease;display:inline-flex;align-items:center;justify-content:center;min-width:24px}.meet-link:hover{background-color:#2563eb}.meet-view-details{padding:6px 12px;background-color:#3b82f6;color:#fff;text-decoration:none;border-radius:4px;font-size:13px;font-weight:500;white-space:nowrap;transition:all .2s ease;display:inline-flex;align-items:center;gap:4px;margin-right:6px}.meet-view-details:hover{background-color:#2563eb;transform:translateY(-1px);box-shadow:0 2px 4px #3b82f633}.import-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.confirm-dialog{background:#fff;border-radius:12px;box-shadow:0 20px 25px #00000026;width:90%;max-width:500px;display:flex;flex-direction:column;animation:slideIn .2s ease-out}@keyframes slideIn{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.confirm-header{padding:24px 24px 16px;border-bottom:1px solid #e5e7eb}.confirm-header h3{margin:0;font-size:20px;font-weight:600;color:#111827}.confirm-body{padding:32px 24px;text-align:center}.confirm-icon{font-size:48px;margin-bottom:16px}.confirm-body h4{margin:0 0 16px;font-size:18px;font-weight:600;color:#111827}.confirm-meet-name{margin:0 0 20px;font-size:16px;font-weight:500;color:#059669;padding:12px;background:#f0fdf4;border-radius:6px}.confirm-message{margin:0;font-size:14px;color:#6b7280;line-height:1.5}.confirm-actions{padding:16px 24px 24px;display:flex;justify-content:flex-end;gap:12px;border-top:1px solid #f3f4f6}.btn-cancel{padding:10px 24px;background-color:#f3f4f6;color:#374151;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-cancel:hover{background-color:#e5e7eb}.btn-confirm{padding:10px 24px;background-color:#059669;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-confirm:hover{background-color:#047857;transform:translateY(-1px);box-shadow:0 4px 6px #05966933}.import-dialog{background:#fff;border-radius:8px;box-shadow:0 10px 25px #0003;width:90%;max-width:700px;max-height:85vh;display:flex;flex-direction:column}.import-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e5e7eb}.import-header h3{margin:0;font-size:20px;font-weight:600;color:#111827}.import-header .close-button{background:none;border:none;font-size:24px;color:#6b7280;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.import-header .close-button:hover{background-color:#f3f4f6;color:#111827}.import-body{padding:20px 24px;overflow-y:auto;flex:1}.import-meet-info{margin-bottom:16px;padding:12px;background-color:#f0f9ff;border:1px solid #bae6fd;border-radius:6px}.import-meet-info p{margin:4px 0;font-size:14px;color:#374151}.import-result-info{margin-bottom:16px;padding:12px;background-color:#f0fdf4;border:1px solid #bbf7d0;border-radius:6px}.import-result-info p{margin:4px 0;font-size:14px;color:#374151}.import-duplicate-message{margin:20px 0;padding:24px;background-color:#fef3c7;border:2px solid #fbbf24;border-radius:8px;text-align:center}.duplicate-icon{font-size:48px;margin-bottom:12px}.import-duplicate-message h4{margin:0 0 12px;font-size:18px;font-weight:600;color:#78350f}.import-duplicate-message p{margin:0;font-size:14px;color:#92400e;line-height:1.5}.import-steps{margin-bottom:16px}.import-steps h4{margin:0 0 12px;font-size:16px;font-weight:600;color:#374151}.import-step-zero{margin-bottom:16px;padding:20px;background-color:#fef3c7;border:1px solid #fbbf24;border-radius:6px}.spinner-container{display:flex;flex-direction:column;align-items:center;gap:12px}.spinner{width:40px;height:40px;border:4px solid rgba(251,191,36,.3);border-radius:50%;border-top-color:#f59e0b;animation:spin 1s ease-in-out infinite}.spinner-container p{margin:0;font-size:14px;font-weight:500;color:#78350f;text-align:center}.steps-list{display:flex;flex-direction:column;gap:8px}.import-step{padding:10px 12px;border:1px solid #e5e7eb;border-radius:6px;background-color:#fafafa}.import-step.pending{opacity:.6}.import-step.processing{background-color:#fef3c7;border-color:#fbbf24}.import-step.success{background-color:#d1fae5;border-color:#10b981}.import-step.error{background-color:#fee2e2;border-color:#ef4444}.step-header{display:flex;align-items:center;gap:8px}.step-number{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;background-color:#e5e7eb;color:#374151;border-radius:50%;font-size:12px;font-weight:600;flex-shrink:0}.import-step.processing .step-number{background-color:#fbbf24;color:#78350f}.import-step.success .step-number{background-color:#10b981;color:#fff}.import-step.error .step-number{background-color:#ef4444;color:#fff}.step-title{flex:1;font-size:13px;font-weight:500;color:#111827}.step-status{font-size:16px;flex-shrink:0}.step-message{margin-top:6px;padding-left:32px;font-size:12px;color:#6b7280}.step-records{margin-top:4px;padding-left:32px;font-size:11px;color:#10b981;font-weight:500}.import-progress{text-align:center;padding:12px;background-color:#fef3c7;border:1px solid #fbbf24;border-radius:6px;margin-bottom:16px}.import-progress p{margin:0;font-size:14px;font-weight:500;color:#92400e}.import-complete{text-align:center;padding:12px;background-color:#d1fae5;border:1px solid #10b981;border-radius:6px;margin-bottom:16px}.import-complete p{margin:0;font-size:14px;font-weight:500;color:#065f46}.import-error{text-align:center;padding:12px;background-color:#fee2e2;border:1px solid #ef4444;border-radius:6px;margin-bottom:16px}.import-error p{margin:0;font-size:14px;font-weight:500;color:#991b1b}.import-actions{padding:16px 24px;border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end;gap:12px}.btn-view-meeting{padding:8px 20px;background-color:#059669;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;text-decoration:none;display:inline-flex;align-items:center;gap:6px}.btn-view-meeting:hover{background-color:#047857;transform:translateY(-1px);box-shadow:0 2px 4px #05966933}.btn-close-import{padding:8px 20px;background-color:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-close-import:hover:not(:disabled){background-color:#2563eb}.btn-close-import:disabled{background-color:#d1d5db;cursor:not-allowed}.import-status-content{padding:20px;flex:1;display:flex;flex-direction:column;overflow:hidden}.batch-import-controls{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-bottom:16px;padding:12px 16px;background:#f9fafb;border-radius:8px;border:1px solid #e5e7eb}.batch-import-controls .import-progress-text{font-size:14px;font-weight:500;color:#059669;margin-right:auto}.btn-batch-import{display:flex;align-items:center;gap:8px;padding:10px 20px;background-color:#059669;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap}.btn-batch-import:hover:not(:disabled){background-color:#047857;transform:translateY(-1px);box-shadow:0 4px 6px #0596694d}.btn-batch-import:disabled{background-color:#d1d5db;cursor:not-allowed;transform:none;box-shadow:none}.btn-manual-import{display:flex;align-items:center;gap:8px;padding:10px 20px;background-color:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap}.btn-manual-import:hover:not(:disabled){background-color:#2563eb;transform:translateY(-1px);box-shadow:0 4px 6px #3b82f64d}.btn-manual-import:disabled{background-color:#d1d5db;cursor:not-allowed;transform:none;box-shadow:none}.btn-batch-import.stop{background-color:#ef4444}.btn-batch-import.stop:hover{background-color:#dc2626;box-shadow:0 4px 6px #ef44444d}.import-status-filters{background:#fff;padding:20px;border-radius:8px;border:1px solid #e5e7eb;margin-bottom:20px}.import-status-filters h3{margin:0 0 16px;font-size:16px;font-weight:600;color:#111827}.filter-row{display:grid;grid-template-columns:1fr 1fr 200px auto;gap:16px;align-items:end}.filter-group{display:flex;flex-direction:column;gap:6px}.filter-group label{font-size:13px;font-weight:500;color:#374151}.filter-input,.filter-select{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;transition:all .2s}.filter-input:focus,.filter-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.btn-apply-filters{padding:8px 20px;background-color:#10b981;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-apply-filters:hover{background-color:#059669;transform:translateY(-1px);box-shadow:0 4px 6px #10b98133}.import-status-table{background:#fff;border-radius:8px;border:1px solid #e5e7eb;flex:1;overflow:auto;display:flex;flex-direction:column}.import-status-table table{width:100%;border-collapse:collapse}.import-status-table thead{position:sticky;top:0;z-index:10;background-color:#f9fafb;border-bottom:2px solid #e5e7eb}.import-status-table th{padding:12px 16px;text-align:left;font-size:13px;font-weight:600;color:#374151;white-space:nowrap}.import-status-table td{padding:12px 16px;font-size:14px;color:#111827;border-bottom:1px solid #f3f4f6}.import-status-table tbody tr:hover{background-color:#f9fafb}.import-status-table tbody tr:last-child td{border-bottom:none}.status-badge.not-downloaded{background-color:#fee2e2;color:#991b1b}.status-badge.not-imported{background-color:#fef3c7;color:#92400e}.btn-import-action{padding:6px 16px;background-color:#f59e0b;color:#fff;border:none;border-radius:4px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.btn-import-action:hover{background-color:#d97706;transform:translateY(-1px)}.btn-view-details{padding:6px 16px;background-color:#3b82f6;color:#fff;border:none;border-radius:4px;font-size:13px;font-weight:500;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:4px}.btn-view-details:hover{color:#fff;text-decoration:none}.import-status-pagination{background-color:#fafafa;border-top:1px solid #e5e5e5;padding:12px 16px}.import-status-pagination.pagination-top{border-top:none;border-bottom:1px solid #e5e5e5;margin-bottom:16px}.import-status-pagination.pagination-bottom{border-bottom:none;border-top:1px solid #e5e5e5;margin-top:0}.pagination-section{display:flex;align-items:center;gap:16px;width:100%}.pagination-left{flex:1;display:flex;align-items:center;gap:12px;justify-content:flex-start}.pagination-right{flex:1;display:flex;align-items:center;justify-content:flex-end;gap:8px}.pagination-info-inline{display:flex;align-items:center;color:#6b7280;font-size:13px;font-weight:500;white-space:nowrap}.records-per-page{display:flex;align-items:center;gap:6px}.records-per-page label{font-size:13px;color:#6b7280;white-space:nowrap}.records-select{padding:4px 8px;border:1px solid #d1d5db;border-radius:4px;font-size:13px;outline:none;cursor:pointer;background-color:#fff;color:#374151;min-width:60px}.records-select:focus{border-color:#059669;box-shadow:0 0 0 1px #059669}.pagination-button{padding:6px 10px;border:1px solid #d1d5db;border-radius:4px;background-color:#fff;color:#374151;font-size:13px;cursor:pointer;transition:background-color .15s ease}.pagination-button:hover:not(:disabled){background-color:#059669;color:#fff}.pagination-button:disabled{background-color:#f9fafb;color:#9ca3af;cursor:not-allowed;border-color:#e5e7eb}.page-info{font-size:13px;color:#6b7280;font-weight:500;white-space:nowrap;min-width:80px;text-align:center}.pagination-controls{display:flex;align-items:center;gap:12px}.loading-message,.no-results{text-align:center;padding:40px 20px;font-size:14px;color:#6b7280}@media(max-width:768px){.pagination-section{flex-direction:column;gap:12px;align-items:stretch}.pagination-left,.pagination-right{flex:none;width:100%;justify-content:center!important}.pagination-info-inline{text-align:center;justify-content:center}.records-per-page{justify-content:center}}.polar-flow-page{padding:20px}.polar-flow-page .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.polar-flow-page .page-header h1{margin:0;font-size:24px;color:#1a1a2e}.polar-flow-content{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:40px}.polar-flow-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:60px 20px}.placeholder-icon{font-size:64px;margin-bottom:20px}.polar-flow-placeholder h2{margin:0 0 12px;font-size:24px;color:#333}.polar-flow-placeholder p{margin:0;color:#666;font-size:16px;max-width:500px;line-height:1.5}.oauth2-authorization-page{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.oauth2-container{background:#fff;border-radius:12px;box-shadow:0 10px 40px #0000001a;padding:40px;max-width:500px;width:100%;text-align:center}.oauth2-content{display:flex;flex-direction:column;align-items:center;gap:20px}.oauth2-spinner{width:60px;height:60px;border:4px solid rgba(102,126,234,.2);border-top-color:#667eea;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.oauth2-error-icon{font-size:60px;color:#e74c3c}.oauth2-success-icon{font-size:60px;color:#2ecc71;width:80px;height:80px;background:#d4edda;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700}.oauth2-content h2{margin:0;color:#333;font-size:24px;font-weight:600}.oauth2-content p{margin:0;color:#666;font-size:16px;line-height:1.5}.error-code{color:#c0392b;font-size:14px;margin-bottom:5px}.error-message{color:#e74c3c;background:#fee;padding:12px;border-radius:6px;border:1px solid #fcc}.btn-back{background:#667eea;color:#fff;border:none;padding:12px 24px;border-radius:6px;font-size:16px;cursor:pointer;transition:background .3s ease;margin-top:10px}.btn-back:hover{background:#5568d3}.btn-back:active{transform:scale(.98)}.users-table-wrapper{overflow:auto;flex:1;background:#fff}.users-table{width:100%;border-collapse:collapse;font-size:14px}.users-table thead{position:sticky;top:0;background:#f9fafb;z-index:10}.users-table th{padding:12px 16px;text-align:left;font-weight:600;color:#374151;border-bottom:2px solid #e5e7eb;white-space:nowrap}.users-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.users-table th.sortable:hover{background:#f3f4f6}.users-table th .sort-indicator{display:inline-block;margin-left:4px;color:#9ca3af}.users-table th.sorted .sort-indicator{color:#dc2626}.users-table th.actions-column{text-align:center;width:100px}.users-table tbody tr{border-bottom:1px solid #e5e7eb;transition:background-color .15s ease}.users-table tbody tr:hover{background:#f9fafb}.users-table td{padding:12px 16px;color:#111827}.users-table td.actions-cell{text-align:center}.user-username-badge{display:inline-block;padding:4px 10px;background:#fef2f2;color:#dc2626;border-radius:6px;font-size:13px;font-weight:600;font-family:Courier New,monospace}.status-badges{display:flex;gap:6px;flex-wrap:wrap}.status-badge{display:inline-block;padding:3px 8px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase}.status-badge.active{background:#d1fae5;color:#065f46}.status-badge.inactive{background:#fee2e2;color:#991b1b}.status-badge.confirmed{background:#dbeafe;color:#1e40af}.status-badge.twofa-enabled{background:#fef3c7;color:#92400e}.roles-badges{display:flex;gap:6px;flex-wrap:wrap}.role-badge{display:inline-block;padding:3px 8px;background:#f3e8ff;color:#6b21a8;border-radius:4px;font-size:11px;font-weight:600}.text-muted{color:#9ca3af}.edit-btn{padding:6px 12px;background:#fff;border:1px solid #dc2626;border-radius:6px;color:#dc2626;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease}.edit-btn:hover{background:#dc2626;color:#fff}.pagination-container{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-top:1px solid #e5e7eb;background:#f9fafb;flex-shrink:0}.pagination-container.pagination-top{border-top:none;border-bottom:1px solid #e5e7eb}.pagination-section{display:flex;justify-content:space-between;align-items:center;width:100%;gap:16px}.pagination-left{display:flex;align-items:center;gap:16px}.pagination-right,.records-per-page{display:flex;align-items:center;gap:8px}.records-per-page label{font-size:14px;color:#6b7280;white-space:nowrap}.records-select{padding:6px 10px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;background:#fff;cursor:pointer;color:#374151}.pagination-info-inline{font-size:14px;color:#6b7280}.pagination-buttons{display:flex;gap:8px;align-items:center}.pagination-button{padding:6px 12px;background:#fff;border:1px solid #d1d5db;border-radius:6px;font-size:14px;cursor:pointer;transition:all .15s ease;color:#374151}.pagination-button:hover:not(:disabled){background:#f9fafb;border-color:#9ca3af}.pagination-button:disabled{opacity:.5;cursor:not-allowed}.page-indicator{font-size:14px;color:#374151;font-weight:500;padding:0 8px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#6b7280}.empty-state-icon{font-size:48px;margin-bottom:16px;opacity:.5}.empty-state-text{font-size:16px;font-weight:500;color:#374151;margin-bottom:8px}.empty-state-subtext{font-size:14px;color:#6b7280}@media(max-width:1024px){.users-table th,.users-table td{padding:10px 12px;font-size:13px}.pagination-section{flex-direction:column;gap:12px}.pagination-left,.pagination-right{width:100%;justify-content:space-between}}@media(max-width:768px){.users-table{font-size:12px}.users-table th,.users-table td{padding:8px 10px}.pagination-button{padding:5px 10px;font-size:13px}.records-per-page label{display:none}}.roles-list-container{display:flex;flex-direction:column;gap:16px;flex:1;min-height:0;overflow:hidden}.roles-list-actions{display:flex;justify-content:flex-start}.btn-add-role{padding:8px 16px;background-color:#dc2626;color:#fff;border:none;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.btn-add-role:hover:not(:disabled){background-color:#b91c1c}.btn-add-role:disabled{background-color:#d1d5db;cursor:not-allowed}.add-role-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.add-role-form select{padding:8px 12px;border:1px solid #d1d5db;border-radius:4px;font-size:14px;min-width:250px;background-color:#fff}.add-role-form select:focus{outline:none;border-color:#dc2626;box-shadow:0 0 0 3px #dc26261a}.btn-save-role{padding:8px 16px;background-color:#16a34a;color:#fff;border:none;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.btn-save-role:hover:not(:disabled){background-color:#15803d}.btn-save-role:disabled{background-color:#d1d5db;cursor:not-allowed}.btn-cancel-role{padding:8px 16px;background-color:#6b7280;color:#fff;border:none;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.btn-cancel-role:hover:not(:disabled){background-color:#4b5563}.btn-cancel-role:disabled{background-color:#d1d5db;cursor:not-allowed}.btn-delete-role{background:none;border:none;cursor:pointer;font-size:18px;padding:4px 8px;border-radius:4px;transition:background-color .2s}.btn-delete-role:hover{background-color:#fee2e2}.roles-list-wrapper{flex:1;overflow-y:auto;min-height:0}.roles-table{width:100%;border-collapse:collapse;font-size:13px}.roles-table thead{position:sticky;top:0;background:#f9fafb;z-index:10}.roles-table th{padding:10px 12px;text-align:left;font-weight:600;color:#374151;border-bottom:2px solid #e5e7eb;white-space:nowrap}.roles-table tbody tr{border-bottom:1px solid #e5e7eb;transition:background-color .15s ease}.roles-table tbody tr:hover{background:#f9fafb}.roles-table td{padding:10px 12px;color:#111827}.role-code-badge{display:inline-block;padding:3px 8px;background:#dbeafe;color:#1e40af;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase}.empty-state-roles{padding:40px 20px;text-align:center;color:#6b7280}.empty-state-roles p{font-size:14px;font-weight:500;color:#374151;margin-bottom:4px}.empty-state-roles small{font-size:13px;color:#9ca3af}.permissions-list-container{display:flex;flex-direction:column;gap:16px;flex:1;min-height:0;overflow:hidden}.permissions-list-actions{display:flex;justify-content:flex-start}.btn-add-permission{padding:8px 16px;background-color:#dc2626;color:#fff;border:none;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.btn-add-permission:hover:not(:disabled){background-color:#b91c1c}.btn-add-permission:disabled{background-color:#d1d5db;cursor:not-allowed}.add-permission-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.add-permission-form select{padding:8px 12px;border:1px solid #d1d5db;border-radius:4px;font-size:14px;min-width:250px;background-color:#fff}.add-permission-form select:focus{outline:none;border-color:#dc2626;box-shadow:0 0 0 3px #dc26261a}.btn-save-permission{padding:8px 16px;background-color:#16a34a;color:#fff;border:none;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.btn-save-permission:hover:not(:disabled){background-color:#15803d}.btn-save-permission:disabled{background-color:#d1d5db;cursor:not-allowed}.btn-cancel-permission{padding:8px 16px;background-color:#6b7280;color:#fff;border:none;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.btn-cancel-permission:hover:not(:disabled){background-color:#4b5563}.btn-cancel-permission:disabled{background-color:#d1d5db;cursor:not-allowed}.btn-delete-permission{background:none;border:none;cursor:pointer;font-size:18px;padding:4px 8px;border-radius:4px;transition:background-color .2s}.btn-delete-permission:hover{background-color:#fee2e2}.permissions-list-wrapper{flex:1;overflow-y:auto;min-height:0}.permissions-table{width:100%;border-collapse:collapse;font-size:13px}.permissions-table thead{position:sticky;top:0;background:#f9fafb;z-index:10}.permissions-table th{padding:10px 12px;text-align:left;font-weight:600;color:#374151;border-bottom:2px solid #e5e7eb;white-space:nowrap}.permissions-table tbody tr{border-bottom:1px solid #e5e7eb;transition:background-color .15s ease}.permissions-table tbody tr:hover{background:#f9fafb}.permissions-table td{padding:10px 12px;color:#111827}.permission-code-badge{display:inline-block;padding:3px 8px;background:#dbeafe;color:#1e40af;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase}.club-badge{display:inline-block;padding:3px 8px;background:#fef2f2;color:#dc2626;border-radius:4px;font-size:11px;font-weight:600}.empty-state-permissions{padding:40px 20px;text-align:center;color:#6b7280}.empty-state-permissions p{font-size:14px;font-weight:500;color:#374151;margin-bottom:4px}.empty-state-permissions small{font-size:13px;color:#9ca3af}.logins-list-wrapper{flex:1;overflow-y:auto;min-height:0}.logins-table{width:100%;border-collapse:collapse;font-size:13px}.logins-table thead{position:sticky;top:0;background:#f9fafb;z-index:10}.logins-table th{padding:10px 12px;text-align:left;font-weight:600;color:#374151;border-bottom:2px solid #e5e7eb;white-space:nowrap}.logins-table tbody tr{border-bottom:1px solid #e5e7eb;transition:background-color .15s ease}.logins-table tbody tr:hover{background:#f9fafb}.logins-table td{padding:10px 12px;color:#111827}.login-datetime{font-family:Courier New,monospace;font-size:12px;color:#6b7280}.login-status-badge{display:inline-block;padding:3px 8px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase}.login-status-badge.success{background:#d1fae5;color:#065f46}.login-status-badge.failed{background:#fee2e2;color:#991b1b}.ip-address{font-family:Courier New,monospace;font-size:12px;color:#374151}.user-agent{font-size:12px;color:#6b7280;display:block;max-width:400px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty-state-logins{padding:40px 20px;text-align:center;color:#6b7280}.empty-state-logins p{font-size:14px;font-weight:500;color:#374151;margin-bottom:4px}.empty-state-logins small{font-size:13px;color:#9ca3af}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000;padding:1rem}.modal-content{background:#fff;border-radius:8px;border:1px solid #e5e5e5;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;position:relative}.user-form-modal{max-width:720px;max-height:95vh;min-height:600px;height:85vh;display:flex;flex-direction:column;overflow:hidden}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:2px solid #f0f0f0;background:#fff;flex-shrink:0}.modal-header h2{margin:0;color:#1a1a1a;font-size:1.35rem}.user-form-modal form{flex:1;overflow-y:auto;min-height:0;display:flex;flex-direction:column}.roles-tab-content,.permissions-tab-content,.logins-tab-content{flex:1;min-height:0;display:flex;flex-direction:column;padding:16px;overflow:hidden}.roles-tab-header,.permissions-tab-header,.logins-tab-header{margin-bottom:12px;flex-shrink:0}.roles-tab-header h3,.permissions-tab-header h3,.logins-tab-header h3{margin:0;font-size:16px;font-weight:600;color:#111827}.modal-close{background:none;border:none;font-size:2rem;color:#666;cursor:pointer;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease}.modal-close:hover{background-color:#f0f0f0;color:#333}.modal-content form{padding:.75rem}.form-section{margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid #e0e0e0}.form-section:last-of-type{border-bottom:none;margin-bottom:0}.section-title{font-size:.95rem;font-weight:600;color:#333;margin:0 0 .5rem;display:flex;align-items:center;gap:.5rem}.gender-icon{font-size:1.3rem;line-height:1}.form-group{margin-bottom:.6rem}.form-group label{display:block;margin-bottom:.2rem;color:#333;font-weight:500;font-size:.875rem}.required{color:#dc3545;margin-left:.25rem}.form-group input[type=text],.form-group input[type=number],.form-group input[type=password],.form-group input[type=email],.form-group input[type=tel],.form-group select{width:100%;padding:.45rem .5rem;border:2px solid #e0e0e0;border-radius:6px;font-size:.875rem;transition:all .2s ease}.form-group input:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 3px #007bff1a}.form-group input:disabled{background-color:#f5f5f5;cursor:not-allowed}.form-hint{display:block;margin-top:.1rem;color:#666;font-size:.75rem}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-label input[type=checkbox]{width:1.2rem;height:1.2rem;cursor:pointer}.checkbox-label span{font-weight:500;color:#333}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.modal-actions{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 1.25rem;border-top:2px solid #f0f0f0;background:#fff;flex-shrink:0}.modal-actions-right{display:flex;gap:.6rem}.btn-delete{padding:.6rem 1.25rem;background-color:#dc3545;color:#fff;border:none;border-radius:6px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-delete:hover{background-color:#c82333}.btn-delete.confirm{background-color:#a71d2a;animation:pulse .5s ease-in-out}.btn-delete:disabled{background-color:#ccc;cursor:not-allowed}.btn-reset-2fa{padding:.6rem 1rem;background-color:#f59e0b;color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;width:100%}.btn-reset-2fa:hover:not(:disabled){background-color:#d97706}.btn-reset-2fa:disabled{background-color:#ccc;cursor:not-allowed;opacity:.6}.twofa-confirm-actions{display:flex;gap:.5rem;width:100%}.btn-cancel-2fa{padding:.6rem 1rem;background-color:#6c757d;color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;flex:1}.btn-cancel-2fa:hover:not(:disabled){background-color:#5a6268}.btn-cancel-2fa:disabled{background-color:#ccc;cursor:not-allowed}.btn-confirm-reset-2fa{padding:.6rem 1rem;background-color:#dc3545;color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;flex:1}.btn-confirm-reset-2fa:hover:not(:disabled){background-color:#c82333}.btn-confirm-reset-2fa:disabled{background-color:#ccc;cursor:not-allowed}.btn-cancel{padding:.6rem 1.25rem;background-color:#6c757d;color:#fff;border:none;border-radius:6px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-cancel:hover{background-color:#5a6268}.btn-cancel:disabled{background-color:#ccc;cursor:not-allowed}.btn-submit{padding:.6rem 1.25rem;background:linear-gradient(135deg,#007bff,#0056b3);color:#fff;border:none;border-radius:6px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-submit:hover{background:linear-gradient(135deg,#0056b3,#003d82);transform:translateY(-1px);box-shadow:0 4px 8px #007bff4d}.btn-submit:disabled{background:#ccc;cursor:not-allowed;transform:none}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.user-status-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem;margin-top:.5rem;margin-bottom:1rem}.status-section-title{margin:0 0 .5rem;font-size:.875rem;font-weight:600;color:#374151;text-transform:uppercase;letter-spacing:.025em}.confirmation-status{padding:.75rem;border-radius:6px;border:1px solid #e0e0e0;background-color:#fafafa;display:flex;flex-direction:column}.confirmation-status>div{display:flex;flex-direction:column;gap:.5rem}.password-reset-status{padding:.75rem;border-radius:6px;border:1px solid #e0e0e0;background-color:#fafafa}.password-reset-content{display:flex;flex-direction:column;gap:.5rem}.status-info{display:flex;align-items:center;gap:.5rem;color:#1f2937;margin-bottom:.5rem}.status-info .status-icon{font-size:1.1rem}.status-info .status-text{font-size:.875rem;font-weight:500}.btn-reset-password{padding:.6rem 1rem;background-color:#8b5cf6;color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;width:100%}.btn-reset-password:hover:not(:disabled){background-color:#7c3aed}.btn-reset-password:disabled{background-color:#9ca3af;cursor:not-allowed;opacity:.6}.password-reset-confirm-actions{display:flex;gap:.5rem;width:100%}.btn-cancel-reset-password{padding:.6rem 1rem;background-color:#6c757d;color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;flex:1}.btn-cancel-reset-password:hover:not(:disabled){background-color:#5a6268}.btn-cancel-reset-password:disabled{background-color:#ccc;cursor:not-allowed}.btn-confirm-reset-password{padding:.6rem 1rem;background-color:#8b5cf6;color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;flex:1}.btn-confirm-reset-password:hover:not(:disabled){background-color:#7c3aed}.btn-confirm-reset-password:disabled{background-color:#9ca3af;cursor:not-allowed}.twofa-status{padding:.75rem;border-radius:6px;border:1px solid #e0e0e0;background-color:#fafafa}.twofa-content{display:flex;flex-direction:column;gap:.5rem}.status-2fa-enabled{display:flex;align-items:center;gap:.5rem;color:#065f46;margin-bottom:.5rem}.status-2fa-enabled .status-icon{font-size:1.1rem;font-weight:700;color:#10b981}.status-2fa-enabled .status-text{font-size:.875rem;font-weight:500}.status-2fa-disabled{display:flex;align-items:center;gap:.5rem;color:#dc2626;margin-bottom:.5rem}.status-2fa-disabled .status-icon{font-size:1.1rem;font-weight:700;color:#f59e0b}.status-2fa-disabled .status-text{font-size:.875rem;font-weight:500}.status-unknown{display:flex;align-items:center;gap:.5rem;color:#6b7280}.status-unknown .status-text{font-size:.875rem;font-weight:500}.status-confirmed{display:flex;align-items:center;gap:.5rem;color:#065f46;min-height:1.5rem}.status-confirmed .status-icon{font-size:1.2rem;font-weight:700;color:#10b981}.status-confirmed .status-text{font-size:.875rem;font-weight:500}.status-not-confirmed{display:flex;flex-direction:column;gap:.5rem}.status-message{display:flex;align-items:center;gap:.5rem;color:#dc2626;min-height:1.5rem;margin-bottom:.5rem}.status-not-confirmed .status-icon{font-size:1.1rem;font-weight:700;color:#f59e0b}.status-not-confirmed .status-text{font-size:.875rem;font-weight:500}.btn-resend-confirmation{padding:.5rem 1rem;background-color:#2563eb;color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;align-self:flex-start;width:100%}.btn-resend-confirmation:hover:not(:disabled){background-color:#1d4ed8}.btn-resend-confirmation:disabled{background-color:#9ca3af;cursor:not-allowed}.resend-confirmation-confirm-actions{display:flex;gap:.5rem;width:100%}.btn-cancel-resend-confirmation{padding:.5rem 1rem;background-color:#6c757d;color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;flex:1}.btn-cancel-resend-confirmation:hover:not(:disabled){background-color:#5a6268}.btn-cancel-resend-confirmation:disabled{background-color:#ccc;cursor:not-allowed}.btn-confirm-resend-confirmation{padding:.5rem 1rem;background-color:#2563eb;color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;flex:1}.btn-confirm-resend-confirmation:hover:not(:disabled){background-color:#1d4ed8}.btn-confirm-resend-confirmation:disabled{background-color:#9ca3af;cursor:not-allowed}@media(max-width:768px){.modal-content{max-width:100%;max-height:100vh;border-radius:0}.age-group-form-modal{max-width:100%}.modal-header{padding:1rem}.modal-header h2{font-size:1.25rem}.modal-content form{padding:1rem}.form-row{grid-template-columns:1fr}.user-status-grid{grid-template-columns:1fr;gap:.75rem}.modal-actions{flex-direction:column;align-items:stretch}.modal-actions-right,.btn-delete,.btn-cancel,.btn-submit{width:100%}}@media(max-width:480px){.modal-actions-right{flex-direction:column}}.users-container{display:flex;flex-direction:column;height:100vh;overflow:hidden;padding:32px}.users-header{flex-shrink:0;margin-bottom:24px;background:#fff;z-index:10}.header-top{display:flex;justify-content:space-between;align-items:center;padding:0 0 16px;border-bottom:1px solid #e5e5e5}.users-header h1{color:#111827;margin:0;font-size:24px;font-weight:600;letter-spacing:-.025em}.btn-add{display:flex;align-items:center;gap:8px;padding:10px 20px;background-color:#dc2626;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-add:hover{background-color:#b91c1c;transform:translateY(-1px);box-shadow:0 4px 6px #dc262633}.btn-add .icon{font-size:20px;font-weight:600}.search-container{margin-top:20px;display:flex;gap:16px;align-items:center}.search-box{position:relative;flex:1;max-width:600px}.search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#9ca3af;font-size:16px}.search-input{width:100%;padding:10px 40px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;outline:none;transition:all .15s ease}.search-input:focus{border-color:#dc2626;box-shadow:0 0 0 1px #dc2626}.search-input::placeholder{color:#9ca3af}.clear-search{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;color:#9ca3af;font-size:24px;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;transition:color .15s ease}.clear-search:hover{color:#dc2626}.filters-container{display:flex;gap:16px;align-items:center;flex-shrink:0}.filter-checkbox{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:14px;color:#374151}.filter-checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:#dc2626}.filter-checkbox span{font-weight:500}.filter-select-wrapper{display:flex;align-items:center;gap:8px}.filter-select-wrapper label{font-size:14px;font-weight:500;color:#374151;white-space:nowrap}.filter-select{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;background-color:#fff;color:#374151;cursor:pointer;outline:none;transition:all .15s ease;min-width:150px}.filter-select:focus{border-color:#dc2626;box-shadow:0 0 0 1px #dc2626}.filter-select:hover{border-color:#9ca3af}.users-content{flex:1;overflow:auto;margin-top:16px}.error-message{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center;color:#6b7280}.error-message p{margin:0 0 16px;font-size:16px}.error-message button{padding:10px 20px;background-color:#dc2626;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s ease}.error-message button:hover{background-color:#b91c1c}@media(max-width:768px){.users-container{padding:16px}.users-header h1{font-size:20px}.header-top{flex-direction:column;gap:16px;align-items:flex-start}.btn-add{width:100%;justify-content:center}.search-box{max-width:100%}}.two-factor-setup{max-width:600px;margin:0 auto;padding:24px}.setup-step,.scan-step,.backup-step{background:#fff;border-radius:8px;padding:32px;box-shadow:0 1px 3px #0000001a}.two-factor-setup h2{color:#111827;font-size:24px;margin-bottom:16px}.two-factor-setup p{color:#6b7280;line-height:1.6;margin-bottom:16px}.benefits{background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;padding:16px;margin:20px 0}.benefits h3{color:#374151;font-size:16px;margin-bottom:12px}.benefits ul{list-style:none;padding:0;margin:0}.benefits li{color:#16a34a;padding:6px 0}.qr-container{display:flex;justify-content:center;margin:24px 0;padding:20px;background:#fff;border:2px solid #e5e7eb;border-radius:8px}.qr-code{width:300px;height:300px}.manual-entry{background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;padding:16px;margin:20px 0}.manual-entry p{margin-bottom:12px;font-weight:500;color:#374151}.secret-code{display:flex;gap:12px;align-items:center}.secret-code code{flex:1;background:#fff;border:1px solid #d1d5db;padding:12px;border-radius:4px;font-family:Courier New,monospace;font-size:16px;letter-spacing:.1em;word-break:break-all}.copy-button{background:#dc2626;color:#fff;border:none;padding:10px 20px;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;transition:background .2s}.copy-button:hover{background:#b91c1c}.app-suggestions{text-align:center;margin:20px 0;padding:16px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:6px}.app-suggestions p{margin:4px 0;color:#1e40af}.verification-input{margin-top:32px}.verification-input label{display:block;margin-bottom:12px;font-weight:500;color:#374151}.verification-input input{width:100%;padding:16px;border:2px solid #d1d5db;border-radius:6px;font-size:24px;margin-bottom:16px;transition:border-color .2s}.verification-input input:focus{outline:none;border-color:#dc2626}.warning-text{background:#fef3c7;border:1px solid #fbbf24;padding:12px;border-radius:6px;margin:16px 0;color:#92400e}.backup-codes-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:24px 0}.backup-code{background:#f3f4f6;border:1px solid #d1d5db;padding:12px;border-radius:4px;font-family:Courier New,monospace;font-size:16px;text-align:center;letter-spacing:.1em}.actions{display:flex;gap:12px;margin-top:24px;flex-wrap:wrap}.primary-button{background:#dc2626;color:#fff;border:none;padding:12px 24px;border-radius:6px;cursor:pointer;font-size:16px;font-weight:500;transition:background .2s;flex:1;min-width:150px}.primary-button:hover:not(:disabled){background:#b91c1c}.primary-button:disabled{background:#9ca3af;cursor:not-allowed;opacity:.6}.secondary-button{background:#fff;color:#dc2626;border:2px solid #dc2626;padding:12px 24px;border-radius:6px;cursor:pointer;font-size:16px;font-weight:500;transition:all .2s;flex:1;min-width:150px}.secondary-button:hover{background:#dc2626;color:#fff}.two-factor-management{max-width:600px;margin:0 auto}.status-card{background:#fff;border-radius:8px;padding:32px;box-shadow:0 1px 3px #0000001a}.status-card h3{color:#111827;font-size:20px;margin-bottom:16px}.status-indicator{margin:20px 0}.status-badge{display:inline-block;padding:6px 12px;border-radius:4px;font-size:14px;font-weight:500}.status-badge.enabled{background:#d1fae5;color:#065f46}.status-indicator p{margin-top:8px;color:#6b7280}.management-actions{display:flex;gap:12px;margin-top:24px;flex-wrap:wrap}.danger-button{background:#fff;color:#dc2626;border:2px solid #dc2626;padding:12px 24px;border-radius:6px;cursor:pointer;font-size:16px;font-weight:500;transition:all .2s;flex:1;min-width:150px}.danger-button:hover:not(:disabled){background:#dc2626;color:#fff}.danger-button:disabled{opacity:.5;cursor:not-allowed}.twofa-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.twofa-modal-content{background:#fff;border-radius:8px;padding:24px;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a}.twofa-modal-content h3{color:#111827;font-size:20px;margin-bottom:16px}.twofa-modal-content .form-group{margin:16px 0}.twofa-modal-content .form-group label{display:block;margin-bottom:8px;font-weight:500;color:#374151}.twofa-modal-content .form-group input{width:100%;padding:10px;border:2px solid #d1d5db;border-radius:6px;font-size:16px;transition:border-color .2s}.twofa-modal-content .form-group input:focus{outline:none;border-color:#dc2626}.twofa-modal-actions{display:flex;gap:12px;margin-top:20px;flex-wrap:wrap}.twofa-backup-codes-modal{max-width:600px}@media(max-width:640px){.two-factor-setup{padding:16px}.setup-step,.scan-step,.backup-step{padding:20px}.qr-code{width:250px;height:250px}.backup-codes-grid{grid-template-columns:1fr}.actions{flex-direction:column}.primary-button,.secondary-button{width:100%}}.security-settings-page{max-width:1200px;margin:0 auto;padding:32px}.page-header{margin-bottom:32px}.header-top{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.page-header h1{color:#111827;font-size:32px;margin-bottom:8px}.page-header p{color:#6b7280;font-size:16px}.back-to-login-button{background:#fff;color:#dc2626;border:2px solid #dc2626;padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.back-to-login-button:hover{background:#dc2626;color:#fff}.back-to-login-button:active{transform:scale(.98)}.loading{text-align:center;padding:40px;color:#6b7280}.setup-prompt-banner{background:linear-gradient(135deg,#dc2626,#b91c1c);border-radius:12px;padding:24px;margin-bottom:32px;box-shadow:0 4px 6px #dc262633;animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.banner-content{display:flex;align-items:flex-start;gap:16px;color:#fff}.banner-icon{font-size:32px;flex-shrink:0}.banner-text h3{margin:0 0 8px;font-size:20px;font-weight:600}.banner-text p{margin:0;font-size:15px;line-height:1.5;opacity:.95}.settings-content{display:flex;flex-direction:column;gap:32px}.settings-section{background:#fff;border-radius:8px;padding:32px;box-shadow:0 1px 3px #0000001a}.settings-section h2{color:#111827;font-size:20px;margin-bottom:8px}.section-description{color:#6b7280;margin-bottom:24px;line-height:1.6}.authenticator-apps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-bottom:20px}.app-card{background:#f9fafb;border:2px solid #e5e7eb;border-radius:8px;padding:20px;transition:all .2s}.app-card:hover{border-color:#dc2626;box-shadow:0 4px 6px #dc26261a;transform:translateY(-2px)}.app-icon{font-size:48px;margin-bottom:12px}.app-card h3{color:#111827;font-size:18px;margin-bottom:8px;font-weight:600}.app-description{color:#6b7280;font-size:14px;line-height:1.5;margin-bottom:16px;min-height:60px}.app-links{display:flex;flex-wrap:wrap;gap:8px}.app-link{display:inline-block;background:#dc2626;color:#fff;padding:8px 16px;border-radius:6px;text-decoration:none;font-size:13px;font-weight:500;transition:all .2s}.app-link:hover{background:#b91c1c;transform:scale(1.05)}.app-link-secondary{display:inline-block;background:#fff;color:#dc2626;border:1px solid #dc2626;padding:8px 16px;border-radius:6px;text-decoration:none;font-size:13px;font-weight:500;transition:all .2s}.app-link-secondary:hover{background:#dc2626;color:#fff}.app-note{background:#fffbeb;border-left:4px solid #f59e0b;padding:16px;border-radius:6px;color:#92400e;font-size:14px;line-height:1.6}.app-note strong{color:#78350f}@media(max-width:768px){.security-settings-page{padding:16px}.page-header h1{font-size:24px}.settings-section{padding:20px}.header-top{flex-direction:column;align-items:stretch}.back-to-login-button{width:100%;text-align:center}.authenticator-apps-grid{grid-template-columns:1fr}}.app-container{display:flex;min-height:100vh;background-color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;overflow-x:clip}.sidebar{position:fixed;top:0;left:0;width:240px;height:100vh;background-color:#fafafa;border-right:1px solid #e5e5e5;display:flex;flex-direction:column;transition:width .3s ease;z-index:1000}.sidebar.collapsed{width:60px}.sidebar.collapsed~.main-content{margin-left:60px}.logo-section{padding:24px 20px;border-bottom:1px solid #e5e5e5;display:flex;align-items:center;justify-content:space-between}.sidebar.collapsed .logo-section{padding:24px 12px;justify-content:center;flex-direction:column;gap:12px}.logo-container{display:flex;align-items:center;gap:12px}.benfica-logo{width:32px;height:32px;flex-shrink:0}.logo-section h1{color:#dc2626;font-size:18px;font-weight:600;margin:0;letter-spacing:-.025em}.sidebar-toggle{width:28px;height:28px;border:none;border-radius:4px;background-color:#f3f4f6;color:#6b7280;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease;font-size:12px;flex-shrink:0}.sidebar-toggle:hover{background-color:#e5e7eb;color:#374151}.sidebar.collapsed .sidebar-toggle{margin-top:8px}.menu{flex:1;padding:8px 0;overflow-y:auto;overflow-x:hidden}.sidebar-footer{border-top:1px solid #e5e5e5;padding:16px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;background-color:#fafafa}.sidebar.collapsed .sidebar-footer{padding:16px 12px;flex-direction:column;gap:8px}.user-info{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.sidebar.collapsed .user-info{flex-direction:column;gap:0}.user-avatar{width:32px;height:32px;border-radius:50%;background-color:#dc2626;color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;flex-shrink:0}.user-details{display:flex;flex-direction:column;min-width:0}.user-name{font-size:13px;font-weight:500;color:#374151;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:11px;color:#6b7280;text-transform:uppercase;letter-spacing:.05em}.logout-button{width:32px;height:32px;border:none;border-radius:6px;background-color:#f3f4f6;color:#6b7280;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease;font-size:14px;flex-shrink:0}.logout-button:hover{background-color:#dc2626;color:#fff}.logout-button:focus{outline:2px solid #dc2626;outline-offset:1px}.logout-menu-item{cursor:pointer;color:#6b7280;transition:all .15s ease}.logout-menu-item:hover{background-color:#dc2626;color:#fff}.logout-menu-item:hover .menu-icon{color:#fff}.menu-separator{height:1px;background-color:#e5e7eb;margin:8px 20px}.sidebar.collapsed .menu-separator{margin:8px 12px}.menu-item-container{margin-bottom:0}.menu-item{display:flex;align-items:center;padding:8px 20px;cursor:pointer;transition:background-color .15s ease;color:#374151;font-size:14px;text-decoration:none;position:relative}.sidebar.collapsed .menu-item{padding:12px;justify-content:center}.menu-item:hover{background-color:#f3f4f6}.menu-item.active{background-color:#dc2626;color:#fff}.menu-item.expanded{background-color:#f9fafb}.menu-icon{font-size:16px;margin-right:12px;width:16px;text-align:center;opacity:.7}.sidebar.collapsed .menu-icon{margin-right:0;font-size:18px}.menu-item.active .menu-icon{opacity:1}.menu-text{flex:1;font-weight:500}.submenu-arrow{font-size:10px;transition:transform .2s ease;margin-left:8px;opacity:.5}.submenu-arrow.rotated{transform:rotate(90deg)}.submenu{background-color:#f9fafb;border-left:2px solid #e5e7eb;margin-left:20px}.submenu-item{display:flex;align-items:center;padding:6px 20px;cursor:pointer;transition:background-color .15s ease;color:#6b7280;font-size:13px;text-decoration:none}.submenu-item:hover{background-color:#f3f4f6;color:#374151}.submenu-item.active{background-color:#dc2626;color:#fff}.submenu-item .menu-icon{font-size:14px;margin-right:10px}.submenu-popup{position:fixed;left:68px;background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 4px 12px #00000026;min-width:200px;z-index:1001;animation:slideIn .2s ease}@keyframes slideIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.submenu-popup-header{padding:12px 16px;font-size:12px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid #e5e7eb}.submenu-popup-item{display:flex;align-items:center;padding:10px 16px;cursor:pointer;transition:background-color .15s ease;color:#374151;font-size:14px;text-decoration:none}.submenu-popup-item:hover{background-color:#f3f4f6}.submenu-popup-item:first-of-type{border-top-left-radius:8px;border-top-right-radius:8px}.submenu-popup-item:last-child{border-bottom-left-radius:8px;border-bottom-right-radius:8px}.submenu-popup-item .menu-icon{font-size:16px;margin-right:16px;flex-shrink:0;width:20px;text-align:center}.submenu-popup-item .menu-text{flex:1;font-weight:500}.main-content{flex:1;display:flex;flex-direction:column;background-color:#fff;min-height:100vh;margin-left:240px;transition:margin-left .3s ease}.content-header{background-color:#fff;padding:24px 32px;border-bottom:1px solid #e5e5e5}.content-header h1{color:#111827;font-size:24px;font-weight:600;margin:0;letter-spacing:-.025em}.content-area{flex:1;padding:0;background-color:#fff;overflow:visible;min-height:calc(100vh - 64px)}.content-area.allow-scroll{overflow:visible;min-height:calc(100vh - 64px)}.content-area h2{color:#111827;font-size:20px;font-weight:600;letter-spacing:-.025em}.content-area p{color:#6b7280;font-size:14px;line-height:1.5;max-width:600px;margin:0}@media(max-width:768px){.sidebar{width:200px}.sidebar.collapsed{width:60px}.main-content{margin-left:200px}.sidebar.collapsed~.main-content{margin-left:60px}.content-area{padding:0}.content-header{padding:20px 24px}.logo-section{padding:20px 16px}.sidebar.collapsed .logo-section{padding:20px 12px}.menu-item{padding:8px 16px}.sidebar.collapsed .menu-item{padding:12px}.submenu-item{padding:6px 16px}}.pagination-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding:8px 0;color:#666;font-size:14px}.export-buttons{display:flex;gap:8px}.export-btn{padding:6px 12px;background:#f8f9fa;border:1px solid #dee2e6;border-radius:4px;font-size:12px;cursor:pointer;transition:all .2s ease;color:#495057;font-weight:500}.export-btn:hover{background:#e9ecef;border-color:#adb5bd;color:#343a40;transform:translateY(-1px)}.export-btn:active{transform:translateY(0);background:#dee2e6}
