/* =====================================================================
   VOCASNELLES - ESPACE PUBLIC ET ESPACE STAGIAIRE
   Une seule feuille, chargee une seule fois. Chaque module est porte
   par son conteneur : deux modules peuvent nommer une classe pareil
   sans se recouvrir.
   ===================================================================== */



/* =====================================================================
   Tokens et composants partages
   ===================================================================== */

:root {
 --vcsn-rouge: #CB5148;
 --vcsn-rouge-fonce: #b4453d;
 --vcsn-rouge-pale: #fdecea;
 --vcsn-rouge-bord: #f0d4d1;
 --vcsn-rouge-texte: #8c2f28;
 --vcsn-fond: #f7f5f3; 
 --vcsn-blanc: #ffffff; 
 --vcsn-gris-05: #fdfcfb; 
 --vcsn-gris-10: #f4f1ee; 
 --vcsn-gris-20: #e6e1dc; 
 --vcsn-gris-30: #d6cfc8; 
 --vcsn-gris-40: #c4bfba; 
 --vcsn-gris-50: #a8a29d; 
 --vcsn-gris-60: #7d7671; 
 --vcsn-gris-70: #6b6560; 
 --vcsn-gris-90: #4a443f; 
 --vcsn-noir: #2b2b2b; 
 --vcsn-vert: #1a6b34;
 --vcsn-bleu: #2c5f8d;
 --vcsn-bleu-pale: #eef3f8;
 --vcsn-bleu-bord: #cfdff0;
 --vcsn-vert-pale: #e9f6ec;
 --vcsn-vert-bord: #bbe5c6;
 --vcsn-ambre: #8a5a10;
 --vcsn-ambre-pale: #fdf3e3;
 --vcsn-ambre-bord: #f5dcae;
 --vcsn-danger: #a83a32;
 --vcsn-danger-pale: #fbeceb;
 --vcsn-danger-bord: #f3cdc9;
 --vcsn-info: #2c5f8d;
 --vcsn-info-pale: #eef3f8;
 --vcsn-info-bord: #cfdff0;
 --vcsn-r-xs: 6px;
 --vcsn-r-s: 8px;
 --vcsn-r-m: 10px;
 --vcsn-r-l: 14px;
 --vcsn-r-xl: 16px;
 --vcsn-r-pilule: 999px;
 --vcsn-o-1: 0 1px 5px rgba(0,0,0,.05);
 --vcsn-o-2: 0 2px 10px rgba(0,0,0,.05);
 --vcsn-o-3: 0 6px 18px rgba(0,0,0,.09);
 --vcsn-o-4: 0 10px 32px rgba(0,0,0,.14);
 --vcsn-t-xs: 11.5px;
 --vcsn-t-s: 12.5px;
 --vcsn-t-m: 14px;
 --vcsn-t-base: 15px;
 --vcsn-t-l: 17px;
 --vcsn-t-xl: 21px;
 --vcsn-t-2xl: 26px;
 --vcsn-e-1: 4px;
 --vcsn-e-2: 8px;
 --vcsn-e-3: 12px;
 --vcsn-e-4: 16px;
 --vcsn-e-5: 20px;
 --vcsn-e-6: 26px;
 --vcsn-e-7: 34px;
 --vcsn-bp-mobile: 640px;
 --vcsn-bp-tablette: 900px; 
 --vcsn-marge: 20px;
 --vcsn-marge-sm: 14px;
 --vcsn-touche: 44px;
 --vcsn-police: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
 --vcsn-largeur: 1080px;
 --vcsn-transition: .15s ease;
 }
 .vcsn-b {
 border: none;
 border-radius: var(--vcsn-r-m);
 padding: 11px 18px;
 font-weight: 600;
 font-size: var(--vcsn-t-m);
 font-family: inherit;
 cursor: pointer;
 display: inline-flex;
 align-items: center;
 justify-content: center;
 gap: 7px;
 text-decoration: none;
 white-space: nowrap;
 transition: background var(--vcsn-transition), box-shadow var(--vcsn-transition);
 min-height: 42px;
 }
 .vcsn-b-primaire { background: var(--vcsn-rouge); color: #fff; }
 .vcsn-b-primaire:hover { background: var(--vcsn-rouge-fonce); color: #fff; }
 .vcsn-b-contour {
 background: var(--vcsn-blanc);
 color: var(--vcsn-rouge);
 box-shadow: inset 0 0 0 1.5px var(--vcsn-rouge);
 }
 .vcsn-b-contour:hover { background: var(--vcsn-rouge-pale); color: var(--vcsn-rouge); }
 .vcsn-b-neutre {
 background: var(--vcsn-blanc);
 color: var(--vcsn-gris-70);
 box-shadow: inset 0 0 0 1px var(--vcsn-gris-20);
 }
 .vcsn-b-neutre:hover { background: var(--vcsn-gris-05); }
 .vcsn-b-danger { background: var(--vcsn-danger); color: #fff; }
 .vcsn-b-petit { padding: 7px 13px; font-size: var(--vcsn-t-s); min-height: 34px; }
 .vcsn-b:disabled { opacity: .42; cursor: not-allowed; }
 .vcsn-carte {
 background: var(--vcsn-blanc);
 border-radius: var(--vcsn-r-xl);
 box-shadow: var(--vcsn-o-2);
 padding: var(--vcsn-e-5);
 }
 .vcsn-champ {
 width: 100%;
 padding: 11px 14px;
 border: 1px solid var(--vcsn-gris-20);
 border-radius: var(--vcsn-r-m);
 font-size: var(--vcsn-t-m);
 font-family: inherit;
 background: var(--vcsn-blanc);
 color: var(--vcsn-noir);
 box-sizing: border-box;
 }
 .vcsn-champ:focus { outline: none; border-color: var(--vcsn-rouge); }
 .vcsn-etiq {
 display: inline-block;
 font-size: var(--vcsn-t-xs);
 font-weight: 600;
 padding: 4px 10px;
 border-radius: var(--vcsn-r-pilule);
 background: var(--vcsn-gris-10);
 color: var(--vcsn-gris-70);
 white-space: nowrap;
 }
 .vcsn-etiq-vert { background: var(--vcsn-vert-pale); color: var(--vcsn-vert); }
 .vcsn-etiq-ambre { background: var(--vcsn-ambre-pale); color: var(--vcsn-ambre); }
 .vcsn-etiq-danger { background: var(--vcsn-danger-pale); color: var(--vcsn-danger); }
 .vcsn-etiq-info { background: var(--vcsn-info-pale); color: var(--vcsn-info); }
 .vcsn-etiq-rouge { background: var(--vcsn-rouge-pale); color: var(--vcsn-rouge-texte); }
 .vcsn-encart {
 border-radius: var(--vcsn-r-l);
 padding: 15px 19px;
 font-size: var(--vcsn-t-m);
 line-height: 1.55;
 border: 1px solid transparent;
 }
 .vcsn-encart-info { background: var(--vcsn-info-pale); border-color: var(--vcsn-info-bord); color: var(--vcsn-info); }
 .vcsn-encart-vert { background: var(--vcsn-vert-pale); border-color: var(--vcsn-vert-bord); color: var(--vcsn-vert); }
 .vcsn-encart-ambre { background: var(--vcsn-ambre-pale); border-color: var(--vcsn-ambre-bord); color: var(--vcsn-ambre); }
 .vcsn-encart-danger { background: var(--vcsn-danger-pale); border-color: var(--vcsn-danger-bord); color: var(--vcsn-danger); }
 .vcsn-vide {
 background: var(--vcsn-blanc);
 border-radius: var(--vcsn-r-l);
 padding: 30px;
 text-align: center;
 color: var(--vcsn-gris-50);
 font-size: var(--vcsn-t-m);
 box-shadow: var(--vcsn-o-1);
 }
 .vcsn-readonly button:not([data-lecture-ok]),
 .vcsn-readonly input:not([data-lecture-ok]),
 .vcsn-readonly select:not([data-lecture-ok]) { pointer-events: none; opacity: .6; }
 .vocasnelles-hub, .vcsn-admin, .vcsn-admin-repas, .vcsn-pe-wrap,
 .vcsn-admin-wrap, .vcsn-trombi, .vcsn-depot, .vcsn-matrice,
 .vcsn-covoit, .vcsn-infos, .vcsn-compte, .vcsn-questionnaire {
 padding-left: var(--vcsn-marge);
 padding-right: var(--vcsn-marge);
 box-sizing: border-box;
 width: 100%;
 }
 .vocasnelles-hub table, .vcsn-admin table, .vcsn-admin-repas table,
 .vcsn-pe-wrap table, .vcsn-admin-wrap table, .vcsn-matrice table {
 max-width: 100%;
 }
 .vocasnelles-hub img, .vcsn-admin img, .vcsn-pe-wrap img,
 .vcsn-admin-wrap img, .vcsn-trombi img, .vcsn-depot img {
 max-width: 100%;
 height: auto;
 }
 .vocasnelles-hub, .vcsn-admin, .vcsn-pe-wrap, .vcsn-admin-wrap,
 .vcsn-depot, .vcsn-trombi {
 overflow-wrap: break-word;
 word-wrap: break-word;
 }
 @media (max-width: 900px) {
 .vcsn-carte { padding: 18px; }
 }
 @media (max-width: 640px) {
 .vocasnelles-hub, .vcsn-admin, .vcsn-admin-repas, .vcsn-pe-wrap,
 .vcsn-admin-wrap, .vcsn-trombi, .vcsn-depot, .vcsn-matrice {
 padding-left: var(--vcsn-marge-sm);
 padding-right: var(--vcsn-marge-sm);
 }
 .vcsn-carte { padding: 16px; border-radius: var(--vcsn-r-l); }
 .vcsn-b, .vcsn-champ,
 .vocasnelles-hub button, .vcsn-admin button,
 .vcsn-pe-wrap button, .vcsn-admin-wrap button,
 .vocasnelles-hub select, .vcsn-admin select,
 .vcsn-pe-wrap select, .vcsn-admin-wrap select {
 min-height: var(--vcsn-touche);
 }
 .vcsn-b-pleine { width: 100%; }
 .vcsn-champ,
 .vocasnelles-hub input, .vocasnelles-hub select, .vocasnelles-hub textarea,
 .vcsn-admin input, .vcsn-admin select, .vcsn-admin textarea,
 .vcsn-pe-wrap input, .vcsn-pe-wrap select, .vcsn-pe-wrap textarea,
 .vcsn-admin-wrap input, .vcsn-admin-wrap select, .vcsn-admin-wrap textarea,
 .vcsn-depot input { font-size: 16px; }
 .vcsn-grid-2, .vcsn-grid-3, .vcsn-grid { grid-template-columns: 1fr !important; }
 .vcsn-toolbar, .vcsn-admin-header > div { width: 100%; }
 .vcsn-toolbar .vcsn-btn, .vcsn-admin-header .vcsn-btn { flex: 1 1 auto; justify-content: center; }
 }
 @media (prefers-reduced-motion: reduce) {
 .vocasnelles-hub *, .vcsn-admin *, .vcsn-pe-wrap *, .vcsn-trombi * {
 transition: none !important;
 animation: none !important;
 }
 }
 .vcsn-encart-tarifs{
 display: block;
 max-width: 640px;
 margin: 22px auto;
 padding: 18px 24px;
 border-radius: 6px;
 background: #fbeeed;
 color: #a8443c;
 font-style: italic;
 font-size: 17px;
 line-height: 1.6;
 text-align: center;
 }
 .vcsn-prix-attente{
 font-size: .78em;
 font-weight: 500;
 font-style: italic;
 color: #a8443c;
 letter-spacing: 0;
 }
 .vcsn-img { display: block; max-width: 100%; height: auto; }


/* =====================================================================
   Bandeau stage complet
   ===================================================================== */

#vocasnelles-banner-wrapper{position: fixed;
 top: 0;
 left: 0;
 right: 0;
 z-index: 9999;
 transform: translateY(-100%);
 transition: transform 0.5s ease;}
#vocasnelles-banner-wrapper.show{transform: translateY(0);}
#vocasnelles-banner{background: #e74c3c;
 color: white;
 text-align: center;
 padding: 15px 60px 15px 15px;
 font-size: 16px;
 font-weight: bold;
 box-shadow: 0 2px 5px rgba(0,0,0,0.2);
 position: relative;}
#banner-close{position: absolute;
 right: 15px;
 top: 50%;
 transform: translateY(-50%);
 cursor: pointer;
 font-size: 22px;
 line-height: 1;}
#banner-close:hover{opacity: 0.8;}
#vocasnelles-banner a.btn{display: inline-block;
 margin-left: 20px;
 background: white;
 color: #e74c3c;
 padding: 6px 15px;
 border-radius: 4px;
 font-weight: 600;
 text-decoration: none;
 transition: background-color 0.2s ease;}
#vocasnelles-banner a.btn:hover{background: #f8f8f8;}
body.banner-active{transition: padding-top 0.5s ease;}
body.banner-active #vocasnelles-banner-wrapper.show ~ *{transition: transform 0.5s ease;}
body.banner-active{padding-top: 0;
 transition: padding-top 0.5s ease;}
body.banner-active.banner-shown{padding-top: 70px;}


/* =====================================================================
   Barre de navigation fixe
   ===================================================================== */

