*{box-sizing:border-box;margin:0;padding:0}:root{--primary:#29b6f6;--primary-dark:#0288d1;--primary-light:#e1f5fe;--secondary:#0288d1;--accent:#00bcd4;--success:#10b981;--success-light:#d1fae5;--warning:#f59e0b;--warning-light:#fef3c7;--danger:#ef4444;--danger-light:#fee2e2;--info:#3b82f6;--info-light:#dbeafe;--bg:#f8fafc;--bg-card:#fff;--text:#1e293b;--text-secondary:#64748b;--text-muted:#94a3b8;--border:#e2e8f0;--shadow:0 1px 3px #0000001a;--shadow-lg:0 10px 25px -5px #0000001a}body{background:var(--bg);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.6}.auth-container{background:linear-gradient(135deg,#29b6f6 0%,#0288d1 50%,#01579b 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.auth-card{width:100%;max-width:420px;box-shadow:var(--shadow-lg);background:#fff;border-radius:20px;padding:40px}.auth-header{text-align:center;margin-bottom:32px}.auth-header h1{color:#0288d1;font-size:32px}.auth-header p{color:var(--text-secondary);margin-top:8px}.form-group{margin-bottom:20px}.form-group label{color:var(--text);margin-bottom:8px;font-weight:500;display:block}.form-group input{border:2px solid var(--border);border-radius:10px;width:100%;padding:12px 16px;font-size:16px;transition:border-color .2s}.form-group input:focus{border-color:#29b6f6;outline:none}.form-group small{color:var(--text-secondary);margin-top:6px;font-size:13px;display:block}.form-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.btn-primary{color:#fff;cursor:pointer;background:linear-gradient(135deg,#29b6f6,#0288d1);border:none;border-radius:10px;width:100%;padding:14px;font-family:inherit;font-size:16px;font-weight:600;transition:transform .2s,box-shadow .2s}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px #29b6f666}.btn-primary:disabled{opacity:.7;cursor:not-allowed;transform:none}.btn-secondary{background:var(--bg);color:#0288d1;border:2px solid var(--border);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:10px 16px;font-family:inherit;font-size:14px;font-weight:500;text-decoration:none;transition:all .2s;display:inline-flex}.btn-secondary:hover{color:#fff;background:#29b6f6;border-color:#29b6f6}.auth-footer{text-align:center;color:var(--text-secondary);margin-top:24px}.auth-footer a{color:#0288d1;font-weight:500;text-decoration:none}.error-message{color:#dc2626;background:#fee2e2;border-radius:10px;margin-bottom:20px;padding:12px 16px;font-size:14px}.header{color:#fff;z-index:100;background:linear-gradient(135deg,#29b6f6 0%,#0288d1 50%,#01579b 100%);padding:12px 20px;position:sticky;top:0;box-shadow:0 4px 20px #29b6f64d}.header-content{justify-content:space-between;align-items:center;gap:16px;max-width:1600px;margin:0 auto;display:flex}.logo{flex-shrink:0;align-items:center;gap:10px;display:flex}.logo-icon{font-size:28px}.logo h1{white-space:nowrap;font-size:20px;font-weight:700}.nav-links{flex-wrap:wrap;flex:1;justify-content:center;gap:4px;max-width:870px;display:flex}.nav-pill{color:#fff;white-space:nowrap;background:#ffffff26;border-radius:8px;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:500;text-decoration:none;transition:all .2s;display:flex;position:relative}.nav-pill:hover{background:#ffffff40}.nav-pill.active{color:#0288d1;background:#fff;box-shadow:0 2px 8px #00000026}.nav-icon{font-size:16px}.nav-text{font-weight:500}.nav-badge{color:#fff;background:#ef4444;border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:10px;font-weight:700;display:flex;position:absolute;top:-4px;right:-4px}.user-section{flex-shrink:0;align-items:center;gap:12px;display:flex}.user-info{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.user-name{white-space:nowrap;font-size:13px;font-weight:600}.user-email{opacity:.8;white-space:nowrap;text-overflow:ellipsis;max-width:150px;font-size:11px;overflow:hidden}.user-avatar{color:#0288d1;background:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:14px;font-weight:700;display:flex}.btn-logout{color:#fff;cursor:pointer;background:#ffffff26;border:none;border-radius:8px;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:500;transition:all .2s}.btn-logout:hover{background:#ffffff40}.mobile-controls{align-items:center;gap:12px;display:none}.hamburger{cursor:pointer;background:#ffffff26;border:none;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:44px;height:44px;padding:10px;transition:background .2s;display:flex}.hamburger:hover{background:#ffffff40}.hamburger-line{transform-origin:50%;background:#fff;border-radius:2px;width:22px;height:2.5px;transition:all .3s}.hamburger.open .hamburger-line:first-child{transform:rotate(45deg)translate(5px,5px)}.hamburger.open .hamburger-line:nth-child(2){opacity:0;transform:scaleX(0)}.hamburger.open .hamburger-line:nth-child(3){transform:rotate(-45deg)translate(5px,-5px)}.nav-overlay{z-index:998;background:#00000080;animation:.3s fadeIn;display:none;position:fixed;inset:0}.nav-mobile{z-index:999;background:#fff;max-height:0;transition:max-height .3s;display:none;position:absolute;top:100%;left:0;right:0;overflow:hidden;box-shadow:0 10px 40px #0003}.nav-mobile.open{max-height:calc(100vh - 60px);overflow-y:auto}.nav-mobile-user{color:#fff;background:linear-gradient(135deg,#29b6f6 0%,#0288d1 100%);align-items:center;gap:16px;padding:20px;display:flex}.user-avatar-large{color:#0288d1;background:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:50px;height:50px;font-size:18px;font-weight:700;display:flex}.nav-mobile-user-info{flex-direction:column;min-width:0;display:flex}.nav-mobile-user-info .user-name{color:#fff;font-size:16px;font-weight:600}.nav-mobile-user-info .user-email{opacity:.9;color:#fff;font-size:12px}.nav-mobile-links{padding:12px 0}.nav-mobile-item{color:var(--text);border-left:4px solid #0000;align-items:center;gap:14px;padding:14px 20px;font-size:15px;font-weight:500;text-decoration:none;transition:all .2s;display:flex}.nav-mobile-item:hover{background:var(--bg)}.nav-mobile-item.active{color:#0288d1;background:#e1f5fe;border-left-color:#0288d1;font-weight:600}.nav-mobile-item .nav-icon{text-align:center;width:28px;font-size:20px}.nav-mobile-badge{color:#fff;background:#ef4444;border-radius:11px;justify-content:center;align-items:center;min-width:22px;height:22px;margin-left:auto;padding:0 6px;font-size:11px;font-weight:700;display:flex}.nav-mobile-logout{background:var(--danger-light);color:var(--danger);cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;gap:10px;width:calc(100% - 40px);margin:12px 20px 20px;padding:14px;font-family:inherit;font-size:15px;font-weight:600;transition:all .2s;display:flex}.nav-mobile-logout:hover{background:var(--danger);color:#fff}.nav-mobile-logout .nav-icon{font-size:18px}.main-content{max-width:1400px;margin:0 auto;padding:24px}.page{animation:.3s fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.page h2{color:var(--text);margin-bottom:20px;font-size:24px}.card{background:var(--bg-card);box-shadow:var(--shadow);border-radius:16px;padding:24px;transition:box-shadow .2s}.card:hover{box-shadow:var(--shadow-lg)}.card h3{color:var(--text);margin-bottom:16px;font-size:18px}.cards-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px;display:grid}.welcome-card{color:#fff;background:linear-gradient(135deg,#29b6f6 0%,#0288d1 50%,#01579b 100%);border-radius:16px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px;padding:24px 28px;display:flex;box-shadow:0 10px 30px #29b6f64d}.welcome-content h2{color:#fff;margin:0 0 6px;font-size:24px;font-weight:700}.welcome-content p{opacity:.9;margin:0;font-size:14px}.welcome-stats{gap:32px;display:flex}.stat{text-align:center}.stat-value{margin-bottom:4px;font-size:40px;font-weight:700;line-height:1;display:block}.stat-label{opacity:.85;font-size:12px}.dashboard-page{animation:.3s fadeIn}.alert-banner{background:var(--warning-light);border:2px solid var(--warning);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;padding:14px 20px;display:flex}.alert-content{align-items:center;gap:10px;display:flex}.alert-icon{font-size:18px}.alert-text{color:#92400e;font-size:14px;font-weight:600}.btn-warning-outline{border:2px solid var(--warning);color:var(--warning);cursor:pointer;background:0 0;border-radius:8px;padding:6px 16px;font-family:inherit;font-size:13px;font-weight:600;text-decoration:none;transition:all .2s}.btn-warning-outline:hover{background:var(--warning);color:#fff}.stats-grid{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.stat-card{background:var(--bg-card);text-align:center;box-shadow:var(--shadow);border:1px solid var(--border);color:inherit;border-radius:14px;padding:24px 16px;text-decoration:none;transition:all .3s;display:block}.stat-card:hover{box-shadow:var(--shadow-lg);border-color:#29b6f6;transform:translateY(-4px)}.stat-card-icon{margin-bottom:12px;font-size:32px}.stat-card-value{color:#0288d1;margin-bottom:6px;font-size:36px;font-weight:700;line-height:1}.stat-card-label{color:var(--text-secondary);font-size:13px;font-weight:500}.children-page{animation:.3s fadeIn}.children-page h2{align-items:center;gap:10px;margin-bottom:24px;font-size:24px;font-weight:600;display:flex}.children-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;display:grid}.child-card{background:var(--bg-card);box-shadow:var(--shadow);border:1px solid var(--border);border-radius:14px;padding:16px;transition:all .2s}.child-card:hover{box-shadow:var(--shadow-lg);border-color:#29b6f6;transform:translateY(-2px)}.child-header{align-items:center;gap:14px;display:flex}.child-avatar{color:#fff;background:linear-gradient(135deg,#29b6f6,#0288d1);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.child-avatar svg{width:24px;height:24px}.child-avatar-large{color:#fff;background:linear-gradient(135deg,#29b6f6,#0288d1);border-radius:20px;justify-content:center;align-items:center;width:80px;height:80px;margin:0 auto 16px;font-size:24px;font-weight:600;display:flex}.child-info{flex:1;min-width:0}.child-info h3{color:var(--text);white-space:nowrap;text-overflow:ellipsis;margin:0 0 4px;font-size:16px;font-weight:600;overflow:hidden}.child-info p{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:14px;overflow:hidden}.children-empty{text-align:center;background:var(--bg-card);box-shadow:var(--shadow);border-radius:16px;padding:60px 20px}.children-empty-icon{color:var(--text-muted);justify-content:center;margin-bottom:16px;display:flex}.children-empty-title{color:var(--text);margin-bottom:8px;font-size:20px;font-weight:600}.children-empty-text{color:var(--text-secondary)}.calendar-page{animation:.3s fadeIn}.calendar-page h2{align-items:center;gap:10px;margin-bottom:24px;font-size:24px;font-weight:600;display:flex}.calendar-container{background:var(--bg-card);box-shadow:var(--shadow);border-radius:16px;overflow:hidden}.calendar-header{background:linear-gradient(135deg,#29b6f6 0%,#0288d1 50%,#01579b 100%);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.calendar-nav{align-items:center;gap:12px;display:flex}.calendar-nav-btn{color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;transition:background .2s;display:flex}.calendar-nav-btn:hover{background:#ffffff4d}.calendar-title{color:#fff;text-align:center;min-width:180px;font-size:20px;font-weight:600}.calendar-today-btn{color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:8px;padding:8px 16px;font-family:inherit;font-size:14px;font-weight:500;transition:background .2s}.calendar-today-btn:hover{background:#ffffff4d}.calendar-weekdays{border-bottom:1px solid var(--border);background:#f8fafc;grid-template-columns:repeat(7,1fr);display:grid}.calendar-weekday{text-align:center;color:var(--text-muted);text-transform:uppercase;padding:12px;font-size:12px;font-weight:600}.calendar-grid{grid-template-columns:repeat(7,1fr);grid-auto-rows:110px;display:grid}.calendar-day{border-right:1px solid var(--border);border-bottom:1px solid var(--border);cursor:pointer;background:#fff;padding:8px;transition:background .2s;position:relative;overflow:hidden}.calendar-day:nth-child(7n){border-right:none}.calendar-day:hover{background:#f8fafc}.calendar-day.other-month{background:#fafafa}.calendar-day.other-month .day-number{color:#cbd5e1}.calendar-day.today{background:#e1f5fe}.calendar-day.today .day-number{color:#fff;background:#29b6f6;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.calendar-day.has-events{background:#fef3c7}.calendar-day.selected,.calendar-day.has-events.selected{background:#b3e5fc;box-shadow:inset 0 0 0 2px #0288d1}.day-number{color:var(--text);margin-bottom:4px;font-size:14px;font-weight:500}.day-events{flex-direction:column;gap:2px;display:flex}.day-event{white-space:nowrap;text-overflow:ellipsis;cursor:pointer;border-radius:4px;padding:4px 8px;font-size:11px;overflow:hidden}.day-event.status-success{color:#065f46;background:#d1fae5}.day-event.status-warning{color:#92400e;background:#fef3c7}.day-event.status-info{color:#1e40af;background:#dbeafe}.day-event.status-danger{color:#991b1b;background:#fee2e2}.day-event-more{color:var(--text-muted);padding:2px 4px;font-size:11px}.calendar-layout{grid-template-columns:1fr;gap:24px;display:grid}.calendar-layout.with-detail{grid-template-columns:1fr 380px}.calendar-detail{background:var(--bg-card);box-shadow:var(--shadow);border-radius:16px;height:fit-content;position:sticky;top:100px}.detail-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.detail-header h3{margin:0;font-size:18px;font-weight:600}.btn-close{background:var(--bg);cursor:pointer;width:32px;height:32px;color:var(--text-secondary);border:none;border-radius:8px;font-size:16px;transition:all .2s}.btn-close:hover{background:var(--danger-light);color:var(--danger)}.detail-body{padding:24px}.detail-list{flex-direction:column;gap:16px;display:flex}.detail-item{background:var(--bg);border-left:4px solid #29b6f6;border-radius:12px;padding:16px}.detail-item.status-success{border-left-color:var(--success);background:#f0fdf4}.detail-item.status-warning{border-left-color:var(--warning);background:#fffbeb}.detail-item.status-info{border-left-color:var(--info);background:#eff6ff}.detail-item.status-danger{border-left-color:var(--danger);background:#fef2f2}.btn-ogust{color:#fff;background:linear-gradient(135deg,#0891b2,#0d9488);border-radius:8px;align-items:center;gap:6px;margin-top:10px;padding:6px 12px;font-size:13px;font-weight:500;text-decoration:none;transition:transform .15s,box-shadow .15s;display:inline-flex}.btn-ogust:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0d94884d}.detail-item.focused{animation:1.2s ease-out focusedPulse;box-shadow:0 0 0 2px #6366f1,0 4px 14px #6366f140}@keyframes focusedPulse{0%{box-shadow:0 0 #6366f18c}60%{box-shadow:0 0 0 10px #6366f100}to{box-shadow:0 0 0 2px #6366f1,0 4px 14px #6366f140}}.detail-time{color:var(--text-secondary);align-items:center;gap:6px;margin-bottom:8px;font-size:14px;display:flex}.detail-info{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.detail-info strong{color:var(--text);font-size:15px}.detail-teacher{color:var(--text-secondary);align-items:center;gap:6px;margin-top:8px;font-size:13px;display:flex}.detail-empty{text-align:center;color:var(--text-secondary);padding:40px 20px}.detail-empty-icon{margin-bottom:12px;font-size:48px}.courses-page{animation:.3s fadeIn}.courses-page h2{align-items:center;gap:10px;margin-bottom:24px;font-size:24px;font-weight:600;display:flex}.filter-pills{flex-wrap:wrap;gap:8px;margin-bottom:24px;display:flex}.filter-pill{cursor:pointer;border:2px solid var(--border);background:#fff;border-radius:20px;align-items:center;gap:6px;padding:10px 20px;font-family:inherit;font-size:14px;font-weight:500;transition:all .2s;display:inline-flex}.filter-pill:hover{color:#0288d1;border-color:#29b6f6}.filter-pill.active{color:#fff;background:#29b6f6;border-color:#29b6f6}.courses-list{flex-direction:column;gap:12px;display:flex}.cours-card{background:var(--bg-card);box-shadow:var(--shadow);border-left:4px solid #29b6f6;border:1px solid var(--border);border-radius:12px;justify-content:space-between;align-items:flex-start;gap:16px;padding:20px 24px;transition:all .2s;display:flex}.cours-card:hover{box-shadow:var(--shadow-lg);transform:translate(4px)}.cours-card.completed,.cours-card.validated{border-left-color:var(--success);background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%)}.cours-card.cancelled{border-left-color:var(--danger);opacity:.8;background:linear-gradient(135deg,#fef2f2 0%,#fee2e2 100%)}.cours-card.upcoming,.cours-card.pending{border-left-color:var(--warning);background:linear-gradient(135deg,#fffbeb 0%,#fef3c7 100%)}.cours-card.planned{border-left-color:var(--info);background:linear-gradient(135deg,#eff6ff 0%,#dbeafe 100%)}.cours-card-content{flex:1;min-width:0}.cours-header{margin-bottom:12px}.cours-date{color:var(--text);margin-bottom:2px;font-size:15px;font-weight:600}.cours-time{color:var(--text-secondary);font-size:13px}.cours-details{color:var(--text-secondary);flex-wrap:wrap;gap:20px;font-size:14px;display:flex}.cours-detail{align-items:center;gap:6px;display:flex}.cours-detail.product{color:#0288d1;font-weight:600}.cours-detail .icon{font-size:16px}.cours-badge{white-space:nowrap;border-radius:20px;flex-shrink:0;padding:6px 16px;font-size:12px;font-weight:600}.cours-badge.validated,.cours-badge.completed{background:var(--success-light);color:var(--success)}.cours-badge.pending{background:var(--warning-light);color:#92400e}.cours-badge.cancelled{background:var(--danger-light);color:var(--danger)}.cours-badge.upcoming,.cours-badge.planned{background:var(--info-light);color:var(--info)}.invoices-page{animation:.3s fadeIn}.invoices-page h2{align-items:center;gap:10px;margin-bottom:24px;font-size:24px;font-weight:600;display:flex}.summary-box{color:#fff;background:linear-gradient(135deg,#29b6f6,#0288d1);border-radius:16px;margin-bottom:24px;padding:24px}.summary-box.warning{background:linear-gradient(135deg,#f59e0b,#d97706)}.summary-box h3{opacity:.95;margin-bottom:16px;font-size:16px;font-weight:600}.summary-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:20px;display:grid}.summary-item{text-align:center}.summary-item .value{font-size:28px;font-weight:700}.summary-item .label{opacity:.8;font-size:12px}.invoices-section{background:var(--bg-card);box-shadow:var(--shadow);border-radius:16px;margin-bottom:24px;overflow:hidden}.invoices-section.unpaid{border:2px solid var(--warning)}.invoices-section-header{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:20px 24px;display:flex}.invoices-section.unpaid .invoices-section-header{background:var(--warning-light)}.invoices-section-title{color:var(--text);font-size:16px;font-weight:600}.invoices-section.unpaid .invoices-section-title{color:#92400e}.invoices-section-body{padding:24px}.facture-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;margin-bottom:16px;padding:24px;transition:all .2s}.facture-card:last-child{margin-bottom:0}.facture-card:hover{border-color:#29b6f6}.facture-card.unpaid{border-left:4px solid var(--warning);background:linear-gradient(135deg,#fffbeb 0%,#fef3c7 100%)}.facture-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.facture-info h4{color:var(--text);margin:0 0 6px;font-size:18px;font-weight:600}.facture-info p{color:var(--text-secondary);margin:0;font-size:14px}.facture-amount{text-align:right}.facture-amount .amount{font-size:28px;font-weight:700;line-height:1.2;display:block}.facture-amount .amount.warning{color:var(--warning)}.facture-amount .amount.success{color:var(--success)}.facture-amount .status-label{color:var(--warning);font-size:13px;font-weight:500}.facture-details{background:#fff9;border-radius:10px;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:16px;padding:20px;display:grid}.facture-detail{text-align:left}.facture-detail .label{color:var(--text-muted);text-transform:uppercase;margin-bottom:4px;font-size:11px;font-weight:600;display:block}.facture-detail .value{color:var(--text);font-size:16px;font-weight:600}.facture-detail .value.success{color:var(--success)}.facture-detail .value.warning{color:var(--warning)}.facture-payments{margin-bottom:16px}.payments-title{color:var(--text-muted);margin-bottom:8px;font-size:12px;display:block}.payment-row{background:var(--success-light);border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:6px;padding:10px 14px;font-size:13px;display:flex}.payment-row:last-child{margin-bottom:0}.payment-date{color:var(--text-secondary)}.payment-ref{color:var(--text-muted);background:#fff;border-radius:4px;padding:2px 10px;font-size:12px}.payment-amount{color:var(--text);font-weight:600}.facture-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.facture-card-minimal{background:var(--bg-card);border:1px solid var(--border);border-left:4px solid var(--success);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;padding:16px 20px;transition:all .2s;display:flex}.facture-card-minimal:last-child{margin-bottom:0}.facture-card-minimal:hover{box-shadow:var(--shadow);border-color:#29b6f6}.facture-card-minimal-info h4{margin:0 0 4px;font-size:15px;font-weight:600}.facture-card-minimal-info p{color:var(--text-secondary);margin:0;font-size:13px}.facture-card-minimal-actions{align-items:center;gap:12px;display:flex}.payments-page{animation:.3s fadeIn}.payments-page h2{align-items:center;gap:10px;margin-bottom:24px;font-size:24px;font-weight:600;display:flex}.payments-section{background:var(--bg-card);box-shadow:var(--shadow);border-radius:16px;overflow:hidden}.payments-section-header{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:20px 24px;display:flex}.payments-section-title{color:var(--text);align-items:center;gap:8px;font-size:16px;font-weight:600;display:flex}.payments-section-body{padding:24px}.year-toggle{flex-wrap:wrap;gap:8px;display:flex}.year-toggle-btn{border:2px solid var(--border);cursor:pointer;background:#fff;border-radius:8px;padding:8px 16px;font-family:inherit;font-size:14px;font-weight:500;transition:all .2s}.year-toggle-btn:hover{color:#0288d1;border-color:#29b6f6}.year-toggle-btn.active{color:#fff;background:#29b6f6;border-color:#29b6f6}.reglement-card{background:var(--bg-card);border:1px solid var(--border);border-left:4px solid var(--success);border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:12px;padding:16px 20px;transition:all .2s;display:flex}.reglement-card:last-child{margin-bottom:0}.reglement-card:hover{border-color:var(--success);box-shadow:var(--shadow)}.reglement-card-left{align-items:center;gap:16px;display:flex}.reglement-card-icon{background:linear-gradient(135deg,#29b6f6,#0288d1);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:24px;display:flex}.reglement-card-info h4{color:var(--text);margin:0 0 4px;font-size:15px;font-weight:600}.reglement-card-info p{color:var(--text-secondary);margin:0;font-size:13px}.contracts-page{animation:.3s fadeIn}.contracts-page h2{align-items:center;gap:10px;margin-bottom:24px;font-size:24px;font-weight:600;display:flex}.contracts-list{flex-direction:column;gap:20px;display:flex}.contrat-card{background:var(--bg-card);box-shadow:var(--shadow);border:1px solid var(--border);border-radius:16px;padding:24px;transition:all .2s}.contrat-card:hover{box-shadow:var(--shadow-lg);border-color:#29b6f6}.contrat-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.contrat-title{align-items:center;gap:12px;display:flex}.contrat-icon{font-size:20px}.contrat-title h3{color:var(--text);margin:0;font-size:18px;font-weight:600}.contrat-actions{align-items:center;gap:12px;display:flex}.contrat-status-dot{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:14px;font-weight:600;display:flex}.contrat-status-dot.success{background:var(--success)}.contrat-status-dot.warning{background:#fbbf24}.contrat-status-dot.info{background:#60a5fa}.contrat-status-dot.danger{background:var(--danger)}.contrat-info-grid{border-bottom:1px solid var(--border);grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:24px;padding-bottom:24px;display:grid}.contrat-info-item{flex-direction:column;gap:6px;display:flex}.contrat-info-item .label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:600}.contrat-info-item .value{color:var(--text);font-size:15px;font-weight:600}.contrat-prestations{margin-top:0}.prestations-title{color:var(--text-muted);margin-bottom:12px;font-size:12px;display:block}.prestations-list{flex-direction:column;gap:8px;display:flex}.prestation-item{background:var(--bg);border-left:4px solid #29b6f6;border-radius:10px;padding:16px 20px;transition:all .2s}.prestation-item:hover{background:#e1f5fe;border-left-color:#0288d1}.prestation-info{flex-direction:column;gap:4px;display:flex}.prestation-name{color:var(--text);font-size:14px;font-weight:500}.prestation-hours{color:var(--text-secondary);font-size:13px}.contracts-empty{text-align:center;background:var(--bg-card);box-shadow:var(--shadow);border-radius:16px;padding:60px 20px}.contracts-empty .empty-icon{margin-bottom:16px;font-size:64px}.contracts-empty .empty-title{color:var(--text);margin-bottom:8px;font-size:20px;font-weight:600}.contracts-empty .empty-text{color:var(--text-secondary)}.profile-page{max-width:100%;animation:.3s fadeIn}.profile-page h2{align-items:center;gap:10px;margin-bottom:24px;font-size:24px;font-weight:600;display:flex}.profile-card{background:var(--bg-card);box-shadow:var(--shadow);border:1px solid var(--border);border-radius:16px;width:100%;max-width:100%;overflow:hidden}.profile-header{border-bottom:1px solid var(--border);align-items:center;gap:24px;padding:32px 40px;display:flex}.profile-avatar{color:#fff;background:linear-gradient(135deg,#29b6f6,#0288d1);border-radius:20px;flex-shrink:0;justify-content:center;align-items:center;width:80px;height:80px;font-size:28px;font-weight:700;display:flex}.profile-identity h3{color:var(--text);margin:0 0 6px;font-size:24px;font-weight:700}.profile-identity p{color:var(--text-secondary);margin:0;font-size:14px}.profile-since{color:var(--text-muted);margin-top:4px;font-size:13px}.profile-content{grid-template-columns:1fr 1fr;gap:0;display:grid}.profile-section{padding:32px 40px}.profile-section:first-child{border-right:1px solid var(--border)}.profile-section h4{color:#0288d1;text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:8px;margin:0 0 24px;font-size:12px;font-weight:600;display:flex}.profile-field{margin-bottom:24px}.profile-field:last-child{margin-bottom:0}.profile-field label{color:var(--text-muted);margin-bottom:8px;font-size:12px;display:block}.profile-field span{color:var(--text);font-size:15px;font-weight:500;display:block}.btn{cursor:pointer;border:none;border-radius:10px;align-items:center;gap:6px;padding:12px 20px;font-family:inherit;font-size:14px;font-weight:500;text-decoration:none;transition:all .2s;display:inline-flex}.btn-sm{padding:8px 16px;font-size:13px}.btn-success{background:var(--success);color:#fff}.btn-success:hover{background:#059669}.badge{border-radius:20px;align-items:center;gap:4px;padding:6px 14px;font-size:12px;font-weight:600;display:inline-flex}.badge-success{background:var(--success-light);color:var(--success)}.badge-warning{background:var(--warning-light);color:#92400e}.badge-danger{background:var(--danger-light);color:var(--danger)}.badge-info{background:var(--info-light);color:var(--info)}.status{border-radius:20px;align-items:center;padding:4px 12px;font-size:12px;font-weight:500;display:inline-flex}.status-success{color:#065f46;background:#d1fae5}.status-warning{color:#92400e;background:#fef3c7}.status-info{color:#1e40af;background:#dbeafe}.status-danger{color:#991b1b;background:#fee2e2}.modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{width:100%;max-width:500px;max-height:90vh;box-shadow:var(--shadow-lg);background:#fff;border-radius:20px;overflow:hidden}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h3{margin:0;font-size:18px;font-weight:600}.modal-close{background:var(--bg);cursor:pointer;width:36px;height:36px;color:var(--text-secondary);border:none;border-radius:10px;justify-content:center;align-items:center;font-size:20px;transition:all .2s;display:flex}.modal-close:hover{background:var(--danger-light);color:var(--danger)}.modal-body{max-height:60vh;padding:24px;overflow-y:auto}.modal-info-grid{background:var(--bg);border-radius:12px;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px;padding:16px;display:grid}.modal-info-item .label{color:var(--text-muted);text-transform:uppercase;margin-bottom:4px;font-size:11px;display:block}.modal-info-item .value{font-size:15px;font-weight:600}.modal-info-item .value.warning{color:var(--warning)}.modal-lines{margin-top:20px}.modal-lines h4{color:var(--text-muted);text-transform:uppercase;margin-bottom:12px;font-size:14px}.modal-line{background:var(--bg);border-radius:8px;justify-content:space-between;margin-bottom:8px;padding:12px;display:flex}.modal-line .line-title{font-weight:500}.modal-line .line-qty{color:var(--text-secondary)}.modal-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:12px;padding:16px 24px;display:flex}.pagination{justify-content:center;align-items:center;gap:8px;margin-top:24px;padding:16px;display:flex}.pagination-btn{background:var(--bg-card);border:1px solid var(--border);cursor:pointer;border-radius:8px;padding:10px 18px;font-family:inherit;font-size:14px;font-weight:500;transition:all .2s}.pagination-btn:hover:not(:disabled){color:#fff;background:#29b6f6;border-color:#29b6f6}.pagination-btn:disabled{opacity:.5;cursor:not-allowed}.pagination-info{color:var(--text-secondary);padding:0 16px;font-size:14px}.loading-container{flex-direction:column;justify-content:center;align-items:center;min-height:300px;padding:60px 20px;display:flex}.loading-spinner{border:4px solid var(--border);border-top-color:#29b6f6;border-radius:50%;width:48px;height:48px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{color:var(--text-secondary);margin-top:16px}.empty-state{text-align:center;padding:60px 20px}.empty-icon{margin-bottom:16px;font-size:64px}.empty-title{color:var(--text);margin-bottom:8px;font-size:20px;font-weight:600}.empty-text{color:var(--text-secondary)}@media (width<=1024px){.nav-links,.user-section{display:none!important}.mobile-controls{display:flex}.nav-mobile,.nav-overlay{display:block}.stats-grid{grid-template-columns:repeat(2,1fr)}.calendar-layout.with-detail{grid-template-columns:1fr}.calendar-detail{position:static}.contrat-info-grid{grid-template-columns:1fr 1fr}.header{padding:10px 16px}.logo-icon{font-size:24px}.logo h1{font-size:18px}.main-content{padding:16px}.page h2{margin-bottom:16px;font-size:20px}.welcome-card{text-align:center;flex-direction:column;gap:16px;padding:20px}.welcome-content h2{font-size:20px}.welcome-stats{justify-content:space-around;gap:16px;width:100%}.stat-value{font-size:32px}.alert-banner{text-align:center;flex-direction:column;padding:12px 16px}.stats-grid{grid-template-columns:repeat(2,1fr);gap:12px}.stat-card{padding:20px 12px}.stat-card-icon{margin-bottom:8px;font-size:28px}.stat-card-value{font-size:28px}.stat-card-label{font-size:11px}.form-row{grid-template-columns:1fr}.summary-grid{grid-template-columns:1fr 1fr}.summary-item .value{font-size:24px}.facture-header{flex-direction:column}.facture-amount{text-align:left}.facture-details{grid-template-columns:1fr}.facture-card-minimal{flex-direction:column;align-items:flex-start}.facture-card-minimal-actions{justify-content:space-between;width:100%}.payments-section-header{flex-direction:column;align-items:flex-start}.year-toggle{width:100%}.reglement-card{flex-direction:column;align-items:flex-start;gap:12px}.reglement-card .badge{align-self:flex-end}.contrat-header{flex-direction:column;align-items:flex-start}.contrat-actions{justify-content:space-between;width:100%}.contrat-info-grid{grid-template-columns:1fr;gap:16px}.prestation-item{padding:12px 16px}.profile-header{text-align:center;flex-direction:column;padding:24px}.profile-avatar{width:64px;height:64px;font-size:24px}.profile-identity h3{font-size:20px}.profile-content{grid-template-columns:1fr}.profile-section:first-child{border-right:none;border-bottom:1px solid var(--border)}.profile-section{padding:20px}.calendar-grid{grid-auto-rows:60px}.calendar-day{padding:4px}.day-events{display:none}.calendar-day.has-events:after{content:"";background:var(--success);border-radius:50%;width:6px;height:6px;position:absolute;bottom:4px;left:50%;transform:translate(-50%)}.calendar-header{flex-direction:column;gap:12px;padding:16px}.calendar-title{min-width:auto;font-size:16px}.children-grid{grid-template-columns:1fr}.cours-card{flex-direction:column;gap:12px}.cours-badge{align-self:flex-start}.modal-info-grid{grid-template-columns:1fr}.modal{max-width:95%;margin:10px}.filter-pills{gap:6px}.filter-pill{padding:8px 14px;font-size:12px}}@media (width<=480px){.header{padding:8px 12px}.logo h1{font-size:16px}.logo-icon{font-size:22px}.hamburger{width:40px;height:40px}.hamburger-line{width:20px}.user-avatar{width:36px;height:36px;font-size:12px}.main-content{padding:12px}.welcome-card{padding:16px}.welcome-content h2{font-size:18px}.stat-value{font-size:28px}.stats-grid{gap:10px}.stat-card{padding:16px 10px}.stat-card-icon,.stat-card-value{font-size:24px}.stat-card-label{font-size:10px}.nav-mobile-item{padding:12px 16px;font-size:14px}.nav-mobile-user{padding:16px}.user-avatar-large{width:44px;height:44px;font-size:16px}.pagination{flex-wrap:wrap;gap:6px}.pagination-btn{padding:8px 12px;font-size:12px}.facture-actions{flex-direction:column;width:100%}.facture-actions .btn{justify-content:center;width:100%}}
