@import url(https://fonts.googleapis.com/css2?family=Exo+2:wght@400;600;700;800&display=swap);@import url(https://fonts.googleapis.com/css2?family=Lilita+One&family=Open+Sans:wght@300;400;600;700&family=Roboto:wght@300;400;500;700&family=Montserrat:wght@300;400;500;600;700&family=Poppins:wght@300;400;500;600;700&family=Playfair+Display:wght@400;500;600;700&family=Source+Code+Pro:wght@300;400;500;600&display=swap);.rate-limit-banner{animation:slideDown .3s ease-out;background:linear-gradient(135deg,#ff6b35,#ff8e53);box-shadow:0 4px 12px #ff6b354d;color:#fff;left:0;position:fixed;right:0;top:0;z-index:9999}.rate-limit-banner-content{align-items:center;display:flex;gap:1rem;justify-content:space-between;margin:0 auto;max-width:1200px;padding:1rem 2rem}.rate-limit-banner-icon{animation:pulse 2s infinite;flex-shrink:0;font-size:2rem}.rate-limit-banner-message{flex-grow:1;min-width:0}.rate-limit-banner-message h4{font-size:1.1rem;font-weight:600;margin:0 0 .25rem}.rate-limit-banner-message p{font-size:.9rem;margin:0;opacity:.95}.rate-limit-banner-warning{font-size:.85rem!important;font-style:italic;margin-top:.25rem!important;opacity:.9!important}.rate-limit-banner-countdown{align-items:center;display:flex;flex-shrink:0}.countdown-circle{align-items:center;animation:rotateCountdown 1s linear infinite;background:#ffffff1a;border:3px solid #ffffff4d;border-radius:50%;display:flex;height:50px;justify-content:center;width:50px}.countdown-number{color:#fff;font-size:1.2rem;font-weight:700}.rate-limit-banner-dismiss{align-items:center;background:none;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;flex-shrink:0;font-size:1.5rem;height:40px;justify-content:center;padding:.5rem;transition:background-color .2s ease;width:40px}.rate-limit-banner-dismiss:hover{background:#fff3}.rate-limit-banner-dismiss:active{background:#ffffff4d}@keyframes slideDown{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}@keyframes rotateCountdown{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media (max-width:768px){.rate-limit-banner-content{gap:.75rem;padding:.75rem 1rem}.rate-limit-banner-icon{font-size:1.5rem}.rate-limit-banner-message h4{font-size:1rem}.rate-limit-banner-message p{font-size:.85rem}.countdown-circle{height:40px;width:40px}.countdown-number{font-size:1rem}.rate-limit-banner-dismiss{font-size:1.25rem;height:32px;width:32px}}body.rate-limited{padding-top:80px}@media (max-width:768px){body.rate-limited{padding-top:70px}}.auth-page{align-items:center;background:var(--booking-bg-light);display:flex;font-family:var(--booking-font);justify-content:center;min-height:100vh;padding:1rem}.auth-card{background:var(--booking-bg-white);border-radius:var(--booking-radius-lg);box-shadow:0 4px 24px #00000014;max-width:420px;padding:2rem 2rem 1.75rem}.auth-brand{color:var(--booking-accent);font-size:1.1rem;font-weight:800;letter-spacing:.02em;margin-bottom:.5rem}.auth-heading{color:var(--booking-text-on-light);font-size:1.6rem;font-weight:700;margin:0 0 1.5rem}.auth-success{background:#27ae601a;border:1px solid #27ae604d;border-radius:var(--booking-radius);color:var(--booking-success)}.auth-error,.auth-success{font-size:.875rem;margin-bottom:1rem;padding:.6rem .75rem}.auth-error{background:#e74c3c1a;border:1px solid #e74c3c4d;border-radius:var(--booking-radius);color:var(--booking-danger)}.auth-form{display:flex;flex-direction:column;gap:.75rem}.auth-grid-2{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:1fr 1fr}.auth-label{display:flex;flex-direction:column;font-size:.85rem;font-weight:600;gap:.3rem}.auth-input,.auth-label{color:var(--booking-text-on-light)}.auth-input{background:var(--booking-bg-white);border:1.5px solid var(--booking-border);border-radius:var(--booking-radius);box-sizing:border-box;font-family:var(--booking-font);font-size:.9rem;padding:.55rem .75rem;transition:border-color .15s;width:100%}.auth-input:focus{border-color:var(--booking-accent);outline:none}.auth-input--error{border-color:var(--booking-danger)}.auth-field-error{color:var(--booking-danger);font-size:.78rem;font-weight:400}.auth-btn{border:none;border-radius:var(--booking-radius);cursor:pointer;font-family:var(--booking-font);font-size:.95rem;font-weight:600;margin-top:.25rem;padding:.65rem 1rem;transition:opacity .15s}.auth-btn:disabled{cursor:not-allowed;opacity:.65}.auth-btn--primary{background:var(--booking-accent);color:#fff}.auth-btn--primary:hover:not(:disabled){background:var(--booking-accent-dark)}.auth-links{align-items:center;color:var(--booking-text-muted);display:flex;flex-wrap:wrap;font-size:.85rem;gap:.4rem;justify-content:center;margin-top:1.25rem;text-align:center}.auth-links__sep{color:var(--booking-border)}.auth-link{color:var(--booking-accent);font-weight:600;text-decoration:none}.auth-link:hover{text-decoration:underline}.auth-dev{border-top:1px solid var(--booking-border);margin-top:1.5rem;padding-top:1.25rem}.auth-dev__label{color:var(--booking-text-muted);font-size:.75rem;font-weight:600;letter-spacing:.06em;margin:0 0 .5rem;text-transform:uppercase}.auth-dev__btn{background:var(--booking-bg-white);border:1px solid var(--booking-border);border-radius:var(--booking-radius);color:var(--booking-text-on-light);cursor:pointer;font-family:var(--booking-font);font-size:.82rem;margin-bottom:.4rem;margin-right:.4rem;padding:.3rem .75rem}.auth-dev__btn:hover{border-color:var(--booking-accent);color:var(--booking-accent)}@media (max-width:480px){.auth-card{padding:1.5rem 1.25rem}.auth-grid-2{grid-template-columns:1fr}}.auth-checkbox{cursor:pointer;display:block!important;flex-shrink:0;height:1rem!important;width:1rem!important}.certificate-display{margin:1rem 0}.certificate-header h3{color:#2c3e50;font-weight:600;margin-bottom:1rem}.no-certificates{padding:2rem;text-align:center}.empty-state{margin:0 auto;max-width:400px}.empty-icon{display:block;font-size:4rem;margin-bottom:1rem;opacity:.5}.empty-state h4{color:#6c757d;margin-bottom:.5rem}.empty-state p{color:#6c757d;font-size:.9rem}.certificates-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));margin-top:1rem}.certificate-card{background:#fff;border:1px solid #e9ecef;border-radius:12px;box-shadow:0 4px 6px #0000001a;overflow:hidden;transition:all .3s ease}.certificate-card:hover{box-shadow:0 8px 25px #00000026;transform:translateY(-4px)}.certificate-preview{background:linear-gradient(135deg,#667eea,#764ba2);padding:1rem;position:relative}.certificate-preview-image{border:2px solid #ffffffe6;border-radius:8px;box-shadow:0 4px 12px #0003;height:auto;max-height:200px;object-fit:contain;object-position:center;width:100%}.certificate-template{background:#fff;border:3px solid #d4af37;border-radius:8px;box-shadow:inset 0 0 0 3px #f8f9fa;padding:1.5rem;position:relative;text-align:center}.certificate-template.large{align-items:center;display:flex;justify-content:center;min-height:400px;padding:3rem}.certificate-content h4{color:#2c3e50;font-size:1.1rem;font-weight:700;letter-spacing:1px;margin-bottom:.5rem;text-transform:uppercase}.certificate-type{color:#6c757d;font-size:.8rem;font-style:italic;margin-bottom:.75rem}.certificate-level{color:#d4af37;font-size:1.2rem;font-weight:700;margin-bottom:.25rem}.certificate-level-name{color:#495057;font-size:.85rem;font-weight:500}.certificate-header-text{color:#2c3e50;font-size:2rem;font-weight:700;letter-spacing:2px;margin-bottom:1rem;text-transform:uppercase}.certificate-subtitle{color:#6c757d;font-size:1rem;font-style:italic;margin-bottom:.5rem}.certificate-recipient{border-bottom:2px solid #d4af37;color:#2c3e50;display:inline-block;font-size:1.8rem;font-weight:600;margin:1rem 0;padding-bottom:.5rem}.certificate-achievement{color:#6c757d;font-size:1rem;margin:1rem 0 .5rem}.certificate-level-display{color:#d4af37;font-size:2.5rem;font-weight:700;margin:1rem 0 .5rem}.certificate-level-name-display{color:#495057;font-size:1.2rem;font-weight:500;margin-bottom:2rem}.certificate-date{color:#6c757d;font-size:1rem;font-style:italic;margin-top:2rem}.certificate-info{padding:1rem}.certificate-meta{align-items:flex-start;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:space-between;margin-bottom:.75rem}.certificate-title{color:#2c3e50;font-size:.95rem;font-weight:600}.certificate-level-badge{flex-shrink:0}.certificate-details{margin-bottom:1rem}.certificate-details small{display:block;margin-bottom:.25rem}.certificate-notes{color:#495057;font-style:italic}.certificate-actions{display:flex;flex-wrap:wrap;gap:.5rem}.certificate-actions .btn{flex:1 1;font-size:.85rem;min-width:0;padding:.5rem .75rem}.certificate-modal{max-width:800px;width:90vw}.certificate-full-preview{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:8px;display:flex;justify-content:center;min-height:500px;padding:2rem}.certificate-modal-image{border:3px solid #d4af37;border-radius:8px;box-shadow:0 8px 32px #0000004d;height:auto;max-height:70vh;max-width:100%}.loading{color:#6c757d;flex-direction:column}.spinner{border:3px solid #f3f3f3;border-top-color:#007bff;height:2rem;margin-bottom:1rem;width:2rem}.pagination-controls{align-items:center;background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;display:flex;gap:1rem;justify-content:center;margin-top:1.5rem;padding:1rem}.pagination-controls .btn{border-radius:6px;font-size:.9rem;font-weight:500;padding:.5rem 1rem;transition:all .2s ease}.pagination-controls .btn:disabled{cursor:not-allowed;opacity:.5}.pagination-controls .btn:not(:disabled):hover{box-shadow:0 2px 4px #0000001a;transform:translateY(-1px)}.pagination-controls .pagination-info{color:#6c757d;font-size:.9rem;font-weight:500;margin:0}.certificate-header .pagination-info{color:#6c757d;font-size:.85rem;margin-top:.25rem}@media (max-width:768px){.certificates-grid{gap:1rem;grid-template-columns:1fr}.certificate-meta{align-items:flex-start}.certificate-actions,.certificate-meta{flex-direction:column}.certificate-actions .btn{flex:none}.certificate-modal{margin:1rem;width:95vw}.certificate-full-preview{min-height:400px;padding:1rem}.certificate-header-text{font-size:1.5rem}.certificate-level-display{font-size:2rem}.pagination-controls{flex-direction:column;gap:.5rem;padding:.75rem}.pagination-controls .btn{max-width:200px;width:100%}}.certificate-designer{background:#f5f5f5;margin:0 auto;max-width:1400px;min-height:100vh;padding:20px}.certificate-designer.dragging,.certificate-designer.dragging *{cursor:grabbing!important}.designer-header{align-items:center;border-bottom:2px solid #e0e0e0;display:flex;justify-content:space-between;margin-bottom:30px;padding-bottom:20px}.designer-header h1{color:#333;margin:0}.header-actions{display:flex;gap:10px}.designer-layout{display:flex;gap:20px;height:80vh}.sidebar{background:#f8f9fa;border-radius:8px;flex-shrink:0;overflow-y:auto;padding:20px;width:300px}.sidebar h3{color:#333;margin-bottom:15px;margin-top:0}.template-list{margin-bottom:30px}.template-item{align-items:center;border:1px solid #ddd;border-radius:6px;display:flex;justify-content:space-between;margin-bottom:10px;transition:all .2s ease}.template-item:hover{background:#f0f8ff;border-color:#007bff}.template-item.selected{background:#e3f2fd;border-color:#007bff}.template-main{cursor:pointer;flex:1 1;padding:15px}.template-name{color:#333;font-weight:600;margin-bottom:5px}.template-info{align-items:center;color:#666;display:flex;font-size:12px;justify-content:space-between}.template-actions{display:flex;flex-wrap:wrap;gap:3px;padding:8px}.template-actions .btn{align-items:center;border-radius:3px;cursor:pointer;display:flex;font-size:10px;height:18px;justify-content:center;line-height:1;min-width:18px;padding:2px 6px;transition:all .2s ease}.template-actions .btn-warning{background:#ffc107;border:1px solid #ffc107;color:#212529}.template-actions .btn-warning:hover{background:#e0a800;border-color:#d39e00}.template-actions .btn-outline-primary{background:#0000;border:1px solid #007bff;color:#007bff}.template-actions .btn-outline-primary:hover{background:#007bff;color:#fff}.template-actions .btn-outline-secondary{background:#0000;border:1px solid #6c757d;color:#6c757d}.template-actions .btn-outline-secondary:hover{background:#6c757d;color:#fff}.template-actions .btn-outline-danger{background:#0000;border:1px solid #dc3545;color:#dc3545}.template-actions .btn-outline-danger:hover{background:#dc3545;color:#fff}.template-actions .btn-outline-success{background:#0000;border:1px solid #28a745;color:#28a745}.template-actions .btn-outline-success:hover{background:#28a745;color:#fff}.template-actions .btn-outline-warning{background:#0000;border:1px solid #ffc107;color:#ffc107}.template-actions .btn-outline-warning:hover{background:#ffc107;color:#212529}.regenerate-section{background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;margin-top:20px;padding:15px}.regenerate-section h3{color:#495057;font-size:1.1rem;margin-bottom:15px;margin-top:0}.regenerate-actions{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.regenerate-actions .btn{font-size:.8rem;padding:6px 10px;text-align:left}.regenerate-help{color:#6c757d;font-size:.8rem;line-height:1.4}.regenerate-help strong{color:#495057}.badge{background:#28a745;color:#fff;font-size:10px;padding:2px 6px}.field-list{margin-top:30px}.field-item{align-items:center;background:#fff;border:1px solid #ddd;border-radius:4px;display:flex;justify-content:space-between;margin-bottom:8px;padding:10px}.field-label{color:#333;display:block;font-weight:500}.field-type{color:#666;font-size:12px}.field-actions{gap:5px}.canvas-container{background:#f8f9fa;border-radius:8px;display:flex;flex:1 1;flex-direction:column;overflow:hidden;padding:0;position:relative}.pdf-canvas-wrapper{background:#fff;border-radius:8px;box-shadow:0 4px 6px #0000001a;flex:1 1;overflow:auto;position:relative}.pdf-document-container{display:inline-block;min-height:100%;min-width:100%;position:relative}.pdf-page-container{background:#fff;box-shadow:0 4px 8px #0000001a;display:inline-block;margin:20px;position:relative}.pdf-error,.pdf-loading{align-items:center;background:#fff;border-radius:8px;color:#666;display:flex;font-size:16px;height:400px;justify-content:center;margin:20px}.pdf-error{background:#f8d7da;border:1px solid #f5c6cb;color:#dc3545}.field-overlay{bottom:0;right:0;z-index:10}.field-overlay,.field-overlay:before{left:0;pointer-events:none;position:absolute;top:0}.field-overlay:before{background:#007bff0d;border:1px dashed #007bff4d;content:"";height:100%;height:var(--pdf-height,100%);left:var(--pdf-offset-x,0);top:var(--pdf-offset-y,0);width:100%;width:var(--pdf-width,100%);z-index:-1}.field-element{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#fffc;border:1px solid #0000;border-radius:4px;cursor:move;display:block;font-weight:500;line-height:1;min-height:20px;min-width:20px;padding:2px 4px;pointer-events:auto;position:absolute;text-shadow:0 1px 2px #0000001a;touch-action:none;transform-origin:center center;transition:all .15s ease;-webkit-user-select:none;user-select:none;white-space:nowrap}.field-element:hover{background:#fffffff2;border-color:#007bff;box-shadow:0 2px 8px #007bff4d;transform:scale(1.05);z-index:20}.field-element.selected{background:#28a7451a;border-color:#28a745;box-shadow:0 0 0 2px #28a7454d}.field-element.dragging{background:#ff6b6b26;border-color:#ff6b6b;box-shadow:0 4px 16px #ff6b6b66;cursor:grabbing!important;transform:scale(1.1);transition:none;z-index:30}.field-element.dragging *{pointer-events:none}.no-template,.template-loading{align-items:center;background:#fff;border-radius:8px;color:#666;display:flex;flex-direction:column;font-size:16px;gap:15px;height:400px;justify-content:center;margin:20px;text-align:center}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#3498db;height:40px;width:40px}.modal-overlay{animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{animation:slideIn .3s ease-out;box-shadow:0 10px 30px #0000004d;max-width:600px}@keyframes slideIn{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}.modal-large{max-width:800px}.modal-header h2{color:#333}.btn-close{align-items:center;background:none;border:none;border-radius:4px;color:#666;cursor:pointer;display:flex;font-size:24px;height:32px;justify-content:center;padding:0;transition:all .2s ease;width:32px}.btn-close:hover{background:#f5f5f5;transform:scale(1.1)}.modal form{padding:20px}.form-group{margin-bottom:15px}.form-row{display:flex;gap:15px}.form-row .form-group{flex:1 1}.form-group label{color:#333;margin-bottom:5px}.form-group input,.form-group select,.form-group textarea{border:1px solid #ddd;border-radius:4px;font-size:14px;padding:8px 12px;transition:all .2s ease;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#007bff;box-shadow:0 0 0 2px #007bff40;outline:none}.form-group input[type=checkbox]{margin-right:8px}.form-group input[type=color]{border:1px solid #ddd;border-radius:4px;cursor:pointer;height:40px;padding:0;width:60px}.form-group input[type=range]{cursor:pointer}.modal-actions{border-top:1px solid #e0e0e0;gap:10px;margin-top:20px;padding-top:20px}.btn{font-size:14px;gap:5px;overflow:hidden;padding:10px 20px;position:relative}.btn:not(:disabled):hover{box-shadow:0 4px 8px #0003;transform:translateY(-1px)}.btn:not(:disabled):active{transform:translateY(0)}.btn-primary:hover:not(:disabled){background:#0056b3}.btn-secondary:hover:not(:disabled){background:#545b62}.btn-danger:hover:not(:disabled){background:#c82333}.btn-sm{font-size:12px;padding:5px 10px}.alert{animation:slideInDown .3s ease-out;font-weight:500;margin-bottom:20px;padding:15px}.alert-success{background:#d4edda}.alert-error{background:#f8d7da}.alert-info{background:#d1ecf1}.loading{color:#666;font-size:16px;height:200px}.pdf-canvas-wrapper::-webkit-scrollbar,.sidebar::-webkit-scrollbar{height:8px;width:8px}.pdf-canvas-wrapper::-webkit-scrollbar-track,.sidebar::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.pdf-canvas-wrapper::-webkit-scrollbar-thumb,.sidebar::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}.pdf-canvas-wrapper::-webkit-scrollbar-thumb:hover,.sidebar::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.no-templates{background:#f8f9fa;border-radius:8px;color:#666;margin-bottom:1rem;padding:2rem 1rem;text-align:center}.no-templates p{margin:.5rem 0}.no-templates p:first-child{color:#333;font-weight:600}.no-templates .btn{margin-top:1rem}@media (max-width:768px){.designer-layout{flex-direction:column;gap:15px;height:auto}.sidebar{height:auto;max-height:none;order:2;overflow-y:visible;padding:15px;width:100%}.canvas-container{height:60vh;min-height:400px;order:1}.template-list{margin-bottom:20px}.template-item{margin-bottom:8px}.template-actions{gap:2px;padding:6px}.template-actions .btn{font-size:11px;height:24px;min-width:24px;padding:2px 4px}.regenerate-section{margin-top:15px;padding:12px}.regenerate-actions .btn{font-size:.75rem;padding:4px 8px}.field-list{margin-top:20px}.field-item{align-items:flex-start;flex-direction:column;gap:8px}.field-actions{justify-content:flex-end;width:100%}.form-row{flex-direction:column;gap:0}.modal{margin:20px;width:95%}.field-element{min-height:44px;min-width:44px;padding:8px 12px}.btn{font-size:16px;padding:12px 24px}.btn-sm{font-size:14px;padding:8px 16px}.pdf-page-container{margin:10px}}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.field-element{border-width:1px}}.react-pdf__Page__canvas{display:block!important;height:auto!important;max-width:none!important}.react-pdf__Page{position:relative!important}.react-pdf__Document{display:inline-block}.storage-notification{background:#e3f2fd;border:1px solid #2196f3;border-radius:8px;font-size:14px;margin-bottom:20px;padding:12px 16px}.notification-content{align-items:flex-start;display:flex;gap:8px}.notification-icon{flex-shrink:0;font-size:16px;margin-top:1px}.notification-text{color:#1976d2;line-height:1.4}.notification-text strong{color:#0d47a1}.error-message{background:#ffebee;border:1px solid #f44336;border-radius:8px;color:#c62828;margin-bottom:20px;padding:16px}.error-message h4{color:#d32f2f;font-size:16px;font-weight:600;margin:0 0 12px}.error-message p{line-height:1.5;margin:8px 0}.error-message strong{color:#b71c1c}@media (max-width:768px){.storage-notification{font-size:13px;padding:10px 12px}.notification-content{gap:6px}.error-message{padding:12px}.error-message h4{font-size:15px}}.parent-connection-request{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;font-family:Arial,sans-serif;justify-content:center;min-height:100vh;padding:2rem 1rem}.request-container{background:#fff;border-radius:12px;box-shadow:0 10px 30px #0000001a;margin:0 auto;max-width:800px;padding:2rem;width:100%}.request-header{margin-bottom:2rem;text-align:center}.request-header h1{color:#2c3e50;font-size:2.5rem;font-weight:700;margin-bottom:1rem}.request-header p{color:#7f8c8d;font-size:1.1rem;line-height:1.6;margin:0 auto;max-width:600px}.message{border-radius:8px;font-weight:500;margin-bottom:2rem;padding:1rem;text-align:center}.message.success{background-color:#d4edda;border:1px solid #c3e6cb;color:#155724}.message.error{background-color:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.request-form{display:flex;flex-direction:column;gap:2rem}.form-section{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:1.5rem}.form-section h3{border-bottom:2px solid #3498db;color:#2c3e50;font-size:1.3rem;font-weight:600;margin-bottom:1rem;padding-bottom:.5rem}.form-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}.form-group{gap:.5rem}.form-group,.form-group label{display:flex;flex-direction:column}.form-group label{color:#2c3e50;font-size:.95rem;font-weight:600;gap:.25rem}.help-text{color:#6c757d;font-size:.8rem;font-style:italic;font-weight:400}.form-group input,.form-group select{background:#fff;border:2px solid #dee2e6;transition:border-color .3s ease,box-shadow .3s ease}.form-group input:focus,.form-group select:focus{border-color:#3498db;box-shadow:0 0 0 3px #3498db1a}.form-group input:required:invalid{border-color:#e74c3c}.form-group input:required:valid{border-color:#27ae60}.form-actions{justify-content:center}.submit-button{background:linear-gradient(135deg,#3498db,#2980b9);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:600;letter-spacing:.5px;min-width:250px;padding:1rem 2rem;text-transform:uppercase;transition:all .3s ease}.submit-button:hover:not(:disabled){background:linear-gradient(135deg,#2980b9,#1f6397);box-shadow:0 4px 12px #3498db66;transform:translateY(-2px)}.submit-button:disabled{background:#95a5a6;box-shadow:none;cursor:not-allowed;transform:none}.request-info{background:#ecf0f1;border-left:4px solid #3498db;border-radius:8px;margin-top:2rem;padding:1.5rem}.request-info h3{color:#2c3e50;font-size:1.2rem;margin-bottom:1rem}.request-info ol{margin-bottom:1.5rem;margin-left:1.5rem}.request-info li{color:#34495e;line-height:1.5;margin-bottom:.5rem}.help-section{background:#fff;border:1px solid #d5dbdb;border-radius:6px;margin-top:1rem;padding:1rem}.help-section h4{color:#2c3e50;font-size:1rem;margin-bottom:.5rem}.help-section p{color:#7f8c8d;font-size:.95rem;line-height:1.5;margin:0}@media (max-width:768px){.parent-connection-request{padding:1rem}.request-container{padding:1.5rem}.request-header h1{font-size:2rem}.request-header p{font-size:1rem}.form-row{grid-template-columns:1fr}.form-section{padding:1rem}.submit-button{font-size:1rem;min-width:200px;padding:.875rem 1.5rem}}@media (max-width:480px){.request-header h1{font-size:1.75rem}.form-section h3{font-size:1.1rem}.submit-button{min-width:100%;padding:1rem}}.parent-requests{margin:0 auto;max-width:1400px;padding:2rem}.requests-header{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:2rem}.requests-header h2{color:#2c3e50;font-size:2rem;font-weight:600;margin:0}.status-filter{align-items:center;display:flex;gap:.5rem}.status-filter label{color:#34495e;font-weight:500}.status-filter select{background:#fff;border:2px solid #ddd;border-radius:6px;font-size:1rem;padding:.5rem}.loading{color:#7f8c8d;font-size:1.2rem}.loading,.no-requests{padding:4rem;text-align:center}.no-requests{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px}.no-requests p{color:#7f8c8d;font-size:1.2rem;margin:0}.requests-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.request-card{background:#fff;border:1px solid #e9ecef;border-radius:8px;box-shadow:0 2px 10px #0000001a;padding:1.5rem;transition:transform .2s ease,box-shadow .2s ease}.request-card:hover{box-shadow:0 4px 20px #00000026;transform:translateY(-2px)}.request-card.pending{border-left:4px solid #f39c12}.request-card.approved{border-left:4px solid #27ae60}.request-card.rejected{border-left:4px solid #e74c3c}.request-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:space-between;margin-bottom:1rem}.request-header h3{color:#2c3e50;font-size:1.3rem;font-weight:600;margin:0}.status-badge{border-radius:20px;font-size:.8rem;font-weight:600;letter-spacing:.5px;padding:.25rem .75rem;text-transform:uppercase}.status-badge.pending{background:#fff3cd;color:#856404}.status-badge.approved{background:#d4edda;color:#155724}.status-badge.rejected{background:#f8d7da;color:#721c24}.request-details{margin-bottom:1rem}.detail-row{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:space-between;margin-bottom:.5rem}.detail-row .label{color:#7f8c8d;font-size:.9rem;font-weight:600}.detail-row .value{color:#2c3e50;font-size:.9rem;text-align:right;word-break:break-word}.gymnast-info{background:#f8f9fa;border-radius:6px;margin-bottom:1rem;padding:1rem}.gymnast-info h4{color:#2c3e50;font-size:1rem;font-weight:600;margin:0 0 .5rem}.gymnast-info p{color:#34495e;font-size:.9rem;margin:.25rem 0}.request-actions{display:flex;flex-wrap:wrap;gap:.5rem}.connection-info{background:#d4edda;border-radius:6px;margin-bottom:1rem;padding:1rem}.connection-info h4{color:#155724;font-size:1rem;font-weight:600;margin:0 0 .5rem}.connection-info p{color:#155724;font-size:.9rem;margin:.25rem 0}.processed-info{background:#f8d7da;border-radius:6px;padding:1rem}.processed-info p{color:#721c24;font-size:.9rem;margin:.25rem 0}.btn{font-size:.9rem;font-weight:500;letter-spacing:.5px;padding:.5rem 1rem;text-transform:uppercase}.btn:disabled{cursor:not-allowed;opacity:.6}.btn-primary{background:#3498db}.btn-primary:hover:not(:disabled){background:#2980b9}.btn-danger{background:#e74c3c}.btn-danger:hover:not(:disabled){background:#c0392b}.btn-success{background:#27ae60}.btn-success:hover:not(:disabled){background:#219a52}.btn-warning{background:#f39c12;color:#fff}.btn-warning:hover:not(:disabled){background:#e67e22}.btn-sm{font-size:.8rem;padding:.25rem .5rem}.modal-overlay{padding:1rem}.modal-content{max-width:800px}.modal-header h3{font-size:1.5rem;font-weight:600}.close-btn{color:#7f8c8d;font-size:2rem;height:40px;width:40px}.close-btn:hover{color:#2c3e50}.modal-body{padding:1.5rem}.request-summary{background:#f8f9fa;border-radius:6px;margin-bottom:1.5rem;padding:1rem}.request-summary h4{color:#2c3e50;font-size:1.2rem;font-weight:600;margin:0 0 .5rem}.request-summary p{color:#34495e;font-size:.95rem;margin:.25rem 0}.matches-section h4{color:#2c3e50;font-size:1.2rem;font-weight:600;margin:0 0 1rem}.matches-list{display:flex;flex-direction:column;gap:1rem}.match-card{background:#fff;border:2px solid #e9ecef;border-radius:8px;padding:1rem}.match-header{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:space-between;margin-bottom:.75rem}.match-header h5{color:#2c3e50;font-size:1.1rem;font-weight:600;margin:0}.match-type{color:#fff;letter-spacing:.5px;text-transform:uppercase}.match-score,.match-type{border-radius:12px;font-size:.75rem;font-weight:600;padding:.25rem .5rem}.match-score{background:#ecf0f1;color:#2c3e50}.match-details{margin-bottom:1rem}.match-details p{color:#34495e;font-size:.9rem;margin:.25rem 0}.guardian-info{color:#7f8c8d;font-size:.85rem;margin-left:1rem}.match-actions{text-align:center}@media (max-width:768px){.parent-requests{padding:1rem}.requests-header{align-items:stretch;flex-direction:column}.requests-grid{grid-template-columns:1fr}.request-header{align-items:stretch}.detail-row,.request-header{flex-direction:column}.detail-row .value{text-align:left}.modal-content{margin:1rem;max-height:calc(100vh - 2rem)}.match-header{align-items:stretch;flex-direction:column;text-align:center}}.custom-fields-page{margin:0 auto;max-width:1200px;padding:2rem}.custom-fields-header{align-items:center;border-bottom:2px solid #e9ecef;display:flex;justify-content:space-between;margin-bottom:2rem;padding-bottom:1rem}.custom-fields-header h1{color:#2c3e50;margin:0}.custom-fields-header p{color:#6c757d;font-size:.95rem;margin:.5rem 0 0}.custom-fields-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));margin-top:2rem}.custom-field-card{background:#fff;border:1px solid #e9ecef;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:1.5rem;transition:all .3s ease}.custom-field-card:hover{box-shadow:0 4px 8px #00000026;transform:translateY(-2px)}.field-header{align-items:flex-start;display:flex;margin-bottom:1rem}.field-icon{flex-shrink:0;font-size:2rem;margin-right:1rem}.field-info{flex:1 1}.field-info h3{color:#2c3e50;font-size:1.2rem;margin:0 0 .5rem}.field-key{background:#f8f9fa;border-radius:4px;color:#6c757d;display:inline-block;font-family:Courier New,monospace;font-size:.85rem;margin:.25rem 0;padding:.2rem .4rem}.field-type{align-items:center;color:#495057;display:flex;font-size:.9rem;gap:.5rem;margin:.5rem 0 0}.required-badge{background:#dc3545;border-radius:12px;color:#fff;font-size:.75rem;font-weight:500;padding:.15rem .5rem}.field-options{background:#f8f9fa;border-radius:6px;margin:1rem 0;padding:1rem}.field-options ul{margin:.5rem 0 0;padding-left:1.5rem}.field-options li{color:#495057;margin:.25rem 0}.field-actions{border-top:1px solid #e9ecef;display:flex;gap:.5rem;margin-top:1rem;padding-top:1rem}.field-actions .btn{border:none;border-radius:6px;cursor:pointer;flex:1 1;font-size:.9rem;padding:.5rem 1rem;transition:all .2s ease}.field-actions .btn-secondary{background:#6c757d;color:#fff}.field-actions .btn-secondary:hover{background:#5a6268}.field-actions .btn-danger{background:#dc3545;color:#fff}.field-actions .btn-danger:hover{background:#c82333}.empty-state{color:#6c757d;grid-column:1/-1;padding:3rem}.empty-state h3{color:#495057;margin-bottom:1rem}.modal-content{max-width:600px;width:90%}.modal-header{border-bottom:1px solid #e9ecef;padding:1.5rem}.modal-header h2{color:#2c3e50;margin:0}.close-btn{align-items:center;background:none;border:none;border-radius:50%;color:#6c757d;cursor:pointer;display:flex;font-size:1.5rem;height:2rem;justify-content:center;padding:0;transition:all .2s ease;width:2rem}.close-btn:hover{background:#f8f9fa;color:#495057}.custom-field-form{padding:1.5rem}.form-group label{color:#495057;display:block;font-weight:500;margin-bottom:.5rem}.form-group input,.form-group select{border:1px solid #ced4da;border-radius:6px;font-size:1rem;padding:.75rem;transition:border-color .2s ease;width:100%}.form-group input:focus,.form-group select:focus{border-color:#007bff;box-shadow:0 0 0 .2rem #007bff40;outline:none}.form-group small{color:#6c757d;display:block;font-size:.85rem;margin-top:.5rem}.form-group input[type=checkbox]{margin-right:.5rem;width:auto}.options-list{background:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;padding:1rem}.option-row{align-items:center;display:flex;gap:.5rem;margin-bottom:.5rem}.option-row input{flex:1 1;margin-bottom:0}.option-row .btn-sm{font-size:.8rem;padding:.25rem .5rem}.form-actions{border-top:1px solid #e9ecef;gap:1rem;justify-content:flex-end;margin-top:2rem;padding-top:1rem}.btn{align-items:center;border-radius:6px;display:inline-flex;justify-content:center;transition:all .2s ease}.btn-primary{background:#007bff}.btn-primary:hover{background:#0056b3}.btn-secondary{background:#6c757d}.btn-secondary:hover{background:#5a6268}.btn-danger{background:#dc3545}.btn-danger:hover{background:#c82333}.error-message{background:#f8d7da;border:1px solid #f5c6cb;border-radius:6px;color:#721c24;margin-bottom:1rem;padding:1rem}.loading-spinner{color:#6c757d;padding:3rem;text-align:center}@media (max-width:768px){.custom-fields-page{padding:1rem}.custom-fields-header{align-items:flex-start;flex-direction:column;gap:1rem}.custom-fields-grid{grid-template-columns:1fr}.modal-content{margin:1rem;width:95%}.field-actions,.form-actions{flex-direction:column}}.cheatsheets-container{margin:0 auto;max-width:1200px;padding:2rem}.cheatsheets-header{margin-bottom:3rem;text-align:center}.cheatsheets-header h1{color:#333;font-size:2.5rem;margin-bottom:.5rem}.cheatsheets-header .subtitle{color:#666;font-size:1.5rem;font-weight:500;margin-bottom:1rem}.cheatsheets-header .description{color:#777;font-size:1.1rem;line-height:1.6;margin:0 auto;max-width:600px}.cheatsheets-header .full-pdf-link{margin-top:1rem}.cheatsheets-header .full-pdf-link a{background:#06c;border-radius:8px;color:#fff;display:inline-block;font-weight:500;padding:.5rem 1rem;text-decoration:none;transition:background .2s}.cheatsheets-header .full-pdf-link a:hover{background:#0052a3}.cheatsheets-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin-top:2rem}.cheatsheet-card{background:#fff;border:1px solid #e0e0e0;border-radius:12px;box-shadow:0 2px 8px #0000001a;color:inherit;display:block;padding:1.5rem;text-decoration:none;transition:transform .2s,box-shadow .2s}.cheatsheet-card:hover{box-shadow:0 4px 16px #00000026;transform:translateY(-4px)}.cheatsheet-card-content h2{color:#333;font-size:1.5rem;margin-bottom:.75rem}.cheatsheet-card-content p{color:#666;line-height:1.6;margin-bottom:1rem}.view-link{color:#06c;display:inline-block;font-weight:500;margin-top:.5rem}.cheatsheet-card:hover .view-link{color:#0052a3}.appendix-section{border-top:2px solid #e0e0e0;margin-top:4rem;padding-top:3rem}.appendix-section h2{color:#333;font-size:1.75rem;margin-bottom:1rem}.appendix-description{color:#666;line-height:1.6;margin-bottom:2rem}.source-documents{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-top:1.5rem}.source-category h3{border-bottom:1px solid #ddd;color:#444;font-size:1.25rem;margin-bottom:1rem;padding-bottom:.5rem}.source-category ul{list-style:none;margin:0;padding:0}.source-category li{margin-bottom:.75rem}.source-category a{align-items:center;color:#06c;display:flex;text-decoration:none;transition:color .2s}.source-category a:hover{color:#0052a3;text-decoration:underline}.source-category a:before{content:"📄";font-size:1rem;margin-right:.5rem}@media (max-width:768px){.cheatsheets-container{padding:1rem}.cheatsheets-header h1{font-size:2rem}.cheatsheets-header .subtitle{font-size:1.2rem}.cheatsheets-grid{gap:1rem;grid-template-columns:1fr}.appendix-section{margin-top:3rem;padding-top:2rem}.source-documents{gap:1.5rem;grid-template-columns:1fr}}.cheatsheet-viewer{background:#f5f5f5;display:flex;flex-direction:column;height:100vh;overflow:hidden;width:100%}.viewer-header{align-items:center;background:#fff;border-bottom:1px solid #e0e0e0;box-shadow:0 2px 4px #0000000d;display:flex;flex-shrink:0;justify-content:center;padding:1rem 1.5rem;position:relative;z-index:10}.viewer-header h2{color:#333;font-size:1.25rem;margin:0}.back-link{left:1.5rem;position:absolute}.viewer-container{-webkit-overflow-scrolling:touch;align-items:center;background:#f5f5f5;display:flex;flex:1 1;justify-content:center;overflow:auto;padding:20px}.cheatsheet-image{-webkit-user-drag:none;background:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;display:block;height:auto;max-width:100%;-webkit-user-select:none;user-select:none}.error-container,.loading-container{align-items:center;display:flex;flex-direction:column;gap:1rem;height:100vh;justify-content:center}.spinner{border-top-color:#06c}.error-container p{color:#d32f2f;font-size:1.1rem}.back-button{border:1px solid #06c;border-radius:6px;color:#06c;font-weight:500;padding:.75rem 1.5rem;text-decoration:none;transition:background-color .2s}.back-button:hover{background-color:#06c;color:#fff}@media (max-width:768px){.viewer-header{padding:.75rem 1rem}.viewer-header h2{font-size:1rem}.back-link{font-size:.9rem;left:1rem;padding:.4rem .8rem}.viewer-container{padding:10px}}@media (hover:none) and (pointer:coarse){.viewer-container{-webkit-overflow-scrolling:touch}}.wavelength-container{background:linear-gradient(135deg,#667eea,#764ba2);box-sizing:border-box;display:flex;flex-direction:column;min-height:100vh;padding:20px}.wavelength-header{color:#fff;margin-bottom:30px;text-align:center}.wavelength-header h1{font-size:3rem;margin:0 0 10px;text-shadow:2px 2px 4px #0000004d}.phase-indicator{font-size:1.2rem;font-weight:500;opacity:.9}.wavelength-content{align-items:center;flex:1 1;justify-content:center;margin:0 auto;max-width:1200px}.labels-input,.wavelength-content{display:flex;flex-direction:column;width:100%}.labels-input{gap:20px;margin-bottom:40px;max-width:600px}.label-input-group{display:flex;flex-direction:column;gap:10px}.label-input-group label{color:#fff;font-size:1.3rem;font-weight:600}.label-input{background:#fffffff2;border:3px solid #ffffff4d;border-radius:12px;font-size:1.5rem;padding:20px;touch-action:manipulation;transition:all .3s ease}.label-input:focus{background:#fff;border-color:#fff;box-shadow:0 0 20px #ffffff80;outline:none}.disc-wrapper{align-items:center;display:flex;gap:40px;justify-content:center;margin-bottom:40px;max-width:900px;position:relative;width:100%}.side-label{background:#0006;border:3px solid #ffffff4d;border-radius:15px;color:#fff;font-size:2.5rem;font-weight:700;min-width:150px;padding:20px 30px;text-align:center;text-shadow:2px 2px 4px #00000080}.side-label-left{order:1}.side-label-right{order:3}.disc-container{aspect-ratio:2/1;max-width:500px;order:2;overflow:hidden;position:relative;width:100%}.disc{aspect-ratio:1;background:#ffffff1a;border:6px solid #fff;border-radius:50%;box-shadow:0 10px 40px #0006;left:0;overflow:visible;position:absolute;top:0;transform-origin:center center;width:100%}.disc.spinning{animation:spin 2s cubic-bezier(.25,.46,.45,.94)}.disc-svg{border-radius:50%;height:100%;width:100%}.score-segment{transition:opacity .3s ease}.score-segment.score-0{fill:#2ecc7199}.score-segment.score-1{fill:#f1c40f99}.score-segment.score-2{fill:#f39c1299}.score-segment.score-3{fill:#e74c3c99}.disc-guess-area{aspect-ratio:2/1;background:#0000004d;border:6px solid #fff;border-bottom:none;border-radius:50% 50% 0 0;cursor:grab;left:0;overflow:hidden;position:absolute;top:0;touch-action:none;-webkit-user-select:none;user-select:none;width:100%}.disc-guess-area:active{cursor:grabbing}.dial-pointer{left:50%;pointer-events:none;transform-origin:0 100%;transition:opacity .2s ease;width:50%;z-index:10}.dial-line,.dial-pointer{bottom:0;height:100%;position:absolute}.dial-line{background:#4ecdc4;border-radius:2px;box-shadow:0 0 10px #4ecdc4cc;left:0;transform-origin:center bottom;width:4px}.dial-handle{background:#4ecdc4;border:4px solid #fff;border-radius:50%;box-shadow:0 0 15px #4ecdc4e6;cursor:grab;height:28px;left:50%;pointer-events:auto;position:absolute;top:0;transform:translateX(-50%) translateY(-50%);width:28px}.disc-guess-area:active .dial-handle{cursor:grabbing;transform:translateX(-50%) translateY(-50%) scale(1.1)}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.2)}}.score-display{left:50%;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:20}.score-result{animation:scorePulse .6s ease-out;background:#000c;border:5px solid #fff;border-radius:20px;box-shadow:0 0 40px #fff9;color:#fff;font-size:2.8rem;font-weight:700;padding:25px 50px;text-align:center;text-shadow:2px 2px 4px #00000080;white-space:nowrap}@keyframes scorePulse{0%{opacity:0;transform:translate(-50%,-50%) scale(.7)}50%{transform:translate(-50%,-50%) scale(1.15)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.score-result.score-0{background:#2ecc71f2;border-color:#2ecc71;color:#fff}.score-result.score-1{background:#f1c40ff2;border-color:#f1c40f;color:#333}.score-result.score-2{background:#f39c12f2;border-color:#f39c12;color:#fff}.score-result.score-3{background:#e74c3cf2;border-color:#e74c3c;color:#fff}.action-buttons{display:flex;flex-wrap:wrap;gap:20px;justify-content:center}.action-button{border:none;border-radius:12px;box-shadow:0 4px 15px #0003;cursor:pointer;font-size:1.5rem;font-weight:600;min-width:150px;padding:20px 40px;touch-action:manipulation;transition:all .3s ease}.action-button:active{transform:scale(.95)}.action-button.primary{background:#fff;color:#667eea}.action-button.primary:hover:not(:disabled){background:#f0f0f0;box-shadow:0 6px 20px #fff6}.action-button.primary:disabled{cursor:not-allowed;opacity:.5}.action-button.secondary{background:#fff3;border:2px solid #fff;color:#fff}.action-button.secondary:hover{background:#ffffff4d;box-shadow:0 6px 20px #ffffff4d}@media screen and (orientation:landscape) and (max-width:1366px){.wavelength-header h1{font-size:2.5rem}.disc-container{max-width:450px}.side-label{font-size:2rem;min-width:120px;padding:15px 25px}.action-button{font-size:1.3rem;padding:18px 35px}}@media (hover:none) and (pointer:coarse){.action-button{font-size:1.6rem;padding:25px 45px}.label-input{font-size:1.6rem;padding:25px}.disc-container{max-width:500px}.side-label{font-size:2.2rem}}@media (max-width:768px){.disc-wrapper{flex-direction:column;gap:20px}.side-label{font-size:1.8rem;max-width:300px;min-width:auto;order:0;padding:15px 20px;width:100%}.side-label-left{order:1}.side-label-right{order:3}.disc-container{order:2}}:root{--booking-bg-dark:#2d2d2d;--booking-bg-light:#eaeaec;--booking-bg-white:#fff;--booking-accent:#7c35e8;--booking-accent-dark:#6a1fd4;--booking-accent-light:#9b4dca;--booking-accent-gradient:linear-gradient(135deg,#6a1fd4,#9b4dca);--booking-text-on-dark:#fff;--booking-text-on-light:#1a1a1a;--booking-text-muted:#888;--booking-border:#d4d4d8;--booking-danger:#e74c3c;--booking-success:#27ae60;--booking-font:"Exo 2",Arial,sans-serif;--booking-radius:6px;--booking-radius-lg:10px}.booking-layout{background:var(--booking-bg-light);display:flex;flex-direction:column;font-family:var(--booking-font);min-height:100vh}.booking-layout__nav{background:var(--booking-bg-dark);color:var(--booking-text-on-dark)}.booking-layout__topbar{align-items:center;border-bottom:1px solid #ffffff14;display:flex;justify-content:space-between;padding:.6rem 1rem}.booking-layout__brand{color:#fff;font-size:.95rem;font-weight:700;letter-spacing:.02em}.booking-layout__user{align-items:center;display:flex;gap:.75rem}.booking-layout__username{color:#ffffff8c;font-size:.82rem;white-space:nowrap}.booking-layout__logout{background:none;border:1px solid #ffffff40;border-radius:var(--booking-radius);color:#ffffffa6;cursor:pointer;font-family:var(--booking-font);font-size:.8rem;padding:.25rem .65rem;transition:border-color .15s,color .15s;white-space:nowrap}.booking-layout__logout:hover{border-color:#fff9;color:#fff}.booking-layout__links{align-items:center;display:flex;flex-wrap:wrap;gap:.25rem;padding:.4rem .75rem}.booking-layout__links a{border-radius:var(--booking-radius);color:#ffffffa6;flex-shrink:0;font-size:.875rem;padding:.3rem .65rem;text-decoration:none;transition:background .15s,color .15s;white-space:nowrap}.booking-layout__links a.active,.booking-layout__links a:hover{background:var(--booking-accent);color:#fff}.booking-layout__admin-divider{background:#ffffff2e;flex-shrink:0;height:1.1rem;margin:0 .2rem;width:1px}.booking-layout__admin-label{color:var(--booking-accent);flex-shrink:0;font-size:.62rem;font-weight:700;letter-spacing:.1em;padding:0 .1rem;text-transform:uppercase}.booking-layout__admin-link{font-size:.82rem!important;opacity:.8}.booking-layout__admin-link.active,.booking-layout__admin-link:hover{background:#7c35e866!important;color:#fff!important;opacity:1}.booking-layout__payment-banner{align-items:center;background:#c0392b;color:#fff;display:flex;flex-wrap:wrap;font-size:.875rem;font-weight:500;gap:.75rem;justify-content:center;padding:.65rem 1rem;text-align:center;text-decoration:none}.booking-layout__payment-banner:hover{background:#a93226}.booking-layout__payment-banner-cta{font-weight:700;text-decoration:underline;white-space:nowrap}.booking-layout__main{flex:1 1;padding:1rem}.booking-calendar{margin:0 auto;max-width:900px;padding:1rem}.booking-calendar__header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.booking-calendar__header h2{font-size:1.25rem;font-weight:700;margin:0}.booking-calendar__header button{background:var(--booking-bg-white);border:1px solid var(--booking-border);border-radius:var(--booking-radius);color:var(--booking-text-on-light);cursor:pointer;padding:.4rem .8rem;transition:border-color .15s}.booking-calendar__header button:hover{border-color:var(--booking-accent);color:var(--booking-accent)}.booking-calendar__grid{grid-gap:4px;display:grid;gap:4px;grid-template-columns:repeat(7,1fr)}.booking-calendar__day-label{color:var(--booking-text-muted);font-size:.75rem;font-weight:600;padding:.25rem 0;text-align:center}.booking-calendar__day-short{display:none}.booking-calendar__day-long{display:inline}.booking-calendar__cell{background:var(--booking-bg-white);border:1px solid var(--booking-border);border-radius:var(--booking-radius);min-height:80px;padding:4px}.booking-calendar__cell--empty{background:#0000;border:none}.booking-calendar__cell--closed{background:var(--booking-bg-light);color:var(--booking-text-muted)}.booking-calendar__cell--past{background:var(--booking-bg-light);color:var(--booking-border)}.booking-calendar__cell--available{background:var(--booking-bg-white);border-color:var(--booking-accent)}.booking-calendar__cell--full{background:var(--booking-bg-light)}.booking-calendar__date{display:block;font-size:.8rem;font-weight:600;margin-bottom:2px}.booking-calendar__session{border:none;border-radius:3px;cursor:pointer;display:block;font-size:.7rem;margin-bottom:2px;padding:2px 4px;text-align:left;width:100%}.booking-calendar__session--open{background:var(--booking-accent-gradient);color:var(--booking-text-on-dark)}.booking-calendar__session--full{background:var(--booking-bg-light);color:var(--booking-text-muted);cursor:default}.booking-calendar__closed-label{color:var(--booking-text-muted);font-size:.7rem}.booking-calendar__loading{color:var(--booking-text-muted);margin-top:1rem;text-align:center}@media (max-width:520px){.booking-calendar__grid{gap:2px}.booking-calendar__cell{min-height:44px;padding:3px}.booking-calendar__date{font-size:.72rem}.booking-calendar__day-long{display:none}.booking-calendar__day-short{display:inline}.booking-calendar__session{border-radius:3px;font-size:0;margin-bottom:2px;min-height:20px;padding:4px 2px;position:relative;width:100%}.booking-calendar__session:after{background:currentColor;border-radius:50%;content:"";display:block;height:6px;margin:0 auto;width:6px}.booking-calendar__closed-label{font-size:.6rem}}.session-detail{margin:0 auto;max-width:600px;padding:1rem}.session-detail__back{background:none;border:none;color:var(--booking-accent);cursor:pointer;font-family:var(--booking-font);font-size:.9rem;margin-bottom:1rem;padding:0}.session-detail__info{background:var(--booking-bg-white);border:1px solid var(--booking-border);border-radius:var(--booking-radius-lg);margin-bottom:1.5rem;padding:1rem}.session-detail__info h2{font-weight:700;margin:0 0 .25rem}.session-detail__info p{color:var(--booking-text-muted);margin:.25rem 0}.session-detail__age-restriction{background:var(--booking-danger);border-radius:var(--booking-radius);color:var(--booking-text-on-dark)!important;display:inline-block;font-size:.8rem;padding:2px 8px}.session-detail__cancelled{color:var(--booking-danger)!important;font-weight:600}.session-detail__credits,.session-detail__gymnasts{margin-bottom:1.5rem}.session-detail__credits h3,.session-detail__gymnasts h3{font-size:1rem;font-weight:600;margin:0 0 .75rem}.session-detail__credit-option,.session-detail__gymnast-option{align-items:center;background:var(--booking-bg-white);border:2px solid var(--booking-border);border-radius:var(--booking-radius);cursor:pointer;display:flex;gap:.75rem;margin-bottom:.5rem;padding:.6rem .75rem;transition:border-color .15s,background .15s;-webkit-user-select:none;user-select:none}.session-detail__credit-option:hover,.session-detail__gymnast-option:hover{border-color:var(--booking-accent)}.session-detail__credit-option--selected,.session-detail__gymnast-option--selected{background:#7c35e814;border-color:var(--booking-accent)}.session-detail__option-check{align-items:center;border:2px solid var(--booking-border);border-radius:50%;display:flex;flex-shrink:0;height:20px;justify-content:center;transition:background .15s,border-color .15s;width:20px}.session-detail__credit-option--selected .session-detail__option-check,.session-detail__gymnast-option--selected .session-detail__option-check{background:var(--booking-accent);border-color:var(--booking-accent);color:#fff}.session-detail__gymnast-option--disabled{cursor:not-allowed;opacity:.45}.session-detail__slots-warning{color:var(--booking-danger);font-size:.85rem;margin:.25rem 0 .75rem}.session-detail__waitlist{padding:1.5rem 0;text-align:center}.session-detail__waitlist-waiting{color:var(--booking-text-muted);margin-bottom:.75rem}.session-detail__waitlist-offered{color:var(--booking-accent);font-weight:700;margin-bottom:.5rem}.session-detail__summary{background:var(--booking-bg-light);border-left:3px solid var(--booking-accent);border-radius:var(--booking-radius);margin-bottom:1rem;padding:.75rem 1rem}.session-detail__summary p{font-size:.9rem;margin:.2rem 0}.session-detail__book-btn{background:var(--booking-accent-gradient);border:none;border-radius:var(--booking-radius);color:var(--booking-text-on-dark);cursor:pointer;font-family:var(--booking-font);font-size:1rem;font-weight:600;padding:.75rem;transition:opacity .15s;width:100%}.session-detail__book-btn:hover:not(:disabled){opacity:.9}.session-detail__book-btn:disabled{background:var(--booking-border);cursor:default}.session-detail__error{color:var(--booking-danger);margin-bottom:.75rem}.session-detail__error,.session-detail__loading{padding:2rem;text-align:center}.session-detail__actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.session-detail__add-btn{background:none;border:1px dashed var(--booking-accent);border-radius:var(--booking-radius);color:var(--booking-accent);cursor:pointer;font-family:var(--booking-font);font-size:.875rem;padding:.4rem .8rem;transition:background .15s}.session-detail__add-btn:hover{background:#7c35e80f}.session-detail__add-child-form{background:var(--booking-bg-light);border-radius:var(--booking-radius);margin-top:.75rem;padding:.75rem}.session-detail__add-child-row{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem}.session-detail__add-child-input{border:1px solid var(--booking-border);border-radius:var(--booking-radius);flex:1 1;font-family:var(--booking-font);font-size:.9rem;min-width:120px;padding:.4rem .6rem}.session-detail__add-child-submit{background:var(--booking-accent-gradient);border:none;border-radius:var(--booking-radius);color:var(--booking-text-on-dark);cursor:pointer;font-family:var(--booking-font);font-weight:600;padding:.4rem 1rem}.bk-checkbox{accent-color:var(--booking-accent);cursor:pointer;display:block!important;flex-shrink:0;height:1rem!important;width:1rem!important}.bk-page{font-family:var(--booking-font);margin:0 auto;padding:1rem}.bk-page--sm{max-width:480px}.bk-page--md{max-width:600px}.bk-page--lg{max-width:700px}.bk-page--xl{max-width:900px}.bk-page h2{font-weight:700;margin-top:0}.bk-page h3{font-weight:600}.bk-card{background:var(--booking-bg-white);border:1px solid var(--booking-border);margin-bottom:.75rem}.bk-card,.bk-form-card{border-radius:var(--booking-radius-lg);padding:1rem}.bk-form-card{background:var(--booking-bg-light);margin-bottom:1.5rem}.bk-input{border:1px solid var(--booking-border);border-radius:var(--booking-radius);box-sizing:border-box;font-family:var(--booking-font);font-size:.9rem;padding:.4rem .6rem;width:100%}.bk-input:focus{border-color:var(--booking-accent);outline:none}.bk-label{display:block;font-size:.9rem;font-weight:600;margin-bottom:.75rem}.bk-btn{border:none;border-radius:var(--booking-radius);cursor:pointer;font-family:var(--booking-font);font-weight:600;padding:.5rem 1rem;transition:opacity .15s}.bk-btn:disabled{cursor:default;opacity:.6}.bk-btn--primary{background:var(--booking-accent-gradient);color:var(--booking-text-on-dark)}.bk-btn--full{font-size:1rem;margin-top:1rem;padding:.75rem;width:100%}.bk-btn--danger{background:var(--booking-danger);color:var(--booking-text-on-dark)}.bk-btn--outline-danger{background:none;border:1px solid var(--booking-danger);color:var(--booking-danger)}.bk-btn--muted,.bk-btn--sm{font-size:.75rem;padding:.2rem .5rem}.bk-btn--muted{background:none;border:none;color:var(--booking-text-muted)}.bk-error{color:var(--booking-danger);margin-bottom:.75rem}.bk-muted{color:var(--booking-text-muted)}.bk-table{border-collapse:collapse;margin-bottom:2rem;width:100%}.bk-table thead tr{background:var(--booking-bg-light)}.bk-table th{font-weight:600;padding:.5rem;text-align:left}.bk-table td{border-bottom:1px solid var(--booking-bg-light);padding:.5rem}.bk-grid-2{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:1fr 1fr;margin-bottom:.75rem}.bk-row{align-items:center;display:flex;gap:.5rem}.bk-row--between{justify-content:space-between}.bk-center{color:var(--booking-text-muted);padding:2rem;text-align:center}.bk-link{color:var(--booking-accent);text-decoration:none}.bk-link:hover{text-decoration:underline}.bk-confirm-icon{color:var(--booking-success);font-size:3rem;margin-bottom:.5rem}:root{--primary-color:#2c3e50;--secondary-color:#3498db;--accent-color:#d4af37;--background-color:#f8f9fa;--text-color:#212529;--font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif}.App{display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-family:var(--font-family);min-height:100vh}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{-webkit-overflow-scrolling:touch;overflow-x:hidden}html{scroll-behavior:smooth}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2;margin-bottom:.5rem}h1{font-size:clamp(1.5rem,4vw,2.5rem)}h2{font-size:clamp(1.3rem,3.5vw,2rem)}h3{font-size:clamp(1.1rem,3vw,1.5rem)}h4{font-size:clamp(1rem,2.5vw,1.25rem)}h5{font-size:clamp(.9rem,2vw,1.1rem)}h6{font-size:clamp(.8rem,1.5vw,1rem)}li,p,td,th{line-height:1.6}.text-sm{font-size:clamp(.75rem,1.5vw,.875rem)}.text-base{font-size:clamp(.875rem,2vw,1rem)}.text-lg{font-size:clamp(1rem,2.5vw,1.125rem)}.text-xl{font-size:clamp(1.125rem,3vw,1.25rem)}.space-y-2>*+*{margin-top:.5rem}.space-y-3>*+*{margin-top:.75rem}.space-y-4>*+*{margin-top:1rem}.space-y-6>*+*{margin-top:1.5rem}.btn:focus,.form-control:focus,.form-select:focus,.mobile-menu-toggle:focus,.mobile-nav-close:focus,.nav-link:focus{outline:2px solid #3498db;outline:2px solid var(--secondary-color);outline-offset:2px}.btn,.competition-card,.level-card,.mobile-menu-toggle,.mobile-nav-close,.mobile-table-card,.nav-link,.routine-card,.skill-card{-webkit-tap-highlight-color:rgba(0,0,0,.1);-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.btn:active,.competition-card:active,.level-card:active,.mobile-table-card:active,.routine-card:active,.skill-card:active{box-shadow:0 1px 2px #0000001a;transform:translateY(1px)}.text-muted{color:#495057}.main-content,.mobile-nav-menu,.modal{-webkit-overflow-scrolling:touch;overflow-scrolling:touch}@media screen and (max-width:768px){.form-control,.form-select,input[type=date],input[type=email],input[type=number],input[type=password],input[type=tel],input[type=text],select,textarea{font-size:16px!important}}.navbar{align-items:center;background-color:#2c3e50;background-color:var(--primary-color);box-shadow:0 2px 4px #0000001a;display:flex;justify-content:space-between;padding:1rem;position:relative}.navbar,.navbar-brand{color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-family:var(--font-family)}.navbar-brand{font-size:1.5rem;font-weight:700;text-decoration:none}.navbar-nav{display:flex;gap:2rem;list-style:none;margin:0;padding:0}.nav-link,.navbar-nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-family:var(--font-family)}.nav-link{border-radius:4px;color:#fff;font-size:1rem;font-weight:500;padding:.5rem 1rem;text-decoration:none;transition:background-color .3s;white-space:nowrap}.nav-link:hover{background-color:#ffffff1a}.nav-link.active{background-color:#fff3}.nav-dropdown{display:inline-block;position:relative}.nav-dropdown-toggle{align-items:center;background:none;border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-family:var(--font-family);font-size:1rem;font-weight:500;gap:.5rem;padding:.5rem 1rem;text-decoration:none;transition:background-color .3s;white-space:nowrap}.nav-dropdown-toggle:hover{background-color:#ffffff1a}.nav-dropdown-arrow{font-size:.8rem;transition:transform .3s}.nav-dropdown:hover .nav-dropdown-arrow{transform:rotate(180deg)}.nav-dropdown-menu{background-color:#fff;border:1px solid #e9ecef;border-radius:4px;box-shadow:0 4px 6px #0000001a;left:0;min-width:200px;opacity:0;position:absolute;top:100%;transform:translateY(-10px);transition:all .3s ease;visibility:hidden;z-index:1000}.nav-dropdown:hover .nav-dropdown-menu{opacity:1;transform:translateY(0);visibility:visible}.nav-dropdown-menu .nav-link{border-radius:0;color:#495057;display:block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-family:var(--font-family);font-size:.95rem;font-weight:500;padding:.75rem 1rem;transition:background-color .2s}.nav-dropdown-menu .nav-link:hover{background-color:#f8f9fa;color:#2c3e50}.nav-dropdown-menu .nav-link.active{background-color:#e9ecef;color:#2c3e50}.nav-dropdown-logout{background:none;border:none;border-radius:0;color:#dc3545;cursor:pointer;display:block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-family:var(--font-family);font-size:.95rem;font-weight:500;padding:.75rem 1rem;text-align:left;transition:background-color .2s;width:100%}.nav-dropdown-logout:hover{background-color:#f8f9fa;color:#c82333}.mobile-menu-toggle{background:none;border:none;color:#fff;cursor:pointer;display:none;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-family:var(--font-family);font-size:1.5rem;padding:.5rem}.mobile-menu-toggle:hover{background-color:#ffffff1a;border-radius:4px}.mobile-nav-overlay{background-color:#00000080;bottom:0;left:0;z-index:1000}.mobile-nav-menu,.mobile-nav-overlay{display:none;position:fixed;right:0;top:0}.mobile-nav-menu{background-color:#2c3e50;background-color:var(--primary-color);box-shadow:-2px 0 10px #0000001a;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-family:var(--font-family);height:100vh;overflow-y:auto;padding:1rem;width:280px;z-index:1001}.mobile-nav-header{align-items:center;border-bottom:1px solid #ffffff1a;display:flex;justify-content:space-between;margin-bottom:2rem;padding-bottom:1rem}.mobile-nav-title{color:#fff;font-weight:500;margin:0}.mobile-nav-title,.text-link{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-family:var(--font-family)}.text-link{color:#007bff;cursor:pointer;text-decoration:none}.text-link:hover{color:#0056b3;text-decoration:underline}.profile-tabs{border-bottom:1px solid #e9ecef;display:flex;gap:.5rem;margin-bottom:0}.profile-tab{background:none;border:none;border-bottom:2px solid #0000;color:#6c757d;cursor:pointer;font-size:.95rem;font-weight:500;padding:.75rem 1rem;transition:all .2s ease}.profile-tab:hover{background-color:#f8f9fa;color:#495057}.profile-tab.active{background-color:#fff;border-bottom-color:#007bff;color:#007bff}.alert-success{background-color:#d1e7dd;border-color:#badbcc;color:#0f5132}.alert-error{border-color:#f5c2c7;color:#842029}.form-text{color:#6c757d;font-size:.875rem;margin-top:.25rem}.mobile-nav-close{background:none;border:none;color:#fff;cursor:pointer;font-size:1.5rem;padding:.5rem}.mobile-nav-close,.mobile-nav-links{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-family:var(--font-family)}.mobile-nav-links{display:flex;flex-direction:column;gap:.5rem}.mobile-nav-links .nav-link{border-radius:8px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-family:var(--font-family);font-size:1.1rem;font-weight:500;padding:1rem}.mobile-nav-user{border-top:1px solid #ffffff1a;margin-top:2rem;padding-top:1rem}.mobile-nav-user .nav-link{color:#fffc;font-size:.9rem}.mobile-nav-user .btn,.mobile-nav-user .nav-link{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-family:var(--font-family);font-weight:500;padding:.75rem}.mobile-nav-user .btn{font-size:1rem;margin-top:1rem;width:100%}.mobile-nav-user .btn-outline{background-color:initial;border:2px solid #fff;color:#fff}.mobile-nav-user .btn-outline:hover{background-color:#fff;color:#2c3e50}.mobile-nav-section{margin-bottom:1.5rem}.mobile-nav-section,.mobile-nav-section-title{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-family:var(--font-family)}.mobile-nav-section-title{color:#fff;font-size:.875rem;font-weight:600;letter-spacing:.5px;margin-bottom:.5rem;padding:0 1rem;text-transform:uppercase}.mobile-nav-section .nav-link{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-family:var(--font-family);font-size:.95rem;font-weight:500;padding-left:1.5rem}.mobile-nav-nested{margin-bottom:.5rem}.mobile-nav-nested-toggle{align-items:center;background:none;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-family:var(--font-family);font-size:1.1rem;font-weight:500;justify-content:space-between;padding:1rem;text-align:left;transition:background-color .2s ease;width:100%}.mobile-nav-nested-toggle:hover{background-color:#ffffff1a}.mobile-nav-nested-arrow{font-size:.8rem;transition:transform .2s ease}.mobile-nav-nested-arrow.open{transform:rotate(180deg)}.mobile-nav-nested-content{margin-top:.25rem;padding-left:1rem}.mobile-nav-nested-content .nav-link{border-radius:6px;display:block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-family:var(--font-family);font-size:.95rem;font-weight:500;margin-bottom:.25rem;padding:.75rem 1rem}.main-content{flex:1 1;margin:0 auto;max-width:1200px;padding:2rem;width:100%}.card{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:1.5rem;padding:1.5rem}.card-header{border-bottom:1px solid #e0e0e0;margin-bottom:1rem;padding-bottom:1rem}.card-title{color:#2c3e50;font-size:1.5rem;margin:0}.card .btn{width:100%}.form-group{margin-bottom:1.5rem}.form-label{color:#2c3e50;display:block;font-size:.95rem;font-weight:500;margin-bottom:.5rem}.form-control{-webkit-appearance:none;appearance:none;border:1px solid #ddd;border-radius:4px;font-size:1rem;padding:.75rem;transition:border-color .3s;width:100%}.form-control:focus{border-color:#3498db;border-color:var(--secondary-color);box-shadow:0 0 0 2px #3498db33;outline:none}.form-select{-webkit-appearance:none;appearance:none;background-color:#fff;background-image:url('data:image/svg+xml;charset=US-ASCII,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 4 5"><path fill="%23666" d="M2 0L0 2h4zm0 5L0 3h4z"/></svg>');background-position:right .75rem center;background-repeat:no-repeat;background-size:8px 10px;border:1px solid #ddd;border-radius:4px;font-size:1rem;padding:.75rem 2.5rem .75rem .75rem;width:100%}.form-select:focus{border-color:#3498db;box-shadow:0 0 0 2px #3498db33;outline:none}.form-control[type=textarea],textarea.form-control{min-height:100px;resize:vertical}.form-check{align-items:center;display:flex;margin-bottom:.75rem}.form-check-input{cursor:pointer;height:1.25rem;margin-right:.5rem;width:1.25rem}.form-check-label{cursor:pointer;font-weight:400;margin-bottom:0}.btn{border:none;border-radius:4px;cursor:pointer;display:inline-block;font-size:1rem;padding:.75rem 1.5rem;text-align:center;text-decoration:none;transition:all .3s}.btn-primary{background-color:#3498db;background-color:var(--secondary-color);color:#fff}.btn-primary:hover{background-color:#2c3e50;background-color:var(--primary-color)}.btn-success{background-color:#27ae60;color:#fff}.btn-success:hover{background-color:#219a52}.btn-danger{background-color:#e74c3c}.btn-danger:hover{background-color:#c0392b}.btn-secondary{background-color:#95a5a6;color:#fff}.btn-secondary:hover{background-color:#7f8c8d}.btn-outline{background-color:initial;border:2px solid #3498db;border:2px solid var(--secondary-color);color:#3498db;color:var(--secondary-color)}.btn-outline:hover{background-color:#3498db;background-color:var(--secondary-color);color:#fff}.btn-sm{font-size:.875rem;padding:.5rem 1rem}.btn-xs{font-size:.75rem;padding:.25rem .5rem}.btn-link-subtle{background:none;border:none;border-radius:2px;color:#6c757d;cursor:pointer;display:inline-block;font-size:.75rem;padding:.125rem .25rem;text-decoration:none;transition:color .2s ease}.btn-link-subtle:hover{background-color:#0000000d;color:#495057;text-decoration:underline}.btn-link-subtle:focus{outline:1px solid #3498db;outline-offset:1px}.btn-link-subtle:active{box-shadow:none;transform:none}.btn-link-subtle.btn-link-primary{color:#007bff}.btn-link-subtle.btn-link-primary:hover{color:#0056b3}.btn-link-subtle.btn-link-success{color:#28a745}.btn-link-subtle.btn-link-success:hover{color:#1e7e34}.btn-link-subtle.btn-link-danger{color:#dc3545}.btn-link-subtle.btn-link-danger:hover{color:#c82333}.btn-link-subtle:disabled{color:#6c757d;cursor:not-allowed;opacity:.5;text-decoration:none}.btn-link-subtle:disabled:hover{background-color:initial;text-decoration:none}.grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.grid-2{grid-gap:1rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.grid-2,.grid-3{display:grid;gap:1rem}.grid-3{grid-gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.grid-auto{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.flex,.flex-between{align-items:center;display:flex;flex-wrap:wrap;gap:1rem}.flex-between{justify-content:space-between}.flex-end{display:flex;flex-wrap:wrap;gap:1rem;justify-content:flex-end}.flex-start{justify-content:flex-start}.flex-center,.flex-start{align-items:center;display:flex;flex-wrap:wrap;gap:1rem}.flex-center{justify-content:center}.flex-column{display:flex;flex-direction:column;gap:1rem}.flex-nowrap{flex-wrap:nowrap}.table{border-collapse:collapse;margin-top:1rem;width:100%}.table td,.table th{border-bottom:1px solid #e0e0e0;padding:.75rem;text-align:left}.table th{color:#2c3e50;font-weight:600}.table th,.table tr:hover{background-color:#f8f9fa}.mobile-table-cards{display:none}.alert{animation:slideInDown .4s ease-out;border-radius:4px;padding:1rem;position:relative}@keyframes slideInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.alert-success{background-color:#d4edda;border:1px solid #c3e6cb;border-left:4px solid #28a745;color:#155724}.alert-error{background-color:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.alert-info{background-color:#d1ecf1;border:1px solid #bee5eb;color:#0c5460}.auth-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh}.auth-card{background:#fff;border-radius:8px;box-shadow:0 4px 6px #0000001a;max-width:400px;padding:2rem;width:100%}.auth-title{color:#2c3e50;margin-bottom:2rem;text-align:center}.auth-link{margin-top:1rem;text-align:center}.auth-link a{color:#3498db;text-decoration:none}.auth-link a:hover{text-decoration:underline}.loading{align-items:center;display:flex;justify-content:center;padding:2rem}.spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#3498db;height:40px;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.badge{border-radius:4px;display:inline-block;font-size:.75rem;font-weight:500;padding:.25rem .5rem;text-transform:uppercase}.badge-info{background-color:#17a2b8;color:#fff}.badge-primary{background-color:#3498db;color:#fff}.badge-success{background-color:#27ae60;color:#fff}.badge-warning{background-color:#f39c12;color:#fff}.badge-secondary{background-color:#95a5a6;color:#fff}.badge-danger{background-color:#e74c3c;color:#fff}.text-muted{color:#6c757d}.text-danger{color:#dc3545}.text-success{color:#28a745}.text-info{color:#17a2b8}.text-warning{color:#ffc107}@media (max-width:768px){.navbar{padding:1rem}.navbar-nav{display:none}.mobile-menu-toggle,.mobile-nav-menu.active,.mobile-nav-overlay.active{display:block}.main-content{padding:1rem}.grid{grid-template-columns:1fr}.flex-between,.flex-end{gap:1rem}.flex,.flex-between,.flex-end{align-items:stretch;flex-direction:column}.card{margin-bottom:1rem;padding:1rem}.card-title{font-size:1.25rem}.card.btn{margin:1rem;width:100%}.btn{font-size:1rem;min-height:44px;padding:.875rem 1.5rem}.btn-sm{font-size:.9rem;min-height:40px;padding:.75rem 1rem}.btn-xs{font-size:.8rem;min-height:36px;padding:.5rem .75rem}.form-control,.form-select{font-size:1rem;min-height:44px;padding:.875rem}.table{display:none}.mobile-table-cards{display:block}.mobile-table-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:1rem;padding:1rem}.mobile-table-card:hover{box-shadow:0 4px 8px #00000026;transform:translateY(-1px);transition:all .2s ease}.mobile-card-header{align-items:center;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;margin-bottom:.75rem;padding-bottom:.5rem}.mobile-card-title{color:#2c3e50;font-size:1.1rem;font-weight:600}.mobile-card-actions{align-items:center;gap:.5rem;justify-content:flex-end}.mobile-card-body{display:flex;flex-direction:column;gap:.5rem}.mobile-card-row{align-items:center;display:flex;justify-content:space-between;padding:.25rem 0}.mobile-card-label{color:#6c757d;font-size:.9rem;font-weight:500}.mobile-card-value{align-items:center;color:#2c3e50;display:flex;flex:1 1;font-weight:500;margin-left:1rem;text-align:right}.mobile-card-value,.mobile-card-value .competition-levels{justify-content:flex-end}.mobile-card-value .badge,.mobile-card-value .level-badge{display:inline-block;flex-shrink:0;margin-left:.5rem;width:auto}.mobile-search-input{border:2px solid #e0e0e0;border-radius:8px;font-size:1.1rem;padding:.75rem}.mobile-filter-controls{margin-top:1rem}.mobile-filter-row{display:flex;gap:.75rem;margin-bottom:.75rem}.mobile-filter-group{flex:1 1}.mobile-filter-label{color:#6c757d;display:block;font-size:.875rem;font-weight:600;margin-bottom:.25rem}.mobile-gymnast-header{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:0 0 16px 16px;box-shadow:0 4px 12px #0000001a;color:#fff;margin-bottom:16px;padding:16px}.mobile-header-content{align-items:center;display:flex;justify-content:space-between}.mobile-page-title{color:#fff;font-size:24px;font-weight:700;margin:0}.session-toggle-btn{align-items:center;background:#f8f9fa;border:2px solid #dee2e6;border-radius:50%;color:#6c757d;cursor:pointer;display:flex;flex-shrink:0;font-size:16px;height:32px;justify-content:center;transition:all .2s ease;width:32px}.session-toggle-btn:hover{background:#e9ecef;border-color:#adb5bd}.session-toggle-btn.in-session{background:#007bff;border-color:#007bff;color:#fff}.skill-tracker-card.in-session{background:linear-gradient(135deg,#f0f8ff,#e6f3ff);border:2px solid #007bff}.session-filter-prominent{margin-top:12px}.session-filter-btn{align-items:center;background:#f8f9fa;border:2px solid #dee2e6;border-radius:8px;color:#495057;cursor:pointer;display:flex;font-size:16px;font-weight:500;gap:8px;padding:12px 16px;transition:all .2s ease;width:100%}.session-filter-btn:hover{background:#e9ecef;border-color:#adb5bd}.session-filter-btn.active{background:#007bff;border-color:#007bff;color:#fff}.session-filter-icon{font-size:18px}.session-filter-text{flex:1 1;text-align:left}.desktop-header,.desktop-layout{display:none}.mobile-layout{display:block}.mobile-filter-select{border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;padding:.75rem;width:100%}.mobile-archive-toggle{margin-top:.5rem}.mobile-checkbox-label{align-items:center;color:#2c3e50;cursor:pointer;display:flex;font-size:1rem;font-weight:500;gap:.5rem}.mobile-checkbox{accent-color:#2c3e50;accent-color:var(--primary-color);height:1.25rem;width:1.25rem}.mobile-checkbox-text{-webkit-user-select:none;user-select:none}.skill-tracker-card{border:2px solid #e0e0e0;border-radius:12px;margin-bottom:.75rem;padding:1rem;transition:all .2s ease}.skill-tracker-card:active{border-color:#2c3e50;border-color:var(--primary-color);transform:scale(.98)}.skill-tracker-card .mobile-card-header{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;margin-bottom:.75rem;padding-bottom:.5rem}.skill-tracker-card .mobile-card-title{color:#2c3e50;font-size:1.2rem;font-weight:700}.mobile-card-age{background:#f8f9fa;border-radius:6px;color:#6c757d;font-size:.9rem;font-weight:500;padding:.25rem .5rem}.mobile-card-main-info{margin-bottom:.75rem}.mobile-card-level{margin-bottom:.5rem}.level-info{display:flex;flex-direction:column;gap:.25rem}.level-number{color:#2c3e50;color:var(--primary-color);font-size:1.1rem;font-weight:700}.level-name{color:#6c757d;font-size:.9rem;font-weight:500}.mobile-card-competition{margin-top:.5rem}.competition-info{display:flex;flex-direction:column;gap:.25rem}.competition-label{color:#6c757d;font-size:.8rem;letter-spacing:.5px;text-transform:uppercase}.competition-badges{display:flex;flex-wrap:wrap;gap:.25rem}.competition-badge{background:var(--success-color);border-radius:4px;color:#fff;font-size:.75rem;font-weight:600;padding:.25rem .5rem}.mobile-card-actions{border-top:1px solid #f0f0f0;display:flex;justify-content:center;padding-top:.5rem}.mobile-quick-action{background:#2c3e50;background:var(--primary-color);border:none;border-radius:8px;box-shadow:0 2px 4px #0000001a;color:#fff;font-size:1rem;font-weight:600;padding:.75rem;width:100%}.mobile-quick-action:active{box-shadow:0 1px 2px #0000001a;transform:scale(.98)}.mobile-quick-nav{border-top:1px solid #e0e0e0;margin-top:1rem;padding-top:1rem}.mobile-quick-nav-toggle{align-items:center;background:#f8f9fa;border:2px solid #e0e0e0;border-radius:8px;color:#2c3e50;cursor:pointer;display:flex;font-size:1rem;font-weight:600;justify-content:space-between;padding:.75rem;transition:all .2s ease;width:100%}.mobile-quick-nav-toggle:hover{background:#e9ecef;border-color:#2c3e50;border-color:var(--primary-color)}.quick-nav-arrow{font-size:.8rem;transition:transform .2s ease}.quick-nav-arrow.open{transform:rotate(180deg)}.mobile-quick-nav-list{background:#fff;border:1px solid #e0e0e0;border-radius:8px;margin-top:.5rem;max-height:300px;overflow-y:auto}.mobile-quick-nav-item{align-items:center;background:#fff;border:none;border-bottom:1px solid #f0f0f0;cursor:pointer;display:flex;justify-content:space-between;padding:.75rem;text-align:left;transition:background-color .2s ease;width:100%}.mobile-quick-nav-item:last-child{border-bottom:none}.mobile-quick-nav-item:hover{background:#f8f9fa}.mobile-quick-nav-item:active{background:#e9ecef}.quick-nav-name{color:#2c3e50;font-size:1rem;font-weight:600}.quick-nav-level{background:#f8f9fa;border-radius:4px;color:#6c757d;font-size:.875rem;font-weight:500;padding:.25rem .5rem}.mobile-loading{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:200px;padding:2rem}.mobile-loading .spinner{border-width:4px;height:3rem;width:3rem}.loading-text{color:#6c757d;font-size:1.1rem;font-weight:500;margin-top:1rem}.desktop-level-progress{display:none}.mobile-progress-header{background:linear-gradient(135deg,#2c3e50,#3498db);background:linear-gradient(135deg,var(--primary-color),#3498db);border-radius:12px;box-shadow:0 4px 12px #00000026;color:#fff;margin-bottom:1rem;padding:1.5rem 1rem;position:-webkit-sticky;position:sticky;top:0;z-index:100}.gymnast-name-mobile{color:#fff;font-size:1.5rem;font-weight:700;margin:0 0 1rem}.current-level-mobile{display:flex;justify-content:center;margin-bottom:1rem}.level-badge-mobile{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border-radius:16px;display:flex;flex-direction:column;padding:.375rem .75rem}.level-badge-mobile.not-started{background:#ffffff1a;color:#fffc}.level-number-mobile{font-size:1rem;font-weight:700}.level-name-mobile{font-size:.8rem;opacity:.9}.quick-stats-mobile{display:none}.stat-item{align-items:center;display:flex;flex-direction:column;gap:.25rem}.stat-number{color:#fff}.stat-label{opacity:.9;text-align:center}.mobile-levels-container{display:flex;flex-direction:column;gap:1rem}.mobile-level-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;overflow:hidden;transition:all .3s ease}.mobile-level-card.current{border:2px solid #2c3e50;border:2px solid var(--primary-color);box-shadow:0 4px 16px #3498db33}.mobile-level-card.completed{background:#f8fff8;border:2px solid var(--success-color)}.mobile-level-card.side-track{border-left:4px solid var(--warning-color)}.mobile-level-header{cursor:pointer;padding:1rem;transition:background-color .2s ease}.mobile-level-header:active{background-color:#f8f9fa}.level-title-section{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:.75rem}.level-title{display:flex;flex-direction:column;gap:.25rem}.level-identifier{color:#2c3e50;color:var(--primary-color);font-size:1.2rem;font-weight:700}.level-name{color:#2c3e50;font-size:1rem;font-weight:600}.side-track-indicator{align-self:flex-start;background:var(--warning-color);border-radius:4px;color:#fff;font-size:.75rem;font-weight:600;padding:.25rem .5rem}.level-status{align-items:center;display:flex}.status-badge{border-radius:20px;font-size:.875rem;font-weight:600;padding:.5rem .75rem}.status-badge.completed{background:var(--success-color);color:#2c3e50;color:var(--primary-color)}.status-badge.current{background:#2c3e50;background:var(--primary-color);color:#fff}.status-badge.pending{background:#f8f9fa;border:1px solid #e0e0e0;color:#6c757d}.level-progress-section{align-items:center;display:flex;gap:1rem;justify-content:space-between}.progress-bar-container{align-items:center;display:flex;flex:1 1;gap:.75rem}.progress-bar{background:#e0e0e0;border-radius:4px;flex:1 1;height:8px;overflow:hidden}.progress-fill{background:#2c3e50;background:var(--primary-color);height:100%;transition:width .3s ease}.progress-text{color:#6c757d;font-size:.875rem;font-weight:600;min-width:60px;text-align:right}.expand-indicator{color:#6c757d;font-size:1.2rem;transition:transform .2s ease}.mobile-level-content{border-top:1px solid #f0f0f0;padding:0 1rem 1rem}.competition-info-mobile{background:#f8f9fa;border-radius:8px;margin-bottom:1rem;padding:.75rem}.competition-label{color:#495057;display:block;font-size:.875rem;font-weight:600;margin-bottom:.5rem}.competition-badges-mobile{display:flex;flex-wrap:wrap;gap:.5rem}.competition-badge-mobile{background:#28a745;border:1px solid #28a745;border-radius:12px;color:#fff;font-size:.875rem;font-weight:600;padding:.25rem .75rem}.mobile-quick-actions{background:#f8f9fa;border-radius:8px;margin-bottom:1rem;padding:1rem}.quick-actions-row{display:flex;gap:.5rem}.quick-action-btn{border:none;border-radius:8px;flex:1 1;font-size:.875rem;font-weight:600;padding:.75rem;transition:all .2s ease}.quick-action-btn.complete-all{background:#28a745;border:2px solid #28a745;color:#fff}.quick-action-btn.progress-all{background:#ffc107;border:2px solid #ffc107;color:#212529}.quick-action-btn.reset-all{background:#6c757d;border:2px solid #6c757d;color:#fff}.quick-action-btn:active{transform:scale(.98)}.mobile-skills-section{margin-top:1rem}.skills-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.skills-header h4{color:#2c3e50;font-size:1.1rem;font-weight:700;margin:0}.complete-level-btn{font-size:.875rem;font-weight:600;padding:.5rem .75rem}.mobile-skills-list{display:flex;flex-direction:column;gap:.75rem}.mobile-skill-item{align-items:center;background:#fff;border:1px solid #e0e0e0;border-radius:8px;display:flex;justify-content:space-between;padding:1rem;transition:all .2s ease}.mobile-skill-item.completed{background:#f8fff8;border-color:var(--success-color)}.mobile-skill-item.in_progress{background:#fffbf0;border-color:var(--warning-color)}.skill-main-info{align-items:center;display:flex;flex:1 1;justify-content:space-between}.skill-name-mobile{color:#2c3e50;font-size:1rem;font-weight:600}.skill-status-mobile{margin-left:1rem}.status-icon{font-size:1.5rem;font-weight:700}.status-icon.not_started{color:#6c757d}.status-icon.in_progress{color:var(--warning-color)}.status-icon.completed{color:var(--success-color)}.skill-actions-mobile{display:flex;gap:.5rem;margin-left:1rem}.status-btn{align-items:center;background:#fff;border:2px solid #e0e0e0;border-radius:50%;cursor:pointer;display:flex;font-size:1.2rem;font-weight:700;height:2.5rem;justify-content:center;transition:all .2s ease;width:2.5rem}.status-btn.not-started{color:#6c757d}.status-btn.in-progress{color:var(--warning-color)}.status-btn.completed{color:var(--success-color)}.status-btn.active{background:#2c3e50;background:var(--primary-color);border-color:#2c3e50;border-color:var(--primary-color);color:#fff}.status-btn:active{transform:scale(.95)}.mobile-routine-section{border-top:1px solid #e0e0e0;margin-top:1rem;padding-top:1rem}.mobile-routine-section .routine-header h4{color:#2c3e50;font-size:1.1rem;font-weight:700;margin:0 0 1rem}.mobile-routine-list{display:flex;flex-direction:column;gap:.75rem}.mobile-routine-item{background:#fff;border:1px solid #e0e0e0;border-radius:8px;display:flex;flex-direction:column;padding:1rem;transition:all .2s ease}.mobile-routine-item.completed{background:#f8fff8;border-color:var(--success-color)}.routine-main-info{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:.75rem}.routine-name-mobile{color:#2c3e50;flex:1 1;font-size:1rem;font-weight:600}.routine-status-mobile{margin-left:1rem}.routine-status-badge{border-radius:12px;font-size:.875rem;font-weight:600;padding:.25rem .5rem}.routine-status-badge.completed{background:#28a745;color:#fff}.routine-status-badge.not_started{background:#f8f9fa;border:1px solid #e0e0e0;color:#6c757d}.routine-actions-mobile{display:flex;gap:.5rem;margin-bottom:.75rem}.routine-status-btn{align-items:center;background:#fff;border:2px solid #e0e0e0;border-radius:50%;cursor:pointer;display:flex;font-size:1.2rem;font-weight:700;height:2.5rem;justify-content:center;transition:all .2s ease;width:2.5rem}.routine-status-btn.not-started{color:#6c757d}.routine-status-btn.completed{color:#28a745}.routine-status-btn.active{background:#2c3e50;background:var(--primary-color);border-color:#2c3e50;border-color:var(--primary-color);color:#fff}.routine-status-btn:active{transform:scale(.95)}.routine-skills-mobile{margin-top:.5rem}.routine-skills-label{color:#495057;font-size:.875rem;font-weight:600;margin-bottom:.5rem}.routine-skills-badges{display:flex;flex-wrap:wrap;gap:.5rem}.routine-skill-badge{background:#e9ecef;border:1px solid #dee2e6;border-radius:8px;color:#495057;font-size:.8rem;font-weight:500;padding:.25rem .5rem}.mobile-coaching-menu{margin-bottom:1rem}.coaching-menu-toggle{align-items:center;background:#2c3e50;background:var(--primary-color);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:600;justify-content:space-between;padding:1rem;transition:all .2s ease;width:100%}.coaching-menu-toggle:active{background:#2980b9}.menu-arrow{font-size:1.2rem;transition:transform .2s ease}.menu-arrow.open{transform:rotate(180deg)}.coaching-menu-dropdown{background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 4px 12px #0000001a;margin-top:.5rem;overflow:hidden}.coaching-menu-item{background:#fff;border:none;border-bottom:1px solid #f0f0f0;color:#2c3e50;cursor:pointer;font-size:1rem;font-weight:500;padding:1rem;text-align:left;transition:background-color .2s ease;width:100%}.coaching-menu-item:last-child{border-bottom:none}.coaching-menu-item:hover{background:#f8f9fa}.coaching-menu-item.active{background:#2c3e50;background:var(--primary-color);color:#fff}.coaching-menu-item:active{background:#2980b9}.desktop-coaching-tabs,.desktop-progress-summary{display:none}@media (min-width:768px){.desktop-level-progress{display:block}.desktop-coaching-tabs{display:flex}.desktop-progress-summary{display:block}.mobile-coaching-menu,.mobile-levels-container,.mobile-progress-header{display:none}.desktop-header{display:block}.mobile-gymnast-header,.mobile-layout{display:none}.desktop-layout{display:block}}@media (max-width:767px){.desktop-layout{display:none}.mobile-layout{display:block}.desktop-coaching-tabs,.desktop-level-progress,.desktop-progress-summary{display:none}}.admin-tabs{border-bottom:1px solid #dee2e6;display:flex;gap:.5rem;margin-bottom:2rem}.tab-btn{background:none;border:none;border-bottom:2px solid #0000;color:#6c757d;cursor:pointer;padding:.75rem 1.5rem;transition:all .2s ease}.tab-btn.active,.tab-btn:hover{background-color:#f8f9fa;color:#007bff}.tab-btn.active{border-bottom-color:#007bff}.admin-overview{grid-gap:2rem;display:grid;gap:2rem}.stats-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.stat-card{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:1.5rem;text-align:center}.stat-card h3{color:#007bff;font-size:2rem;margin:0 0 .5rem}.stat-card p{color:#6c757d;font-weight:500;margin:0}.recent-activity{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:1.5rem}.activity-list{display:flex;flex-direction:column;gap:.75rem}.activity-item{background:#f8f9fa;border-radius:6px;justify-content:space-between;padding:.75rem}.activity-item,.activity-user{align-items:center;display:flex}.activity-user{gap:.5rem}.clubs-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.club-card{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:1.5rem}.club-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.club-header h3{color:#333;margin:0}.club-stats{display:flex;gap:1rem;margin-bottom:1rem}.stat{text-align:center}.stat-number{color:#007bff;display:block;font-size:1.5rem;font-weight:700}.stat-label{color:#6c757d;font-size:.875rem}.club-info p{font-size:.875rem;margin:.25rem 0}.club-admins{border-top:1px solid #dee2e6;margin-top:1rem;padding-top:1rem}.club-admins h4{font-size:1rem;margin:0 0 .5rem}.admin-item{align-items:center;display:flex;font-size:.875rem;gap:.5rem;margin:.25rem 0}.search-controls{margin-bottom:1.5rem}.search-controls input{max-width:400px}.gymnasts-table,.users-table{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden}.gymnasts-table .table,.users-table .table{margin:0}.pagination{align-items:center;background:#f8f9fa;display:flex;gap:1rem;justify-content:center;padding:1rem}.club-details-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.detail-section{background:#f8f9fa;border-radius:6px;padding:1rem}.detail-section h4{color:#333;margin:0 0 1rem}.detail-section p{font-size:.875rem;margin:.5rem 0}.gymnasts-list,.users-list{display:flex;flex-direction:column;gap:.5rem}.gymnast-item,.user-item{align-items:center;background:#fff;border-radius:4px;display:flex;font-size:.875rem;gap:.5rem;padding:.5rem}@media (max-width:768px){.admin-tabs{flex-wrap:wrap}.tab-btn{font-size:.875rem;padding:.5rem 1rem}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.clubs-grid{grid-template-columns:1fr}.club-stats{justify-content:space-around}.gymnasts-table,.users-table{overflow-x:auto}.club-details-grid{grid-template-columns:1fr}}h1{font-size:1.75rem}h2{font-size:1.5rem}h3{font-size:1.25rem}.current-level,.progress-stats{flex-direction:column;gap:1rem;text-align:center}.level-badge{font-size:.9rem;margin:0;padding:.75rem 1rem}.skill-card{gap:.75rem;padding:1rem}.skill-card,.skill-header{align-items:stretch;flex-direction:column}.skill-header{gap:.5rem}.skill-name{font-size:1.1rem}.skill-controls{flex-direction:column;gap:.5rem}.skill-controls .btn{font-size:.9rem;padding:.75rem;width:100%}.progress-controls{flex-direction:column;gap:1rem}.status-buttons{flex-direction:row;flex-wrap:wrap;gap:.5rem}.status-buttons .btn{font-size:.9rem;padding:.75rem;width:100%}.level-buttons{flex-direction:column;gap:.5rem}.level-buttons .btn{font-size:.9rem;padding:.75rem;width:100%}.coaching-tabs{flex-direction:column;gap:.5rem}.tab-btn{font-size:.9rem;padding:.75rem;width:100%}.progress-header{flex-direction:column;gap:1rem;text-align:center}.routine-header{flex-direction:column;gap:.75rem}.routine-controls{flex-direction:column;gap:.5rem}.routine-controls .btn{font-size:.9rem;padding:.75rem;width:100%}.form-actions{flex-direction:column;gap:.75rem}.form-actions .btn{font-size:1rem;padding:.875rem;width:100%}.modal-actions{flex-direction:column;gap:.75rem}.modal-actions .btn{font-size:1rem;padding:.875rem;width:100%}.competition-header{flex-direction:column;gap:.75rem}.competition-actions{flex-direction:column;gap:.5rem}.competition-actions .btn{font-size:.9rem;padding:.75rem;width:100%}.guardian-tags{justify-content:flex-start}.tag{font-size:.8rem;padding:.375rem .75rem}.badge,.competition-badge{font-size:.7rem;padding:.375rem .5rem}.competition-badge{margin:.125rem}.level-header{flex-direction:column;gap:.75rem}.level-title-row{flex-direction:column;gap:.5rem}.collapse-toggle{align-self:flex-start;font-size:.9rem;padding:.5rem .75rem}.skill-progress-card{margin-bottom:1rem;padding:1rem}.skill-progress-card .skill-header{flex-direction:column;gap:.5rem}.skill-progress-card .progress-controls{margin-top:.75rem}.view-controls{flex-direction:column;gap:.5rem}.view-controls button{font-size:.9rem;padding:.75rem;width:100%}}@media (min-width:769px) and (max-width:1024px){.main-content{padding:1.5rem}.grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.btn{padding:.75rem 1.25rem}.skill-progress-card{padding:1rem}.progress-stats{gap:1.5rem}.coaching-tabs .tab-btn,.level-buttons .btn,.status-buttons .btn{font-size:.95rem;padding:.6rem 1rem}}@media (min-width:576px) and (max-width:768px){.card,.main-content{padding:1.25rem}.btn{font-size:.95rem;padding:.8rem 1.4rem}.form-actions{flex-direction:row;gap:.75rem}.form-actions .btn{flex:1 1;width:auto}.modal-actions{flex-direction:row;gap:.75rem}.modal-actions .btn{flex:1 1;width:auto}.status-buttons{flex-direction:row;flex-wrap:wrap}.status-buttons .btn{width:100%}.guardian-email-input{align-items:stretch;flex-direction:column;gap:.75rem}.guardian-email-input .btn{font-size:16px;padding:12px;width:100%}.guardian-tags{gap:.75rem}.tag{font-size:14px;padding:.5rem .75rem}}.guardian-email-input{align-items:center;display:flex;gap:.5rem}.guardian-email-input input{flex:1 1}.guardian-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.tag{align-items:center;background-color:#e3f2fd;border:1px solid #bbdefb;border-radius:20px;color:#1976d2;display:inline-flex;font-size:.875rem;gap:.5rem;padding:.25rem .75rem}.tag-remove{background:none;border:none;color:#1976d2;cursor:pointer;font-size:1rem;line-height:1;margin-left:.25rem;padding:0}.tag-remove:hover{color:#d32f2f}.progress-summary{background-color:#f8f9fa;border-radius:8px;margin-bottom:1rem;padding:1rem}.progress-stats{display:flex;gap:2rem;margin-bottom:1rem}.stat-number{color:#3498db;font-size:1.5rem;font-weight:700}.current-level{align-items:center;background-color:#e8f5e8;border-radius:8px;display:flex;gap:3rem;margin-bottom:1rem;padding:1rem}.level-badge{background-color:#28a745;border-radius:20px;color:#fff;font-size:.875rem;font-weight:700;margin-left:1rem;padding:.5rem 1rem}.level-badge.clickable{transition:all .2s ease}.level-badge.clickable:hover{background-color:#218838;box-shadow:0 2px 4px #0000001a;transform:translateY(-1px)}.skills-grid{display:flex;flex-direction:column;gap:.5rem;margin-top:1rem}.skill-card{align-items:center;background-color:#f8f9fa;border:1px solid #e0e0e0;border-radius:8px;display:flex;justify-content:space-between;padding:.75rem 1rem}.skill-completed{background-color:#e8f5e8;border-color:#28a745}.skill-name{flex:1 1;font-size:1rem;font-weight:600;margin-bottom:.1rem;margin-top:.1rem}.skill-status{align-items:center;display:flex;gap:.5rem;margin-top:.1rem}.skill-status.completed{color:#28a745}.skill-status.in-progress{color:#ffc107}.skill-status.not-started{color:#6c757d}.skill-controls{display:flex;gap:.25rem}.skill-controls .btn{border:1px solid #e0e0e0;border-radius:4px;font-size:.75rem;min-width:2rem;padding:.25rem .5rem}.skill-controls .btn-xs{font-size:.7rem;padding:.2rem .4rem}.skill-controls .btn-outline{background:#fff;color:#6c757d}.skill-controls .btn-outline:hover{background:#f8f9fa}.skill-controls .btn-secondary{background:#6c757d;border-color:#6c757d;color:#fff}.skill-controls .btn-warning{background:#ffc107;border-color:#ffc107;color:#212529}.skill-controls .btn-success{background:#28a745;border-color:#28a745;color:#fff}.level-progress-list{display:flex;flex-direction:column;gap:1.5rem;padding:1rem}.level-progress-item{background-color:#f8f9fa;border:1px solid #e0e0e0;border-radius:8px;padding:1.5rem}.level-progress-item.completed{background-color:#e8f5e8;border-color:#28a745}.level-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.level-info h5{color:#2c3e50;font-size:1.2rem;margin:0 0 .5rem}.level-stats{align-items:center;display:flex;gap:1rem}.progress-text{color:#6c757d;font-size:.875rem}.progress-bar-container{align-items:center;display:flex;gap:.5rem;min-width:200px}.progress-bar{background-color:#e0e0e0;border-radius:4px;flex:1 1;height:8px;overflow:hidden}.progress-fill{background-color:#3498db;height:100%;transition:width .3s ease}.level-progress-item.completed .progress-fill{background-color:#28a745}.progress-percentage{color:#2c3e50;font-size:.875rem;font-weight:700;min-width:40px;text-align:right}.completed-skills{border-top:1px solid #e0e0e0;margin-top:1rem;padding-top:1rem}.completed-skills h6{color:#2c3e50;margin:0 0 1rem}.guardian-list{display:flex;flex-direction:column;gap:1rem;padding:1rem}.guardian-item{align-items:center;background-color:#f8f9fa;border:1px solid #e0e0e0;border-radius:8px;display:flex;justify-content:space-between;padding:1rem}.guardian-item strong{color:#2c3e50}@media (max-width:768px){.level-header{align-items:flex-start;flex-direction:column;gap:1rem}.progress-bar-container{min-width:0;min-width:auto;width:100%}.level-stats{align-items:flex-start;flex-direction:column;gap:.5rem}.progress-stats{flex-direction:column;gap:1rem}.guardian-item{align-items:flex-start;flex-direction:column;gap:.5rem}}.coaching-interface{margin:2rem 0}.coaching-tabs{border-bottom:1px solid #dee2e6;display:flex;gap:.5rem;margin-bottom:1rem;padding-bottom:.5rem}.tab-btn{background:#f8f9fa;border:none;border-radius:4px 4px 0 0;color:#495057;cursor:pointer;padding:.5rem 1rem;transition:all .2s ease}.tab-btn:hover{background:#e9ecef}.tab-btn.active{background:#007bff;border-bottom:2px solid #007bff;color:#fff}.coaching-content{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:1.5rem}.progress-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.coaching-controls{display:flex;gap:.5rem}.level-selector{margin-bottom:2rem}.skill-progress-tracker{margin-top:2rem}.skills-section{margin-bottom:2rem}.skill-progress-card{background:#fff;border:1px solid #dee2e6;border-radius:8px;padding:1rem;transition:all .2s ease}.skill-progress-card:hover{box-shadow:0 4px 8px #0000001a}.skill-progress-card.completed{background:#f8fff9;border-color:#28a745}.skill-progress-card.in_progress{background:#fffdf5;border-color:#ffc107}.skill-progress-card.not_started{background:#f8f9fa;border-color:#6c757d}.skill-header{align-items:center;display:flex;justify-content:space-between}.progress-controls{margin-top:1rem}.status-buttons{display:flex;flex-wrap:wrap;gap:.5rem}.status-buttons .btn{flex:1 1;min-width:100px}.progress-info{border-top:1px solid #dee2e6;font-size:.9rem;margin-top:1rem;padding-top:1rem}.completion-date,.marked-by,.progress-notes{color:#6c757d;margin-bottom:.5rem}.progress-notes{font-style:italic}.routines-section{margin-top:2rem}.routines-list{grid-gap:1rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));margin-top:1rem}.routine-skills-grid{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.routine-skill{align-items:center;background:#f8f9fa;border-radius:4px;display:flex;font-size:.9rem;gap:.5rem;padding:.25rem .5rem}.routine-skill.completed{background:#d4edda;color:#155724}.routine-skill.not_started{background:#f8f9fa;color:#6c757d}.routine-skill .status{font-weight:700}.level-progress-tracker{margin-top:2rem}.level-progress-content{padding:1rem}.current-progress{background:#f8f9fa;border-radius:8px;margin-bottom:1.5rem;padding:1rem}.progress-details{display:flex;flex-direction:column;gap:.5rem}.notes-section,.routine-selection{margin-bottom:1.5rem}.routine-header{align-items:center}.skills-list{list-style:none;margin:0;padding:0}.skill-item{border-bottom:1px solid #f8f9fa;padding:.25rem 0}.skill-item:last-child{border-bottom:none}.file-info{background:#f8f9fa;border:1px solid #dee2e6;border-radius:4px;margin:1rem 0;padding:1rem}.file-info p{margin:.25rem 0}.checkbox-group{display:flex;flex-direction:column;gap:.5rem}.checkbox-label{align-items:center;cursor:pointer;display:flex;font-weight:400;gap:.5rem}.checkbox-label input[type=checkbox]{margin:0}.button-group{display:flex;gap:.5rem;margin-top:1rem}.stats-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:1.5rem}.stat-item{background:#f8f9fa;border:1px solid #dee2e6;border-radius:4px;padding:1rem;text-align:center}.stat-value{color:#007bff;font-size:2rem;font-weight:700;margin-bottom:.25rem}.stat-label{color:#6c757d;font-size:.875rem;font-weight:500}.preview-table{margin-top:1.5rem}.preview-table h4{margin-bottom:1rem}.errors-section{background:#fff5f5;border:1px solid #fed7d7;border-radius:4px;margin-top:1.5rem;padding:1rem}.errors-section h4{color:#e53e3e;margin-bottom:1rem}.error-list{display:flex;flex-direction:column;gap:.5rem}.error-item{background:#fed7d7;border-radius:4px;color:#742a2a;padding:.5rem}.imported-section{background:#f0fff4;border:1px solid #9ae6b4;border-radius:4px;margin-top:1.5rem;padding:1rem}.imported-section h4{color:#22543d;margin-bottom:1rem}.imported-list{display:flex;flex-direction:column;gap:.5rem}.imported-item{background:#c6f6d5;border-radius:4px;color:#22543d;padding:.5rem}@media (max-width:768px){.coaching-tabs,.progress-header{flex-direction:column}.progress-header{align-items:flex-start;gap:1rem}.level-buttons{justify-content:center}.status-buttons{flex-direction:row;flex-wrap:wrap}.routines-list{grid-template-columns:1fr}}.progress-history{margin-top:1rem}.view-controls{display:flex;gap:.5rem}.history-summary{background:#f8f9fa;border-radius:8px;margin:1rem;padding:1.5rem}.summary-stats{display:flex;gap:2rem;justify-content:space-around;margin-bottom:1.5rem}.summary-stats .stat-item{text-align:center}.summary-stats .stat-number{color:#007bff;font-size:2rem;font-weight:700}.summary-stats .stat-label{color:#6c757d;font-size:.9rem;margin-top:.5rem}.journey-info{border-top:1px solid #dee2e6;padding-top:1rem;text-align:center}.journey-info p{color:#495057;margin:.5rem 0}.no-history{color:#6c757d;padding:3rem 1rem;text-align:center}.no-history p{margin:.5rem 0}.timeline-view{padding:1rem}.timeline{max-width:100%;position:relative}.timeline:before{background:#dee2e6;bottom:0;content:"";left:2rem;position:absolute;top:0;width:2px}.timeline-month{margin-bottom:3rem;position:relative}.timeline-marker{align-items:center;display:flex;margin-bottom:1rem;position:relative}.timeline-marker:before{background:#007bff;border:3px solid #fff;border-radius:50%;box-shadow:0 0 0 3px #007bff;content:"";height:1rem;left:1.5rem;position:absolute;width:1rem}.timeline-date{color:#2c3e50;font-size:1.2rem;font-weight:700;margin-left:3rem}.timeline-stats{display:flex;gap:1rem;margin-left:1rem}.month-stat{border-radius:12px;font-size:.8rem;font-weight:500;padding:.25rem .75rem}.month-stat.skills{background:#d4edda;color:#155724}.month-stat.levels{background:#fff3cd;color:#856404}.timeline-content{border-left:2px solid #f8f9fa;margin-left:4rem;padding-left:1rem}.timeline-item{align-items:flex-start;background:#fff;border-left:4px solid #0000;border-radius:8px;box-shadow:0 2px 4px #0000001a;display:flex;gap:1rem;margin-bottom:1.5rem;padding:1rem}.timeline-item.level-item{border-left-color:#ffc107}.timeline-item.skill-item{border-left-color:#28a745}.item-icon{font-size:1.5rem;min-width:2rem;text-align:center}.item-content{flex:1 1}.item-title{color:#2c3e50;margin:0 0 .5rem}.item-description{color:#6c757d;font-size:.9rem;margin-bottom:.5rem}.routine-info{color:#495057;font-weight:500}.item-meta{color:#6c757d;display:flex;font-size:.85rem;gap:1rem;margin-bottom:.5rem}.coach-info{font-style:italic}.item-notes{background:#f8f9fa;border-left:3px solid #007bff;border-radius:4px;color:#495057;font-size:.9rem;margin-top:.5rem;padding:.5rem}.detailed-view{padding:1rem}.history-list{display:flex;flex-direction:column;gap:1rem}.history-item{background:#fff;border:1px solid #dee2e6;border-radius:8px;padding:1.5rem;transition:all .2s ease}.history-item:hover{box-shadow:0 4px 8px #0000001a}.history-item.level-history-item{border-left:4px solid #ffc107}.history-item.skill-history-item{border-left:4px solid #28a745}.history-item-header{align-items:center;display:flex;gap:1rem;margin-bottom:1rem}.item-type-icon{font-size:1.5rem;min-width:2rem;text-align:center}.item-info{flex:1 1}.item-info h6{color:#2c3e50;margin:0 0 .25rem}.item-subtitle{color:#6c757d;font-size:.9rem}.item-completion{text-align:right}.completion-date{color:#2c3e50;font-weight:600}.completion-time{color:#6c757d;font-size:.85rem}.history-item-details{border-top:1px solid #f8f9fa;padding-top:1rem}.history-item-details .coach-info{color:#495057;margin-bottom:.5rem}.history-item-details .notes{background:#f8f9fa;border-left:3px solid #007bff;border-radius:4px;color:#495057;padding:.75rem}@media (max-width:768px){.summary-stats{flex-direction:column;gap:1rem}.timeline:before{left:1rem}.timeline-marker:before{left:.5rem}.timeline-date{font-size:1rem}.timeline-content,.timeline-date{margin-left:2rem}.timeline-item{flex-direction:column;text-align:center}.history-item-header,.item-meta{flex-direction:column;gap:.5rem}.history-item-header,.item-completion{text-align:center}.view-controls{flex-direction:column;width:100%}.view-controls button{width:100%}}.level-routines{border-top:1px solid #dee2e6;margin-top:1.5rem;padding-top:1rem}.level-routines h6{color:#495057;font-weight:600;margin-bottom:1rem}.routine-card{background:#fff;border:1px solid #dee2e6;border-radius:8px;margin-bottom:1rem;transition:all .2s ease}.routine-card:hover{box-shadow:0 2px 4px #0000001a}.routine-card.routine-completed{background:#f8fff9;border-color:#28a745}.routine-card.routine-not_started{background:#f8f9fa;border-color:#6c757d}.routine-header{margin-bottom:1rem}.routine-info{flex:1 1}.routine-name{color:#495057;font-weight:600;margin-bottom:.5rem}.routine-status{align-items:center;display:flex;gap:.5rem}.routine-controls{display:flex;flex-wrap:wrap;gap:.5rem}.routine-controls .btn{background:#fff;border:1px solid #dee2e6;border-radius:4px;cursor:pointer;font-size:.875rem;padding:.25rem .75rem;transition:all .2s ease}.routine-controls .btn:hover{background:#f8f9fa}.routine-controls .btn-secondary{background:#6c757d;border-color:#6c757d;color:#fff}.routine-controls .btn-success{background:#28a745;border-color:#28a745;color:#fff}.routine-controls .btn-outline{background:#fff;border-color:#dee2e6;color:#6c757d}.routine-controls .btn-outline:hover{background:#f8f9fa;border-color:#6c757d}.routine-skills{margin-top:1rem}.routine-skills-header{color:#495057;font-size:.9rem;font-weight:600;margin-bottom:.5rem}.routine-skills-list{display:inline-grid;flex-wrap:wrap}.routine-skill-item{background:#e9ecef;color:#495057;font-size:.875rem;font-weight:500;gap:2.5rem;padding:.25rem .5rem}@media (max-width:768px){.routine-header{flex-direction:column;gap:1rem}.routine-controls{justify-content:stretch;width:100%}.routine-controls .btn{flex:1 1;min-width:0}.routine-skills-list{flex-direction:column;gap:.25rem}}.level-title-row{align-items:center;display:flex;justify-content:space-between;width:100%}.collapse-toggle{border-radius:3px;font-size:.75rem;line-height:1;margin-left:1rem;min-width:24px;padding:.25rem .5rem}.collapse-toggle:hover{background-color:#2c3e50;background-color:var(--primary-color);border-color:#2c3e50;border-color:var(--primary-color);color:#fff}.side-track-badge{background-color:#6f42c1;border-radius:.25rem;color:#fff;font-size:.65rem;font-weight:500;margin-left:.5rem;padding:.125rem .375rem;text-transform:uppercase}.side-track-level{background-color:#f8f9ff;border-left:4px solid #6f42c1}.btn.side-track{border-color:#6f42c1;color:#6f42c1}.btn.side-track:hover{background-color:#6f42c1;color:#fff}.btn.side-track.btn-primary{background-color:#6f42c1;border-color:#6f42c1}.level-content{padding-top:1rem}.level-progress-item{transition:all .3s ease}.level-progress-item.side-track-level{margin-bottom:.75rem}.alert{border:1px solid #0000;border-radius:.375rem;margin-bottom:1rem;padding:.75rem 1rem}.alert.alert-info{background-color:#d1ecf1;border-color:#bee5eb;color:#0c5460}.alert small{display:block;margin-top:.25rem;opacity:.8}.level-buttons{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.level-buttons .btn{position:relative}.level-buttons .side-track-badge{background-color:#6f42c1;border-radius:.125rem;font-size:.5rem;padding:.125rem .25rem;position:absolute;right:-.25rem;top:-.25rem}@media (max-width:768px){.level-title-row{align-items:flex-start;flex-direction:column;gap:.5rem}.collapse-toggle{align-self:flex-end;margin-left:0}.level-buttons{justify-content:center}}.collapse-info{margin-top:.5rem}.collapse-info small{color:#6c757d;display:block;font-style:italic}.text-muted{color:#6c757d!important}.coach-notes-section{margin-bottom:2rem}.coach-notes-section .card{border:1px solid #dee2e6;border-radius:8px;overflow:hidden}.coach-notes-section .card-header{background-color:#f8f9fa;border-bottom:1px solid #dee2e6;padding:1rem}.coach-notes-section .card-title-row{align-items:center;display:flex;justify-content:space-between}.coach-notes-section .card-title{color:#2c3e50;font-size:1.25rem;font-weight:600;margin:0}.coach-notes-section .card-body{padding:1.5rem}.notes-editing .form-group{margin-bottom:1.5rem}.notes-editing label{color:#2c3e50;display:block;font-weight:600;margin-bottom:.5rem}.notes-editing .form-control{border:1px solid #ced4da;border-radius:4px;font-size:1rem;min-height:120px;padding:.75rem;resize:vertical;width:100%}.notes-editing .form-control:focus{border-color:#007bff;box-shadow:0 0 0 2px #007bff40;outline:none}.form-actions{display:flex;gap:.75rem;margin-top:1rem}.notes-display .notes-content{background:#f8f9fa;border-left:4px solid #007bff;border-radius:4px;padding:1rem}.notes-display .notes-content p{color:#2c3e50;line-height:1.6;margin:0;white-space:pre-wrap}.notes-display .notes-empty{padding:2rem;text-align:center}.notes-display .notes-empty p{font-style:italic;margin:0}@media (max-width:768px){.coach-notes-section .card-title-row{align-items:flex-start;flex-direction:column;gap:.5rem}.form-actions{flex-direction:column}.form-actions .btn{width:100%}}.competition-levels{align-items:right;display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.competition-label{color:#6c757d;font-size:.875rem;font-weight:500;margin-right:.5rem}.competition-badge{background-color:#e3f2fd;border:1px solid #bbdefb;border-radius:12px;color:#1976d2;display:inline-block;font-size:.75rem;font-weight:500;padding:.25rem .75rem;text-transform:uppercase;transition:all .3s ease;white-space:nowrap}.competition-badge:hover{box-shadow:0 2px 4px #0000001a;transform:translateY(-1px)}.competition-badge.club{background-color:#e8f5e8;border-color:#c8e6c9;color:#2e7d32}.competition-badge.regional{background-color:#fff3e0;border-color:#ffcc02;color:#f57c00}.competition-badge.league{background-color:#f3e5f5;border-color:#ce93d8;color:#7b1fa2}.competition-badge.national{background-color:#ffebee;border-color:#ef9a9a;color:#c62828}.competition-badge.international{background-color:#e8eaf6;border-color:#c5cae9;color:#3f51b5}.current-competition-eligibility{background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:4px;margin-top:.75rem;padding:.5rem}.current-competition-eligibility .competition-badge{margin-bottom:.25rem;margin-right:.5rem}.level-header-info{align-items:flex-start;display:flex;flex-direction:column;gap:.5rem}.level-header-info .badge{align-self:flex-start}.level-header-info .competition-levels{margin-top:0}.level-management-info{background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:4px;padding:.5rem 1rem}.levels-container{display:flex;flex-direction:column;gap:1rem}.level-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 2px 4px #0000001a;transition:box-shadow .3s}.level-card:hover{box-shadow:0 4px 8px #00000026}.level-header{border-bottom:1px solid #e0e0e0;padding:1rem}.level-title-section{align-items:center;display:flex;gap:1rem}.expand-button{background:none;border:none;color:#6c757d;cursor:pointer;font-size:1rem;transition:color .3s}.expand-button:hover{color:#495057}.level-title{color:#2c3e50;flex-grow:1;font-size:1.25rem;margin:0}.level-content{padding:1rem}.level-description{color:#6c757d;font-style:italic;margin-bottom:1rem}.section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.section-header h5,.section-header h6{color:#2c3e50;margin:0}.skills-section{margin-bottom:1.5rem}.skills-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.skill-item{align-items:flex-start;background:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;display:flex;justify-content:space-between;padding:1rem;transition:border-color .3s}.skill-item:hover{border-color:#3498db}.skill-content{flex-grow:1}.skill-name{color:#2c3e50;font-weight:500;margin-bottom:.25rem}.skill-description{color:#6c757d;font-size:.875rem}.skill-actions{display:flex;flex-shrink:0;gap:.5rem}.skill-item .btn{height:20px;width:30px}.skill-item .btn:hover{background-color:#3498db;color:#fff}.routines-section{margin-bottom:1.5rem}.routines-list{display:flex;flex-direction:column;gap:1rem}.routine-card{background:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;padding:1rem;transition:border-color .3s}.routine-card:hover{border-color:#3498db}.routine-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:.5rem}.routine-title-section{align-items:center;display:flex;flex-grow:1;gap:1rem}.routine-title{color:#2c3e50;font-size:1rem;margin:0}.routine-actions{display:flex;flex-shrink:0;gap:.5rem}.routine-description{color:#6c757d;font-size:.875rem;margin-bottom:.5rem}.routine-skills-section{margin-top:1rem}.routine-skills-list{display:flex;flex-direction:column;gap:.5rem}.routine-skills-section .btn{height:40px;width:100px}.routine-skill-item{align-items:center;background:#fff;border:1px solid #dee2e6;border-radius:4px;display:flex;gap:.5rem;justify-content:center;padding:.5rem}.routine-skill-item .skill-name{color:#495057;font-weight:400;margin:0 .5rem}.routine-skill-item .btn{height:40px;width:60px}.modal-overlay{background-color:#00000080}.modal{box-shadow:0 4px 8px #0003;max-height:90vh;padding:0}.modal-header{padding:1rem}.close-button{align-items:center;background:none;border:none;color:#6c757d;cursor:pointer;display:flex;font-size:1.5rem;height:30px;justify-content:center;padding:0;width:30px}.close-button:hover{color:#495057}.modal form{padding:1rem}.modal-actions{margin-top:1rem}.modal .form-group{margin-bottom:1rem}.modal .form-group label{color:#2c3e50;display:block;font-weight:500;margin-bottom:.5rem}.modal .form-group input,.modal .form-group select,.modal .form-group textarea{border:1px solid #ddd;border-radius:4px;font-size:1rem;padding:.75rem;transition:border-color .3s;width:100%}.modal .form-group input:focus,.modal .form-group select:focus,.modal .form-group textarea:focus{border-color:#3498db;box-shadow:0 0 0 2px #3498db33;outline:none}.modal .form-group input[type=checkbox]{margin-right:.5rem;width:auto}.modal .form-group label input[type=checkbox]{margin-right:.5rem}@media (max-width:768px){.level-title-section{align-items:flex-start;flex-direction:column;gap:.5rem}.level-title{font-size:1.1rem}.skills-grid{grid-template-columns:1fr}.skill-item{align-items:flex-start;flex-direction:column;gap:.5rem}.skill-item .btn{height:20px;width:30px}.skill-actions{align-self:flex-end}.routine-header,.routine-title-section{align-items:flex-start;flex-direction:column;gap:.5rem}.routine-title-section .btn{height:30px;width:20px}.modal{margin:1rem;width:95%}.modal-actions{flex-direction:column;gap:.5rem}.modal-actions .btn{width:100%}}.competitions-page{padding:20px}.competitions-page .page-header{align-items:center;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;margin-bottom:30px;padding-bottom:20px}.competitions-page .page-header h1{color:#2c3e50;margin:0}.competitions-page .page-header p{color:#666;font-size:14px;margin:5px 0 0}.competitions-content{display:flex;flex-direction:column;gap:20px}.category-section{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:8px;overflow:hidden}.category-header{align-items:center;background:#fff;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;padding:15px 20px;transition:background-color .2s}.category-header-main{align-items:center;cursor:pointer;display:flex;flex:1 1;gap:10px}.category-header-main:hover{background:#f8f9fa}.category-actions{align-items:center;display:flex;gap:5px}.category-actions .btn{align-items:center;display:flex;min-width:auto;padding:4px 8px}.category-actions .icon{height:14px;width:14px}.category-header .icon{color:#666;height:20px;width:20px}.category-header h2{color:#2c3e50;font-size:18px;margin:0;text-transform:capitalize}.category-count{background:#e9ecef;border-radius:12px;color:#666;font-size:14px;margin-left:auto;padding:2px 8px}.category-content{display:flex;flex-direction:column;gap:15px;padding:20px}.competition-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden;transition:box-shadow .2s}.competition-card:hover{box-shadow:0 4px 8px #00000026}.competition-header{align-items:flex-start;display:flex;justify-content:space-between;padding:20px}.competition-info{flex:1 1}.competition-info h4{color:#2c3e50;font-size:16px;margin:0 0 5px}.competition-code{background:#f8f9fa;border-radius:4px;color:#666;display:inline-block;font-family:monospace;font-size:14px;margin:0 0 10px;padding:2px 6px}.competition-description{color:#666;font-size:14px;line-height:1.4;margin:0 0 10px}.competition-meta{align-items:center;color:#666;display:flex;font-size:12px;gap:15px}.competition-order{background:#e9ecef;border-radius:12px;padding:2px 8px}.competition-status{border-radius:12px;font-weight:500;padding:2px 8px}.competition-status.active{background:#d4edda;color:#155724}.competition-status.inactive{background:#f8d7da;color:#721c24}.competition-actions{align-items:flex-start;display:flex;gap:5px}.competition-actions .btn{align-items:center;display:flex;gap:3px;white-space:nowrap}.competition-actions .icon{height:16px;width:16px}.competition-levels h5{color:#2c3e50;font-size:14px;margin:0 0 10px}.levels-grid{display:flex;flex-wrap:wrap;gap:8px}.level-badge{background:#e3f2fd;border-radius:16px;color:#1976d2;font-size:12px;font-weight:500;padding:4px 8px}.empty-state{color:#666;padding:40px;text-align:center}.empty-state p{font-size:16px;margin:0 0 20px}.info-message{background:#e7f3ff;border:1px solid #b3d9ff;border-radius:8px;color:#0056b3;margin-bottom:20px;padding:15px}.info-message p{margin:0}.modal-overlay{padding:20px}.modal-content{background:#fff;border-radius:8px;box-shadow:0 10px 30px #0000004d;max-height:90vh;max-width:500px;overflow-y:auto;padding:1rem;width:100%}.modal-header{align-items:center;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;padding:20px}.modal-header h3{color:#2c3e50;margin:0}.modal-close{align-items:center;background:none;border:none;color:#666;cursor:pointer;display:flex;font-size:24px;height:30px;justify-content:center;padding:0;width:30px}.modal-close:hover{color:#333}.modal-body{padding:20px}.modal-body .form-group{margin-bottom:20px}.modal-body label{color:#2c3e50;display:block;font-weight:500;margin-bottom:5px}.modal-body input,.modal-body select,.modal-body textarea{border:1px solid #ddd;border-radius:4px;font-size:14px;padding:10px;width:100%}.modal-body textarea{resize:vertical}.modal-body .checkbox-label{align-items:center;cursor:pointer;display:flex;gap:10px}.checkbox-custom{border:2px solid #ddd;border-radius:4px;flex-shrink:0;height:20px;position:relative;width:20px}.checkbox-custom:after{border:solid #007bff;border-width:0 2px 2px 0;content:"";height:12px;left:6px;opacity:0;position:absolute;top:2px;transform:rotate(45deg);width:6px}input[type=checkbox]:checked+.checkbox-custom:after{opacity:1}input[type=checkbox]{display:none}.modal-footer{border-top:1px solid #e0e0e0;display:flex;gap:10px;justify-content:flex-end;padding:20px}.modal-footer .btn{padding:10px 20px}@media (max-width:768px){.competitions-page .page-header{align-items:flex-start;flex-direction:column;gap:15px}.competition-header{align-items:stretch;flex-direction:column;gap:15px}.competition-actions{justify-content:flex-start}.competition-meta{align-items:flex-start;gap:8px}.competition-meta,.levels-grid{flex-direction:column}.modal-overlay{padding:10px}.modal-content{max-width:100%}}.competition-selection{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:6px;max-height:300px;overflow-y:auto;padding:15px}.competition-category{margin-bottom:20px}.competition-category:last-child{margin-bottom:0}.category-title{border-bottom:1px solid #dee2e6;color:#2c3e50;font-size:14px;font-weight:600;margin:0 0 10px;padding-bottom:5px;text-transform:capitalize}.competition-checkboxes{display:flex;flex-direction:column;gap:8px}.competition-checkbox{align-items:center;border-radius:4px;cursor:pointer;display:flex;gap:10px;padding:5px 10px;transition:background-color .2s}.competition-checkbox:hover{background:#007bff1a}.competition-checkbox input[type=checkbox]{display:none}.competition-checkbox .checkbox-custom{background:#fff;border:2px solid #ddd;border-radius:3px;flex-shrink:0;height:18px;position:relative;transition:all .2s;width:18px}.competition-checkbox input[type=checkbox]:checked+.checkbox-custom{background-color:#007bff;border-color:#007bff}.competition-checkbox .checkbox-custom:after{border:solid #fff;border-width:0 2px 2px 0;content:"";height:8px;left:5px;opacity:0;position:absolute;top:1px;transform:rotate(45deg);transition:opacity .2s;width:4px}.competition-checkbox input[type=checkbox]:checked+.checkbox-custom:after{opacity:1}.competition-name{color:#2c3e50;font-size:14px;line-height:1.4}.no-competitions{color:#666;font-style:italic;margin:0;padding:20px;text-align:center}.text-warning{background-color:#fff3cd;border:1px solid #ffeaa7;border-radius:4px;color:#856404;font-size:14px;margin-top:10px;padding:8px 12px}.metric-stat{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:1rem;text-align:center;transition:all .2s ease}.metric-number{color:#2c3e50;font-size:2rem;font-weight:700;margin-bottom:.25rem}.metric-label{color:#6c757d;font-size:.875rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase}.metric-stat:hover{background:#e9ecef;box-shadow:0 4px 8px #0000001a;transform:translateY(-2px)}@media (max-width:768px){.metric-stat{padding:.75rem}.metric-number{font-size:1.5rem}.metric-label{font-size:.8rem}}.dashboard-metric-link{border-radius:4px;color:inherit;text-decoration:none;transition:all .2s ease}.dashboard-metric-link:hover{background-color:#f8f9fa;color:inherit;text-decoration:none}.dashboard-metric-link:active{transform:translateY(1px)}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal{background:#fff;border-radius:8px;box-shadow:0 4px 6px #0000001a;max-height:80vh;max-width:500px;overflow-y:auto;padding:2rem;width:90%}.modal h3{color:#333;margin-bottom:1rem;margin-top:0}.modal-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem}.modal-actions .btn{min-width:100px}.btn-warning{background-color:#ffc107;border:1px solid #ffc107;color:#212529}.btn-warning:hover{background-color:#e0a800;border-color:#d39e00}.btn-danger{background-color:#dc3545;border:1px solid #dc3545;color:#fff}.btn-danger:hover{background-color:#c82333;border-color:#bd2130}.certificates-page .nav-tabs .nav-link{border:1px solid #0000;color:#495057;font-weight:500;padding:.75rem 1.5rem}.certificates-page .nav-tabs .nav-link:hover{background-color:#f8f9fa;color:#007bff}.certificates-page .nav-tabs .nav-link.active{background-color:#fff;border-color:#dee2e6 #dee2e6 #fff;color:#007bff;font-weight:600}.certificates-page .btn-group .btn{font-weight:500;margin-right:.25rem}.certificates-page .btn-group .btn:last-child{margin-right:0}.certificates-page .btn-info{background-color:#17a2b8;border-color:#17a2b8;color:#fff}.certificates-page .btn-info:hover{background-color:#138496;border-color:#117a8b}.certificates-page .btn-success{background-color:#28a745;border-color:#28a745;color:#fff}.certificates-page .btn-success:hover{background-color:#218838;border-color:#1e7e34}.certificates-page .award-certificate-btn{background:linear-gradient(135deg,#28a745,#20c997);border:none;border-radius:.5rem;box-shadow:0 4px 6px #0000001a;color:#fff;font-weight:600;padding:.75rem 2rem;transition:all .3s ease}.certificates-page .award-certificate-btn:hover{background:linear-gradient(135deg,#218838,#1cc88a);box-shadow:0 6px 12px #00000026;transform:translateY(-2px)}.certificates-page .award-certificate-btn:active{box-shadow:0 2px 4px #0000001a;transform:translateY(0)}.certificates-page .table .btn-group .btn{border-radius:.25rem;font-size:.875rem;line-height:1.5;padding:.25rem .75rem}.certificates-page .certificate-actions{min-width:140px}
/*# sourceMappingURL=main.778c5447.css.map*/