@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}}@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}}@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}}@media (width<=640px){body{font-size:14px}[class^=icon-]:before,[class*=\ icon-]:before{font-size:1.3em}}@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}}*{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-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{content:"star";background-image:url(/lead_actif.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-saisonactive:before{content:"star"}.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}.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}}@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:hover{background:var(--color-surface-muted);color:var(--color-text-primary)}.chanteur-menu-item.active{background:var(--color-surface-muted);color:var(--color-text-primary);font-weight:600}.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{align-items:center;display:flex}.chanson-document a,.chanson-audio a{color:var(--color-brand);text-decoration:none}.chanson-document 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-repetition-spe-color:var(--color-warning);--rendezvous-repetition-spe-bg:var(--color-warning-soft);--rendezvous-repetition-spe-label-bg:var(--color-warning-border);--rendezvous-repetition-spe-text:var(--color-warning-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}@media (width<=768px){.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;position:static}.chanteur-menu{box-sizing:border-box;scrollbar-width:none;flex-direction:row;align-items:stretch;gap:4px;width:100%;min-width:0;padding:6px 8px;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:0 0 56px;justify-content:center;align-items:center;width:56px;min-width:56px;max-width:56px;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}}.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}}@media (width<=640px){body{font-size:14px}[class^=icon-]:before,[class*=\ icon-]:before{font-size:1.3em}}@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}}@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:#16a34a;--participation-selected-bg:#ecfdf3;--participation-selected-border:#86d3a0;--participation-focus:#16a34a29}.participation-buttons>.participation-button--no{--participation-active-color:#dc2626;--participation-selected-bg:#fff1f2;--participation-selected-border:#f3a6b7;--participation-focus:#dc262629}.participation-buttons>.participation-button--maybe{--participation-active-color:#d97706;--participation-selected-bg:#fffbeb;--participation-selected-border:#e9c76a;--participation-focus:#d9770629}.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}}@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-secondary:hover:not(:disabled){background:var(--color-surface-muted);border-color:var(--color-border-strong);color:var(--text-primary,var(--color-text-primary))}.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-repetition_spe,.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-repetition_spe{border-left-color:var(--rendezvous-repetition-spe-color);border-right-color:var(--rendezvous-repetition-spe-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-repetition_spe{background:var(--rendezvous-repetition-spe-bg);box-shadow:0 2px 8px #9a651f14}.rendezvous-type-repetition_spe .dashboard-rendezvous-type-label{background:var(--rendezvous-repetition-spe-label-bg);color:var(--rendezvous-repetition-spe-text);font-weight:700}.rendezvous-type-repetition_spe .dashboard-rendezvous-date-day{color:var(--rendezvous-repetition-spe-text)}.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}@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}}.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}}@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}}@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}}@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}}@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 input:focus,.form-edition-field select:focus,.form-edition-field textarea:focus{border-color:var(--color-text-muted);box-shadow:0 0 0 3px #30343b0a}.form-edition-field textarea{resize:vertical;min-height:110px}@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}}@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}}@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}}.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}}@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}}@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}}.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}}@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-header{border-bottom:1px solid var(--color-border);align-items:center;gap:18px;margin-bottom:28px;padding-bottom:26px;display:flex}.chansons-page-header-icon{background:var(--color-surface-muted);border-radius:14px;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-eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-muted);margin-bottom:4px;font-size:.75rem;font-weight:700}.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:.95rem;line-height:1.5}.chansons-page-count{border:1px solid var(--color-border);background:var(--color-surface-soft);border-radius:10px;flex-direction:column;align-items:center;min-width:70px;padding:10px 14px;display:flex}.chansons-page-count strong{color:var(--color-text-primary);font-size:1.25rem;line-height:1.2}.chansons-page-count span{color:var(--color-text-muted);margin-top:2px;font-size:.7rem}.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) minmax(0,1fr);align-items:center;gap:24px;width:100%;display:grid}.chanson-main,.chanson-info,.chanson-document,.chanson-pupitre,.chanson-audio{min-width:0}.chanson-main{grid-template-columns:40px minmax(0,1fr);align-items:center;gap:12px;width:100%;display:grid}.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}.chanson-title-content{grid-template-columns:minmax(0,1fr) 120px 180px;align-items:center;gap:12px;width:100%;min-width:0;display:grid}.chanson-titre{min-width:0;color:var(--color-text-primary);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:.98rem;font-weight:600;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-lead-icon{font-size:1.15rem}.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;font-size:.9rem;display:flex}.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-document,.chanson-action-audio{color:var(--color-text-secondary)}.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}@media (width<=700px){.chansons-page{padding:22px 14px 35px}.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-eyebrow{font-size:.68rem}.chansons-page-title{font-size:1.55rem}.chansons-page-subtitle{margin-top:6px;font-size:.82rem}.chansons-page-count{min-width:45px;padding:7px 8px}.chansons-page-count strong{font-size:1rem}.chansons-page-count span{font-size:.62rem}.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}.chanson-main{grid-template-columns:38px minmax(0,1fr);gap:8px;padding-bottom:2px}.chanson-icon{width:38px;height:38px}.chanson-title-content{grid-template-columns:minmax(0,1fr) max-content max-content;gap:6px}.chanson-titre{white-space:nowrap;text-overflow:ellipsis;font-size:.92rem;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}}@media (width<=400px){.chansons-page{padding-left:10px;padding-right:10px}.chanson-main{grid-template-columns:36px minmax(0,1fr);gap:6px}.chanson-icon{width:36px;height:36px}.chanson-title-content{gap:4px}.chanson-info{gap:5px}.chanson-action,.chanson-action-disabled{padding-left:6px;padding-right:6px}}.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}}@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}.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}}@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)}}@media (width<=700px){.chansons-page{padding:22px 14px 35px}.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-eyebrow{font-size:.68rem}.chansons-page-title{font-size:1.55rem}.chansons-page-subtitle{margin-top:6px;font-size:.82rem}.chansons-page-count{min-width:45px;padding:7px 8px}.chansons-page-count strong{font-size:1rem}.chansons-page-count span{font-size:.62rem}.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-lead-icon{font-size:1.05rem}.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}}@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-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}}@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}}@media (width<=640px){body{font-size:14px}[class^=icon-]:before,[class*=\ icon-]:before{font-size:1.3em}}.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}.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-repetition_spe,.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)}.repetition-card.rendezvous-type-repetition_spe{border-left-color:var(--rendezvous-repetition-spe-color);border-right:var(--rendezvous-repetition-spe-color);background:var(--rendezvous-repetition-spe-bg)}.repetition-card.rendezvous-type-repetition_spe .concert-icon{background:var(--rendezvous-repetition-spe-label-bg)}.repetition-card.rendezvous-type-repetition_spe .concert-titre{color:var(--rendezvous-repetition-spe-text)}.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)}.repetitions-groups{flex-direction:column;gap:1.25rem;display:flex}.repetitions-group{width:100%}.repetitions-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}.repetitions-group-toggle:hover{background:#30343b12}.repetitions-group-toggle:focus-visible{outline-offset:2px;outline:2px solid}.repetitions-group-toggle-title{align-items:center;gap:.65rem;display:flex}.repetitions-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}.repetitions-group-chevron{font-size:.75rem}.repetitions-group .concerts-list{margin-top:.75rem}.repetitions-group-empty{text-align:center;opacity:.65;padding:1rem}.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}@media (width<=700px){.concerts-page{width:100%;max-width:none;padding:20px 14px 35px}.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}}: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-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-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}@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}}@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)}
