:root{--pv-violet:#29175f;--pv-blue:#184895;--pv-yellow:#ffb51b;--pv-amber:#f79a19;--ink:#1f2330;--muted:#697386;--bg:#f4f6fb;--ok:#168a52;--warn:#e88916;--danger:#d13d45;--line:#e5e8f0;--radius:18px;--shadow:0 10px 30px rgba(39,28,90,.09)}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}a{color:inherit}.topbar{min-height:80px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:10px max(18px,calc((100vw - 1180px)/2));position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:12px;text-decoration:none}.brand img{width:58px;height:58px;object-fit:contain}.brand span{display:flex;flex-direction:column;line-height:1}.brand b{font-size:1.25rem;color:var(--pv-violet)}.brand small{margin-top:5px;color:var(--muted);font-weight:700}.topbar nav{display:flex;gap:18px;font-weight:700}.topbar nav a,.admin-link{text-decoration:none;color:var(--pv-violet)}.container{width:min(1180px,calc(100% - 28px));margin:28px auto 56px}.hero{background:linear-gradient(135deg,var(--pv-violet),var(--pv-blue));border-radius:28px;padding:30px;color:#fff;display:grid;grid-template-columns:1.3fr .7fr;gap:28px;box-shadow:var(--shadow);overflow:hidden;position:relative}.hero:after{content:"";position:absolute;width:280px;height:280px;border-radius:50%;background:rgba(255,181,27,.16);right:-80px;top:-100px}.hero h1{font-size:clamp(2rem,4vw,3.2rem);margin:.2rem 0 .65rem;line-height:1}.hero p{margin:0;color:#e9ecff;max-width:650px}.hero-stat{position:relative;z-index:1;align-self:center;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);border-radius:20px;padding:20px}.hero-stat strong{display:block;font-size:2rem}.section-title{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:30px 0 14px}.section-title h2{margin:0;color:var(--pv-violet)}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.event-card{display:flex;flex-direction:column;gap:12px}.event-card .date{font-weight:900;color:var(--pv-violet)}.event-card h3{margin:0}.meta{color:var(--muted);font-size:.95rem}.meter{height:12px;background:#eceff5;border-radius:999px;overflow:hidden}.meter>span{display:block;height:100%;background:linear-gradient(90deg,var(--pv-blue),var(--pv-yellow));border-radius:inherit}.meter.ok>span{background:var(--ok)}.meter.danger>span{background:var(--danger)}.need{font-weight:900;color:var(--warn)}.need.ok{color:var(--ok)}.button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:12px;background:var(--pv-yellow);color:#24195c;padding:12px 16px;font-weight:900;text-decoration:none;cursor:pointer}.button.secondary{background:var(--pv-violet);color:#fff}.button.ghost{background:#f0eef8;color:var(--pv-violet)}.button.danger{background:#ffebed;color:#a51c2d}.button.small{padding:8px 11px;font-size:.88rem}.actions{display:flex;flex-wrap:wrap;gap:10px}.mission{margin-bottom:18px}.mission h3{display:flex;align-items:center;gap:8px;margin:0 0 12px;color:var(--pv-violet)}.slot{display:grid;grid-template-columns:145px 1fr 190px 150px;gap:16px;align-items:center;padding:14px 0;border-top:1px solid var(--line)}.slot:first-of-type{border-top:0}.slot-time{font-weight:900}.slot strong{display:block}.badge{display:inline-block;border-radius:999px;padding:5px 9px;font-size:.8rem;font-weight:900;background:#fff2d9;color:#9c5d00}.badge.ok{background:#e7f6ee;color:#10643d}.badge.danger{background:#fee9ea;color:#a32531}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.field{display:flex;flex-direction:column;gap:6px}.field.full{grid-column:1/-1}.field label{font-weight:800;color:var(--pv-violet)}input,textarea,select{width:100%;border:1px solid #ccd2df;border-radius:11px;background:#fff;padding:11px 12px;font:inherit}textarea{min-height:100px;resize:vertical}.checkbox{display:flex;align-items:center;gap:9px}.checkbox input{width:auto}.flash{padding:13px 16px;border-radius:12px;margin-bottom:18px;font-weight:800}.flash.success{background:#e7f6ee;color:#10643d}.flash.error{background:#fee9ea;color:#a32531}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.stat{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px}.stat strong{display:block;font-size:1.8rem;color:var(--pv-violet)}table{width:100%;border-collapse:collapse;background:#fff;border-radius:16px;overflow:hidden}th,td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--line)}th{background:#f8f8fc;color:var(--pv-violet)}.empty{text-align:center;padding:38px;color:var(--muted)}footer{text-align:center;padding:24px;color:var(--muted);font-size:.9rem}.login{max-width:520px;margin:60px auto}.logo-big{display:block;width:170px;height:170px;object-fit:contain;margin:0 auto 8px}.muted{color:var(--muted)}.inline-form{display:flex;gap:8px;align-items:center}.inline-form input{width:90px}.admin-event{border-left:5px solid var(--pv-yellow)}.public-intro{margin-bottom:22px}.split{display:grid;grid-template-columns:1fr 1fr;gap:18px}.small-note{font-size:.88rem;color:var(--muted)}
@media(max-width:850px){.hero{grid-template-columns:1fr}.grid{grid-template-columns:1fr 1fr}.stats{grid-template-columns:1fr 1fr}.slot{grid-template-columns:1fr}.slot .button{width:100%}.form-grid,.split{grid-template-columns:1fr}.field.full{grid-column:auto}.topbar nav a:first-child{display:none}}
@media(max-width:560px){.container{width:min(100% - 20px,1180px);margin-top:18px}.grid{grid-template-columns:1fr}.hero{padding:22px;border-radius:22px}.brand img{width:48px;height:48px}.brand small{font-size:.75rem}.topbar{padding:8px 12px}.admin-link{font-size:.85rem}.stats{grid-template-columns:1fr 1fr}.card{padding:16px}}
@media print{.topbar,.actions,.button,footer,.no-print{display:none!important}body{background:#fff}.container{width:100%;margin:0}.card{box-shadow:none}}

.filter-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0 18px}.filter-tabs a{display:inline-flex;align-items:center;gap:8px;text-decoration:none;background:#fff;border:1px solid var(--line);border-radius:999px;padding:10px 14px;font-weight:900;color:var(--pv-violet);box-shadow:0 4px 14px rgba(39,28,90,.05)}.filter-tabs a span{display:inline-flex;min-width:24px;height:24px;align-items:center;justify-content:center;border-radius:999px;background:#f0eef8;font-size:.8rem}.filter-tabs a.active{background:var(--pv-violet);color:#fff;border-color:var(--pv-violet)}.filter-tabs a.active span{background:rgba(255,255,255,.16)}.events-overview .admin-event{display:flex;flex-direction:column;gap:11px}.mission-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.slot-tools summary{cursor:pointer;font-weight:900;color:var(--pv-violet);list-style:none}.slot-tools summary::-webkit-details-marker{display:none}.slot-tools[open]{grid-column:1/-1;background:#f8f7fc;border-radius:14px;padding:12px}.slot-edit-form{display:grid;grid-template-columns:1fr 1fr 100px auto;gap:10px;align-items:end}.slot-edit-form label,.slot-fields label{display:flex;flex-direction:column;gap:5px;font-size:.82rem;font-weight:800;color:var(--pv-violet)}.slot-builders{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}.slot-builder{background:#f8f7fc;border:1px solid #e7e2f2;border-radius:14px;padding:14px}.slot-builder.auto-builder{background:#fff8e9;border-color:#f5dfad}.slot-builder h4{margin:0 0 10px;color:var(--pv-violet)}.slot-fields{display:grid;grid-template-columns:1fr 1fr 110px;gap:10px;margin-bottom:10px}.availability-row{padding:12px 0;border-bottom:1px solid var(--line)}
@media(max-width:850px){.slot-builders{grid-template-columns:1fr}.slot-edit-form,.slot-fields{grid-template-columns:1fr 1fr}.slot-fields label:last-child,.slot-edit-form label:last-of-type{grid-column:1/-1}.slot-edit-form .button{grid-column:1/-1}.filter-tabs{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}.filter-tabs a{white-space:nowrap}}
@media(max-width:560px){.slot-edit-form,.slot-fields{grid-template-columns:1fr}.slot-fields label:last-child,.slot-edit-form label:last-of-type{grid-column:auto}.filter-tabs a{padding:9px 12px}}

/* v1.2 — regroupement multi-jours et sélection multiple */
.day-group{margin-top:14px;border:1px solid var(--line);border-radius:15px;overflow:hidden;background:#fff}.day-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;background:#f8f7fc;border-bottom:1px solid var(--line);color:var(--pv-violet)}.day-heading>div:first-child{display:flex;align-items:center;gap:10px}.day-heading strong{font-size:1rem}.day-heading span{font-size:.82rem;color:var(--muted);font-weight:700}.day-summary{font-size:.88rem;font-weight:900}.day-group .slot{padding-left:14px;padding-right:14px}.bulk-toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:12px 0}.slot-with-check{grid-template-columns:32px 145px 1fr 190px 150px}.slot-select{display:flex;align-items:center;justify-content:center}.slot-select input{width:19px;height:19px;accent-color:var(--pv-violet)}
@media(max-width:850px){.day-heading{align-items:flex-start;flex-direction:column}.slot-with-check{grid-template-columns:32px 1fr}.slot-with-check .slot-time,.slot-with-check>div:nth-child(3),.slot-with-check .need,.slot-with-check .slot-tools{grid-column:2}.slot-with-check .slot-select{grid-column:1;grid-row:1/5;align-self:start;padding-top:3px}}

/* v1.3 — parcours public multi-événements */
.eyebrow{display:inline-block;font-size:.75rem;font-weight:950;letter-spacing:.1em;color:var(--pv-yellow);margin-bottom:5px}.eyebrow.dark{color:var(--pv-violet)}.hero-actions{margin-top:20px}.event-list{display:flex;flex-direction:column;gap:14px}.event-overview-card{display:grid;grid-template-columns:90px 1fr auto;gap:20px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px;box-shadow:var(--shadow)}.calendar-tile{height:86px;border-radius:16px;background:var(--pv-violet);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}.calendar-tile b{font-size:2rem}.calendar-tile span{font-size:.78rem;font-weight:950;color:var(--pv-yellow);margin-top:5px}.event-main{min-width:0}.event-title-row,.event-status{display:flex;justify-content:space-between;align-items:center;gap:15px}.event-title-row h3{font-size:1.3rem;color:var(--pv-violet);margin:0}.event-title-row p{margin:4px 0 10px;color:var(--muted)}.event-status{margin-top:8px;font-size:.9rem}.event-cta{white-space:nowrap}.compact-hero{grid-template-columns:1fr}.mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:20px 0}.mode-card{background:#fff;border:2px solid var(--line);border-radius:16px;padding:16px;text-decoration:none;display:flex;flex-direction:column;gap:4px}.mode-card b{color:var(--pv-violet);font-size:1.1rem}.mode-card span{color:var(--muted);font-size:.9rem}.mode-card.active{border-color:var(--pv-yellow);background:#fffaf0}.public-event-block{background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);overflow:hidden;margin:20px 0}.event-banner{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 22px;background:linear-gradient(110deg,var(--pv-violet),var(--pv-blue));color:#fff}.event-banner h2{margin:2px 0;font-size:1.5rem}.event-banner p{margin:5px 0;color:#eef1ff}.event-dates{text-align:right;font-weight:950;color:#fff}.event-dates small{display:block;color:var(--pv-yellow);margin-top:4px}.availability-mission{padding:18px 22px;border-top:1px solid var(--line)}.availability-mission h3{color:var(--pv-violet);margin:0 0 12px}.day-panel{margin:12px 0}.day-ribbon{background:var(--pv-violet);color:#fff;border-left:7px solid var(--pv-yellow);padding:11px 14px;border-radius:10px;font-size:1.02rem;font-weight:950;letter-spacing:.02em}.choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:9px}.slot-choice{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:12px;padding:11px;cursor:pointer;background:#fff}.slot-choice:has(input:checked){border-color:var(--pv-yellow);background:#fff8e8}.slot-choice input{width:auto}.slot-choice span{display:flex;flex-direction:column}.slot-choice small{color:var(--muted);margin-top:3px}.identity-card{position:sticky;bottom:10px;z-index:5;border:2px solid var(--pv-yellow)}.signup-layout{display:grid;grid-template-columns:1.35fr .65fr;gap:18px}.availability-callout{background:#fffaf0;border-color:#f3d78e}.day-heading{background:var(--pv-violet)!important;color:#fff!important;border-left:7px solid var(--pv-yellow);padding:14px 16px!important}.day-heading strong{font-size:1.08rem!important;letter-spacing:.025em}.day-heading span,.day-heading .day-summary{color:#fff!important}.mail-test-card{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;margin:18px 0}.mail-test-card h3{margin:2px 0;color:var(--pv-violet)}.mail-test-card p{margin:5px 0}.mail-test-form{display:flex;gap:9px}.mail-test-form input{min-width:260px}.public-nav{display:flex;gap:16px;align-items:center}.public-nav a{text-decoration:none;color:var(--pv-violet);font-weight:800}
@media(max-width:850px){.event-overview-card{grid-template-columns:72px 1fr}.event-cta{grid-column:1/-1}.choice-grid{grid-template-columns:1fr 1fr}.signup-layout,.mail-test-card{grid-template-columns:1fr}.mail-test-form{flex-direction:column}.event-banner{align-items:flex-start;flex-direction:column}.event-dates{text-align:left}.public-nav a:not(.admin-link){display:none}}
@media(max-width:560px){.event-overview-card{grid-template-columns:62px 1fr;gap:12px;padding:13px}.calendar-tile{height:68px}.calendar-tile b{font-size:1.5rem}.event-title-row,.event-status{align-items:flex-start;flex-direction:column;gap:5px}.event-title-row .badge{display:none}.mode-switch{grid-template-columns:1fr}.choice-grid{grid-template-columns:1fr}.availability-mission{padding:15px}.day-ribbon{font-size:.92rem}.identity-card{position:static}.day-heading{align-items:flex-start;flex-direction:column}.mail-test-form input{min-width:0}}

/* v1.4 — administration des disponibilités */
.admin-nav{display:flex;gap:15px;align-items:center;flex-wrap:wrap}.availability-filters{display:grid;grid-template-columns:160px 1.25fr 180px 1.25fr auto;gap:12px;align-items:end;margin:18px 0}.availability-filter-actions{display:flex;gap:8px}.availability-admin-list{display:flex;flex-direction:column;gap:14px}.availability-admin-card{border-left:6px solid var(--pv-yellow)}.availability-admin-card.is-assigned{border-left-color:var(--ok)}.availability-person{display:grid;grid-template-columns:52px 1fr auto;gap:12px;align-items:center}.availability-person h3{margin:0;color:var(--pv-violet)}.availability-person p{margin:4px 0 0;color:var(--muted)}.availability-person p a{text-decoration:none}.avatar{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--pv-violet);color:#fff;font-weight:950}.availability-context{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px;padding:14px;background:#f8f7fc;border-radius:14px}.availability-context>div{display:flex;flex-direction:column;gap:4px}.availability-context span{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;font-weight:900;color:var(--muted)}.availability-context strong{color:var(--pv-violet)}.availability-context small{color:var(--muted)}.availability-assignment{margin-top:14px}.availability-assignment label{display:block;font-weight:900;color:var(--pv-violet);margin-bottom:7px}.assignment-line{display:grid;grid-template-columns:1fr auto;gap:9px}.compact-flash{margin:0}.availability-stats{margin-bottom:14px}
@media(max-width:1050px){.availability-filters{grid-template-columns:1fr 1fr}.availability-filter-actions{grid-column:1/-1}.admin-nav a:nth-child(3){display:none}}
@media(max-width:700px){.availability-filters{grid-template-columns:1fr}.availability-filter-actions{grid-column:auto}.availability-person{grid-template-columns:46px 1fr}.availability-person>.badge{grid-column:1/-1;width:max-content}.availability-context{grid-template-columns:1fr}.assignment-line{grid-template-columns:1fr}.admin-nav a:not(:first-child):not(:last-child){display:none}}

/* v1.5 — utilisateurs */
.users-list{display:flex;flex-direction:column;gap:14px;margin-top:18px}.user-card{border-left:6px solid var(--pv-yellow)}.user-card.user-inactive{opacity:.72;border-left-color:#aeb4c2}.user-row-actions{display:flex!important;flex-direction:row!important;align-items:center;gap:12px;flex-wrap:wrap}.user-row-actions .button{margin-left:auto}
@media(max-width:700px){.user-row-actions{align-items:flex-start!important}.user-row-actions .button{width:100%;margin-left:0}}
/* v1.6 — convocations + tri des missions */
.drag-help{margin:12px 0;padding:12px 15px;border-radius:12px;background:#fff8e7;border:1px solid #f5d58b;color:var(--pv-violet)}.drag-handle{display:inline-flex;width:30px;height:30px;align-items:center;justify-content:center;border-radius:8px;background:#f0eef8;cursor:grab;user-select:none;font-size:1.25rem}.sortable-mission.dragging{opacity:.5;outline:2px dashed var(--pv-yellow)}.convocation-panel{margin:20px 0;border-top:5px solid var(--pv-yellow)}.volunteer-check-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.volunteer-check{background:#f8f7fc;padding:10px;border-radius:10px}.volunteer-check small{display:block;color:var(--muted);margin-left:24px}.mail-preview-dialog{width:min(680px,92vw);border:0;border-radius:18px;padding:16px;background:#eef1f7;box-shadow:0 20px 70px rgba(25,18,70,.3)}.mail-preview-dialog::backdrop{background:rgba(20,17,50,.55)}.dialog-close{float:right;border:0;background:#fff;border-radius:50%;width:34px;height:34px;cursor:pointer}.preview-mail{clear:both;background:#fff;border-radius:15px;overflow:hidden;margin-top:10px}.preview-mail-head{background:#201351;color:#fff;padding:24px 28px}.preview-mail-head span{color:#FDC608;font-size:.75rem;font-weight:900;letter-spacing:.12em}.preview-mail-head h2{margin:6px 0 0}.preview-mail-body{padding:28px}.preview-location{padding:14px 16px;background:#f7f6fb;border-radius:10px;font-weight:800}.preview-message{margin:18px 0;padding:14px 16px;background:#fff6dc;border-left:5px solid #F59B1A;border-radius:8px}.preview-mail table{width:100%;border-collapse:collapse;border:1px solid #e7e5ef}.preview-mail td{padding:11px;border-bottom:1px solid #e7e5ef}.preview-button{width:max-content;margin:25px auto;background:#F59B1A;color:#201351;padding:13px 22px;border-radius:9px;font-weight:900}@media(max-width:800px){.volunteer-check-grid{grid-template-columns:1fr}}

/* v1.6.1 — suppression disponibilités + PWA */
.availability-delete{display:flex;justify-content:flex-end;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.danger-button{color:#a32626;border-color:#efc5c5;background:#fff8f8}.danger-button:hover{background:#fff0f0}
.pwa-install-banner{position:fixed;left:18px;right:18px;bottom:18px;z-index:1000;max-width:760px;margin:auto;background:#fff;border:2px solid var(--pv-yellow);border-radius:18px;box-shadow:0 16px 50px rgba(32,19,81,.22);padding:15px 17px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.pwa-install-banner[hidden]{display:none}.pwa-install-banner strong{display:block;color:var(--pv-violet);font-size:1.05rem}.pwa-install-banner span{display:block;color:var(--muted);margin-top:4px;font-size:.9rem}.pwa-install-actions{display:flex;gap:8px;flex-shrink:0}
@media(max-width:650px){.pwa-install-banner{left:10px;right:10px;bottom:10px;align-items:stretch;flex-direction:column}.pwa-install-actions{width:100%}.pwa-install-actions .button{flex:1}.availability-delete{justify-content:stretch}.availability-delete form,.availability-delete .button{width:100%}}

/* v1.7 — dates opérationnelles indépendantes */
.phase-badge{display:block;width:max-content;font-size:.68rem;font-weight:950;letter-spacing:.06em;border-radius:999px;padding:4px 8px;margin-bottom:5px;background:#eef0f8;color:var(--pv-violet)}.phase-before{background:#fff2d6;color:#8b5700}.phase-during{background:#e8f6ee;color:#16683b}.phase-after{background:#edf0fa;color:#433a77}.mission-edit{margin:0 0 14px;border-top:1px dashed var(--line);padding-top:10px}.mission-edit summary,.event-edit-card summary{cursor:pointer;font-weight:900;color:var(--pv-violet)}.event-edit-card{margin-bottom:16px}

/* v1.7.1 — cartes de missions/créneaux plus explicites */
.mission-head{gap:14px}.mission-head-actions{display:flex;align-items:center;gap:10px}.slot-card{background:#fff;border:1px solid #dfe3ee!important;border-radius:14px!important;margin:9px 0;padding:13px!important;box-shadow:0 3px 10px rgba(32,19,81,.05);grid-template-columns:32px 155px 1fr 145px 115px!important;align-items:center}.slot-card .slot-time{display:flex;flex-direction:column;gap:2px}.slot-card .slot-time strong{font-size:1rem;color:#20263a}.slot-card .slot-time small{font-size:.73rem;color:var(--muted)}.slot-clock{display:none}.slot-card-actions{display:flex;justify-content:flex-end}.slot-tools{grid-column:2/-1;background:#f8f7fc;border-radius:12px;padding:0 12px}.slot-tools[open]{padding:12px;margin-top:5px}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.add-slot-action{display:flex;justify-content:center;padding:16px 0 4px;border-top:1px solid var(--line);margin-top:14px}.add-slot-button{min-width:260px}.slot-dialog{width:min(820px,calc(100vw - 30px));border:0;border-radius:20px;padding:22px;box-shadow:0 24px 80px rgba(25,18,62,.3)}.slot-dialog::backdrop{background:rgba(22,18,45,.48)}.dialog-title{display:flex;justify-content:space-between;align-items:flex-start}.dialog-title h3{margin:2px 0 12px;color:var(--pv-violet)}.slot-dialog-tabs{background:#f4f2fa;padding:11px 14px;border-radius:12px;margin-bottom:14px;display:flex;justify-content:space-between;gap:10px}.slot-dialog .slot-builders{margin-top:0}.mission-edit[open]{background:#f8f7fc;border-radius:12px;padding:14px;margin:10px 0}.mission-edit:not([open]){padding:0;margin:0;border:0}
@media(max-width:850px){.mission-head{align-items:flex-start;flex-direction:column}.mission-head-actions{width:100%;justify-content:space-between}.slot-card{grid-template-columns:30px 1fr auto!important}.slot-card>div:nth-of-type(2){grid-column:2/-1}.slot-card .need{grid-column:2}.slot-card-actions{grid-column:3}.slot-tools{grid-column:2/-1}.slot-dialog .slot-builders{grid-template-columns:1fr}}

/* v1.7.2 */
.mission-action-stack{display:flex;flex-direction:column;gap:6px;align-items:stretch}.mission-action-stack form{margin:0}.mission-action-stack .button{width:100%}.mission-edit>summary.sr-only{display:none!important}

/* v1.7.3 — édition événement dédiée + popup mission */
.mission-edit-dialog{width:min(620px,calc(100vw - 30px));border:0;border-radius:20px;padding:22px;box-shadow:0 24px 80px rgba(25,18,62,.3)}.mission-edit-dialog::backdrop{background:rgba(22,18,45,.48)}.edit-page-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin:22px 0}.edit-page-head h2{margin:3px 0;color:var(--pv-violet)}.event-settings-page{max-width:920px}.event-reminders{display:flex;flex-direction:column;gap:8px}.settings-actions{display:flex!important;flex-direction:row!important;gap:10px}.event-settings-page textarea{min-height:130px}
@media(max-width:700px){.edit-page-head{flex-direction:column}.settings-actions{flex-direction:column!important}.section-title>.actions{width:100%;flex-wrap:wrap}.section-title>.actions .button{flex:1 1 auto}}

/* v1.7.4 — liste manager alignée sur la page bénévoles */
.manager-event-list{display:flex;flex-direction:column;gap:12px;margin:18px 0 26px}.manager-event-row{display:grid;grid-template-columns:74px 1fr 205px;gap:16px;align-items:center;padding:14px 16px!important}.manager-calendar-tile{width:68px;height:68px;border-radius:13px;background:var(--pv-violet);color:#fff;display:flex;flex-direction:column;justify-content:center;align-items:center;line-height:1}.manager-calendar-tile strong{font-size:1.7rem}.manager-calendar-tile span{font-size:.72rem;font-weight:950;color:var(--pv-yellow);margin-top:5px}.manager-event-content{min-width:0}.manager-event-top,.manager-event-bottom{display:flex;align-items:center;justify-content:space-between;gap:14px}.manager-event-top h3{margin:0;color:var(--pv-violet);font-size:1.12rem}.manager-event-top .meta{margin:3px 0 7px}.manager-percent{background:#fff3d9;color:#8b5700;font-weight:950;font-size:.76rem;padding:5px 9px;border-radius:999px;white-space:nowrap}.manager-event-bottom{font-size:.82rem;margin-top:6px}.manager-event-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;align-items:center}.manager-event-actions .button{width:100%;text-align:center;padding-left:10px;padding-right:10px}.public-mini-link{grid-column:1/-1;text-align:center;font-size:.76rem;color:var(--pv-violet);font-weight:800;text-decoration:none}.no-volunteer-needs{background:#f4f2fa;border-radius:10px;padding:10px 12px;color:var(--muted);font-weight:800;margin-top:8px}
@media(max-width:850px){.manager-event-row{grid-template-columns:64px 1fr}.manager-event-actions{grid-column:1/-1;grid-template-columns:1fr 1fr}.manager-calendar-tile{width:60px;height:60px}.manager-calendar-tile strong{font-size:1.45rem}}
@media(max-width:560px){.manager-event-row{grid-template-columns:55px 1fr;gap:10px;padding:11px!important}.manager-calendar-tile{width:52px;height:58px}.manager-event-top,.manager-event-bottom{align-items:flex-start}.manager-event-bottom{flex-direction:column;gap:3px}.manager-event-actions{grid-template-columns:1fr 1fr}.manager-event-actions .button{font-size:.75rem}.manager-event-top h3{font-size:1rem}}

/* v1.7.5 — navigation manager séparée */
.manager-event-actions{grid-template-columns:repeat(3,1fr);min-width:310px}.manager-event-actions .button{font-size:.74rem;white-space:nowrap}.manage-page-nav{margin:18px 0}.manager-event-row{grid-template-columns:74px 1fr 330px}
@media(max-width:1000px){.manager-event-row{grid-template-columns:64px 1fr}.manager-event-actions{grid-column:1/-1;grid-template-columns:repeat(3,1fr)}}
@media(max-width:620px){.manager-event-actions{grid-template-columns:1fr}.manager-event-actions .button{font-size:.8rem}}

/* v1.7.6 — parité stricte avec les cartes bénévoles */
.manager-public-parity .event-overview-card{grid-template-columns:90px minmax(0,1fr) 390px}.manager-three-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0}.manager-three-actions .button{margin:0;white-space:nowrap;text-align:center}.manager-public-parity .calendar-tile{display:flex!important;background:var(--pv-violet)!important;color:#fff!important}.manager-public-parity .calendar-tile span{color:var(--pv-yellow)!important}.manager-public-parity .event-main{display:block}.manager-public-parity .event-title-row{display:flex}.manager-public-parity .event-status{display:flex}
@media(max-width:1050px){.manager-public-parity .event-overview-card{grid-template-columns:72px minmax(0,1fr)}.manager-three-actions{grid-column:1/-1;justify-content:flex-end;gap:10px}}
@media(max-width:650px){.manager-public-parity .event-overview-card{grid-template-columns:62px minmax(0,1fr)}.manager-three-actions{display:grid;grid-template-columns:1fr;gap:10px}.manager-three-actions .button{width:100%}}
/* v1.8 — inscription et communications */
.floating-signup-bar{position:sticky;bottom:10px;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:18px;background:#201351;color:#fff;border:2px solid #FDC608;border-radius:16px;padding:12px 16px;margin:18px 0;box-shadow:0 14px 36px rgba(32,19,81,.28)}.floating-signup-bar div{display:flex;flex-direction:column}.floating-signup-bar small{color:#e9e6f4}.volunteer-view{margin-top:7px}.volunteer-view summary{cursor:pointer;color:var(--pv-violet);font-weight:850;font-size:.82rem}.volunteer-names{display:flex;gap:6px;flex-wrap:wrap;padding-top:8px}.volunteer-chip{display:inline-flex;background:#f1eff8;color:var(--pv-violet);border-radius:999px;padding:5px 9px;font-size:.78rem;font-weight:800}.danger-zone{border:2px solid #d43c48;margin-top:24px}.danger-zone h3{color:#b4232f}.admin-volunteers{grid-column:2/-1}.event-reminders small{color:var(--muted)}
@media(max-width:650px){.floating-signup-bar{bottom:6px;flex-direction:column;align-items:stretch}.floating-signup-bar .button{width:100%}}
/* v1.8.1 — SMS test + aperçu 160 caractères */
.sms-test-form{display:grid;grid-template-columns:180px 1fr auto;gap:10px;align-items:center;min-width:min(650px,100%)}.sms-test-message{display:flex;flex-direction:column;gap:3px}.sms-test-message textarea{min-height:58px;resize:vertical}.sms-test-message small{text-align:right;color:var(--muted)}.sms-preview{display:none}.sms-phone-preview{background:#eef1f6;border-radius:18px;padding:18px;max-width:520px}.sms-bubble{background:#fff;border-radius:16px 16px 16px 5px;padding:14px 16px;box-shadow:0 2px 8px rgba(20,20,40,.08);line-height:1.4}.sms-counter{text-align:right;margin-top:7px;color:var(--muted);font-size:.82rem}.sms-counter strong{color:var(--pv-violet)}
@media(max-width:800px){.sms-test-form{grid-template-columns:1fr;min-width:0}.sms-test-message small{text-align:left}}

/* v1.8.3 — diagnostic SMS Envoi */
.sms-api-diagnostic{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center}.sms-diag-steps{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.diag-step{display:flex;gap:12px;align-items:center;border-radius:10px;padding:8px 11px;background:#f3f4f8}.diag-step.ok{background:#e7f6ee;color:#16683b}.diag-step.fail{background:#fee9ea;color:#a3232b}.diag-step.pending{background:#fff2d9;color:#805300}.sms-diag-steps .small-note{width:100%}@media(max-width:750px){.sms-api-diagnostic{grid-template-columns:1fr}.sms-api-diagnostic .button{width:100%}}

/* v1.8.6 — espace personnel et aperçus exacts */
.self-space{padding-bottom:150px}.self-space [hidden],.convocation-panel [hidden]{display:none!important}
.self-hero{margin-top:20px}.self-help{padding:17px 20px;background:#fff7d9;border:1px solid #f0dda0;border-radius:14px;color:#443917;margin:18px 0;line-height:1.6}
.self-day{margin:16px 0;padding:0;overflow:hidden}.self-day-title{margin:0!important;padding:16px 20px;background:#201351;color:white!important;font-size:1.05rem!important;border-left:7px solid #fdc608}
.self-slot{display:grid;grid-template-columns:28px minmax(0,1fr) 190px;gap:16px;align-items:center;padding:18px 20px;margin:0;border-bottom:1px solid #e9e6f0;cursor:pointer;background:#fff}
.self-slot:last-child{border-bottom:0}.self-slot.is-selected,.self-slot.is-mine{background:#f0f8f5}.self-slot:focus-within{outline:2px solid #201351;outline-offset:-3px}
.self-slot input{width:23px!important;height:23px!important;accent-color:#201351}.self-slot-main{display:flex;flex-direction:column;gap:5px}.self-slot-main>strong{color:#201351;font-size:1.05rem}
.self-slot-main small{color:#687185}.self-slot-time{font-size:1.22rem;font-weight:800;color:#252a3b}.self-slot-status{display:flex;flex-direction:column;gap:6px;align-items:flex-end;text-align:right}
.self-slot-status small{color:#727887;font-size:.75rem}.self-slot.is-locked{cursor:default;background:#f5f5f8}.self-pill{display:inline-block;font-size:.78rem;padding:5px 9px;border-radius:30px;font-weight:800;white-space:nowrap}
.self-pill.mine{background:#dff2e9;color:#185b40}.self-pill.full{background:#fbe6e9;color:#8d293f}.self-pill.available{background:#fff1ca;color:#6e4c0b}
.self-save-bar{position:fixed;z-index:12;bottom:0;left:0;right:0;background:#201351;color:white;box-shadow:0 -4px 24px #20135120;padding:17px max(20px,calc((100vw - 1150px)/2)) calc(17px + env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between;gap:20px}
.self-save-bar>div:first-child{display:flex;flex-direction:column;gap:5px}.self-save-bar small{color:#e2dff0}.self-save-actions{display:flex;gap:10px}.self-save-actions .ghost{background:white;color:#201351}
.self-save-bar .button{white-space:nowrap}.self-withdraw-confirm{margin-top:20px;border:2px solid #d58a96}.self-events{display:flex;flex-direction:column;gap:16px}
.self-event header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:14px}.self-event header h2{font-size:1.4rem;color:#201351;margin:0}.self-event header p{margin:5px 0 0}
.self-summary-slot{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px;border-top:1px solid #e5e3ec}.self-summary-slot>div{display:flex;flex-direction:column;gap:4px}.self-summary-slot span{color:#687185;font-size:.8rem}.self-summary-slot>b{color:#201351;white-space:nowrap}
.self-other{margin-top:24px}.self-other>summary{font-weight:800;color:#201351;cursor:pointer}.self-other-list{margin-top:12px}.self-other-link{display:flex;justify-content:space-between;gap:20px;text-decoration:none;padding:14px;border-top:1px solid #e9e6f0;color:#201351}.self-other-link>span{display:flex;flex-direction:column;gap:5px}.self-other-link small{color:#6a7487}
.exact-preview{background:#f6f7fb;border:1px solid #e2e4ee;padding:18px;border-radius:16px;max-height:680px;overflow:auto}.exact-preview>h4{margin:0}.message-preview-person{background:white;border:1px solid #e2e4ee;border-radius:12px;padding:18px;margin-top:13px}
.message-preview-person>h4{font-size:1.1rem;margin:0 0 5px;color:#201351}.message-preview-person.has-errors{border-color:#dc8b9a}.preview-recipient{font-size:.8rem;color:#616e81;margin-top:16px;margin-bottom:8px}
.sms-exact-bubble{background:#e8edf4;padding:17px 19px;border-radius:18px 18px 18px 3px;line-height:1.6;color:#25304a;white-space:pre-wrap;overflow-wrap:anywhere;max-width:600px;font-family:Arial,sans-serif}
.sms-meter{display:block;margin-top:10px;font-size:.84rem}.sms-meter.valid{color:#176442}.sms-meter.invalid,.message-preview-error{color:#a02845}.message-preview-error{font-weight:700;line-height:1.5}
.mail-exact-preview{margin-top:15px}.mail-exact-preview>summary{cursor:pointer;color:#201351;font-weight:750}.mail-exact-preview iframe{width:100%;height:520px;border:1px solid #dce1eb;border-radius:9px;margin-top:10px;background:#fff}
.send-confirmation{display:flex;justify-content:space-between;align-items:center;gap:18px;background:#fff7dd;padding:18px;border-radius:14px}.send-confirmation .checkbox{max-width:630px}
.button:disabled{opacity:.45;cursor:not-allowed}.communications-history{margin:20px 0}.comm-table-scroll{overflow:auto}.comm-table{width:100%;border-collapse:collapse;min-width:630px;font-size:.85rem}.comm-table th{background:#f2f1f8;color:#201351;text-align:left}.comm-table td,.comm-table th{padding:12px;vertical-align:top;border-bottom:1px solid #e5e2ed}.comm-table td:last-child{min-width:230px;max-width:440px;overflow-wrap:anywhere}.comm-table summary{cursor:pointer;margin-top:6px}.mail-log-text{white-space:pre-wrap;background:#f5f5f9;padding:12px;max-height:260px;overflow:auto}
@media(max-width:760px){.self-slot{grid-template-columns:26px minmax(0,1fr);gap:12px;padding:16px}.self-slot-status{grid-column:2;align-items:flex-start;text-align:left}.self-day-title{font-size:.9rem!important}.self-event header{flex-direction:column;align-items:flex-start}.self-event header .button{width:100%}.self-summary-slot{align-items:flex-start;flex-direction:column;gap:8px;padding:14px 0}.self-save-bar{flex-direction:column;align-items:stretch;gap:12px;padding:14px 16px calc(14px + env(safe-area-inset-bottom))}.self-save-actions{display:grid;grid-template-columns:auto 1fr}.self-save-actions .button{font-size:.76rem;white-space:normal;min-height:45px;padding:12px}.self-space{padding-bottom:185px}.self-save-bar small{font-size:.76rem}.send-confirmation{flex-direction:column;align-items:stretch}.send-confirmation .button{width:100%}.self-other-link{flex-direction:column;gap:10px}.exact-preview{padding:10px}.message-preview-person{padding:14px}.convocation-panel{padding:16px}.sms-exact-bubble{padding:14px}}
@media print{.self-save-bar,.self-withdraw-confirm,.self-other,.self-help{display:none}.self-space{padding-bottom:0}}
.self-save-actions .button.secondary{background:#fdc608;color:#201351;border-color:#fdc608}.self-save-actions .button.secondary:hover{background:#f2b90b;color:#201351}
