/* ===== CSS Variables - LazerX Branding ===== */
:root {
  --brand: #2a5ab0;
  --brand-dark: #234a94;
  --brand-light: #e8eef7;
  --ink: #393536;
  --muted: #FAFAF9;
  --white: #FFFFFF;
  --gray-100: #F5F5F4;
  --gray-200: #E7E5E4;
  --gray-300: #D6D3D1;
  --gray-400: #A8A29E;
  --gray-500: #78716C;
  --gray-600: #57534E;
  --gray-700: #44403C;
  --gray-800: #292524;
  --gray-900: #1C1917;
  --danger: #DC3545;
  --success: #059669;
  --warning: #D97706;
  --font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-size-sm: 0.875rem;
  --font-size-base: 1rem;
  --font-size-lg: 1.125rem;
  --font-size-xl: 1.25rem;
  --font-size-2xl: 1.5rem;
  --font-weight-normal: 400;
  --font-weight-semibold: 600;
  --border-radius: 8px;
  --border-radius-lg: 12px;
  --shadow-sm: 0 1px 2px 0 rgba(0,0,0,0.03), 0 1px 6px 0 rgba(0,0,0,0.02);
  --shadow: 0 1px 3px 0 rgba(0,0,0,0.04), 0 4px 12px -2px rgba(0,0,0,0.03);
  --shadow-lg: 0 4px 6px -1px rgba(0,0,0,0.05), 0 10px 20px -3px rgba(0,0,0,0.04);
}
*,*::before,*::after{box-sizing:border-box}
html{font-family:var(--font-family);line-height:1.5;-webkit-text-size-adjust:100%}
body{margin:0;padding:0;background-color:var(--muted);color:var(--ink);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);min-height:100vh;display:flex;flex-direction:column}
h1,h2,h3,h4,h5,h6{margin:0 0 .5rem 0;font-weight:var(--font-weight-semibold);line-height:1.2;color:var(--ink)}
h1{font-size:var(--font-size-2xl)}h2{font-size:var(--font-size-xl)}h3{font-size:var(--font-size-lg)}
p{margin:0 0 1rem 0}
.header{background:var(--white);border-bottom:1px solid var(--gray-200);box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:100}
.header-content{max-width:1200px;margin:0 auto;padding:1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.logo{display:flex;align-items:center;font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--brand)}
.logo-img{height:40px;width:auto}
.center-select{padding:.4rem .8rem;border-radius:8px;border:2px solid var(--brand);font-weight:600;font-size:.95rem;color:var(--brand);background:var(--white);cursor:pointer;outline:none;transition:border-color .2s,box-shadow .2s}
.center-select:focus{box-shadow:0 0 0 3px rgba(42,90,176,.15)}
.nav-controls{display:flex;gap:.5rem;align-items:center}
.main{flex:1;max-width:1200px;margin:0 auto;padding:2rem 1rem;width:100%}
.footer{background:var(--white);border-top:1px solid var(--gray-200);padding:1rem;text-align:center;color:var(--gray-600);font-size:var(--font-size-sm)}
.footer a{color:var(--brand);text-decoration:none}
.footer a:hover{text-decoration:underline}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1rem;border:1px solid transparent;border-radius:var(--border-radius);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);text-decoration:none;cursor:pointer;transition:all .2s ease;min-height:44px;min-width:44px;background:none;font-family:inherit}
.btn:focus{outline:2px solid var(--brand);outline-offset:2px}
.btn-primary{background-color:var(--brand);color:var(--white);box-shadow:var(--shadow-sm)}
.btn-primary:hover:not(:disabled){background-color:var(--brand-dark);box-shadow:var(--shadow)}
.btn-secondary{background-color:var(--white);color:var(--gray-700);border-color:var(--gray-300);box-shadow:var(--shadow-sm)}
.btn-secondary:hover:not(:disabled){background-color:var(--gray-100);border-color:var(--gray-400)}
.btn-danger{background-color:var(--danger);color:var(--white);box-shadow:var(--shadow-sm)}
.btn-danger:hover:not(:disabled){background-color:#c82333;box-shadow:var(--shadow)}
.btn:disabled{opacity:.6;cursor:not-allowed}
.btn-close{background:none;border:none;font-size:1.5rem;cursor:pointer;padding:.25rem;color:var(--gray-500);min-height:44px;min-width:44px;display:flex;align-items:center;justify-content:center}
.btn-close:hover{color:var(--gray-700)}
.week-title{text-align:center;margin-bottom:2rem;color:var(--ink)}
.calendar-container{background:var(--white);border-radius:var(--border-radius-lg);box-shadow:var(--shadow);overflow:hidden}
.calendar{display:grid;grid-template-columns:100px repeat(6,1fr);min-height:600px}
.calendar-header{background:var(--gray-100);font-weight:var(--font-weight-semibold);padding:1rem .5rem;text-align:center;border-bottom:1px solid var(--gray-200);position:sticky;top:0;z-index:10}
.calendar-hour{background:var(--gray-100);padding:.5rem;text-align:center;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);border-right:1px solid var(--gray-200);border-bottom:1px solid var(--gray-200);display:flex;align-items:center;justify-content:center}
.calendar-cell{border-right:1px solid var(--gray-200);border-bottom:1px solid var(--gray-200);min-height:60px;position:relative;cursor:pointer;transition:background-color .2s ease;display:flex;align-items:center;justify-content:center;padding:.5rem;text-align:center}
.calendar-cell:hover:not(.cell--past):not(.cell--booked){background-color:var(--gray-100)}
.calendar-cell:focus{outline:2px solid var(--brand);outline-offset:-2px}
.cell--free{background-color:var(--white);color:var(--gray-600)}
.cell--booked{background-color:var(--brand);color:var(--white);cursor:pointer}
.cell--past{background-color:var(--gray-100);color:var(--gray-400);cursor:not-allowed}
.cell--booked.cell--past{background-color:var(--brand);opacity:.5;color:var(--white);cursor:default}
.booking-info{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}
.calendar-cell--draggable{cursor:move;position:relative;transition:all .2s ease}
.calendar-cell--draggable:hover{transform:scale(1.02);box-shadow:var(--shadow-lg);z-index:10}
.calendar-cell--dragging{opacity:.7;transform:rotate(2deg);z-index:100}
.calendar-cell--drop-target{background-color:rgba(42,90,176,.1)!important;border:2px dashed var(--brand)!important}
.session-duration{font-size:.75rem;color:rgba(255,255,255,.8);margin-top:.25rem}
.session-type{font-size:.7rem;background:rgba(255,255,255,.2);padding:.125rem .25rem;border-radius:8px;margin-top:.25rem;display:inline-block}
.booking-continuation{opacity:.8;font-style:italic}
.booking-continuation small{color:rgba(255,255,255,.7);font-size:.6rem}
.category-badge{display:inline-block;padding:.125rem .375rem;border-radius:12px;font-size:.75rem;font-weight:var(--font-weight-semibold);margin-top:.25rem}
.category-badge--tabac{background-color:#e3f2fd;color:#1976d2}
.category-badge--drogue{background-color:#f3e5f5;color:#7b1fa2}
.category-badge--drogue_dure{background-color:#ffebee;color:#d32f2f}
.category-badge--drogue_douce{background-color:#fff3e0;color:#f57c00}
.category-badge--renforcement{background-color:#e8f5e9;color:#388e3c}
@media(max-width:768px){
.calendar{display:block}
.mobile-day{border-bottom:2px solid var(--gray-200);margin-bottom:1rem}
.mobile-day-header{background:var(--brand);color:var(--white);padding:1rem;font-weight:var(--font-weight-semibold);text-align:center}
.mobile-slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.5rem;padding:1rem}
.mobile-slot{aspect-ratio:1;border:1px solid var(--gray-200);border-radius:var(--border-radius);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;padding:.5rem;text-align:center}
.mobile-slot:hover:not(.cell--past):not(.cell--booked){border-color:var(--brand);background-color:var(--gray-100)}
}
.modal{border:none;border-radius:var(--border-radius-lg);padding:0;max-width:500px;width:90vw;box-shadow:var(--shadow-lg);backdrop-filter:blur(4px)}
.modal::backdrop{background-color:rgba(0,0,0,.5)}
.modal-content{padding:0}
.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem 1.5rem 1rem;border-bottom:1px solid var(--gray-200)}
.modal-header h2{margin:0;color:var(--ink)}
.modal-form{padding:1.5rem}
.form-group{margin-bottom:1.5rem}
.form-group label{display:block;margin-bottom:.5rem;font-weight:var(--font-weight-semibold);color:var(--ink)}
.form-group input,.form-group textarea,.form-group select{width:100%;padding:.75rem;border:1px solid var(--gray-300);border-radius:var(--border-radius);font-size:var(--font-size-base);font-family:inherit;transition:border-color .2s ease}
.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(42,90,176,.1)}
.radio-group{display:flex;flex-direction:column;gap:.75rem}
.radio-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;padding:.5rem;border-radius:var(--border-radius);transition:background-color .2s ease}
.radio-label:hover{background-color:var(--gray-100)}
.radio-label input[type="radio"]{width:auto;margin:0}
.switches-container{display:flex;flex-direction:column;gap:1rem;background:var(--gray-100);padding:1rem;border-radius:var(--border-radius);border:1px solid var(--gray-200)}
.switch-group{display:flex;align-items:center;gap:.75rem}
.switch-label{font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);color:var(--gray-700);min-width:60px}
.duration-switch,.type-switch{display:flex;background:var(--white);border-radius:var(--border-radius);padding:2px;box-shadow:inset 0 1px 3px rgba(0,0,0,.1)}
.duration-btn,.type-btn{background:none;border:none;padding:.5rem 1rem;border-radius:calc(var(--border-radius) - 2px);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--gray-600);cursor:pointer;transition:all .2s ease;min-width:60px;font-family:inherit}
.duration-btn:hover,.type-btn:hover{color:var(--brand)}
.duration-btn.active,.type-btn.active{background:var(--brand);color:var(--white);box-shadow:var(--shadow-sm)}
.duration-btn:focus,.type-btn:focus{outline:2px solid var(--brand);outline-offset:2px}
.char-count{display:block;text-align:right;font-size:var(--font-size-sm);color:var(--gray-500);margin-top:.25rem}
.slot-info{background:var(--gray-100);padding:1rem;border-radius:var(--border-radius);margin-bottom:1rem;font-weight:var(--font-weight-semibold);color:var(--ink)}
.modal-actions{display:flex;gap:.75rem;justify-content:flex-end;padding:1rem 1.5rem 1.5rem;border-top:1px solid var(--gray-200)}
.booking-details{padding:1.5rem}
.booking-details dl{display:grid;grid-template-columns:auto 1fr;gap:.5rem 1rem;margin:0}
.booking-details dt{font-weight:var(--font-weight-semibold);color:var(--gray-700)}
.booking-details dd{margin:0;color:var(--ink)}
.toast{position:fixed;bottom:2rem;right:2rem;background:var(--ink);color:var(--white);padding:1rem 1.5rem;border-radius:var(--border-radius);box-shadow:var(--shadow-lg);transform:translateY(100px);opacity:0;transition:all .3s ease;z-index:1000;max-width:400px}
.toast.show{transform:translateY(0);opacity:1}
.toast.error{background:var(--danger)}
.toast.success{background:var(--success)}
.dashboard{max-width:1400px}
.config-section{background:var(--white);padding:2rem;border-radius:var(--border-radius-lg);box-shadow:var(--shadow);margin-bottom:3rem}
.config-container{margin-top:1.5rem}
.config-group{margin-bottom:1.5rem}
.config-group label{display:block;margin-bottom:.5rem;font-weight:var(--font-weight-semibold);color:var(--ink)}
.email-input-group{display:flex;gap:.75rem;align-items:center}
.email-input-group input{flex:1;padding:.75rem;border:1px solid var(--gray-300);border-radius:var(--border-radius);font-size:var(--font-size-base);font-family:inherit;transition:border-color .2s ease}
.email-input-group input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(42,90,176,.1)}
.config-group small{display:block;margin-top:.5rem;font-size:var(--font-size-sm);color:var(--gray-600)}
.install-app-group{display:flex;flex-direction:column;gap:1rem}
.install-btn{align-self:flex-start;font-size:var(--font-size-lg);padding:1rem 2rem;background:linear-gradient(135deg,var(--brand) 0%,var(--brand-dark) 100%);border:none;color:var(--white);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-lg);transition:all .3s ease;cursor:pointer}
.install-btn:hover{transform:translateY(-2px);box-shadow:0 8px 25px rgba(42,90,176,.3)}
.install-instructions{background:var(--gray-100);padding:1.5rem;border-radius:var(--border-radius);border-left:4px solid var(--brand)}
.install-instructions p{margin:0 0 1rem 0;color:var(--ink)}
.install-instructions ul{margin:0;padding-left:1.5rem}
.install-instructions li{margin-bottom:.5rem;color:var(--gray-700);line-height:1.5}
.page-title{text-align:center;margin-bottom:2rem}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:3rem}
.kpi-card{background:var(--white);padding:1.5rem;border-radius:var(--border-radius-lg);box-shadow:var(--shadow);text-align:center}
.kpi-card h3{color:var(--gray-600);font-size:var(--font-size-base);margin-bottom:.5rem}
.kpi-value{font-size:2rem;font-weight:var(--font-weight-semibold);color:var(--brand)}
.chart-section{background:var(--white);padding:2rem;border-radius:var(--border-radius-lg);box-shadow:var(--shadow);margin-bottom:3rem}
.chart-container{margin-top:1.5rem}
.chart-bars{display:flex;flex-direction:column;gap:1rem}
.chart-bar{display:grid;grid-template-columns:150px 1fr 60px;gap:1rem;align-items:center}
.bar-label{font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm)}
.bar-wrapper{background:var(--gray-200);border-radius:4px;height:24px;position:relative;overflow:hidden}
.bar{height:100%;border-radius:4px;transition:width .5s ease}
.bar.tabac{background-color:#1976d2}.bar.drogue{background-color:#7b1fa2}.bar.drogue_dure{background-color:#d32f2f}.bar.drogue_douce{background-color:#f57c00}.bar.renforcement{background-color:#388e3c}
.bar-value{text-align:right;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm)}
.bookings-section{background:var(--white);padding:2rem;border-radius:var(--border-radius-lg);box-shadow:var(--shadow)}
.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}
.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-bottom:2rem;padding:1.5rem;background:var(--gray-100);border-radius:var(--border-radius)}
.filter-group{display:flex;flex-direction:column;gap:.5rem}
.filter-group label{font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm)}
.table-container{overflow-x:auto;border:1px solid var(--gray-200);border-radius:var(--border-radius)}
.bookings-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}
.bookings-table th{background:var(--gray-100);padding:1rem .75rem;text-align:left;font-weight:var(--font-weight-semibold);border-bottom:1px solid var(--gray-200);cursor:pointer;transition:background-color .2s ease;position:relative}
.bookings-table th:hover{background:var(--gray-200)}
.sort-icon{position:absolute;right:.5rem;color:var(--gray-400);font-size:.75rem}
.bookings-table th.sorted-asc .sort-icon::after{content:'\2191';color:var(--brand)}
.bookings-table th.sorted-desc .sort-icon::after{content:'\2193';color:var(--brand)}
.bookings-table td{padding:.75rem;border-bottom:1px solid var(--gray-200);vertical-align:top}
.bookings-table tbody tr:hover{background:var(--gray-100)}
.status-badge{display:inline-block;padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:var(--font-weight-semibold)}
.status-badge--booked{background-color:#e8f5e8;color:#2e7d32}
.status-badge--cancelled{background-color:#ffebee;color:#d32f2f}
.status-badge--completed{background-color:#e3f2fd;color:#1976d2}
.loading{text-align:center;color:var(--gray-500);font-style:italic;padding:2rem}
.conflict-info{padding:1.5rem;text-align:center}
.conflict-preview{display:flex;align-items:center;justify-content:center;gap:1rem;margin:1rem 0;padding:1rem;background:var(--gray-100);border-radius:var(--border-radius)}
.session-preview{background:var(--white);padding:1rem;border-radius:var(--border-radius);border:2px solid var(--brand);min-width:150px;text-align:center}
.conflict-arrow{font-size:1.5rem;color:var(--brand);font-weight:bold}
.conflict-options{padding:0 1.5rem}
.conflict-options h3{margin-bottom:1rem;text-align:center;color:var(--ink)}
.option-buttons{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}
.conflict-option{display:flex;flex-direction:column;align-items:center;text-align:center;padding:1rem;border-radius:var(--border-radius);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);transition:all .2s ease}
.conflict-option small{margin-top:.5rem;font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);opacity:.8}
.conflict-option:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.suivi{max-width:1400px}
.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid var(--gray-200)}
.quick-stats{display:flex;gap:2rem;align-items:center}
.stat-item{display:flex;flex-direction:column;align-items:center;text-align:center}
.stat-label{font-size:var(--font-size-sm);color:var(--gray-600);margin-bottom:.25rem}
.stat-value{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--brand)}
.suivi-layout{display:grid;grid-template-columns:1fr 400px;gap:2rem}
.sessions-column{background:var(--white);border-radius:var(--border-radius-lg);box-shadow:var(--shadow);overflow:hidden}
.filter-select{padding:.5rem;border:1px solid var(--gray-300);border-radius:var(--border-radius);font-size:var(--font-size-sm);background:var(--white)}
.sessions-list{max-height:70vh;overflow-y:auto}
.session-card{padding:1.5rem;border-bottom:1px solid var(--gray-200);transition:background-color .2s ease}
.session-card:hover{background-color:var(--gray-100)}
.session-card.overdue{border-left:4px solid var(--danger);background-color:#fff5f5}
.session-card.current{border-left:4px solid var(--warning);background-color:#fffaf0}
.session-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}
.client-name{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--ink);margin:0}
.session-time{font-size:var(--font-size-sm);color:var(--gray-600);margin:.25rem 0}
.session-details{display:flex;gap:1rem;align-items:center;margin-bottom:1rem;flex-wrap:wrap}
.session-meta{font-size:var(--font-size-sm);color:var(--gray-600)}
.price-display{font-weight:var(--font-weight-semibold);color:var(--brand)}
.session-actions{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}
.status-buttons{display:flex;gap:.5rem}
.status-btn{padding:.375rem .75rem;border:1px solid transparent;border-radius:var(--border-radius);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all .2s ease}
.status-btn--present{background:var(--success);color:var(--white)}
.status-btn--absent{background:var(--danger);color:var(--white)}
.status-btn--reschedule{background:var(--warning);color:var(--ink)}
.price-selector{display:flex;gap:.5rem;align-items:center}
.price-input{width:80px;padding:.375rem;border:1px solid var(--gray-300);border-radius:var(--border-radius);text-align:right}
.summary-column{display:flex;flex-direction:column;gap:1.5rem}
.summary-card{background:var(--white);padding:1.5rem;border-radius:var(--border-radius-lg);box-shadow:var(--shadow)}
.summary-card h3{margin:0 0 1rem 0;color:var(--ink);border-bottom:2px solid var(--brand);padding-bottom:.5rem}
.summary-stats{display:flex;flex-direction:column;gap:.75rem}
.summary-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--gray-100)}
.summary-row:last-child{border-bottom:none}
.summary-row span:first-child{color:var(--gray-600);font-size:var(--font-size-sm)}
.summary-row span:last-child{font-weight:var(--font-weight-semibold);color:var(--ink)}
.session-info-display{background:var(--gray-100);padding:1rem;border-radius:var(--border-radius);margin-bottom:1.5rem}
.client-info h4{margin:0 0 .5rem 0;color:var(--brand)}
.client-info p{margin:.25rem 0;font-size:var(--font-size-sm);color:var(--gray-700)}
.attendance-options{display:flex;flex-direction:column;gap:.75rem}
.attendance-option{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;border:2px solid var(--gray-200);border-radius:var(--border-radius);cursor:pointer;transition:all .2s ease}
.attendance-option:hover{border-color:var(--brand);background-color:var(--gray-100)}
.attendance-option input[type="radio"]{margin:0}
.attendance-option input[type="radio"]:checked+.option-content{color:var(--brand)}
.attendance-option:has(input[type="radio"]:checked){border-color:var(--brand);background-color:rgba(42,90,176,.05)}
.option-content{display:flex;flex-direction:column;gap:.25rem}
.option-icon{font-size:var(--font-size-lg)}
.option-text{font-weight:var(--font-weight-semibold)}
.option-content small{color:var(--gray-600);font-size:var(--font-size-sm)}
.price-options{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}
.price-btn{padding:.5rem 1rem;border:2px solid var(--gray-300);border-radius:var(--border-radius);background:var(--white);color:var(--gray-700);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all .2s ease}
.price-btn:hover{border-color:var(--brand)}
.price-btn.active{border-color:var(--brand);background:var(--brand);color:var(--white)}
.price-input-group{display:flex;align-items:center;gap:.5rem}
.price-input-group input{flex:1;text-align:right}
.currency{font-weight:var(--font-weight-semibold);color:var(--gray-600)}
.batch-preview{max-height:300px;overflow-y:auto;border:1px solid var(--gray-200);border-radius:var(--border-radius);margin:1rem 0}
.batch-item{padding:.75rem;border-bottom:1px solid var(--gray-100);display:flex;justify-content:space-between;align-items:center}
.batch-item:last-child{border-bottom:none}
.batch-client{font-weight:var(--font-weight-semibold)}
.batch-price{color:var(--brand);font-weight:var(--font-weight-semibold)}
.duplicate-info{padding:1.5rem;text-align:center}
.duplicate-preview{margin:1rem 0;padding:1rem;background:var(--gray-100);border-radius:var(--border-radius)}
.existing-booking-preview{background:var(--white);padding:1rem;border-radius:var(--border-radius);border:2px solid var(--brand)}
.duplicate-options{padding:0 1.5rem}
.duplicate-options h3{margin-bottom:1rem;text-align:center}
.duplicate-option{display:flex;flex-direction:column;align-items:center;text-align:center;padding:1rem}
.duplicate-option small{display:block;margin-top:.5rem;font-weight:var(--font-weight-normal);opacity:.8}
@media(max-width:768px){
.header-content{padding:.75rem}
.suivi-layout{grid-template-columns:1fr;gap:1rem}
.page-header{flex-direction:column;align-items:stretch;gap:1rem}
.quick-stats{justify-content:space-around}
.session-card{padding:1rem}
.session-actions{flex-direction:column;gap:1rem}
.status-buttons{width:100%;justify-content:space-between}
.status-btn{flex:1;text-align:center}
.price-options{flex-direction:column}
.price-btn{width:100%}
.attendance-options{gap:.5rem}
.attendance-option{padding:.75rem}
.filters{flex-direction:column;align-items:stretch;gap:.75rem}
.filter-select{width:100%}
.summary-column{order:-1}
.nav-controls{flex-wrap:wrap;gap:.25rem}
.btn{padding:.375rem .75rem;font-size:var(--font-size-sm)}
.main{padding:1rem .75rem}
.modal{width:95vw}
.modal-header,.modal-form,.modal-actions{padding:1rem}
.modal-actions{flex-direction:column-reverse}
.chart-bar{grid-template-columns:1fr;gap:.5rem}
.bar-wrapper{order:2}.bar-value{order:3;text-align:left}
.filters{grid-template-columns:1fr}
.section-header{flex-direction:column;align-items:stretch;gap:1rem}
.bookings-table{font-size:.75rem}
.bookings-table th,.bookings-table td{padding:.5rem .25rem}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media print{.header,.footer,.toast,.modal,.btn{display:none!important}.main{max-width:none;margin:0;padding:0}.calendar-cell{border:1px solid #000!important}}