.vcsn-nav{position:fixed; left:0; right:0; bottom:0; z-index:9998;
 background:#fff; 
 border-top:1px solid color-mix(in srgb, #2f2f2f 16%, transparent);
 box-shadow:0 -4px 12px rgba(0,0,0,.04);}
.vcsn-nav-inner{max-width:1100px; margin:0 auto;
 display:grid; grid-template-columns:repeat(4,1fr);
 height:68px; 
 box-sizing:border-box;}
.vcsn-nav-item{display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px;
 text-decoration:none; color:#2f2f2f; text-transform:uppercase;
 font-weight:800; font-size:var(--vcsn-t-xs); line-height:1;
 padding:10px 6px; 
 margin:0; border-radius:12px; min-width:0;
 -webkit-tap-highlight-color: transparent;
 white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.vcsn-nav-icon{font-size:18px; line-height:1;}
.vcsn-nav-item.is-active{background:var(--vcsn-rouge-pale); 
 color:var(--primary); font-weight:600;}
.vcsn-nav-item:focus-visible{outline:2px solid var(--primary, var(--vcsn-rouge)); outline-offset:2px;}
.vcsn-nav-spacer{height:68px;}
@media (max-width: 420px){.vcsn-nav-item{ padding:10px 4px; }
 .vcsn-nav-icon{ font-size:17px; }
 .vcsn-nav-item .vcsn-nav-label{ font-size:11px; }}


/* =====================================================================
   Connexion et mot de passe
   ===================================================================== */

.vcsn-container{--vcsn-primary: var(--vcsn-rouge);
 --vcsn-text: var(--vcsn-noir);
 --vcsn-bg: #ffffff;
 --vcsn-bg-light: #F8E6E5;
 --vcsn-border: var(--vcsn-gris-20);
 --vcsn-success: var(--vcsn-vert);
 --vcsn-error: var(--vcsn-danger);}
.vcsn-container{max-width: 420px;
 margin: 2rem auto;
 padding: 0 1rem;}
.vcsn-container .vcsn-card{background: var(--vcsn-bg);
 border: 2px solid var(--vcsn-primary);
 border-radius: 20px;
 padding: 2rem;
 text-align: center;
 box-shadow: 0 8px 32px rgba(0,0,0,0.08);}
.vcsn-container .vcsn-welcome{margin-bottom: 0.25rem;}
.vcsn-container .vcsn-title{margin: 0 0 0.5rem 0;
 font-weight: 800;
 color: var(--vcsn-text);}
.vcsn-container .vcsn-subtitle{color: var(--vcsn-text);
 opacity: 0.8;
 margin: 0 0 1.5rem 0;
 line-height: 1.5;}
.vcsn-container .vcsn-alert{padding: 1rem;
 border-radius: 12px;
 margin-bottom: 1.5rem;
 display: flex;
 align-items: center;
 gap: 0.75rem;
 text-align: left;
 font-weight: 500;}
.vcsn-container .vcsn-alert-error{background: var(--vcsn-danger-pale);
 border: 2px solid var(--vcsn-error);
 color: var(--vcsn-error);}
.vcsn-container .vcsn-alert-success{background: var(--vcsn-vert-pale);
 border: 2px solid var(--vcsn-success);
 color: var(--vcsn-success);}
.vcsn-container .vcsn-alert-info{background: var(--vcsn-bg-light);
 border: 2px solid var(--vcsn-primary);
 color: var(--vcsn-text);}
.vcsn-container .vcsn-alert-icon{flex-shrink: 0;}
.vcsn-container .vcsn-field{text-align: left;
 margin-bottom: 1rem;}
.vcsn-container .vcsn-field label{display: block;
 margin-bottom: 0.5rem;
 font-weight: 600;
 color: var(--vcsn-text);}
.vcsn-container .vcsn-input{width: 100%;
 padding: 1rem 1.25rem;
 border: 2px solid var(--vcsn-border);
 border-radius: 12px;
 background: var(--vcsn-bg-light);
 font-family: inherit;
 transition: all 0.2s ease;
 box-sizing: border-box;}
.vcsn-container .vcsn-input:focus{outline: none;
 border-color: var(--vcsn-primary);
 background: var(--vcsn-bg);
 box-shadow: 0 0 0 3px rgba(203, 81, 72, 0.15);}
.vcsn-container .vcsn-input::placeholder{color: var(--vcsn-text);
 opacity: 0.4;}
.vcsn-container .vcsn-password-wrap{position: relative;}
.vcsn-container .vcsn-password-wrap .vcsn-input{padding-right: 3.5rem;}
.vcsn-container .vcsn-eye{position: absolute;
 right: 0.5rem;
 top: 50%;
 transform: translateY(-50%);
 width: 44px;
 height: 44px;
 border: none;
 background: transparent;
 border-radius: 8px;
 cursor: pointer;
 display: flex;
 align-items: center;
 justify-content: center;
 transition: background 0.2s ease;}
.vcsn-container .vcsn-eye:hover{background: rgba(0,0,0,0.05);}
.vcsn-container .vcsn-options{display: flex;
 align-items: center;
 justify-content: space-between;
 flex-wrap: wrap;
 gap: 0.75rem;
 margin: 1rem 0 1.5rem 0;}
.vcsn-container .vcsn-checkbox{display: flex;
 align-items: center;
 gap: 0.5rem;
 cursor: pointer;}
.vcsn-container .vcsn-checkbox input{width: 18px;
 height: 18px;
 cursor: pointer;}
.vcsn-container .vcsn-link{color: var(--vcsn-primary);
 text-decoration: none;
 font-weight: 600;
 transition: opacity 0.2s;
 background: none;
 border: none;
 padding: 0;
 cursor: pointer;
 font-family: inherit;}
.vcsn-container .vcsn-link:hover{opacity: 0.8;
 text-decoration: underline;}
.vcsn-container .vcsn-btn{width: 100%;
 padding: 1rem 1.5rem;
 font-weight: 700;
 font-family: inherit;
 border-radius: 12px;
 border: 2px solid var(--vcsn-primary);
 cursor: pointer;
 transition: all 0.2s ease;
 text-decoration: none;
 display: flex;
 align-items: center;
 justify-content: center;
 gap: 0.5rem;
 box-sizing: border-box;}
.vcsn-container .vcsn-btn-primary{background: var(--vcsn-primary);
 color: white;}
.vcsn-container .vcsn-btn-primary:hover{opacity: 0.9;
 transform: translateY(-1px);
 box-shadow: 0 4px 12px rgba(203, 81, 72, 0.3);}
.vcsn-container .vcsn-btn-secondary{background: var(--vcsn-bg);
 color: var(--vcsn-text);}
.vcsn-container .vcsn-btn-secondary:hover{background: var(--vcsn-bg-light);}
.vcsn-container .vcsn-actions{display: flex;
 flex-direction: column;
 gap: 0.75rem;
 margin-top: 1rem;}
.vcsn-container .vcsn-help-trigger{display: inline-flex;
 align-items: center;
 gap: 0.35rem;
 margin-top: 1.5rem;
 padding: 0.5rem 1rem;
 background: var(--vcsn-bg-light);
 border-radius: 20px;
 color: var(--vcsn-text);
 cursor: pointer;
 border: none;
 font-family: inherit;
 transition: all 0.2s ease;}
.vcsn-container .vcsn-help-trigger:hover{background: var(--vcsn-primary);
 color: white;}
.vcsn-container .vcsn-modal-overlay{display: none;
 position: fixed;
 top: 0;
 left: 0;
 right: 0;
 bottom: 0;
 background: rgba(0,0,0,0.5);
 z-index: 99999;
 align-items: center;
 justify-content: center;
 padding: 1rem;
 box-sizing: border-box;}
.vcsn-container .vcsn-modal-overlay.vcsn-visible{display: flex;}
.vcsn-container .vcsn-modal{background: var(--vcsn-bg);
 border-radius: 20px;
 padding: 2rem;
 max-width: 400px;
 width: 100%;
 position: relative;
 box-shadow: 0 20px 60px rgba(0,0,0,0.2);
 animation: vcsn-modal-in 0.3s ease;}
@keyframes vcsn-modal-in{from {
 opacity: 0;
 transform: scale(0.95) translateY(-10px);
 }
 to {
 opacity: 1;
 transform: scale(1) translateY(0);
 }}
.vcsn-container .vcsn-modal-close{position: absolute;
 top: 1rem;
 right: 1rem;
 width: 36px;
 height: 36px;
 border: none;
 background: var(--vcsn-bg-light);
 border-radius: 50%;
 cursor: pointer;
 display: flex;
 align-items: center;
 justify-content: center;
 transition: background 0.2s;}
.vcsn-container .vcsn-modal-close:hover{background: var(--vcsn-primary);
 color: white;}
.vcsn-container .vcsn-modal-icon{margin-bottom: 0.5rem;}
.vcsn-container .vcsn-modal-title{font-weight: 800;
 margin: 0 0 1rem 0;
 color: var(--vcsn-text);}
.vcsn-container .vcsn-modal-text{color: var(--vcsn-text);
 line-height: 1.6;
 margin-bottom: 1rem;}
.vcsn-container .vcsn-modal-text strong{color: var(--vcsn-primary);}
.vcsn-container .vcsn-modal-steps{text-align: left;
 background: var(--vcsn-bg-light);
 padding: 1.25rem;
 border-radius: 12px;
 margin: 1rem 0;}
.vcsn-container .vcsn-modal-step{display: flex;
 align-items: flex-start;
 gap: 0.75rem;
 margin-bottom: 0.75rem;}
.vcsn-container .vcsn-modal-step:last-child{margin-bottom: 0;}
.vcsn-container .vcsn-step-num{width: 28px;
 height: 28px;
 background: var(--vcsn-primary);
 color: white;
 border-radius: 50%;
 display: flex;
 align-items: center;
 justify-content: center;
 font-weight: 700;
 flex-shrink: 0;}
.vcsn-container .vcsn-step-text{line-height: 1.4;}
@media (max-width: 420px){.vcsn-container .vcsn-card{padding: 1.5rem;}
.vcsn-container .vcsn-options{flex-direction: column;
 align-items: flex-start;}}


/* =====================================================================
   Formulaire de candidature
   ===================================================================== */

.vocasnelles-candidature .vcsn-wrap{background:#ffffff;padding:40px;border-radius:12px;box-shadow:0 4px 12px rgba(0,0,0,.1);max-width:1000px;margin:20px auto;font-family:Arial,sans-serif}
.vocasnelles-candidature .vcsn-center{text-align:center}
.vocasnelles-candidature .vcsn-title{color:var(--vcsn-rouge);margin:0 0 10px 0;font-size:2em}
.vocasnelles-candidature .vcsn-muted{color:var(--vcsn-gris-60)}
.vocasnelles-candidature .vcsn-card{background:#ffffff;border:2px solid var(--vcsn-gris-20);border-radius:10px;padding:25px;margin-bottom:30px}
@media (max-width:640px){.vocasnelles-candidature .vcsn-wrap{padding:20px}}
.vocasnelles-candidature .vcsn-card-alt{background:var(--vcsn-gris-10);border-radius:10px;padding:25px;margin-bottom:30px}
.vocasnelles-candidature .vcsn-btn{display:inline-block;background:var(--vcsn-rouge);color:#ffffff;padding:14px 28px;border:none;border-radius:10px;font-weight:600;cursor:pointer;text-decoration:none}
.vocasnelles-candidature .vcsn-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.vocasnelles-candidature .vcsn-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px}
.vocasnelles-candidature .vcsn-input, .vocasnelles-candidature .vcsn-select, .vocasnelles-candidature .vcsn-textarea{width:100%;padding:12px;border:2px solid var(--vcsn-gris-20);border-radius:6px;font-size:16px;background:#ffffff}
.vocasnelles-candidature .vcsn-label{display:block;font-weight:600;margin-bottom:8px;color:var(--vcsn-noir)}
.vocasnelles-candidature .vcsn-error{border-color:var(--vcsn-danger)!important;background:rgba(220,53,69,.05)!important}
.vocasnelles-candidature .vcsn-error-text{color:var(--vcsn-danger);font-size:13px;margin-top:4px;display:block;font-weight:500}
.vocasnelles-candidature .vcsn-form-error{background:rgba(220,53,69,.06);color:var(--vcsn-danger);padding:15px;margin-bottom:20px;border:2px solid var(--vcsn-danger);border-radius:8px;font-weight:600}
.vocasnelles-candidature .vcsn-radio{transform:scale(1.2);margin-right:8px}
.vocasnelles-candidature .vcsn-price{font-size:32px;font-weight:700;color:var(--vcsn-vert)}
.vocasnelles-candidature .vcsn-photo{width:200px;height:200px;border-radius:10px;overflow:hidden;background:var(--vcsn-gris-10);display:flex;align-items:center;justify-content:center}
.vocasnelles-candidature .vcsn-photo.vcsn-error{border:2px solid var(--vcsn-danger)}
.vocasnelles-candidature .vcsn-modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:999999;align-items:center;justify-content:center;padding:20px}
.vocasnelles-candidature .vcsn-modal-content{background:#ffffff;border-radius:10px;padding:16px;max-width:90vw}
.vocasnelles-candidature .vcsn-modal img{max-width:100%;display:block}
.vocasnelles-candidature .vcsn-admin-test-banner{background:linear-gradient(135deg,var(--vcsn-ambre) 0%,#d9480f 100%);color:#ffffff;padding:16px 20px;border-radius:10px;margin-bottom:20px;text-align:center;font-weight:600;font-size:15px}
.vocasnelles-candidature .vcsn-admin-test-banner strong{display:block;font-size:18px;margin-bottom:4px}
.vocasnelles-candidature .vcsn-accompagnant-disabled{opacity:0.5;pointer-events:none}
.vocasnelles-candidature .vcsn-colocataire-disabled{opacity:0.5}
.vocasnelles-candidature .vcsn-colocataire-disabled input{pointer-events:none;background:var(--vcsn-gris-10)}
@media (max-width:640px){.vocasnelles-candidature .vcsn-wrap{padding:20px}
.vocasnelles-candidature .vcsn-grid-2{grid-template-columns:1fr}
.vocasnelles-candidature .vcsn-grid-3{grid-template-columns:1fr}
.vocasnelles-candidature .vcsn-btn{width:100%}}
@media (max-width:640px){.vocasnelles-candidature .vcsn-btn{width:100%}
.vocasnelles-candidature .vcsn-grid-2{grid-template-columns:1fr}}


/* =====================================================================
   Bandeau de test admin
   ===================================================================== */

.vcsn-admin-test-banner .vcsn-toggle-btn{background:rgba(255,255,255,0.2);color:#fff;border:2px solid rgba(255,255,255,0.4);padding:10px 18px;border-radius:8px;cursor:pointer;font-weight:600;font-size:14px;transition:all 0.2s}
.vcsn-admin-test-banner .vcsn-toggle-btn:hover{background:rgba(255,255,255,0.3);border-color:rgba(255,255,255,0.6)}
.vcsn-admin-test-banner .vcsn-toggle-btn.active{background:var(--vcsn-vert);border-color:var(--vcsn-vert)}
.vcsn-admin-test-banner.stagiaire-mode{background:linear-gradient(135deg,var(--vcsn-vert) 0%,#20c997 100%)}
.vcsn-admin-test-banner #stagiaire-countdown-preview{display:none}


/* =====================================================================
   Hub de l espace reserve
   ===================================================================== */

.vocasnelles-hub .vcsn-rebours{background:var(--vcsn-blanc);border-radius:var(--vcsn-r-xl);padding:17px 20px;margin-bottom:16px;text-align:center;box-shadow:var(--vcsn-o-2)}
.vocasnelles-hub .vcsn-rebours-n{font-size:42px;font-weight:800;color:var(--vcsn-rouge);line-height:1;letter-spacing:-1.5px}
.vocasnelles-hub .vcsn-rebours-l{font-size:13.5px;color:var(--vcsn-gris-60);margin-top:6px}
.vocasnelles-hub .vcsn-rebours-l b{color:var(--vcsn-gris-90)}
.vocasnelles-hub .vcsn-info{border-radius:var(--vcsn-r-xl);padding:18px 20px;margin-bottom:16px;display:flex;flex-wrap:wrap;gap:14px;align-items:center;border:2px solid transparent}
.vocasnelles-hub .vcsn-info-t{display:flex;align-items:flex-start;gap:13px;flex:1;min-width:230px}
.vocasnelles-hub .vcsn-info-ico{font-size:27px;line-height:1;flex:0 0 auto}
.vocasnelles-hub .vcsn-info-titre{font-weight:700;font-size:16px;margin-bottom:3px;line-height:1.3}
.vocasnelles-hub .vcsn-info-desc{font-size:14px;line-height:1.5;opacity:.9}
.vocasnelles-hub .vcsn-info .vcsn-btn{flex:0 0 auto}
.vocasnelles-hub .vcsn-i-urgent{background:var(--vcsn-danger-pale);border-color:var(--vcsn-rouge);color:var(--vcsn-rouge-texte)}
.vocasnelles-hub .vcsn-i-doux{background:var(--vcsn-ambre-pale);border-color:var(--vcsn-ambre-bord);color:var(--vcsn-ambre)}
.vocasnelles-hub .vcsn-i-info{background:var(--vcsn-info-pale);border-color:var(--vcsn-info-bord);color:var(--vcsn-info)}
.vocasnelles-hub .vcsn-i-bien{background:var(--vcsn-vert-pale);border-color:var(--vcsn-vert-bord);color:var(--vcsn-vert)}
.vocasnelles-hub .vcsn-i-fete{background:linear-gradient(135deg,var(--vcsn-ambre-pale),#fde9b8);border-color:var(--vcsn-ambre-bord);color:var(--vcsn-ambre)}
.vocasnelles-hub .vcsn-carte-etat{margin:2px 0 7px;line-height:1.2}
.vocasnelles-hub .vcsn-mt{font-size:13px;font-weight:700;color:var(--vcsn-gris-90)}
.vocasnelles-hub .vcsn-mt-l{font-size:12px;color:var(--vcsn-gris-50);font-weight:500}
.vocasnelles-hub .vcsn-mt-ok{font-size:12.5px;font-weight:700;color:var(--vcsn-vert)}
.vocasnelles-hub .vcsn-mt-retard{font-size:19px;font-weight:800;color:var(--vcsn-danger);letter-spacing:-.3px}
.vocasnelles-hub .vcsn-mt-l-retard{display:block;color:var(--vcsn-danger);font-weight:700;font-size:11.5px;margin-top:1px}
@media(max-width:900px){.vocasnelles-hub .vcsn-header-admin{position:static;display:inline-block;margin-bottom:14px}}
@media(max-width:640px){.vocasnelles-hub .vcsn-rebours-n{font-size:35px}
.vocasnelles-hub .vcsn-info .vcsn-btn{width:100%}}
.vocasnelles-hub{max-width:1180px;margin:24px auto;padding:0 24px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif}
.vocasnelles-hub .vcsn-admin-panel{background:#f0f9ff;border:2px solid var(--vcsn-info);border-radius:12px;padding:16px;margin-bottom:24px;display:flex;gap:12px;align-items:center}
.vocasnelles-hub .vcsn-admin-btn{background:var(--vcsn-info);color:#fff;padding:10px 16px;border-radius:8px;text-decoration:none;font-weight:600;transition:transform .2s ease}
.vocasnelles-hub .vcsn-admin-btn:hover{transform:translateY(-1px)}
.vocasnelles-hub .vcsn-header{text-align:center;margin-bottom:24px;position:relative;padding-top:4px}
.vocasnelles-hub .vcsn-header-admin{position:absolute;top:0;right:0;
 background:var(--vcsn-noir);color:#fff;text-decoration:none;
 padding:9px 16px;border-radius:var(--vcsn-r-m);font-size:13.5px;font-weight:600;
 transition:background .15s ease;white-space:nowrap;z-index:2}
.vocasnelles-hub .vcsn-header-admin:hover{background:var(--vcsn-rouge);color:#fff}
.vocasnelles-hub .vcsn-header h1{margin:0 0 8px;font-size:clamp(26px,4vw,36px);font-weight:700;color:var(--vcsn-noir)}
.vocasnelles-hub .vcsn-header p{margin:0;color:#a53f37;font-size:16px;font-weight:600}
.vocasnelles-hub .vcsn-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff;border:1px solid var(--vcsn-gris-20);border-left:4px solid var(--vcsn-rouge);border-radius:12px;padding:16px 20px;margin-bottom:24px;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.vocasnelles-hub .vcsn-banner-content{display:flex;align-items:center;gap:16px;flex:1}
.vocasnelles-hub .vcsn-banner-icon{font-size:28px}
.vocasnelles-hub .vcsn-banner-title{font-weight:600;font-size:18px;color:var(--vcsn-noir);margin-bottom:2px}
.vocasnelles-hub .vcsn-banner-desc{color:var(--primary);font-size:16px;font-weight:800}
.vocasnelles-hub .vcsn-btn{background:var(--vcsn-gris-10);border:1px solid var(--vcsn-gris-20);border-radius:8px;padding:10px 16px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}
.vocasnelles-hub .vcsn-btn:hover{background:var(--vcsn-gris-20)}
.vocasnelles-hub .vcsn-btn--primary{background:var(--vcsn-rouge);border-color:var(--vcsn-rouge);color:#fff}
.vocasnelles-hub .vcsn-btn--primary:hover{background:#a33f39}
.vocasnelles-hub .vcsn-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin-bottom:28px}
.vocasnelles-hub .vcsn-card{background:#fff;border:1px solid var(--vcsn-gris-20);border-radius:16px;padding:24px 20px;text-decoration:none;color:inherit;cursor:pointer;text-align:center;display:flex;flex-direction:column;gap:14px;min-height:260px;box-shadow:0 1px 3px rgba(0,0,0,.06);transition:transform .2s}
.vocasnelles-hub .vcsn-card:hover{transform:translateY(-2px)}
.vocasnelles-hub .vcsn-card__icon{width:72px;height:72px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:34px;margin:0 auto;color:#fff}
.vocasnelles-hub .vcsn-card--red .vcsn-card__icon{background:var(--vcsn-danger)}
.vocasnelles-hub .vcsn-card--blue .vcsn-card__icon{background:var(--vcsn-info)}
.vocasnelles-hub .vcsn-card--green .vcsn-card__icon{background:var(--vcsn-vert)}
.vocasnelles-hub .vcsn-card h3{margin:0;font-size:19px;font-weight:600;color:var(--vcsn-noir)}
.vocasnelles-hub .vcsn-card p{margin:0;color:var(--vcsn-gris-60);font-size:14px;line-height:1.45;flex:1}
.vocasnelles-hub .vcsn-card__btn{background:var(--vcsn-noir);color:#fff;padding:10px 16px;border-radius:8px;font-weight:500;font-size:14px;margin-top:auto}
.vocasnelles-hub .vcsn-card--red .vcsn-card__btn{background:var(--vcsn-danger)}
.vocasnelles-hub .vcsn-card--blue .vcsn-card__btn{background:var(--vcsn-info)}
.vocasnelles-hub .vcsn-card--green .vcsn-card__btn{background:var(--vcsn-vert)}
/* Cinq tuiles au maximum : a 200px de large minimum, la cinquieme
   retombait seule sur une deuxieme ligne. */
.vocasnelles-hub .vcsn-secondary{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px;margin-bottom:24px}
.vocasnelles-hub .vcsn-item{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--vcsn-gris-20);border-radius:12px;padding:14px;text-decoration:none;color:inherit;box-shadow:0 1px 3px rgba(0,0,0,.06);transition:transform .2s}
.vocasnelles-hub .vcsn-item:hover{transform:translateY(-1px)}
.vocasnelles-hub .vcsn-item__icon{font-size:22px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#F8E6E5;border-radius:8px;flex-shrink:0}
.vocasnelles-hub .vcsn-item h4{margin:0 0 2px;font-weight:600;font-size:15px;color:var(--vcsn-noir)}
.vocasnelles-hub .vcsn-item p{margin:0;font-size:13px;color:var(--vcsn-gris-60)}
.vocasnelles-hub .vcsn-footer{text-align:center;padding-top:18px;border-top:1px solid var(--vcsn-gris-20)}
.vocasnelles-hub .vcsn-footer a{color:var(--vcsn-gris-60);text-decoration:none;font-size:14px}
.vocasnelles-hub .vcsn-footer a:hover{color:var(--vcsn-rouge)}
.vocasnelles-hub .vcsn-modal{position:fixed;inset:0;z-index:9999}
.vocasnelles-hub .vcsn-modal__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.45)}
.vocasnelles-hub .vcsn-modal__dialog{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#fff;width:min(520px,92vw);border-radius:12px;overflow:hidden;box-shadow:0 10px 25px rgba(0,0,0,.15)}
.vocasnelles-hub .vcsn-modal__header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:var(--vcsn-gris-10);border-bottom:1px solid var(--vcsn-gris-20)}
.vocasnelles-hub .vcsn-modal__header h3{margin:0;font-size:18px;font-weight:700;color:var(--vcsn-noir)}
.vocasnelles-hub .vcsn-modal__close{background:var(--vcsn-gris-10);border:1px solid var(--vcsn-gris-20);color:var(--vcsn-gris-90);font-size:16px;cursor:pointer;padding:6px;border-radius:6px;width:32px;height:32px;display:flex;align-items:center;justify-content:center}
.vocasnelles-hub .vcsn-modal__close:hover{background:var(--vcsn-gris-20)}
.vocasnelles-hub .vcsn-modal__body{padding:18px}
.vocasnelles-hub .vcsn-modal__footer{padding:14px 18px;background:var(--vcsn-gris-05);text-align:right;border-top:1px solid var(--vcsn-gris-20)}
.vocasnelles-hub .vcsn-field{margin-bottom:16px}
.vocasnelles-hub .vcsn-field label{display:block;font-size:13px;color:var(--vcsn-gris-90);font-weight:600;margin-bottom:6px}
.vocasnelles-hub .vcsn-mono{font-family:Monaco,Consolas,monospace;background:var(--vcsn-gris-05);padding:12px 14px;border-radius:8px;border:1px solid var(--vcsn-gris-20);letter-spacing:.4px;font-size:15px;width:100%;box-sizing:border-box}
.vocasnelles-hub .vcsn-clickable{cursor:pointer;transition:background .2s,transform .1s}
.vocasnelles-hub .vcsn-clickable:hover{background:#eef2ff}
.vocasnelles-hub .vcsn-alert{background:#F8E6E5;border:1px solid var(--vcsn-rouge);color:var(--vcsn-rouge);border-radius:8px;padding:12px 14px;margin-bottom:12px;font-size:14px}
.vocasnelles-hub .vcsn-reminder{background:var(--vcsn-ambre-pale);color:var(--vcsn-ambre);border:1px solid var(--vcsn-ambre-bord);border-radius:8px;padding:12px 14px;font-size:14px;margin-bottom:16px;line-height:1.5}
@media (max-width:640px){.vocasnelles-hub .vcsn-banner{flex-direction:column;align-items:flex-start}
.vocasnelles-hub .vcsn-card{min-height:240px}}


/* =====================================================================
   Mon compte
   ===================================================================== */

.voc-wrap{max-width:900px;margin:0 auto;padding:10px}
.voc-hello{font-size:28px;margin:10px 0 20px}
.voc-card{background:#fff;border-radius:16px;box-shadow:0 6px 16px rgba(17,24,39,.06);padding:18px;margin-bottom:16px}
.voc-h{font-size:18px;margin:0 0 6px}
.voc-mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.voc-email{overflow-wrap:anywhere;word-break:break-word;white-space:normal}
.voc-tag{display:inline-block;font-size:12px;padding:4px 8px;border-radius:999px;background:#F1F5F9;color:#0f172a;margin-left:6px}
.voc-ok{background:#E6F7EE;color:var(--vcsn-vert)}
.voc-warn{background:#FEF3C7;color:var(--vcsn-ambre)}
.voc-bad{background:#FEE2E2;color:#991B1B}
.voc-money{font-size:22px;font-weight:600;margin:4px 0}
.voc-line{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:8px 12px;padding:6px 0;border-bottom:1px dashed #eee}
.voc-line:last-child{border-bottom:0}
.voc-muted{color:var(--vcsn-gris-60);font-size:13px}
.voc-kv{display:grid;grid-template-columns:140px 1fr;gap:10px;font-size:14px}
.voc-year{font-size:16px;font-weight:600;margin:16px 0 8px}
.voc-pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:4px 8px;border-radius:999px;border:1px solid var(--vcsn-gris-20)}
.voc-alert{background:var(--vcsn-danger-pale);border:1px solid var(--vcsn-danger-bord);border-radius:12px;padding:14px}
.voc-section-title{font-size:15px;font-weight:600;margin:12px 0 6px;padding-top:8px;border-top:1px dashed var(--vcsn-gris-20)}
.voc-link-discret{display:inline-block;margin-top:10px;font-size:13px;color:var(--vcsn-gris-60);text-decoration:underline}
.voc-link-discret:hover{color:var(--vcsn-rouge)}
.voc-pwd-trigger{display:inline-flex;align-items:center;gap:6px;margin-top:20px;padding:10px 16px;font-size:13px;color:var(--vcsn-gris-60);background:var(--vcsn-gris-05);border:1px solid var(--vcsn-gris-20);border-radius:10px;cursor:pointer;transition:all .2s}
.voc-pwd-trigger:hover{background:var(--vcsn-gris-10);color:var(--vcsn-gris-90);border-color:var(--vcsn-gris-30)}
.voc-modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:9999;align-items:center;justify-content:center;padding:20px}
.voc-modal-overlay.is-open{display:flex}
.voc-modal{background:#fff;border-radius:20px;box-shadow:0 20px 50px rgba(0,0,0,.2);max-width:420px;width:100%;padding:28px;position:relative;animation:vocModalIn .25s ease}
@keyframes vocModalIn{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}
.voc-modal-close{position:absolute;top:16px;right:16px;width:32px;height:32px;border:none;background:var(--vcsn-gris-10);border-radius:50%;cursor:pointer;font-size:18px;color:var(--vcsn-gris-60);display:flex;align-items:center;justify-content:center;transition:all .2s}
.voc-modal-close:hover{background:var(--vcsn-gris-20);color:#111}
.voc-modal h3{margin:0 0 20px;font-size:20px;color:var(--vcsn-noir)}
.voc-form-group{margin-bottom:16px}
.voc-form-label{display:block;font-size:13px;font-weight:600;color:var(--vcsn-gris-90);margin-bottom:6px}
.voc-form-input{width:100%;padding:12px 14px;font-size:15px;border:1px solid var(--vcsn-gris-30);border-radius:10px;background:#fff;transition:border-color .2s,box-shadow .2s}
.voc-form-input:focus{outline:none;border-color:var(--vcsn-rouge);box-shadow:0 0 0 3px rgba(203,81,72,.1)}
.voc-input-wrap{position:relative}
.voc-input-wrap .voc-form-input{padding-right:44px}
.voc-toggle-pwd{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:32px;height:32px;border:none;background:transparent;cursor:pointer;color:#c4c9cf;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:color .2s}
.voc-toggle-pwd:hover{color:var(--vcsn-gris-60)}
.voc-toggle-pwd svg{width:18px;height:18px}
.voc-form-input.is-error{border-color:var(--vcsn-danger);background:var(--vcsn-danger-pale)}
.voc-form-input.is-valid{border-color:var(--vcsn-vert);background:var(--vcsn-vert-pale)}
.voc-form-hint{font-size:12px;color:var(--vcsn-gris-60);margin-top:6px}
.voc-form-error{font-size:12px;color:var(--vcsn-danger);margin-top:4px;display:none}
.voc-form-error.is-visible{display:block}
.voc-pwd-rules{margin-top:10px;padding:12px;background:var(--vcsn-gris-05);border-radius:8px;font-size:12px}
.voc-pwd-rule{display:flex;align-items:center;gap:8px;padding:3px 0;color:var(--vcsn-gris-60)}
.voc-pwd-rule.is-valid{color:var(--vcsn-vert)}
.voc-pwd-rule .voc-rule-icon{width:16px;text-align:center}
.voc-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;font-size:15px;font-weight:600;border-radius:10px;border:none;cursor:pointer;transition:all .2s}
.voc-btn-primary{background:var(--vcsn-rouge);color:#fff}
.voc-btn-primary:hover{background:#b8453d}
.voc-btn-primary:disabled{background:var(--vcsn-gris-30);cursor:not-allowed}
.voc-btn-ghost{background:transparent;color:var(--vcsn-gris-60)}
.voc-btn-ghost:hover{background:var(--vcsn-gris-10)}
.voc-modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:24px}
.voc-pwd-result{padding:14px;border-radius:10px;margin-bottom:16px;display:none;font-size:14px}
.voc-pwd-result.is-success{display:block;background:var(--vcsn-vert-pale);color:var(--vcsn-vert);border:1px solid #a7f3d0}
.voc-pwd-result.is-error{display:block;background:var(--vcsn-danger-pale);color:var(--vcsn-danger);border:1px solid var(--vcsn-danger-bord)}
@media (max-width:640px){.voc-hello{font-size:24px}
 .voc-card{padding:14px}
 .voc-kv{grid-template-columns:120px 1fr}
 .voc-mono{font-size:14px}
 .voc-modal{padding:20px;margin:10px}}
@media (max-width:420px){.voc-kv{grid-template-columns:110px 1fr}}


/* =====================================================================
   Fichiers de travail
   ===================================================================== */

.vcsn-ft-wrap{max-width: 1200px;
 margin: 20px auto;
 padding: 0 16px;
 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
 color: var(--vcsn-noir);}
.vcsn-ft-wrap .vcsn-ft-header{display: flex;
 justify-content: space-between;
 align-items: center;
 margin-bottom: 20px;
 padding-bottom: 16px;
 border-bottom: 2px solid var(--vcsn-gris-20);}
.vcsn-ft-wrap .vcsn-ft-header h1{margin: 0;
 color: var(--vcsn-rouge);
 font-size: clamp(20px, 5vw, 28px);
 font-weight: 700;}
.vcsn-ft-wrap .vcsn-ft-intro{margin-bottom: 20px;
 padding: 16px;
 background: var(--vcsn-gris-10);
 border-radius: 12px;
 color: var(--vcsn-gris-60);
 text-align: center;}
.vcsn-ft-wrap .vcsn-ft-intro p{margin: 0; 
 font-weight: 700;}
.vcsn-ft-wrap .vcsn-ft-btn{border: 0;
 border-radius: 8px;
 padding: 12px 20px;
 font-size: 15px;
 font-weight: 600;
 cursor: pointer;
 transition: all 0.2s ease;
 min-height: 44px;
 display: inline-flex;
 align-items: center;
 justify-content: center;
 gap: 6px;}
.vcsn-ft-wrap .vcsn-ft-btn-primary{background: var(--vcsn-rouge); color: white;}
.vcsn-ft-wrap .vcsn-ft-btn-primary:hover{background: var(--vcsn-rouge-fonce); transform: translateY(-1px);}
.vcsn-ft-wrap .vcsn-ft-btn-secondary{background: var(--vcsn-gris-60); color: white;}
.vcsn-ft-wrap .vcsn-ft-btn-secondary:hover{background: #5a6268;}
.vcsn-ft-wrap .vcsn-ft-btn-edit{background: white; color: var(--vcsn-rouge); border: 2px solid var(--vcsn-rouge);}
.vcsn-ft-wrap .vcsn-ft-btn-edit:hover, .vcsn-ft-wrap .vcsn-ft-btn-edit.active{background: var(--vcsn-rouge); color: white;}
.vcsn-ft-wrap .vcsn-ft-btn-small{padding: 8px 14px; font-size: 14px; min-height: 36px;}
.vcsn-ft-wrap .vcsn-ft-btn-danger{background: var(--vcsn-danger); color: white; padding: 6px 12px; font-size: 13px; min-height: 32px;}
.vcsn-ft-wrap .vcsn-ft-btn-danger:hover{background: var(--vcsn-danger);}
.vcsn-ft-wrap .vcsn-ft-btn:disabled{opacity: 0.6; cursor: not-allowed;}
.vcsn-ft-wrap .vcsn-ft-admin-toolbar{margin-bottom: 20px;
 padding: 16px;
 background: var(--vcsn-ambre-pale);
 border: 2px solid #ffc107;
 border-radius: 12px;}
.vcsn-ft-wrap .vcsn-ft-oeuvres{display: flex; flex-direction: column; gap: 16px;}
.vcsn-ft-wrap .vcsn-ft-oeuvre{background: white;
 border: 1px solid var(--vcsn-gris-20);
 border-radius: 14px;
 overflow: hidden;
 box-shadow: 0 2px 8px rgba(0,0,0,0.06);}
.vcsn-ft-wrap .vcsn-ft-oeuvre-header{display: flex;
 align-items: center;
 padding: 16px 20px;
 background: var(--vcsn-gris-10);
 cursor: pointer;
 min-height: 60px;
 gap: 12px;}
.vcsn-ft-wrap .vcsn-ft-oeuvre-header:hover{background: var(--vcsn-gris-20);}
.vcsn-ft-wrap .vcsn-ft-oeuvre-info{flex: 1; min-width: 0;}
.vcsn-ft-wrap .vcsn-ft-oeuvre-info h3{margin: 0 0 4px 0; font-size: clamp(16px, 4vw, 20px); color: var(--vcsn-noir); font-weight: 700;}
.vcsn-ft-wrap .vcsn-ft-oeuvre-compositeur{color: var(--vcsn-gris-60); font-style: italic; font-size: 14px;}
.vcsn-ft-wrap .vcsn-ft-oeuvre-right{display: flex; align-items: center; gap: 8px; flex-shrink: 0;}
.vcsn-ft-wrap .vcsn-ft-oeuvre-actions{display: none; gap: 8px;}
.vcsn-ft-wrap.edit-mode .vcsn-ft-oeuvre-actions{display: flex;}
.vcsn-ft-wrap .vcsn-ft-chevron{display: inline-block;
 width: 10px;
 height: 10px;
 border-right: 2px solid var(--vcsn-rouge);
 border-bottom: 2px solid var(--vcsn-rouge);
 transform: rotate(-45deg);
 transition: transform 0.2s ease;
 flex-shrink: 0;}
.vcsn-ft-wrap .vcsn-ft-oeuvre-header.active .vcsn-ft-chevron{transform: rotate(45deg);}
.vcsn-ft-wrap .vcsn-ft-oeuvre-content{display: none; padding: 20px; background: white;}
.vcsn-ft-wrap .vcsn-ft-oeuvre-content.active{display: block;}
.vcsn-ft-wrap .vcsn-ft-subaccordion{margin-bottom: 12px; border: 1px solid var(--vcsn-gris-20); border-radius: 10px; overflow: hidden;}
.vcsn-ft-wrap .vcsn-ft-subaccordion-header{display: flex;
 align-items: center;
 justify-content: space-between;
 padding: 14px 16px;
 background: var(--vcsn-gris-10);
 cursor: pointer;
 font-weight: 600;
 color: var(--vcsn-noir);
 transition: background 0.2s ease;}
.vcsn-ft-wrap .vcsn-ft-subaccordion-header:hover{background: var(--vcsn-gris-20);}
.vcsn-ft-wrap .vcsn-ft-subaccordion-header h4{margin: 0; font-size: 15px; font-weight: 600;}
.vcsn-ft-wrap .vcsn-ft-subaccordion-chevron{display: inline-block;
 width: 8px;
 height: 8px;
 border-right: 2px solid var(--vcsn-gris-60);
 border-bottom: 2px solid var(--vcsn-gris-60);
 transform: rotate(-45deg);
 transition: transform 0.2s ease;}
.vcsn-ft-wrap .vcsn-ft-subaccordion-header.active .vcsn-ft-subaccordion-chevron{transform: rotate(45deg);}
.vcsn-ft-wrap .vcsn-ft-subaccordion-content{display: none; padding: 16px; background: white;}
.vcsn-ft-wrap .vcsn-ft-subaccordion-content.active{display: block;}
.vcsn-ft-wrap .vcsn-ft-text-content{white-space: pre-wrap; line-height: 1.6; color: var(--vcsn-noir);}
.vcsn-ft-wrap .vcsn-ft-texte-grid{display: grid; grid-template-columns: 1fr; gap: 16px;}
@media (min-width: 641px){.vcsn-ft-wrap .vcsn-ft-texte-grid{grid-template-columns: 1fr 1fr;}}
.vcsn-ft-wrap .vcsn-ft-texte-grid > div > strong{display: block; margin-bottom: 8px; color: var(--vcsn-rouge);}
.vcsn-ft-wrap .vcsn-ft-audio-item{margin-bottom: 12px; padding: 12px; background: var(--vcsn-gris-10); border-radius: 8px; border: 1px solid var(--vcsn-gris-20);}
.vcsn-ft-wrap .vcsn-ft-audio-label{font-weight: 600; margin-bottom: 6px; color: var(--vcsn-noir);}
.vcsn-ft-wrap .vcsn-ft-audio-player{width: 100%; height: 40px; margin-top: 8px;}
.vcsn-ft-wrap .vcsn-ft-single-audio{padding: 0;}
.vcsn-ft-wrap .vcsn-ft-single-audio audio{width: 100%;}
.vcsn-ft-wrap .vcsn-ft-partition-link{display: inline-flex;
 align-items: center;
 gap: 8px;
 padding: 10px 16px;
 background: var(--vcsn-rouge);
 color: white;
 text-decoration: none;
 border-radius: 8px;
 font-weight: 500;
 margin: 4px 4px 4px 0;
 transition: background 0.2s ease;}
.vcsn-ft-wrap .vcsn-ft-partition-link:hover{background: var(--vcsn-rouge-fonce); color: white;}
.vcsn-ft-wrap .vcsn-ft-modal{position: fixed;
 top: 0; left: 0; right: 0; bottom: 0;
 background: rgba(0,0,0,0.5);
 z-index: 9999;
 display: flex;
 align-items: center;
 justify-content: center;
 padding: 20px;}
.vcsn-ft-wrap .vcsn-ft-modal-content{background: white;
 border-radius: 16px;
 max-width: 800px;
 width: 100%;
 max-height: 90vh;
 overflow-y: auto;
 box-shadow: 0 10px 40px rgba(0,0,0,0.2);}
.vcsn-ft-wrap .vcsn-ft-modal-header{display: flex;
 justify-content: space-between;
 align-items: center;
 padding: 20px 24px;
 border-bottom: 1px solid var(--vcsn-gris-20);}
.vcsn-ft-wrap .vcsn-ft-modal-header h2{margin: 0; color: var(--vcsn-noir); font-size: 20px;}
.vcsn-ft-wrap .vcsn-ft-modal-close{background: none;
 border: none;
 font-size: 32px;
 color: var(--vcsn-gris-60);
 cursor: pointer;
 line-height: 1;
 padding: 0;
 width: 32px;
 height: 32px;}
.vcsn-ft-wrap .vcsn-ft-modal-close:hover{color: var(--vcsn-rouge);}
.vcsn-ft-wrap .vcsn-ft-modal-body{padding: 24px;}
.vcsn-ft-wrap .vcsn-ft-modal-footer{display: flex; justify-content: flex-end; gap: 12px; padding: 20px 24px; border-top: 1px solid var(--vcsn-gris-20);}
.vcsn-ft-wrap .vcsn-ft-batch-info{margin: 0 0 16px 0; color: var(--vcsn-gris-60);}
.vcsn-ft-wrap .vcsn-ft-batch-item{display: flex;
 align-items: center;
 gap: 12px;
 padding: 12px;
 background: var(--vcsn-gris-10);
 border: 1px solid var(--vcsn-gris-20);
 border-radius: 8px;
 margin-bottom: 10px;}
.vcsn-ft-wrap .vcsn-ft-batch-item-icon{font-size: 24px; flex-shrink: 0;}
.vcsn-ft-wrap .vcsn-ft-batch-item-info{flex: 1; min-width: 0;}
.vcsn-ft-wrap .vcsn-ft-batch-item-filename{font-size: 12px; color: var(--vcsn-gris-60); margin-bottom: 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}
.vcsn-ft-wrap .vcsn-ft-batch-item-input{width: 100%;
 padding: 8px 12px;
 border: 2px solid var(--vcsn-gris-20);
 border-radius: 6px;
 font-size: 14px;}
.vcsn-ft-wrap .vcsn-ft-batch-item-input:focus{outline: none; border-color: var(--vcsn-rouge);}
.vcsn-ft-wrap .vcsn-ft-batch-item-remove{background: none;
 border: none;
 color: var(--vcsn-danger);
 font-size: 20px;
 cursor: pointer;
 padding: 4px;
 line-height: 1;}
.vcsn-ft-wrap .vcsn-ft-batch-item-remove:hover{color: var(--vcsn-danger);}
.vcsn-ft-wrap .vcsn-ft-form-group{margin-bottom: 20px;}
.vcsn-ft-wrap .vcsn-ft-form-group label{display: block; margin-bottom: 6px; font-weight: 600; color: var(--vcsn-noir);}
.vcsn-ft-wrap .vcsn-ft-input, .vcsn-ft-wrap .vcsn-ft-textarea{width: 100%;
 padding: 12px;
 border: 2px solid var(--vcsn-gris-20);
 border-radius: 8px;
 font-size: 15px;
 font-family: inherit;
 transition: border-color 0.2s ease;
 box-sizing: border-box;}
.vcsn-ft-wrap .vcsn-ft-input:focus, .vcsn-ft-wrap .vcsn-ft-textarea:focus{outline: none; border-color: var(--vcsn-rouge);}
.vcsn-ft-wrap .vcsn-ft-textarea{resize: vertical; min-height: 100px;}
.vcsn-ft-wrap .vcsn-ft-sortable-list{margin-bottom: 12px;}
.vcsn-ft-wrap .vcsn-ft-sortable-item{display: flex;
 align-items: center;
 gap: 12px;
 padding: 12px;
 background: white;
 border: 1px solid var(--vcsn-gris-20);
 border-radius: 8px;
 margin-bottom: 8px;
 cursor: move;}
.vcsn-ft-wrap .vcsn-ft-sortable-item:hover{background: var(--vcsn-gris-10); border-color: var(--vcsn-rouge);}
.vcsn-ft-wrap .vcsn-ft-drag-handle{color: var(--vcsn-gris-60); font-size: 18px;}
.vcsn-ft-wrap .vcsn-ft-sortable-input{flex: 1; padding: 8px; border: 1px solid var(--vcsn-gris-20); border-radius: 6px; font-size: 14px;}
.vcsn-ft-wrap .vcsn-ft-fichiers-section{margin-top: 24px; padding-top: 24px; border-top: 2px solid var(--vcsn-gris-20);}
.vcsn-ft-wrap .vcsn-ft-fichiers-section h3{margin: 0 0 20px 0; color: var(--vcsn-rouge);}
.vcsn-ft-wrap .vcsn-ft-fichier-item{margin-bottom: 20px; padding: 16px; background: var(--vcsn-gris-10); border-radius: 8px;}
.vcsn-ft-wrap .vcsn-ft-fichier-item strong{display: block; margin-bottom: 8px; color: var(--vcsn-noir);}
.vcsn-ft-wrap .vcsn-ft-fichier-tag{display: inline-flex;
 align-items: center;
 gap: 8px;
 padding: 6px 12px;
 background: white;
 border: 1px solid var(--vcsn-gris-20);
 border-radius: 6px;
 margin: 4px 4px 4px 0;
 font-size: 13px;}
.vcsn-ft-wrap .vcsn-ft-fichier-tag{cursor: grab;}
.vcsn-ft-wrap .vcsn-ft-fichier-tag:active{cursor: grabbing;}
.vcsn-ft-wrap .vcsn-ft-fichier-tag button{background: none; border: none; color: var(--vcsn-danger); cursor: pointer; font-size: 16px; line-height: 1; padding: 0;}
.vcsn-ft-wrap .vcsn-ft-fichier-label{cursor: text;}
.vcsn-ft-wrap .vcsn-ft-tag-ghost{opacity: 0.4; background: #ffc107;}
.vcsn-ft-wrap .vcsn-ft-inline-edit{padding: 2px 6px; border: 2px solid var(--vcsn-rouge); border-radius: 4px; font-size: 13px; width: 120px;}
.vcsn-ft-wrap .vcsn-ft-loading{text-align: center; padding: 40px; color: var(--vcsn-gris-60); font-style: italic;}
.vcsn-ft-wrap .vcsn-ft-message{padding: 12px 16px; margin: 12px 0; border-radius: 8px; font-weight: 500;}
.vcsn-ft-wrap .vcsn-ft-message-success{background: var(--vcsn-vert-pale); color: var(--vcsn-vert); border: 1px solid var(--vcsn-vert-bord);}
.vcsn-ft-wrap .vcsn-ft-message-error{background: var(--vcsn-danger-pale); color: var(--vcsn-danger); border: 1px solid var(--vcsn-danger-bord);}
.vcsn-ft-wrap .vcsn-ft-empty{color: var(--vcsn-gris-60); font-style: italic; padding: 20px; text-align: center;}
@media (max-width: 640px){.vcsn-ft-wrap .vcsn-ft-header{flex-direction: column; align-items: stretch; gap: 12px;}
.vcsn-ft-wrap .vcsn-ft-header .vcsn-ft-btn{width: 100%;}
.vcsn-ft-wrap .vcsn-ft-oeuvre-header{padding: 12px 16px;}
.vcsn-ft-wrap .vcsn-ft-oeuvre-actions .vcsn-ft-btn{padding: 6px 10px; font-size: 12px; min-height: 32px;}
.vcsn-ft-wrap .vcsn-ft-subaccordion-header{padding: 12px 14px;}
.vcsn-ft-wrap .vcsn-ft-batch-item{flex-wrap: wrap;}
.vcsn-ft-wrap .vcsn-ft-batch-item-info{width: 100%;}}


/* =====================================================================
   Covoiturage
   ===================================================================== */

.vcsn2-covoiturage{--c-primary: var(--primary, var(--vcsn-rouge));
 --c-secondary: var(--vcsn-rouge-pale);
 --c-tertiary: var(--vcsn-bleu);
 --c-text: var(--vcsn-gris-90);
 --c-text-light: var(--vcsn-gris-60);
 --c-border: var(--vcsn-gris-20);
 --c-surface: #fff;
 --c-bg: var(--vcsn-gris-05);
 --radius: 1rem;
 font-family: system-ui, -apple-system, sans-serif;
 font-size: 1.6rem;
 color: var(--c-text);
 width: 100%;
 max-width: 100%;
 box-sizing: border-box;
 padding: 2rem 0;
 overflow-x: hidden;}
.vcsn2-covoiturage *, .vcsn2-covoiturage *::before, .vcsn2-covoiturage *::after{box-sizing: border-box;
 max-width: 100%;}
.vcsn2-covoiturage .vcsn2-header{text-align:center; margin-bottom: 2rem;}
.vcsn2-covoiturage .vcsn2-title{margin:0 0 .5rem; font-weight:700; font-size: 2.8rem; color: var(--vcsn-noir);}
.vcsn2-covoiturage .vcsn2-subtitle{margin:0 0 1.25rem; color: var(--c-text-light); font-size: 1.8rem;}
.vcsn2-covoiturage .vcsn2-btn{display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
 padding: .75rem 1.25rem; border:1px solid var(--c-border); border-radius: var(--radius);
 font-size: 1.6rem; font-weight: 600; cursor:pointer; 
 background: var(--c-surface); color: var(--c-text);
 transition: all .15s ease;}
.vcsn2-covoiturage .vcsn2-btn:hover{border-color: var(--vcsn-gris-30); background: var(--c-bg);}
.vcsn2-covoiturage .vcsn2-btn--primary{background: var(--c-primary); color:#fff; border-color: var(--c-primary);}
.vcsn2-covoiturage .vcsn2-btn--primary:hover{opacity: .9;}
.vcsn2-covoiturage .vcsn2-btn--secondary{background: var(--c-bg);}
.vcsn2-covoiturage .vcsn2-btn--ghost{background: transparent; border-color: transparent;}
.vcsn2-covoiturage .vcsn2-btn--ghost:hover{background: var(--c-bg); border-color: var(--c-border);}
.vcsn2-covoiturage .vcsn2-btn--sm{padding: .5rem 1rem; font-size: 1.4rem;}
.vcsn2-covoiturage .vcsn2-btn--icon{padding: .5rem;}
.vcsn2-covoiturage .vcsn2-btn--icon svg{opacity: .5;}
.vcsn2-covoiturage .vcsn2-btn--icon:hover svg{opacity: .8;}
.vcsn2-covoiturage .vcsn2-filters{display:flex; gap:.5rem; justify-content:center; margin-bottom: 1.5rem;}
.vcsn2-covoiturage .vcsn2-filter-btn.is-active{background: var(--c-primary); color:#fff; border-color: var(--c-primary);}
.vcsn2-covoiturage #vcsn2-annonces.vcsn2-annonces{display: grid;
 grid-template-columns: 1fr;
 gap: 1.25rem;
 width: 100%;}
@media (min-width: 641px){.vcsn2-covoiturage #vcsn2-annonces.vcsn2-annonces{grid-template-columns: repeat(2, 1fr);}}
@media (min-width: 901px){.vcsn2-covoiturage #vcsn2-annonces.vcsn2-annonces{grid-template-columns: repeat(3, 1fr);}}
.vcsn2-covoiturage .vcsn2-card{background: var(--c-surface);
 border: 1px solid var(--c-border);
 border-radius: var(--radius);
 padding: 1.5rem;
 max-width: 100%;
 overflow: hidden;}
.vcsn2-covoiturage .vcsn2-card--offre{border-left: 4px solid var(--c-tertiary);}
.vcsn2-covoiturage .vcsn2-card--demande{border-left: 4px solid var(--c-primary);}
.vcsn2-covoiturage .vcsn2-card__header{display:flex; align-items:center; gap: .75rem; margin-bottom: 1rem; flex-wrap: wrap;}
.vcsn2-covoiturage .vcsn2-type{font-size: 1.3rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em;}
.vcsn2-covoiturage .vcsn2-type--offre{color: var(--c-tertiary);}
.vcsn2-covoiturage .vcsn2-type--demande{color: var(--c-primary);}
.vcsn2-covoiturage .vcsn2-card__tags{display:flex; gap: .5rem; flex-wrap: wrap; margin-left: auto;}
.vcsn2-covoiturage .vcsn2-tag{font-size: 1.4rem; padding: .3rem .6rem;
 background: var(--c-bg); border-radius: .6rem; color: var(--c-text-light);}
.vcsn2-covoiturage .vcsn2-tag--ville{font-weight: 600; color: var(--c-text);}
.vcsn2-covoiturage .vcsn2-tag--places{color: var(--vcsn-vert); background: var(--vcsn-vert-pale); font-weight: 600;}
.vcsn2-covoiturage .vcsn2-card__body{margin-bottom: 1rem;}
.vcsn2-covoiturage .vcsn2-description{margin: 0; line-height: 1.6; font-size: 1.6rem;}
.vcsn2-covoiturage .vcsn2-contact-block{background: linear-gradient(135deg, var(--c-secondary) 0%, #fff 100%);
 border: 1px solid rgba(0,0,0,.06);
 border-radius: var(--radius);
 padding: 1rem 1.25rem;
 margin-bottom: 1rem;
 overflow: hidden;}
.vcsn2-covoiturage .vcsn2-contact-name{font-weight: 700; 
 font-size: 1.8rem;
 color: var(--vcsn-noir); 
 margin-bottom: .5rem;}
.vcsn2-covoiturage .vcsn2-contact-row{display: flex;
 align-items: center;
 gap: .6rem;
 margin-top: .5rem;}
.vcsn2-covoiturage .vcsn2-contact-row svg{width: 1.8rem;
 height: 1.8rem;
 min-width: 1.8rem;
 color: var(--c-primary);
 flex-shrink: 0;}
.vcsn2-covoiturage .vcsn2-contact-row a{color: var(--c-text);
 text-decoration: none;
 font-size: 1.6rem;
 word-break: break-all;}
.vcsn2-covoiturage .vcsn2-contact-row a:hover{color: var(--c-primary);
 text-decoration: underline;}
.vcsn2-covoiturage .vcsn2-contact-hint{font-size: 1.4rem; 
 color: var(--c-text-light); 
 font-style: italic;
 margin-top: .4rem;}
.vcsn2-covoiturage .vcsn2-card__footer{display: flex; align-items: center; justify-content: space-between;
 padding-top: 1rem; border-top: 1px solid var(--c-border);}
.vcsn2-covoiturage .vcsn2-date{font-size: 1.4rem; color: var(--c-text-light);}
.vcsn2-covoiturage .vcsn2-actions{display: flex; gap: .5rem;}
.vcsn2-covoiturage .vcsn2-thread{display:grid; gap:.75rem; margin-top: 1rem; padding-top: 1rem; border-top: 1px dashed var(--c-border);}
.vcsn2-covoiturage .vcsn2-thread:empty{display: none;}
.vcsn2-covoiturage .vcsn2-bubble{background: var(--c-bg); border-radius: var(--radius);
 padding: 1rem 1.25rem;}
.vcsn2-covoiturage .vcsn2-bubble--mine{background: #e0f2fe;
 margin-left: 2rem;}
.vcsn2-covoiturage .vcsn2-bubble__header{display: flex;
 flex-wrap: wrap;
 align-items: baseline;
 gap: .4rem .8rem;
 margin-bottom: .5rem;
 word-break: break-word;}
.vcsn2-covoiturage .vcsn2-bubble__author{font-weight: 700; font-size: 1.5rem; color: var(--vcsn-noir);}
.vcsn2-covoiturage .vcsn2-bubble__contact{font-size: 1.4rem; color: var(--c-primary); text-decoration: none; word-break: break-all;}
.vcsn2-covoiturage .vcsn2-bubble__contact:hover{text-decoration: underline;}
.vcsn2-covoiturage .vcsn2-bubble__text{font-size: 1.5rem; line-height: 1.5; margin-bottom: .4rem;}
.vcsn2-covoiturage .vcsn2-bubble__time{font-size: 1.2rem; color: var(--c-text-light);}
.vcsn2-covoiturage .vcsn2-msg-count{font-size: 1.3rem;
 color: var(--c-primary);
 font-weight: 600;
 padding: .3rem .6rem;
 background: var(--c-secondary);
 border-radius: .6rem;}
.vcsn2-covoiturage .vcsn2-reply[hidden]{display:none !important;}
.vcsn2-covoiturage .vcsn2-reply{margin-top: 1rem; padding-top: 1rem; border-top: 1px dashed var(--c-border);}
.vcsn2-covoiturage .vcsn2-reply__contact{display: flex;
 flex-wrap: wrap;
 align-items: baseline;
 gap: .3rem .8rem;
 margin-bottom: .75rem;
 font-size: 1.5rem;
 word-break: break-word;}
.vcsn2-covoiturage .vcsn2-reply__name{font-weight: 700; color: var(--vcsn-noir);}
.vcsn2-covoiturage .vcsn2-reply__phone, .vcsn2-covoiturage .vcsn2-reply__email{color: var(--c-text);}
.vcsn2-covoiturage .vcsn2-reply__phone.is-hidden, .vcsn2-covoiturage .vcsn2-reply__email.is-hidden{opacity: .4; text-decoration: line-through;}
.vcsn2-covoiturage .vcsn2-reply__options{display: flex;
 gap: 1rem;
 margin-bottom: .75rem;}
.vcsn2-covoiturage .vcsn2-reply textarea{width: 100%; border: 1px solid var(--c-border); border-radius: var(--radius);
 padding: .75rem; font-size: 1.6rem; resize: vertical; margin-bottom: .5rem;
 max-width: 100%;}
.vcsn2-covoiturage .vcsn2-reply textarea:focus{outline: none; border-color: var(--c-primary);}
.vcsn2-covoiturage .vcsn2-reply__actions{display: flex; gap: .5rem;}
.vcsn2-covoiturage .vcsn2-reply__status{font-size: 1.4rem; margin-top: .5rem;}
.vcsn2-covoiturage .vcsn2-empty-state{grid-column: 1/-1; text-align: center; padding: 3rem 1rem; color: var(--c-text-light);}
.vcsn2-covoiturage .vcsn2-empty-state h3{margin: 0 0 .5rem; font-weight: 600; color: var(--c-text); font-size: 2rem;}
.vcsn2-covoiturage .vcsn2-empty-state p{margin: 0; font-size: 1.6rem;}
.vcsn2-covoiturage .vcsn2-loading{text-align: center; padding: 3rem; color: var(--c-text-light);}
.vcsn2-covoiturage .vcsn2-loading__spinner{width: 3.6rem; height: 3.6rem; margin: 0 auto 1rem;
 border: 3px solid var(--c-border); border-top-color: var(--c-primary);
 border-radius: 50%; animation: vcsn2-spin .8s linear infinite;}
@keyframes vcsn2-spin{to{ transform: rotate(360deg); }}
.vcsn2-covoiturage .vcsn2-load-more{text-align: center; margin-top: 1.5rem;}
.vcsn2-covoiturage .vcsn2-modal[hidden]{display:none !important;}
.vcsn2-covoiturage .vcsn2-modal{position:fixed; inset:0; z-index:9999; display:flex; align-items:center; justify-content:center; padding:1rem;}
.vcsn2-covoiturage .vcsn2-modal__backdrop{position:absolute; inset:0; background:rgba(0,0,0,.4);}
.vcsn2-covoiturage .vcsn2-modal__content{position:relative; z-index:1; width:100%; max-width: min(56rem, calc(100% - 2rem)); max-height:90vh; overflow-y:auto;
 background: var(--c-surface); border-radius: var(--radius);
 box-shadow: 0 20px 40px rgba(0,0,0,.15);}
.vcsn2-covoiturage .vcsn2-modal__header{display:flex; align-items:center; justify-content:space-between;
 padding: 1.5rem 2rem; border-bottom: 1px solid var(--c-border);}
.vcsn2-covoiturage .vcsn2-modal__header h2{margin:0; font-size: 2rem; font-weight: 700;}
.vcsn2-covoiturage .vcsn2-modal__close{background:none; border:none; cursor:pointer; padding: .25rem; color: var(--c-text-light);}
.vcsn2-covoiturage .vcsn2-modal__close:hover{color: var(--c-text);}
.vcsn2-covoiturage .vcsn2-modal__body{padding: 2rem;}
.vcsn2-covoiturage .vcsn2-form-grid{display:grid; grid-template-columns: 1fr 1fr; gap: 1.5rem;}
.vcsn2-covoiturage .vcsn2-form-group--full{grid-column: 1 / -1;}
.vcsn2-covoiturage .vcsn2-label{display:block; font-size: 1.4rem; font-weight: 600; margin-bottom: .5rem; color: var(--c-text);}
.vcsn2-covoiturage .vcsn2-radio-group{display:flex; gap:.6rem; flex-wrap:wrap;}
.vcsn2-covoiturage .vcsn2-radio input{display:none;}
.vcsn2-covoiturage .vcsn2-radio__content{display:inline-block; padding: .6rem 1rem;
 border: 1px solid var(--c-border); border-radius: var(--radius);
 font-size: 1.6rem; cursor: pointer; transition: all .15s;}
.vcsn2-covoiturage .vcsn2-radio__content:hover{border-color: var(--vcsn-gris-30);}
.vcsn2-covoiturage .vcsn2-radio input:checked + .vcsn2-radio__content{border-color: var(--c-primary); background: var(--c-secondary); color: var(--c-primary); font-weight: 600;}
.vcsn2-covoiturage .vcsn2-input, .vcsn2-covoiturage .vcsn2-textarea{width:100%; border: 1px solid var(--c-border); border-radius: var(--radius);
 padding: .75rem 1rem; font-size: 1.6rem;
 max-width: 100%;}
.vcsn2-covoiturage .vcsn2-input:focus, .vcsn2-covoiturage .vcsn2-textarea:focus{outline:none; border-color: var(--c-primary);}
.vcsn2-covoiturage .vcsn2-textarea{resize: vertical;}
.vcsn2-covoiturage .vcsn2-error{color: var(--vcsn-danger); font-size: 1.3rem; margin-top: .3rem;}
.vcsn2-covoiturage .vcsn2-contact-preview{background: var(--c-bg); border-radius: var(--radius);
 padding: .75rem 1rem; font-size: 1.6rem;
 display: flex; flex-wrap: wrap; gap: .3rem .75rem; margin-bottom: .75rem;}
.vcsn2-covoiturage .vcsn2-contact-preview span.is-hidden{opacity: .4; text-decoration: line-through;}
.vcsn2-covoiturage .vcsn2-checkbox-group{display: flex; gap: 1.25rem; flex-wrap: wrap;}
.vcsn2-covoiturage .vcsn2-checkbox{display: flex; align-items: center; gap: .5rem; font-size: 1.6rem; cursor: pointer;}
.vcsn2-covoiturage .vcsn2-checkbox input{width: 1.8rem; height: 1.8rem; accent-color: var(--c-primary);}
.vcsn2-covoiturage .vcsn2-form-actions{display:flex; gap:.75rem; justify-content:flex-end; margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid var(--c-border);}
.vcsn2-covoiturage .vcsn2-flash{padding: .75rem 1rem; border-radius: var(--radius); font-size: 1.6rem; margin-bottom: 1rem;}
.vcsn2-covoiturage .vcsn2-flash.ok{background: var(--vcsn-vert-pale); color: var(--vcsn-vert);}
.vcsn2-covoiturage .vcsn2-flash.ko{background: var(--vcsn-danger-pale); color: var(--vcsn-danger);}
.vcsn2-covoiturage .vcsn2-auth-required{text-align: center; padding: 3rem 1rem;}
.vcsn2-covoiturage .vcsn2-auth-required h3{margin: 0 0 .5rem; font-size: 2.2rem;}
.vcsn2-covoiturage .vcsn2-auth-required p{margin: 0 0 1.25rem; color: var(--c-text-light); font-size: 1.6rem;}
@media (max-width: 640px){.vcsn2-covoiturage{padding: 1.5rem 0;}
.vcsn2-covoiturage .vcsn2-form-grid{grid-template-columns: 1fr;}
.vcsn2-covoiturage .vcsn2-card{padding: 1.25rem;}
.vcsn2-covoiturage .vcsn2-card__header{flex-direction: column; align-items: flex-start; gap: .5rem;}
.vcsn2-covoiturage .vcsn2-card__tags{margin-left: 0;}}


/* =====================================================================
   Trombinoscope
   ===================================================================== */

.vcsn-trombi{max-width: 1180px; margin: 0 auto; padding: 0 24px 32px; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif; color: var(--vcsn-noir);}
.vcsn-trombi *{box-sizing: border-box;}
.vcsn-trombi img{display: block;}
.vcsn-trombi-head{text-align: center; margin: 12px 0 20px;}
.vcsn-trombi-head h2{margin: 0 0 6px; font-weight: 700; font-size: clamp(22px, 4.5vw, 30px); line-height: 1.2;}
.vcsn-trombi-head p{margin: 0; font-size: 15px; color: var(--vcsn-gris-90);}
.vcsn-trombi .vcsn-annees{display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; margin: 4px 0 6px;}
.vcsn-trombi .vcsn-an{border: 1px solid var(--vcsn-gris-20); background: #fff; border-radius: var(--vcsn-r-pilule);
 padding: 8px 18px; font-size: 14px; font-weight: 600; color: var(--vcsn-gris-60);
 text-decoration: none; line-height: 1.2; transition: all .15s ease;}
.vcsn-trombi .vcsn-an:hover{border-color: var(--vcsn-rouge); color: var(--vcsn-rouge);}
.vcsn-trombi .vcsn-an small{display: block; font-size: 10px; font-weight: 400; opacity: .7; margin-top: 1px;}
.vcsn-trombi .vcsn-an-on{background: var(--vcsn-rouge); border-color: var(--vcsn-rouge); color: #fff;}
.vcsn-trombi .vcsn-an-on:hover{color: #fff;}
.vcsn-trombi .vcsn-an-moi{text-decoration: underline; text-underline-offset: 3px;}
.vcsn-trombi .vcsn-annees-note{text-align: center; font-size: 12px; color: var(--vcsn-gris-50); margin: 0 0 6px;}
.vcsn-trombi .vcsn-title{margin: 26px 0 12px; text-align: center; font-size: clamp(18px, 3.2vw, 22px); font-weight: 600; color: var(--vcsn-noir);}
.vcsn-trombi .vcsn-grid{display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; background: #ffffff; padding: 12px; border-radius: 14px; border: 1px solid var(--vcsn-gris-20);}
@media (max-width: 420px){.vcsn-trombi .vcsn-grid{grid-template-columns: 1fr; gap: 12px; padding: 10px;}}
@media (max-width: 640px){.vcsn-trombi .vcsn-avatar{width: 120px; height: 120px;}
.vcsn-trombi .vcsn-card{padding: 12px;}}
@media (min-width: 641px) and (max-width: 899px){.vcsn-trombi .vcsn-grid{grid-template-columns: repeat(3, 1fr); gap: 16px; padding: 12px;}}
@media (min-width: 901px){.vcsn-trombi .vcsn-grid{grid-template-columns: repeat(4, 1fr); gap: 20px; padding: 16px;}
.vcsn-trombi .vcsn-avatar{width: 140px; height: 140px;}
.vcsn-trombi .vcsn-card{padding: 14px;}}
.vcsn-trombi .vcsn-card{background: #ffffff; border: 1px solid var(--vcsn-gris-20); border-radius: 16px; padding: 12px; text-align: center; box-shadow: 0 1px 3px rgba(0,0,0,0.05);}
.vcsn-trombi .vcsn-card:focus-within{outline: 2px solid #1e90ff; outline-offset: 2px;}
.vcsn-trombi .vcsn-avatar{width: 120px; height: 120px; margin: 0 auto 10px; border-radius: 999px; padding: 6px; background: radial-gradient(circle at 50% 50%, #ffffff 50%, var(--vcsn-gris-10) 50%);}
.vcsn-trombi .vcsn-avatar img{width: 100%; height: 100%; object-fit: cover; border-radius: 999px;}
@media (max-width: 420px){.vcsn-trombi .vcsn-avatar{width: 100px; height: 100px;}
.vcsn-trombi .vcsn-card{padding: 10px;}}
.vcsn-trombi .vcsn-name{margin: 6px 0 2px; font-size: 15px; font-weight: 600; color: var(--vcsn-noir);}
.vcsn-trombi .vcsn-tess{font-size: 12px; letter-spacing: 0.2px; color: var(--vcsn-gris-60);}
.vcsn-trombi .vcsn-card{transition: transform 0.12s ease, box-shadow 0.12s ease;}
.vcsn-trombi .vcsn-card:hover{transform: translateY(-1px); box-shadow: 0 3px 8px rgba(0,0,0,0.08);}
.vcsn-trombi .vcsn-avatar{touch-action: manipulation;}


/* =====================================================================
   Questionnaire repas
   ===================================================================== */

.vcsn-repas{max-width:860px;margin:24px auto;padding:0 16px}
.vcsn-repas-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.5);z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px}
.vcsn-repas .vcsn-modal-content{background:#fff;border-radius:16px;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 10px 40px rgba(0,0,0,0.2);animation:modalIn 0.3s ease}
@keyframes modalIn{from{opacity:0;transform:scale(0.95) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}
.vcsn-repas .vcsn-modal-header{background:var(--vcsn-ambre-pale);padding:20px 24px;border-radius:16px 16px 0 0;border-bottom:1px solid var(--vcsn-ambre-bord)}
.vcsn-repas .vcsn-modal-header h2{margin:0;font-size:20px;color:var(--vcsn-ambre)}
.vcsn-repas .vcsn-modal-body{padding:24px;background:#fffbf0;color:var(--vcsn-ambre)}
.vcsn-repas .vcsn-modal-body p{margin:0 0 12px;line-height:1.5}
.vcsn-repas .vcsn-modal-body ul{margin:12px 0 12px 20px;padding:0}
.vcsn-repas .vcsn-modal-body li{margin-bottom:6px}
.vcsn-repas .vcsn-modal-footer{display:flex;justify-content:center;padding:20px 24px;border-top:1px solid var(--vcsn-gris-20);background:#fff;border-radius:0 0 16px 16px}
.vcsn-repas .vcsn-header{text-align:center;margin-bottom:12px}
.vcsn-repas .vcsn-header h1{margin:0;font-size:clamp(22px,4vw,28px)}
.vcsn-repas .vcsn-sub{margin:6px 0 10px;color:var(--vcsn-gris-60)}
.vcsn-repas .chips{display:flex;flex-wrap:wrap;gap:8px}
.vcsn-repas .chips.centered{justify-content:center}
.vcsn-repas .chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:9999px;border:1px solid var(--vcsn-rouge-pale);background:var(--vcsn-rouge-pale);font-weight:600}
.vcsn-repas .chip-blue{border-color:var(--primary,var(--vcsn-rouge));background:color-mix(in srgb,var(--primary,var(--vcsn-rouge)) 10%,white)}
.vcsn-repas .chip-green{border-color:color-mix(in srgb,var(--primary,var(--vcsn-rouge)) 60%,#20a27a);background:color-mix(in srgb,var(--vcsn-vert) 18%,white)}
.vcsn-repas .chip-accomp{border-color:var(--primary,var(--vcsn-rouge));background:color-mix(in srgb,var(--primary,var(--vcsn-rouge)) 12%,white)}
.vcsn-repas .note{margin:10px auto 0;max-width:740px;background:color-mix(in srgb,var(--vcsn-rouge-pale) 60%,white);border-left:4px solid var(--vcsn-rouge-pale);padding:10px 12px;border-radius:8px;color:var(--vcsn-gris-90)}
.vcsn-repas .status-line{margin-top:6px}
.vcsn-repas .card{background:#fff;border:1px solid var(--vcsn-gris-20);border-radius:12px;padding:18px;margin:14px 0}
.vcsn-repas .card h2{margin:0 0 10px;font-size:18px;border-bottom:2px solid var(--primary,var(--vcsn-rouge));display:inline-block;padding-bottom:6px}
.vcsn-repas .card-note{margin:0 0 12px;color:var(--vcsn-gris-60);font-size:14px}
.vcsn-repas .field{margin:10px 0}
.vcsn-repas .field label{font-weight:600;display:block;margin-bottom:6px}
.vcsn-repas .field textarea{width:100%;padding:10px 12px;border:2px solid var(--vcsn-gris-20);border-radius:8px;font-size:16px}
.vcsn-repas .field textarea:focus{outline:none;border-color:var(--primary,var(--vcsn-rouge))}
.vcsn-repas .row-radios{display:flex;gap:18px;flex-wrap:wrap;align-items:center}
.vcsn-repas .row-radios.acc{margin-top:8px}
.vcsn-repas .row-radios .group{display:flex;gap:10px;align-items:center;padding:8px 10px;background:#fff;border:1px solid var(--vcsn-gris-20);border-radius:8px}
.vcsn-repas .label-inline{font-weight:700}
.vcsn-repas .table{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1px;background:var(--vcsn-gris-20);border-radius:10px;overflow:hidden;margin-top:8px}
.vcsn-repas .th{background:var(--primary,var(--vcsn-rouge));color:#fff;text-align:center;padding:10px 6px;font-weight:700}
.vcsn-repas .td{background:#fff;padding:12px 6px;display:flex;align-items:center;justify-content:center}
.vcsn-repas .td.day{font-weight:700;color:var(--vcsn-gris-90)}
.vcsn-repas .td.wed{background:color-mix(in srgb,var(--vcsn-rouge-pale) 70%,white)}
.vcsn-repas .td.pill{background:color-mix(in srgb,var(--primary,var(--vcsn-rouge)) 10%,white);border-left:3px solid var(--primary,var(--vcsn-rouge));font-weight:700;border-radius:0}
.vcsn-repas .counter{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center;border:1px dashed var(--primary,var(--vcsn-rouge));border-radius:10px;padding:10px;margin:10px 0;background:color-mix(in srgb,var(--primary,var(--vcsn-rouge)) 6%,white)}
.vcsn-repas .counter .n{font-weight:800;color:var(--primary,var(--vcsn-rouge))}
.vcsn-repas .counter .sep{opacity:.5}
.vcsn-repas .chips.wrap{justify-content:flex-start}
.vcsn-repas .dl{margin:0}
.vcsn-repas .dl div{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--vcsn-gris-10)}
.vcsn-repas .dl div:last-child{border-bottom:none}
.vcsn-repas .regime{background:var(--vcsn-gris-05);border:1px solid #eef2f7;border-radius:8px;padding:10px}
.vcsn-repas .actions{text-align:center;margin:12px 0}
.vcsn-repas .btn{background:var(--primary,var(--vcsn-rouge));color:#fff;border:none;padding:12px 22px;border-radius:8px;font-weight:700;cursor:pointer}
.vcsn-repas .btn:hover{filter:brightness(.95)}
.vcsn-repas .small{font-size:12px}
.vcsn-repas .muted{color:var(--vcsn-gris-60)}
.vcsn-repas .footer{text-align:center;margin-top:12px}
.vcsn-repas .link{display:inline-block;padding:10px 14px;border:1px solid var(--vcsn-gris-20);border-radius:10px;color:var(--vcsn-gris-60);text-decoration:none}
.vcsn-repas .link:hover{color:var(--primary,var(--vcsn-rouge));border-color:var(--primary,var(--vcsn-rouge))}
.vcsn-repas .vcsn-message{margin:12px 0;padding:12px;border-radius:8px}
.vcsn-repas .vcsn-message-success{background:color-mix(in srgb,var(--primary,var(--vcsn-rouge)) 10%,white);border:1px solid var(--primary,var(--vcsn-rouge))}
.vcsn-repas .vcsn-message-error{background:var(--vcsn-danger-pale);border:1px solid var(--vcsn-danger-bord);color:var(--vcsn-danger)}
.vcsn-repas .recap-card{background:linear-gradient(135deg,#fefefe 0%,#faf9f9 100%)}
.vcsn-repas .recap-table{display:flex;flex-direction:column;gap:0}
.vcsn-repas .recap-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--vcsn-gris-10)}
.vcsn-repas .recap-row:last-child{border-bottom:none}
.vcsn-repas .recap-label{font-size:14px;color:var(--vcsn-gris-90)}
.vcsn-repas .recap-value{font-size:14px;font-weight:500}
.vcsn-repas .recap-regime{max-width:200px;text-align:right}
.vcsn-repas .badge-oui{display:inline-block;background:var(--vcsn-vert-pale);color:var(--vcsn-vert);padding:4px 10px;border-radius:20px;font-size:13px;font-weight:600}
.vcsn-repas .badge-non{display:inline-block;background:var(--vcsn-danger-pale);color:var(--vcsn-danger);padding:4px 10px;border-radius:20px;font-size:13px;font-weight:600}
.vcsn-repas .recap-separator{height:1px;background:linear-gradient(90deg,transparent,var(--vcsn-gris-20),transparent);margin:8px 0}
.vcsn-repas .recap-externe{padding:8px 0}
.vcsn-repas .recap-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.vcsn-repas .recap-chip{background:#f1f5f9;color:#475569;padding:5px 10px;border-radius:6px;font-size:13px;font-weight:500}
.vcsn-repas .recap-chip-inclus{background:var(--vcsn-vert-pale);color:var(--vcsn-vert)}
.vcsn-repas .recap-summary{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;color:var(--vcsn-gris-60)}
.vcsn-repas .recap-dot{color:var(--vcsn-gris-30)}
.vcsn-repas .recap-supp{color:var(--vcsn-ambre);font-weight:600}
.vcsn-repas .recap-date{margin:14px 0 0;font-size:12px;color:var(--vcsn-gris-50);text-align:right}
@media (max-width:640px){.vcsn-repas{padding:0 14px}
.vcsn-repas .table{grid-template-columns:1fr}
.vcsn-repas .td{justify-content:flex-start;padding:12px 14px}
.vcsn-repas .th{padding:10px 14px}
.vcsn-repas .row-radios{flex-direction:column;align-items:stretch;gap:10px}
.vcsn-repas .row-radios .group{justify-content:space-between;padding:12px 14px;min-height:48px}
.vcsn-repas .recap-row{flex-direction:column;align-items:flex-start;gap:3px}
.vcsn-repas .recap-regime{max-width:100%;text-align:left}
.vcsn-repas-modal{padding:0}
.vcsn-repas .vcsn-modal-content{max-width:100%;max-height:100vh;border-radius:0;height:100%}
.vcsn-repas .vcsn-modal-footer{border-radius:0;position:sticky;bottom:0}
.vcsn-repas input, .vcsn-repas select, .vcsn-repas textarea{font-size:16px}
.vcsn-repas .counter{padding:14px}
.vcsn-repas .note{margin-left:0;margin-right:0}}
@media (max-width:420px){.vcsn-repas .chips{gap:6px}
.vcsn-repas{padding:0 12px}}


/* =====================================================================
   Petits ensembles
   ===================================================================== */

.vcsn-pe-wrap{max-width:1180px;
 .vcsn-pe-selection{background:#fff;border-radius:var(--vcsn-r-xl);padding:17px 20px 15px;margin-bottom:20px;box-shadow:var(--vcsn-o-2)}
 .vcsn-pe-sel-tete{display:flex;align-items:baseline;gap:11px;flex-wrap:wrap;margin-bottom:12px}
 .vcsn-pe-sel-tete h2{margin:0;font-size:17px;color:var(--vcsn-noir)}
 .vcsn-pe-sel-tete span{font-size:13px;color:var(--vcsn-gris-50)}
 .vcsn-pe-sel-aide{margin:11px 0 0;font-size:12.5px;color:var(--vcsn-gris-50);line-height:1.5}
 .vcsn-pe-fentes{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
 .vcsn-pe-fente{display:flex;align-items:center;gap:9px;border-radius:var(--vcsn-r-m);padding:10px 11px;min-height:56px}
 .vcsn-pe-fente-r{width:23px;height:23px;border-radius:var(--vcsn-r-xs);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:12.5px;flex:0 0 auto}
 .vcsn-pe-fente-c{flex:1;min-width:0;display:flex;flex-direction:column}
 .vcsn-pe-fente-t{font-size:13.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .vcsn-pe-fente-s{font-size:11.5px;color:var(--vcsn-gris-50);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .vcsn-pe-fente-e{font-size:10px;font-weight:700;padding:3px 7px;border-radius:var(--vcsn-r-pilule);white-space:nowrap;flex:0 0 auto}
 .vcsn-pe-fente-e.ok{background:var(--vcsn-vert-pale);color:var(--vcsn-vert)}
 .vcsn-pe-fente-e.att{background:var(--vcsn-ambre-pale);color:var(--vcsn-ambre)}
 .vcsn-pe-fente-x{background:none;border:none;color:var(--vcsn-gris-30);cursor:pointer;font-size:14px;padding:2px 3px;line-height:1;flex:0 0 auto}
 .vcsn-pe-fente-x:hover{color:var(--vcsn-danger)}
 .vcsn-pe-fente-vide{border:1.5px dashed var(--vcsn-gris-20);background:var(--vcsn-gris-05)}
 .vcsn-pe-fente-vide .vcsn-pe-fente-r{background:var(--vcsn-gris-10);color:var(--vcsn-gris-40)}
 .vcsn-pe-fente-vide .vcsn-pe-fente-t{color:var(--vcsn-gris-40);font-weight:500}
 .vcsn-pe-fente-pleine{background:var(--vcsn-rouge-pale);box-shadow:inset 0 0 0 1.5px var(--vcsn-rouge-bord)}
 .vcsn-pe-fente-pleine .vcsn-pe-fente-r{background:var(--vcsn-rouge);color:#fff}
 .vcsn-pe-prio{display:flex;gap:9px;align-items:center;flex-wrap:wrap;padding-top:4px}
 .vcsn-pe-prio-l{font-size:13.5px;color:var(--vcsn-gris-60);margin-right:2px}
 .vcsn-pe-prio-b{width:38px;height:38px;border-radius:var(--vcsn-r-m);border:1.5px solid var(--vcsn-gris-20);background:#fff;font-weight:700;font-size:15px;color:var(--vcsn-gris-60);cursor:pointer;font-family:inherit;transition:all .15s ease}
 .vcsn-pe-prio-b:hover{border-color:var(--vcsn-rouge);color:var(--vcsn-rouge)}
 .vcsn-pe-prio-b.on{background:var(--vcsn-rouge);border-color:var(--vcsn-rouge);color:#fff}
 .vcsn-pe-prio-b.pris{border-style:dashed;border-color:var(--vcsn-gris-30);color:var(--vcsn-gris-40);background:var(--vcsn-gris-05)}
 .vcsn-pe-prio-b.pris:hover{border-style:solid;border-color:var(--vcsn-rouge);color:var(--vcsn-rouge);background:#fff}
 .vcsn-pe-complet{margin:0 0 12px;font-size:13.5px;color:var(--vcsn-danger);line-height:1.5}
 .vcsn-pe-revoir{background:none;border:none;color:var(--vcsn-gris-50);text-decoration:underline;font-size:12.5px;cursor:pointer;padding:0;margin-top:7px;display:block;font-family:inherit}
 .vcsn-pe-revoir:hover{color:var(--vcsn-rouge)}
 @media(max-width:640px){
 .vcsn-pe-fentes{grid-template-columns:1fr}
 .vcsn-pe-fente-e{display:none}
 }
margin:20px auto;padding:0 16px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;color:var(--vcsn-noir)}
.vcsn-pe-wrap .vcsn-pe-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:16px;border-bottom:2px solid var(--vcsn-gris-20);flex-wrap:wrap;gap:12px}
.vcsn-pe-wrap .vcsn-pe-header h1{margin:0;color:var(--vcsn-rouge);font-weight:700}
.vcsn-pe-wrap .vcsn-pe-btn{border:0;border-radius:8px;padding:12px 20px;font-weight:600;cursor:pointer;transition:all .2s ease;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:6px;text-decoration:none}
.vcsn-pe-wrap .vcsn-pe-btn-primary{background:var(--vcsn-rouge);color:#fff}
.vcsn-pe-wrap .vcsn-pe-btn-primary:hover{background:var(--vcsn-rouge-fonce);transform:translateY(-1px)}
.vcsn-pe-wrap .vcsn-pe-btn-secondary{background:var(--vcsn-gris-60);color:#fff}
.vcsn-pe-wrap .vcsn-pe-btn-secondary:hover{background:#5a6268}
.vcsn-pe-wrap .vcsn-pe-btn-success{background:var(--vcsn-vert);color:#fff}
.vcsn-pe-wrap .vcsn-pe-btn-success:hover{background:var(--vcsn-vert)}
.vcsn-pe-wrap .vcsn-pe-btn-outline{background:#fff;color:var(--vcsn-rouge);border:2px solid var(--vcsn-rouge)}
.vcsn-pe-wrap .vcsn-pe-btn-outline:hover{background:var(--vcsn-rouge);color:#fff}
.vcsn-pe-wrap .vcsn-pe-btn-edit{background:#fff;color:var(--vcsn-rouge);border:2px solid var(--vcsn-rouge)}
.vcsn-pe-wrap .vcsn-pe-btn-edit:hover{background:var(--vcsn-rouge);color:#fff}
.vcsn-pe-wrap .vcsn-pe-btn-small{padding:8px 14px;min-height:36px}
.vcsn-pe-wrap .vcsn-pe-btn-danger{background:var(--vcsn-danger);color:#fff}
.vcsn-pe-wrap .vcsn-pe-btn-danger:hover{background:var(--vcsn-danger)}
.vcsn-pe-wrap .vcsn-pe-btn:disabled{opacity:.6;cursor:not-allowed}
.vcsn-pe-wrap .vcsn-pe-filtres{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:16px;padding:16px;background:var(--vcsn-gris-10);border-radius:12px}
.vcsn-pe-wrap .vcsn-pe-input, .vcsn-pe-wrap .vcsn-pe-select{width:100%;padding:12px;border:2px solid var(--vcsn-gris-20);border-radius:8px;font-family:inherit;transition:border-color .2s ease;box-sizing:border-box}
.vcsn-pe-wrap .vcsn-pe-input:focus, .vcsn-pe-wrap .vcsn-pe-select:focus{outline:none;border-color:var(--vcsn-rouge)}
.vcsn-pe-wrap .vcsn-pe-help{background:var(--vcsn-info-pale);border-left:4px solid #0066cc;padding:14px 18px;margin-bottom:20px;border-radius:0 8px 8px 0;color:var(--vcsn-info)}
.vcsn-pe-wrap .vcsn-pe-section{background:#fff;border:1px solid var(--vcsn-gris-20);border-radius:14px;padding:24px;margin-top:24px;box-shadow:0 2px 8px rgba(0,0,0,.06)}
.vcsn-pe-wrap .vcsn-pe-section h2{margin:0 0 16px;color:var(--vcsn-rouge)}
.vcsn-pe-wrap .vcsn-pe-oeuvres{display:flex;flex-direction:column;gap:16px}
.vcsn-pe-wrap .vcsn-pe-oeuvre{background:#fff;border:1px solid var(--vcsn-gris-20);border-radius:14px;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.06)}
.vcsn-pe-wrap .vcsn-pe-oeuvre-header{display:flex;align-items:center;padding:16px 20px;background:var(--vcsn-gris-10);cursor:pointer;min-height:60px;gap:12px}
.vcsn-pe-wrap .vcsn-pe-oeuvre-header:hover{background:var(--vcsn-gris-20)}
.vcsn-pe-wrap .vcsn-pe-oeuvre-info{flex:1;min-width:0}
.vcsn-pe-wrap .vcsn-pe-oeuvre-info h3{margin:0 0 4px;color:var(--vcsn-noir);font-weight:700;font-size:var(--vcsn-t-l)}
.vcsn-pe-wrap .vcsn-pe-oeuvre-compositeur{color:var(--vcsn-gris-60);font-style:italic;margin-bottom:8px;font-size:var(--vcsn-t-m)}
.vcsn-pe-wrap .vcsn-pe-oeuvre-tags{display:flex;gap:6px;flex-wrap:wrap}
.vcsn-pe-wrap .vcsn-pe-tag{background:var(--vcsn-rouge);color:#fff;padding:4px 10px;border-radius:20px;font-weight:500;font-size:var(--vcsn-t-s)}
.vcsn-pe-wrap .vcsn-pe-tag-secondary{background:var(--vcsn-gris-60)}
.vcsn-pe-wrap .vcsn-pe-tag-success{background:var(--vcsn-vert)}
.vcsn-pe-wrap .vcsn-pe-tag-danger{background:var(--vcsn-danger)}
.vcsn-pe-wrap .vcsn-pe-oeuvre-right{display:flex;align-items:center;gap:8px;flex-shrink:0}
.vcsn-pe-wrap .vcsn-pe-chevron{display:inline-block;width:10px;height:10px;border-right:2px solid var(--vcsn-rouge);border-bottom:2px solid var(--vcsn-rouge);transform:rotate(-45deg);transition:transform .2s ease;flex-shrink:0}
.vcsn-pe-wrap .vcsn-pe-oeuvre-header.active .vcsn-pe-chevron{transform:rotate(45deg)}
.vcsn-pe-wrap .vcsn-pe-oeuvre-content{display:none;padding:20px;background:#fff}
.vcsn-pe-wrap .vcsn-pe-oeuvre-content.active{display:block}
.vcsn-pe-wrap .vcsn-pe-youtube{width:100%;max-width:560px;aspect-ratio:16/9;border:0;border-radius:8px;margin-bottom:16px}
.vcsn-pe-wrap .vcsn-pe-inscription-zone{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:16px;background:var(--vcsn-gris-10);border-radius:8px}
.vcsn-pe-wrap .vcsn-pe-inscription-zone select{flex:1;min-width:180px}
.vcsn-pe-wrap .vcsn-pe-inscription-item{display:flex;justify-content:space-between;align-items:flex-start;padding:16px;background:var(--vcsn-gris-10);border-radius:10px;margin-bottom:10px;gap:12px;flex-wrap:wrap}
.vcsn-pe-wrap .vcsn-pe-inscription-item h4{margin:0 0 4px;color:var(--vcsn-noir)}
.vcsn-pe-wrap .vcsn-pe-inscription-item .composer{color:var(--vcsn-gris-60);font-style:italic}
.vcsn-pe-wrap .vcsn-pe-inscription-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px}
.vcsn-pe-wrap .vcsn-pe-badge{padding:6px 14px;border-radius:20px;font-weight:600;display:inline-block}
.vcsn-pe-wrap .vcsn-pe-badge-waiting{background:var(--vcsn-ambre-pale);color:var(--vcsn-ambre)}
.vcsn-pe-wrap .vcsn-pe-badge-validated{background:var(--vcsn-vert-pale);color:var(--vcsn-vert)}
.vcsn-pe-wrap .vcsn-pe-badge-refused{background:var(--vcsn-danger-pale);color:var(--vcsn-danger)}
.vcsn-pe-wrap .vcsn-pe-fichiers{margin-top:12px;padding-top:12px;border-top:1px solid var(--vcsn-gris-20)}
.vcsn-pe-wrap .vcsn-pe-fichiers h5{margin:0 0 8px;color:var(--vcsn-noir)}
.vcsn-pe-wrap .vcsn-pe-fichier-item{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--vcsn-info-pale);border-radius:6px;margin:4px 4px 4px 0;color:var(--vcsn-info);text-decoration:none}
.vcsn-pe-wrap .vcsn-pe-fichier-item:hover{background:#cce0ff}
.vcsn-pe-wrap .vcsn-pe-message{padding:14px 18px;border-radius:8px;margin:12px 0;font-weight:500}
.vcsn-pe-wrap .vcsn-pe-message-success{background:var(--vcsn-vert-pale);color:var(--vcsn-vert);border:1px solid var(--vcsn-vert-bord)}
.vcsn-pe-wrap .vcsn-pe-message-error{background:var(--vcsn-danger-pale);color:var(--vcsn-danger);border:1px solid var(--vcsn-danger-bord)}
.vcsn-pe-wrap .vcsn-pe-message-info{background:var(--vcsn-info-pale);color:var(--vcsn-info);border:1px solid var(--vcsn-info-bord)}
.vcsn-pe-wrap .vcsn-pe-loading{text-align:center;padding:40px;color:var(--vcsn-gris-60);font-style:italic}
.vcsn-pe-wrap .vcsn-pe-empty{color:var(--vcsn-gris-60);font-style:italic;padding:20px;text-align:center}
.vcsn-pe-wrap .vcsn-pe-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px}
.vcsn-pe-wrap .vcsn-pe-modal-content{background:#fff;border-radius:16px;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 10px 40px rgba(0,0,0,.2)}
.vcsn-pe-wrap .vcsn-pe-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--vcsn-gris-20)}
.vcsn-pe-wrap .vcsn-pe-modal-header h2{margin:0;color:var(--vcsn-noir)}
.vcsn-pe-wrap .vcsn-pe-modal-close{background:none;border:none;color:var(--vcsn-gris-60);cursor:pointer;line-height:1;padding:0;width:32px;height:32px}
.vcsn-pe-wrap .vcsn-pe-modal-close:hover{color:var(--vcsn-rouge)}
.vcsn-pe-wrap .vcsn-pe-modal-body{padding:24px}
.vcsn-pe-wrap .vcsn-pe-modal-footer{display:flex;justify-content:center;gap:12px;padding:20px 24px;border-top:1px solid var(--vcsn-gris-20)}
@media(max-width:640px){.vcsn-pe-wrap .vcsn-pe-header{flex-direction:column;align-items:stretch}
.vcsn-pe-wrap .vcsn-pe-header .vcsn-pe-btn{width:100%}
.vcsn-pe-wrap .vcsn-pe-oeuvre-header{padding:12px 16px}
.vcsn-pe-wrap .vcsn-pe-inscription-zone{flex-direction:column}
.vcsn-pe-wrap .vcsn-pe-inscription-zone select, .vcsn-pe-wrap .vcsn-pe-inscription-zone button{width:100%}
.vcsn-pe-wrap .vcsn-pe-inscription-item{flex-direction:column;align-items:stretch;text-align:center}}


/* =====================================================================
   Petits ensembles, gestion
   ===================================================================== */

.vcsn-admin-wrap{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;max-width:1200px;margin:20px auto;padding:0 16px;color:var(--vcsn-noir)}
.vcsn-admin-wrap .vcsn-card{background:#fff;border:1px solid var(--vcsn-gris-20);border-radius:16px;padding:24px;margin:16px 0;box-shadow:0 2px 8px rgba(0,0,0,.06)}
.vcsn-admin-wrap .vcsn-card h2{color:var(--vcsn-rouge);margin:0 0 16px;font-weight:700}
.vcsn-admin-wrap .vcsn-card h3{color:var(--vcsn-noir);margin:0 0 12px;font-weight:600}
.vcsn-admin-wrap .vcsn-btn{border:0;border-radius:12px;padding:14px 20px;font-weight:600;cursor:pointer;transition:all .2s ease;min-height:50px;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none}
.vcsn-admin-wrap .vcsn-btn-primary{background:var(--vcsn-rouge);color:#fff}
.vcsn-admin-wrap .vcsn-btn-primary:hover{background:var(--vcsn-rouge-fonce)}
.vcsn-admin-wrap .vcsn-btn-success{background:var(--vcsn-vert);color:#fff}
.vcsn-admin-wrap .vcsn-btn-success:hover{background:var(--vcsn-vert)}
.vcsn-admin-wrap .vcsn-btn-secondary{background:var(--vcsn-gris-60);color:#fff}
.vcsn-admin-wrap .vcsn-btn-secondary:hover{background:#5a6268}
.vcsn-admin-wrap .vcsn-btn-outline{background:#fff;border:2px solid var(--vcsn-rouge);color:var(--vcsn-rouge)}
.vcsn-admin-wrap .vcsn-btn-outline:hover{background:var(--vcsn-rouge);color:#fff}
.vcsn-admin-wrap .vcsn-btn-danger{background:var(--vcsn-danger);color:#fff}
.vcsn-admin-wrap .vcsn-btn-danger:hover{background:var(--vcsn-danger)}
.vcsn-admin-wrap .vcsn-btn-info{background:var(--vcsn-info);color:#fff}
.vcsn-admin-wrap .vcsn-btn-info:hover{background:var(--vcsn-info)}
.vcsn-admin-wrap .vcsn-grid{display:grid;gap:16px}
@media(min-width:641px){.vcsn-admin-wrap .vcsn-grid-2{grid-template-columns:1fr 1fr}
.vcsn-admin-wrap .vcsn-grid-3{grid-template-columns:1fr 1fr 1fr}}
.vcsn-admin-wrap .vcsn-input, .vcsn-admin-wrap .vcsn-select, .vcsn-admin-wrap .vcsn-textarea{width:100%;padding:16px;border:2px solid var(--vcsn-gris-20);border-radius:12px;min-height:50px;box-sizing:border-box;transition:border-color .2s ease;font-family:inherit}
.vcsn-admin-wrap .vcsn-input:focus, .vcsn-admin-wrap .vcsn-select:focus, .vcsn-admin-wrap .vcsn-textarea:focus{border-color:var(--vcsn-rouge);outline:none}
.vcsn-admin-wrap .vcsn-textarea{min-height:120px;resize:vertical}
.vcsn-admin-wrap .vcsn-toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:16px 0;padding:16px;background:var(--vcsn-gris-10);border-radius:12px}
.vcsn-admin-wrap .vcsn-toolbar h1{color:var(--vcsn-rouge);margin:0;flex:1;min-width:250px}
.vcsn-admin-wrap .vcsn-message{padding:16px;border-radius:12px;margin:12px 0;font-weight:500}
.vcsn-admin-wrap .vcsn-message-success{background:var(--vcsn-vert-pale);color:var(--vcsn-vert);border:1px solid var(--vcsn-vert-bord)}
.vcsn-admin-wrap .vcsn-message-error{background:var(--vcsn-danger-pale);color:var(--vcsn-danger);border:1px solid var(--vcsn-danger-bord)}
.vcsn-admin-wrap .vcsn-message-info{background:var(--vcsn-info-pale);color:var(--vcsn-info);border:1px solid var(--vcsn-info-bord)}
.vcsn-admin-wrap .vcsn-oeuvre{background:#fff;border:1px solid var(--vcsn-gris-20);border-radius:16px;margin:16px 0;box-shadow:0 2px 8px rgba(0,0,0,.06)}
.vcsn-admin-wrap .vcsn-oeuvre-header{padding:20px 24px;background:var(--vcsn-gris-10);border-bottom:1px solid var(--vcsn-gris-20);display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.vcsn-admin-wrap .vcsn-oeuvre-info h4{margin:0 0 4px;color:var(--vcsn-noir);font-weight:700;font-size:var(--vcsn-t-l)}
.vcsn-admin-wrap .vcsn-oeuvre-info .compositeur{color:var(--vcsn-gris-60);font-style:italic;margin-bottom:8px;font-size:var(--vcsn-t-m)}
.vcsn-admin-wrap .vcsn-oeuvre-actions{display:flex;gap:8px;flex-shrink:0}
.vcsn-admin-wrap .vcsn-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.vcsn-admin-wrap .vcsn-tag{background:var(--vcsn-rouge);color:#fff;padding:4px 12px;border-radius:20px;font-weight:500;font-size:var(--vcsn-t-s)}
.vcsn-admin-wrap .vcsn-tag-secondary{background:var(--vcsn-gris-60)}
.vcsn-admin-wrap .vcsn-tag-success{background:var(--vcsn-vert)}
.vcsn-admin-wrap .vcsn-inscriptions{padding:20px 24px}
.vcsn-admin-wrap .vcsn-inscriptions h3{font-size:var(--vcsn-t-m)}
.vcsn-admin-wrap .vcsn-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-top:16px}
.vcsn-admin-wrap .vcsn-table{width:100%;border-collapse:collapse;min-width:520px}
.vcsn-admin-wrap .vcsn-table th{background:var(--vcsn-gris-10);padding:16px 12px;text-align:left;font-weight:600;color:var(--vcsn-noir);border-bottom:2px solid var(--vcsn-gris-20)}
.vcsn-admin-wrap .vcsn-table td{padding:16px 12px;border-bottom:1px solid var(--vcsn-gris-20);vertical-align:middle}
.vcsn-admin-wrap .vcsn-table tr:hover{background:var(--vcsn-gris-10)}
.vcsn-admin-wrap .vcsn-table th.text-right, .vcsn-admin-wrap .vcsn-table td.text-right{text-align:right}
.vcsn-admin-wrap .vcsn-table th.text-center, .vcsn-admin-wrap .vcsn-table td.text-center{text-align:center}
.vcsn-admin-wrap .vcsn-actions-l{display:flex;gap:5px;justify-content:flex-end}
.vcsn-admin-wrap .vcsn-ib{width:32px;height:32px;border-radius:var(--vcsn-r-s);border:1px solid var(--vcsn-gris-20);background:#fff;cursor:pointer;font-size:13px;line-height:1;color:var(--vcsn-gris-60);display:inline-flex;align-items:center;justify-content:center;transition:all .15s ease}
.vcsn-admin-wrap .vcsn-ib:hover{border-color:var(--vcsn-gris-30);background:var(--vcsn-gris-05)}
.vcsn-admin-wrap .vcsn-ib-ok:hover{border-color:var(--vcsn-vert);color:var(--vcsn-vert);background:var(--vcsn-vert-pale)}
.vcsn-admin-wrap .vcsn-ib-no:hover{border-color:var(--vcsn-ambre);color:var(--vcsn-ambre);background:var(--vcsn-ambre-pale)}
.vcsn-admin-wrap .vcsn-ib-del:hover{border-color:var(--vcsn-danger);color:var(--vcsn-danger);background:var(--vcsn-danger-pale)}
.vcsn-admin-wrap .vcsn-kebab{position:relative;display:inline-block}
.vcsn-admin-wrap .vcsn-kebab-btn{background:none;border:1px solid var(--vcsn-gris-20);border-radius:8px;cursor:pointer;padding:6px 10px;font-size:var(--vcsn-t-m);line-height:1;color:var(--vcsn-gris-60);transition:all .15s ease}
.vcsn-admin-wrap .vcsn-kebab-btn:hover{background:var(--vcsn-gris-10);color:var(--vcsn-noir);border-color:#ccc}
.vcsn-admin-wrap .vcsn-kebab-menu{display:none;position:absolute;right:0;top:100%;margin-top:4px;background:#fff;border:1px solid var(--vcsn-gris-20);border-radius:10px;box-shadow:0 4px 16px rgba(0,0,0,.12);z-index:100;min-width:160px;overflow:hidden}
.vcsn-admin-wrap .vcsn-kebab-menu.active{display:block}
.vcsn-admin-wrap .vcsn-kebab-item{display:flex;align-items:center;gap:8px;padding:10px 16px;cursor:pointer;font-size:var(--vcsn-t-s);font-weight:500;color:var(--vcsn-noir);white-space:nowrap;transition:background .1s ease;border:none;background:none;width:100%;text-align:left}
.vcsn-admin-wrap .vcsn-kebab-item:hover{background:var(--vcsn-gris-10)}
.vcsn-admin-wrap .vcsn-kebab-item--success{color:var(--vcsn-vert)}
.vcsn-admin-wrap .vcsn-kebab-item--success:hover{background:var(--vcsn-vert-pale)}
.vcsn-admin-wrap .vcsn-kebab-item--danger{color:var(--vcsn-danger)}
.vcsn-admin-wrap .vcsn-kebab-item--danger:hover{background:var(--vcsn-danger-pale)}
.vcsn-admin-wrap .vcsn-kebab-item--warning{color:var(--vcsn-ambre)}
.vcsn-admin-wrap .vcsn-kebab-item--warning:hover{background:var(--vcsn-ambre-pale)}
.vcsn-admin-wrap .vcsn-kebab-separator{height:1px;background:var(--vcsn-gris-20);margin:4px 0}
.vcsn-admin-wrap .vcsn-badge{padding:6px 12px;border-radius:20px;font-weight:600;text-align:center;display:inline-block;min-width:80px}
.vcsn-admin-wrap .vcsn-badge-waiting{background:var(--vcsn-ambre-pale);color:var(--vcsn-ambre)}
.vcsn-admin-wrap .vcsn-badge-validated{background:var(--vcsn-vert-pale);color:var(--vcsn-vert)}
.vcsn-admin-wrap .vcsn-badge-refused{background:var(--vcsn-danger-pale);color:var(--vcsn-danger)}
.vcsn-admin-wrap .vcsn-skeleton{background:linear-gradient(90deg,var(--vcsn-gris-10) 25%,#e0e0e0 50%,var(--vcsn-gris-10) 75%);background-size:200% 100%;animation:vcsn-loading 1.2s infinite;border-radius:8px;height:20px;margin:8px 0}
@keyframes vcsn-loading{0%{background-position:200% 0}100%{background-position:-200% 0}}
.vcsn-admin-wrap .vcsn-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:9999;display:none;align-items:center;justify-content:center;padding:20px}
.vcsn-admin-wrap .vcsn-modal.active{display:flex}
.vcsn-admin-wrap .vcsn-modal-content{background:#fff;border-radius:16px;max-width:700px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 10px 40px rgba(0,0,0,.2)}
.vcsn-admin-wrap .vcsn-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--vcsn-gris-20);position:sticky;top:0;background:#fff;z-index:10;border-radius:16px 16px 0 0}
.vcsn-admin-wrap .vcsn-modal-header h2{margin:0;color:var(--vcsn-noir)}
.vcsn-admin-wrap .vcsn-modal-close{background:none;border:none;color:var(--vcsn-gris-60);cursor:pointer;width:32px;height:32px}
.vcsn-admin-wrap .vcsn-modal-body{padding:24px}
.vcsn-admin-wrap .vcsn-modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:20px 24px;border-top:1px solid var(--vcsn-gris-20)}
.vcsn-admin-wrap .vcsn-form-group{margin-bottom:16px}
.vcsn-admin-wrap .vcsn-form-group label{display:block;margin-bottom:6px;font-weight:600;color:var(--vcsn-noir)}
.vcsn-admin-wrap .vcsn-form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px}
.vcsn-admin-wrap .vcsn-icon-btn{background:none;border:1px solid var(--vcsn-gris-20);border-radius:8px;cursor:pointer;padding:8px;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;transition:all .15s ease}
.vcsn-admin-wrap .vcsn-icon-btn:hover{transform:translateY(-1px);box-shadow:0 2px 6px rgba(0,0,0,.1)}
.vcsn-admin-wrap .vcsn-icon-btn svg{width:18px;height:18px}
.vcsn-admin-wrap .vcsn-icon-btn--edit{color:var(--vcsn-rouge);border-color:var(--vcsn-rouge)}
.vcsn-admin-wrap .vcsn-icon-btn--edit:hover{background:var(--vcsn-rouge);color:#fff}
.vcsn-admin-wrap .vcsn-icon-btn--email{color:var(--vcsn-info);border-color:var(--vcsn-info)}
.vcsn-admin-wrap .vcsn-icon-btn--email:hover{background:var(--vcsn-info);color:#fff}
.vcsn-admin-wrap .vcsn-icon-btn--delete{color:var(--vcsn-danger);border-color:var(--vcsn-danger)}
.vcsn-admin-wrap .vcsn-icon-btn--delete:hover{background:var(--vcsn-danger);color:#fff}
.vcsn-admin-wrap .vcsn-icon-btn:disabled{opacity:.3;cursor:not-allowed;transform:none;box-shadow:none}
.vcsn-admin-wrap .vcsn-listing-table{width:100%;border-collapse:collapse;min-width:440px}
.vcsn-admin-wrap .vcsn-listing-table th{background:var(--vcsn-gris-10);padding:12px;text-align:left;font-weight:600;color:var(--vcsn-noir);border-bottom:2px solid var(--vcsn-gris-20);font-size:var(--vcsn-t-s)}
.vcsn-admin-wrap .vcsn-listing-table td{padding:12px;border-bottom:1px solid var(--vcsn-gris-20);font-size:var(--vcsn-t-s)}
.vcsn-admin-wrap .vcsn-listing-table tr:hover{background:var(--vcsn-gris-10)}
.vcsn-admin-wrap .vcsn-listing-count{background:var(--vcsn-info-pale);border:1px solid var(--vcsn-info-bord);border-radius:8px;padding:12px 16px;margin-bottom:16px;font-weight:600;color:var(--vcsn-info);font-size:var(--vcsn-t-s)}
.vcsn-admin-wrap .vcsn-tessiture-badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:var(--vcsn-t-xs);font-weight:600;background:var(--vcsn-gris-20);color:var(--vcsn-noir)}
@media(max-width:640px){.vcsn-admin-wrap .vcsn-table thead{display:none}
.vcsn-admin-wrap .vcsn-table tr{display:grid;grid-template-columns:1fr auto;gap:3px 10px;padding:12px 0;border-bottom:1px solid var(--vcsn-gris-20)}
.vcsn-admin-wrap .vcsn-table td{border:none;padding:0}
.vcsn-admin-wrap .vcsn-table td.text-center, .vcsn-admin-wrap .vcsn-table td.text-right{text-align:left}
.vcsn-admin-wrap .vcsn-actions-l{justify-content:flex-start;margin-top:7px;grid-column:1/-1}
.vcsn-admin-wrap{padding:0 8px}
.vcsn-admin-wrap .vcsn-card{padding:16px}
.vcsn-admin-wrap .vcsn-toolbar{flex-direction:column;align-items:stretch}
.vcsn-admin-wrap .vcsn-toolbar h1{text-align:center;min-width:auto;margin-bottom:8px}
.vcsn-admin-wrap .vcsn-oeuvre-header{flex-direction:column;align-items:stretch}
.vcsn-admin-wrap .vcsn-table th, .vcsn-admin-wrap .vcsn-table td{padding:12px 8px}}


/* =====================================================================
   Infos pratiques
   ===================================================================== */

.vcsn-infos, .vcsn-infos *{box-sizing: border-box;}
.vcsn-infos{overflow-x: hidden;}
.vcsn-infos{max-width: 1400px;
 margin: 16px auto;
 padding: 0 16px;
 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;}
.vcsn-infos-header{text-align: center;
 margin-bottom: 32px;
 padding-bottom: 20px;
 border-bottom: 1px solid var(--vcsn-gris-20);}
.vcsn-infos-header h1{margin: 0 0 8px;
 font-size: clamp(20px, 5vw, 28px);
 font-weight: 700;
 color: var(--vcsn-noir);}
.vcsn-infos-header p{margin: 0 0 8px;
 color: var(--vcsn-gris-60);
 font-size: clamp(14px, 3vw, 16px);}
.vcsn-infos .vcsn-last-update{color: var(--vcsn-gris-50);
 font-size: 12px;
 font-style: italic;}
.vcsn-infos-grid{display: grid;
 grid-template-columns: 1fr;
 gap: 20px;
 margin-bottom: 32px;}
.vcsn-infos .vcsn-info-card{background: #fff;
 border: 1px solid var(--vcsn-gris-20);
 border-radius: 12px;
 padding: 20px;
 box-shadow: 0 1px 3px rgba(0,0,0,0.1);
 width: min(100%, 560px);
 margin-left: auto;
 margin-right: auto;}
.vcsn-infos .vcsn-info-card h2{margin: 0 0 16px;
 font-size: clamp(16px, 4vw, 18px);
 font-weight: 600;
 color: var(--vcsn-gris-90);
 padding-bottom: 8px;
 border-bottom: 2px solid var(--vcsn-danger);
 display: inline-block;}
.vcsn-infos .vcsn-lieu-content h3{margin: 0 0 4px;
 font-size: clamp(18px, 4vw, 20px);
 color: var(--vcsn-noir);
 font-weight: 600;}
.vcsn-infos .vcsn-lieu-ville{margin: 0 0 16px;
 color: var(--vcsn-gris-60);
 font-style: italic;
 font-size: 14px;}
.vcsn-infos .vcsn-lieu-details{display: flex;
 flex-direction: column;
 gap: 12px;
 margin-bottom: 20px;}
.vcsn-infos .vcsn-lieu-item{display: flex;
 align-items: flex-start;
 gap: 10px;
 font-size: 14px;
 line-height: 1.4;}
.vcsn-infos .vcsn-lieu-icon{font-size: 16px;
 width: 20px;
 flex-shrink: 0;
 margin-top: 2px;}
.vcsn-infos .vcsn-lieu-item a{color: var(--vcsn-danger);
 text-decoration: none;
 font-weight: 600;}
.vcsn-infos .vcsn-lieu-item a:hover{text-decoration: underline;}
.vcsn-infos .vcsn-navigation-buttons{display: flex;
 flex-direction: column;
 gap: 8px;
 margin-top: 16px;}
.vcsn-infos .vcsn-nav-btn{display: flex;
 align-items: center;
 justify-content: center;
 gap: 8px;
 padding: 12px 16px;
 border-radius: 8px;
 text-decoration: none;
 font-size: 14px;
 font-weight: 600;
 transition: all 0.2s ease;
 text-align: center;
 min-height: 44px;}
.vcsn-infos .vcsn-maps-btn{background: var(--vcsn-vert);
 color: white;}
.vcsn-infos .vcsn-maps-btn:hover{background: var(--vcsn-vert);
 color: white;}
.vcsn-infos .vcsn-phone-btn{background: var(--vcsn-danger);
 color: white;}
.vcsn-infos .vcsn-phone-btn:hover{background: var(--vcsn-danger);
 color: white;}
.vcsn-infos .vcsn-meteo-content{display: grid;
 grid-template-columns: 1fr;
 gap: 8px;}
.vcsn-infos .vcsn-meteo-day{display: flex;
 align-items: center;
 gap: 12px;
 padding: 12px;
 background: var(--vcsn-gris-05);
 border-radius: 8px;
 border-left: 3px solid transparent;}
.vcsn-infos .vcsn-meteo-day.vcsn-today{border-left-color: var(--vcsn-danger);
 background: var(--vcsn-danger-pale);}
.vcsn-infos .vcsn-meteo-date{font-size: 12px;
 font-weight: 600;
 color: var(--vcsn-gris-90);
 min-width: 65px;
 text-align: left;}
.vcsn-infos .vcsn-meteo-icon{font-size: 24px;
 min-width: 32px;
 text-align: center;}
.vcsn-infos .vcsn-meteo-temps{display: flex;
 flex-direction: column;
 min-width: 40px;
 text-align: center;}
.vcsn-infos .vcsn-temp-max{font-weight: 600;
 color: var(--vcsn-noir);
 font-size: 14px;}
.vcsn-infos .vcsn-temp-min{color: var(--vcsn-gris-60);
 font-size: 12px;}
.vcsn-infos .vcsn-meteo-desc{flex: 1;
 font-size: 13px;
 color: var(--vcsn-gris-60);
 text-transform: capitalize;}
.vcsn-infos .vcsn-marees-content{display: flex;
 flex-direction: column;
 gap: 16px;}
.vcsn-infos .vcsn-marees-day h3{margin: 0 0 12px;
 font-size: 14px;
 font-weight: 600;
 color: var(--vcsn-noir);
 text-transform: uppercase;
 letter-spacing: 0.5px;}
.vcsn-infos .vcsn-marees-group{margin-bottom: 12px;}
.vcsn-infos .vcsn-marees-group h4{margin: 0 0 6px;
 font-size: 12px;
 color: var(--vcsn-gris-60);
 font-weight: 500;}
.vcsn-infos .vcsn-maree-item{display: flex;
 justify-content: space-between;
 align-items: center;
 padding: 6px 12px;
 background: var(--vcsn-gris-10);
 border-radius: 6px;
 margin-bottom: 4px;}
.vcsn-infos .vcsn-maree-time{font-weight: 600;
 color: var(--vcsn-noir);
 font-size: 14px;}
.vcsn-infos .vcsn-maree-height{color: var(--vcsn-vert);
 font-weight: 500;
 font-size: 13px;}
.vcsn-infos .vcsn-pratique-content{display: flex;
 flex-direction: column;
 gap: 20px;}
.vcsn-infos .vcsn-pratique-section h3{margin: 0 0 8px;
 font-size: 14px;
 font-weight: 600;
 color: var(--vcsn-gris-90);}
.vcsn-infos .vcsn-pratique-section ul{margin: 0;
 padding-left: 16px;
 list-style: none;}
.vcsn-infos .vcsn-pratique-section li{margin-bottom: 8px;
 font-size: 13px;
 line-height: 1.5;
 color: var(--vcsn-gris-90);
 position: relative;}
.vcsn-infos .vcsn-pratique-section li::before{content: "•";
 color: var(--vcsn-danger);
 font-size: 16px;
 position: absolute;
 left: -12px;}
.vcsn-infos .vcsn-no-data{text-align: center;
 padding: 20px;
 color: var(--vcsn-gris-60);}
.vcsn-infos .vcsn-no-data p{margin: 0 0 8px;
 font-size: 14px;}
.vcsn-infos .vcsn-no-data small{font-size: 12px;
 color: var(--vcsn-gris-50);}
.vcsn-infos-footer{text-align: center;
 padding-top: 20px;
 border-top: 1px solid var(--vcsn-gris-20);}
.vcsn-infos .vcsn-back-link{display: inline-flex;
 align-items: center;
 gap: 8px;
 color: var(--vcsn-gris-60);
 text-decoration: none;
 font-size: 14px;
 font-weight: 500;
 padding: 12px 20px;
 border: 1px solid var(--vcsn-gris-20);
 border-radius: 8px;
 transition: all 0.2s ease;}
.vcsn-infos .vcsn-back-link:hover{color: var(--vcsn-danger);
 border-color: var(--vcsn-danger);}
@media (min-width: 641px){.vcsn-infos{padding: 0 20px;}
.vcsn-infos-grid{grid-template-columns: repeat(2, 1fr); gap: 24px;}
.vcsn-infos .vcsn-navigation-buttons{flex-direction: row; gap: 12px;}
.vcsn-infos .vcsn-nav-btn{flex: 1;}
.vcsn-infos .vcsn-lieu-details{display: grid; grid-template-columns: 1fr; gap: 12px;}
.vcsn-infos .vcsn-meteo-content{grid-template-columns: repeat(2, 1fr); gap: 10px;}}
@media (min-width: 901px){.vcsn-infos{margin: 32px auto;}
.vcsn-infos-grid{grid-template-columns: repeat(2, 1fr); gap: 30px;}
.vcsn-infos .vcsn-meteo-content{grid-template-columns: 1fr;}
.vcsn-infos .vcsn-pratique-content{display: grid; grid-template-columns: 1fr; gap: 16px;}}
.vcsn-infos .vcsn-nav-btn:focus, .vcsn-infos .vcsn-back-link:focus{outline: 2px solid var(--vcsn-danger);
 outline-offset: 2px;}
@media (prefers-reduced-motion: reduce){.vcsn-infos .vcsn-nav-btn, .vcsn-infos .vcsn-back-link{transition: none;}}


/* =====================================================================
   Depot de photos
   ===================================================================== */

.vcsn-depot{max-width:640px;margin:26px auto;padding:0 16px 50px;width:100%;font-family:var(--vcsn-police);color:var(--vcsn-noir)}
.vcsn-depot-tete{text-align:center;margin-bottom:22px}
.vcsn-depot-tete h1{margin:0 0 8px;font-size:26px}
.vcsn-depot-tete p{margin:0;color:var(--vcsn-gris-60);font-size:15px;line-height:1.6}
.vcsn-depot-carte{background:var(--vcsn-blanc);border-radius:var(--vcsn-r-xl);padding:22px;box-shadow:var(--vcsn-o-2)}
.vcsn-depot-lab{display:block;font-size:13px;font-weight:700;margin-bottom:6px}
.vcsn-depot-aide{display:block;font-size:12px;color:var(--vcsn-gris-50);margin-top:5px}
.vcsn-depot .vcsn-zone{margin-top:20px;border:2px dashed var(--vcsn-gris-20);border-radius:var(--vcsn-r-l);
 padding:32px 18px;text-align:center;cursor:pointer;transition:all .15s ease;background:var(--vcsn-gris-05)}
.vcsn-depot .vcsn-zone:hover, .vcsn-depot .vcsn-zone.survol{border-color:var(--vcsn-rouge);background:var(--vcsn-rouge-pale)}
.vcsn-depot .vcsn-zone-ico{font-size:31px;margin-bottom:7px}
.vcsn-depot .vcsn-zone-t{font-weight:700;font-size:15px}
.vcsn-depot .vcsn-zone-s{font-size:13px;color:var(--vcsn-gris-50);margin-top:3px}
.vcsn-depot .vcsn-liste-f{margin-top:14px}
.vcsn-depot .vcsn-f{display:flex;align-items:center;gap:11px;padding:9px 0;border-bottom:1px solid var(--vcsn-gris-10);font-size:13.5px}
.vcsn-depot .vcsn-f:last-child{border-bottom:none}
.vcsn-depot .vcsn-f-vig{width:38px;height:38px;border-radius:var(--vcsn-r-s);object-fit:cover;flex:0 0 auto;background:var(--vcsn-gris-10)}
.vcsn-depot .vcsn-f-n{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vcsn-depot .vcsn-f-p{font-size:11.5px;color:var(--vcsn-gris-50);white-space:nowrap}
.vcsn-depot .vcsn-f.fait .vcsn-f-p{color:var(--vcsn-vert);font-weight:700}
.vcsn-depot .vcsn-f.rate .vcsn-f-p{color:var(--vcsn-danger);font-weight:700}
.vcsn-depot .vcsn-f-x{background:none;border:none;color:var(--vcsn-gris-40);cursor:pointer;font-size:15px;padding:2px 5px}
.vcsn-depot .vcsn-f-x:hover{color:var(--vcsn-danger)}
.vcsn-depot-yt{margin-top:20px;padding-top:18px;border-top:1px solid var(--vcsn-gris-10)}
.vcsn-depot-yt h3{margin:0 0 4px;font-size:15px}
.vcsn-depot-yt p{margin:0 0 12px;font-size:13px;color:var(--vcsn-gris-50);line-height:1.5}
.vcsn-depot .vcsn-yt-l{display:flex;gap:9px;flex-wrap:wrap}
.vcsn-depot .vcsn-yt-l .vcsn-champ{flex:1;min-width:190px}
.vcsn-depot .vcsn-yt-ok{display:flex;align-items:center;gap:10px;background:var(--vcsn-vert-pale);
 color:var(--vcsn-vert);border-radius:var(--vcsn-r-m);padding:10px 14px;
 margin-top:11px;font-size:13.5px}
.vcsn-depot .vcsn-yt-ko{background:var(--vcsn-danger-pale);color:var(--vcsn-danger);
 border-radius:var(--vcsn-r-m);padding:10px 14px;margin-top:11px;font-size:13.5px}
.vcsn-depot-bas{display:flex;align-items:center;gap:13px;flex-wrap:wrap;margin-top:18px;padding-top:16px;border-top:1px solid var(--vcsn-gris-10)}
.vcsn-depot-etat{flex:1;font-size:13.5px;color:var(--vcsn-gris-60);min-width:150px}
.vcsn-depot-note{font-size:12px;color:var(--vcsn-gris-50);text-align:center;margin-top:16px;line-height:1.55}
.vcsn-depot-fini{text-align:center;padding:30px 20px}
.vcsn-depot-fini .ico{font-size:42px}
.vcsn-depot-fini h2{margin:12px 0 6px;font-size:20px}
.vcsn-depot-fini p{margin:0;color:var(--vcsn-gris-60);font-size:14.5px;line-height:1.6}
@media(max-width:640px){.vcsn-depot-bas .vcsn-b{width:100%}}


/* =====================================================================
   Galerie souvenirs
   ===================================================================== */

.vcsn-souv{max-width:1180px;margin:22px auto 60px;padding:0 var(--vcsn-marge);
 font-family:var(--vcsn-police);width:100%;box-sizing:border-box}
.vcsn-souv-tete{text-align:center;margin-bottom:18px}
.vcsn-souv-tete h1{margin:0 0 6px;font-size:27px;color:var(--vcsn-noir)}
.vcsn-souv-tete p{margin:0;font-size:14px;color:var(--vcsn-gris-50)}
.vcsn-souv-annees{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-bottom:18px}
.vcsn-souv-an{border:1px solid var(--vcsn-gris-20);background:#fff;border-radius:var(--vcsn-r-pilule);
 padding:8px 18px;font-size:14px;font-weight:600;color:var(--vcsn-gris-60);
 text-decoration:none;transition:all .15s ease}
.vcsn-souv-an:hover{border-color:var(--vcsn-rouge);color:var(--vcsn-rouge)}
.vcsn-souv-an.on{background:var(--vcsn-rouge);border-color:var(--vcsn-rouge);color:#fff}
.vcsn-souv-barre{display:flex;align-items:center;gap:12px;flex-wrap:wrap;
 background:#fff;border-radius:var(--vcsn-r-l);padding:11px 16px;
 margin-bottom:16px;box-shadow:var(--vcsn-o-1)}
.vcsn-souv-barre-sep{flex:1}
.vcsn-souv-barre-aide{font-size:13px;color:var(--vcsn-gris-50)}
.vcsn-souv-mode, .vcsn-souv-sup{border:none;border-radius:var(--vcsn-r-m);padding:9px 16px;
 font-weight:600;font-size:13.5px;cursor:pointer;font-family:inherit;min-height:38px}
.vcsn-souv-mode{background:#fff;color:var(--vcsn-rouge);box-shadow:inset 0 0 0 1.5px var(--vcsn-rouge)}
.vcsn-souv-mode.on{background:var(--vcsn-rouge);color:#fff;box-shadow:none}
.vcsn-souv-tout{background:#fff;color:var(--vcsn-gris-70);box-shadow:inset 0 0 0 1px var(--vcsn-gris-20);
 border:none;border-radius:var(--vcsn-r-m);padding:9px 16px;font-weight:600;
 font-size:13.5px;cursor:pointer;font-family:inherit;min-height:38px}
.vcsn-souv-tout:hover{background:var(--vcsn-gris-05)}
.vcsn-souv-tout[hidden]{display:none}
.vcsn-souv-sup{background:var(--vcsn-danger);color:#fff}
.vcsn-souv-sup:hover{background:#8f2f28}
.vcsn-souv-sup[hidden]{display:none}
.vcsn-souv-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.vcsn-souv-c{position:relative;margin:0;border-radius:var(--vcsn-r-m);overflow:hidden;
 background:var(--vcsn-gris-10);aspect-ratio:3/2;cursor:zoom-in;box-shadow:var(--vcsn-o-1)}
.vcsn-souv-c img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}
.vcsn-souv-c:hover img{transform:scale(1.05)}
.vcsn-souv-c figcaption{position:absolute;left:0;right:0;bottom:0;padding:18px 10px 8px;
 font-size:11.5px;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.62));
 opacity:0;transition:opacity .2s}
.vcsn-souv-c:hover figcaption{opacity:1}
.vcsn-souv-coche{position:absolute;top:8px;left:8px;width:24px;height:24px;border-radius:50%;
 background:rgba(255,255,255,.9);color:transparent;display:none;
 align-items:center;justify-content:center;font-size:13px;font-weight:800;
 box-shadow:0 1px 4px rgba(0,0,0,.3)}
.vcsn-souv.edition .vcsn-souv-coche{display:flex}
.vcsn-souv.edition .vcsn-souv-c{cursor:pointer}
.vcsn-souv.edition .vcsn-souv-c:hover img{transform:none}
.vcsn-souv-c.choisie{box-shadow:0 0 0 3px var(--vcsn-rouge)}
.vcsn-souv-c.choisie .vcsn-souv-coche{background:var(--vcsn-rouge);color:#fff}
.vcsn-souv-c.choisie img{opacity:.82}
.vcsn-souv-lasso{position:fixed;border:1.5px solid var(--vcsn-rouge);
 background:rgba(203,81,72,.14);pointer-events:none;z-index:50;border-radius:2px}
.vcsn-souv-lasso[hidden]{display:none}
.vcsn-souv.edition{user-select:none;-webkit-user-select:none}
.vcsn-souv-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
 width:46px;height:46px;border-radius:50%;background:rgba(0,0,0,.5);
 color:#fff;display:flex;align-items:center;justify-content:center;
 font-size:16px;padding-left:3px;pointer-events:none;
 box-shadow:0 2px 10px rgba(0,0,0,.3);transition:background .2s}
.vcsn-souv-c:hover .vcsn-souv-play{background:var(--vcsn-rouge)}
.vcsn-souv-yt{position:absolute;left:0;right:0;bottom:0;padding:20px 10px 8px;
 font-size:11.5px;font-weight:600;color:#fff;
 background:linear-gradient(transparent,rgba(0,0,0,.72));
 overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vcsn-souv-cadre{position:relative;width:min(94vw,1100px);aspect-ratio:16/9;background:#000;
 border-radius:4px;overflow:hidden}
.vcsn-souv-cadre[hidden]{display:none}
.vcsn-souv-cadre iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.vcsn-souv-duree{position:absolute;bottom:7px;right:7px;background:rgba(0,0,0,.62);
 color:#fff;font-size:10.5px;font-weight:700;padding:2px 7px;
 border-radius:var(--vcsn-r-xs);pointer-events:none}
.vcsn-souv-noposter{width:100%;height:100%;display:flex;align-items:center;
 justify-content:center;font-size:26px;color:var(--vcsn-gris-40);
 background:var(--vcsn-gris-10)}
.vcsn-souv-vue video{max-width:94vw;max-height:86vh;border-radius:4px;background:#000}
.vcsn-souv-vue video[hidden], .vcsn-souv-vue img[hidden]{display:none}
.vcsn-souv-vue{position:fixed;inset:0;background:rgba(20,18,17,.95);z-index:99999;
 display:flex;align-items:center;justify-content:center}
.vcsn-souv-vue[hidden]{display:none}
.vcsn-souv-vue img{max-width:94vw;max-height:86vh;object-fit:contain;border-radius:4px}
.vcsn-souv-fermer, .vcsn-souv-prec, .vcsn-souv-suiv{position:absolute;background:rgba(255,255,255,.13);
 border:none;color:#fff;cursor:pointer;border-radius:50%;width:46px;height:46px;font-size:23px;line-height:1}
.vcsn-souv-fermer{top:18px;right:18px;font-size:17px}
.vcsn-souv-prec{left:18px}
.vcsn-souv-suiv{right:18px}
.vcsn-souv-fermer:hover, .vcsn-souv-prec:hover, .vcsn-souv-suiv:hover{background:rgba(255,255,255,.28)}
.vcsn-souv-legende{position:absolute;bottom:18px;left:0;right:0;text-align:center;
 color:rgba(255,255,255,.75);font-size:13px}
@media (max-width:640px){.vcsn-souv-tete h1{font-size:22px}
.vcsn-souv-grille{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px}
.vcsn-souv-c figcaption{opacity:1;font-size:10.5px;padding:14px 7px 6px}
.vcsn-souv-barre{gap:9px}
.vcsn-souv-barre-sep{display:none}
.vcsn-souv-mode, .vcsn-souv-sup{flex:1}
.vcsn-souv-prec, .vcsn-souv-suiv{width:42px;height:42px;top:auto;bottom:20px}
.vcsn-souv-prec{left:20%}
.vcsn-souv-suiv{right:20%}
.vcsn-souv-legende{bottom:74px}}
/* =====================================================================
   Fichiers de travail : le choix de l'edition

   Meme forme que le selecteur d'annee des photos souvenirs, pour que les
   deux ecrans de l'espace reserve se ressemblent.
   ===================================================================== */
.vcsn-ft-wrap .vcsn-ft-annees{display:flex;gap:8px;align-items:center;
  flex-wrap:wrap;justify-content:center;margin:0 0 18px}
.vcsn-ft-wrap .vcsn-ft-annees-l{font-size:var(--vcsn-t-s);color:var(--vcsn-gris-50);
  margin-right:4px}
.vcsn-ft-wrap .vcsn-ft-an{border:1px solid var(--vcsn-gris-20);background:#fff;
  border-radius:var(--vcsn-r-pilule);padding:7px 16px;font-size:var(--vcsn-t-m);
  font-weight:600;color:var(--vcsn-gris-60);text-decoration:none;
  transition:border-color .15s ease-out,color .15s ease-out}
.vcsn-ft-wrap .vcsn-ft-an:hover{border-color:var(--vcsn-rouge);color:var(--vcsn-rouge)}
.vcsn-ft-wrap .vcsn-ft-an.on{background:var(--vcsn-rouge);border-color:var(--vcsn-rouge);
  color:#fff}
