*,*:before,*:after{box-sizing:border-box}:root{--color-primary: #6366f1;--color-primary-hover: #4f46e5;--color-primary-light: #818cf8;--color-success: #10b981;--color-success-bg: rgba(16, 185, 129, .1);--color-error: #ef4444;--color-error-bg: rgba(239, 68, 68, .1);--color-text: #1f2937;--color-text-muted: #6b7280;--color-bg: #f9fafb;--color-card: #ffffff;--color-border: #e5e7eb;--color-input-bg: #ffffff;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;font-family:Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.6;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(prefers-color-scheme:dark){:root{--color-text: #f9fafb;--color-text-muted: #9ca3af;--color-bg: #111827;--color-card: #1f2937;--color-border: #374151;--color-input-bg: #374151;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .4), 0 2px 4px -2px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .5), 0 4px 6px -4px rgba(0, 0, 0, .4)}}body{margin:0;padding:0;min-height:100vh;background-color:var(--color-bg);color:var(--color-text)}#root{min-height:100vh}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:1rem}.loading-spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-container{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:1rem;background:linear-gradient(135deg,var(--color-bg) 0%,var(--color-card) 100%)}.login-card{width:100%;max-width:400px;padding:2.5rem;background-color:var(--color-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--color-border)}.login-title{margin:0 0 .5rem;font-size:1.75rem;font-weight:700;text-align:center;color:var(--color-text)}.login-subtitle{margin:0 0 2rem;font-size:.95rem;text-align:center;color:var(--color-text-muted)}.login-form{display:flex;flex-direction:column;gap:1.25rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-label{font-size:.875rem;font-weight:500;color:var(--color-text)}.form-input{padding:.75rem 1rem;font-size:1rem;font-family:inherit;color:var(--color-text);background-color:var(--color-input-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);outline:none;transition:border-color .2s,box-shadow .2s}.form-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #6366f133}.form-input:disabled{opacity:.6;cursor:not-allowed}.form-input::placeholder{color:var(--color-text-muted)}.login-button{padding:.875rem 1.5rem;font-size:1rem;font-weight:600;font-family:inherit;color:#fff;background-color:var(--color-primary);border:none;border-radius:var(--radius-md);cursor:pointer;transition:background-color .2s,transform .1s}.login-button:hover:not(:disabled){background-color:var(--color-primary-hover)}.login-button:active:not(:disabled){transform:scale(.98)}.login-button:disabled{opacity:.6;cursor:not-allowed}.message{margin-top:1.25rem;padding:.875rem 1rem;font-size:.9rem;border-radius:var(--radius-md);text-align:center}.message-success{color:var(--color-success);background-color:var(--color-success-bg);border:1px solid var(--color-success)}.message-error{color:var(--color-error);background-color:var(--color-error-bg);border:1px solid var(--color-error)}.dashboard-container{min-height:100vh;display:flex;flex-direction:column}.dashboard-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 2rem;background-color:var(--color-card);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.dashboard-header h1{margin:0;font-size:1.5rem;font-weight:700}.logout-button{padding:.5rem 1rem;font-size:.875rem;font-weight:500;font-family:inherit;color:var(--color-text);background-color:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:background-color .2s,border-color .2s}.logout-button:hover{background-color:var(--color-error-bg);border-color:var(--color-error);color:var(--color-error)}.dashboard-main{flex:1;padding:2rem}.welcome-card{max-width:600px;margin:0 auto;padding:2rem;background-color:var(--color-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);border:1px solid var(--color-border);text-align:center}.welcome-card h2{margin:0 0 .5rem;font-size:1.5rem;font-weight:600}.user-role{margin:0;font-size:1rem;color:var(--color-text-muted)}.dashboard-nav{max-width:600px;margin:1.5rem auto 0;padding:1rem;background-color:var(--color-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);border:1px solid var(--color-border);display:flex;justify-content:center;gap:.75rem;flex-wrap:wrap}.nav-link{text-decoration:none;color:var(--color-primary);font-weight:600;padding:.5rem .75rem;border-radius:var(--radius-md);border:1px solid var(--color-border);background-color:transparent;transition:background-color .2s,border-color .2s}.nav-link:hover{background-color:#6366f11a;border-color:var(--color-primary-light)}.page-container{min-height:100vh;padding:2rem}.page-header{display:flex;gap:1rem;align-items:flex-start;justify-content:space-between;padding:1.25rem 1.5rem;background-color:var(--color-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);border:1px solid var(--color-border)}.page-header-titres{text-align:left}.page-titre{margin:0;font-size:1.5rem;font-weight:700}.page-sous-titre{margin:.25rem 0 0;color:var(--color-text-muted);font-size:.95rem}.page-actions{display:flex;gap:.75rem;align-items:center}.bouton-primaire{padding:.75rem 1rem;font-size:.95rem;font-weight:600;font-family:inherit;color:#fff;background-color:var(--color-primary);border:none;border-radius:var(--radius-md);cursor:pointer;transition:background-color .2s,transform .1s;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.bouton-primaire:hover:not(:disabled){background-color:var(--color-primary-hover)}.bouton-primaire:active:not(:disabled){transform:scale(.98)}.bouton-primaire:disabled{opacity:.6;cursor:not-allowed}.bouton-secondaire{padding:.75rem 1rem;font-size:.95rem;font-weight:600;font-family:inherit;color:var(--color-text);background-color:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:background-color .2s,border-color .2s;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.bouton-secondaire:hover:not(:disabled){background-color:#6366f11a;border-color:var(--color-primary-light)}.bouton-secondaire:disabled{opacity:.6;cursor:not-allowed}.bouton-danger{padding:.75rem 1rem;font-size:.95rem;font-weight:600;font-family:inherit;color:var(--color-error);background-color:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:background-color .2s,border-color .2s}.bouton-danger:hover:not(:disabled){background-color:var(--color-error-bg);border-color:var(--color-error)}.carte{margin-top:1.25rem;padding:1.25rem;background-color:var(--color-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);border:1px solid var(--color-border)}.table-conteneur{width:100%;overflow-x:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:.75rem;border-bottom:1px solid var(--color-border);text-align:left;vertical-align:middle}.table th{color:var(--color-text-muted);font-size:.85rem;text-transform:uppercase;letter-spacing:.04em}.table-etat{text-align:center;padding:1.25rem;color:var(--color-text-muted)}.colonne-actions{text-align:right}.cellule-actions{display:flex;justify-content:flex-end;gap:.5rem;flex-wrap:wrap}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:50}.modal-contenu{width:100%;max-width:540px;background-color:var(--color-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--color-border);padding:1.25rem}.modal-entete{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.modal-titre{margin:0;font-size:1.25rem;font-weight:700;text-align:left}.bouton-icone{width:36px;height:36px;border-radius:var(--radius-md);border:1px solid var(--color-border);background-color:transparent;cursor:pointer;font-size:1.25rem;color:var(--color-text);display:inline-flex;align-items:center;justify-content:center}.bouton-icone:hover{background-color:#6366f11a;border-color:var(--color-primary-light)}.modal-formulaire{display:flex;flex-direction:column;gap:1rem}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:.5rem}.erreur-champ{margin-top:.35rem;font-size:.875rem;color:var(--color-error);text-align:left}.settings-section-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.settings-section-titres{text-align:left}.settings-section-titre{margin:0;font-size:1.1rem;font-weight:700}.settings-section-sous-titre{margin:.25rem 0 0;color:var(--color-text-muted);font-size:.9rem}.settings-formulaire{display:flex;flex-direction:column;gap:1rem}.settings-groupe{padding:1rem;border:1px solid var(--color-border);border-radius:var(--radius-lg);background-color:#6366f108}.settings-groupe-titre{margin:0 0 .75rem;font-size:1rem;font-weight:700}.settings-grille-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}@media(max-width:640px){.settings-grille-2{grid-template-columns:minmax(0,1fr)}}@media(max-width:768px){.dashboard-header{padding:.75rem 1rem;flex-wrap:wrap;gap:.5rem}.dashboard-header h1{font-size:1.25rem}.dashboard-main{padding:1rem}.welcome-card{padding:1.5rem}.welcome-card h2{font-size:1.25rem}.carte{padding:1rem}.page-header{flex-direction:column;align-items:stretch;padding:1rem}.page-actions{justify-content:flex-start;flex-wrap:wrap}.modal-contenu{max-width:100%;margin:.5rem;padding:1rem}.modal-titre{font-size:1.1rem}.table th,.table td{padding:.5rem;font-size:.9rem}.dashboard-nav{flex-direction:column;align-items:stretch}.nav-link{text-align:center}}@media(max-width:480px){.dashboard-header{padding:.5rem .75rem}.dashboard-header h1{font-size:1.1rem}.dashboard-main{padding:.75rem}.welcome-card{padding:1rem}.welcome-card h2{font-size:1.1rem}.user-role{font-size:.9rem}.carte{margin-top:1rem;padding:.875rem}.bouton-primaire,.bouton-secondaire{padding:.625rem .875rem;font-size:.875rem;width:100%}.bouton-danger{padding:.625rem .875rem;font-size:.875rem}.logout-button{padding:.375rem .75rem;font-size:.8rem}.cellule-actions{flex-direction:column;align-items:stretch}.cellule-actions .bouton-primaire,.cellule-actions .bouton-secondaire,.cellule-actions .bouton-danger{width:100%;text-align:center}.form-input{padding:.625rem .75rem;font-size:.95rem}.modal-overlay{padding:.5rem}.modal-contenu{padding:.875rem}.modal-actions{flex-direction:column}.modal-actions .bouton-primaire,.modal-actions .bouton-secondaire{width:100%}button,.nav-link,.bouton-primaire,.bouton-secondaire,.bouton-danger{min-height:44px}.bouton-secondaire{position:relative}}.creneau-details{display:flex;flex-direction:column}@media(max-width:640px){.creneau-details>div{flex-wrap:wrap}}.alert-section{text-align:left}.alert-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.alert-section-titre{margin:0;font-size:1.1rem;font-weight:700;display:flex;align-items:center;gap:.5rem}.alert-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;height:1.5rem;padding:0 .375rem;font-size:.8rem;font-weight:700;color:#fff;background-color:var(--color-error);border-radius:999px}.alert-badge-header{background-color:var(--color-primary)}.alert-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem}.alert-card{display:flex;align-items:flex-start;gap:.875rem;padding:1rem;background-color:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:transform .15s,box-shadow .15s,border-color .15s;text-align:left;width:100%;font-family:inherit;font-size:inherit}.alert-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.alert-card-warning{border-left:4px solid #f59e0b}.alert-card-warning:hover{border-color:#f59e0b}.alert-card-error{border-left:4px solid var(--color-error)}.alert-card-error:hover{border-color:var(--color-error)}.alert-card-icon{font-size:1.5rem;flex-shrink:0}.alert-card-content{flex:1;min-width:0}.alert-card-titre{font-weight:600;font-size:.95rem;color:var(--color-text);display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.alert-card-description{font-size:.85rem;color:var(--color-text-muted);margin-top:.25rem}.modal-validation{max-width:480px}.modal-warning{padding:.875rem 1rem;background-color:#f59e0b1a;border:1px solid #f59e0b;border-radius:var(--radius-md);margin-bottom:1rem}.modal-warning-titre{font-weight:700;font-size:.95rem;color:#d97706;margin-bottom:.25rem}.modal-warning-description{font-size:.85rem;color:var(--color-text-muted)}.warning-box{padding:.875rem 1rem;background-color:#f59e0b1a;border:1px solid #f59e0b;border-radius:var(--radius-md);margin-bottom:1rem}.warning-box ul{margin:.5rem 0;padding-left:1.25rem}.warning-box li{margin-bottom:.25rem;font-size:.9rem;color:var(--color-text)}.warning-box p{margin:.5rem 0 0}.modal-details{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.detail-row{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding:.5rem 0;border-bottom:1px solid var(--color-border)}.detail-row:last-child{border-bottom:none}.detail-label{font-size:.875rem;font-weight:600;color:var(--color-text-muted);flex-shrink:0}.detail-value{font-size:.95rem;color:var(--color-text);text-align:right;word-break:break-word}.modal-actions-validation{display:flex;gap:.75rem;justify-content:flex-end;flex-wrap:wrap}.generation-section{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.generation-loading{display:flex;align-items:center;gap:.75rem;color:var(--color-text-muted);font-size:.95rem}.generation-loading .loading-spinner{width:20px;height:20px;border-width:2px}.generation-message{padding:.5rem .75rem;font-size:.875rem;border-radius:var(--radius-md);animation:slideIn .2s ease-out}.generation-message-success{color:var(--color-success);background-color:var(--color-success-bg)}.generation-message-error{color:var(--color-error);background-color:var(--color-error-bg)}@keyframes slideIn{0%{opacity:0;transform:translateY(-.5rem)}to{opacity:1;transform:translateY(0)}}@media(max-width:640px){.alert-cards{grid-template-columns:1fr}.alert-card{padding:.875rem}.modal-actions-validation{flex-direction:column}.modal-actions-validation button{width:100%}.detail-row{flex-direction:column;gap:.25rem}.detail-value{text-align:left}.generation-section{flex-direction:column;align-items:stretch}}.modal-large{max-width:800px;max-height:90vh;display:flex;flex-direction:column}.modal-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:1rem;border-bottom:1px solid var(--color-border);margin-bottom:1rem}.modal-header h2{margin:0;font-size:1.25rem;font-weight:700}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--color-text-muted);padding:.25rem;line-height:1;transition:color .2s}.modal-close:hover{color:var(--color-error)}.modal-body{flex:1;overflow-y:auto;padding-right:.5rem}.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding-top:1rem;border-top:1px solid var(--color-border);margin-top:1rem}.chargement-centre{text-align:center;padding:2rem;color:var(--color-text-muted)}.test-scenarios-section{margin-bottom:1.5rem;padding:1rem;background-color:#6366f10d;border-radius:var(--radius-lg);border:1px solid rgba(99,102,241,.15)}.test-scenarios-section h3{margin:0 0 .5rem;font-size:1rem;font-weight:600}.section-description{margin:0 0 1rem;color:var(--color-text-muted);font-size:.9rem}.scenario-buttons{display:flex;flex-wrap:wrap;gap:.75rem}.bouton-scenario{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1rem;font-size:.9rem;font-weight:500;font-family:inherit;color:var(--color-text);background-color:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all .2s}.bouton-scenario:hover:not(:disabled){background-color:#6366f11a;border-color:var(--color-primary-light);color:var(--color-primary)}.bouton-scenario:disabled{opacity:.6;cursor:not-allowed}.scenario-icon{font-size:1.1rem}.loading-spinner-small{width:16px;height:16px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.test-manual-section{margin-top:1rem}.test-manual-section h3{margin:0 0 .5rem;font-size:1rem;font-weight:600}.test-manual-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.troupes-list{display:flex;flex-direction:column;gap:1rem;max-height:400px;overflow-y:auto;padding-right:.5rem}.troupe-availability-form{padding:1rem;background-color:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color .2s}.troupe-availability-form:hover{border-color:var(--color-primary-light)}.troupe-availability-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.troupe-availability-title{margin:0;font-size:1rem;font-weight:600}.troupe-availability-members{font-size:.85rem;color:var(--color-text-muted);background-color:#6366f11a;padding:.25rem .5rem;border-radius:var(--radius-sm)}.troupe-availability-slots{display:flex;flex-direction:column;gap:1rem;margin-bottom:.75rem}.preference-card{padding:1rem;background-color:#6366f108;border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color .2s,box-shadow .2s}.preference-card:hover{border-color:var(--color-primary-light)}.preference-card-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;font-weight:600;font-size:.95rem;color:var(--color-primary)}.preference-card-header .preference-icon{font-size:1rem}.preference-inputs{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.preference-input-group{display:flex;flex-direction:column;gap:.375rem}.members-row{display:flex;align-items:center;gap:1rem;margin-top:.75rem;padding-top:.75rem;border-top:1px dashed var(--color-border)}.members-input-wrapper{display:flex;align-items:center;gap:.5rem}.members-progress{flex:1;display:flex;align-items:center;gap:.5rem}.members-progress-bar{flex:1;height:6px;background-color:var(--color-border);border-radius:3px;overflow:hidden}.members-progress-fill{height:100%;background:linear-gradient(90deg,var(--color-primary) 0%,var(--color-primary-light) 100%);border-radius:3px;transition:width .3s ease}.members-ratio{font-size:.8rem;color:var(--color-text-muted);white-space:nowrap}.members-input-group{display:flex;align-items:center;gap:.5rem}.members-input-group .form-input-small{width:70px}.form-label-small{font-size:.875rem;font-weight:500;color:var(--color-text);white-space:nowrap;display:flex;align-items:center;gap:.25rem}.form-label-small .label-icon{font-size:.9rem;opacity:.7}.form-input-small{width:100%;padding:.5rem .625rem;font-size:.9rem;background-color:var(--color-input-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);transition:border-color .2s,box-shadow .2s}.form-input-small:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #6366f126}.form-input-small:hover:not(:focus){border-color:var(--color-primary-light)}.troupe-availability-options{border-top:1px solid var(--color-border);padding-top:.75rem}.checkbox-label{display:flex;align-items:center;gap:.5rem;font-size:.9rem;cursor:pointer}.checkbox-label input[type=checkbox]{width:16px;height:16px;cursor:pointer}.validation-error{margin-top:.5rem;padding:.5rem;font-size:.85rem;color:var(--color-error);background-color:var(--color-error-bg);border-radius:var(--radius-sm)}.badge-soumis{display:inline-flex;align-items:center;margin-left:.5rem;padding:.2rem .5rem;font-size:.75rem;font-weight:600;color:var(--color-success);background-color:var(--color-success-bg);border-radius:var(--radius-sm)}.troupe-availability-actions{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--color-border);display:flex;justify-content:flex-end}.bouton-primaire-petit{display:inline-flex;align-items:center;justify-content:center;gap:.375rem;padding:.5rem .875rem;font-size:.85rem;font-weight:600;font-family:inherit;color:var(--color-primary);background-color:transparent;border:1px solid var(--color-primary);border-radius:var(--radius-md);cursor:pointer;transition:all .2s}.bouton-primaire-petit:hover:not(:disabled){background-color:var(--color-primary);color:#fff}.bouton-primaire-petit:active:not(:disabled){transform:scale(.98)}.bouton-primaire-petit:disabled{opacity:.6;cursor:not-allowed}.dev-tools-card{background:linear-gradient(135deg,#6366f10d,#6366f11a);border:1px dashed var(--color-primary-light)}.dev-tools-card h3{margin:0 0 .5rem;font-size:1.1rem;font-weight:600}@media(max-width:768px){.modal-large{max-width:100%;max-height:100vh;margin:0;border-radius:0}.preference-inputs{grid-template-columns:1fr}.members-row{flex-direction:column;align-items:stretch}.scenario-buttons{flex-direction:column}.bouton-scenario{width:100%;justify-content:center}}@media(max-width:480px){.modal-header h2{font-size:1rem}.test-scenarios-section,.troupe-availability-form{padding:.75rem}.troupe-availability-header{flex-direction:column;align-items:flex-start;gap:.25rem}.members-input-group{flex-direction:column;align-items:flex-start}.form-input-small{width:100%}}.settings-onglets{display:flex;gap:.5rem;padding:.25rem;background-color:var(--color-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-border);margin-bottom:1.25rem}.settings-onglet{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.875rem 1rem;font-size:.9rem;font-weight:600;font-family:inherit;color:var(--color-text-muted);background-color:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease}.settings-onglet:hover:not(.settings-onglet-actif){color:var(--color-text);background-color:#6366f10d}.settings-onglet-actif{color:#fff;background-color:var(--color-primary);box-shadow:var(--shadow-sm)}.settings-onglet-icone{font-size:1.1rem;flex-shrink:0}.settings-onglet-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;padding:0 .35rem;font-size:.7rem;font-weight:700;color:var(--color-primary);background-color:#6366f126;border-radius:999px}.settings-onglet-actif .settings-onglet-badge{color:var(--color-primary);background-color:#fff}.settings-section-description{margin:0 0 1.25rem;padding:.875rem 1rem;background-color:#6366f10d;border-left:3px solid var(--color-primary);border-radius:0 var(--radius-md) var(--radius-md) 0;color:var(--color-text-muted);font-size:.9rem;line-height:1.5}.settings-section-icone{margin-right:.5rem}.settings-form-grille{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-bottom:1rem}.settings-form-pleine-largeur{grid-column:1 / -1}.settings-form-actions{display:flex;justify-content:flex-start;gap:.75rem;padding-top:.5rem}@media(max-width:640px){.settings-form-grille{grid-template-columns:1fr}}.modal-confirmation{max-width:400px}.modal-confirmation-icone{display:flex;align-items:center;justify-content:center;width:48px;height:48px;margin:0 auto 1rem;font-size:1.5rem;background-color:var(--color-error-bg);border-radius:50%;color:var(--color-error)}.modal-confirmation-texte{text-align:center;margin-bottom:1.5rem}.modal-confirmation-titre{margin:0 0 .5rem;font-size:1.1rem;font-weight:700;color:var(--color-text)}.modal-confirmation-description{margin:0;color:var(--color-text-muted);font-size:.9rem}.modal-confirmation-actions{display:flex;gap:.75rem;justify-content:center}.etat-vide{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2.5rem 1.5rem;text-align:center}.etat-vide-icone{font-size:2.5rem;margin-bottom:1rem;opacity:.6}.etat-vide-titre{margin:0 0 .5rem;font-size:1rem;font-weight:600;color:var(--color-text)}.etat-vide-description{margin:0;color:var(--color-text-muted);font-size:.9rem;max-width:280px}.semaine-navigation{display:flex;align-items:center;gap:.75rem}.semaine-navigation-bouton{display:flex;align-items:center;justify-content:center;width:36px;height:36px;font-size:1.25rem;font-family:inherit;color:var(--color-text);background-color:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all .2s}.semaine-navigation-bouton:hover:not(:disabled){background-color:#6366f11a;border-color:var(--color-primary-light);color:var(--color-primary)}.semaine-navigation-bouton:disabled{opacity:.4;cursor:not-allowed}.blocage-liste{display:flex;flex-direction:column;gap:.75rem}.blocage-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.875rem 1rem;background-color:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color .2s}.blocage-item:hover{border-color:var(--color-primary-light)}.blocage-item-info{display:flex;flex-direction:column;gap:.25rem;min-width:0}.blocage-item-jour{font-weight:600;color:var(--color-text);font-size:.95rem}.blocage-item-details{display:flex;align-items:center;gap:.75rem;font-size:.85rem;color:var(--color-text-muted)}.blocage-item-plage{display:inline-flex;align-items:center;gap:.25rem}.blocage-item-raison{padding-left:.75rem;border-left:1px solid var(--color-border)}.blocage-calendrier{background-color:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);--blocage-calendrier-fond-entete: rgba(99, 102, 241, .06);--blocage-calendrier-fond-colonne-heures: rgba(99, 102, 241, .03);--blocage-calendrier-grille-principale: rgba(31, 41, 55, .08);--blocage-calendrier-grille-secondaire: rgba(31, 41, 55, .05);--blocage-calendrier-evenement-fond: rgba(99, 102, 241, .16);--blocage-calendrier-evenement-fond-hover: rgba(99, 102, 241, .22);--blocage-calendrier-evenement-bordure: rgba(99, 102, 241, .35);--blocage-calendrier-evenement-bordure-hover: rgba(99, 102, 241, .65);--blocage-calendrier-weekend-fond: rgba(99, 102, 241, .04)}.blocage-calendrier-scroll{overflow:auto;max-height:min(72vh,860px);overscroll-behavior:contain;scrollbar-gutter:stable}.blocage-calendrier-entete,.blocage-calendrier-corps{display:grid;grid-template-columns:72px repeat(7,minmax(140px,1fr));min-width:1050px}.blocage-calendrier-entete{border-bottom:1px solid var(--color-border);background-color:var(--blocage-calendrier-fond-entete);position:sticky;top:0;z-index:10;box-shadow:0 1px 0 0 var(--color-border)}.blocage-calendrier-entete-coin{border-right:1px solid var(--color-border);position:sticky;left:0;z-index:12;background-color:var(--blocage-calendrier-fond-entete)}.blocage-calendrier-entete-jour{padding:.75rem;text-align:center;font-weight:700;font-size:.85rem;color:var(--color-text);border-left:1px solid var(--color-border)}.blocage-calendrier-entete>.blocage-calendrier-entete-jour:nth-child(2),.blocage-calendrier-entete>.blocage-calendrier-entete-jour:nth-child(8){background-color:var(--blocage-calendrier-weekend-fond)}.blocage-calendrier-colonne-heures{position:sticky;left:0;z-index:8;border-right:1px solid var(--color-border);background-color:var(--blocage-calendrier-fond-colonne-heures)}.blocage-calendrier-heure{position:absolute;left:0;right:0;transform:translateY(-50%);padding:.125rem .5rem;font-size:.75rem;line-height:1;color:var(--color-text-muted);background-color:var(--blocage-calendrier-fond-colonne-heures);text-align:right;pointer-events:none;white-space:nowrap;z-index:1}.blocage-calendrier-heure:after{content:"";position:absolute;top:50%;right:-1px;width:8px;height:3px;background-color:var(--blocage-calendrier-fond-colonne-heures);transform:translateY(-50%)}.blocage-calendrier-jour{position:relative;border-left:1px solid var(--color-border);background-color:transparent;background-image:repeating-linear-gradient(to bottom,var(--blocage-calendrier-grille-secondaire) 0,var(--blocage-calendrier-grille-secondaire) 1px,transparent 1px,transparent calc(var(--blocage-calendrier-hauteur-heure) / 2)),repeating-linear-gradient(to bottom,var(--blocage-calendrier-grille-principale) 0,var(--blocage-calendrier-grille-principale) 1px,transparent 1px,transparent var(--blocage-calendrier-hauteur-heure));background-size:100% var(--blocage-calendrier-hauteur-heure)}.blocage-calendrier-corps>.blocage-calendrier-jour:nth-child(2),.blocage-calendrier-corps>.blocage-calendrier-jour:nth-child(8){background-color:var(--blocage-calendrier-weekend-fond)}.blocage-calendrier-evenement{position:absolute;left:.5rem;right:.5rem;padding:.4rem .5rem;border-radius:var(--radius-md);background-color:var(--blocage-calendrier-evenement-fond);border:1px solid var(--blocage-calendrier-evenement-bordure);color:var(--color-text);cursor:pointer;overflow:hidden;box-shadow:0 0 0 0 transparent;transition:transform .15s ease,box-shadow .15s ease,background-color .15s ease,border-color .15s ease}.blocage-calendrier-evenement:hover{border-color:var(--blocage-calendrier-evenement-bordure-hover);background-color:var(--blocage-calendrier-evenement-fond-hover);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.blocage-calendrier-evenement-selectionne{outline:2px solid var(--color-primary);outline-offset:0;box-shadow:0 0 0 3px #6366f12e,var(--shadow-sm)}.blocage-calendrier-evenement-titre{font-weight:700;font-size:.85rem;line-height:1.15;padding-right:2.25rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.blocage-calendrier-evenement-details{margin-top:.2rem;font-size:.75rem;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:2.25rem}.blocage-calendrier-evenement-actions{position:absolute;top:.25rem;right:.25rem;display:flex;gap:.25rem;opacity:0;transform:translateY(-2px);transition:opacity .15s ease,transform .15s ease}.blocage-calendrier-action{width:32px;height:32px;padding:0;display:inline-flex;align-items:center;justify-content:center;line-height:1;border-radius:var(--radius-sm);box-shadow:0 0 0 0 transparent}.blocage-calendrier-evenement:hover .blocage-calendrier-evenement-actions,.blocage-calendrier-evenement:focus-within .blocage-calendrier-evenement-actions{opacity:1;transform:translateY(0)}.blocage-calendrier-evenement:focus-visible{outline:2px solid var(--color-primary);outline-offset:0}@media(prefers-reduced-motion:reduce){.blocage-calendrier-evenement,.blocage-calendrier-evenement-actions{transition:none}}@media(prefers-color-scheme:dark){.blocage-calendrier{--blocage-calendrier-fond-entete: rgba(99, 102, 241, .1);--blocage-calendrier-fond-colonne-heures: rgba(99, 102, 241, .05);--blocage-calendrier-grille-principale: rgba(249, 250, 251, .1);--blocage-calendrier-grille-secondaire: rgba(249, 250, 251, .06);--blocage-calendrier-evenement-fond: rgba(99, 102, 241, .22);--blocage-calendrier-evenement-fond-hover: rgba(99, 102, 241, .28);--blocage-calendrier-evenement-bordure: rgba(129, 140, 248, .4);--blocage-calendrier-evenement-bordure-hover: rgba(129, 140, 248, .7);--blocage-calendrier-weekend-fond: rgba(99, 102, 241, .06)}}@media(max-width:640px){.blocage-calendrier-entete,.blocage-calendrier-corps{grid-template-columns:64px repeat(7,minmax(120px,1fr));min-width:960px}}.blocage-combine-legende{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1rem;padding:.75rem 1rem;background-color:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:.875rem}.blocage-combine-legende-titre{font-weight:600;color:var(--color-text)}.blocage-combine-legende-item{display:inline-flex;align-items:center;gap:.375rem;color:var(--color-text-muted)}.blocage-combine-legende-pastille{width:12px;height:12px;border-radius:var(--radius-sm);flex-shrink:0}.blocage-combine-pastille-permanent{background-color:#14b8a6b3;border:1px solid rgba(20,184,166,.9)}.blocage-combine-pastille-hebdomadaire{background-color:#6366f180;border:1px solid rgba(99,102,241,.7)}.blocage-combine-legende-compte{font-size:.8rem;color:var(--color-text-muted);opacity:.8}.blocage-combine-evenement-permanent{--blocage-evenement-fond: rgba(20, 184, 166, .18);--blocage-evenement-fond-hover: rgba(20, 184, 166, .25);--blocage-evenement-bordure: rgba(20, 184, 166, .45);--blocage-evenement-bordure-hover: rgba(20, 184, 166, .7);background-color:var(--blocage-evenement-fond);border-color:var(--blocage-evenement-bordure)}.blocage-combine-evenement-permanent:hover{background-color:var(--blocage-evenement-fond-hover);border-color:var(--blocage-evenement-bordure-hover)}.blocage-calendrier-evenement-indicateur{position:absolute;top:.25rem;right:.35rem;font-size:.75rem;opacity:.7;pointer-events:none}@media(prefers-color-scheme:dark){.blocage-combine-pastille-permanent{background-color:#2dd4bf99;border-color:#2dd4bfcc}.blocage-combine-pastille-hebdomadaire{background-color:#818cf880;border-color:#818cf8b3}.blocage-combine-evenement-permanent{--blocage-evenement-fond: rgba(45, 212, 191, .22);--blocage-evenement-fond-hover: rgba(45, 212, 191, .3);--blocage-evenement-bordure: rgba(45, 212, 191, .5);--blocage-evenement-bordure-hover: rgba(45, 212, 191, .75)}}@media(max-width:640px){.blocage-combine-legende{flex-direction:column;align-items:flex-start;gap:.5rem}}@media(max-width:768px){.settings-onglets{flex-direction:column;gap:.25rem}.settings-onglet{justify-content:flex-start;padding:.75rem 1rem}}@media(max-width:480px){.settings-onglet{font-size:.85rem;padding:.625rem .875rem}.settings-onglet-icone{font-size:1rem}.blocage-item{flex-direction:column;align-items:stretch;gap:.75rem}.blocage-item-details{flex-direction:column;align-items:flex-start;gap:.25rem}.blocage-item-raison{padding-left:0;border-left:none}.modal-confirmation-actions{flex-direction:column}.modal-confirmation-actions button{width:100%}}#root{max-width:1280px;margin:0 auto;padding:2rem;text-align:center}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(prefers-reduced-motion:no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}
