.access-control-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2)}.loading-spinner{width:50px;height:50px;border:4px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.access-control-loading p{color:#fff;font-size:1.1rem;margin-top:1rem}.access-denied-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:2rem}.access-denied-card{background:#fff;border-radius:12px;padding:3rem;max-width:600px;width:100%;box-shadow:0 20px 60px #0000004d;text-align:center}.access-denied-icon{font-size:4rem;margin-bottom:1rem}.access-denied-card h1{color:#1e3a8a;margin-bottom:1rem;font-size:2rem}.access-denied-message{color:#64748b;font-size:1.1rem;margin-bottom:2rem}.access-denied-message strong{color:#1e3a8a;font-weight:600}.access-denied-instructions{background:#f8fafc;border:2px solid #e2e8f0;border-radius:8px;padding:1.5rem;margin-bottom:2rem;text-align:left}.access-denied-instructions h3{color:#1e3a8a;margin-top:0;margin-bottom:1rem;font-size:1.2rem}.access-denied-instructions ol{margin:0;padding-left:1.5rem}.access-denied-instructions li{margin-bottom:.75rem;color:#334155;line-height:1.6}.access-denied-instructions strong{color:#1e3a8a;font-weight:600}.access-denied-card .btn{margin-top:1rem;margin-bottom:2rem}.access-denied-help{padding-top:1.5rem;border-top:1px solid #e2e8f0;color:#64748b;font-size:.95rem}.access-denied-help p{margin-bottom:.5rem}.access-denied-help a{color:#3b82f6;text-decoration:none;font-weight:600}.access-denied-help a:hover{text-decoration:underline}@media (max-width: 768px){.access-denied-container{padding:1rem}.access-denied-card{padding:2rem 1.5rem}.access-denied-card h1{font-size:1.5rem}.access-denied-icon{font-size:3rem}}.update-notification{position:fixed;bottom:20px;left:50%;transform:translate(-50%);z-index:9999;max-width:500px;width:calc(100% - 40px);animation:slideUp .4s ease-out}@keyframes slideUp{0%{opacity:0;transform:translate(-50%) translateY(100px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.update-content{background:linear-gradient(135deg,#06c,#0cf);color:#fff;padding:20px;border-radius:12px;box-shadow:0 8px 24px #06c6;display:flex;align-items:center;gap:16px}.update-icon{font-size:2rem;flex-shrink:0}.update-text{flex:1}.update-text strong{display:block;font-size:1.1rem;margin-bottom:4px}.update-text p{margin:0;font-size:.9rem;opacity:.95}.update-actions{display:flex;gap:10px;flex-shrink:0}.btn-update,.btn-dismiss{padding:10px 20px;border-radius:8px;font-weight:600;font-size:.95rem;border:none;cursor:pointer;transition:all .3s ease;white-space:nowrap}.btn-update{background:#fff;color:#06c}.btn-update:hover{background:#f0f0f0;transform:translateY(-2px);box-shadow:0 4px 12px #ffffff4d}.btn-dismiss{background:#fff3;color:#fff;border:1px solid rgba(255,255,255,.5)}.btn-dismiss:hover{background:#ffffff4d}@media (max-width: 768px){.update-notification{bottom:10px;width:calc(100% - 20px)}.update-content{padding:16px;gap:12px}.update-icon{font-size:1.5rem}.update-text strong{font-size:1rem}.update-text p{font-size:.85rem}.update-actions{flex-direction:column;gap:8px;width:100%}.btn-update,.btn-dismiss{width:100%;padding:12px 16px;min-height:44px}}@media (max-width: 480px){.update-content{flex-direction:column;align-items:flex-start;text-align:left}.update-icon{align-self:center}.update-text{text-align:center;width:100%}.update-actions{width:100%}}.login-container{min-height:100vh;display:flex;justify-content:center;align-items:center;background:linear-gradient(135deg,var(--primary-blue),var(--secondary-aqua));padding:20px}.login-card{background:#fff;border-radius:20px;box-shadow:0 20px 60px #0000004d;max-width:500px;width:100%;overflow:hidden}.login-header{background:linear-gradient(135deg,var(--primary-blue),var(--primary-blue-dark));color:#fff;text-align:center;padding:32px 20px}.login-header h1{font-size:2rem;margin:0 0 8px;font-weight:700}.login-header p{font-size:1.1rem;margin:0;opacity:.9}.login-illustration{text-align:center;padding:32px;background:var(--bg-light)}.swimmer-icon{font-size:4rem;animation:swim 2s ease-in-out infinite}@keyframes swim{0%,to{transform:translate(0)}50%{transform:translate(20px)}}.login-content{padding:32px;text-align:center}.login-content h2{font-size:1.8rem;color:var(--text-dark);margin-bottom:12px}.login-content>p{color:var(--text-light);margin-bottom:32px;font-size:1.05rem}.btn-google-signin{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;padding:16px 24px;background-color:#fff;border:2px solid var(--border-gray);border-radius:10px;font-size:1.1rem;font-weight:600;color:var(--text-dark);transition:all .3s ease;box-shadow:0 2px 8px #0000001a}.btn-google-signin:hover:not(:disabled){border-color:var(--primary-blue);transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.btn-google-signin:disabled{opacity:.6;cursor:not-allowed}.google-icon{flex-shrink:0}.divider{display:flex;align-items:center;margin:24px 0;color:var(--text-light);font-size:.9rem}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--border-gray)}.divider span{padding:0 16px;font-weight:600}.btn-email-signin{width:100%;padding:14px 24px;background:#fff;color:var(--primary-blue);border:2px solid var(--primary-blue);border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s}.btn-email-signin:hover:not(:disabled){background:var(--primary-blue);color:#fff}.btn-email-signin:disabled{opacity:.6;cursor:not-allowed}.email-signin-form{text-align:left}.email-signin-form .form-group{margin-bottom:20px}.email-signin-form label{display:block;font-weight:600;color:var(--text-dark);margin-bottom:8px;font-size:.95rem}.email-signin-form input{width:100%;padding:12px 16px;border:2px solid var(--border-gray);border-radius:8px;font-size:1rem;transition:all .3s}.email-signin-form input:focus{outline:none;border-color:var(--primary-blue);box-shadow:0 0 0 3px #0066cc1a}.email-signin-form input:disabled{background:var(--bg-light);cursor:not-allowed}.btn-submit{width:100%;padding:14px 24px;background:var(--primary-blue);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s;margin-bottom:12px}.btn-submit:hover:not(:disabled){background:var(--primary-blue-dark);transform:translateY(-2px);box-shadow:0 4px 12px #0066cc4d}.btn-submit:disabled{opacity:.6;cursor:not-allowed}.btn-back{width:100%;padding:12px 24px;background:#fff;color:var(--text-light);border:1px solid var(--border-gray);border-radius:8px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .3s}.btn-back:hover:not(:disabled){background:var(--bg-light);border-color:var(--text-light)}.version-info{margin-top:24px;padding-top:16px;border-top:1px solid var(--border-gray);text-align:center}.version-text{font-size:.75rem;color:var(--text-light);margin:0;opacity:.7}.btn-back:disabled{opacity:.6;cursor:not-allowed}.login-info{margin-top:32px;padding-top:24px;border-top:1px solid var(--border-gray);text-align:left}.info-text{font-size:.9rem;color:var(--text-light);margin-bottom:12px;line-height:1.5}.info-text strong{color:var(--text-dark);display:block;margin-bottom:4px}.info-text a{color:var(--primary-blue);text-decoration:underline}.info-text a:hover{color:var(--primary-blue-dark)}.coach-login-link{margin-top:28px;text-align:center;padding:24px;background:linear-gradient(135deg,#f0f8ff,#e6f2ff);border-radius:12px;border:2px solid #b3d9ff}.coach-prompt{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:14px}.coach-icon{font-size:1.8rem}.coach-text{font-size:1.1rem;font-weight:600;color:var(--text-dark);margin:0}.btn-coach-signin{display:inline-block;padding:12px 32px;background:var(--primary-blue);color:#fff;text-decoration:none;border-radius:8px;font-size:1rem;font-weight:600;transition:all .3s ease;box-shadow:0 2px 8px #06c3}.btn-coach-signin:hover{background:var(--primary-blue-dark);transform:translateY(-2px);box-shadow:0 4px 12px #0066cc4d}.text-link{color:var(--text-light);text-decoration:none;font-size:.9rem;transition:color .2s}.text-link:hover{color:var(--primary-blue);text-decoration:underline}@media (max-width: 480px){.login-header h1{font-size:1.5rem}.login-content h2{font-size:1.4rem}.btn-google-signin{font-size:1rem;padding:14px 20px}.swimmer-icon{font-size:3rem}}.parent-guide-container{min-height:100vh;background:var(--bg-light);padding:40px 20px}.parent-guide-content{max-width:900px;margin:0 auto;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:40px}.guide-header{text-align:center;margin-bottom:40px;padding-bottom:30px;border-bottom:3px solid var(--primary-blue)}.guide-header h1{color:var(--primary-blue);font-size:2.5rem;margin:0 0 16px}.guide-subtitle{color:var(--text-light);font-size:1.1rem;line-height:1.6;max-width:700px;margin:0 auto}.guide-nav{background:#f0f7ff;border:2px solid var(--primary-blue);border-radius:8px;padding:24px;margin-bottom:40px}.guide-nav h3{margin:0 0 16px;color:var(--primary-blue)}.guide-nav ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}.guide-nav li{margin:0}.guide-nav a{display:block;color:var(--primary-blue);text-decoration:none;padding:8px 12px;border-radius:6px;transition:all .2s}.guide-nav a:hover{background:var(--primary-blue);color:#fff;transform:translate(4px)}.guide-section{margin-bottom:48px}.guide-section h2{color:var(--primary-blue);font-size:2rem;margin:0 0 24px;padding-bottom:12px;border-bottom:2px solid var(--border-gray)}.guide-section h3{color:var(--text-dark);font-size:1.4rem;margin:32px 0 16px}.guide-section h4{color:var(--text-dark);font-size:1.1rem;margin:24px 0 12px}.guide-section p{color:var(--text-dark);line-height:1.8;margin-bottom:16px}.guide-section ol,.guide-section ul{color:var(--text-dark);line-height:1.8;margin-bottom:16px;padding-left:24px}.guide-section li{margin-bottom:12px}.guide-section a{color:var(--primary-blue);text-decoration:underline}.guide-section a:hover{color:var(--primary-blue-dark)}.email-types{background:var(--bg-light);padding:20px;border-radius:8px;border-left:4px solid var(--primary-blue)}.info-box{background:#f0f7ff;border:1px solid #d0e7ff;border-radius:8px;padding:20px;margin:24px 0}.info-box.important{background:#fff4e6;border-color:orange}.info-box strong{color:var(--primary-blue);display:block;margin-bottom:8px}.info-box ul{margin:12px 0 0}.scenario-box{background:var(--bg-light);border:2px solid var(--border-gray);border-radius:12px;padding:24px;margin:24px 0}.scenario-box.highlight{background:#f0f7ff;border-color:var(--primary-blue)}.scenario-box h3{color:var(--primary-blue);margin-top:0}.scenario-note{font-style:italic;color:var(--text-light);margin-bottom:24px}.example-box{background:#2d2d2d;color:#f0f0f0;border-radius:8px;padding:20px;margin:24px 0;overflow-x:auto}.example-box h4{color:#f0f0f0;margin-top:0}.example-box pre{margin:0;font-family:Courier New,monospace;font-size:.9rem;line-height:1.6;white-space:pre-wrap}.troubleshooting-box{background:#fff4e6;border:2px solid #ffa500;border-radius:8px;padding:20px;margin:24px 0}.troubleshooting-box h4{color:#ff8c00;margin-top:0}.faq h3{color:var(--primary-blue);font-size:1.2rem;margin-top:32px;margin-bottom:12px}.contact-box{background:var(--primary-blue);color:#fff;border-radius:12px;padding:24px;text-align:center}.contact-box a{color:#fff;font-weight:600;text-decoration:underline}.contact-box a:hover{color:var(--secondary-aqua)}.guide-footer{text-align:center;padding-top:40px;margin-top:40px;border-top:2px solid var(--border-gray)}.guide-footer p{margin:8px 0;color:var(--text-light)}.version-info{font-size:.9rem;font-style:italic}@media (max-width: 768px){.parent-guide-content{padding:24px 20px}.guide-header h1{font-size:1.8rem}.guide-subtitle{font-size:1rem}.guide-section h2{font-size:1.5rem}.guide-section h3{font-size:1.2rem}.guide-nav ul{grid-template-columns:1fr}.scenario-box,.info-box,.example-box,.troubleshooting-box{padding:16px}}@media print{.parent-guide-container{padding:0}.guide-nav{display:none}.guide-section{page-break-inside:avoid}}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.card-header h2{margin:0;font-size:1.5rem;color:var(--text-dark)}.btn-small{padding:8px 16px;font-size:.9rem}.add-swimmer-form{background-color:var(--bg-light);padding:20px;border-radius:8px;margin-bottom:24px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.swimmers-list{margin-top:20px}.swimmer-card-expanded{margin-bottom:1rem;border:2px solid var(--border-gray);border-radius:10px;background:var(--bg-white);overflow:hidden;transition:all .3s}.swimmer-card-expanded:hover{border-color:var(--primary-blue);box-shadow:0 2px 8px #0066cc1a}.swimmer-item{display:flex;align-items:center;gap:16px;padding:16px;border-radius:10px;transition:all .3s}.swimmer-item.clickable{cursor:pointer;border:none}.swimmer-item.clickable:hover{background-color:var(--bg-light)}.expand-btn{margin-left:auto;background:none;border:none;font-size:1.2rem;color:var(--primary-blue);cursor:pointer;padding:.5rem;transition:transform .2s}.expand-btn:hover{transform:scale(1.1)}.swimmer-avatar{width:50px;height:50px;border-radius:50%;background:linear-gradient(135deg,var(--primary-blue),var(--secondary-aqua));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.2rem;flex-shrink:0}.swimmer-info h3{margin:0 0 4px;color:var(--text-dark);font-size:1.1rem}.swimmer-info p{margin:0;color:var(--text-light);font-size:.9rem}.best-times-count{color:var(--primary-blue)!important;font-weight:600;margin-top:4px!important}.swimmer-details{padding:20px;background-color:var(--bg-light);border-top:2px solid var(--border-gray)}.swimmer-details h4{margin:0 0 16px;color:var(--text-dark);font-size:1.1rem}.empty-state-small{text-align:center;color:var(--text-light);padding:20px;font-size:.95rem;font-style:italic}.times-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.time-card{background:#fff;border:2px solid var(--border-gray);border-radius:8px;padding:16px;transition:all .3s}.time-card:hover{border-color:var(--secondary-aqua);box-shadow:0 2px 8px #00ccff26}.time-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.event-name{font-weight:700;color:var(--primary-blue);font-size:1rem}.time-value{font-weight:700;color:var(--text-dark);font-size:1.3rem}.time-details{color:var(--text-light);font-size:.85rem;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--border-gray)}.standards-comparison{display:flex;flex-wrap:wrap;gap:8px}.standard-badge{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;border-radius:20px;font-size:.8rem;font-weight:600;min-width:100px;transition:all .2s}.standard-badge.achieved{background-color:var(--success-green);color:#fff;border:2px solid var(--success-green)}.standard-badge.not-achieved{background-color:#fff;color:var(--text-light);border:2px solid var(--border-gray)}.standard-badge:hover{transform:scale(1.05)}.standard-name{margin-right:8px}.standard-status{font-weight:700}.meets-list{margin-top:20px}.meet-item{border:2px solid var(--border-gray);border-radius:10px;padding:20px;margin-bottom:20px;transition:all .3s}.meet-item:hover{border-color:var(--secondary-aqua);box-shadow:0 4px 12px #00ccff26}.meet-item.attending{border-color:var(--success-green);background-color:#28a74508}.meet-item.attending:hover{box-shadow:0 4px 12px #28a74533}.meet-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px;gap:12px}.meet-header h3{margin:0;color:var(--primary-blue);font-size:1.3rem;flex:1}.meet-date{font-weight:600;color:var(--text-dark);margin-bottom:8px;font-size:1.05rem}.meet-location{color:var(--text-light);margin-bottom:8px}.meet-description{color:var(--text-light);margin-bottom:16px;line-height:1.5}.attendance-section{margin-top:20px;padding-top:16px;border-top:2px solid var(--border-gray)}.attendance-section h4{margin:0 0 16px;color:var(--text-dark);font-size:1rem}.attendance-row{display:flex;justify-content:space-between;align-items:center;padding:16px;background-color:var(--bg-light);border-radius:8px;margin-bottom:12px}.swimmer-name{font-weight:600;color:var(--text-dark);flex:1}.rsvp-buttons{display:flex;gap:12px}.btn-rsvp{padding:10px 20px;border-radius:6px;font-size:.95rem;font-weight:600;background-color:#fff;border:2px solid var(--border-gray);color:var(--text-light);transition:all .3s;white-space:nowrap;min-width:120px}.btn-rsvp:hover{border-color:var(--primary-blue);color:var(--primary-blue)}.btn-rsvp.active{background-color:var(--success-green);border-color:var(--success-green);color:#fff}.btn-rsvp.active:hover{background-color:#218838;border-color:#218838}.btn-rsvp.not-attending.active{background-color:var(--error-red);border-color:var(--error-red);color:#fff}.btn-rsvp.not-attending.active:hover{background-color:#c82333;border-color:#c82333}.empty-state{text-align:center;color:var(--text-light);padding:40px 20px;font-size:1.05rem}.info-text{color:var(--text-light);font-size:.95rem;font-style:italic}.card-description{color:var(--text-light);font-size:.95rem;margin:-8px 0 16px;font-style:italic}.attending-swimmers-section{margin-top:16px;padding-top:16px;border-top:1px solid var(--border-gray)}.attending-swimmers-section h4{margin:0 0 12px;font-size:1rem;color:var(--text-dark)}.attending-swimmers-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.attending-swimmer-badge{display:inline-flex;align-items:center;gap:8px;background:var(--success-green);color:#fff;padding:8px 12px;border-radius:20px;font-size:.9rem;font-weight:600}.swimmer-avatar-small{width:24px;height:24px;border-radius:50%;background:#ffffff4d;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700}.swimmer-name-small{font-size:.85rem}@media (max-width: 1200px){.times-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}}@media (max-width: 1024px){.times-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.swimmer-avatar{width:45px;height:45px;font-size:1.1rem}.meet-item{padding:18px}.attendance-row{padding:14px}.btn-rsvp{padding:10px 18px;font-size:.9rem}}@media (max-width: 768px){.form-row{grid-template-columns:1fr}.meet-header{flex-direction:column;align-items:flex-start;gap:12px}.meet-header h3{font-size:1.1rem}.meet-item{padding:16px}.attendance-row{flex-direction:column;align-items:flex-start;gap:12px;padding:14px}.swimmer-name{margin-bottom:0;font-size:.95rem;width:100%}.rsvp-buttons{width:100%;gap:10px}.btn-rsvp{flex:1;font-size:.9rem;padding:12px 16px;min-height:48px;min-width:0}.attending-swimmers-section h4{font-size:.95rem}.attending-swimmer-badge{padding:8px 12px;font-size:.9rem}.card-header{flex-direction:column;align-items:flex-start;gap:12px}.card-header h2{font-size:1.3rem}.card-header .btn{width:100%}.times-grid{grid-template-columns:1fr}.time-card{padding:14px}.time-header{flex-direction:row;flex-wrap:wrap;gap:8px}.event-name{font-size:.95rem}.time-value{font-size:1.2rem}.standards-comparison{flex-direction:row;flex-wrap:wrap}.standard-badge{flex:1 1 calc(50% - 4px);min-width:120px;padding:8px 10px;font-size:.75rem}.swimmer-info h3{font-size:1rem}.swimmer-info p{font-size:.85rem}.best-times-count{font-size:.85rem!important}.swimmer-details{padding:16px}.swimmer-details h4{font-size:1rem}.expand-btn{padding:12px;font-size:1.1rem}.swimmer-item.clickable{padding:14px}}@media (max-width: 480px){.swimmer-avatar{width:40px;height:40px;font-size:1rem}.swimmer-item.clickable{padding:12px;gap:12px}.time-header{flex-direction:column;align-items:flex-start;gap:4px}.event-name{font-size:.9rem}.time-value{font-size:1.3rem;font-weight:800}.time-details{font-size:.8rem}.standards-comparison{flex-direction:column}.standard-badge{width:100%;min-width:0;padding:10px 12px;font-size:.8rem}.standard-name{flex:1}.meet-date{font-size:.95rem}.meet-location,.meet-description{font-size:.85rem}.meet-item{padding:14px}.attendance-row{padding:12px;gap:10px}.btn-rsvp{padding:12px 8px;font-size:.9rem;min-height:48px;min-width:0}.expand-btn{min-width:48px;min-height:48px;padding:10px}.empty-state-small{padding:16px;font-size:.9rem}.attending-swimmer-badge{font-size:.85rem;padding:7px 10px}.swimmer-name-small{font-size:.8rem}.card-description{font-size:.85rem}.attending-swimmers-section{margin-top:12px;padding-top:12px}.attending-swimmers-section h4{font-size:.9rem;margin-bottom:10px}}@media (max-width: 360px){.card{padding:12px}.swimmer-card-expanded{margin-bottom:.75rem}.time-card{padding:12px}.standard-badge{font-size:.75rem;padding:8px 10px}}.bulk-import-container{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 8px #0000001a;margin-bottom:2rem}.bulk-import-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.bulk-import-header h3{margin:0;color:#1e3a8a}.btn-link{background:none;border:none;color:#3b82f6;cursor:pointer;text-decoration:underline;font-size:.9rem}.btn-link:hover{color:#1e3a8a}.import-instructions{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;padding:1.5rem;margin-bottom:2rem}.import-instructions h4{color:#1e3a8a;margin-top:0;margin-bottom:1rem}.import-instructions ol{margin-left:1.5rem}.import-instructions li{margin-bottom:.75rem}.import-instructions ul{margin-top:.5rem;margin-left:1.5rem}.sample-csv{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #e2e8f0}.sample-csv h5{color:#1e3a8a;margin-bottom:.75rem}.sample-csv pre{background:#fff;border:1px solid #e2e8f0;border-radius:4px;padding:1rem;overflow-x:auto;font-size:.85rem;margin-bottom:1rem}.import-input-section{margin-bottom:2rem}.import-input-section .form-group{margin-bottom:1.5rem}.import-input-section label{display:block;font-weight:600;color:#334155;margin-bottom:.5rem}.import-input-section input[type=file]{display:block;padding:.5rem;border:1px solid #cbd5e1;border-radius:4px;width:100%;max-width:400px;cursor:pointer}.import-input-section input[type=file]:hover{border-color:#3b82f6;background-color:#f8fafc}.file-loaded-indicator{margin-top:.75rem;padding:.5rem .75rem;background:#ecfdf5;border:1px solid #10b981;border-radius:4px;color:#065f46;font-size:.9rem;font-weight:600;display:inline-block}.import-input-section textarea{width:100%;padding:.75rem;border:1px solid #cbd5e1;border-radius:4px;font-family:Courier New,monospace;font-size:.9rem;resize:vertical}.import-input-section textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.import-actions{display:flex;gap:1rem}.import-results{background:#f8fafc;border:2px solid #3b82f6;border-radius:6px;padding:1.5rem}.import-results h4{color:#1e3a8a;margin-top:0;margin-bottom:1rem}.results-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1.5rem}.result-stat{background:#fff;padding:1rem;border-radius:6px;border-left:4px solid #cbd5e1}.result-stat.success{border-left-color:#10b981}.result-stat.warning{border-left-color:#f59e0b}.result-stat.error{border-left-color:#ef4444}.result-stat .result-label{display:block;font-size:.85rem;color:#64748b;margin-bottom:.25rem}.result-stat .result-value{display:block;font-size:1.5rem;font-weight:700;color:#1e293b}.error-details{background:#fff;padding:1rem;border-radius:6px;border:1px solid #e2e8f0}.error-details h5{color:#1e3a8a;margin-top:0;margin-bottom:.75rem}.error-details ul{margin:0;padding-left:1.5rem}.error-details li{margin-bottom:.5rem;color:#64748b;font-size:.9rem}.warning-text{background-color:#fff3cd;border:2px solid #ffc107;border-radius:8px;padding:12px 16px;color:#856404;font-weight:600;margin:16px 0}.import-note{background:#eff6ff;border-left:4px solid #3b82f6;padding:1rem;margin-top:1rem;border-radius:4px}.import-note strong{color:#1e3a8a}.import-note code{background:#fff;padding:.2rem .4rem;border-radius:3px;font-family:Courier New,monospace;color:#1e3a8a;font-size:.9rem}@media (max-width: 768px){.bulk-import-container{padding:1rem}.bulk-import-header{flex-direction:column;align-items:flex-start;gap:.5rem}.results-summary{grid-template-columns:1fr}.import-actions{flex-direction:column}.import-actions button{width:100%}}.coach-management{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a;margin-bottom:24px}.coach-management-header h3{margin:0 0 8px;color:var(--text-dark);font-size:1.5rem}.coach-management-description{color:var(--text-light);margin:0 0 20px;line-height:1.6}.alert{padding:12px 16px;border-radius:8px;margin-bottom:16px;display:flex;justify-content:space-between;align-items:center}.alert-error{background:#fee;border:1px solid #fcc;color:#c33}.alert-success{background:#efe;border:1px solid #cfc;color:#383}.alert-close{background:none;border:none;font-size:1.5rem;cursor:pointer;opacity:.6;transition:opacity .2s;padding:0 8px}.alert-close:hover{opacity:1}.add-coach-form{margin-bottom:32px;padding:20px;background:var(--bg-light);border-radius:8px}.form-row{display:flex;gap:12px;margin-bottom:8px}.input-email{flex:1;padding:12px 16px;border:1px solid var(--border-gray);border-radius:8px;font-size:1rem;transition:border-color .2s}.input-email:focus{outline:none;border-color:var(--primary-blue);box-shadow:0 0 0 3px #0066cc1a}.btn{padding:12px 24px;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-primary{background:var(--primary-blue);color:#fff}.btn-primary:hover{background:var(--primary-blue-dark);transform:translateY(-1px);box-shadow:0 4px 12px #0066cc4d}.btn-danger{background:var(--error-red);color:#fff}.btn-danger:hover{background:#c82333;transform:translateY(-1px);box-shadow:0 4px 12px #dc35454d}.btn-sm{padding:8px 16px;font-size:.875rem}.form-help-text{color:var(--text-light);font-size:.875rem;margin:0}.coach-list-section{margin-bottom:32px}.coach-list-section h4{margin:0 0 16px;color:var(--text-dark);font-size:1.2rem}.no-coaches-message{color:var(--text-light);text-align:center;padding:32px;background:var(--bg-light);border-radius:8px;margin:0}.coach-list{display:flex;flex-direction:column;gap:12px}.coach-item{display:flex;justify-content:space-between;align-items:center;padding:16px;background:var(--bg-light);border:1px solid var(--border-gray);border-radius:8px;transition:all .2s}.coach-item:hover{box-shadow:0 2px 8px #0000001a;transform:translateY(-2px)}.coach-info{flex:1}.coach-email{font-weight:600;color:var(--text-dark);margin-bottom:4px}.coach-meta{font-size:.875rem;color:var(--text-light)}.coach-management-info{padding:20px;background:#f0f7ff;border:1px solid #d0e7ff;border-radius:8px}.coach-management-info h4{margin:0 0 12px;color:var(--primary-blue);font-size:1.1rem}.coach-management-info ul{margin:0;padding-left:20px;line-height:1.8;color:var(--text-dark)}.coach-management-info li{margin-bottom:8px}.coach-management-info a{color:var(--primary-blue);text-decoration:underline}.coach-management-info a:hover{color:var(--primary-blue-dark)}@media (max-width: 768px){.coach-management{padding:16px}.form-row{flex-direction:column}.coach-item{flex-direction:column;align-items:flex-start;gap:12px}.btn{width:100%}}.location-autocomplete-wrapper{position:relative;width:100%}.location-autocomplete-input{width:100%;padding-right:30px}.location-loading-indicator{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:16px;height:16px;border:2px solid #f3f3f3;border-top:2px solid #3498db;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:translateY(-50%) rotate(0)}to{transform:translateY(-50%) rotate(360deg)}}.pac-container{border-radius:8px;box-shadow:0 2px 6px #0000001a;margin-top:4px;font-family:inherit}.pac-item{padding:8px 12px;cursor:pointer}.pac-item:hover{background-color:#f8f9fa}.quick-actions-bar{display:flex;gap:16px;margin:24px 0;flex-wrap:wrap}.btn-large{font-size:1.1rem;padding:16px 32px;min-height:56px;font-weight:600;border-radius:8px;flex:1;min-width:200px;transition:all .3s ease}.btn-primary-action{background:linear-gradient(135deg,var(--primary-blue) 0%,var(--primary-blue-dark) 100%);color:#fff;border:none;box-shadow:0 4px 12px #0066cc4d}.btn-primary-action:hover{transform:translateY(-2px);box-shadow:0 6px 20px #06c6}.admin-tools-section{margin:32px 0;border:2px solid var(--border-gray)}.admin-tools-section .card-header{background-color:var(--bg-light);border-bottom:2px solid var(--border-gray);padding:20px 24px}.admin-tools-section .card-header:hover{background-color:#e8eef5}.admin-tools-section .card-header h2{font-size:1.4rem;margin:0;color:var(--text-dark)}.admin-tools-content{padding:20px;background-color:#fafbfc}.admin-tools-content>.card{margin-bottom:20px}.admin-tools-content>.card:last-child{margin-bottom:0}.add-meet-form{background-color:var(--bg-light);padding:24px;border-radius:10px;margin-bottom:32px;font-size:16px}.meets-section{margin-top:24px}.section-title{font-size:1.3rem;color:var(--text-dark);margin:32px 0 16px;padding-bottom:8px;border-bottom:2px solid var(--border-gray)}.coach-meets-list{display:flex;flex-direction:column;gap:16px}.coach-meet-item{border:2px solid var(--border-gray);border-radius:12px;padding:20px;transition:all .3s}.coach-meet-item:hover{border-color:var(--primary-blue);box-shadow:0 4px 12px #0066cc1a}.coach-meet-item.past{opacity:.7}.meet-main{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px;gap:16px}.meet-actions{display:flex;gap:12px;flex-shrink:0}.meet-actions .btn-small{min-height:48px;min-width:80px;padding:12px 20px;font-size:1rem;font-weight:600}.maps-link-inline{color:var(--primary-blue);text-decoration:none;font-size:.9em;font-weight:500}.maps-link-inline:hover{text-decoration:underline;color:var(--primary-blue-dark)}.maps-link{display:inline-block;margin-top:8px;color:var(--primary-blue);text-decoration:none;font-size:.9em;font-weight:500}.maps-link:hover{text-decoration:underline;color:var(--primary-blue-dark)}.edit-meet-form{padding:20px 0}.modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px}.meet-info h4{margin:0 0 8px;font-size:1.5rem;color:var(--primary-blue);font-weight:700}.meet-info .meet-date{font-size:1.05rem;color:var(--text-dark);margin:4px 0}.meet-info .meet-location{font-size:1rem;color:#4a4a4a}.view-details-hint{font-size:1rem;color:var(--primary-blue);margin-top:8px;font-weight:600;opacity:.8;transition:opacity .3s}.coach-meet-item:hover .view-details-hint{opacity:1}.attendance-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin:16px 0}.stat-item{background-color:var(--bg-light);padding:12px;border-radius:8px;text-align:center}.stat-item.attending{background-color:#d4edda;border:2px solid var(--success-green)}.stat-item.not-attending{background-color:#f8d7da;border:2px solid var(--error-red)}.stat-item.pending{background-color:#fff3cd;border:2px solid var(--warning-yellow)}.stat-item.total{background-color:#d1ecf1;border:2px solid var(--primary-blue)}.stat-label{display:block;font-size:.95rem;color:#4a4a4a;margin-bottom:4px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.stat-number{display:block;font-size:1.8rem;font-weight:700;color:var(--text-dark)}.attendance-percentage{margin-top:16px}.percentage-bar{height:12px;background-color:var(--bg-light);border-radius:6px;overflow:hidden;margin-bottom:8px}.percentage-fill{height:100%;background:linear-gradient(90deg,var(--success-green),#4caf50);transition:width .5s ease;border-radius:6px}.percentage-text{font-size:.9rem;color:var(--text-light);font-weight:600}.stat-card.clickable{transition:all .3s ease}.stat-card.clickable:hover{transform:translateY(-5px);box-shadow:0 8px 20px #0066cc26;border-color:var(--primary-blue)}.stat-hint{font-size:.85rem;color:var(--text-light);margin-top:8px;font-style:italic}.swimmers-list{overflow-x:auto;margin-top:16px}.swimmers-list .data-table{width:100%}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0009;display:flex;justify-content:center;align-items:center;z-index:1000;padding:20px}.modal-content{background:#fff;border-radius:12px;padding:0;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px;border-bottom:2px solid var(--border-gray)}.modal-header h2{margin:0;color:var(--primary-blue)}.btn-close{background:none;border:none;font-size:2rem;line-height:1;color:var(--text-light);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.btn-close:hover{background-color:var(--bg-light);color:var(--text-dark)}.edit-swimmer-form{padding:24px}.form-actions{display:flex;gap:12px;margin-top:24px;padding-top:24px;border-top:1px solid var(--border-gray)}@media (max-width: 1024px){.meet-info h4{font-size:1.4rem}.quick-actions-bar{flex-direction:column}.btn-large{min-width:100%}.attendance-stats{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.add-meet-form{padding:16px}.section-title{font-size:1.2rem;margin:24px 0 12px}.coach-meet-item{padding:16px}.meet-main{flex-direction:column;gap:12px}.meet-info h4{font-size:1.1rem}.attendance-stats{grid-template-columns:repeat(2,1fr);gap:8px}.stat-item{padding:10px}.stat-number{font-size:1.5rem}.stat-label{font-size:.75rem}.swimmers-list .data-table{font-size:.85rem}.swimmers-list .data-table th,.swimmers-list .data-table td{padding:8px 4px}.modal-content{max-width:95%;max-height:95vh}.modal-header{padding:16px}.modal-header h2{font-size:1.3rem}.edit-swimmer-form{padding:16px}.form-actions{flex-direction:column}.form-actions button{width:100%}.btn-close{font-size:1.5rem}.percentage-text{font-size:.85rem}}@media (max-width: 480px){.modal-overlay{padding:10px}.modal-content{max-width:100%;max-height:98vh;border-radius:8px}.attendance-stats{grid-template-columns:1fr;gap:8px}.stat-number{font-size:1.8rem}.stat-item,.coach-meet-item{padding:12px}.meet-info h4{font-size:1rem}.view-details-hint{font-size:.8rem}.swimmers-list{overflow-x:auto;-webkit-overflow-scrolling:touch}.swimmers-list .data-table{font-size:.8rem;min-width:500px}.percentage-bar{height:10px}}@media (max-width: 360px){.modal-header,.edit-swimmer-form{padding:12px}.stat-number{font-size:1.5rem}}.calendar-container{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a;margin-bottom:24px;max-width:100%;overflow-x:hidden}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.calendar-header h2{margin:0;font-size:1.8rem;color:var(--text-dark)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;width:100%;max-width:100%}.calendar-day-header{text-align:center;font-weight:700;color:var(--text-dark);padding:12px;background-color:var(--bg-light);border-radius:6px;font-size:.9rem;text-transform:uppercase;letter-spacing:.5px}.calendar-day{aspect-ratio:1;border:2px solid var(--border-gray);border-radius:8px;padding:8px;cursor:pointer;transition:all .3s;display:flex;flex-direction:column;min-height:80px}.calendar-day:hover{border-color:var(--primary-blue);background-color:var(--bg-light);transform:scale(1.05)}.calendar-day.empty{border:none;cursor:default}.calendar-day.empty:hover{background-color:transparent;transform:none}.calendar-day.other-month{opacity:.3}.calendar-day.today{border-color:var(--accent-orange);background-color:#ff6b351a}.calendar-day.selected{border-color:var(--primary-blue);background-color:#0066cc1a}.calendar-day.has-meets{background-color:#00ccff0d}.day-number{font-weight:700;color:var(--text-dark);font-size:1.1rem;margin-bottom:4px}.meet-indicators{display:flex;flex-wrap:wrap;gap:4px;margin-top:auto}.meet-indicator{font-size:.85rem;background-color:var(--secondary-aqua);color:#fff;padding:2px 6px;border-radius:4px;font-weight:600}.selected-date-panel{margin-top:24px}.selected-date-panel h2{display:flex;align-items:center;gap:12px;margin-bottom:20px;color:var(--primary-blue)}.today-badge{font-size:.8rem;background-color:var(--accent-orange);color:#fff;padding:4px 12px;border-radius:12px;font-weight:600;text-transform:uppercase}.selected-meets-list{display:flex;flex-direction:column;gap:16px}.selected-meet-item{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:16px;border:2px solid var(--border-gray);border-radius:10px;transition:all .3s}.selected-meet-item:hover{border-color:var(--secondary-aqua);box-shadow:0 2px 8px #0cf3}.meet-details{flex:1}.meet-details h3{margin:0 0 8px;color:var(--primary-blue);font-size:1.2rem}.meet-time{font-weight:600;color:var(--text-dark);margin-bottom:8px}@media (max-width: 768px){.calendar-container{padding:16px;border-radius:10px}.calendar-header{flex-direction:column;gap:12px}.calendar-header h2{font-size:1.4rem}.calendar-header .btn{width:100%;max-width:100%}.calendar-grid{gap:4px}.calendar-day{min-height:60px;padding:4px}.day-number{font-size:.9rem}.calendar-day-header{font-size:.75rem;padding:8px 4px}.meet-indicator{font-size:.7rem;padding:1px 4px}.selected-meet-item{flex-direction:column;padding:14px}.selected-meet-item .btn{width:100%}.meet-details h3{font-size:1.1rem}.meet-time{font-size:.95rem}}@media (max-width: 480px){.calendar-container{padding:12px;margin-bottom:16px}.calendar-header{gap:10px}.calendar-header h2{font-size:1.2rem;text-align:center}.calendar-header .btn{padding:10px 16px;font-size:.9rem;min-height:44px}.calendar-grid{gap:2px}.calendar-day{min-height:50px;padding:3px;border-width:1px}.calendar-day:hover{transform:scale(1.02)}.day-number{font-size:.85rem}.calendar-day-header{font-size:.7rem;padding:6px 2px;letter-spacing:0}.meet-indicator{font-size:.65rem;padding:1px 3px}.selected-date-panel{margin-top:16px}.selected-date-panel h2{font-size:1.1rem;flex-direction:column;align-items:flex-start;gap:8px}.selected-meet-item{padding:12px;gap:12px}.meet-details h3{font-size:1rem}.meet-time,.meet-location,.meet-description{font-size:.85rem}}@media (max-width: 360px){.calendar-container{padding:10px}.calendar-header h2{font-size:1.1rem}.calendar-grid{gap:1px}.calendar-day{min-height:45px;padding:2px}.day-number{font-size:.8rem}.calendar-day-header{font-size:.65rem;padding:5px 1px}.meet-indicator{font-size:.6rem}}.meet-date-header{font-size:1.2rem;color:var(--text-light);margin-top:.5rem;display:flex;align-items:center;gap:1rem}.past-badge{display:inline-block;padding:.25rem .75rem;background:var(--text-light);color:#fff;border-radius:1rem;font-size:.875rem;font-weight:600}.meet-details-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-bottom:2rem}.meet-info-card h2,.attendance-stats-card h2,.attendance-roster-card h2{margin-top:0;margin-bottom:1.5rem;color:var(--text-dark)}.meet-info-list{margin-bottom:1.5rem}.meet-info-item{display:flex;flex-direction:column;gap:.5rem;padding:1rem 0;border-bottom:1px solid var(--border-gray)}.meet-info-item:last-child{border-bottom:none}.info-label{font-weight:600;color:var(--text-dark);font-size:.875rem;text-transform:uppercase;letter-spacing:.5px}.info-value{color:var(--text-light);font-size:1rem}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:1rem}.stat-item{text-align:center;padding:1.5rem;border-radius:8px;background:var(--bg-light)}.stat-item.stat-attending{background:#28a7451a;border:2px solid var(--success-green)}.stat-item.stat-not-attending{background:#dc35451a;border:2px solid var(--error-red)}.stat-item.stat-pending{background:#ffc1071a;border:2px solid var(--warning-yellow)}.stat-item.stat-total{background:#0066cc1a;border:2px solid var(--primary-blue)}.stat-number{font-size:2.5rem;font-weight:700;color:var(--text-dark);margin-bottom:.5rem}.stat-label{font-size:.875rem;color:var(--text-light);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.attendance-roster-card{margin-top:2rem}.attendance-table-container{overflow-x:auto}.attendance-table{width:100%;border-collapse:collapse;font-size:.95rem}.attendance-table thead{background:var(--bg-light)}.attendance-table th{padding:1rem;text-align:left;font-weight:600;color:var(--text-dark);border-bottom:2px solid var(--border-gray);white-space:nowrap}.attendance-table td{padding:1rem;border-bottom:1px solid var(--border-gray)}.attendance-table tbody tr:hover{background:var(--bg-light)}.swimmer-name{font-weight:600;color:var(--primary-blue)}.export-section{margin-top:2rem;text-align:center}.export-section h3{margin-top:0;margin-bottom:.5rem}.export-section p{color:var(--text-light);margin-bottom:1.5rem}@media (max-width: 1024px){.meet-details-grid{grid-template-columns:1fr}}@media (max-width: 768px){.page-header{flex-direction:column;align-items:flex-start;gap:1rem}.meet-date-header{flex-direction:column;align-items:flex-start}.stats-grid{grid-template-columns:1fr}.stat-number{font-size:2rem}.attendance-table{font-size:.875rem}.attendance-table th,.attendance-table td{padding:.75rem .5rem}.attendance-table thead{display:none}.attendance-table,.attendance-table tbody,.attendance-table tr,.attendance-table td{display:block}.attendance-table tr{margin-bottom:1.5rem;border:1px solid var(--border-gray);border-radius:8px;padding:1rem;background:#fff}.attendance-table td{padding:.5rem 0;border:none;display:flex;justify-content:space-between;align-items:center}.attendance-table td:before{content:attr(data-label);font-weight:600;color:var(--text-dark);margin-right:1rem}.attendance-table td:nth-child(1):before{content:"Swimmer:"}.attendance-table td:nth-child(2):before{content:"Age:"}.attendance-table td:nth-child(3):before{content:"Gender:"}.attendance-table td:nth-child(4):before{content:"Parent:"}.attendance-table td:nth-child(5):before{content:"Email:"}.attendance-table td:nth-child(6):before{content:"Status:"}}@media (max-width: 480px){.stat-number{font-size:1.75rem}.stat-label{font-size:.75rem}}.family-selector-card{margin-bottom:2rem}.family-selector-card h2{margin-top:0;margin-bottom:.5rem}.helper-text{color:var(--text-light);margin-bottom:1.5rem;font-size:.95rem}.family-selector{width:100%}.preview-banner{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;padding:1rem 1.5rem;margin-bottom:2rem;box-shadow:0 4px 12px #667eea4d}.preview-banner-content{display:flex;align-items:center;gap:1rem;color:#fff}.preview-icon{font-size:1.5rem}.preview-text{font-size:1rem;font-weight:500}.preview-text strong{font-weight:700}.preview-dashboard{display:flex;flex-direction:column;gap:2rem}.swimmers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1.5rem;padding:1rem 0}.swimmer-card{text-align:center;padding:1.5rem;border:2px solid var(--border-gray);border-radius:12px;transition:all .3s}.swimmer-card:hover{border-color:var(--primary-blue);box-shadow:0 4px 12px #0066cc1a}.swimmer-avatar{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,var(--primary-blue),var(--secondary-aqua));color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.8rem;font-weight:700;margin:0 auto 1rem}.swimmer-card h3{margin:0 0 .5rem;font-size:1.1rem;color:var(--text-dark)}.swimmer-details{display:flex;justify-content:center;gap:1rem;font-size:.9rem;color:var(--text-light)}.meets-list{display:flex;flex-direction:column;gap:1.5rem;padding:1rem 0}.meet-card{border:2px solid var(--border-gray);border-radius:12px;padding:1.5rem;transition:all .3s}.meet-card:hover{border-color:var(--primary-blue);box-shadow:0 4px 12px #0066cc1a}.meet-header{margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid var(--border-gray)}.meet-header h3{margin:0 0 .5rem;font-size:1.3rem;color:var(--primary-blue)}.meet-date{color:var(--text-light);font-size:.95rem;margin:.25rem 0}.meet-location{color:var(--text-light);font-size:.9rem;margin:.25rem 0}.meet-description{color:var(--text-light);font-size:.9rem;margin:.5rem 0 0;font-style:italic}.rsvp-section{margin-bottom:1.5rem}.rsvp-section h4{margin:0 0 1rem;font-size:1rem;color:var(--text-dark);font-weight:600}.no-swimmers-message{color:var(--text-light);font-style:italic;padding:1rem;background:var(--bg-light);border-radius:8px;text-align:center}.rsvp-list{display:flex;flex-direction:column;gap:.75rem}.rsvp-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:var(--bg-light);border-radius:8px;transition:background .3s}.rsvp-item:hover{background:#e8edf3}.rsvp-swimmer-info{display:flex;align-items:center;gap:.5rem}.rsvp-swimmer-name{font-weight:600;color:var(--text-dark)}.status-badge{display:inline-block;padding:.375rem .75rem;border-radius:1rem;font-size:.875rem;font-weight:600;white-space:nowrap}.status-badge.status-attending{background:var(--success-green);color:#fff}.status-badge.status-not-attending{background:var(--error-red);color:#fff}.status-badge.status-pending{background:var(--warning-yellow);color:var(--text-dark)}.meet-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:1rem;border-top:1px solid var(--border-gray)}.preview-note{font-size:.85rem;color:var(--text-light);font-style:italic}@media (max-width: 768px){.preview-banner{padding:1rem}.preview-banner-content{flex-direction:column;text-align:center;gap:.5rem}.swimmers-grid{grid-template-columns:1fr}.meet-actions{flex-direction:column;align-items:stretch}.meet-actions button{width:100%}.preview-note{text-align:center}.rsvp-item{flex-direction:column;align-items:flex-start;gap:.5rem}.status-badge{align-self:flex-start}}@media (max-width: 480px){.swimmer-avatar{width:60px;height:60px;font-size:1.4rem}.preview-banner{padding:.75rem}.preview-icon{font-size:1.25rem}.preview-text{font-size:.9rem}}.swimmer-selector{display:flex;align-items:center;gap:16px;margin-bottom:24px;flex-wrap:wrap}.swimmer-selector label{font-weight:600;color:var(--text-dark)}.swimmer-selector select{flex:1;min-width:200px;padding:12px;border:2px solid var(--border-gray);border-radius:8px;font-size:1rem;transition:border-color .3s}.swimmer-selector select:focus{outline:none;border-color:var(--primary-blue)}.add-time-form{background-color:var(--bg-light);padding:24px;border-radius:10px;margin-bottom:24px}.times-table{width:100%}.event-name{font-weight:600;color:var(--primary-blue)}.time-value{font-weight:700;font-size:1.1rem;color:var(--text-dark);font-family:Courier New,monospace}.times-table tbody tr:hover{background-color:#00ccff0d}.standards-comparison{font-size:.9rem}.standards-list{display:flex;flex-direction:column;gap:6px}.standard-item{display:flex;align-items:center;gap:8px;padding:4px 8px;border-radius:4px;background-color:var(--bg-light)}.standard-item.achieved{background-color:#d1fae5;border-left:3px solid #10b981}.standard-item.not-achieved{background-color:#fee2e2;border-left:3px solid #ef4444}.standard-name{font-weight:600;font-size:.85rem;color:var(--text-dark);white-space:nowrap}.standard-status{font-size:.85rem}.achieved-badge{color:#059669;font-weight:600}.needs-badge{color:#dc2626;font-weight:500}.no-standards{color:#9ca3af;font-style:italic;font-size:.85rem}@media (max-width: 768px){.swimmer-selector{flex-direction:column;align-items:stretch}.swimmer-selector select{width:100%}.times-table{font-size:.85rem}.times-table th,.times-table td{padding:8px 4px}.time-value{font-size:1rem}.standards-list{gap:4px}.standard-item{font-size:.75rem;padding:3px 6px}.standard-name,.standard-status{font-size:.75rem}}.filters-card{background:linear-gradient(135deg,#0066cc0d,#00ccff0d)}.filters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:20px}.add-standard-form{background-color:var(--bg-light);padding:24px;border-radius:10px}.standards-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:12px}.standards-header h2{margin:0;color:var(--primary-blue);font-size:1.5rem}.standards-count{background-color:var(--primary-blue);color:#fff;padding:8px 16px;border-radius:20px;font-weight:600;font-size:.9rem}.standards-table{width:100%}.standards-table tbody tr{transition:all .3s}.standards-table tbody tr:hover{background-color:#00ccff0d;transform:translate(4px)}.info-card{background:linear-gradient(135deg,var(--bg-light),white);border:2px solid var(--border-gray)}.info-card h3{color:var(--primary-blue);margin-bottom:20px;font-size:1.3rem}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.info-item{background:#fff;padding:16px;border-radius:10px;border:2px solid var(--border-gray);transition:all .3s}.info-item:hover{border-color:var(--secondary-aqua);transform:translateY(-4px);box-shadow:0 4px 12px #0cf3}.info-item h4{margin:0 0 8px;color:var(--text-dark);font-size:1.1rem}.info-item p{margin:0;color:var(--text-light);font-size:.9rem;line-height:1.4}@media (max-width: 768px){.filters-grid{grid-template-columns:1fr}.standards-header{flex-direction:column;align-items:flex-start}.info-grid{grid-template-columns:1fr}.standards-table tbody tr:hover{transform:none}}.navbar{background-color:var(--primary-blue);box-shadow:0 2px 8px #0000001a;position:sticky;top:0;z-index:1000}.navbar-container{display:flex;justify-content:space-between;align-items:center;padding:16px 20px}.navbar-brand h2{color:#fff;font-size:1.5rem;font-weight:700;margin:0}.navbar-brand a{color:#fff;text-decoration:none}.mobile-menu-toggle{display:none;flex-direction:column;background:transparent;padding:8px}.mobile-menu-toggle span{width:25px;height:3px;background-color:#fff;margin:3px 0;border-radius:2px}.navbar-menu{display:flex;align-items:center;gap:24px}.navbar-menu a{color:#fff;font-weight:500;text-decoration:none;padding:8px 12px;border-radius:6px;transition:background-color .3s}.navbar-menu a:hover{background-color:#ffffff1a}.navbar-user{display:flex;align-items:center;gap:12px;margin-left:24px;padding-left:24px;border-left:1px solid rgba(255,255,255,.3)}.user-avatar{width:36px;height:36px;border-radius:50%;border:2px solid white}.user-name{color:#fff;font-weight:500;font-size:.95rem}.user-role{background-color:var(--accent-orange);color:#fff;padding:4px 12px;border-radius:12px;font-size:.8rem;font-weight:600;text-transform:uppercase}.btn-logout{background-color:#fff3;color:#fff;padding:8px 16px;border-radius:6px;font-weight:500;font-size:.9rem}.btn-logout:hover{background-color:#ffffff4d}.navbar-version{font-size:.7rem;color:#fff9;font-family:monospace;margin-left:8px}@media (max-width: 768px){.mobile-menu-toggle{display:flex}.navbar-menu{position:absolute;top:100%;left:0;right:0;background-color:var(--primary-blue);flex-direction:column;align-items:stretch;gap:0;padding:0;max-height:0;overflow:hidden;transition:max-height .3s ease}.navbar-menu.active{max-height:500px;box-shadow:0 4px 8px #0000001a}.navbar-menu a{padding:16px 20px;border-radius:0;border-bottom:1px solid rgba(255,255,255,.1)}.navbar-user{flex-direction:column;align-items:flex-start;margin:0;padding:16px 20px;border-left:none;border-top:2px solid rgba(255,255,255,.3);gap:8px}.btn-logout{width:100%}}.app-container{min-height:100vh;display:flex;flex-direction:column}.page-content{flex:1;padding:24px 0}.page-header{margin-bottom:32px;display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.page-header h1{font-size:2rem;color:var(--text-dark);margin-bottom:8px;margin-top:0}.page-header p{color:var(--text-light);font-size:1.1rem;margin:0}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;margin-top:24px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:32px}.stat-card{background:linear-gradient(135deg,var(--primary-blue),var(--secondary-aqua));color:#fff;padding:24px;border-radius:12px;box-shadow:0 4px 12px #06c3}.stat-card h3{font-size:.9rem;font-weight:500;opacity:.9;margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.stat-card .stat-value{font-size:2.5rem;font-weight:700;line-height:1}.stat-card .stat-subtext{font-size:.85rem;opacity:.85;margin-top:8px;margin-bottom:0}.attending-meets-list{margin-top:16px;display:flex;flex-direction:column;gap:8px}.attending-meet-link{display:flex;align-items:center;gap:12px;padding:12px;background:#ffffff26;border-radius:8px;text-decoration:none;color:#fff;transition:all .2s;border:1px solid rgba(255,255,255,.2)}.attending-meet-link:hover{background:#ffffff40;border-color:#fff6;transform:translate(4px)}.attending-meet-link .meet-icon{font-size:1.2rem;flex-shrink:0}.attending-meet-link .meet-info{flex:1;min-width:0}.attending-meet-link .meet-name{font-weight:600;font-size:.95rem;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attending-meet-link .meet-date{font-size:.8rem;opacity:.9}.attending-meet-link .meet-arrow{font-size:1rem;opacity:.7;flex-shrink:0;transition:transform .2s}.attending-meet-link:hover .meet-arrow{transform:translate(4px);opacity:1}.data-table{width:100%;border-collapse:collapse;margin-top:16px}.data-table th{background-color:var(--bg-light);padding:12px 16px;text-align:left;font-weight:600;color:var(--text-dark);border-bottom:2px solid var(--border-gray)}.data-table td{padding:12px 16px;border-bottom:1px solid var(--border-gray)}.data-table tr:hover{background-color:var(--bg-light)}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:600;color:var(--text-dark)}.form-group input,.form-group select,.form-group textarea{width:100%;padding:12px;border:2px solid var(--border-gray);border-radius:8px;font-size:1rem;transition:border-color .3s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary-blue)}@media (max-width: 768px){.page-header{flex-direction:column;align-items:stretch}.page-header h1{font-size:1.5rem}.dashboard-grid{grid-template-columns:1fr;gap:16px}.stats-grid{grid-template-columns:1fr}.data-table{font-size:.9rem}.data-table th,.data-table td{padding:8px}}@media (max-width: 768px){.attending-meet-link{padding:10px;gap:10px}.attending-meet-link .meet-name{font-size:.9rem;white-space:normal;overflow:visible;text-overflow:clip}.attending-meet-link .meet-date{font-size:.75rem}}@media (max-width: 480px){.page-content{padding:16px 0}.stat-card .stat-value{font-size:2rem}.attending-meet-link{padding:8px;gap:8px}.attending-meet-link .meet-icon{font-size:1rem}.attending-meet-link .meet-name{font-size:.85rem}.attending-meet-link .meet-date{font-size:.7rem}.attending-meet-link .meet-arrow{font-size:.9rem}}*{margin:0;padding:0;box-sizing:border-box}:root{--primary-blue: #0066cc;--primary-blue-dark: #0052a3;--secondary-aqua: #00ccff;--accent-orange: #ff6b35;--text-dark: #1a1a1a;--text-light: #666;--bg-light: #f5f7fa;--bg-white: #ffffff;--border-gray: #e0e0e0;--success-green: #28a745;--error-red: #dc3545;--warning-yellow: #ffc107}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;background-color:var(--bg-light);color:var(--text-dark);line-height:1.6;overflow-x:hidden}button{font-family:inherit;cursor:pointer;border:none;transition:all .3s ease}input,textarea,select{font-family:inherit;font-size:1rem}a{color:var(--primary-blue);text-decoration:none}a:hover{text-decoration:underline}.container{max-width:1200px;margin:0 auto;padding:0 20px}.btn{padding:12px 24px;border-radius:8px;font-weight:600;font-size:1rem;transition:all .3s ease}.btn-primary{background-color:var(--primary-blue);color:#fff}.btn-primary:hover{background-color:var(--primary-blue-dark);transform:translateY(-2px);box-shadow:0 4px 12px #0066cc4d}.btn-secondary{background-color:var(--bg-white);color:var(--primary-blue);border:2px solid var(--primary-blue)}.btn-secondary:hover{background-color:var(--primary-blue);color:#fff}.btn-success{background-color:var(--success-green);color:#fff}.btn-danger{background-color:var(--error-red);color:#fff}.card{background:var(--bg-white);border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a;margin-bottom:20px}.loading{display:flex;justify-content:center;align-items:center;min-height:200px;font-size:1.2rem;color:var(--text-light)}.error-message{background-color:#fee;border:1px solid var(--error-red);color:var(--error-red);padding:12px 16px;border-radius:8px;margin:16px 0}.success-message{background-color:#efe;border:1px solid var(--success-green);color:var(--success-green);padding:12px 16px;border-radius:8px;margin:16px 0}@media (max-width: 1024px){.container{max-width:100%}}@media (max-width: 768px){.container{padding:0 16px}.card{padding:16px;border-radius:10px}.btn{padding:10px 20px;font-size:.95rem;min-height:44px}input,textarea,select{font-size:16px}}@media (max-width: 480px){body{font-size:14px}.container{padding:0 12px}.card{padding:12px;border-radius:8px;margin-bottom:16px}.btn{width:100%;margin-bottom:8px;padding:12px 20px;font-size:1rem}.btn-small{padding:10px 16px;font-size:.9rem}}@media (hover: none) and (pointer: coarse){button,a,.clickable{min-height:44px;min-width:44px}.btn{padding:14px 24px}}
