@import "https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700&display=swap";@import "https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined&display=block";@import "https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700&display=swap";@import "https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined&display=block";@import "https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700&display=swap";@import "https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined&display=block";@import "https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700&display=swap";@import "https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined&display=block";@import "https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700&display=swap";@import "https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined&display=block";@import "https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700&display=swap";@import "https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined&display=block";@import "https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700&display=swap";@import "https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined&display=block";@import "https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700&display=swap";@import "https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined&display=block";@import "https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700&display=swap";@import "https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined&display=block";@import "https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700&display=swap";@import "https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined&display=block";@import "https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700&display=swap";@import "https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined&display=block";@import "https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700&display=swap";@import "https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined&display=block";@import "https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700&display=swap";@import "https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined&display=block";@import "https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700&display=swap";@import "https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined&display=block";@import "https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700&display=swap";@import "https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined&display=block";@import "https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700&display=swap";@import "https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined&display=block";@import "https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700&display=swap";@import "https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined&display=block";@import "https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700&display=swap";@import "https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined&display=block";@import "https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700&display=swap";@import "https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined&display=block";@import "https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700&display=swap";@import "https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined&display=block";@import "https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700&display=swap";@import "https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined&display=block";@import "https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700&display=swap";@import "https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined&display=block";.icon-chanteursaison:before,.icon-chanteurSaison:before{content:"group_add"!important}.icon-lead_actif:before,.icon-saisonactive:before{content:"star"!important}@media (width<=768px){:root{--shadow-md:0 5px 18px #30343b17;--shadow-lg:0 12px 32px #30343b21}body{font-size:15px}button,input,select,textarea{font-size:1rem}.animation-icon{transform-origin:50%;justify-content:center;align-items:center;animation:1.4s ease-in-out infinite animation-icon-pulse;display:inline-flex}.animation-icon:hover{animation-duration:.7s}@keyframes animation-icon-pulse{0%,to{transform:scale(1)rotate(0)}35%{transform:scale(1.16)rotate(-6deg)}65%{transform:scale(1.08)rotate(5deg)}}}@media (prefers-reduced-motion:reduce){.animation-icon{animation:none}}@media (width<=640px){body{font-size:14px}[class^=icon-]:before,[class*=\ icon-]:before{font-size:1.3em}}.admin-sidebar{box-sizing:border-box;background:var(--color-surface);border-right:1px solid var(--color-border);z-index:100;width:250px;padding:18px 14px;position:fixed;top:0;bottom:0;left:0;overflow-y:auto}.admin-menu{width:100%;font-family:inherit;position:relative}.admin-menu button{font-family:inherit}.admin-menu-main{flex-direction:column;gap:4px;display:flex}.admin-menu-item,.admin-menu-section{box-sizing:border-box;width:100%;min-height:42px;color:var(--color-text-primary);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:11px;align-items:center;padding:9px 12px;font-size:14px;font-weight:500;transition:background .15s,color .15s;display:flex;position:relative}.admin-menu-item:hover,.admin-menu-section:hover{background:var(--color-brand-soft);color:var(--color-brand)}.admin-menu-section{color:var(--color-text-primary);text-transform:uppercase;letter-spacing:.04em;justify-content:space-between;font-size:12px;font-weight:700}.admin-menu-section.open{background:var(--color-brand-soft);color:var(--color-brand)}.admin-menu-arrow{color:var(--color-text-muted);flex:none;margin-left:8px;font-size:16px;line-height:1}.admin-menu-item.active,.admin-season.active{background:var(--color-brand-soft);color:var(--color-brand-strong);font-weight:700}.admin-menu-item.active:hover,.admin-season.active:hover{background:var(--color-brand-soft)}.admin-dropdown{box-sizing:border-box;border:1px solid var(--color-border);background:var(--color-surface);z-index:300;border-radius:14px;width:100%;padding:8px;position:absolute;left:0;box-shadow:0 12px 35px #30343b1f}@media (width>=701px){.admin-dropdown-seasons,.admin-dropdown-referentiels{margin-top:8px;top:100%}}.admin-dropdown-title{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;padding:8px 10px 10px;font-size:11px;font-weight:700}.admin-dropdown-content{flex-direction:column;gap:2px;display:flex}.admin-season-group{flex-direction:column;display:flex}.admin-season{width:100%;min-height:40px;color:var(--color-text-primary);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:9px;justify-content:space-between;align-items:center;padding:8px 10px;font-size:14px;font-weight:600;transition:background .15s,color .15s;display:flex}.admin-season:hover{background:var(--color-surface-soft);color:var(--color-brand)}.admin-season-items{border-left:1px solid var(--color-border);flex-direction:column;gap:2px;margin:2px 0 5px 14px;padding-left:8px;display:flex}.admin-season-items .admin-menu-item{min-height:36px;padding:7px 10px;font-size:13px}@media (width<=700px){.admin-sidebar{z-index:200;background:var(--color-surface);border-right:0;border-bottom:1px solid var(--color-border);width:100%;height:auto;padding:0;position:sticky;top:0;overflow:visible}.admin-menu{width:100%}.admin-horizontal-scroll-wrapper{width:100%;position:relative;overflow:hidden}.admin-menu-main{box-sizing:border-box;scrollbar-width:none;scroll-behavior:smooth;flex-direction:row;align-items:stretch;gap:4px;width:100%;padding:6px 245px 6px 10px;display:flex;overflow:auto hidden}.admin-menu-main::-webkit-scrollbar{display:none}.admin-menu-main .admin-menu-item,.admin-menu-main .admin-menu-section{width:70px;min-width:70px;min-height:58px;color:var(--color-text-secondary);text-align:center;text-transform:none;letter-spacing:normal;background:0 0;border:0;border-radius:10px;flex-direction:column;flex:0 0 70px;justify-content:center;align-items:center;gap:5px;padding:7px 4px;font-size:11px;font-weight:500;display:flex}.admin-menu-main .admin-menu-item:before,.admin-menu-main .admin-menu-section:before{font-size:21px;line-height:1;display:block}.admin-menu-main .admin-menu-item span:first-child,.admin-menu-main .admin-menu-section span:first-child{font-size:11px;line-height:1.1;display:block}.admin-menu-main .admin-menu-arrow{display:none}.admin-menu-main .admin-menu-section.open{background:var(--color-brand-soft);color:var(--color-brand-strong);font-weight:700}.admin-menu-dashboard{display:none!important}.admin-dropdown{box-sizing:border-box;border:0;border-top:1px solid var(--color-surface-muted);background:var(--color-surface);width:100%;max-width:none;max-height:none;box-shadow:none;border-radius:0;margin:0;padding:6px 10px 8px;position:static;overflow:hidden}.admin-dropdown-title{display:none}.admin-dropdown-content{box-sizing:border-box;scrollbar-width:none;scroll-behavior:smooth;flex-direction:row;align-items:stretch;gap:5px;width:100%;min-width:0;padding-left:4px;padding-right:4px;display:flex;overflow:auto hidden}.admin-dropdown-content::-webkit-scrollbar{display:none}.admin-dropdown-referentiels .admin-dropdown-content{scrollbar-width:none;scroll-behavior:smooth;flex-flow:row;align-items:stretch;gap:5px;width:100%;min-width:0;display:flex;overflow:auto hidden}.admin-dropdown-referentiels .admin-dropdown-content::-webkit-scrollbar{display:none}.admin-dropdown-referentiels .admin-dropdown-content>.admin-menu-item{box-sizing:border-box;text-align:center;border-radius:8px;flex-direction:column;flex:0 0 72px;justify-content:center;align-items:center;gap:3px;width:72px;min-width:72px;max-width:72px;min-height:48px;padding:6px 4px;font-size:10px;display:flex}.admin-dropdown-referentiels .admin-dropdown-content>.admin-menu-item:before{font-size:18px;line-height:1;display:block}.admin-dropdown-seasons .admin-dropdown-content{box-sizing:border-box;scrollbar-width:none;scroll-behavior:smooth;flex-flow:row;align-items:flex-start;gap:8px;width:100%;min-width:0;padding-left:4px;padding-right:4px;display:flex;overflow:auto hidden}.admin-dropdown-seasons .admin-dropdown-content::-webkit-scrollbar{display:none}.admin-dropdown-seasons .admin-season-group{box-sizing:border-box;flex-direction:column;flex:none;width:140px;min-width:140px;display:flex}.admin-dropdown-seasons .admin-season{box-sizing:border-box;white-space:nowrap;border-radius:9px;justify-content:space-between;align-items:center;width:100%;min-width:140px;min-height:42px;padding:7px 10px;font-size:13px;display:flex}.admin-dropdown-seasons .admin-season>span:first-child{align-items:center;gap:5px;min-width:0;display:flex}.admin-dropdown-seasons .admin-season .admin-menu-arrow{flex:none;margin-left:8px}.admin-dropdown-seasons .admin-season-items{border:0;flex-flow:row;align-items:stretch;gap:4px;width:100%;margin:4px 0 0;padding:0;display:flex;overflow:visible}.admin-dropdown-seasons .admin-season-items .admin-menu-item{box-sizing:border-box;text-align:center;white-space:normal;border-radius:8px;flex-direction:column;flex:0 0 72px;justify-content:center;align-items:center;width:72px;min-width:72px;max-width:72px;min-height:48px;padding:6px 4px;font-size:10px;display:flex}.admin-dropdown-seasons .admin-season-items .admin-menu-item:before{font-size:18px;line-height:1;display:block}.admin-scroll-arrow{z-index:50;border:1px solid var(--color-border);width:30px;height:30px;color:var(--color-text-primary);cursor:pointer;background:#fffffff5;border-radius:50%;justify-content:center;align-items:center;margin:0;padding:0;font-size:25px;font-weight:400;line-height:1;transition:background .15s,color .15s,transform .15s;display:flex;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 3px 10px #30343b1f}.admin-scroll-arrow:hover{background:var(--color-brand-soft);color:var(--color-brand);transform:translateY(-50%)scale(1.05)}.admin-scroll-arrow-left{left:2px}.admin-scroll-arrow-right{right:2px}@media (width<=400px){.admin-menu-main{padding-right:190px}.admin-menu-main .admin-menu-item,.admin-menu-main .admin-menu-section{flex-basis:64px;width:64px;min-width:64px;min-height:55px}.admin-season-group{width:132px;min-width:132px}.admin-dropdown-seasons .admin-season{min-width:132px}.admin-season-items .admin-menu-item{flex-basis:68px;min-width:68px}.admin-menu-main .admin-menu-item,.admin-menu-main .admin-menu-section{padding-left:9px;padding-right:9px}}}.icon-chanteursaison:before,.icon-chanteurSaison:before{content:"group_add"!important}.icon-lead_actif:before,.icon-saisonactive:before{content:"star"!important}@media (width<=768px){:root{--shadow-md:0 5px 18px #30343b17;--shadow-lg:0 12px 32px #30343b21}body{font-size:15px}button,input,select,textarea{font-size:1rem}.animation-icon{transform-origin:50%;justify-content:center;align-items:center;animation:1.4s ease-in-out infinite animation-icon-pulse;display:inline-flex}.animation-icon:hover{animation-duration:.7s}@keyframes animation-icon-pulse{0%,to{transform:scale(1)rotate(0)}35%{transform:scale(1.16)rotate(-6deg)}65%{transform:scale(1.08)rotate(5deg)}}}@media (prefers-reduced-motion:reduce){.animation-icon{animation:none}}@media (width<=640px){body{font-size:14px}[class^=icon-]:before,[class*=\ icon-]:before{font-size:1.3em}}.admin-layout{background:var(--color-surface-soft);width:100%;min-height:100vh;display:flex}.admin-content{width:calc(100% - 250px);min-width:0;margin-left:250px}.admin-header{z-index:50;box-sizing:border-box;border-bottom:1px solid var(--color-border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff0;justify-content:flex-end;align-items:center;min-height:62px;padding:10px 24px;display:flex;position:sticky;top:0}.admin-header-user{color:var(--color-text-secondary);align-items:center;gap:8px;margin-right:14px;font-size:13px;display:flex}.admin-user-icon{background:var(--color-surface-muted);border-radius:50%;flex:0 0 30px;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.admin-user-email{text-overflow:ellipsis;white-space:nowrap;max-width:280px;overflow:hidden}.admin-logout{border:1px solid var(--color-border);background:var(--color-surface);min-height:36px;color:var(--color-text-secondary);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:7px;padding:7px 12px;font-family:inherit;font-size:13px;font-weight:600;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.admin-logout:hover{background:var(--color-danger-soft);border-color:var(--color-danger-border);color:var(--color-danger)}.admin-logout-icon{font-size:16px;line-height:1}.admin-page{box-sizing:border-box;width:100%;max-width:1500px;margin:0 auto;padding:24px}.admin-header-mobile{display:none}@media (width<=700px){.admin-layout{min-height:100vh;display:block;position:relative}.admin-content{width:100%;margin-left:0}.admin-header-desktop{display:none}.admin-header-mobile{z-index:260;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;justify-content:flex-end;align-items:center;width:230px;min-height:58px;padding:0;display:flex;position:absolute;top:6px;right:10px}.admin-header-mobile .admin-header-user{gap:7px;min-width:0;margin-right:8px}.admin-header-mobile .admin-user-icon{flex:0 0 30px;width:30px;height:30px}.admin-header-mobile .admin-user-email{text-overflow:ellipsis;white-space:nowrap;max-width:135px;overflow:hidden}.admin-header-mobile .admin-logout{flex:0 0 38px;width:38px;height:38px;min-height:38px;padding:0}.admin-header-mobile .admin-logout span:last-child{display:none}.admin-page{padding:14px 12px 24px}}@media (width<=400px){.admin-page{padding-left:10px;padding-right:10px}.admin-header-mobile{width:180px;right:7px}.admin-header-mobile .admin-header-user{gap:5px;margin-right:6px}.admin-header-mobile .admin-user-icon{flex-basis:28px;width:28px;height:28px}.admin-header-mobile .admin-user-email{max-width:100px;font-size:12px}.admin-header-mobile .admin-logout{flex-basis:34px;width:34px;height:34px;min-height:34px}}.icon-chanteursaison:before,.icon-chanteurSaison:before{content:"group_add"!important}.icon-lead_actif:before,.icon-saisonactive:before{content:"star"!important}@media (width<=768px){:root{--shadow-md:0 5px 18px #30343b17;--shadow-lg:0 12px 32px #30343b21}body{font-size:15px}button,input,select,textarea{font-size:1rem}.animation-icon{transform-origin:50%;justify-content:center;align-items:center;animation:1.4s ease-in-out infinite animation-icon-pulse;display:inline-flex}.animation-icon:hover{animation-duration:.7s}@keyframes animation-icon-pulse{0%,to{transform:scale(1)rotate(0)}35%{transform:scale(1.16)rotate(-6deg)}65%{transform:scale(1.08)rotate(5deg)}}}@media (prefers-reduced-motion:reduce){.animation-icon{animation:none}}@media (width<=640px){body{font-size:14px}[class^=icon-]:before,[class*=\ icon-]:before{font-size:1.3em}}*{box-sizing:border-box}.chorale-layout{flex-direction:column;min-height:100vh;display:flex}.chorale-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;height:70px;padding:0 25px;display:flex}.chorale-brand{align-items:center;gap:12px;display:flex}.chorale-brand img{width:auto;height:50px}.chorale-brand span{font-size:24px;font-weight:700}.chorale-saison{align-items:center;gap:6px;display:flex}.chorale-body{flex:1;min-height:0;display:flex}.icon-new:before,.icon-excel:before,.icon-save:before,.icon-edit:before,.icon-delete:before,.icon-cancel:before,.icon-dashboard:before,.icon-saison:before,.icon-chanteurs:before,.icon-chanson:before,.icon-groupe:before,.icon-concert:before,.icon-chanteurSaison:before,.icon-lead_actif:before,.icon-saisonactive:before,.icon-repetition:before,.icon-lieux:before,.icon-pupitre:before,.icon-document:before,.icon-trombi:before,.icon-invitation:before,.icon-votes:before,.icon-inscription:before,.icon-etaterreur:before,.icon-alerte:before,.icon-avertissement:before,.icon-profil:before,.icon-telechargement:before,.icon-referentiels:before{margin-right:6px;display:inline-block}.icon-chanteursaison{align-items:center;gap:.3em;display:inline-flex}.icon-chanteursaison:before{content:"group_add";background-image:url(/chanteursaison.png);background-position:50%;background-repeat:no-repeat;background-size:contain;flex:0 0 1.4em;width:1.4em;height:1.4em;display:inline-block}.icon-lead_actif{align-items:center;gap:.3em;display:inline-flex}.icon-lead_actif:before{flex:0 0 1.4em;width:1.4em;height:1.4em;margin-right:0;display:inline-block;content:""!important}.icon-saisonactive:before{content:"star"}.icon-trombi:before,.icon-document:before{content:"description"}.crud-page-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.crud-action-button{border:1px solid var(--color-border);background:var(--color-surface);min-height:40px;color:var(--color-text-primary);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:600;transition:background .15s,border-color .15s,color .15s,transform .15s,box-shadow .15s;display:inline-flex;box-shadow:0 1px 2px #30343b0a}.crud-action-button:hover{background:var(--color-brand-soft);border-color:var(--color-brand-border);color:var(--color-brand);transform:translateY(-1px);box-shadow:0 4px 10px #7047a614}.crud-action-button:active{transform:translateY(0)}.crud-action-button:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}.crud-export-button{background:var(--color-success-soft);border-color:var(--color-success-border);color:var(--color-success)}.crud-export-button:hover{background:var(--color-success-soft);border-color:var(--color-success-border);color:var(--color-success-strong)}.crud-export-button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.crud-errors{color:red;margin-bottom:10px}.crud-item-page{width:100%}.crud-loading{margin-top:20px}.form-edition{width:100%}.form-edition-title{margin-bottom:20px}.form-edition-field{flex-direction:column;display:flex}.form-edition-field label{margin-bottom:4px}.form-field-error{color:var(--color-danger);margin-top:4px;font-size:12px}.form-edition-actions{gap:10px;margin-top:20px;display:flex}.data-table{width:100%}.data-table-toolbar{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.data-table-search{width:250px;padding:6px}.data-table-page-size{padding:6px}.data-table-table{border-collapse:collapse;background:#fff;width:100%}.data-table-table thead tr{background:var(--color-surface-muted)}.data-table-header{text-align:left;border-bottom:1px solid var(--color-border);cursor:pointer;-webkit-user-select:none;user-select:none;padding:10px}.data-table-actions-header{padding:10px}.data-table-row{border-bottom:1px solid var(--color-surface-muted)}.data-table-cell{padding:10px}.data-table-empty{text-align:center;color:var(--color-text-secondary);padding:20px}.data-table-actions{padding:10px}.data-table-action{margin-right:5px}.data-table-pagination{justify-content:center;gap:5px;margin-top:10px;display:flex}.data-table-page{cursor:pointer;background:var(--color-surface-muted);border:none;padding:5px 10px}.data-table-page.active{background:var(--color-text-primary);color:#fff}.icon-sort-asc:before{content:"arrow_upward";margin-left:5px}.icon-sort-desc:before{content:"arrow_downward";margin-left:5px}.dai-status{text-align:center;width:100%;display:block}.dai-status:before{margin-right:5px}@media (width<=700px){.crud-page-actions{gap:8px;margin-bottom:12px}.crud-action-button{min-height:42px;padding:8px 12px;font-size:12px}.data-table{overflow-x:auto}.data-table-toolbar{flex-wrap:wrap;gap:10px}.data-table-search{width:100%;max-width:250px}.form-edition-actions{flex-wrap:wrap}}.notification-inbox-link{box-sizing:border-box;min-width:44px;min-height:44px;color:var(--color-brand,#7047a6);border-radius:11px;justify-content:center;align-items:center;gap:10px;text-decoration:none;display:inline-flex;position:relative}.notification-inbox-link svg{flex-shrink:0}.notification-inbox-link:hover{background:var(--color-surface-muted,#eeebf4)}.notification-inbox-link:focus-visible{outline-offset:3px;outline:2px solid}.notification-inbox-link-badge{box-sizing:border-box;border:2px solid var(--color-surface,#fff);color:#fff;background:#a62d46;border-radius:12px;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 4px;font-size:.68rem;font-weight:700;line-height:1;display:inline-flex;position:absolute;top:-3px;right:-3px}.chanteur-menu-item.notification-inbox-link{justify-content:flex-start;min-height:44px;text-decoration:none}.chanteur-menu-item.notification-inbox-link .notification-inbox-link-badge{top:1px;right:2px}.dashboard-notification-inbox-link{background:var(--color-surface-muted,#eeebf4);flex:0 0 44px;margin-left:auto}.notification-permission .notification-inbox-link{color:#2856a3;background:#e7efff;flex:0 0 44px}@media (width<=768px){.chanteur-menu-item.notification-inbox-link{justify-content:center}}.icon-chanteursaison:before,.icon-chanteurSaison:before{content:"group_add"!important}.icon-lead_actif:before,.icon-saisonactive:before{content:"star"!important}@media (width<=768px){:root{--shadow-md:0 5px 18px #30343b17;--shadow-lg:0 12px 32px #30343b21}body{font-size:15px}button,input,select,textarea{font-size:1rem}.animation-icon{transform-origin:50%;justify-content:center;align-items:center;animation:1.4s ease-in-out infinite animation-icon-pulse;display:inline-flex}.animation-icon:hover{animation-duration:.7s}@keyframes animation-icon-pulse{0%,to{transform:scale(1)rotate(0)}35%{transform:scale(1.16)rotate(-6deg)}65%{transform:scale(1.08)rotate(5deg)}}}@media (prefers-reduced-motion:reduce){.animation-icon{animation:none}}@media (width<=640px){body{font-size:14px}[class^=icon-]:before,[class*=\ icon-]:before{font-size:1.3em}}html,body,#root{width:100%;min-width:0;max-width:100%;margin:0;overflow-x:hidden}*,:before,:after{box-sizing:border-box}.chanteur-layout{background:var(--chanteur-background,var(--color-surface-soft));width:100%;min-width:0;max-width:100%;min-height:100vh;color:var(--text-primary,var(--color-text-primary));display:flex;overflow-x:hidden}.chanteur-sidebar{background:var(--chanteur-sidebar-background,var(--color-surface));border-right:1px solid var(--border-color,var(--color-border));flex:0 0 250px;width:250px;min-width:0;max-width:250px;min-height:100vh}.chanteur-sidebar-inner{flex-direction:column;width:100%;min-width:0;max-width:100%;height:100vh;padding:22px 14px;display:flex;position:sticky;top:0}.chanteur-content{flex:1 1 0;width:0;min-width:0;max-width:100%;min-height:100vh;overflow-x:hidden}.chanteur-content-inner{width:100%;min-width:0;max-width:100%;min-height:100vh}.chanteur-brand{border-bottom:1px solid var(--border-color,var(--color-surface-muted));align-items:center;gap:12px;margin-bottom:10px;padding:4px 8px 24px;display:flex}.chanteur-brand-icon{background:var(--color-surface-muted);border-radius:12px;flex:0 0 42px;justify-content:center;align-items:center;width:42px;height:42px;font-size:1.1rem;display:flex}.chanteur-brand-text{flex-direction:column;gap:2px;min-width:0;display:flex}.chanteur-brand-text strong{font-size:.95rem;line-height:1.2}.chanteur-brand-text span{color:var(--text-secondary,var(--color-text-muted));font-size:.75rem}.chanteur-menu{flex-direction:column;gap:24px;padding:5px 0;display:flex;overflow-y:auto}.chanteur-menu-section{flex-direction:column;gap:3px;display:flex}.chanteur-menu-section-title{text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);padding:0 11px 7px;font-size:.7rem;font-weight:700}.chanteur-menu-item{width:100%;color:var(--color-text-secondary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:9px;align-items:center;gap:11px;padding:10px 11px;font-size:.9rem;transition:background .15s,color .15s,transform .15s;display:flex;position:relative}.chanteur-menu-item:before{font-size:1rem;line-height:1}.chanteur-menu-item.active:after{content:"";background:var(--color-text-secondary);border-radius:3px;width:3px;position:absolute;top:8px;bottom:8px;left:0}.chanson-card{border:1px solid var(--color-border);background:var(--color-surface);border-radius:8px;margin-bottom:10px;padding:15px}.chanson-row{grid-template-columns:minmax(200px,2fr) minmax(150px,1.5fr) minmax(220px,1.5fr) minmax(150px,1fr);align-items:center;gap:20px;display:grid}.chanson-titre{word-break:keep-all;overflow-wrap:normal;font-size:16px}.chanson-document,.chanson-audio_lead,.chanson-audio{align-items:center;display:flex}.chanson-document a,.chanson-audio_lead a,.chanson-audio a{color:var(--color-brand);text-decoration:none}.chanson-document a:hover,.chanson-audio_lead a:hover,.chanson-audio a:hover{text-decoration:underline}.chanson-pupitre{align-items:center;gap:10px;display:flex}.chanson-pupitre select{border:1px solid var(--color-border-strong);background:var(--color-surface);border-radius:5px;min-width:200px;padding:7px 10px}.chanson-saving{color:var(--color-text-secondary);white-space:nowrap;font-size:13px}@keyframes dashboard-collapse-in{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.rendezvous-type-repet{border-left:4px solid var(--rendezvous-repetition-color,var(--color-text-secondary))}.chanteur-layout{--rendezvous-repetition-color:var(--color-brand);--rendezvous-repetition-bg:var(--color-brand-soft);--rendezvous-repetition-text:var(--color-brand-strong);--rendezvous-concert-color:var(--color-accent);--rendezvous-concert-bg:var(--color-accent-soft);--rendezvous-concert-text:var(--color-accent-strong);--rendezvous-regroup-color:var(--color-regroup);--rendezvous-regroup-bg:var(--color-regroup-soft);--rendezvous-regroup-text:var(--color-regroup-strong)}.concert-participation-label{margin-bottom:8px;display:block}.chanson-lead-icon{justify-content:center;align-items:center;margin:0;padding:0;line-height:1;display:inline-flex}.chanson-lead-icon:before{justify-content:center;align-items:center;line-height:1;display:inline-flex;margin:0!important}.chanteur-brand-icon{background:var(--color-brand-soft);border:1px solid var(--color-brand-border);color:var(--color-brand)}.chanteur-menu-item:hover{background:var(--color-brand-soft);color:var(--color-brand-strong)}.chanteur-menu-item.active{background:var(--color-brand-soft);color:var(--color-brand-strong);font-weight:600}.chanteur-menu-item.active:after{background:var(--color-brand)}.chanteur-menu-item.active:before,.chanteur-menu-item:hover:before{color:var(--color-brand)!important}.chanteur-layout{--rendezvous-repetition-color:var(--color-complement);--rendezvous-repetition-bg:var(--color-complement-soft);--rendezvous-repetition-text:var(--color-complement-strong);--rendezvous-repetition-spe-color:var(--color-warning);--rendezvous-repetition-spe-bg:var(--color-warning-soft);--rendezvous-repetition-spe-label-bg:var(--color-warning-soft);--rendezvous-repetition-spe-border:var(--color-warning-border);--rendezvous-repetition-spe-text:var(--color-warning-strong);--rendezvous-concert-color:var(--color-brand);--rendezvous-concert-bg:var(--color-brand-soft);--rendezvous-concert-text:var(--color-brand-strong);--rendezvous-regroup-color:var(--color-surface-dark);--rendezvous-regroup-bg:var(--color-surface-muted);--rendezvous-regroup-text:var(--color-surface-dark)}.liste_rendezvous_groups{flex-direction:column;gap:1.25rem;display:flex}.liste_rendezvous_group{width:100%}.liste_rendezvous_group_toggle{width:100%;font:inherit;cursor:pointer;background:#30343b0a;border:1px solid #30343b1f;border-radius:10px;justify-content:space-between;align-items:center;padding:.9rem 1.1rem;font-weight:600;transition:background .15s,box-shadow .15s;display:flex}.liste_rendezvous_group_toggle:hover{background:#30343b12}.liste_rendezvous_group_toggle:focus-visible{outline-offset:2px;outline:2px solid}.liste_rendezvous_group_toggle_title{align-items:center;gap:.65rem;display:flex}.liste_rendezvous_group_count{background:#30343b1a;border-radius:999px;justify-content:center;align-items:center;min-width:1.6rem;height:1.6rem;padding:0 .4rem;font-size:.8rem;display:inline-flex}.liste_rendezvous_group_chevron{font-size:.75rem}.liste_rendezvous_group .liste_rendezvous_group_list{margin-top:.75rem}.liste_rendezvous_group_empty{text-align:center;opacity:.65;padding:1rem}.liste_rendezvous_group_list{flex-direction:column;gap:10px;display:flex}.liste_rendezvous_group:last-child .liste_rendezvous_group_toggle{background:var(--color-complement-soft);border-color:var(--color-complement-border);color:var(--color-complement-strong)}.liste_rendezvous_group:last-child .liste_rendezvous_group_toggle:hover{background:var(--color-complement-soft);box-shadow:var(--shadow-sm)}.liste_rendezvous_group:last-child .liste_rendezvous_group_count{background:var(--color-surface);border:1px solid var(--color-complement-border);color:var(--color-complement-strong)}.liste_rendezvous_group:first-child .liste_rendezvous_group_toggle{background:var(--color-surface-muted);color:var(--color-text-secondary)}.dashboard-rendezvous-row.rendezvous-type-repetition_spe,.repetition-card.rendezvous-type-repetition_spe{background:var(--rendezvous-repetition-spe-bg);border-left:4px solid var(--rendezvous-repetition-spe-color);border-right:4px solid var(--rendezvous-repetition-spe-color);box-shadow:var(--shadow-sm)}.rendezvous-type-repetition_spe .dashboard-rendezvous-type-label{background:var(--rendezvous-repetition-spe-label-bg);border:1px solid var(--rendezvous-repetition-spe-border);color:var(--rendezvous-repetition-spe-text);font-weight:700}.rendezvous-type-repetition_spe .dashboard-rendezvous-date-day{color:var(--rendezvous-repetition-spe-text)}.repetition-card.rendezvous-type-repetition_spe{border-left-width:3px;border-right-width:3px}.repetition-card.rendezvous-type-repetition_spe:hover{border-left-color:var(--rendezvous-repetition-spe-color);border-right-color:var(--rendezvous-repetition-spe-color)}.repetition-card.rendezvous-type-repetition_spe .concert-icon{background:var(--rendezvous-repetition-spe-label-bg);border:1px solid var(--rendezvous-repetition-spe-border)}.repetition-card.rendezvous-type-repetition_spe .concert-icon:before{color:var(--rendezvous-repetition-spe-color)!important}.repetition-card.rendezvous-type-repetition_spe .concert-titre{color:var(--rendezvous-repetition-spe-text)}.repetition-card.rendezvous-type-repetition_spe .concert-information-icon{background:var(--rendezvous-repetition-spe-label-bg)}.rendezvous-type-repetition_spe .dashboard-rendezvous-type-label{align-items:center;gap:.45rem;display:inline-flex}.rendezvous-type-repetition_spe .dashboard-rendezvous-type-label .icon-warning{color:var(--rendezvous-repetition-spe-color);font-size:1rem;line-height:1}.rendezvous-type-repetition_spe .rendezvous-lieu-special{border:1px solid var(--rendezvous-repetition-spe-border);border-left:4px solid var(--rendezvous-repetition-spe-color);background:var(--rendezvous-repetition-spe-label-bg);min-width:0;max-width:100%;color:var(--rendezvous-repetition-spe-text);border-radius:10px;padding:.6rem .8rem}.rendezvous-type-repetition_spe .dashboard-rendezvous-info-button.rendezvous-lieu-special{text-align:left;flex-direction:column;align-items:flex-start;gap:.2rem;display:inline-flex}.rendezvous-type-repetition_spe .rendezvous-lieu-special-label{color:var(--rendezvous-repetition-spe-text);letter-spacing:.035em;text-transform:uppercase;opacity:1;font-size:.67rem;font-weight:800;line-height:1.3;display:block}.rendezvous-type-repetition_spe .rendezvous-lieu-special .dashboard-rendezvous-lieu-ville,.rendezvous-type-repetition_spe .rendezvous-lieu-special .concert-information-content strong{color:var(--rendezvous-repetition-spe-text);opacity:1;font-weight:750}.rendezvous-type-repetition_spe .concert-information-map.rendezvous-lieu-special{align-items:center;gap:.65rem;display:flex}.rendezvous-type-repetition_spe .concert-information-map.rendezvous-lieu-special .concert-information-icon{background:var(--color-surface);border:1px solid var(--rendezvous-repetition-spe-border)}.rendezvous-type-repetition_spe .rendezvous-lieu-special:hover{border-color:var(--rendezvous-repetition-spe-color);background:var(--rendezvous-repetition-spe-bg)}.rendezvous-type-repetition_spe .rendezvous-lieu-special:focus-visible{outline:2px solid var(--rendezvous-repetition-spe-color);outline-offset:2px}@media (width<=768px),(orientation:landscape) and (height<=600px) and (pointer:coarse){.chanteur-layout{width:100%;min-width:0;min-height:100vh;display:block}.chanteur-sidebar{box-sizing:border-box;background:var(--color-surface);border-right:0;border-bottom:1px solid var(--color-border);z-index:200;width:100%;min-width:0;max-width:none;height:auto;min-height:0;padding:0;position:sticky;top:0;overflow:visible}.chanteur-sidebar-inner{width:100%;min-width:0;max-width:none;height:auto;min-height:0;padding:0;position:static}.chanteur-menu{box-sizing:border-box;scrollbar-width:none;flex-flow:row;justify-content:center;align-items:stretch;gap:2px;width:100%;min-width:0;padding:6px 4px;display:flex;overflow:auto hidden}.chanteur-menu::-webkit-scrollbar{display:none}.chanteur-menu-section{display:contents}.chanteur-menu-section-title{display:none}.chanteur-menu-item{box-sizing:border-box;text-align:center;border-radius:10px;flex:1 1 0;justify-content:center;align-items:center;width:auto;min-width:0;max-width:48px;height:52px;min-height:52px;padding:0;display:flex}.chanteur-menu-item:before{margin:0;font-size:22px;line-height:1;display:block}.chanteur-menu-label{display:none}.chanteur-content{width:100%;min-width:0;max-width:none;height:auto;min-height:0;margin-left:0}.chanteur-content-inner{box-sizing:border-box;width:100%;min-width:0;max-width:100%;height:auto}}@media (width<=700px){.dashboard-rendezvous-row.rendezvous-type-repetition_spe{border-left-width:3px;border-right-width:3px}.rendezvous-type-repetition_spe .rendezvous-lieu-special{overflow-wrap:anywhere;padding:.5rem .65rem}.rendezvous-type-repetition_spe .concert-information-map.rendezvous-lieu-special{align-items:flex-start}.rendezvous-type-repetition_spe .dashboard-rendezvous-info-button.rendezvous-lieu-special{min-width:0}}.icon-chanteursaison:before,.icon-chanteurSaison:before{content:"group_add"!important}.icon-lead_actif:before,.icon-saisonactive:before{content:"star"!important}@media (width<=768px){:root{--shadow-md:0 5px 18px #30343b17;--shadow-lg:0 12px 32px #30343b21}body{font-size:15px}button,input,select,textarea{font-size:1rem}.animation-icon{transform-origin:50%;justify-content:center;align-items:center;animation:1.4s ease-in-out infinite animation-icon-pulse;display:inline-flex}.animation-icon:hover{animation-duration:.7s}@keyframes animation-icon-pulse{0%,to{transform:scale(1)rotate(0)}35%{transform:scale(1.16)rotate(-6deg)}65%{transform:scale(1.08)rotate(5deg)}}}@media (prefers-reduced-motion:reduce){.animation-icon{animation:none}}@media (width<=640px){body{font-size:14px}[class^=icon-]:before,[class*=\ icon-]:before{font-size:1.3em}}.repetition-participation-popin{border:1px solid var(--color-complement-border)}.repetition-participation-icon{background:var(--color-complement-soft);border:1px solid var(--color-complement-border);color:var(--color-complement-strong)}.repetition-participation-title{color:var(--color-complement-strong)}.repetition-participation-button:hover:not(:disabled){border-color:var(--color-complement);background:var(--color-complement-soft)}@media (width<=480px){.repetition-participation-overlay{padding:15px}.repetition-participation-popin{padding:25px 20px}.repetition-participation-button{width:64px;height:64px;font-size:28px}}.repetition-participation-overlay{z-index:9999;box-sizing:border-box;background:#30343b8c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.repetition-participation-popin{box-sizing:border-box;background:var(--color-surface);text-align:center;border-radius:16px;width:100%;max-width:480px;padding:30px;box-shadow:0 20px 60px #30343b4d}.repetition-participation-header{justify-content:center;align-items:center;gap:15px;margin-bottom:25px;display:flex}.repetition-participation-icon{background:var(--color-surface-muted);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:54px;height:54px;font-size:28px;display:flex}.repetition-participation-eyebrow{text-transform:uppercase;letter-spacing:.05em;opacity:.6;margin-bottom:3px;font-size:13px;font-weight:600}.repetition-participation-title{margin:0;font-size:24px}.repetition-participation-content{flex-direction:column;gap:10px;margin-bottom:28px;display:flex}.repetition-participation-content p{margin:0;line-height:1.5}.repetition-participation-content strong{font-size:18px}.repetition-participation-time{opacity:.75;font-size:14px}.repetition-participation-question{font-weight:600;margin-top:10px!important}.repetition-participation-buttons{justify-content:center;gap:18px;display:flex}.repetition-participation-button{border:2px solid var(--color-border);background:var(--color-surface);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;width:70px;height:70px;padding:0;font-size:32px;transition:transform .15s,box-shadow .15s,border-color .15s,background .15s;display:flex}.repetition-participation-button:hover:not(:disabled){border-color:var(--color-text-muted);transform:translateY(-2px);box-shadow:0 5px 15px #30343b1f}.repetition-participation-button:active:not(:disabled){transform:translateY(0)}.repetition-participation-button:disabled{opacity:.5;cursor:wait}.repetition-participation-saving{opacity:.7;margin-top:18px;font-size:14px}.icon-chanteursaison:before,.icon-chanteurSaison:before{content:"group_add"!important}.icon-lead_actif:before,.icon-saisonactive:before{content:"star"!important}@media (width<=768px){:root{--shadow-md:0 5px 18px #30343b17;--shadow-lg:0 12px 32px #30343b21}body{font-size:15px}button,input,select,textarea{font-size:1rem}.animation-icon{transform-origin:50%;justify-content:center;align-items:center;animation:1.4s ease-in-out infinite animation-icon-pulse;display:inline-flex}.animation-icon:hover{animation-duration:.7s}@keyframes animation-icon-pulse{0%,to{transform:scale(1)rotate(0)}35%{transform:scale(1.16)rotate(-6deg)}65%{transform:scale(1.08)rotate(5deg)}}}@media (prefers-reduced-motion:reduce){.animation-icon{animation:none}}@media (width<=640px){body{font-size:14px}[class^=icon-]:before,[class*=\ icon-]:before{font-size:1.3em}}.participation-buttons{justify-content:center;align-items:center;gap:8px;min-height:34px;display:flex}.participation-buttons>.participation-button{--participation-active-color:#64748b;--participation-selected-bg:#f1f5f9;--participation-selected-border:#94a3b8;--participation-focus:#64748b2e;appearance:none;cursor:pointer;justify-content:center;align-items:center;transition:background-color .16s,border-color .16s,color .16s,transform .16s;display:inline-flex;color:#9ca3af!important;width:30px!important;min-width:30px!important;height:30px!important;min-height:30px!important;box-shadow:none!important;background:0 0!important;border:1px solid #0000!important;border-radius:50%!important;flex:0 0 30px!important;margin:0!important;padding:0!important}.participation-buttons>.participation-button svg{width:20px;height:20px;color:#9ca3af!important;stroke:#9ca3af!important}.participation-buttons>.participation-button:hover:not(:disabled):not(.selected){transform:translateY(-1px);background:#f8fafc!important}.participation-buttons>.participation-button:active:not(:disabled){transform:translateY(0)}.participation-buttons>.participation-button:focus-visible{outline:none;box-shadow:0 0 0 2px var(--participation-focus)!important}.participation-buttons>.participation-button.selected{background:var(--participation-selected-bg)!important;border-color:var(--participation-selected-border)!important;width:30px!important;min-width:30px!important;height:30px!important;min-height:30px!important;color:var(--participation-active-color)!important;box-shadow:none!important;flex-basis:30px!important;transform:none!important}.participation-buttons>.participation-button.selected svg{color:var(--participation-active-color)!important;stroke:var(--participation-active-color)!important}.participation-buttons>.participation-button--yes{--participation-active-color:var(--color-complement-strong);--participation-selected-bg:var(--color-complement-soft);--participation-selected-border:var(--color-complement);--participation-focus:#7da6472e}.participation-buttons>.participation-button--no{--participation-active-color:var(--color-surface-dark);--participation-selected-bg:var(--color-surface-muted);--participation-selected-border:var(--color-border-strong);--participation-focus:#30343b29}.participation-buttons>.participation-button--maybe{--participation-active-color:var(--color-brand-strong);--participation-selected-bg:var(--color-brand-soft);--participation-selected-border:var(--color-brand);--participation-focus:#7047a62e}.participation-buttons>.participation-button:disabled{cursor:not-allowed;opacity:.42;transform:none}.participation-buttons>.participation-button.selected:disabled{opacity:.62}.participation-saving,.repetition-participation-saving{color:#64748b;white-space:nowrap;margin-top:6px;font-size:.72rem}@media (width<=700px){.participation-buttons{gap:7px}.participation-buttons>.participation-button,.participation-buttons>.participation-button.selected{flex-basis:30px!important;width:30px!important;min-width:30px!important;height:30px!important;min-height:30px!important}}.icon-chanteursaison:before,.icon-chanteurSaison:before{content:"group_add"!important}.icon-lead_actif:before,.icon-saisonactive:before{content:"star"!important}@media (width<=768px){:root{--shadow-md:0 5px 18px #30343b17;--shadow-lg:0 12px 32px #30343b21}body{font-size:15px}button,input,select,textarea{font-size:1rem}.animation-icon{transform-origin:50%;justify-content:center;align-items:center;animation:1.4s ease-in-out infinite animation-icon-pulse;display:inline-flex}.animation-icon:hover{animation-duration:.7s}@keyframes animation-icon-pulse{0%,to{transform:scale(1)rotate(0)}35%{transform:scale(1.16)rotate(-6deg)}65%{transform:scale(1.08)rotate(5deg)}}}@media (prefers-reduced-motion:reduce){.animation-icon{animation:none}}@media (width<=640px){body{font-size:14px}[class^=icon-]:before,[class*=\ icon-]:before{font-size:1.3em}}.dashboard-modal-overlay{z-index:1000;background:#30343b80;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dashboard-modal{background:#fff;border-radius:12px;width:min(600px,90%);max-height:80vh;padding:30px;position:relative;overflow-y:auto;box-shadow:0 10px 40px #30343b4d}.dashboard-modal-close{cursor:pointer;background:0 0;border:none;font-size:28px;position:absolute;top:10px;right:15px}.dashboard-modal h3{margin-top:0}.dashboard-modal-lieu{margin-bottom:20px;font-weight:700}.dashboard-modal-description{white-space:pre-wrap}.dashboard-rendezvous-description-button{min-height:38px;color:var(--color-text-primary);cursor:pointer;background:#fff;border:1px solid #30343b1a;border-radius:20px;justify-content:center;align-items:center;gap:7px;padding:8px 14px;font-size:.9rem;font-weight:600;transition:transform .15s,box-shadow .15s,background .15s;display:inline-flex;box-shadow:0 2px 6px #30343b14}.dashboard-rendezvous-description-button .icon{font-size:1rem}.dashboard-rendezvous-description-button:hover{background:var(--color-surface-muted);transform:translateY(-1px);box-shadow:0 4px 10px #30343b1f}.dashboard-rendezvous-description-button:active{transform:scale(.96)}.dashboard-rendezvous-sort{font:inherit;font-weight:inherit;color:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:.35rem;margin:0;padding:0;display:inline-flex}.dashboard-rendezvous-sort:hover{text-decoration:underline}.dashboard-rendezvous-sort-icon{font-size:.7em}.dashboard-rendezvous-filters{align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}.dashboard-rendezvous-filters label{font-weight:600}.dashboard-rendezvous-filters select{border:1px solid var(--color-border-strong);background:#fff;border-radius:6px;padding:.4rem .6rem}.dashboard-rendezvous-header,.dashboard-rendezvous-row{grid-template-columns:1.2fr 1.1fr 1.8fr;align-items:center;column-gap:28px;display:grid}.dashboard-rendezvous-header{padding:0 18px 10px}.dashboard-rendezvous-row{min-height:80px;padding:14px 18px}.dashboard-rendezvous-type-label{background:var(--color-surface-muted);white-space:nowrap;border-radius:20px;align-items:center;padding:7px 13px;display:inline-flex}.dashboard-rendezvous-date-time{opacity:.7;font-size:.9rem}.dashboard-rendezvous-description{justify-content:flex-end;align-items:center;gap:12px;min-width:0;display:flex}.dashboard-rendezvous-lieu{flex:1;align-items:center;gap:12px;min-width:0;display:flex}.dashboard-rendezvous-lieu-info{align-items:center;gap:9px;min-width:0;display:flex}.dashboard-rendezvous-lieu-info>div{flex-direction:column;min-width:0;display:flex}.dashboard-rendezvous-lieu-info strong{white-space:normal}.dashboard-rendezvous-lieu-ville{opacity:.65;font-size:.85rem}.dashboard-rendezvous-info-button{border:1px solid var(--color-border);cursor:pointer;background:#fff;border-radius:20px;flex-shrink:0;padding:8px 15px}.dashboard-rendezvous-info-button:hover{background:var(--color-surface-muted)}.dashboard-rendezvous-participation{flex-shrink:0;font-size:1.25rem}.dashboard-chanteur{width:100%;max-width:1100px;font-family:var(--font-family);color:var(--color-text-primary);margin:0;padding:35px 40px 60px}.dashboard-header{border-bottom:1px solid var(--color-border);align-items:center;gap:18px;margin-bottom:35px;padding-bottom:28px;display:flex}.dashboard-header-icon{background:var(--color-surface-muted);width:58px;height:58px;color:var(--color-text-secondary);border-radius:14px;flex:0 0 58px;justify-content:center;align-items:center;font-size:1.5rem;display:flex}.dashboard-header-content{min-width:0}.dashboard-eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-muted);margin-bottom:4px;font-size:.75rem;font-weight:700}.dashboard-title{font-family:var(--font-family);color:var(--color-text-primary);margin:0;font-size:2rem;font-weight:700;line-height:1.2}.dashboard-subtitle{max-width:680px;color:var(--color-text-secondary);margin:8px 0 0;font-size:.95rem;line-height:1.5}.dashboard-todo,.dashboard-rendezvous{margin:0}.dashboard-section-title{align-items:center;gap:12px;margin:0 0 16px;display:flex}.dashboard-section-title-collapse{cursor:pointer;-webkit-user-select:none;user-select:none}.dashboard-section-title-content{flex:1;justify-content:space-between;align-items:center;gap:20px;display:flex}.dashboard-section-icon{background:var(--color-surface-muted);width:40px;height:40px;color:var(--color-text-secondary);border-radius:11px;flex:0 0 40px;justify-content:center;align-items:center;font-size:1rem;display:flex}.dashboard-section-label{font-family:var(--font-family);color:var(--color-text-primary);font-size:1.25rem;font-weight:700;line-height:1.2;display:block}.dashboard-section-description{color:var(--color-text-muted);margin-top:3px;font-size:.82rem;font-weight:400;display:block}.dashboard-section-chevron{opacity:.6;font-size:24px;line-height:1;transition:transform .2s}.dashboard-section-title-collapse:hover .dashboard-section-chevron{opacity:1}.dashboard-section-collapse-content{animation:.2s dashboard-collapse-in}.dashboard-todo{padding:0}.todo-item{background:var(--background-secondary,var(--color-surface));border:1px solid var(--border-color,var(--color-border));border-radius:10px;grid-template-columns:44px 1fr;gap:15px;margin-bottom:8px;padding:16px;transition:transform .15s,box-shadow .15s;display:grid}.todo-item:hover{transform:translateY(-1px);box-shadow:0 4px 12px #30343b0f}.todo-icon{background:var(--color-surface-muted);border-radius:10px;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.2rem;display:flex}.todo-content{min-width:0}.todo-title{color:var(--text-primary,var(--color-text-primary));margin-bottom:5px;font-size:1rem;font-weight:600}.todo-description{color:var(--text-secondary,var(--color-text-secondary));line-height:1.5}.todo-description .todo-button{margin-left:5px}.todo-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.todo-button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:7px;align-items:center;gap:6px;padding:5px 9px;text-decoration:none;display:inline-flex}.todo-button-secondary{border:1px solid var(--border-color,var(--color-border));background:var(--background-secondary,var(--color-surface));color:var(--text-secondary,var(--color-text-secondary));padding:7px 11px;transition:background .15s,border-color .15s,color .15s}.todo-button:disabled{opacity:.6;cursor:default}.todo-dai{border-left:4px solid var(--color-danger-border)}.todo-dai .todo-icon{background:var(--color-danger-soft)}.todo-pupitre{border-left:4px solid var(--color-warning-border)}.todo-pupitre .todo-icon{background:var(--color-warning-soft)}.todo-empty{background:var(--color-surface-soft);border:1px dashed var(--color-border);color:var(--color-text-secondary);border-radius:9px;align-items:center;gap:10px;padding:14px 16px;font-size:.9rem;display:flex}.todo-empty .icon{font-size:1.1rem}.dashboard-rendezvous{border-top:1px solid var(--color-border);margin-top:42px;padding-top:30px}.dashboard-rendezvous-list{width:100%}.dashboard-rendezvous-header,.dashboard-rendezvous-row{grid-template-columns:minmax(150px,220px) minmax(160px,220px) 1fr;gap:20px;display:grid}.dashboard-rendezvous-header{text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary,var(--color-text-secondary));padding:10px 16px;font-size:.8rem;font-weight:600}.dashboard-rendezvous-row{background:var(--background-secondary,var(--color-surface));border:1px solid var(--border-color,var(--color-border));border-radius:10px;align-items:center;margin-bottom:6px;padding:14px 16px;transition:transform .15s,box-shadow .15s}.dashboard-rendezvous-row:hover{transform:translateY(-1px);box-shadow:0 4px 12px #30343b0f}.dashboard-rendezvous-type{min-width:0}.dashboard-rendezvous-type-label{border-radius:999px;align-items:center;padding:5px 10px;font-size:.85rem;font-weight:600;display:inline-flex}.dashboard-rendezvous-date{flex-direction:column;gap:2px;display:flex}.dashboard-rendezvous-date-day{font-weight:600}.dashboard-rendezvous-date-time{color:var(--text-secondary,var(--color-text-secondary));font-size:.85rem}.dashboard-rendezvous-description{overflow-wrap:anywhere;min-width:0;color:var(--text-primary,var(--color-text-primary))}.rendezvous-type-repet .dashboard-rendezvous-type-label{background:var(--rendezvous-repetition-bg);color:var(--rendezvous-repetition-text)}.rendezvous-type-repet,.rendezvous-type-concert,.rendezvous-type-regroup{border-left-width:4px;border-right-width:4px}.rendezvous-type-repet{border-left-color:var(--rendezvous-repetition-color);border-right-color:var(--rendezvous-repetition-color)}.rendezvous-type-concert{border-left-color:var(--rendezvous-concert-color);border-right-color:var(--rendezvous-concert-color)}.rendezvous-type-regroup{border-left-color:var(--color-regroup);border-right-color:var(--color-regroup)}.rendezvous-type-concert{border-left:4px solid var(--rendezvous-concert-color,var(--color-accent))}.rendezvous-type-concert .dashboard-rendezvous-type-label{background:var(--rendezvous-concert-bg);color:var(--rendezvous-concert-text)}.rendezvous-type-regroup .dashboard-rendezvous-type-label{background:var(--rendezvous-regroup-bg);color:var(--rendezvous-regroup-text)}.dashboard-rendezvous-loading,.dashboard-rendezvous-empty{color:var(--text-secondary,var(--color-text-secondary));border:1px dashed var(--border-color,var(--color-border));border-radius:10px;justify-content:center;align-items:center;gap:10px;padding:25px;display:flex}.dashboard-loading,.dashboard-error{min-height:200px;font-family:var(--font-family);color:var(--color-text-secondary);justify-content:center;align-items:center;padding:30px;display:flex}.dashboard-chanteur button{font-family:inherit}.dashboard-rendezvous-participation-actions{flex:none;justify-content:flex-end;align-items:center;display:flex}.dashboard-rendezvous-participation-actions .participation-buttons{flex:none}.dashboard-header-icon{background:var(--color-brand-soft);border:1px solid var(--color-brand-border);color:var(--color-brand)}.dashboard-header-icon [class^=icon-]:before,.dashboard-header-icon [class*=\ icon-]:before{color:var(--color-brand)!important}.dashboard-eyebrow{color:var(--color-brand-strong)}.dashboard-section-label{color:var(--color-brand)}.dashboard-todo .dashboard-section-icon{background:var(--color-complement-soft);border:1px solid var(--color-complement-border)}.dashboard-todo .dashboard-section-icon [class^=icon-]:before,.dashboard-todo .dashboard-section-icon [class*=\ icon-]:before{color:var(--color-complement-strong)!important}.dashboard-rendezvous .dashboard-section-icon{background:var(--color-brand-soft);border:1px solid var(--color-brand-border)}.dashboard-rendezvous .dashboard-section-icon [class^=icon-]:before,.dashboard-rendezvous .dashboard-section-icon [class*=\ icon-]:before{color:var(--color-brand)!important}.todo-item{background:var(--color-surface);border-color:var(--color-border);border-left:4px solid var(--color-complement);box-shadow:var(--shadow-sm)}.todo-item:hover{box-shadow:var(--shadow-md)}.todo-icon{background:var(--color-complement-soft);border:1px solid var(--color-complement-border)}.todo-icon [class^=icon-]:before,.todo-icon [class*=\ icon-]:before{color:var(--color-complement-strong)!important}.todo-title{color:var(--color-text-primary);font-weight:700}.todo-description .todo-button{color:var(--color-brand-strong);background:var(--color-brand-soft)}.todo-description .todo-button:hover{background:var(--color-brand-border)}.todo-description .todo-button [class^=icon-]:before,.todo-description .todo-button [class*=\ icon-]:before{color:var(--color-brand)!important}.todo-button-secondary{background:var(--color-surface);border-color:var(--color-border-strong);color:var(--color-text-secondary)}.todo-button-secondary:hover:not(:disabled){background:var(--color-complement-soft);border-color:var(--color-complement-border);color:var(--color-text-primary)}.todo-button-secondary [class^=icon-]:before,.todo-button-secondary [class*=\ icon-]:before{color:var(--color-text-secondary)!important}.todo-empty{background:var(--color-complement-soft);border-color:var(--color-complement-border);color:var(--color-complement-strong)}.todo-empty [class^=icon-]:before,.todo-empty [class*=\ icon-]:before{color:var(--color-complement-strong)!important}.dashboard-rendezvous-filters select{background:var(--color-surface);color:var(--color-text-primary)}.dashboard-rendezvous-filters select:focus{border-color:var(--color-brand);outline:2px solid var(--color-brand-soft);outline-offset:1px}.dashboard-rendezvous-row{background:var(--color-surface);box-shadow:var(--shadow-sm)}.dashboard-rendezvous-row:hover{box-shadow:var(--shadow-md)}.dashboard-rendezvous-type-label{border:1px solid #0000}.dashboard-rendezvous-info-button{color:var(--color-text-primary);background:var(--color-surface)}.dashboard-rendezvous-info-button:hover{background:var(--color-brand-soft);border-color:var(--color-brand-border)}.rendezvous-type-concert{background:var(--color-surface);border-left:4px solid var(--color-brand);border-right:4px solid var(--color-brand)}.rendezvous-type-concert .dashboard-rendezvous-type-label{background:var(--color-brand-soft);border-color:var(--color-brand-border);color:var(--color-brand-strong)}.rendezvous-type-concert .dashboard-rendezvous-date-day{color:var(--color-brand-strong)}.rendezvous-type-repet{background:var(--color-surface);border-left:4px solid var(--color-complement);border-right:4px solid var(--color-complement)}.rendezvous-type-repet .dashboard-rendezvous-type-label{background:var(--color-complement-soft);border-color:var(--color-complement-border);color:var(--color-complement-strong)}.rendezvous-type-repet .dashboard-rendezvous-date-day{color:var(--color-complement-strong)}.rendezvous-type-regroup{background:var(--color-surface);border-left:4px solid var(--color-surface-dark);border-right:4px solid var(--color-surface-dark)}.rendezvous-type-regroup .dashboard-rendezvous-type-label{background:var(--color-surface-muted);border-color:var(--color-border-strong);color:var(--color-surface-dark)}.rendezvous-type-regroup .dashboard-rendezvous-date-day{color:var(--color-surface-dark)}.dashboard-rendezvous-participation-actions .participation-button--yes{background:var(--color-complement-soft)!important;border-color:var(--color-complement-border)!important;color:var(--color-complement-strong)!important}.dashboard-rendezvous-participation-actions .participation-button--no{background:var(--color-surface-muted)!important;border-color:var(--color-border-strong)!important;color:var(--color-surface-dark)!important}.dashboard-rendezvous-participation-actions .participation-button--maybe{background:var(--color-brand-soft)!important;border-color:var(--color-brand-border)!important;color:var(--color-brand-strong)!important}.dashboard-modal{border:1px solid var(--color-brand-border)}.dashboard-modal h3{color:var(--color-brand-strong)}.dashboard-modal-close{color:var(--color-surface-dark)}.dashboard-modal-map-button{color:var(--color-brand-strong);background:var(--color-brand-soft);border-color:var(--color-brand-border)}.dashboard-todo .todo-item{background:var(--color-surface)}.dashboard-todo .todo-item:hover{border-color:var(--color-complement-border)}.dashboard-todo .todo-description{color:var(--color-text-secondary)}.dashboard-todo .todo-description .todo-button{color:var(--color-brand-strong);background:var(--color-brand-soft)}.dashboard-todo .todo-description .todo-button:hover{background:var(--color-brand-border)}@media (width<=600px){.dashboard-rendezvous-description-button{min-width:40px;min-height:40px;padding:9px 13px;font-size:.85rem}}@media (width<=700px){.dashboard-chanteur{box-sizing:border-box;width:100%;max-width:none;padding:24px 16px 40px}.dashboard-header{align-items:flex-start;gap:12px;margin-bottom:25px;padding-bottom:20px}.dashboard-header-icon{border-radius:11px;flex-basis:46px;width:46px;height:46px;font-size:1.2rem}.dashboard-eyebrow{font-size:.68rem}.dashboard-title{font-size:1.55rem}.dashboard-subtitle{font-size:.85rem}.todo-item{grid-template-columns:38px 1fr;gap:11px;padding:13px}.todo-icon{border-radius:9px;width:38px;height:38px;font-size:1rem}.todo-title{font-size:.92rem}.todo-description{font-size:.85rem}.dashboard-rendezvous{margin-top:32px;padding-top:24px}.dashboard-rendezvous-header{display:none}.dashboard-rendezvous-row{flex-direction:column;align-items:stretch;gap:8px;padding:13px;display:flex}.dashboard-rendezvous-type{order:1}.dashboard-rendezvous-date{order:2}.dashboard-rendezvous-description{order:3;font-size:.9rem}}@media (width<=600px){.dashboard-rendezvous-participation-actions{margin-left:auto}}@media (width<=700px){.dashboard-rendezvous-row{box-sizing:border-box}.rendezvous-type-concert,.rendezvous-type-repet,.rendezvous-type-regroup{border-left-width:3px;border-right-width:3px}.dashboard-rendezvous-type-label{align-self:flex-start}.todo-item{border-left-width:3px}}.chanteur-avatar,.crud-item-header-icon.chanteur-avatar,.dashboard-header-icon.chanteur-avatar{width:var(--chanteur-avatar-size,64px);height:var(--chanteur-avatar-size,64px);min-width:var(--chanteur-avatar-size,64px);flex:0 0 var(--chanteur-avatar-size,64px);box-sizing:border-box;border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex;overflow:hidden}.chanteur-avatar .chanteur-avatar__image{object-fit:cover;object-position:center;width:100%;height:100%;display:block}.chanteur-avatar__fallback{justify-content:center;align-items:center;font-size:1.8rem;line-height:1;display:inline-flex}.notification-permission{color:#243247;background:#f8fafc;border:1px solid #d9e2ec;border-radius:12px;align-items:flex-start;gap:14px;margin:0 0 20px;padding:16px;display:flex}.notification-permission-icon{color:#2856a3;background:#e7efff;border-radius:12px;flex:0 0 42px;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.notification-permission-content{flex:1;min-width:0}.notification-permission-title{color:inherit;margin:0 0 6px;font-size:1rem;font-weight:700}.notification-permission-text,.notification-permission-status,.notification-permission-error{margin:0;font-size:.9rem;line-height:1.45}.notification-permission-status--granted{color:#176537;font-weight:600}.notification-permission-error{color:#a51f2a;margin-top:8px}.notification-permission-button{color:#fff;font:inherit;cursor:pointer;background:#2856a3;border:0;border-radius:8px;margin-top:12px;padding:9px 14px;font-size:.9rem;font-weight:600}.notification-permission-button:hover:not(:disabled){background:#1d417d}.notification-permission-button:focus-visible{outline-offset:3px;outline:2px solid #2856a3}.notification-permission-button:disabled{opacity:.6;cursor:wait}@media (width<=600px){.notification-permission{gap:10px;padding:12px}.notification-permission-icon{flex-basis:36px;width:36px;height:36px}}.icon-chanteursaison:before,.icon-chanteurSaison:before{content:"group_add"!important}.icon-lead_actif:before,.icon-saisonactive:before{content:"star"!important}@media (width<=768px){:root{--shadow-md:0 5px 18px #30343b17;--shadow-lg:0 12px 32px #30343b21}body{font-size:15px}button,input,select,textarea{font-size:1rem}.animation-icon{transform-origin:50%;justify-content:center;align-items:center;animation:1.4s ease-in-out infinite animation-icon-pulse;display:inline-flex}.animation-icon:hover{animation-duration:.7s}@keyframes animation-icon-pulse{0%,to{transform:scale(1)rotate(0)}35%{transform:scale(1.16)rotate(-6deg)}65%{transform:scale(1.08)rotate(5deg)}}}@media (prefers-reduced-motion:reduce){.animation-icon{animation:none}}@media (width<=640px){body{font-size:14px}[class^=icon-]:before,[class*=\ icon-]:before{font-size:1.3em}}.accueil{background:var(--chanteur-background,var(--color-surface-soft));box-sizing:border-box;min-height:100vh;color:var(--color-text-primary);justify-content:center;padding:60px 20px;display:flex}.accueil-container{width:100%;max-width:850px}.accueil-header{text-align:center;margin-bottom:40px}.accueil-logo{justify-content:center;align-items:center;width:110px;height:110px;margin:0 auto 18px;display:flex}.accueil-logo img{object-fit:contain;width:100%;height:100%;display:block}.accueil-header h1{letter-spacing:-.5px;margin:0;font-size:36px;font-weight:700}.accueil-subtitle{color:var(--color-text-secondary);margin:8px 0 0;font-size:17px}.accueil-card{background:#fff;border-radius:18px;padding:38px 42px;box-shadow:0 8px 30px #30343b12}.accueil-card h2,.accueil-access h2{margin:0 0 14px;font-size:24px;font-weight:650}.accueil-card>p{color:var(--color-text-secondary);margin:0 0 10px;font-size:16px;line-height:1.6}.accueil-features{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:32px;display:grid}.accueil-feature{background:var(--color-surface-soft);border:1px solid var(--color-border);border-radius:14px;gap:15px;padding:20px;display:flex}.accueil-feature-icon{width:42px;height:42px;color:var(--chanteur-primary,var(--color-brand));background:#7047a61a;border-radius:12px;flex:0 0 42px;justify-content:center;align-items:center;font-size:20px;display:flex}.accueil-feature h3{color:var(--color-text-primary);margin:0 0 5px;font-size:16px;font-weight:650}.accueil-feature p{color:var(--color-text-secondary);margin:0;font-size:14px;line-height:1.45}.accueil-access{text-align:center;background:#7047a612;border:1px solid #7047a61f;border-radius:18px;margin-top:22px;padding:28px 32px}.accueil-access h2{font-size:20px}.accueil-access p{color:var(--color-text-secondary);margin:5px 0;line-height:1.5}.accueil-access-info{font-size:14px;color:var(--color-text-muted)!important}.accueil-footer{color:var(--color-text-muted);justify-content:center;align-items:center;gap:9px;margin-top:30px;font-size:13px;display:flex}.accueil-footer strong{color:var(--color-text-secondary)}@media (width<=700px){.accueil{padding:35px 15px}.accueil-header{margin-bottom:28px}.accueil-header h1{font-size:30px}.accueil-subtitle{font-size:15px}.accueil-card{padding:28px 22px}.accueil-features{grid-template-columns:1fr}.accueil-access{padding:25px 20px}.accueil-footer{text-align:center;flex-wrap:wrap}}.icon-chanteursaison:before,.icon-chanteurSaison:before{content:"group_add"!important}.icon-lead_actif:before,.icon-saisonactive:before{content:"star"!important}@media (width<=768px){:root{--shadow-md:0 5px 18px #30343b17;--shadow-lg:0 12px 32px #30343b21}body{font-size:15px}button,input,select,textarea{font-size:1rem}.animation-icon{transform-origin:50%;justify-content:center;align-items:center;animation:1.4s ease-in-out infinite animation-icon-pulse;display:inline-flex}.animation-icon:hover{animation-duration:.7s}@keyframes animation-icon-pulse{0%,to{transform:scale(1)rotate(0)}35%{transform:scale(1.16)rotate(-6deg)}65%{transform:scale(1.08)rotate(5deg)}}}@media (prefers-reduced-motion:reduce){.animation-icon{animation:none}}@media (width<=640px){body{font-size:14px}[class^=icon-]:before,[class*=\ icon-]:before{font-size:1.3em}}.public-page{background:var(--color-surface-muted);min-height:100vh;padding:30px 20px}.public-container{width:100%;max-width:900px;margin:0 auto}.public-header{align-items:center;gap:20px;margin-bottom:30px;padding:10px 5px;display:flex}.public-logo{flex-shrink:0;text-decoration:none;display:block}.public-logo img{object-fit:contain;width:90px;height:90px;display:block}.public-header-content{flex-direction:column;justify-content:center;display:flex}.public-header h1{margin:0 0 6px;font-size:2rem;line-height:1.2}.public-subtitle{color:var(--color-text-secondary);margin:0;font-size:1rem}.public-footer{color:var(--color-text-secondary);text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin-top:30px;padding:20px 10px;font-size:.9rem;display:flex}.public-footer a{color:var(--color-text-secondary);text-decoration:none}.public-footer a:hover{text-decoration:underline}@media (width<=600px){.public-page{padding:20px 12px}.public-header{gap:12px;margin-bottom:20px;padding:5px 0}.public-logo img{width:65px;height:65px}.public-header h1{margin-bottom:4px;font-size:1.35rem}.public-subtitle{font-size:.9rem;line-height:1.3}.public-footer{flex-direction:column;gap:5px;padding:15px 5px}}@media (width<=380px){.public-header{gap:10px}.public-logo img{width:55px;height:55px}.public-header h1{font-size:1.15rem}.public-subtitle{font-size:.8rem}}.icon-chanteursaison:before,.icon-chanteurSaison:before{content:"group_add"!important}.icon-lead_actif:before,.icon-saisonactive:before{content:"star"!important}@media (width<=768px){:root{--shadow-md:0 5px 18px #30343b17;--shadow-lg:0 12px 32px #30343b21}body{font-size:15px}button,input,select,textarea{font-size:1rem}.animation-icon{transform-origin:50%;justify-content:center;align-items:center;animation:1.4s ease-in-out infinite animation-icon-pulse;display:inline-flex}.animation-icon:hover{animation-duration:.7s}@keyframes animation-icon-pulse{0%,to{transform:scale(1)rotate(0)}35%{transform:scale(1.16)rotate(-6deg)}65%{transform:scale(1.08)rotate(5deg)}}}@media (prefers-reduced-motion:reduce){.animation-icon{animation:none}}@media (width<=640px){body{font-size:14px}[class^=icon-]:before,[class*=\ icon-]:before{font-size:1.3em}}.data-table{width:100%;min-width:0}.data-table-cell-nowrap{white-space:nowrap}.data-table-cell-no-word-break{overflow-wrap:normal!important;word-break:normal!important;-webkit-hyphens:none!important;hyphens:none!important}.data-table-toolbar{justify-content:space-between;align-items:center;gap:14px;margin-bottom:18px;display:flex}.data-table-search-wrapper{flex:1;min-width:180px;position:relative}.data-table-search{border:1px solid var(--border-color,var(--color-border));background:var(--surface-color,var(--color-surface));width:100%;height:42px;color:var(--text-color,var(--color-text-primary));box-sizing:border-box;border-radius:12px;outline:none;padding:0 42px;font-size:14px;transition:border-color .2s,box-shadow .2s,background .2s}.data-table-search::placeholder{color:var(--color-text-muted)}.data-table-search:focus{border-color:var(--color-brand);box-shadow:0 0 0 3px #7047a61a}.data-table-search-icon{pointer-events:none;opacity:.65;font-size:15px;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.data-table-search-clear{background:var(--color-surface-muted);width:26px;height:26px;color:var(--color-text-secondary);cursor:pointer;border:0;border-radius:50%;font-size:17px;line-height:1;position:absolute;top:50%;right:9px;transform:translateY(-50%)}.data-table-page-size{border:1px solid var(--border-color,var(--color-border));background:var(--surface-color,var(--color-surface));height:42px;color:var(--text-color,var(--color-text-primary));cursor:pointer;border-radius:12px;outline:none;padding:0 34px 0 12px;font-size:14px}.data-table-container{border:1px solid var(--border-color,var(--color-border));background:var(--color-surface);isolation:isolate;border-radius:16px;width:100%;max-height:70vh;position:relative;overflow:auto;box-shadow:0 2px 10px #30343b0a}.data-table-table{border-collapse:separate;border-spacing:0;width:100%;font-size:14px}.data-table-table thead{z-index:20;background:var(--color-surface-soft);position:sticky;top:0}.data-table-table thead th{z-index:21;background:var(--color-surface-soft);position:sticky;top:0}.data-table-table thead th:first-child{z-index:30;top:0;left:0}.data-table-table th:first-child,.data-table-table td:first-child{box-shadow:2px 0 4px #30343b0f}.data-table-header{border-bottom:1px solid var(--color-border);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;text-align:left;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--color-surface-soft);padding:13px 16px;font-size:12px;font-weight:700}.data-table-header:hover{color:var(--color-brand);background:var(--color-surface-muted)}.data-table-header-content{align-items:center;gap:7px;display:inline-flex}.data-table-table th:first-child,.data-table-table td:first-child{z-index:10;position:sticky;left:0}.data-table-table thead th:first-child{z-index:30;background:var(--color-surface-soft);left:0}.data-table-table tbody td:first-child{background:var(--color-surface)}.data-table-row:hover td:first-child{background:var(--color-surface-soft)}.data-table-sort{width:7px;height:11px;display:inline-block;position:relative}.data-table-sort:before,.data-table-sort:after{content:"";border-left:4px solid #0000;border-right:4px solid #0000;width:0;height:0;position:absolute;left:0}.data-table-sort:before{border-bottom:4px solid var(--color-text-muted);top:0}.data-table-sort:after{border-top:4px solid var(--color-text-muted);bottom:0}.data-table-sort-asc:before{border-bottom-color:var(--color-brand)}.data-table-sort-desc:after{border-top-color:var(--color-brand)}.data-table-row{transition:background .15s,transform .15s}.data-table-row:hover{background:var(--color-surface-soft)}.data-table-row:not(:last-child) .data-table-cell{border-bottom:1px solid var(--color-surface-muted)}.data-table-cell{color:var(--color-text-primary);vertical-align:middle;background:var(--color-surface);overflow-wrap:anywhere;word-break:break-word;padding:14px 16px}.data-table-row:hover .data-table-cell{background:var(--color-surface-soft)}.data-table-row-draggable{cursor:grab}.data-table-row-draggable:active{cursor:grabbing;opacity:.65}.data-table-value{align-items:center;max-width:100%;display:inline-flex}.data-table-actions-header{border-bottom:1px solid var(--color-border);width:1%;color:var(--color-text-secondary);text-transform:uppercase;white-space:nowrap;text-align:right;background:var(--color-surface-soft);padding:13px 12px;font-size:12px;font-weight:700}.data-table-actions-cell{text-align:right;white-space:nowrap;padding-left:8px;padding-right:8px}.data-table-actions{justify-content:flex-end;align-items:center;gap:5px;display:flex}.data-table-action{border:1px solid var(--color-border);background:var(--color-surface);min-width:0;min-height:34px;color:var(--color-text-primary);cursor:pointer;border-radius:9px;justify-content:center;align-items:center;gap:3px;padding:6px 8px;font-size:13px;font-weight:600;transition:background .15s,border-color .15s,color .15s,transform .15s;display:inline-flex}.data-table-action-icon:empty,.data-table-action-label:empty{display:none}.data-table-action:has(.data-table-action-label:empty){width:34px;min-width:34px;height:34px;min-height:34px;padding:0}.data-table-action:has(.data-table-action-label:not(:empty)){width:auto;min-width:0;padding-left:8px;padding-right:8px}.data-table-action:before{flex:none;margin:0}.data-table-action:hover{background:var(--color-surface-soft);border-color:var(--color-border-strong);color:var(--color-brand);transform:translateY(-1px)}.data-table-action-icon{flex:none;justify-content:center;align-items:center;margin:0;padding:0;font-size:16px;line-height:1;display:inline-flex}.data-table-action-label{white-space:nowrap;margin:0;padding:0;line-height:1}.data-table-empty{text-align:center;padding:50px 20px!important}.data-table-empty-content{color:var(--color-text-secondary);flex-direction:column;align-items:center;gap:7px;display:flex}.data-table-empty-content>span{opacity:.6;font-size:28px}.data-table-empty-content strong{color:var(--color-text-primary);font-size:15px}.data-table-empty-content small{color:var(--color-text-muted);font-size:13px}.data-table-pagination{justify-content:center;align-items:center;gap:5px;margin-top:18px;display:flex}.data-table-page{border:1px solid var(--color-border);background:var(--color-surface);min-width:36px;height:36px;color:var(--color-text-secondary);cursor:pointer;border-radius:9px;padding:0 10px;font-size:13px;font-weight:600;transition:background .15s,color .15s,border-color .15s}.data-table-page:hover:not(:disabled){border-color:var(--color-brand-border);background:var(--color-brand-soft);color:var(--color-brand)}.data-table-page.active{border-color:var(--color-brand);background:var(--color-brand);color:var(--color-surface)}.data-table-page:disabled{opacity:.35;cursor:not-allowed}.data-table-page-navigation{font-size:20px}.data-table-nowrap{white-space:nowrap}@media (width<=900px){.data-table-header,.data-table-cell{padding-left:12px;padding-right:12px}.data-table-action{gap:3px;padding:5px 7px}.data-table-action:has(.data-table-action-label:empty){width:34px;min-width:34px;height:34px;min-height:34px;padding:0}}@media (width<=700px){.data-table-toolbar{flex-direction:column-reverse;align-items:stretch;gap:10px;margin-bottom:14px}.data-table-page-size,.data-table-search-wrapper{width:100%}.data-table-container{-webkit-overflow-scrolling:touch;border-radius:14px;max-height:65vh;overflow:auto}.data-table-table{width:100%;font-size:13px}.data-table-table thead,.data-table-table thead th{z-index:20;position:sticky;top:0}.data-table-header{letter-spacing:.03em;background:var(--color-surface-soft);padding:11px 12px;font-size:10px}.data-table-header-content{gap:5px}.data-table-cell{overflow-wrap:anywhere;word-break:break-word;padding:12px;font-size:13px}.data-table-actions-cell{padding-left:6px;padding-right:6px}.data-table-actions{gap:4px}.data-table-action-label{display:none!important}.data-table-action{justify-content:center;align-items:center;gap:0!important;width:36px!important;min-width:36px!important;height:36px!important;min-height:36px!important;padding:0!important;display:inline-flex!important}.data-table-action-icon{justify-content:center;align-items:center;margin:0;padding:0;font-size:18px;line-height:1;display:inline-flex}.data-table-action:before{margin:0!important}.data-table-actions-header{padding:11px 8px;font-size:10px}.data-table-pagination{justify-content:flex-start;gap:4px;margin-top:14px;padding:2px;overflow-x:auto}.data-table-page{flex:none;min-width:34px;height:34px}}@media (width<=400px){.data-table-header{padding-left:10px;padding-right:10px;font-size:9px}.data-table-cell{padding-left:10px;padding-right:10px;font-size:12px}.data-table-action{width:34px!important;min-width:34px!important;height:34px!important;min-height:34px!important}.data-table-actions-cell{padding-left:4px;padding-right:4px}}.icon-chanteursaison:before,.icon-chanteurSaison:before{content:"group_add"!important}.icon-lead_actif:before,.icon-saisonactive:before{content:"star"!important}@media (width<=768px){:root{--shadow-md:0 5px 18px #30343b17;--shadow-lg:0 12px 32px #30343b21}body{font-size:15px}button,input,select,textarea{font-size:1rem}.animation-icon{transform-origin:50%;justify-content:center;align-items:center;animation:1.4s ease-in-out infinite animation-icon-pulse;display:inline-flex}.animation-icon:hover{animation-duration:.7s}@keyframes animation-icon-pulse{0%,to{transform:scale(1)rotate(0)}35%{transform:scale(1.16)rotate(-6deg)}65%{transform:scale(1.08)rotate(5deg)}}}@media (prefers-reduced-motion:reduce){.animation-icon{animation:none}}@media (width<=640px){body{font-size:14px}[class^=icon-]:before,[class*=\ icon-]:before{font-size:1.3em}}.form-edition{box-sizing:border-box;width:100%}.form-edition-header{border-bottom:1px solid var(--color-border);align-items:center;gap:14px;margin-bottom:28px;padding-bottom:20px;display:flex}.form-edition-header-icon{background:var(--color-surface-muted);width:44px;height:44px;color:var(--color-text-secondary);border-radius:11px;flex:0 0 44px;justify-content:center;align-items:center;font-size:1.1rem;display:flex}.form-edition-header-content{min-width:0}.form-edition-title{font-family:var(--font-family);color:var(--color-text-primary);margin:0;font-size:1.35rem;font-weight:700;line-height:1.2}.form-edition-subtitle{color:var(--color-text-muted);margin:5px 0 0;font-size:.85rem;line-height:1.4}.form-edition-fields{flex-direction:column;gap:20px;display:flex}.form-edition-field{flex-direction:column;gap:7px;min-width:0;display:flex}.form-edition-field>label{color:var(--color-text-primary);font-size:.85rem;font-weight:600;display:block}.form-edition-readonly{box-sizing:border-box;border:1px solid var(--color-border);background:var(--color-surface-soft);min-height:38px;color:var(--color-text-secondary);border-radius:7px;align-items:center;padding:8px 11px;font-size:.9rem;display:flex}.form-field-error{color:var(--color-danger);margin-top:1px;font-size:.8rem;line-height:1.4}.form-edition-actions{border-top:1px solid var(--color-border);justify-content:flex-end;align-items:center;gap:10px;margin-top:30px;padding-top:20px;display:flex}.form-edition-actions button{border:1px solid var(--color-border);background:var(--color-surface-muted);min-height:40px;color:var(--color-text-primary);font:inherit;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:8px 16px;font-size:.88rem;font-weight:600;transition:background .15s,border-color .15s,transform .15s;display:inline-flex}.form-edition-actions button:hover{background:var(--color-surface-muted);border-color:var(--color-border-strong);transform:translateY(-1px)}.form-edition-actions button:active{transform:translateY(0)}.form-edition-field input,.form-edition-field select,.form-edition-field textarea{box-sizing:border-box;border:1px solid var(--color-border);background:var(--color-surface);width:100%;max-width:100%;color:var(--color-text-primary);font:inherit;border-radius:7px;outline:none;padding:9px 11px;font-size:.9rem;transition:border-color .15s,box-shadow .15s,background .15s}.form-edition-field textarea{resize:vertical;min-height:110px}.form-edition-header-icon{background:var(--color-brand-soft);border:1px solid var(--color-brand-border);color:var(--color-brand)}.form-edition-header-icon [class^=icon-]:before,.form-edition-header-icon [class*=\ icon-]:before,.form-edition-header-icon[class^=icon-]:before,.form-edition-header-icon[class*=\ icon-]:before{color:var(--color-brand)!important}.form-edition-title{color:var(--color-brand-strong)}.form-edition-field input:focus,.form-edition-field select:focus,.form-edition-field textarea:focus{border-color:var(--color-brand);box-shadow:0 0 0 3px var(--color-brand-soft)}.form-edition-readonly{border-color:var(--color-brand-border)}.form-edition-actions button:last-child{background:var(--color-brand);border-color:var(--color-brand);color:#fff}.form-edition-actions button:last-child:hover{background:var(--color-brand-strong);border-color:var(--color-brand-strong)}@media (width<=700px){.form-edition{width:100%}.form-edition-header{align-items:flex-start;gap:11px;margin-bottom:22px;padding-bottom:17px}.form-edition-header-icon{border-radius:10px;flex-basis:40px;width:40px;height:40px;font-size:1rem}.form-edition-title{font-size:1.2rem}.form-edition-subtitle{font-size:.8rem}.form-edition-fields{gap:16px}.form-edition-field{gap:6px}.form-edition-field>label{font-size:.82rem}.form-edition-field input,.form-edition-field select,.form-edition-field textarea{padding:9px 10px;font-size:.88rem}.form-edition-readonly{min-height:38px;padding:8px 10px;font-size:.86rem}.form-edition-actions{justify-content:stretch;margin-top:24px;padding-top:17px}.form-edition-actions button{width:100%;min-height:42px;padding:9px 14px}}.icon-chanteursaison:before,.icon-chanteurSaison:before{content:"group_add"!important}.icon-lead_actif:before,.icon-saisonactive:before{content:"star"!important}@media (width<=768px){:root{--shadow-md:0 5px 18px #30343b17;--shadow-lg:0 12px 32px #30343b21}body{font-size:15px}button,input,select,textarea{font-size:1rem}.animation-icon{transform-origin:50%;justify-content:center;align-items:center;animation:1.4s ease-in-out infinite animation-icon-pulse;display:inline-flex}.animation-icon:hover{animation-duration:.7s}@keyframes animation-icon-pulse{0%,to{transform:scale(1)rotate(0)}35%{transform:scale(1.16)rotate(-6deg)}65%{transform:scale(1.08)rotate(5deg)}}}@media (prefers-reduced-motion:reduce){.animation-icon{animation:none}}@media (width<=640px){body{font-size:14px}[class^=icon-]:before,[class*=\ icon-]:before{font-size:1.3em}}.representation-choeur{box-sizing:border-box;background:var(--color-surface);border:1px solid var(--color-border);border-radius:18px;width:100%;padding:16px;box-shadow:0 6px 24px #30343b0d}.choeur-header{align-items:center;gap:10px;margin-bottom:4px;display:flex}.choeur-header-icon{background:var(--color-surface-muted);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:20px;display:flex}.choeur-title{color:var(--color-text-primary);margin:0;font-size:17px;font-weight:700}.choeur-subtitle{color:var(--color-text-secondary);margin-top:2px;font-size:11px}.choeur-svg-container{width:100%;overflow:hidden}.choeur-svg{width:100%;max-width:100%;height:auto;display:block}.svg-chanteur{cursor:pointer;transition:opacity .15s}.svg-chanteur-fond{fill-opacity:.16;stroke:currentColor;stroke-width:1.5px;transition:fill-opacity .15s,stroke-width .15s}.svg-chanteur-tete{fill:var(--color-surface);stroke:currentColor;stroke-width:1.5px}.svg-chanteur-corps{fill:none;stroke:var(--color-surface);stroke-width:2px;stroke-linecap:round}.svg-chanteur:hover{opacity:.8}.svg-chanteur:hover .svg-chanteur-fond{fill-opacity:.3;stroke-width:2px}.svg-pupitre-label{pointer-events:none}.svg-pupitre-label text{fill:var(--color-text-primary);font-size:13px;font-weight:700}.svg-pupitre-count{fill:var(--color-text-muted)!important;font-size:10px!important;font-weight:500!important}.svg-pupitre-label circle{stroke:var(--color-surface);stroke-width:2px}.svg-chef circle{fill:var(--color-surface-soft);stroke:var(--color-border-strong);stroke-width:1.5px}.svg-chef text{font-size:14px}.svg-chef-label{fill:var(--color-text-secondary);font-size:9px;font-weight:600}.choeur-legende{border-top:1px solid var(--color-surface-muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 16px;margin-top:4px;padding-top:12px;display:flex}.legende-item{color:var(--color-text-secondary);align-items:center;gap:5px;font-size:11px;display:flex}.legende-color{border-radius:50%;flex-shrink:0;width:9px;height:9px}.legende-count{background:var(--color-surface-muted);border-radius:9px;justify-content:center;align-items:center;min-width:17px;height:17px;padding:0 4px;font-size:9px;display:inline-flex}.representation-choeur.empty{text-align:center;min-height:140px;color:var(--color-text-secondary);flex-direction:column;justify-content:center;align-items:center;display:flex}.choeur-empty-icon{margin-bottom:6px;font-size:28px}.choeur-empty-text{font-size:13px}.representation-choeur .choeur-header{align-items:center;gap:12px;display:flex}.choeur-fullscreen-button{border:1px solid var(--color-border-strong);background:var(--color-surface);width:36px;height:36px;color:var(--color-text-primary);cursor:pointer;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;padding:0;display:inline-flex}.choeur-fullscreen-button:hover{background:var(--color-surface-muted);color:var(--color-text-primary)}.choeur-fullscreen-button:focus-visible{outline:2px solid var(--color-brand);outline-offset:3px}.representation-choeur:fullscreen{box-sizing:border-box;background:var(--color-surface);border-radius:0;flex-direction:column;width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:24px;display:flex;overflow:auto}:is(.representation-choeur:fullscreen .choeur-header,.representation-choeur:fullscreen .choeur-legende){flex-shrink:0}.representation-choeur:fullscreen .choeur-svg-container{flex:1;justify-content:center;align-items:center;width:100%;max-width:none;min-height:0;max-height:none;display:flex}.representation-choeur:fullscreen .choeur-svg{width:100%;max-width:none;height:100%;max-height:none}.svg-chanteur-current .svg-chanteur-fond{stroke:#2d7a74ad;stroke-width:5px}.svg-chanteur-current{filter:drop-shadow(0 0 6px #9a651f8c)}.svg-chanteur-current-label{fill:currentColor;paint-order:stroke;stroke:#fff;stroke-width:3px;font-size:11px;font-weight:800}.choeur-svg-container{position:relative}.svg-chanteur-groupe{fill:none;stroke-width:3px;pointer-events:none}.choeur-chanteur-info{z-index:20;box-sizing:border-box;border:1px solid var(--color-border);min-width:170px;color:var(--color-text-primary);text-align:left;background:#fffffff7;border-radius:12px;padding:12px 34px 12px 14px;position:absolute;top:62px;right:12px;box-shadow:0 8px 24px #30343b24}.choeur-chanteur-info-nom{color:var(--color-text-primary);font-size:14px;font-weight:700}.choeur-chanteur-info-groupe{color:var(--color-text-secondary);margin-top:4px;font-size:11px}.choeur-chanteur-info-close{width:26px;height:26px;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:0;font-size:18px;position:absolute;top:4px;right:5px}.choeur-chanteur-info-close:hover{background:var(--color-surface-muted);color:var(--color-text-primary)}.choeur-zoom-controls{z-index:10;box-sizing:border-box;border:1px solid var(--color-border);background:#fffffff0;border-radius:10px;align-items:center;min-width:40px;height:40px;padding:3px;transition:width .18s,box-shadow .18s;display:flex;position:absolute;top:12px;right:12px;overflow:hidden;box-shadow:0 2px 8px #30343b14}.choeur-zoom-trigger{cursor:pointer;background:0 0;border:0;border-radius:7px;justify-content:center;align-items:center;width:34px;min-width:34px;height:32px;padding:0;font-size:17px;display:inline-flex}.choeur-zoom-panel{opacity:0;pointer-events:none;align-items:center;gap:4px;width:0;transition:width .18s,opacity .15s;display:flex;overflow:hidden}.choeur-zoom-panel button{min-width:34px;height:32px;color:var(--color-text-primary);cursor:pointer;background:0 0;border:0;border-radius:7px;flex-shrink:0;padding:0 8px;font-size:14px;font-weight:600}.choeur-zoom-value{min-width:58px!important}.choeur-zoom-panel button:hover:not(:disabled),.choeur-zoom-trigger:hover{background:var(--color-surface-muted)}.choeur-zoom-panel button:disabled{opacity:.35;cursor:default}.choeur-zoom-controls:hover,.choeur-zoom-controls:focus-within{width:190px}.choeur-zoom-controls:hover .choeur-zoom-panel,.choeur-zoom-controls:focus-within .choeur-zoom-panel{opacity:1;pointer-events:auto;width:142px}.choeur-zoom-trigger:focus-visible{outline:2px solid var(--color-brand);outline-offset:1px}.representation-choeur:fullscreen .choeur-svg{touch-action:none}.representation-choeur:fullscreen{overscroll-behavior:contain}.choeur-svg-zoomed{cursor:grab;touch-action:none}.choeur-svg-zoomed:active{cursor:grabbing}@media (width<=500px){.representation-choeur{border-radius:15px;padding:12px}.choeur-header-icon{width:36px;height:36px;font-size:18px}.choeur-title{font-size:15px}.choeur-subtitle{font-size:10px}.svg-pupitre-label text{font-size:12px}.svg-pupitre-count{font-size:9px!important}.choeur-legende{gap:7px 10px}}.icon-chanteursaison:before,.icon-chanteurSaison:before{content:"group_add"!important}.icon-lead_actif:before,.icon-saisonactive:before{content:"star"!important}@media (width<=768px){:root{--shadow-md:0 5px 18px #30343b17;--shadow-lg:0 12px 32px #30343b21}body{font-size:15px}button,input,select,textarea{font-size:1rem}.animation-icon{transform-origin:50%;justify-content:center;align-items:center;animation:1.4s ease-in-out infinite animation-icon-pulse;display:inline-flex}.animation-icon:hover{animation-duration:.7s}@keyframes animation-icon-pulse{0%,to{transform:scale(1)rotate(0)}35%{transform:scale(1.16)rotate(-6deg)}65%{transform:scale(1.08)rotate(5deg)}}}@media (prefers-reduced-motion:reduce){.animation-icon{animation:none}}@media (width<=640px){body{font-size:14px}[class^=icon-]:before,[class*=\ icon-]:before{font-size:1.3em}}.repartition-header{border-bottom:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;padding-bottom:16px;display:flex}.repartition-header-title{color:var(--color-text-primary);margin:0;font-size:1.35rem;font-weight:600;line-height:1.3}.repartition-header .repartition-export-button{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-primary);font:inherit;cursor:pointer;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;gap:8px;margin-left:auto;padding:10px 16px;font-size:.875rem;font-weight:500;transition:background-color .15s,border-color .15s,box-shadow .15s;display:inline-flex}.repartition-header .repartition-export-button:hover{border-color:var(--color-border-strong);background:var(--color-surface-soft);box-shadow:0 2px 6px #30343b0f}.repartition-header .repartition-export-button:focus-visible{outline:2px solid var(--color-brand);outline-offset:3px}.repartition-export-button .data-table-action-label{display:inline}@media (width<=480px){.repartition-header{gap:12px}.repartition-header .repartition-export-button{width:100%;margin-left:0}}.count-badge{box-sizing:border-box;border:1px solid var(--color-border);background:var(--color-surface-soft);border-radius:10px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;min-width:70px;padding:10px 14px;display:flex}.count-badge strong{color:var(--color-text-primary);font-size:1.25rem;line-height:1.2}.count-badge span{color:var(--color-text-muted);white-space:nowrap;margin-top:2px;font-size:.7rem}@media (width<=700px){.count-badge{border-radius:9px;min-width:45px;padding:7px 8px}.count-badge strong{font-size:1rem}.count-badge span{font-size:.62rem}}.icon-chanteursaison:before,.icon-chanteurSaison:before{content:"group_add"!important}.icon-lead_actif:before,.icon-saisonactive:before{content:"star"!important}@media (width<=768px){:root{--shadow-md:0 5px 18px #30343b17;--shadow-lg:0 12px 32px #30343b21}body{font-size:15px}button,input,select,textarea{font-size:1rem}.animation-icon{transform-origin:50%;justify-content:center;align-items:center;animation:1.4s ease-in-out infinite animation-icon-pulse;display:inline-flex}.animation-icon:hover{animation-duration:.7s}@keyframes animation-icon-pulse{0%,to{transform:scale(1)rotate(0)}35%{transform:scale(1.16)rotate(-6deg)}65%{transform:scale(1.08)rotate(5deg)}}}@media (prefers-reduced-motion:reduce){.animation-icon{animation:none}}@media (width<=640px){body{font-size:14px}[class^=icon-]:before,[class*=\ icon-]:before{font-size:1.3em}}.form-modal-overlay{box-sizing:border-box;z-index:1000;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#30343b7a;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.form-modal{box-sizing:border-box;background:var(--color-surface);border-radius:16px;flex-direction:column;width:500px;max-width:100%;max-height:calc(100vh - 40px);display:flex;overflow:hidden;box-shadow:0 20px 50px #30343b33}.form-modal-content{min-width:0;padding:20px;overflow-y:auto}.form-modal-footer{border-top:1px solid var(--color-border);background:var(--color-surface);flex-shrink:0;justify-content:flex-end;align-items:center;gap:10px;padding:14px 20px;display:flex}.form-modal-cancel{border:1px solid var(--color-border);background:var(--color-surface);min-height:40px;color:var(--color-text-primary);cursor:pointer;border-radius:9px;padding:9px 18px;font-family:inherit;font-size:14px;font-weight:600;transition:background .15s,border-color .15s,color .15s}.form-modal-cancel:hover{background:var(--color-surface-soft);border-color:var(--color-text-muted);color:var(--color-text-primary)}.form-modal-cancel:active{background:var(--color-surface-muted)}@media (width<=700px){.form-modal-overlay{align-items:flex-end;padding:0}.form-modal{border-radius:18px 18px 0 0;width:100%;max-width:100%;max-height:94vh}.form-modal-content{padding:16px}.form-modal-footer{padding:12px 16px;padding-bottom:max(12px, env(safe-area-inset-bottom))}.form-modal-cancel{width:100%;min-height:44px}}@media (width<=400px){.form-modal-content{padding:14px}.form-modal-footer{padding-left:14px;padding-right:14px}}.icon-chanteursaison:before,.icon-chanteurSaison:before{content:"group_add"!important}.icon-lead_actif:before,.icon-saisonactive:before{content:"star"!important}@media (width<=768px){:root{--shadow-md:0 5px 18px #30343b17;--shadow-lg:0 12px 32px #30343b21}body{font-size:15px}button,input,select,textarea{font-size:1rem}.animation-icon{transform-origin:50%;justify-content:center;align-items:center;animation:1.4s ease-in-out infinite animation-icon-pulse;display:inline-flex}.animation-icon:hover{animation-duration:.7s}@keyframes animation-icon-pulse{0%,to{transform:scale(1)rotate(0)}35%{transform:scale(1.16)rotate(-6deg)}65%{transform:scale(1.08)rotate(5deg)}}}@media (prefers-reduced-motion:reduce){.animation-icon{animation:none}}@media (width<=640px){body{font-size:14px}[class^=icon-]:before,[class*=\ icon-]:before{font-size:1.3em}}.crud-page{box-sizing:border-box;width:100%;min-width:0}.crud-header{justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px;display:flex}.crud-header h1{color:var(--color-text-primary);margin:0;font-size:24px;font-weight:700;line-height:1.2}.crud-page-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.crud-page-header h1{margin-right:1rem}.crud-page-count{white-space:nowrap;align-items:baseline;gap:.4rem;display:flex}.crud-page-count strong{font-size:1.4rem}.crud-page-count span{font-size:.9rem}.crud-new-button{background:var(--color-brand);min-height:40px;color:var(--color-surface);cursor:pointer;border:0;border-radius:10px;flex:none;padding:9px 15px;font-family:inherit;font-size:14px;font-weight:600;transition:background .15s,transform .15s,box-shadow .15s}.crud-new-button:hover{background:var(--color-brand-strong);box-shadow:0 4px 12px #7047a638}.crud-new-button:active{transform:translateY(1px)}.crud-errors{border:1px solid var(--color-danger-border);background:var(--color-danger-soft);color:var(--color-danger);border-radius:10px;flex-direction:column;gap:5px;margin-bottom:16px;padding:12px 14px;font-size:14px;display:flex}.crud-page-header-right{flex-direction:column;align-items:flex-end;gap:10px;display:flex}.crud-page-header-action{justify-content:flex-end;display:flex}.crud-page>.data-table,.crud-page>div{min-width:0}@media (width<=900px){.crud-header{margin-bottom:16px}.crud-header h1{font-size:22px}}@media (width<=700px){.crud-page{width:100%}.crud-header{flex-direction:column;align-items:stretch;gap:12px;margin-bottom:16px}.crud-header h1{font-size:21px}.crud-new-button{width:100%;min-height:42px}.crud-errors{margin-bottom:14px;padding:10px 12px;font-size:13px}.crud-page-header{align-items:center;gap:.5rem}.crud-page-header h1{flex:auto;min-width:0;overflow:hidden}.crud-page-title-icon{width:100%;min-width:0;overflow:hidden}.crud-page-title-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.crud-page-count{text-align:center;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:0;min-width:50px;max-width:80px;line-height:1.1;display:flex}.crud-page-count strong{font-size:1.15rem;line-height:1}.crud-page-count span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;margin-top:.2rem;font-size:.72rem;line-height:1;overflow:hidden}}@media (width<=400px){.crud-header h1{font-size:19px}.crud-new-button{min-height:40px;padding:8px 12px}}.crud-page .data-table-toolbar--with-actions{grid-template-columns:minmax(170px,1fr) auto auto;align-items:center;gap:12px 18px;margin-bottom:18px;display:grid}.crud-page .data-table-toolbar--with-actions .data-table-search-wrapper{box-sizing:border-box;grid-column:1;width:100%;min-width:0;max-width:100%}.crud-page .data-table-toolbar--with-actions .data-table-search{box-sizing:border-box;width:100%;min-width:0}.crud-page .data-table-toolbar--with-actions .data-table-page-size{grid-column:2;min-width:0}.crud-page .data-table-toolbar-actions{grid-column:3;justify-content:flex-end;align-items:center;gap:12px;min-width:0;display:flex}.crud-page .data-table-toolbar-actions .crud-new-button{white-space:nowrap;flex-shrink:0;margin:0}.crud-page .crud-create-and-count{flex-shrink:0;align-items:center;gap:12px;display:inline-flex}.crud-page .data-table-toolbar-actions .crud-action-button{white-space:nowrap;flex-shrink:0;margin:0}@media (width<=900px){.crud-page .data-table-toolbar--with-actions{grid-template-columns:minmax(0,1fr) auto;column-gap:12px}.crud-page .data-table-toolbar--with-actions .data-table-search-wrapper{grid-area:1/1/auto/-1}.crud-page .data-table-toolbar--with-actions .data-table-page-size{grid-area:2/1;justify-self:start}.crud-page .data-table-toolbar-actions{grid-area:2/2;gap:8px}}@media (width<=420px){.crud-page .data-table-toolbar--with-actions{grid-template-columns:minmax(0,1fr)}.crud-page .data-table-toolbar--with-actions .data-table-page-size{grid-area:2/1}.crud-page .data-table-toolbar-actions{flex-wrap:wrap;grid-area:3/1;justify-content:flex-end;justify-self:end;max-width:100%}}@media (width<=700px){.crud-page .crud-create-and-count{gap:8px}}.saison-chanson-leads{flex-direction:column;align-items:flex-start;gap:5px;display:flex}.saison-chanson-lead{cursor:pointer;white-space:nowrap;align-items:center;gap:8px;display:inline-flex}.saison-chanson-lead input[type=checkbox]{cursor:pointer;margin:0}.saison-chanson-lead:has(input:disabled){opacity:.6;cursor:progress}.icon-chanteursaison:before,.icon-chanteurSaison:before{content:"group_add"!important}.icon-lead_actif:before,.icon-saisonactive:before{content:"star"!important}@media (width<=768px){:root{--shadow-md:0 5px 18px #30343b17;--shadow-lg:0 12px 32px #30343b21}body{font-size:15px}button,input,select,textarea{font-size:1rem}.animation-icon{transform-origin:50%;justify-content:center;align-items:center;animation:1.4s ease-in-out infinite animation-icon-pulse;display:inline-flex}.animation-icon:hover{animation-duration:.7s}@keyframes animation-icon-pulse{0%,to{transform:scale(1)rotate(0)}35%{transform:scale(1.16)rotate(-6deg)}65%{transform:scale(1.08)rotate(5deg)}}}@media (prefers-reduced-motion:reduce){.animation-icon{animation:none}}@media (width<=640px){body{font-size:14px}[class^=icon-]:before,[class*=\ icon-]:before{font-size:1.3em}}.chansons-page{box-sizing:border-box;width:100%;max-width:1200px;font-family:var(--font-family);color:var(--color-text-primary);padding:35px 40px 60px}.chanson-icon-audio{cursor:pointer;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.chanson-audio-note{transform-origin:50%;animation:1.4s ease-in-out infinite chanson-audio-note-pulse}.chanson-icon-audio:hover .chanson-audio-note{animation-duration:.7s}@keyframes chanson-audio-note-pulse{0%,to{transform:scale(1)rotate(0)}35%{transform:scale(1.16)rotate(-6deg)}65%{transform:scale(1.08)rotate(5deg)}}.chanson-audio-volume{transform-origin:0;animation:1s ease-in-out infinite chanson-audio-volume}@keyframes chanson-audio-volume{0%,to{transform:translate(0)scale(1)}25%{transform:translate(1px)scale(1.08)}50%{transform:translate(0)scale(1.14)}75%{transform:translate(-1px)scale(1.08)}}.chansons-page-eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-muted);margin-bottom:4px;font-size:.75rem;font-weight:700}.chansons-help{border:1px solid var(--color-border);background:var(--color-surface-soft);border-radius:10px;align-items:center;gap:12px;margin-bottom:22px;padding:13px 16px;display:flex}.chansons-help-icon{background:var(--color-surface-muted);border-radius:9px;flex:0 0 36px;justify-content:center;align-items:center;width:36px;height:36px;font-size:1rem;display:flex}.chansons-help div{flex-direction:column;gap:2px;display:flex}.chansons-help strong{color:var(--color-text-primary);font-size:.85rem}.chansons-help span{color:var(--color-text-muted);font-size:.8rem}.chansons-error{border:1px solid var(--color-danger-border);background:var(--color-danger-soft);color:var(--color-danger);border-radius:9px;align-items:center;gap:10px;margin-bottom:20px;padding:12px 15px;font-size:.88rem;display:flex}.chansons-error-icon{font-size:1rem}.chansons-list{flex-direction:column;gap:10px;display:flex}.chanson-card{border:1px solid var(--color-border);background:var(--color-surface);border-radius:12px;margin:0;padding:0;transition:transform .15s,box-shadow .15s,border-color .15s;overflow:hidden}.chanson-card:hover{border-color:var(--color-border);transform:translateY(-1px);box-shadow:0 5px 18px #30343b0f}.chanson-row{grid-template-columns:minmax(0,1fr);align-items:stretch;gap:12px;width:100%;display:grid}.chanson-main,.chanson-info,.chanson-document,.chanson-pupitre,.chanson-audio_lead,.chanson-audio{min-width:0}.chanson-main{grid-template-columns:40px 40px minmax(0,1fr) 40px;align-items:center;gap:10px;width:100%;display:grid}.chansons-page .chanson-main.avec-audio-lead{grid-template-columns:40px 40px minmax(0,1fr) 40px 40px}.chanson-info{grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) minmax(120px,.6fr);align-items:center;gap:16px;display:grid}.chanson-document,.chanson-pupitre,.chanson-audio{width:100%}.chanson-icon{background:var(--color-surface-muted);border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.05rem;display:flex}.chansons-page .chanson-main>.chanson-icon,.chansons-page .chanson-main>.chanson-action-repartition,.chansons-page .chanson-main>.chanson-lead-button{justify-content:center;justify-self:center;align-items:center;gap:0;width:40px;min-width:40px;height:40px;min-height:40px;margin:0;padding:0;display:inline-flex}.chansons-page .chanson-main>.chanson-icon-audio_lead{grid-area:auto;justify-content:center;justify-self:end;align-items:center;width:40px;min-width:40px;height:40px;min-height:40px;display:inline-flex}.chansons-page .chanson-main>.chanson-action-repartition .chanson-action-content,.chansons-page .chanson-main>.chanson-lead-button .chanson-lead-label{display:none}.chansons-page .chanson-main>.chanson-action-repartition .chanson-action-icon{margin:0}.chanson-titre{min-width:0;color:var(--color-brand-strong);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:1.05rem;font-weight:700;line-height:1.35;overflow:hidden}.chanson-lead-button{border:1px solid var(--color-border);cursor:pointer;opacity:.65;background:0 0;border-radius:16px;justify-content:center;align-items:center;gap:5px;min-width:0;padding:5px 9px;transition:transform .15s,opacity .15s,box-shadow .15s;display:inline-flex}.chanson-lead-button:hover{opacity:1;transform:translateY(-1px)}.chanson-lead-button.selected{opacity:1;font-weight:600;box-shadow:0 2px 8px #30343b1f}.chanson-action{border:1px solid var(--color-border);background:var(--color-surface-soft);min-width:0;color:var(--color-text-primary);border-radius:8px;align-items:center;gap:9px;padding:8px 10px;text-decoration:none;transition:background .15s,border-color .15s,transform .15s;display:flex}.chanson-action:hover{background:var(--color-surface-muted);border-color:var(--color-border);transform:translateY(-1px)}.chanson-action-icon{background:var(--color-surface);border-radius:7px;flex:0 0 30px;justify-content:center;align-items:center;width:30px;height:30px;padding:0;font-size:.9rem;display:flex}.chanson-action-icon:before{justify-content:center;align-items:center;width:100%;height:100%;vertical-align:0!important;margin:0!important;line-height:1!important;display:flex!important}.chanson-action-content{flex-direction:column;gap:2px;min-width:0;display:flex}.chanson-action-content strong{font-size:.8rem;font-weight:600}.chanson-action-content small{min-width:0;color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;display:block;overflow:hidden}.chanson-action-disabled{border:1px dashed var(--color-border);min-width:0;color:var(--color-text-muted);border-radius:8px;align-items:center;gap:8px;padding:8px 10px;font-size:.75rem;display:flex}.chanson-pupitre{flex-direction:column;align-items:stretch;gap:5px;display:flex}.chanson-pupitre-label{color:var(--color-text-muted);font-size:.7rem;font-weight:600}.chanson-pupitre select{box-sizing:border-box;border:1px solid var(--color-border);background:var(--color-surface);width:100%;min-width:0;color:var(--color-text-primary);font:inherit;cursor:pointer;border-radius:8px;padding:9px 30px 9px 10px;font-size:.8rem;transition:border-color .15s,box-shadow .15s}.chanson-pupitre select:hover{border-color:var(--color-border-strong)}.chanson-pupitre select:focus{border-color:var(--color-text-muted);outline:none;box-shadow:0 0 0 3px #30343b0d}.chanson-pupitre select:disabled{opacity:.6;cursor:default}.chanson-saving{color:var(--color-text-muted);font-size:.7rem}.chansons-loading{border:1px dashed var(--color-border);min-height:180px;color:var(--color-text-secondary);border-radius:10px;justify-content:center;align-items:center;gap:10px;font-size:.9rem;display:flex}.chansons-loading-icon{font-size:1.1rem}.chansons-empty{border:1px dashed var(--color-border);background:var(--color-surface-soft);border-radius:10px;align-items:center;gap:15px;padding:20px;display:flex}.chansons-empty-icon{background:var(--color-surface-muted);border-radius:10px;flex:0 0 44px;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.2rem;display:flex}.chansons-empty strong{margin-bottom:3px;font-size:.9rem;display:block}.chansons-empty p{color:var(--color-text-muted);margin:0;font-size:.82rem}.chanson-row{padding-inline:20px}.chanson-pupitre-select-wrapper,.chanson-pupitre-trigger{align-items:center;gap:8px;display:flex}.chanson-pupitre-current{display:none}.chansons-help{background:var(--color-brand-soft);border-color:var(--color-brand-border)}.chansons-help-icon{background:var(--color-surface);border:1px solid var(--color-brand-border);color:var(--color-brand)}.chansons-help-icon[class^=icon-]:before,.chansons-help-icon[class*=\ icon-]:before,.chansons-help-icon [class^=icon-]:before,.chansons-help-icon [class*=\ icon-]:before{color:var(--color-brand)!important}.chansons-help strong{color:var(--color-brand-strong)}.chanson-card{border-left:3px solid var(--color-brand-border);background:var(--color-surface)}.chanson-card:hover{border-left-color:var(--color-brand);box-shadow:var(--shadow-sm)}.chanson-icon{background:var(--color-brand-soft);border:1px solid var(--color-brand-border);color:var(--color-brand)}.chanson-icon svg{color:var(--color-brand)}.chanson-icon [class^=icon-]:before,.chanson-icon [class*=\ icon-]:before,.chanson-icon[class^=icon-]:before,.chanson-icon[class*=\ icon-]:before{color:var(--color-brand)!important}.chanson-lead-button.selected{background:var(--color-brand-soft);border-color:var(--color-brand-border);color:var(--color-brand-strong)}.chanson-lead-button.selected .chanson-lead-icon:before{color:var(--color-brand)!important}.chanson-action:hover{background:var(--color-brand-soft);border-color:var(--color-brand-border)}.chanson-action-icon{background:var(--color-brand-soft);color:var(--color-brand-strong)}.chanson-action-icon [class^=icon-]:before,.chanson-action-icon [class*=\ icon-]:before,.chanson-action-icon[class^=icon-]:before,.chanson-action-icon[class*=\ icon-]:before{color:var(--color-brand)!important}.chanson-action-document,.chanson-action-audio{color:var(--color-brand-strong)}.chanson-pupitre select:focus{border-color:var(--color-brand);box-shadow:0 0 0 3px var(--color-brand-soft)}.chanson-pupitre-label.icon-pupitre:before{color:var(--color-brand)!important}.chanson-info,.chanson-pupitre-select-wrapper,.chanson-audio{align-items:center}.chanson-pupitre select,.chanson-audio .chanson-action,.chanson-audio .chanson-action-disabled{min-height:42px}.chansons-page .chanson-row{grid-template-columns:minmax(0,1fr);padding-inline:0}.chansons-page .chanson-card{padding:15px}@media (width<=700px){.chansons-page{padding:20px 14px 35px}.chansons-page-eyebrow{font-size:.68rem}.chansons-help{align-items:flex-start;margin-bottom:16px;padding:11px 12px}.chansons-help-icon{flex-basis:32px;width:32px;height:32px}.chansons-help strong{font-size:.78rem}.chansons-help span{font-size:.72rem;line-height:1.4}.chanson-card{border-radius:11px}.chanson-row{grid-template-columns:minmax(0,1fr);gap:8px}.chansons-page .chanson-main{grid-template-columns:38px 38px minmax(0,1fr) 38px;gap:6px;padding-bottom:2px}.chansons-page .chanson-main.avec-audio-lead{grid-template-columns:38px 38px minmax(0,1fr) 38px 38px}.chansons-page .chanson-main>.chanson-icon,.chansons-page .chanson-main>.chanson-action-repartition,.chansons-page .chanson-main>.chanson-lead-button,.chansons-page .chanson-main>.chanson-icon-audio_lead{width:38px;min-width:38px;height:38px;min-height:38px}.chanson-titre{color:var(--color-brand-strong);white-space:nowrap;text-overflow:ellipsis;font-size:1.02rem;font-weight:700;overflow:hidden}.chanson-info{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:end;gap:8px}.chanson-document,.chanson-pupitre,.chanson-audio{width:100%}.chanson-action,.chanson-action-disabled{box-sizing:border-box;width:100%}.chanson-pupitre select{min-height:40px}.chanson-saving{margin-top:1px}.chansons-empty{padding:15px}.chanson-pupitre-select-wrapper{align-items:center;gap:12px;width:100%;display:flex}.chanson-pupitre-trigger{flex:0 0 58px;width:58px;height:58px;position:relative}.chanson-pupitre-label{cursor:pointer;justify-content:center;align-items:center;width:58px;height:58px;animation:1.4s ease-in-out infinite chanson-pupitre-mobile;display:flex}.chanson-pupitre-label:before{font-size:32px}.chanson-pupitre-label-text{display:none}.chanson-pupitre-trigger select{opacity:0;z-index:2;cursor:pointer;width:58px;height:58px;position:absolute;inset:0}.chanson-pupitre-current{color:var(--color-text-primary);text-align:left;font-size:15px;font-weight:600;display:block}@keyframes chanson-pupitre-mobile{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.chanson-pupitre-label.icon-pupitre:before{width:36px;height:36px;font-size:36px!important}}@media (width<=400px){.chansons-page{padding-left:10px;padding-right:10px}.chansons-page .chanson-main{grid-template-columns:36px 36px minmax(0,1fr) 36px;gap:4px}.chansons-page .chanson-main.avec-audio-lead{grid-template-columns:36px 36px minmax(0,1fr) 36px 36px}.chansons-page .chanson-main>.chanson-icon,.chansons-page .chanson-main>.chanson-action-repartition,.chansons-page .chanson-main>.chanson-lead-button,.chansons-page .chanson-main>.chanson-icon-audio_lead{width:36px;min-width:36px;height:36px;min-height:36px}.chanson-info{gap:5px}.chanson-action,.chanson-action-disabled{padding-left:6px;padding-right:6px}.chanson-pupitre-label.icon-pupitre:before{width:36px;height:36px;font-size:36px!important}}@media (width<=700px){.chanson-info{grid-template-columns:minmax(0,1fr) 48px;align-items:center;gap:10px 12px}.chanson-document{grid-column:1/-1}.chanson-pupitre{grid-column:1;align-self:center;min-width:0}.chanson-audio{grid-column:2;justify-content:center;place-self:center end;align-items:center;width:48px;height:48px;display:flex}.chanson-pupitre-select-wrapper{grid-template-columns:48px minmax(0,1fr);align-items:center;gap:10px;width:100%;min-height:48px;display:grid;position:relative}.chanson-pupitre-trigger{flex:none;width:48px;height:48px;position:static}.chanson-pupitre-label{width:48px;height:48px;animation:none}.chanson-pupitre-label.icon-pupitre:before{width:34px;height:34px;font-size:34px!important}.chanson-pupitre-trigger select{opacity:0;z-index:5;cursor:pointer;width:100%;height:100%;min-height:48px;position:absolute;inset:0}.chanson-pupitre-current{cursor:pointer;align-items:center;min-width:0;min-height:48px;margin:0;line-height:1.25;display:flex}.chanson-audio .chanson-action,.chanson-audio .chanson-action-disabled{justify-content:center;align-items:center;gap:0;width:48px;min-width:48px;height:48px;min-height:48px;padding:0;display:flex}.chanson-audio .chanson-action-content,.chanson-audio .chanson-action-disabled>span:last-child{display:none}.chanson-audio .chanson-action-icon{flex:0 0 32px;justify-content:center;align-items:center;width:32px;height:32px;margin:0;display:flex}.chansons-page .chanson-card{padding:12px}.chansons-page .chanson-row{padding-inline:0}}.chanson-selectionnee{background:#fff3cd;border:2px solid #f0ad4e;border-radius:8px;box-shadow:0 0 0 3px #f0ad4e26}.concerts-page{box-sizing:border-box;width:100%;max-width:1200px;font-family:var(--font-family);color:var(--color-text-primary);padding:35px 40px 60px}.chansons-page-header{border-bottom:1px solid var(--color-border);align-items:center;gap:18px;margin-bottom:30px;padding-bottom:25px;display:flex}.chansons-page-header-icon{background:var(--color-surface-muted);border-radius:15px;flex:0 0 58px;justify-content:center;align-items:center;width:58px;height:58px;font-size:1.5rem;display:flex}.chansons-page-header-content{flex:1;min-width:0}.chansons-page-title{font-family:var(--font-family);color:var(--color-text-primary);margin:0;font-size:2rem;font-weight:700;line-height:1.2}.chansons-page-subtitle{max-width:700px;color:var(--color-text-secondary);margin:8px 0 0;font-size:.92rem;line-height:1.5}@media (width<=700px){.chansons-page-header{align-items:flex-start;gap:12px;margin-bottom:20px;padding-bottom:20px}.chansons-page-header-icon{border-radius:11px;flex-basis:46px;width:46px;height:46px;font-size:1.2rem}.chansons-page-title{font-size:1.55rem}.chansons-page-subtitle{margin-top:6px;font-size:.82rem;line-height:1.4}}.icon-chanteursaison:before,.icon-chanteurSaison:before{content:"group_add"!important}.icon-lead_actif:before,.icon-saisonactive:before{content:"star"!important}@media (width<=768px){:root{--shadow-md:0 5px 18px #30343b17;--shadow-lg:0 12px 32px #30343b21}body{font-size:15px}button,input,select,textarea{font-size:1rem}.animation-icon{transform-origin:50%;justify-content:center;align-items:center;animation:1.4s ease-in-out infinite animation-icon-pulse;display:inline-flex}.animation-icon:hover{animation-duration:.7s}@keyframes animation-icon-pulse{0%,to{transform:scale(1)rotate(0)}35%{transform:scale(1.16)rotate(-6deg)}65%{transform:scale(1.08)rotate(5deg)}}}@media (prefers-reduced-motion:reduce){.animation-icon{animation:none}}@media (width<=640px){body{font-size:14px}[class^=icon-]:before,[class*=\ icon-]:before{font-size:1.3em}}.crud-item-page{box-sizing:border-box;width:100%;max-width:1100px;font-family:var(--font-family);color:var(--color-text-primary);padding:35px 40px 60px}.crud-item-header{border-bottom:1px solid var(--color-border);align-items:center;gap:18px;margin-bottom:30px;padding-bottom:28px;display:flex}.crud-item-header-icon{background:var(--color-surface-muted);width:58px;height:58px;color:var(--color-text-secondary);border-radius:14px;flex:0 0 58px;justify-content:center;align-items:center;font-size:1.5rem;display:flex}.crud-item-header-content{min-width:0}.crud-item-eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-muted);margin-bottom:4px;font-size:.75rem;font-weight:700}.crud-item-title{font-family:var(--font-family);color:var(--color-text-primary);margin:0;font-size:2rem;font-weight:700;line-height:1.2}.crud-item-subtitle{max-width:680px;color:var(--color-text-secondary);margin:8px 0 0;font-size:.95rem;line-height:1.5}.crud-item-form{box-sizing:border-box;background:var(--background-secondary,var(--color-surface));border:1px solid var(--border-color,var(--color-border));border-radius:12px;width:100%;padding:24px;box-shadow:0 2px 8px #30343b08}.crud-item-loading{width:100%}.crud-loading{box-sizing:border-box;min-height:180px;color:var(--color-text-secondary);border:1px dashed var(--color-border);background:var(--color-surface-soft);border-radius:10px;justify-content:center;align-items:center;padding:30px;display:flex}.crud-item-header-icon{background:var(--color-brand-soft);border:1px solid var(--color-brand-border);color:var(--color-brand)}.crud-item-title{color:var(--color-brand-strong)}.crud-item-form{background:var(--color-surface);border-color:var(--color-brand-border);box-shadow:var(--shadow-sm)}.crud-item-header-icon--photo{border-radius:50%;flex:0 0 64px;width:64px;height:64px;padding:0;overflow:hidden}.crud-item-header-icon--photo img{object-fit:cover;width:100%;height:100%;display:block}.icon-chanteursaison:before,.icon-chanteurSaison:before{content:"group_add"!important}.icon-lead_actif:before,.icon-saisonactive:before{content:"star"!important}@media (width<=768px){:root{--shadow-md:0 5px 18px #30343b17;--shadow-lg:0 12px 32px #30343b21}body{font-size:15px}button,input,select,textarea{font-size:1rem}.animation-icon{transform-origin:50%;justify-content:center;align-items:center;animation:1.4s ease-in-out infinite animation-icon-pulse;display:inline-flex}.animation-icon:hover{animation-duration:.7s}@keyframes animation-icon-pulse{0%,to{transform:scale(1)rotate(0)}35%{transform:scale(1.16)rotate(-6deg)}65%{transform:scale(1.08)rotate(5deg)}}}@media (prefers-reduced-motion:reduce){.animation-icon{animation:none}}@media (width<=640px){body{font-size:14px}[class^=icon-]:before,[class*=\ icon-]:before{font-size:1.3em}}@keyframes concert-music-note-pulse{0%,to{transform:scale(1)rotate(0)}35%{transform:scale(1.18)rotate(-8deg)}65%{transform:scale(1.08)rotate(7deg)}}@keyframes concerts-loading-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes concert-icon-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes concert-modal-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes concert-modal-in{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.concerts-help{background:var(--color-brand-soft);border-color:var(--color-brand-border)}.concerts-help-icon{background:var(--color-surface);border:1px solid var(--color-brand-border)}.concerts-help strong{color:var(--color-brand-strong)}.concert-card.rendezvous-type-concert{border-left:3px solid var(--color-brand);border-right:3px solid var(--color-brand);background:var(--color-surface)}.concert-card.rendezvous-type-concert:hover{border-left-color:var(--color-brand-strong);border-right-color:var(--color-brand-strong);box-shadow:var(--shadow-sm)}.concert-card.rendezvous-type-concert .concert-icon{background:var(--color-brand-soft);border:1px solid var(--color-brand-border)}.concert-card.rendezvous-type-concert .concert-icon [class^=icon-]:before,.concert-card.rendezvous-type-concert .concert-icon [class*=\ icon-]:before,.concert-card.rendezvous-type-concert .concert-icon[class^=icon-]:before,.concert-card.rendezvous-type-concert .concert-icon[class*=\ icon-]:before{color:var(--color-brand)!important}.concert-card.rendezvous-type-concert .concert-titre{color:var(--color-brand-strong)}.concert-information-icon{background:var(--color-brand-soft)}.concert-chansons-modal{border-color:var(--color-brand-border)}.concert-chansons-modal-header{background:var(--color-brand-soft);border-bottom-color:var(--color-brand-border)}.concert-chansons-modal-icon{background:var(--color-surface);border:1px solid var(--color-brand-border);color:var(--color-brand)}.concert-chansons-modal-icon[class^=icon-]:before,.concert-chansons-modal-icon[class*=\ icon-]:before{color:var(--color-brand)!important}.concert-chansons-modal-eyebrow,.concert-chansons-modal-title{color:var(--color-brand-strong)}.concert-chanson-number{background:var(--color-brand-soft);color:var(--color-brand-strong)}.concert-chansons-close,.concert-chansons-close-button{border-color:var(--color-brand-border)}.concert-chansons-close:hover,.concert-chansons-close-button:hover{background:var(--color-brand-soft);border-color:var(--color-brand);color:var(--color-brand-strong)}@media (width<=700px){.chansons-page{padding:22px 14px 35px}.chansons-page-eyebrow{font-size:.68rem}.chansons-help{align-items:flex-start;margin-bottom:16px;padding:11px 12px}.chansons-help-icon{flex-basis:32px;width:32px;height:32px}.chansons-help strong{font-size:.78rem}.chansons-help span{font-size:.72rem;line-height:1.4}.chansons-list{gap:9px}.chanson-card{border-radius:11px;padding:12px}.chanson-card:hover{box-shadow:none;transform:none}.chanson-row{grid-template-columns:minmax(0,1fr);gap:10px;padding:0}.chanson-main{grid-template-columns:38px 38px minmax(0,1fr) 38px;align-items:center;gap:8px;width:100%;padding:0;display:grid}.chanson-title-content{display:contents}.chanson-icon{border-radius:9px;flex-basis:38px;grid-column:1;width:38px;height:38px}.chanson-icon-audio .chanson-audio-note{display:none}.chanson-action-repartition{border-radius:9px;grid-area:1/2;justify-content:center;gap:0;width:38px;height:38px;min-height:38px;padding:0}.chanson-action-repartition .chanson-action-icon{background:0 0;flex:0 0 100%;width:100%;height:100%;font-size:1rem}.chanson-action-repartition .chanson-action-content{display:none}.chanson-titre{white-space:nowrap;text-overflow:ellipsis;grid-area:1/3;min-width:0;margin:0;font-size:.92rem;line-height:1.3;overflow:hidden}.chanson-lead-button{border-radius:9px;grid-area:1/4;gap:0;width:38px;min-width:38px;height:38px;padding:0}.chanson-lead-label{display:none}.chanson-info{grid-template-columns:minmax(0,1fr) 42px;grid-template-areas:"document document""pupitre audio";align-items:end;gap:8px 10px;display:grid}.chanson-document{grid-area:document;width:100%}.chanson-pupitre{grid-area:pupitre;width:100%}.chanson-audio{grid-area:audio;width:42px}.chanson-document .chanson-action,.chanson-document .chanson-action-disabled{box-sizing:border-box;gap:7px;width:100%;min-height:42px;padding:6px 9px}.chanson-document .chanson-action-content small{display:none}.chanson-pupitre{gap:4px}.chanson-pupitre-label{font-size:.68rem}.chanson-pupitre select{min-height:42px}.chanson-saving{margin-top:1px}.chanson-audio .chanson-action,.chanson-audio .chanson-action-disabled{box-sizing:border-box;justify-content:center;align-items:center;gap:0;width:42px;height:42px;min-height:42px;padding:0;display:flex}.chanson-audio .chanson-action-icon{background:0 0;flex:0 0 100%;width:100%;height:100%}.chanson-audio .chanson-action-content,.chanson-audio .chanson-action-disabled span:last-child{display:none}.chansons-empty{padding:15px}}@media (width<=400px){.chansons-page{padding-left:10px;padding-right:10px}.chanson-card{padding:10px}.chanson-main{grid-template-columns:36px 36px minmax(0,1fr) 36px;gap:6px}.chanson-icon,.chanson-action-repartition,.chanson-lead-button{width:36px;min-width:36px;height:36px;min-height:36px}.chanson-info{grid-template-columns:minmax(0,1fr) 40px;gap:7px 8px}.chanson-audio,.chanson-audio .chanson-action,.chanson-audio .chanson-action-disabled{width:40px;height:40px;min-height:40px}}.icon-chanteursaison:before,.icon-chanteurSaison:before{content:"group_add"!important}.icon-lead_actif:before,.icon-saisonactive:before{content:"star"!important}@media (width<=768px){:root{--shadow-md:0 5px 18px #30343b17;--shadow-lg:0 12px 32px #30343b21}body{font-size:15px}button,input,select,textarea{font-size:1rem}.animation-icon{transform-origin:50%;justify-content:center;align-items:center;animation:1.4s ease-in-out infinite animation-icon-pulse;display:inline-flex}.animation-icon:hover{animation-duration:.7s}@keyframes animation-icon-pulse{0%,to{transform:scale(1)rotate(0)}35%{transform:scale(1.16)rotate(-6deg)}65%{transform:scale(1.08)rotate(5deg)}}}@media (prefers-reduced-motion:reduce){.animation-icon{animation:none}}@media (width<=640px){body{font-size:14px}[class^=icon-]:before,[class*=\ icon-]:before{font-size:1.3em}}@keyframes documents-pulse{0%,to{opacity:.4;transform:scale(.95)}50%{opacity:1;transform:scale(1)}}@media (width>=700px){.documents-chanteur{padding:24px}.documents-header{margin-bottom:32px}.documents-header h1{font-size:28px}.document-item{min-height:72px;padding:12px 14px}.document-item__title{font-size:15px}}.documents-header__icon{background:var(--color-brand-soft);border:1px solid var(--color-brand-border);color:var(--color-brand)}.documents-header h1{color:var(--color-brand-strong)}.documents-section__icon{background:var(--color-brand-soft);color:var(--color-brand)}.document-item{border-left:3px solid var(--color-brand-border)}.document-item:hover{border-left-color:var(--color-brand);box-shadow:var(--shadow-sm)}.document-item__icon{background:var(--color-brand-soft)}.document-item__action{background:var(--color-brand-soft);color:var(--color-brand-strong)}.documents-chanteur{box-sizing:border-box;width:100%;max-width:900px;margin:0 auto;padding:16px}.documents-header{align-items:center;gap:14px;margin-bottom:28px;display:flex}.documents-header__icon{background:var(--color-primary-light,var(--color-brand-soft));border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:24px;display:flex}.documents-header h1{color:var(--color-text,var(--color-text-primary));margin:0;font-size:24px;font-weight:700}.documents-header p{color:var(--color-text-secondary,var(--color-text-secondary));margin:4px 0 0;font-size:14px;line-height:1.4}.documents-section{margin-bottom:28px}.documents-section__header{align-items:center;gap:12px;margin-bottom:12px;display:flex}.documents-section__icon{background:var(--color-surface-muted);border-radius:11px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:19px;display:flex}.documents-section h2{color:var(--color-text-primary);margin:0;font-size:17px;font-weight:700}.documents-section__count{color:var(--color-text-muted);margin-top:2px;font-size:12px;display:block}.documents-list{flex-direction:column;gap:8px;display:flex}.document-item{box-sizing:border-box;background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px;align-items:center;min-height:68px;padding:10px 12px;text-decoration:none;transition:transform .15s,box-shadow .15s,border-color .15s;display:flex}.document-item:hover{border-color:var(--color-border);transform:translateY(-1px);box-shadow:0 4px 14px #30343b0f}.document-item:active{transform:scale(.99)}.document-item__icon{background:var(--color-surface-soft);border-radius:11px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;font-size:20px;display:flex}.document-item__content{flex-direction:column;flex:1;min-width:0;margin-left:12px;display:flex}.document-item__title{color:var(--color-text-primary);text-overflow:ellipsis;font-size:14px;font-weight:600;line-height:1.35;overflow:hidden}.document-item__type{color:var(--color-text-muted);margin-top:3px;font-size:11px}.document-item__action{background:var(--color-surface-muted);width:34px;height:34px;color:var(--color-text-primary);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;margin-left:8px;font-size:18px;display:flex}.document-item--disabled{cursor:not-allowed;opacity:.55}.document-item--disabled:hover{box-shadow:none;transform:none}.documents-chanteur--state{justify-content:center;align-items:center;min-height:250px;display:flex}.documents-loading{color:var(--color-text-secondary);align-items:center;gap:10px;font-size:14px;display:flex}.documents-loading__icon{font-size:22px;animation:1.2s ease-in-out infinite documents-pulse}.documents-error{text-align:center;background:var(--color-warning-soft);border:1px solid var(--color-warning-border);max-width:350px;color:var(--color-warning-strong);border-radius:16px;flex-direction:column;align-items:center;gap:6px;padding:24px;display:flex}.documents-error__icon{font-size:28px}.documents-empty{text-align:center;background:var(--color-surface-soft);border:1px dashed var(--color-border);color:var(--color-text-secondary);border-radius:16px;flex-direction:column;align-items:center;gap:6px;padding:40px 20px;display:flex}.documents-empty__icon{margin-bottom:4px;font-size:34px}.documents-empty strong{color:var(--color-text-primary);font-size:15px}.documents-empty span{font-size:13px}@media (width>=700px){.documents-chanteur{padding:24px}.documents-header{margin-bottom:32px}.documents-header h1{font-size:28px}.document-item{min-height:72px;padding:12px 14px}.document-item__title{font-size:15px}}.icon-chanteursaison:before,.icon-chanteurSaison:before{content:"group_add"!important}.icon-lead_actif:before,.icon-saisonactive:before{content:"star"!important}@media (width<=768px){:root{--shadow-md:0 5px 18px #30343b17;--shadow-lg:0 12px 32px #30343b21}body{font-size:15px}button,input,select,textarea{font-size:1rem}.animation-icon{transform-origin:50%;justify-content:center;align-items:center;animation:1.4s ease-in-out infinite animation-icon-pulse;display:inline-flex}.animation-icon:hover{animation-duration:.7s}@keyframes animation-icon-pulse{0%,to{transform:scale(1)rotate(0)}35%{transform:scale(1.16)rotate(-6deg)}65%{transform:scale(1.08)rotate(5deg)}}}@media (prefers-reduced-motion:reduce){.animation-icon{animation:none}}@media (width<=640px){body{font-size:14px}[class^=icon-]:before,[class*=\ icon-]:before{font-size:1.3em}}@media (width<=600px){.legal-page{padding:20px 12px}.legal-card{padding:25px 20px}.legal-header h1{font-size:1.6rem}.legal-footer{flex-direction:column;align-items:center;gap:4px}}.legal-page{background:var(--color-surface-muted);min-height:100vh;padding:40px 20px}.legal-container{max-width:900px;margin:0 auto}.legal-header{text-align:center;margin-bottom:30px}.legal-logo img{object-fit:contain;width:90px;height:90px;margin-bottom:15px}.legal-header h1{margin:0 0 10px;font-size:2rem}.legal-header p{color:var(--color-text-secondary);margin:0}.legal-card{background:#fff;border-radius:12px;padding:40px;box-shadow:0 2px 10px #30343b0f}.legal-card h2{margin-top:30px;margin-bottom:12px;font-size:1.3rem}.legal-card h2:first-child{margin-top:0}.legal-card p{color:var(--color-text-primary);line-height:1.7}.legal-card ul{color:var(--color-text-primary);padding-left:25px;line-height:1.8}.legal-date{border-top:1px solid var(--color-border);margin-top:40px;padding-top:20px;font-size:.9rem;color:var(--color-text-secondary)!important}.legal-footer{color:var(--color-text-secondary);justify-content:center;gap:10px;margin-top:30px;font-size:.9rem;display:flex}.icon-chanteursaison:before,.icon-chanteurSaison:before{content:"group_add"!important}.icon-lead_actif:before,.icon-saisonactive:before{content:"star"!important}@media (width<=768px){:root{--shadow-md:0 5px 18px #30343b17;--shadow-lg:0 12px 32px #30343b21}body{font-size:15px}button,input,select,textarea{font-size:1rem}.animation-icon{transform-origin:50%;justify-content:center;align-items:center;animation:1.4s ease-in-out infinite animation-icon-pulse;display:inline-flex}.animation-icon:hover{animation-duration:.7s}@keyframes animation-icon-pulse{0%,to{transform:scale(1)rotate(0)}35%{transform:scale(1.16)rotate(-6deg)}65%{transform:scale(1.08)rotate(5deg)}}}@media (prefers-reduced-motion:reduce){.animation-icon{animation:none}}@media (width<=640px){body{font-size:14px}[class^=icon-]:before,[class*=\ icon-]:before{font-size:1.3em}}.concerts-page-header{border-bottom:1px solid var(--color-border);align-items:center;gap:18px;margin-bottom:30px;padding-bottom:25px;display:flex}.concerts-page-header-icon{background:var(--color-surface-muted);border-radius:15px;flex:0 0 58px;justify-content:center;align-items:center;width:58px;height:58px;font-size:1.5rem;display:flex}.concerts-page-header-content{flex:1;min-width:0}.concerts-page-eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-muted);margin-bottom:4px;font-size:.72rem;font-weight:700}.concerts-page-title{font-family:var(--font-family);color:var(--color-text-primary);margin:0;font-size:2rem;font-weight:700;line-height:1.2}.concerts-page-subtitle{max-width:700px;color:var(--color-text-secondary);margin:8px 0 0;font-size:.92rem;line-height:1.5}.concerts-page-count{background:var(--color-surface-muted);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;min-width:70px;padding:10px 14px;display:flex}.concerts-page-count strong{color:var(--color-text-primary);font-size:1.4rem;line-height:1}.concerts-page-count span{color:var(--color-text-muted);margin-top:4px;font-size:.7rem}.concert-music-note{transform-origin:50%;animation:1.4s ease-in-out infinite concert-music-note-pulse;display:inline-block}.concert-icon-button:hover .concert-music-note{animation-duration:.7s}.concerts-help{border:1px solid var(--color-border);background:var(--color-surface-soft);border-radius:11px;align-items:center;gap:12px;margin-bottom:22px;padding:13px 16px;display:flex}.concerts-help-icon{background:var(--color-surface-muted);border-radius:10px;flex:0 0 38px;justify-content:center;align-items:center;width:38px;height:38px;font-size:1.1rem;display:flex}.concerts-help div{flex-direction:column;gap:2px;display:flex}.concerts-help strong{color:var(--color-text-primary);font-size:.88rem}.concerts-help span{color:var(--color-text-muted);font-size:.8rem}.concerts-error{border:1px solid var(--color-danger-border);background:var(--color-danger-soft);color:var(--color-danger);border-radius:10px;align-items:center;gap:10px;margin-bottom:20px;padding:12px 15px;font-size:.88rem;display:flex}.concerts-error-icon{font-size:1rem}.concerts-list{flex-direction:column;gap:10px;display:flex}.concert-card{border:1px solid var(--color-border);background:var(--color-surface);border-radius:13px;padding:16px;transition:transform .15s,box-shadow .15s,border-color .15s}.concert-card:hover{border-color:var(--color-border);transform:translateY(-1px);box-shadow:0 5px 18px #30343b0f}.concert-row{grid-template-columns:minmax(200px,1.6fr) minmax(180px,1fr) minmax(180px,1fr);align-items:center;gap:22px;display:grid}.concert-main{align-items:center;gap:13px;min-width:0;display:flex}.concert-icon{background:var(--color-surface-muted);border-radius:11px;flex:0 0 44px;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.15rem;display:flex}.concert-title-content{min-width:0}.concert-titre{color:var(--color-text-primary);overflow-wrap:anywhere;margin:0;font-size:1rem;font-weight:650;line-height:1.35}.concert-document{min-width:0}.concert-action{border:1px solid var(--color-border);background:var(--color-surface-soft);min-height:48px;color:var(--color-text-primary);border-radius:9px;align-items:center;gap:10px;padding:8px 11px;text-decoration:none;transition:background .15s,border-color .15s,transform .15s;display:flex}.concert-action:hover{background:var(--color-surface-muted);border-color:var(--color-border);transform:translateY(-1px)}.concert-action-icon{font-size:1.15rem}.concert-action-content{flex-direction:column;gap:2px;min-width:0;display:flex}.concert-action-content strong{font-size:.85rem}.concert-action-content small{text-overflow:ellipsis;white-space:nowrap;max-width:100%;color:var(--color-text-muted);font-size:.7rem;overflow:hidden}.concert-action-disabled{box-sizing:border-box;border:1px dashed var(--color-border);background:var(--color-surface-soft);min-height:48px;color:var(--color-text-muted);border-radius:9px;align-items:center;gap:9px;padding:8px 11px;font-size:.8rem;display:flex}.concerts-loading{min-height:180px;color:var(--color-text-muted);justify-content:center;align-items:center;gap:10px;font-size:.9rem;display:flex}.concerts-loading-icon{font-size:1.2rem;animation:1.5s linear infinite concerts-loading-spin}.concerts-empty{border:1px dashed var(--color-border);background:var(--color-surface-soft);color:var(--color-text-secondary);border-radius:12px;align-items:center;gap:14px;padding:25px;display:flex}.concerts-empty-icon{background:var(--color-surface-muted);border-radius:11px;flex:0 0 44px;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.2rem;display:flex}.concerts-empty strong{color:var(--color-text-primary);margin-bottom:4px;font-size:.9rem;display:block}.concerts-empty p{color:var(--color-text-muted);margin:0;font-size:.82rem;line-height:1.4}.concert-informations{flex-direction:column;gap:8px;min-width:0;display:flex}.concert-information{align-items:center;gap:9px;min-width:0;display:flex}.concert-information-icon{background:var(--color-surface-muted);border-radius:9px;flex:0 0 34px;justify-content:center;align-items:center;width:34px;height:34px;font-size:.95rem;display:flex}.concert-information-content{flex-direction:column;gap:2px;min-width:0;display:flex}.concert-information-content strong{text-overflow:ellipsis;color:var(--color-text-primary);font-size:.78rem;font-weight:600;overflow:hidden}.concert-information-content small{text-overflow:ellipsis;color:var(--color-text-muted);font-size:.7rem;overflow:hidden}.concert-icon-button{cursor:pointer;background:0 0;border:0;border-radius:11px;justify-content:center;align-items:center;width:100%;height:100%;padding:0;font-size:1.15rem;line-height:1;transition:background .18s,transform .18s,box-shadow .18s;display:flex}.concert-icon-button:hover:not(:disabled){background:var(--color-surface-muted);transform:scale(1.06);box-shadow:0 3px 10px #30343b14}.concert-icon-button:active:not(:disabled){transform:scale(.96)}.concert-icon-button:focus-visible{outline:2px solid var(--color-text-muted);outline-offset:2px}.concert-icon-button:disabled{cursor:wait;opacity:.65}.concert-icon-spinner{font-size:1.15rem;animation:.8s linear infinite concert-icon-spin;display:inline-block}.concert-chansons-overlay{z-index:1000;box-sizing:border-box;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#30343b7a;justify-content:center;align-items:center;padding:24px;animation:.18s concert-modal-overlay-in;display:flex;position:fixed;inset:0}.concert-chansons-modal{background:var(--color-surface);border:1px solid #30343b14;border-radius:18px;flex-direction:column;width:100%;max-width:580px;max-height:min(720px,100vh - 48px);animation:.22s concert-modal-in;display:flex;overflow:hidden;box-shadow:0 20px 60px #30343b2e}.concert-chansons-modal-header{border-bottom:1px solid var(--color-surface-muted);background:var(--color-surface);justify-content:space-between;align-items:center;gap:16px;padding:20px 20px 17px;display:flex}.concert-chansons-modal-title-wrapper{align-items:center;gap:12px;min-width:0;display:flex}.concert-chansons-modal-icon{background:var(--color-surface-muted);border-radius:12px;flex:0 0 44px;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.15rem;display:flex}.concert-chansons-modal-eyebrow{text-transform:uppercase;letter-spacing:.11em;color:var(--color-text-muted);margin-bottom:3px;font-size:.68rem;font-weight:700}.concert-chansons-modal-title{font-family:var(--font-family);color:var(--color-text-primary);overflow-wrap:anywhere;margin:0;font-size:1.3rem;line-height:1.25}.concert-chansons-close{background:var(--color-surface-muted);width:36px;height:36px;color:var(--color-text-secondary);cursor:pointer;border:0;border-radius:10px;flex:0 0 36px;justify-content:center;align-items:center;padding:0;font-size:1.55rem;font-weight:300;line-height:1;transition:background .15s,color .15s,transform .15s;display:flex}.concert-chansons-close:hover{background:var(--color-surface-muted);color:var(--color-text-primary);transform:scale(1.04)}.concert-chansons-modal-content{flex:1;min-height:0;padding:16px 20px 20px;overflow-y:auto}.concert-chansons-list{flex-direction:column;gap:7px;display:flex}.concert-chanson-item{box-sizing:border-box;border:1px solid var(--color-surface-muted);background:var(--color-surface-soft);border-radius:11px;align-items:center;gap:12px;min-height:52px;padding:7px 10px 7px 7px;transition:background .15s,border-color .15s,transform .15s,box-shadow .15s;display:flex}.concert-chanson-item:hover{background:var(--color-surface);border-color:var(--color-border);transform:translate(2px);box-shadow:0 3px 12px #30343b0d}.concert-chanson-number{background:var(--color-surface-muted);width:36px;height:36px;color:var(--color-text-secondary);border-radius:9px;flex:0 0 36px;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:flex}.concert-chanson-content{flex:1;min-width:0}.concert-chanson-title{color:var(--color-text-primary);overflow-wrap:anywhere;font-size:.9rem;font-weight:600;line-height:1.35;display:block}.concert-chanson-arrow{color:var(--color-text-muted);flex:none;font-size:1.25rem;transition:transform .15s,color .15s}.concert-chanson-item:hover .concert-chanson-arrow{color:var(--color-text-secondary);transform:translate(2px)}.concert-chansons-empty{text-align:center;min-height:180px;color:var(--color-text-muted);flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:30px;display:flex}.concert-chansons-empty-icon{background:var(--color-surface-muted);border-radius:14px;justify-content:center;align-items:center;width:52px;height:52px;margin-bottom:5px;font-size:1.3rem;display:flex}.concert-chansons-empty strong{color:var(--color-text-primary);font-size:.9rem}.concert-chansons-empty span{max-width:300px;font-size:.78rem;line-height:1.45}.rendezvous-type-concert,.rendezvous-type-regroup,.rendezvous-type-repet{border-left-width:1px;border-right-width:1px}.repetition-card.rendezvous-type-repet{border-left-color:var(--rendezvous-repetition-color);border-right-color:var(--rendezvous-repetition-color)}.concert-card.rendezvous-type-concert{border-left-color:var(--rendezvous-concert-color);border-right-color:var(--rendezvous-concert-color)}.concert-chansons-modal-footer{border-top:1px solid var(--color-surface-muted);background:var(--color-surface-soft);color:var(--color-text-muted);justify-content:space-between;align-items:center;gap:12px;padding:13px 20px;font-size:.72rem;display:flex}.concert-chansons-close-button{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);font:inherit;cursor:pointer;border-radius:8px;padding:7px 13px;font-size:.75rem;font-weight:600;transition:background .15s,border-color .15s,color .15s}.concert-chansons-close-button:hover{background:var(--color-surface-muted);border-color:var(--color-border-strong);color:var(--color-text-primary)}.concert-information-map{cursor:pointer;border-radius:8px;transition:background .15s,transform .15s}.concert-information-map:hover{background:#30343b0a}.concert-information-map:active{transform:scale(.99)}.concert-information-map:focus-visible{outline-offset:3px;outline:2px solid}.concerts-page-header-icon{background:var(--color-complement-soft);border:1px solid var(--color-complement-border);color:var(--color-complement-strong)}.concerts-page-header-icon [class^=icon-]:before,.concerts-page-header-icon [class*=\ icon-]:before,.concerts-page-header-icon[class^=icon-]:before,.concerts-page-header-icon[class*=\ icon-]:before{color:var(--color-complement-strong)!important}.concerts-page-title{color:var(--color-complement-strong)}.concerts-page-count{background:var(--color-complement-soft);border:1px solid var(--color-complement-border)}.concerts-page-count strong{color:var(--color-complement-strong)}.repetition-card.rendezvous-type-repet{border-left:3px solid var(--color-complement);border-right:3px solid var(--color-complement);background:var(--color-surface)}.repetition-card.rendezvous-type-repet .concert-icon{background:var(--color-complement-soft);border:1px solid var(--color-complement-border)}.repetition-card.rendezvous-type-repet .concert-icon:before{color:var(--color-complement-strong)!important}.repetition-card.rendezvous-type-repet .concert-titre{color:var(--color-complement-strong)}.repetition-card .concert-information-icon{background:var(--color-complement-soft)}@media (width<=700px){.concerts-page-header{align-items:flex-start;gap:11px;margin-bottom:20px;padding-bottom:18px}.concerts-page-header-icon{border-radius:11px;flex-basis:44px;width:44px;height:44px;font-size:1.2rem}.concerts-page-title{font-size:1.55rem}.concerts-page-subtitle{margin-top:6px;font-size:.82rem;line-height:1.4}.concerts-page-count{border-radius:9px;min-width:48px;padding:7px 8px}.concerts-page-count strong{font-size:1.1rem}.concerts-page-count span{font-size:.62rem}.concerts-help{align-items:flex-start;gap:9px;margin-bottom:16px;padding:11px 12px}.concerts-help-icon{border-radius:8px;flex-basis:34px;width:34px;height:34px}.concerts-help strong{font-size:.82rem}.concerts-help span{font-size:.74rem;line-height:1.35}.concerts-list{gap:9px}.concert-card{border-radius:11px;padding:12px}.concert-card:hover{box-shadow:none;transform:none}.concert-row{grid-template-columns:1fr auto;align-items:center;gap:12px 10px;display:grid}.concert-main{grid-column:1/-1;gap:10px}.concert-icon{border-radius:9px;flex-basis:38px;width:38px;height:38px;font-size:1rem}.concert-titre{font-size:.92rem}.concert-document{grid-column:1;min-width:0}.concert-action{gap:7px;min-height:42px;padding:6px 9px}.concert-action-icon{font-size:1rem}.concert-action-content strong{font-size:.75rem}.concert-action-content small{display:none}.concert-action-disabled{min-height:42px;padding:6px 9px;font-size:.68rem}.concerts-error{padding:10px 12px;font-size:.78rem}.concerts-empty{align-items:flex-start;gap:10px;padding:18px 14px}.concerts-empty-icon{flex-basis:38px;width:38px;height:38px;font-size:1rem}.concerts-empty strong{font-size:.82rem}.concerts-empty p{font-size:.75rem}.concert-informations{grid-column:1;gap:6px}.concert-information{gap:7px}.concert-information-icon{border-radius:8px;flex-basis:30px;width:30px;height:30px;font-size:.85rem}.concert-information-content strong{font-size:.7rem}.concert-information-content small{font-size:.65rem}.concert-chansons-overlay{align-items:flex-end;padding:0}.concert-chansons-modal{border-bottom:0;border-radius:18px 18px 0 0;width:100%;max-width:none;max-height:88vh;animation:.25s concert-modal-mobile-in}@keyframes concert-modal-mobile-in{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.concert-chansons-modal-header{padding:16px 14px 14px}.concert-chansons-modal-title-wrapper{gap:9px}.concert-chansons-modal-icon{border-radius:10px;flex-basis:38px;width:38px;height:38px;font-size:1rem}.concert-chansons-modal-eyebrow{font-size:.62rem}.concert-chansons-modal-title{font-size:1.08rem}.concert-chansons-close{border-radius:9px;flex-basis:34px;width:34px;height:34px}.concert-chansons-modal-content{padding:12px 12px 16px}.concert-chansons-list{gap:6px}.concert-chanson-item{border-radius:10px;gap:10px;min-height:48px;padding:6px 8px 6px 6px}.concert-chanson-number{border-radius:8px;flex-basis:34px;width:34px;height:34px;font-size:.7rem}.concert-chanson-title{font-size:.82rem}.concert-chanson-arrow{font-size:1.1rem}.concert-chansons-modal-footer{padding:11px 14px;padding-bottom:max(11px, env(safe-area-inset-bottom));font-size:.68rem}.concert-chansons-close-button{padding:7px 11px;font-size:.7rem}}.trombinoscope-page{--trombi-forme-photo:50% 0 50% 50%;box-sizing:border-box;color:#164b43;width:100%;padding:18px 12px 30px}.trombinoscope-feuille{box-sizing:border-box;background:linear-gradient(110deg,#f5e7a1 0%,#a4d372 45%,#77c0a5 70%,#8495c3 100%);border-radius:18px;max-width:1500px;margin-inline:auto;padding:22px 24px 32px;box-shadow:0 4px 24px #184a3b1f}.trombi-entete{grid-template-columns:140px minmax(0,1fr) 140px;align-items:center;gap:14px;margin-bottom:24px;display:grid}.trombi-invite{text-align:center;flex-direction:column;align-items:center;gap:6px;min-width:0;display:flex}.trombi-invite-visuel{justify-content:center;align-items:center;width:88px;height:88px;display:flex}.trombi-invite-visuel .chanteur-avatar,.trombi-invite-visuel .chanteur-avatar__image,.trombi-invite-vide{border-radius:var(--trombi-forme-photo)}.trombi-invite-visuel .chanteur-avatar{color:#275f54;background:#e7eeec;font-size:1.1rem;font-weight:700;overflow:hidden}.trombi-invite-vide{box-sizing:border-box;color:#345f5c;border:2px dashed #14413752;place-items:center;width:88px;height:88px;font-size:24px;display:grid}.trombi-invite-texte{flex-direction:column;align-items:center;gap:2px;min-width:0;display:flex}.trombi-invite-fonction{font-size:11px;font-weight:600}.trombi-invite-nom{overflow-wrap:anywhere;text-transform:uppercase;max-width:100%;font-size:12px;line-height:1.2}.trombi-invite-option{color:#536a69;font-size:10px}.trombi-identite-chorale{box-sizing:border-box;background:#ffffff38;border:1.5px solid #154a4161;border-radius:12px;justify-content:center;align-items:center;gap:clamp(8px,2vw,32px);min-width:0;min-height:108px;padding:12px 18px;display:flex}.trombi-logo{object-fit:contain;flex:none;width:min(180px,30%);max-height:84px}.trombi-identite-saison{text-align:center;min-width:0}.trombi-identite-saison h1{color:#164b43;margin:0 0 5px;font-size:clamp(17px,2.25vw,29px);font-weight:700;line-height:1.2}.trombi-identite-saison h1 span{display:inline-block}.trombi-identite-saison p{color:#164b43;margin:0;font-size:clamp(13px,1.65vw,21px);font-weight:500}.trombi-barre-outils{background:#ffffffc7;border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:14px;margin-bottom:22px;padding:12px 14px;display:flex}.trombi-filtres{flex-wrap:wrap;align-items:end;gap:12px;min-width:0;display:flex}.trombi-filtres label{color:#254b43;flex-direction:column;gap:5px;min-width:0;font-size:12px;font-weight:700;display:flex}.trombi-filtres select{box-sizing:border-box;color:#183d37;min-width:190px;max-width:100%;min-height:40px;font:inherit;background:#fff;border:1px solid #b2cfc5;border-radius:9px;padding:8px 10px;font-size:13px}.trombi-filtres select:focus-visible{outline-offset:2px;outline:3px solid #176c59}.trombi-actions{align-items:center;gap:12px;display:flex}.trombi-compteur{white-space:nowrap;font-size:12px;font-weight:700}.trombi-imprimer{color:#fff;font:inherit;cursor:pointer;background:#176c59;border:0;border-radius:8px;justify-content:center;align-items:center;padding:9px 15px;font-size:13px;font-weight:700;display:inline-flex}.trombi-imprimer:hover{background:#104d42}.trombi-imprimer:focus-visible{outline-offset:3px;outline:3px solid #176c59}.trombi-erreur button{color:#fff;cursor:pointer;background:#19685a;border:0;border-radius:7px;padding:9px 15px;font-weight:700}.trombi-erreur button:hover{background:#104d42}.trombi-sections{flex-direction:column;gap:27px;display:flex}.trombi-section-titre{border-bottom:2px solid var(--trombi-couleur-groupe);color:#173f39;flex-wrap:wrap;align-items:baseline;gap:8px 10px;margin:0 0 16px;padding-bottom:9px;font-size:17px;display:flex}.trombi-section-indicateur{background:var(--trombi-couleur-groupe);border-radius:50%;flex:0 0 13px;width:13px;height:13px}.trombi-section-titre small{font-size:13px;font-weight:400}.trombi-section-effectif{margin-left:auto;font-size:12px}.trombi-grille{grid-template-columns:repeat(10,minmax(0,1fr));gap:23px 8px;display:grid}.trombi-personne{text-align:center;flex-direction:column;align-items:center;gap:6px;min-width:0;display:flex}.trombi-personne-photo{box-sizing:border-box;border:3px solid var(--trombi-couleur-groupe);border-radius:var(--trombi-forme-photo);background:#ffffffbf;flex:none;width:96px;height:96px;padding:4px;overflow:hidden}.trombi-personne--groupe-selectionne .trombi-personne-photo{background:0 0;border:0;padding:0}.trombi-personne--groupe-selectionne{border-bottom:0}.trombi-personne-photo .chanteur-avatar{border-radius:var(--trombi-forme-photo);color:#536e6c;background:#e1e8e5;font-weight:700;overflow:hidden;flex:1!important;width:100%!important;min-width:0!important;height:100%!important}.trombi-personne-photo .chanteur-avatar__image{border-radius:var(--trombi-forme-photo);object-fit:cover}.trombi-personne-photo .chanteur-avatar__fallback{font-size:24px}.trombi-personne-identite{overflow-wrap:anywhere;text-transform:uppercase;flex-direction:column;justify-content:flex-start;gap:1px;width:100%;font-size:11px;line-height:1.25;display:flex}.trombi-personne-prenom{font-weight:600}.trombi-personne-nom{font-weight:800}.trombi-personne-fonction-ca{color:#294c44;overflow-wrap:anywhere;max-width:100%;font-size:10px;font-weight:700;line-height:1.25}.trombi-personne-groupe{overflow-wrap:anywhere;justify-content:center;align-items:center;gap:4px;min-width:0;max-width:100%;font-size:10px;line-height:1.1;display:flex}.trombi-personne-point{background:var(--trombi-couleur-groupe);border:1px solid #fff;border-radius:50%;flex:0 0 7px;width:7px;height:7px}.trombi-etat{text-align:center;background:#edf6f3;border-radius:12px;padding:30px}.trombi-erreur{color:#923b34}.trombi-aucun{text-align:center;padding:32px 0}@media (width<=1200px){.trombi-grille{grid-template-columns:repeat(8,minmax(0,1fr))}.trombi-personne-photo{width:84px;height:84px}}@media (width<=980px){.trombi-grille{grid-template-columns:repeat(5,minmax(0,1fr));gap:22px 10px}.trombi-personne-photo{width:94px;height:94px}.trombi-entete{grid-template-columns:110px minmax(0,1fr) 110px}.trombi-logo{max-height:70px}}@media (width<=720px){.trombi-imprimer{display:none}.trombinoscope-page{padding:8px 6px 22px}.trombinoscope-feuille{border-radius:14px;padding:14px 13px 24px}.trombi-entete{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:12px;margin-bottom:18px}.trombi-identite-chorale{grid-area:1/1/auto/-1;justify-content:center;gap:15px;min-height:0;padding:12px}.trombi-entete>.trombi-invite:first-child{grid-area:2/1}.trombi-entete>.trombi-invite:last-child{grid-area:2/2}.trombi-invite{background:#ffffff57;border-radius:12px;justify-content:flex-start;padding:10px 7px}.trombi-logo{width:min(118px,30%);max-height:68px}.trombi-identite-saison h1{font-size:clamp(19px,4vw,26px)}.trombi-identite-saison p{font-size:14px}.trombi-invite-visuel,.trombi-invite-visuel .chanteur-avatar,.trombi-invite-vide{width:66px!important;min-width:66px!important;height:66px!important}.trombi-barre-outils{gap:10px;padding:12px}.trombi-filtres{gap:10px;width:100%}.trombi-filtres label{flex:180px}.trombi-filtres select{width:100%;min-width:0;min-height:44px}.trombi-actions{justify-content:flex-end;width:100%}.trombi-grille{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.trombi-personne{border-bottom:3px solid var(--trombi-couleur-groupe);background:#ffffff85;border-radius:12px;gap:6px;padding:12px 5px 10px;box-shadow:0 1px 4px #14322814}.trombi-personne--groupe-selectionne{border-bottom:0}.trombi-personne-photo{width:88px;height:88px}.trombi-personne-identite{font-size:11px}.trombi-personne-groupe{font-size:10px}.trombi-section-titre{font-size:16px}}@media (width<=520px){.trombi-identite-chorale{flex-direction:column;gap:7px}.trombi-logo{width:min(144px,60%);max-height:62px}.trombi-identite-saison h1{font-size:clamp(19px,5vw,23px)}.trombi-identite-saison p{font-size:13px}.trombi-invite-fonction,.trombi-invite-nom{font-size:11px}.trombi-invite-option{font-size:9px}.trombi-filtres label{flex:100%;width:100%}.trombi-grille{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 10px}.trombi-personne-photo{width:96px;height:96px}.trombi-personne-identite{font-size:12px}.trombi-personne-groupe{font-size:10px}}@media (width<=340px){.trombinoscope-page{padding-inline:2px}.trombinoscope-feuille{padding-inline:8px}.trombi-entete{gap:8px}.trombi-personne-photo{width:84px;height:84px}.trombi-grille{gap:9px 7px}}@media print{@page{size:A4 landscape;margin:8mm}.trombinoscope-page,.trombinoscope-feuille{width:100%;box-shadow:none;-webkit-print-color-adjust:exact;print-color-adjust:exact;border-radius:0;margin:0;padding:0}.trombi-entete{grid-template-columns:120px minmax(0,1fr) 120px;margin-bottom:14px}.trombi-entete>.trombi-invite:first-child,.trombi-entete>.trombi-invite:last-child,.trombi-identite-chorale{grid-area:auto}.trombi-identite-chorale{flex-direction:row}.trombi-barre-outils{display:none!important}.trombi-grille{gap:14px 5px;grid-template-columns:repeat(10,minmax(0,1fr))!important}.trombi-personne{box-shadow:none;background:0 0;border:none;padding:0}.trombi-personne-photo{border-width:2px;width:66px;height:66px;padding:2px}.trombi-personne-identite{font-size:8px}.trombi-personne-groupe,.trombi-personne-fonction-ca{font-size:7px}.trombi-personne{break-inside:avoid}.trombi-section{break-inside:auto}}.notifications-admin{box-sizing:border-box;color:#282635;text-align:left;width:min(100%,780px);margin:0 auto;padding:24px 20px 48px}.notifications-admin__header h1{margin:0 0 12px;font-size:clamp(1.55rem,3vw,2rem);line-height:1.2}.notifications-admin__header p{color:#5c5b69;margin:0 0 24px;line-height:1.5}.notifications-admin__form,.notifications-admin__result{background:#fff;border:1px solid #dedee6;border-radius:12px;flex-direction:column;gap:18px;padding:24px;display:flex}.notifications-admin__field{flex-direction:column;gap:6px;display:flex}.notifications-admin__field label,.notifications-admin__preview>strong{font-weight:650}.notifications-admin__field input,.notifications-admin__field textarea{box-sizing:border-box;color:#262631;width:100%;font:inherit;background:#fff;border:1px solid #bcbcca;border-radius:8px;padding:12px}.notifications-admin__field textarea{resize:vertical}.notifications-admin__field input:focus-visible,.notifications-admin__field textarea:focus-visible,.notifications-admin__button:focus-visible,.notifications-admin__confirmation input:focus-visible,.notifications-admin__recipient input:focus-visible{outline-offset:2px;outline:3px solid #90bff7}.notifications-admin__field small{color:#6a6977;align-self:flex-end}.notifications-admin__preview{gap:12px;display:grid}.notifications-admin__preview-content{background:#f4f6fb;border:1px solid #e1e6f0;border-radius:10px;align-items:flex-start;gap:12px;padding:16px;display:flex}.notifications-admin__preview-content p{overflow-wrap:anywhere;white-space:pre-wrap;margin:6px 0 0}.notifications-admin__button{min-height:44px;font:inherit;cursor:pointer;border-radius:8px;justify-content:center;align-self:flex-start;align-items:center;padding:10px 18px;font-weight:650;display:inline-flex}.notifications-admin__button:disabled{cursor:not-allowed;opacity:.5}.notifications-admin__button--secondary{color:#343041;background:#fff;border:1px solid #9d9baa}.notifications-admin__button--primary{color:#fff;background:#244e99;border:1px solid #244e99}.notifications-admin__result{margin-top:20px}.notifications-admin__result h2{margin:0;font-size:1.2rem}.notifications-admin__result p{line-height:1.5}.notifications-admin__confirmation{align-items:flex-start;gap:10px;min-height:44px;font-weight:600;line-height:1.4;display:flex}.notifications-admin__confirmation input{flex-shrink:0;width:18px;height:18px;margin:4px 0 0}.notifications-admin__error,.notifications-admin__warning{color:#9b2424}.notifications-admin__error{background:#fff5f5;border:1px solid #e3a3a3;border-radius:8px;margin-top:16px;padding:14px}.notifications-admin__note{color:#6a6977}.notifications-admin__recipients{border:1px solid #dedee6;border-radius:10px;min-width:0;margin:0;padding:16px}.notifications-admin__recipients legend{padding:0 6px;font-weight:650}.notifications-admin__recipients p{line-height:1.5}.notifications-admin__selection-actions{flex-wrap:wrap;gap:10px;margin:12px 0;display:flex}.notifications-admin__recipient-list{border:1px solid #dedee6;border-radius:8px;max-height:360px;overflow-y:auto}.notifications-admin__recipient{box-sizing:border-box;cursor:pointer;align-items:center;gap:12px;min-height:44px;padding:8px 12px;display:flex}.notifications-admin__recipient+.notifications-admin__recipient{border-top:1px solid #eeeef3}.notifications-admin__recipient input{flex-shrink:0;width:20px;height:20px;margin:0}.notifications-admin__recipient span{overflow-wrap:anywhere}.notifications-admin__recipients:disabled .notifications-admin__recipient{cursor:wait}.notifications-admin__selection-count{margin-bottom:0;font-weight:600}@media (width<=600px){.notifications-admin{padding:18px 12px 32px}.notifications-admin__form,.notifications-admin__result{padding:16px}.notifications-admin__button{width:100%}.notifications-admin__recipients{padding:12px}.notifications-admin__selection-actions{flex-direction:column}.notifications-admin__recipient-list{max-height:300px}}.notifications-admin-history{min-width:0;margin-top:32px}.notifications-admin-history__header,.notifications-admin-history__pagination{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.notifications-admin-history__header h2{margin:0}.notifications-admin-history button{color:#343041;min-height:44px;font:inherit;cursor:pointer;background:#fff;border:1px solid #9d9baa;border-radius:8px;padding:10px 16px}.notifications-admin-history button:disabled{opacity:.5;cursor:default}.notifications-admin-history button:focus-visible{outline-offset:2px;outline:3px solid #90bff7}.notifications-admin-history__message{overflow-wrap:anywhere;background:#fff;border:1px solid #dedee6;border-radius:12px;margin:16px 0;padding:20px}.notifications-admin-history__message h3{margin:0 0 10px}.notifications-admin-history__meta{color:#5c5b69}.notifications-admin-history__content{white-space:pre-wrap;line-height:1.6}@media (width<=600px){.notifications-admin-history__message{padding:16px}.notifications-admin-history__pagination{flex-direction:column}.notifications-admin-history__pagination button{width:100%}}.notifications-chanteur{max-width:1000px;color:var(--color-text-primary,#262333);margin:0 auto;padding:32px}.notifications-chanteur *,.notifications-chanteur :before,.notifications-chanteur :after{box-sizing:border-box}.notifications-chanteur-toolbar,.notifications-chanteur-message-heading,.notifications-chanteur-pagination{justify-content:space-between;align-items:center;gap:12px;display:flex}.notifications-chanteur-toolbar{margin:22px 0}.notifications-chanteur-summary,.notifications-chanteur-meta{color:var(--color-text-secondary,#60596c);font-size:.9rem}.notifications-chanteur-summary{margin:0}.notifications-chanteur-list{gap:16px;margin:0;padding:0;list-style:none;display:grid}.notifications-chanteur-list>li{min-width:0}.notifications-chanteur-message{border:1px solid var(--color-border,#dedbe5);border-left:4px solid var(--color-border,#dedbe5);background:var(--color-surface,#fff);overflow-wrap:anywhere;border-radius:12px;min-width:0;padding:20px}.notifications-chanteur-message--non-lu{border-left-color:var(--color-brand,#7047a6);background:var(--color-surface-muted,#f7f5fb)}.notifications-chanteur-message-heading{grid-template-columns:minmax(0,1fr) 44px auto;align-items:start;gap:8px;display:grid}.notifications-chanteur-title{white-space:pre-wrap;align-self:center;min-width:0;margin:0;font-size:1.1rem;line-height:1.4}.notifications-chanteur-read-state{color:#503a73;white-space:nowrap;cursor:pointer;background:#e9e2f6;border:1px solid #0000;border-radius:20px;justify-content:center;align-items:center;gap:6px;min-height:44px;padding:8px 10px;font-family:inherit;font-size:.75rem;font-weight:700;display:inline-flex}.notifications-chanteur-read-state--lu{color:#3e5a46;background:#edf0ed}.notifications-chanteur-meta{flex-wrap:wrap;gap:4px 16px;margin:10px 0 14px;line-height:1.5;display:flex}.notifications-chanteur-content{white-space:pre-wrap;margin:0;line-height:1.6}.notifications-chanteur-content--preview{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.notifications-chanteur-chevron{border:1px solid var(--color-border,#d7d1e1);width:44px;min-height:44px;color:var(--color-text-primary,#393144);cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;padding:0;display:inline-flex}.notifications-chanteur-chevron svg{transition:transform .16s}.notifications-chanteur-chevron--ouvert svg{transform:rotate(180deg)}.notifications-chanteur-read-state:hover:not(:disabled),.notifications-chanteur-chevron:hover{border-color:var(--color-brand,#7047a6)}.notifications-chanteur-read-state:focus-visible,.notifications-chanteur-chevron:focus-visible{outline:2px solid var(--color-brand,#7047a6);outline-offset:3px}.notifications-chanteur-read-state:disabled{opacity:.6;cursor:wait}@media (prefers-reduced-motion:reduce){.notifications-chanteur-chevron svg{transition:none}}.notifications-chanteur-button{border:1px solid var(--color-border,#d7d1e1);background:var(--color-brand,#7047a6);color:#fff;max-width:100%;min-height:44px;font:inherit;cursor:pointer;border-radius:8px;padding:10px 15px;font-size:.9rem;font-weight:600;line-height:1.4}.notifications-chanteur-button:focus-visible{outline-offset:3px;outline:2px solid #65518b}.notifications-chanteur-button:disabled{opacity:.6;cursor:default}.notifications-chanteur-status,.notifications-chanteur-error{border:1px solid var(--color-border,#dedbe5);background:var(--color-surface,#fff);overflow-wrap:anywhere;border-radius:10px;padding:18px;line-height:1.5}.notifications-chanteur-error{color:#9f2339;background:#fff3f4;border-color:#efccd3}.notifications-chanteur-error p{margin-top:0}.notifications-chanteur-pagination{margin-top:24px;font-size:.9rem}@media (width<=700px){.notifications-chanteur{width:100%;min-width:0;padding:24px 16px 40px}.notifications-chanteur-message{padding:16px}.notifications-chanteur-toolbar{align-items:flex-start}.notifications-chanteur-toolbar .notifications-chanteur-button{flex-shrink:0}.notifications-chanteur-pagination{flex-wrap:wrap;justify-content:center}}.storage-cache-admin{text-align:left;max-width:780px;margin:0 auto;padding:24px}.storage-cache-admin article{background:#fff;border:1px solid #dedee6;border-radius:10px;margin-top:20px;padding:20px}.storage-cache-admin button{font:inherit;cursor:pointer;margin:8px 8px 0 0;padding:10px 14px}.storage-cache-admin button:disabled{cursor:wait;opacity:.6}.storage-cache-admin [role=alert]{color:#9b2424}.storage-cache-admin [role=status]{color:#225c31}:root{--font-family:"Sora", "Segoe UI", Arial, sans-serif;--color-text-primary:#30343b;--color-text-secondary:#5f6670;--color-text-muted:#6f7680;--color-brand:#7047a6;--color-brand-strong:#5c348e;--color-brand-soft:#f2edf7;--color-brand-border:#d8cae8;--color-complement:#7da647;--color-complement-strong:#668e34;--color-complement-soft:#f1f6ea;--color-complement-border:#c9ddb0;--color-accent:#2d7a74;--color-accent-strong:#225f5b;--color-accent-soft:#e9f3f2;--color-accent-border:#bfd8d5;--color-regroup:#5f8f68;--color-regroup-strong:#466c4e;--color-regroup-soft:#edf7ef;--color-background:#f7f8fa;--color-surface:#fff;--color-surface-soft:#fafafb;--color-surface-muted:#f1f3f5;--color-border:#dde1e6;--color-border-strong:#c9ced6;--color-surface-dark:#30343b;--color-surface-dark-soft:#3b4048;--color-border-dark:#59616b;--color-text-on-dark:#f7f8fa;--color-success:#2d7a74;--color-success-strong:#225f5b;--color-success-soft:#e9f3f2;--color-success-border:#bfd8d5;--color-warning:#9a651f;--color-warning-strong:#7a4e16;--color-warning-soft:#fff6e8;--color-warning-border:#e9c88f;--color-danger:#a94444;--color-danger-soft:#fbecec;--color-danger-border:#e5b9b9;--color-icon-inactive:#30343b;--color-icon-active:#7047a6;--shadow-sm:0 2px 8px #30343b12;--shadow-md:0 8px 24px #30343b1a;--shadow-lg:0 20px 50px #30343b29;--text-primary:var(--color-text-primary);--text-secondary:var(--color-text-secondary);--text-color:var(--color-text-primary);--border-color:var(--color-border);--background-secondary:var(--color-surface);--surface-color:var(--color-surface);--surface-muted:var(--color-surface-muted);--chanteur-background:var(--color-background);--chanteur-sidebar-background:var(--color-surface)}html{color:var(--color-text-primary);background:var(--color-background);font-family:var(--font-family);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body,button,input,select,textarea{font-family:var(--font-family)}body{color:var(--color-text-primary);background:var(--color-background)}h1,h2,h3,h4,h5,h6{color:var(--color-text-primary);font-family:var(--font-family);font-weight:600}a{color:var(--color-brand)}a:hover{color:var(--color-accent-strong)}::selection{color:var(--color-text-primary);background:var(--color-accent-soft)}:focus-visible{outline-color:var(--color-brand)}[class^=icon-]:before,[class*=\ icon-]:before{letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased;font-feature-settings:"liga";vertical-align:-.16em;direction:ltr;font-size:1.35em;line-height:1;color:var(--color-icon-inactive)!important;background-image:none!important;font-family:Material Symbols Outlined!important;font-style:normal!important;font-weight:400!important}.icon-new:before{content:"add_circle"!important}.icon-excel:before{content:"table_view"!important}.icon-save:before{content:"save"!important}.icon-edit:before{content:"edit"!important}.icon-delete:before{content:"delete"!important}.icon-cancel:before{content:"close"!important}.icon-dashboard:before{content:"home"!important}.icon-saison:before{content:"calendar_month"!important}.icon-chanteurs:before{content:"person"!important}.icon-chanson:before{content:"music_note"!important}.icon-groupe:before{content:"groups"!important}.icon-concert:before{content:"mic"!important}.icon-chanteursaison:before,.icon-chanteurSaison:before{content:"group_add"!important}.icon-lead_actif:before,.icon-saisonactive:before{content:"star"!important}.icon-repetition:before{content:"event_repeat"!important}.icon-lieux:before{content:"location_on"!important}.icon-pupitre:before{content:"queue_music"!important}.icon-document:before{content:"description"!important}.icon-trombi:before{content:"recent_actors"!important}.icon-invitation:before{content:"mail"!important}.icon-votes:before{content:"how_to_vote"!important}.icon-inscription:before{content:"edit_note"!important}.icon-etaterreur:before{content:"error"!important}.icon-alerte:before{content:"notifications_active"!important}.icon-avertissement:before{content:"warning"!important}.icon-profil:before{content:"account_circle"!important}.icon-telechargement:before{content:"download"!important}.icon-referentiels:before{content:"library_books"!important}.icon-valider:before{content:"check_circle"!important}.icon-refuser:before{content:"cancel"!important}.icon-pending:before{content:"hourglass_top"!important}.icon-none:before{content:"radio_button_unchecked"!important}.icon-unknown:before{content:"help"!important}.icon-warning:before{content:"warning"!important}.icon-musical-note:before{content:"music_note"!important}.icon-todo:before{content:"checklist"!important}.icon-calendar:before{content:"calendar_month"!important}.icon-check:before{content:"check"!important}.icon-gestion:before{content:"settings"!important}.icon-checked:before{content:"check_circle"!important}.icon-accepted:before{content:"thumb_up"!important}.icon-loupe:before{content:"search"!important}.icon-sort-asc:before{content:"arrow_upward"!important}.icon-sort-desc:before{content:"arrow_downward"!important}.active[class^=icon-]:before,.active[class*=\ icon-]:before,.selected[class^=icon-]:before,.selected[class*=\ icon-]:before,[aria-current=page][class^=icon-]:before,[aria-current=page][class*=\ icon-]:before,.active [class^=icon-]:before,.active [class*=\ icon-]:before,.selected [class^=icon-]:before,.selected [class*=\ icon-]:before,[aria-current=page] [class^=icon-]:before,[aria-current=page] [class*=\ icon-]:before{color:var(--color-icon-active)!important;font-weight:500!important}.icon-etaterreur:before,.icon-refuser:before{color:var(--color-danger)!important}.icon-alerte:before,.icon-avertissement:before,.icon-warning:before{color:var(--color-warning)!important}.icon-valider:before,.icon-checked:before,.icon-accepted:before{color:var(--color-success)!important}.text-brand{color:var(--color-brand)!important}.text-brand-strong{color:var(--color-brand-strong)!important}.text-complement{color:var(--color-complement)!important}.text-complement-strong{color:var(--color-complement-strong)!important}.bg-brand{color:var(--color-text-primary);background-color:var(--color-brand)!important}.bg-brand-strong{color:#fff;background-color:var(--color-brand-strong)!important}.bg-brand-soft{background-color:var(--color-brand-soft)!important}.bg-complement{color:var(--color-text-primary);background-color:var(--color-complement)!important}.bg-complement-strong{color:#fff;background-color:var(--color-complement-strong)!important}.bg-complement-soft{background-color:var(--color-complement-soft)!important}.border-complement{border-color:var(--color-complement)!important}.border-complement-soft{border-color:var(--color-complement-border)!important}.icon-complement:before{color:var(--color-complement)!important}.icon-complement-strong:before{color:var(--color-complement-strong)!important}@media (width<=768px){:root{--shadow-md:0 5px 18px #30343b17;--shadow-lg:0 12px 32px #30343b21}body{font-size:15px}button,input,select,textarea{font-size:1rem}.animation-icon{transform-origin:50%;justify-content:center;align-items:center;animation:1.4s ease-in-out infinite animation-icon-pulse;display:inline-flex}.animation-icon:hover{animation-duration:.7s}@keyframes animation-icon-pulse{0%,to{transform:scale(1)rotate(0)}35%{transform:scale(1.16)rotate(-6deg)}65%{transform:scale(1.08)rotate(5deg)}}}@media (prefers-reduced-motion:reduce){.animation-icon{animation:none}}@media (width<=640px){body{font-size:14px}[class^=icon-]:before,[class*=\ icon-]:before{font-size:1.3em}}.pwa-update{box-sizing:border-box;background:var(--color-surface);border:1px solid var(--color-border);z-index:99999;border-radius:10px;width:calc(100% - 40px);max-width:500px;padding:16px;position:fixed;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #30343b2e}.pwa-update-message{flex-direction:column;gap:5px;margin-bottom:12px;display:flex}.pwa-update-message strong{font-size:1rem}.pwa-update-message span{font-size:.9rem}.pwa-update-actions{justify-content:flex-end;gap:8px;display:flex}.pwa-update-button{border:1px solid var(--color-border-strong);background:var(--color-surface);cursor:pointer;border-radius:6px;padding:8px 12px}.pwa-update-button-primary{background:var(--color-text-primary);border-color:var(--color-text-primary);color:var(--color-surface)}
