*{margin:0;padding:0;box-sizing:border-box}:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh;background:#f9fafb;color:#1a1a1a}#root{min-height:100vh}.navbar{background:#000;color:#fff;box-shadow:0 2px 4px #0000001a}.navbar-container{max-width:1400px;margin:0 auto;width:100%;padding:1rem 2rem;display:flex;align-items:center;gap:2rem;flex-wrap:wrap}.navbar-brand{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.navbar-brand h1{margin:0;font-size:1.5rem;font-weight:700}.navbar-links{display:flex;gap:.5rem;flex-wrap:wrap;flex:1;align-items:center;min-width:0}.navbar-links a{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-radius:.5rem;color:#d1d5db;text-decoration:none;transition:all .2s;font-weight:500}.navbar-links a:hover{background:#242424;color:#fff}.navbar-links a.active{background:#2f2f2f;color:#fff}.user-menu{position:relative;margin-left:auto}.user-menu-trigger{display:flex;align-items:center;gap:.25rem;padding:.75rem 1rem;border-radius:.5rem;color:#d1d5db;background:transparent;border:none;cursor:pointer;transition:all .2s;font-weight:500;font-size:1rem;font-family:inherit}.user-menu-trigger:hover{background:#242424;color:#fff}.user-menu-trigger .rotate{transform:rotate(180deg);transition:transform .2s}.user-menu-dropdown{position:absolute;top:calc(100% + .5rem);right:0;background:#242424;border-radius:.5rem;box-shadow:0 4px 6px #0000004d;min-width:180px;overflow:hidden;z-index:1000;animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.user-menu-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;color:#d1d5db;text-decoration:none;background:transparent;border:none;cursor:pointer;transition:all .2s;font-weight:500;font-size:1rem;font-family:inherit;width:100%;text-align:left}.user-menu-item:hover{background:#4b5563;color:#fff}.user-menu-item.logout:hover{background:#dc2626;color:#fff}@media(max-width:1024px){.navbar{padding:1rem}.navbar-links{flex-basis:100%;order:3}.user-menu{order:2}.navbar-brand{display:none}}@media(max-width:840px){.navbar{padding:6px;position:sticky;top:0;z-index:100}.navbar-brand{display:none}.navbar-links a,.user-menu-trigger{flex-direction:column;gap:.15rem;padding:.4rem .6rem;font-size:.75rem}.navbar-links a span,.user-menu-trigger span{display:none}.navbar-links a svg,.user-menu-trigger svg{width:26px;height:26px;stroke-width:1}}.member-navbar{background:#1a1a1a;padding:0;position:sticky;top:0;z-index:1000;box-shadow:0 2px 8px #0000004d}.member-navbar-container{max-width:1400px;margin:0 auto;padding:0 40px;display:flex;justify-content:space-between;align-items:center;height:70px}.member-navbar-brand{display:flex;align-items:center;gap:12px;color:#fff}.brand-text{font-size:1.25rem;font-weight:700;letter-spacing:2px}.member-navbar-links{display:flex;align-items:center;gap:35px}.nav-link{color:#fff;text-decoration:none;font-size:1rem;font-weight:500;transition:color .3s ease;position:relative}.nav-link:hover{color:#e0e0e0}.nav-link.active{color:#fff}.nav-link.active:after{content:"";position:absolute;bottom:-8px;left:0;right:0;height:2px;background:#fff}.btn-salir{padding:8px 24px;background:transparent;color:#fff;border:2px solid #ffffff;border-radius:4px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;text-transform:uppercase;letter-spacing:1px}.btn-salir:hover{background:#fff;color:#1a1a1a}@media(max-width:1024px){.member-navbar-container{padding:0 20px}.member-navbar-links{gap:20px}.nav-link{font-size:.9rem}}@media(max-width:768px){.member-navbar-container{flex-direction:column;height:auto;padding:15px 20px;gap:15px}.member-navbar-links{flex-wrap:wrap;justify-content:center;gap:15px}.brand-text{font-size:1rem}}.login-page{min-height:100vh;display:flex;justify-content:center;align-items:center;padding:20px}.login-container{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;width:100%;max-width:420px;padding:40px}.login-header{text-align:center;margin-bottom:40px}.login-header svg{color:#667eea;margin-bottom:20px}.login-header h1{font-size:1.75rem;font-weight:700;color:#1a1a1a;margin:0 0 10px}.login-header p{font-size:1rem;color:#666;margin:0}.login-form{display:flex;flex-direction:column;gap:20px}.login-error{background:#fee;color:#c33;padding:12px;border-radius:6px;font-size:.9rem;text-align:center;border:1px solid #fcc}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{display:flex;align-items:center;gap:8px;font-size:.95rem;font-weight:600;color:#333}.form-group label svg{color:#667eea}.form-group input{padding:12px 16px;font-size:1rem;border:2px solid #e0e0e0;border-radius:8px;transition:all .3s ease;outline:none}.form-group input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.login-button{padding:14px;font-size:1rem;font-weight:600;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;cursor:pointer;transition:all .3s ease;text-transform:uppercase;letter-spacing:1px;margin-top:10px}.login-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px #667eea66}.login-button:disabled{opacity:.6;cursor:not-allowed}.login-footer{margin-top:30px;text-align:center}.login-footer a{color:#667eea;text-decoration:none;font-size:.9rem;transition:color .3s ease}.login-footer a:hover{color:#764ba2;text-decoration:underline}@media(max-width:480px){.login-container{padding:30px 20px}.login-header h1{font-size:1.5rem}}.date-picker-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.date-picker-container{background:#fff;border-radius:1rem;padding:1.5rem;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;min-width:320px;animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.date-picker-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.month-title{font-size:1.25rem;font-weight:700;color:#1f2937;text-transform:capitalize;margin:0}.month-nav-btn{background:#f3f4f6;border:none;border-radius:.5rem;padding:.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;color:#4b5563}.month-nav-btn:hover{background:#4f46e5;color:#fff;transform:scale(1.1)}.weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem;margin-bottom:.5rem}.weekday{text-align:center;font-size:.75rem;font-weight:600;color:#6b7280;padding:.5rem 0;text-transform:uppercase}.days-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.25rem}.day-cell{aspect-ratio:1;border:none;background:transparent;border-radius:.5rem;font-size:.875rem;font-weight:500;color:#1f2937;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;padding:1rem}.day-cell:not(.empty):hover{background:#e0e7ff;color:#4f46e5;transform:scale(1.05)}.day-cell.empty{cursor:default}.day-cell.selected{background:#3b82f6;color:#fff;font-weight:700;box-shadow:0 4px 6px #3b82f666}.day-cell.selected:hover{background:#2563eb;transform:scale(1.05)}.day-cell.today{background:#fef3c7;font-weight:700;color:#92400e}.day-cell.today.selected{border:2px solid white}.date-picker-footer{margin-top:1rem;padding-top:1rem;border-top:1px solid #e5e7eb;display:flex;justify-content:center}.today-btn{background:#f3f4f6;border:none;border-radius:.5rem;padding:.5rem 1.5rem;font-size:.875rem;font-weight:600;color:#4f46e5;cursor:pointer;transition:all .2s}.today-btn:hover{background:#4f46e5;color:#fff;transform:translateY(-2px);box-shadow:0 4px 6px #4f46e54d}.dashboard{padding:2rem;max-width:1400px;margin:0 auto}.dashboard-header{margin-bottom:2rem}.dashboard-header h1{font-size:2rem;margin-bottom:1rem;color:#1a1a1a}.date-selector{display:flex;align-items:center;gap:1rem}.btn-nav{background:#4f46e5;color:#fff;border:none;padding:.5rem 1rem;border-radius:.5rem;cursor:pointer;font-size:1.2rem;transition:background .2s}.btn-nav:hover{background:#4338ca}.current-date{display:flex;align-items:center;gap:.75rem;padding:.75rem 1.5rem;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:.75rem;color:#fff;box-shadow:0 4px 6px #667eea4d;cursor:pointer;position:relative;transition:transform .2s}.current-date:hover{transform:translateY(-2px);box-shadow:0 6px 8px #667eea66}.date-info{display:flex;flex-direction:column;gap:.125rem}.date-day{font-size:1.25rem;font-weight:700;text-transform:capitalize;letter-spacing:.5px}.date-full{font-size:.875rem;opacity:.95;text-transform:capitalize}.loading{text-align:center;padding:3rem;font-size:1.2rem;color:#6b7280}.schedule-grid{display:grid;gap:1.5rem}.no-schedule{text-align:center;padding:3rem;background:#f9fafb;border-radius:.5rem;color:#6b7280}.time-slot-card{background:#fff;border-radius:.75rem;box-shadow:0 1px 3px #0000001a;overflow:hidden}.slot-header{background:#f9fafb;padding:1rem 1.5rem;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center}.slot-time{display:flex;align-items:center;gap:.75rem;color:#1f2937}.time-info{display:flex;flex-direction:column;gap:.125rem}.time-range{font-size:1.25rem;font-weight:700;color:#1f2937;letter-spacing:.5px}.time-duration{font-size:.8rem;color:#6b7280;font-weight:500}.total-capacity{display:flex;align-items:center;gap:.5rem;background:#fff;padding:.5rem 1rem;border-radius:.5rem;border:2px solid #4f46e5}.total-label{font-weight:600;color:#4f46e5}.total-count{font-weight:700;font-size:1.1rem;color:#1f2937}.total-capacity .available{color:#059669;font-weight:600}.slot-sections{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#e5e7eb}.slot-section{background:#fff;padding:1.5rem}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:2px solid #e5e7eb}.section-header h3{font-size:1rem;font-weight:600;margin:0}.training .section-header{border-bottom-color:#3b82f6}.kinesiology .section-header{border-bottom-color:#10b981}.capacity-badge{display:flex;align-items:center;gap:.5rem;font-size:.9rem;font-weight:500;color:#4b5563}.capacity-badge .available{color:#059669}.members-list{display:flex;flex-direction:column;gap:.5rem}.no-members{color:#9ca3af;font-style:italic;margin:0}.member-item{display:flex;align-items:center;justify-content:space-between;padding:.75rem;background:#f9fafb;border-radius:.375rem;transition:background .2s}.member-item:hover{background:#f3f4f6}.member-item.absent{background:#fee2e2;opacity:.7;border-left:3px solid #dc2626}.member-item.absent:hover{background:#fecaca}.member-item.absent .member-name{color:#991b1b;text-decoration:line-through}.member-name{font-weight:500;color:#1f2937}.badge-absent{background:#dc2626;color:#fff;padding:.25rem .5rem;border-radius:.25rem;font-size:.75rem;font-weight:600;margin-left:.5rem}.badge-recovery{background:#fef3c7;color:#92400e;padding:.25rem .5rem;border-radius:.25rem;font-size:.75rem;font-weight:600;margin-left:.5rem}.ai-badge{display:inline-flex;align-items:center;gap:.25rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:.25rem .5rem;border-radius:.375rem;font-size:.7rem;font-weight:600;box-shadow:0 2px 4px #667eea4d}@media(max-width:768px){.dashboard{padding:1rem}.date-selector{justify-content:center}.slot-sections{grid-template-columns:1fr}.slot-header{flex-direction:column;gap:1rem;align-items:flex-start}.total-capacity{width:100%;justify-content:center}.date-day{font-size:1.1rem}.date-full{font-size:.8rem}.time-range{font-size:1.1rem}}.plans-page{padding:2rem;max-width:1400px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.page-header h1{font-size:2rem;margin:0;color:#1a1a1a}.btn-primary{display:flex;align-items:center;gap:.5rem;background:#4f46e5;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:.5rem;cursor:pointer;font-size:1rem;font-weight:500;transition:background .2s}.btn-primary:hover{background:#4338ca}.btn-secondary{background:#e5e7eb;color:#374151;border:none;padding:.75rem 1.5rem;border-radius:.5rem;cursor:pointer;font-size:1rem;font-weight:500;transition:background .2s}.btn-secondary:hover{background:#d1d5db}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;padding:2rem;border-radius:.75rem;max-width:600px;width:90%;max-height:90vh;overflow-y:auto}.modal-content h2{margin-top:0;margin-bottom:1.5rem;color:#1a1a1a}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:#374151}.form-group input,.form-group select{width:100%;padding:.75rem;border:1px solid #d1d5db;border-radius:.5rem;font-size:1rem}.form-group input:focus,.form-group select:focus{outline:none;border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51a}.form-hint{display:block;margin-top:.25rem;font-size:.875rem;color:#6b7280;font-style:italic}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem}.plans-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.plan-card{background:#fff;border-radius:.75rem;box-shadow:0 1px 3px #0000001a;padding:1.5rem;transition:box-shadow .2s}.plan-card:hover{box-shadow:0 4px 6px #0000001a}.plan-header{display:flex;justify-content:space-between;align-items:start;margin-bottom:1rem;padding-bottom:1rem;border-bottom:2px solid #e5e7eb}.plan-header h3{margin:0;font-size:1.25rem;color:#1a1a1a}.plan-type{padding:.25rem .75rem;border-radius:.25rem;font-size:.875rem;font-weight:600}.plan-type.entrenamiento{background:#dbeafe;color:#1e40af}.plan-type.kinesiologia{background:#d1fae5;color:#065f46}.plan-details{margin-bottom:1rem}.plan-details p{margin:.5rem 0;color:#4b5563}.plan-actions{display:flex;gap:.5rem;justify-content:flex-end}.btn-icon{background:#f3f4f6;border:none;padding:.5rem;border-radius:.375rem;cursor:pointer;transition:background .2s;display:flex;align-items:center;justify-content:center}.btn-icon:hover{background:#e5e7eb}.btn-icon.danger:hover{background:#fee2e2;color:#dc2626}@media(max-width:768px){.plans-page{padding:1rem}.page-header h1{font-size:1.25rem}.btn-primary{padding:.5rem 1rem;font-size:.875rem;width:auto}.btn-primary svg{width:16px;height:16px}}.time-slots-page{padding:2rem;max-width:1400px;margin:0 auto}.days-list{display:flex;flex-direction:column;gap:1rem}.day-section{background:#fff;border-radius:.75rem;box-shadow:0 1px 3px #0000001a;overflow:hidden}.day-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;cursor:pointer;background:#fff;transition:background-color .2s ease;border-bottom:2px solid #e5e7eb}.day-header:hover{background-color:#f9fafb}.day-header h2{margin:0;font-size:1.25rem;color:#1a1a1a}.day-info{display:flex;align-items:center;gap:1rem}.slot-count{color:#6b7280;font-size:.9rem;font-weight:500}.no-slots{color:#9ca3af;font-style:italic;margin:0;padding:1.5rem}.slots-list{display:grid;gap:1rem;padding:1.5rem}.slot-card{display:flex;align-items:center;justify-content:space-between;padding:1rem;background:#f9fafb;border-radius:.5rem;border:1px solid #e5e7eb;transition:all .2s}.slot-card:hover{background:#f3f4f6;border-color:#d1d5db}.slot-time{display:flex;align-items:center;gap:.5rem;font-weight:600;color:#1f2937;min-width:150px}.slot-capacities{display:flex;gap:2rem;flex:1;justify-content:center}.capacity{display:flex;align-items:center;gap:.5rem}.capacity .label{color:#6b7280;font-size:.9rem}.capacity .value{font-weight:600;font-size:1.1rem}.capacity.total .value{color:#4f46e5;font-weight:700}.capacity.training .value{color:#3b82f6}.capacity.kinesiology .value{color:#10b981}.slot-actions{display:flex;gap:.5rem}@media(max-width:768px){.time-slots-page{padding:1rem}.page-header h1{font-size:1.25rem}.btn-primary{padding:.5rem 1rem;font-size:.875rem;width:auto}.btn-primary svg{width:16px;height:16px}.slot-card{flex-direction:column;align-items:flex-start;gap:1rem}.slot-capacities{width:100%;justify-content:flex-start}.slot-actions{width:100%;justify-content:flex-end}}.alert-modal{max-width:450px;text-align:center}.alert-icon{margin:0 auto 1.5rem;display:flex;justify-content:center}.alert-icon.success{color:#10b981}.alert-icon.error{color:#ef4444}.alert-icon.warning{color:#f59e0b}.alert-icon.info{color:#3b82f6}.alert-message{margin:1.5rem 0;color:#4b5563;font-size:1rem;line-height:1.5}.alert-actions{display:flex;justify-content:center;margin-top:2rem}.confirm-modal{max-width:500px}.confirm-message{margin:1.5rem 0;color:#4b5563;font-size:1rem;line-height:1.5}.confirm-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem}.members-page{padding:2rem;max-width:1400px;margin:0 auto}.modal-content.large{max-width:800px}.members-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.member-card{background:#fff;border-radius:.75rem;box-shadow:0 1px 3px #0000001a;padding:1.5rem;transition:box-shadow .2s}.member-card:hover{box-shadow:0 4px 6px #0000001a}.member-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem;padding-bottom:1rem;border-bottom:2px solid #e5e7eb}.member-avatar{width:50px;height:50px;border-radius:50%;background:#e0e7ff;display:flex;align-items:center;justify-content:center;color:#4f46e5}.member-info h3{margin:0;font-size:1.125rem;color:#1a1a1a}.member-email{margin:.25rem 0 0;color:#6b7280;font-size:.875rem}.form-hint.warning{color:#d97706;font-weight:600;font-style:normal}.pending-approval-box{background:#fef3c7;border:2px solid #fbbf24;border-radius:8px;padding:20px;text-align:center}.pending-text{font-size:1rem;color:#92400e;font-weight:600;margin:0 0 15px}.btn-confirm-member{background:#10b981;color:#fff;border:none;padding:12px 24px;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;margin-top:1rem}.btn-confirm-member:hover{background:#059669;transform:translateY(-1px);box-shadow:0 4px 6px #0000001a}.member-details{margin-bottom:1rem}.member-details p{margin:.5rem 0;color:#4b5563;font-size:.9rem}.member-actions{display:flex;gap:.5rem;justify-content:flex-end}.time-slots-selector{max-height:400px;overflow-y:auto;border:1px solid #e5e7eb;border-radius:.5rem;padding:1rem}.day-group{margin-bottom:1.5rem}.day-group:last-child{margin-bottom:0}.day-group h4{margin:0 0 .75rem;color:#1f2937;font-size:1rem;border-bottom:1px solid #e5e7eb;padding-bottom:.5rem}.slots-checkboxes{display:flex;flex-direction:column;gap:.5rem}.slot-checkbox{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:#f9fafb;border-radius:.375rem;cursor:pointer;transition:background .2s}.slot-checkbox:hover{background:#f3f4f6}.slot-checkbox.disabled{opacity:.5;cursor:not-allowed;background:#f9fafb}.slot-checkbox.disabled:hover{background:#f9fafb}.slot-checkbox input[type=checkbox]{cursor:pointer}.slot-checkbox input[type=checkbox]:disabled{cursor:not-allowed}.slot-checkbox span{font-size:.9rem;color:#374151}.slot-checkbox .no-capacity{color:#dc2626;font-size:.85rem;font-weight:500}textarea{width:100%;padding:.75rem;border:1px solid #d1d5db;border-radius:.5rem;font-size:1rem;font-family:inherit;resize:vertical}textarea:focus{outline:none;border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51a}.current-bookings{background:#f9fafb;border:1px solid #e5e7eb;border-radius:.5rem;padding:1rem}.no-bookings{color:#9ca3af;font-style:italic;margin:0}.bookings-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.75rem}.booking-item{background:#fff;padding:.75rem;border-radius:.375rem;border:1px solid #e5e7eb;font-weight:500;color:#374151}select:disabled{background-color:#f3f4f6;cursor:not-allowed;opacity:.6}.status-badge{display:inline-block;padding:.25rem .75rem;border-radius:9999px;font-size:.875rem;font-weight:500}.status-badge.active{background:#d1fae5;color:#065f46}.status-badge.inactive{background:#fee2e2;color:#991b1b}.status-badge.pending{background:#fef3c7;color:#92400e}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:500}.checkbox-label input[type=checkbox]{width:1.25rem;height:1.25rem;cursor:pointer}.members-table-container{background:#fff;border-radius:.75rem;box-shadow:0 1px 3px #0000001a;overflow:hidden}.members-table{width:100%;border-collapse:collapse}.members-table thead{background:#f9fafb;border-bottom:2px solid #e5e7eb}.members-table th{padding:1rem 1.5rem;text-align:left;font-weight:600;font-size:.875rem;color:#374151;text-transform:uppercase;letter-spacing:.05em}.members-table tbody tr{border-bottom:1px solid #e5e7eb;transition:background-color .2s ease}.members-table tbody tr:hover{background:#f9fafb}.members-table tbody tr.inactive-member{background:#f3f4f6;opacity:.8}.members-table tbody tr.inactive-member:hover{background:#e5e7eb}.members-table tbody tr.pending-member{background:#fef3c7}.members-table tbody tr.pending-member:hover{background:#fde68a}.members-table tbody tr:last-child{border-bottom:none}.members-table td{padding:1rem 1.5rem;color:#1f2937;font-size:.9rem}.members-table td.actions-cell{display:flex;gap:.5rem;justify-content:flex-end;align-items:center}@media(max-width:768px){.members-page{padding:1rem}.page-header h1{font-size:1.25rem}.btn-primary{padding:.5rem 1rem;font-size:.875rem;width:auto}.btn-primary svg{width:16px;height:16px}.members-grid{grid-template-columns:1fr}.members-table-container{overflow-x:auto}.members-table th,.members-table td{padding:.75rem 1rem;font-size:.85rem}}.plan-slots-display{background:#f9fafb;border:1px solid #e5e7eb;border-radius:.5rem;padding:1.5rem}.plan-info{margin-bottom:1rem;color:#374151}.plan-info strong{color:#1f2937;display:block;margin-bottom:.5rem}.slots-list{margin-top:.5rem;padding-left:1rem}.slots-list>div{padding:.25rem 0;color:#4b5563}.plan-slots-display button{margin-top:1rem;display:flex;align-items:center;gap:.5rem}.booking-period{padding:1rem;background:#fff;border-radius:.375rem;margin-bottom:1rem}.booking-period:last-of-type{margin-bottom:0}.absences-page{padding:2rem;max-width:1400px;margin:0 auto}.search-container{display:flex;align-items:center;gap:.75rem;background:#fff;padding:1rem 1.5rem;border-radius:.75rem;box-shadow:0 1px 3px #0000001a;margin-bottom:1.5rem}.search-container svg{color:#6b7280;flex-shrink:0}.search-input{flex:1;border:none;outline:none;font-size:1rem;color:#1f2937;background:transparent}.search-input::placeholder{color:#9ca3af}.older-absences-toggle{display:flex;justify-content:center;margin-top:1.5rem;margin-bottom:1.5rem}.older-absences-toggle button{display:flex;align-items:center;gap:.5rem}.absences-list{display:grid;gap:1rem}.no-absences{text-align:center;padding:3rem;background:#f9fafb;border-radius:.5rem;color:#6b7280}.absence-card{background:#fff;border-radius:.75rem;box-shadow:0 1px 3px #0000001a;padding:1.5rem;transition:box-shadow .2s}.absence-card:hover{box-shadow:0 4px 6px #0000001a}.absence-header{margin-bottom:1rem;padding-bottom:1rem;border-bottom:2px solid #e5e7eb}.absence-member{display:flex;justify-content:space-between;align-items:center}.absence-member h3{margin:0;font-size:1.25rem;color:#1a1a1a}.status-badge{padding:.375rem .75rem;border-radius:.375rem;font-size:.875rem;font-weight:600}.status-pending{background:#fef3c7;color:#92400e}.status-recovered{background:#d1fae5;color:#065f46}.status-expired{background:#fee2e2;color:#991b1b}.absence-details{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.detail-item{display:flex;align-items:center;gap:.5rem;color:#4b5563}.detail-item.recovery{color:#059669;font-weight:500}.absence-actions{display:flex;justify-content:flex-end}.btn-primary.small{padding:.5rem 1rem;font-size:.875rem}.absence-info{background:#f3f4f6;padding:1rem;border-radius:.5rem;margin-bottom:1.5rem}.absence-info p{margin:.5rem 0;color:#374151}.alert-info{display:flex;align-items:start;gap:.75rem;background:#eff6ff;border:1px solid #bfdbfe;border-radius:.5rem;padding:1rem;margin-top:1rem;color:#1e40af}.alert-info p{margin:0;font-size:.9rem}.upcoming-slots-list{max-height:400px;overflow-y:auto;border:1px solid #e5e7eb;border-radius:.5rem;padding:.5rem}.slot-radio{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:#f9fafb;border-radius:.5rem;margin-bottom:.5rem;cursor:pointer;transition:all .2s;border:2px solid transparent}.slot-radio:hover{background:#f3f4f6}.slot-radio:has(input:checked){background:#eff6ff;border-color:#3b82f6}.slot-radio input[type=radio]{cursor:pointer;width:18px;height:18px}.slot-info{display:flex;flex-direction:column;gap:.25rem;flex:1}.slot-date{font-weight:600;color:#1f2937;text-transform:capitalize}.slot-time{font-size:.875rem;color:#6b7280}.badge-recovery{display:inline-block;background:#d1fae5;color:#065f46;padding:.125rem .5rem;border-radius:.25rem;font-size:.75rem;font-weight:600;margin-left:.5rem}.ai-badge{display:inline-flex;align-items:center;gap:.25rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:.25rem .5rem;border-radius:.375rem;font-size:.75rem;font-weight:600;box-shadow:0 2px 4px #667eea4d}.modal-content.large{max-width:700px}.calendar-container{margin:1rem 0}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding:0 .5rem}.calendar-header h4{margin:0;font-size:1rem;font-weight:600;color:#1f2937}.calendar-nav{background:none;border:1px solid #d1d5db;border-radius:.375rem;padding:.25rem .75rem;cursor:pointer;color:#374151;font-size:1rem;transition:all .2s}.calendar-nav:hover:not(:disabled){background:#f3f4f6;border-color:#9ca3af}.calendar-nav:disabled{opacity:.5;cursor:not-allowed}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.25rem}.calendar-day-header{text-align:center;font-size:.75rem;font-weight:600;color:#6b7280;padding:.5rem;text-transform:uppercase}.calendar-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:.375rem;font-size:.875rem;cursor:pointer;transition:all .2s;border:1px solid transparent;background:#f9fafb}.calendar-day.empty{background:transparent;cursor:default}.calendar-day.selectable{background:#fff;border-color:#e5e7eb;color:#1f2937}.calendar-day.selectable:hover{background:#eff6ff;border-color:#3b82f6}.calendar-day.disabled{background:#f3f4f6;color:#9ca3af;cursor:not-allowed}.calendar-day.selected{background:#3b82f6;color:#fff;border-color:#3b82f6;font-weight:600}@media(max-width:768px){.absences-page{padding:1rem}.page-header h1{font-size:1.25rem}.btn-primary{padding:.5rem 1rem;font-size:.875rem;width:auto}.btn-primary svg{width:16px;height:16px}.absence-member{flex-direction:column;align-items:flex-start;gap:.5rem}.calendar-day{font-size:.75rem}.calendar-header h4{font-size:.875rem}}.reports-page{padding:2rem;max-width:1400px;margin:0 auto}.reports-page .page-header{margin-bottom:2rem}.reports-page .page-header h1{display:flex;align-items:center;gap:1rem;color:#1a1a1a;font-size:2rem;margin:0}.loading{text-align:center;padding:3rem;color:#6b7280;font-size:1.1rem}.reports-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:1.5rem}.report-card{background:#fff;border-radius:.75rem;box-shadow:0 1px 3px #0000001a;padding:1.5rem;transition:box-shadow .2s}.report-card:hover{box-shadow:0 4px 6px #0000001a}.report-card.highlight{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.report-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid #e5e7eb}.report-card.highlight .report-header{border-bottom-color:#ffffff4d}.report-header h2{margin:0;font-size:1.25rem;color:#1a1a1a}.report-card.highlight .report-header h2{color:#fff}.report-content{display:flex;flex-direction:column;gap:1rem}.stat-list{display:flex;flex-direction:column;gap:.75rem}.stat-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:#f9fafb;border-radius:.5rem;transition:background .2s}.stat-item:hover{background:#f3f4f6}.stat-label{font-weight:500;color:#374151}.stat-value{font-weight:700;color:#1f2937;font-size:1.1rem}.stat-total{margin-top:.5rem;padding-top:1rem;border-top:2px solid #e5e7eb;font-weight:600;color:#1f2937;text-align:right}.stat-large{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:2rem 1rem}.stat-value-large{font-size:3.5rem;font-weight:800;color:#fff;line-height:1}.stat-label-large{font-size:1rem;color:#ffffffe6;text-align:center}.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.stat-box{display:flex;align-items:center;gap:.75rem;padding:1rem;background:#fffffff2;border-radius:.5rem;box-shadow:0 2px 4px #0000001a}.stat-box.success{border-left:4px solid #10b981}.stat-box.danger{border-left:4px solid #ef4444}.stat-box.info{border-left:4px solid #3b82f6}.stat-box.warning{border-left:4px solid #f59e0b}.stat-box svg{flex-shrink:0}.stat-box.success svg{color:#10b981}.stat-box.danger svg{color:#ef4444}.stat-box.info svg{color:#3b82f6}.stat-box.warning svg{color:#f59e0b}.stat-box .stat-value{font-size:1.5rem;font-weight:700;color:#1f2937;line-height:1}.stat-box .stat-label{font-size:.875rem;color:#6b7280;font-weight:500}@media(max-width:768px){.reports-page{padding:1rem}.reports-grid,.stat-grid{grid-template-columns:1fr}.reports-page .page-header h1{font-size:1.5rem}.stat-value-large{font-size:2.5rem}}.profile-page{padding:2rem;color:#1f2937}.profile-container{max-width:800px;margin:0 auto}.profile-title{font-size:2rem;margin-bottom:2rem;font-weight:600;color:#1a1a1a}.profile-card{background-color:#fff;border-radius:.75rem;padding:2rem;border:1px solid #e5e7eb;box-shadow:0 1px 3px #0000001a}.profile-info{margin-bottom:3rem;padding-bottom:2rem;border-bottom:1px solid #e5e7eb;display:grid;grid-template-columns:1fr 1fr;gap:2rem}.info-group label{display:block;font-size:.875rem;color:#6b7280;margin-bottom:.5rem;font-weight:500}.info-value{font-size:1.1rem;font-weight:500;color:#1f2937}.password-section h2{font-size:1.5rem;margin-bottom:1.5rem;color:#111827}.form-group{margin-bottom:1.5rem}.form-group label{display:block;font-size:.9rem;margin-bottom:.5rem;color:#4b5563;font-weight:500}.form-group input{width:100%;padding:.75rem;background-color:#fff;border:1px solid #d1d5db;border-radius:.5rem;color:#1f2937;font-size:1rem;transition:border-color .2s,box-shadow .2s}.form-group input:focus{outline:none;border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51a}.btn-save{background-color:#4f46e5;color:#fff;border:none;padding:.75rem 2rem;border-radius:.5rem;font-weight:600;cursor:pointer;transition:background-color .2s;font-size:1rem;margin-top:1rem}.btn-save:hover{background-color:#4338ca}.btn-save:disabled{opacity:.7;cursor:not-allowed;background-color:#818cf8}.message-alert{padding:1rem;border-radius:.5rem;margin-bottom:1.5rem;font-weight:500}.message-alert.success{background-color:#ecfdf5;border:1px solid #10b981;color:#059669}.message-alert.error{background-color:#fef2f2;border:1px solid #ef4444;color:#dc2626}@media(max-width:600px){.profile-info{grid-template-columns:1fr}}.app{min-height:100vh;background:#f9fafb}.main-content{min-height:calc(100vh - 120px)}
