.directory-toolbar,.operations-toolbar{margin:0 30px 16px;padding:14px 16px;display:flex;align-items:flex-end;gap:14px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 3px 16px rgba(24,52,60,.04)}
.uppercase-input{text-transform:uppercase}.equipment-disclosure{border:1px solid #d7e5e7;border-radius:12px;background:#f9fcfc}.equipment-disclosure summary{cursor:pointer;padding:13px 15px;color:var(--navy);font-size:12px;font-weight:900}.equipment-disclosure[open] summary{border-bottom:1px solid #d7e5e7}.equipment-complements{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:14px}.equipment-complements .own-equipment-toggle{align-self:end;min-height:42px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#fff}.equipment-details{margin:0 14px 14px;padding:12px;border:1px solid #d7e5e7;border-radius:10px;background:#f6fafa}.equipment-details>p{margin:0 0 10px;color:var(--navy);font-size:11px;font-weight:900}.equipment-group+.equipment-group{margin-top:12px}.equipment-group>strong{display:block;margin-bottom:7px;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em}.equipment-checklist{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.equipment-checklist .check-line{padding:7px 8px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:10px}.equipment-details>label{margin-top:10px}.equipment-details[hidden]{display:none!important}
.directory-toolbar label{display:flex;flex-direction:column;gap:6px;color:#516a70;font-size:11px;font-weight:800}.directory-toolbar input,.directory-toolbar select{min-height:42px;padding:8px 11px;border:1px solid #ceddde;border-radius:9px;background:#fbfdfd}.directory-search{flex:1}.directory-summary{margin-left:auto;padding-bottom:10px;color:var(--muted);font-size:12px}.client-list,.user-list{margin:0 30px;display:grid;gap:10px}.client-card,.user-card{padding:15px 17px;display:grid;grid-template-columns:minmax(220px,1.35fr) repeat(3,minmax(140px,1fr)) auto;align-items:center;gap:16px;border:1px solid var(--line);border-radius:13px;background:#fff;box-shadow:0 3px 14px rgba(24,52,60,.035)}.client-card.inactive,.user-card.inactive{opacity:.58}.client-identity strong,.client-identity span,.client-card small,.client-card b,.user-card strong,.user-card span{display:block}.client-identity strong,.user-card strong{font:600 18px Georgia,serif;color:var(--navy)}.client-identity span,.client-card small,.user-card span{margin-top:3px;color:var(--muted);font-size:11px}.client-card b{font-size:11px}.status-pill{display:inline-flex!important;width:max-content;margin-top:4px!important;padding:4px 8px;border-radius:99px;font-size:9px!important;font-weight:900;text-transform:uppercase}.status-pill.ok{color:#247353;background:#e2f3ea}.status-pill.warning{color:#9a6519;background:#fff0d8}.status-pill.blocked{color:#a34c42;background:#fde7e3}.status-pill.unknown{color:#667b81;background:#ebf0f1}.status-pill.neutral{color:#5d6f77;background:#eef2f3}.client-card .profile-alert{color:#a34c42}.empty-directory{padding:50px;text-align:center;border:1px dashed var(--line);border-radius:14px;color:var(--muted);background:#fff}.wide-dialog{width:min(930px,calc(100vw - 32px))}.profile-section{padding:14px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;border:1px solid var(--line);border-radius:11px}.profile-section legend{padding:0 7px;color:var(--sea);font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.check-line{flex-direction:row!important;align-items:center!important;justify-content:flex-start}.check-line input{width:auto!important;min-height:auto!important}.profile-section [data-deep-certification][hidden]{display:none!important}.profile-active{padding:11px;border:1px solid var(--line);border-radius:9px}.field-readonly{pointer-events:none;opacity:.82}.user-list{grid-template-columns:repeat(auto-fit,minmax(330px,1fr))}.user-card{grid-template-columns:1fr auto}.role-badge{padding:5px 9px;border-radius:99px;color:var(--sea);background:#e2f1f1;font-size:9px!important;font-weight:900;text-transform:uppercase}
.operations-alerts{margin:0 30px}.operations-alerts:empty{display:none}.operation-alert{margin-bottom:10px;padding:11px 14px;border-left:3px solid var(--amber);border-radius:8px;color:#8b601c;background:#fff3df;font-size:12px}.operation-alert.danger{border-left-color:var(--coral);color:#984d43;background:#fff0ed}.operations-toolbar{align-items:center}.operations-toolbar>div{margin-right:auto}.operations-toolbar strong,.operations-toolbar small{display:block}.operations-toolbar small{margin-top:4px;color:var(--muted)}.roster-board{margin:0 30px;display:flex;align-items:flex-start;gap:14px;overflow:auto;padding-bottom:18px}.roster-column{width:300px;min-width:300px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 5px 18px rgba(24,52,60,.05)}.roster-column>header{padding:15px 16px 12px;border-bottom:1px solid var(--line)}.roster-column h2{margin:0;font:600 20px Georgia,serif}.palanquee-list{display:flex;align-items:flex-start;gap:14px}.palanquee-header{display:flex!important;align-items:flex-start;justify-content:space-between;gap:8px}.palanquee-actions{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.palanquee-header button{padding:5px 8px;border:1px solid var(--line);border-radius:7px;color:var(--sea);background:#fff;font-size:10px}.palanquee-header button.danger-action{border-color:#efc2bc;color:#984d43;background:#fff8f6}.palanquee-stats{margin-top:7px;color:var(--muted);font-size:10px}.participant-dropzone{min-height:160px;padding:10px}.participant-dropzone.drag-over{outline:3px solid #9dd6d9;outline-offset:-5px;background:#f1fafa}.participant-card{margin-bottom:8px;padding:11px;border:1px solid #d7e5e7;border-left:3px solid var(--sea);border-radius:9px;background:#fbfdfd;cursor:grab}.participant-card:active{cursor:grabbing}.participant-card.no-show{opacity:.65;text-decoration:line-through}.participant-card.alert{border-left-color:var(--coral);background:#fff8f6}.participant-card strong,.participant-card span,.participant-card small{display:block}.participant-card strong{font-size:12px}.participant-card span{margin-top:4px;color:#617a80;font-size:10px}.participant-card small{margin-top:5px}.participant-badges{display:flex!important;gap:4px;flex-wrap:wrap}.participant-badges i{padding:3px 5px;border-radius:5px;color:#42646b;background:#e6f0f1;font-size:8px;font-style:normal;font-weight:800}.participant-actions{margin-top:8px;display:flex;gap:5px}.participant-actions button{padding:4px 6px;border:1px solid var(--line);border-radius:6px;color:var(--sea);background:#fff;font-size:8px}.participant-results{max-height:250px;overflow:auto;border:1px solid var(--line);border-radius:9px}.participant-result{width:100%;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;border:0;border-bottom:1px solid var(--line);background:#fff;text-align:left}.participant-result:last-child{border-bottom:0}.participant-result:hover,.participant-result.selected{background:#eaf6f6}.participant-result strong,.participant-result small{display:block}.participant-result small{margin-top:3px;color:var(--muted)}.create-client-result{color:var(--sea);background:#f4f1fb}.create-client-result:hover{background:#ebe5f7}
@media(max-width:900px){.client-card{grid-template-columns:1fr 1fr}.client-card .client-identity{grid-column:1/-1}.client-card .secondary-button{justify-self:start}.profile-section{grid-template-columns:1fr}.equipment-complements{grid-template-columns:1fr}.equipment-checklist{grid-template-columns:repeat(2,minmax(0,1fr))}.directory-toolbar{align-items:stretch;flex-direction:column}.directory-summary{margin-left:0}.operations-toolbar{align-items:stretch;flex-direction:column}.operations-toolbar>div{margin-right:0}.roster-board{margin:0 16px}.operations-alerts{margin:0 16px}}
.participant-dropzone.drop-target{outline-color:var(--sea);background:#dff3f3}
.participant-card{touch-action:none;user-select:none}
.participant-card.dragging{opacity:.35}
.participant-card.move-selected{outline:3px solid var(--sea);outline-offset:2px;box-shadow:0 5px 18px rgba(28,126,139,.24)}
.participant-drag-ghost{position:fixed;z-index:10000;margin:0!important;pointer-events:none;opacity:.94;transform:rotate(1deg);box-shadow:0 14px 32px rgba(24,52,60,.28)}
.palanquee-guides{margin-top:7px;color:var(--sea);font-size:10px;font-weight:800}.palanquee-staff-fieldset{padding:12px;border:1px solid var(--line);border-radius:10px}.palanquee-staff-fieldset legend{padding:0 6px;color:var(--sea);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.palanquee-staff-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.palanquee-staff-picker .check-line{padding:9px;border:1px solid var(--line);border-radius:8px;background:#f8fbfb}.form-hint{margin:0;color:var(--muted);font-size:11px;line-height:1.5}
.safety-sheet{max-width:1120px;margin:28px auto;padding:0 22px 40px;color:#173f4d}.safety-sheet-actions{display:flex;justify-content:flex-end;gap:10px;margin-bottom:18px}.safety-sheet-header{padding:22px;display:grid;grid-template-columns:1.5fr 1fr;gap:28px;border:2px solid #173f4d;border-radius:12px}.safety-sheet-header p,.safety-group header p{margin:0;color:#1c7e8b;font-size:10px;font-weight:900;letter-spacing:.12em}.safety-sheet-header h1{margin:5px 0;font:600 32px Georgia,serif}.safety-sheet-header span{color:#587077;font-size:12px}.safety-sheet dl,.safety-group dl{margin:0;display:grid;gap:8px}.safety-sheet dl div,.safety-group dl div{display:grid;grid-template-columns:130px 1fr;gap:10px}.safety-sheet-main{display:flex;min-width:0;flex-direction:column}.safety-sheet-conduct{margin-top:20px!important}.safety-sheet-summary{align-content:start;padding-left:20px;border-left:1px solid #b9cfd2}.safety-sheet-summary div{grid-template-columns:120px 1fr!important}.safety-sheet-summary .safety-outing-notes{display:block;margin-top:5px;padding-top:10px;border-top:1px solid #d6e3e5}.safety-outing-notes dd{margin-top:5px;white-space:pre-wrap;font-weight:500;line-height:1.4}.safety-sheet dt{color:#667d82;font-size:10px;text-transform:uppercase}.safety-sheet dd{margin:0;font-size:12px;font-weight:800}.safety-group{margin-top:18px;border:1px solid #b9cfd2;border-radius:10px;overflow:hidden;break-inside:avoid}.safety-group>header{padding:13px 15px;display:grid;grid-template-columns:1fr 1.2fr;gap:20px;background:#edf6f6}.safety-group h2{margin:4px 0 0;font:600 19px Georgia,serif}.safety-group dl{grid-template-columns:repeat(3,1fr);gap:10px}.safety-group dl div{display:block}.safety-group table{width:100%;border-collapse:collapse}.safety-group th,.safety-group td{padding:9px 10px;border-top:1px solid #d6e3e5;text-align:left;font-size:10px}.safety-group th{color:#49656b;background:#f8fbfb;text-transform:uppercase}.safety-group-notes{padding:9px 15px;border-top:1px solid #d6e3e5;background:#fffdf3}.safety-group-notes strong{color:#667d82;font-size:9px;text-transform:uppercase;letter-spacing:.06em}.safety-group-notes p{margin:3px 0 0;white-space:pre-wrap;color:#173f4d;font-size:10px;line-height:1.4}.safety-no-show{text-decoration:line-through;color:#8b7777;background:#fff2f0}.safety-signatures{margin-top:24px;display:grid;grid-template-columns:1fr 1fr;gap:30px}.safety-signatures div{height:80px;padding:10px;border:1px solid #b9cfd2;border-radius:8px;color:#667d82;font-size:10px}
@media(max-width:760px){.palanquee-staff-picker{grid-template-columns:1fr}.safety-sheet-header,.safety-group>header{grid-template-columns:1fr}.safety-sheet-summary{padding-left:0;border-left:0}.safety-group{overflow:auto}}
@media print{body{background:#fff}.topbar,.safety-sheet-actions{display:none!important}.safety-sheet{max-width:none;margin:0;padding:0;color:#000}.safety-sheet-header{border-color:#000}.safety-group{border-color:#777}.safety-group>header{background:#eee;-webkit-print-color-adjust:exact;print-color-adjust:exact}.safety-group th{background:#f2f2f2;-webkit-print-color-adjust:exact;print-color-adjust:exact}@page{size:A4 portrait;margin:10mm}}
.staff-roster-card{border-left-color:#245866;background:#edf6f6}.staff-roster-card.surface-safety-card{border-left-color:#d89b34;background:#fff8ea}.safety-staff-row{font-weight:800;background:#edf6f6}.safety-staff-row td{border-top-color:#9fbfc4}.safety-group th:nth-child(1),.safety-group td:nth-child(1){width:16%}.safety-group th:nth-child(2),.safety-group td:nth-child(2){width:13%}.safety-group th:nth-child(3),.safety-group td:nth-child(3){width:9%}.safety-group th:nth-child(4),.safety-group td:nth-child(4){width:12%}.safety-group th:nth-child(5),.safety-group td:nth-child(5){width:16%}.safety-group th:nth-child(6),.safety-group td:nth-child(6){width:7%}.safety-group th:nth-child(7),.safety-group td:nth-child(7){width:13%}.safety-group th:nth-child(8),.safety-group td:nth-child(8),.safety-group th:nth-child(9),.safety-group td:nth-child(9){width:7%;text-align:center}
.surface-safety-roster{width:285px;min-width:285px;border-color:#e2c789;background:#fffdf8}.surface-safety-roster[hidden]{display:none}.surface-safety-person{padding:10px}.surface-safety-person .participant-card{margin-bottom:0;cursor:default}

/* Écran unifié de conduite de sortie */
.unified-operations-page{padding-bottom:36px}.operations-heading{padding-bottom:18px}.outing-command-center{margin:0 30px 18px;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(340px,.8fr);gap:14px}.outing-facts-card,.outing-team-card{padding:18px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 5px 18px rgba(24,52,60,.05)}.outing-facts-card>header,.outing-team-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.outing-facts-card h2,.outing-team-card h2{margin:2px 0 0;font:600 22px Georgia,serif}.status-pill,.inline-save-state{padding:5px 9px;border-radius:99px;background:#edf3f4;color:var(--muted);font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.status-pill.confirmed{color:#16636d;background:#dcf2f0}.status-pill.option{color:#8b601c;background:#fff0d8}.status-pill.completed{color:#5e4b82;background:#eee8f8}.status-pill.cancelled,.status-pill.expired{color:#984d43;background:#fff0ed}.outing-facts{margin:15px 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.outing-facts>div{min-width:0;padding:10px;border:1px solid var(--line);border-radius:9px;background:#f8fbfb}.outing-facts>.wide-fact{grid-column:1/-1}.outing-facts dt{color:var(--muted);font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.outing-facts dd{margin:4px 0 0;overflow-wrap:anywhere;color:#18343c;font-size:12px;font-weight:900}.outing-facts small{display:block;margin-top:4px;overflow-wrap:anywhere;color:var(--muted);font-size:9px;line-height:1.35}.inline-team-form{margin-top:15px;display:grid;grid-template-columns:1fr 1fr;gap:10px}.inline-team-form label{display:flex;flex-direction:column;gap:5px;color:#4e686e;font-size:10px;font-weight:800}.inline-team-form select{width:100%;min-height:38px;padding:7px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#18343c}.inline-team-form .form-error,.inline-team-form .form-hint,.inline-team-form button{grid-column:1/-1}.inline-team-form button{justify-self:end}.unified-roster-board{align-items:stretch}.unassigned-roster{width:285px;min-width:285px}.unified-palanquee-card{width:390px;min-width:390px}.palanquee-inline-form{padding:12px;border-bottom:1px solid var(--line);background:#f8fbfb}.palanquee-inline-form fieldset{margin:0 0 10px;padding:9px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;border:1px solid #d8e5e7;border-radius:9px}.palanquee-inline-form fieldset legend{padding:0 5px;color:var(--sea);font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.palanquee-inline-form label{display:flex;flex-direction:column;gap:4px;color:#526d73;font-size:9px;font-weight:800}.palanquee-inline-form input,.palanquee-inline-form textarea{width:100%;min-height:34px;padding:6px 8px;border:1px solid var(--line);border-radius:7px;background:#fff;color:#18343c}.palanquee-inline-form textarea{resize:vertical}.palanquee-inline-form .palanquee-staff-fieldset{display:block}.palanquee-inline-form .palanquee-staff-picker{grid-template-columns:repeat(2,minmax(0,1fr))}.palanquee-inline-form .palanquee-staff-picker .check-line{min-width:0;display:flex!important;flex-direction:row!important;gap:6px;align-items:flex-start!important;padding:7px}.palanquee-inline-form .palanquee-staff-picker input{width:auto;min-height:auto;margin-top:2px}.palanquee-inline-form .palanquee-staff-picker span{min-width:0;overflow-wrap:anywhere}.palanquee-inline-form .palanquee-staff-picker small{display:block;margin-top:2px;color:#a56a17;font-size:8px}.palanquee-inline-form .staff-unavailable{background:#fff7e9}.palanquee-notes{margin-bottom:9px}.palanquee-save{width:100%;justify-content:center}.palanquee-form-error{margin-bottom:9px}.palanquee-participants>h3{margin:0;padding:11px 12px 0;color:#597278;font-size:10px;text-transform:uppercase;letter-spacing:.07em}.palanquee-participants .participant-dropzone{min-height:145px}.unified-palanquee-list{align-items:stretch}
@media(max-width:1050px){.outing-command-center{grid-template-columns:1fr}.outing-facts{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.outing-command-center{margin:0 16px 16px}.outing-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.inline-team-form{grid-template-columns:1fr}.unified-palanquee-card{width:350px;min-width:350px}}

/* La fiche de sortie et son organisation vivent désormais sur une seule page. */
.single-screen-outing{grid-template-columns:minmax(0,1.55fr) minmax(330px,.65fr);align-items:start}
.outing-edit-card{padding:18px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 5px 18px rgba(24,52,60,.05)}
.outing-edit-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.outing-edit-card h2{margin:2px 0 0;font:600 22px Georgia,serif}
.inline-outing-details-form{margin-top:15px}
.inline-outing-details-form .form-grid{padding:0}
.inline-outing-details-form .assignment-panel{margin-top:2px}
.inline-outing-actions{margin-top:14px;padding-top:14px;display:flex;align-items:center;justify-content:flex-end;gap:10px;border-top:1px solid var(--line)}
.inline-outing-actions .inline-save-state{margin-right:auto}
.inline-outing-actions .danger-action{color:#984d43;border-color:#efc2bc;background:#fff8f6}
.client-delete-button{margin-right:auto!important;color:#984d43!important;border-color:#efc2bc!important;background:#fff8f6!important}
@media(max-width:1050px){.single-screen-outing{grid-template-columns:1fr}}

.single-screen-outing .outing-edit-card{grid-column:1;grid-row:1 / span 2}
.single-screen-outing .outing-team-card{grid-column:2;grid-row:1}
.single-screen-outing .outing-assignment-card{grid-column:2;grid-row:2;padding:18px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 5px 18px rgba(24,52,60,.05)}
.outing-assignment-card .assignment-panel{margin:0;padding:0;border:0;background:transparent}
.outing-assignment-card .staff-picker{grid-template-columns:1fr}
.inline-team-form{grid-template-columns:repeat(3,minmax(0,1fr))}
.team-aboard-counts{grid-column:1;justify-self:start;width:max-content;max-width:100%;display:grid;grid-template-columns:repeat(2,auto);gap:8px 12px;margin:0;padding:10px;border:1px solid var(--line);border-radius:9px;background:#f8fbfb}.team-aboard-counts label{white-space:nowrap}.team-aboard-counts input{width:100%;min-width:64px;margin-top:auto;min-height:38px;padding:7px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#18343c}
@media(max-width:1050px){.single-screen-outing .outing-edit-card,.single-screen-outing .outing-team-card,.single-screen-outing .outing-assignment-card{grid-column:auto;grid-row:auto}}
@media(max-width:760px){.inline-outing-actions{align-items:stretch;flex-direction:column}.inline-outing-actions .inline-save-state{margin-right:0}.inline-outing-actions button{justify-content:center}}
@media(max-width:760px){.inline-team-form{grid-template-columns:1fr}}
.participant-actions .participant-remove{margin-left:auto;width:22px;padding:2px;color:#a4493e;border-color:#efc2bc;background:#fff8f6;font-size:14px;line-height:1}.palanquee-autosave{display:inline-block;margin-top:2px}
.client-card-actions{display:flex;gap:6px;flex-wrap:wrap}.package-list{padding:18px 24px 0;display:grid;gap:8px}.package-row{padding:12px;display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:10px;border:1px solid var(--line);border-radius:9px;background:#f8fbfb}.package-row strong,.package-row small{display:block}.package-row small{margin-top:3px;color:var(--muted);font-size:9px}.package-row>b{color:var(--sea);font-size:18px}.package-row>span{color:var(--muted);font-size:9px}.package-row>button{padding:6px 9px;border:1px solid var(--line);border-radius:7px;background:#fff;color:#984d43;font-size:9px;font-weight:800}.package-row.completed,.package-row.cancelled{opacity:.55}
.site-suggestion-panel{margin-top:7px;display:flex;flex-wrap:wrap;gap:6px}.site-suggestion-panel button{padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:#f5fafb;color:#18343c;text-align:left}.site-suggestion-panel button strong,.site-suggestion-panel button small{display:block}.site-suggestion-panel button small{margin-top:2px;color:var(--muted);font-size:8px}
.catalog-checks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.catalog-checks label{display:flex!important;flex-direction:row!important;align-items:center;gap:6px}.catalog-checks input{width:auto!important}
/* Couleur = ACTIVITÉ pratiquée (et non plus mode de paiement) : plongée, snorkeling, apnée,
   accompagnant. Les moniteurs gardent leur bleu marine (.staff-roster-card), distinct de toutes ces
   teintes. Le règlement se lit en toutes lettres dans les badges, « Non payé » en rouge. */
.participant-card.activity-scuba{border-color:#bcd9dd;border-left-color:var(--sea);background:#f5fbfb}.participant-card.activity-scuba>strong{color:#25626d}
.participant-card.activity-snorkel{border-color:#bfd8c8;border-left-color:var(--green);background:#f2faf6}.participant-card.activity-snorkel>strong{color:#26694f}
.participant-card.activity-apnea{border-color:#d0c6e2;border-left-color:var(--purple);background:#f8f5fd}.participant-card.activity-apnea>strong{color:#63508a}
.participant-card.activity-companion{border-color:#d2dadc;border-left-color:#8a9ba0;background:#f6f8f8}.participant-card.activity-companion>strong{color:#5f7378}
/* Une alerte (médical, certification, autorisation) doit rester visible malgré la couleur d'activité :
   déclarée après, elle l'emporte volontairement. */
.participant-card.alert{border-left-color:var(--coral);background:#fff8f6}
.participant-badges i.unpaid-badge{color:#a3231a;background:#fdecea}
.participant-badges i.deposit-badge{color:#8a5a00;background:#fff4dc} /* (0.50.104, point 73) un acompte */
.client-dive-history{padding:14px;border:1px solid var(--line);border-radius:11px;background:#f8fbfb}.client-dive-history h3{margin:2px 0 10px;color:var(--navy)}.client-dive-row{display:grid;grid-template-columns:minmax(0,1fr) 70px 70px 105px;gap:10px;align-items:center;padding:9px 0;border-top:1px solid var(--line);font-size:11px}.client-dive-row strong,.client-dive-row small{display:block}.client-dive-row small,.empty-history{color:var(--muted)}a.client-dive-row{text-decoration:none;color:inherit;cursor:pointer}a.client-dive-row:hover{background:#eef6f6}
.safety-sheet-header{padding:14px 16px;grid-template-columns:1.05fr 1fr 1.25fr;gap:12px 18px;align-items:start}.safety-sheet-title{min-width:0}.safety-sheet-header h1{margin:3px 0;font-size:19px;line-height:1.05}.safety-sheet-header span{font-size:10px}.safety-sheet-summary,.safety-sheet-conduct{padding-left:16px;border-left:1px solid #b9cfd2}.safety-sheet-conduct{margin-top:0!important}.safety-sheet-header dl{gap:4px}.safety-sheet-header dl div,.safety-sheet-summary div{grid-template-columns:105px 1fr!important;gap:7px}.safety-sheet-header dt{font-size:8px}.safety-sheet-header dd{font-size:10px}.safety-sheet-header>.safety-outing-notes{grid-column:1/-1;padding-top:7px;border-top:1px solid #d6e3e5}.safety-sheet-header>.safety-outing-notes strong{color:#667d82;font-size:8px;text-transform:uppercase}.safety-sheet-header>.safety-outing-notes p{margin:2px 0 0;white-space:pre-wrap;font-size:9px;font-weight:600;line-height:1.25}.safety-group{margin-top:10px;border-radius:7px}.safety-group>header{min-height:0;padding:7px 10px;grid-template-columns:auto 1fr;align-items:center;gap:16px}.safety-group>header>p{white-space:nowrap}.safety-group dl{justify-self:stretch;grid-template-columns:repeat(3,1fr);gap:8px}.safety-group dl div{display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:5px}.safety-group dt{font-size:8px}.safety-group dd{font-size:10px}.safety-group th,.safety-group td{padding:6px 8px;font-size:9px;line-height:1.15}.safety-group-notes{padding:6px 10px}.safety-group-notes p{margin-top:2px;font-size:9px;line-height:1.25}.safety-signatures{margin-top:12px;gap:18px}.safety-signatures div{height:55px;padding:7px;font-size:9px}
@media(max-width:760px){.safety-sheet-header{grid-template-columns:1fr}.safety-sheet-summary,.safety-sheet-conduct{padding-left:0;border-left:0}.safety-group>header{grid-template-columns:1fr}.safety-group dl{justify-self:auto}}
/* FICHE DE SECURITE SUR TELEPHONE : le tableau devient des fiches empilees.
   Neuf colonnes ne se lisent pas au doigt : on balaie lateralement et on perd la personne qu'on
   regardait. Chaque cellule porte son intitule (data-label) et devient une ligne « libelle : valeur ».
   Le nom et le prenom forment le titre de la fiche. Le tableau reste un tableau au-dela de 760 px et
   a l'impression, qui est le format du document signe — d'ou le « screen ». */
@media screen and (max-width:760px){
.safety-group{overflow:visible}
.safety-group table,.safety-group tbody,.safety-group tr,.safety-group td{display:block;width:auto}
.safety-group thead{display:none}
.safety-group tr{padding:10px 12px;border-top:1px solid #d6e3e5}
.safety-group tr:first-child{border-top:0}
.safety-group td{padding:2px 0;border:0;display:grid;grid-template-columns:88px 1fr;gap:10px;align-items:baseline;font-size:12px;text-align:left}.safety-group td:nth-child(n){width:auto;text-align:left}
.safety-group td::before{content:attr(data-label);color:#667d82;font-size:9px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.safety-group td:empty{display:none}
/* Nom et prenom : le titre de la fiche, sans intitule. */
.safety-group td:nth-child(1),.safety-group td:nth-child(2){display:inline;padding:0;font:700 15px/1.25 Georgia,serif;color:#173f4d}
.safety-group td:nth-child(1)::before,.safety-group td:nth-child(2)::before{content:none}
.safety-group td:nth-child(2){margin-left:5px}
.safety-group td:nth-child(3){margin-top:7px}
/* La fonction — GP, AUTO, SNORKELING — est ce qu'on cherche en premier au quai. */
.safety-group td:nth-child(7){font-weight:800;color:#1c5b52}
.safety-staff-row{background:#edf6f6}
}
@media print{.safety-sheet-header{padding:10px 12px;gap:8px 14px}.safety-group{margin-top:7px}.safety-group>header{padding:5px 8px}.safety-group th,.safety-group td{padding:4px 6px}.safety-signatures{margin-top:8px}.safety-signatures div{height:42px}}
.safety-sheet-header{grid-template-columns:1.1fr .9fr 1.15fr auto}.safety-people{min-width:74px;padding-left:14px;border-left:1px solid #b9cfd2;text-align:right}.safety-people span,.safety-people strong{display:block}.safety-people span{color:#667d82;font-size:8px;font-weight:700;text-transform:uppercase;white-space:nowrap}.safety-people strong{margin-top:2px;color:#173f4d;font-size:23px;line-height:1}
@media(max-width:760px){.safety-sheet-header{grid-template-columns:1fr}.safety-people{padding-left:0;border-left:0;text-align:left}}
.client-documents { border-top: 1px solid var(--line); padding-top: 1rem; display: grid; gap: .8rem; }
.document-compliance { display: flex; flex-wrap: wrap; gap: .5rem; }
.client-document-row { display: grid; grid-template-columns: minmax(0,1fr) auto auto; gap: .6rem; align-items: center; padding: .65rem 0; border-bottom: 1px solid var(--line); }
.client-document-row div { display: grid; gap: .2rem; }
.client-document-row small { color: var(--muted); }
.document-upload-form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; padding: 1rem; border: 1px dashed var(--line); border-radius: 16px; }
.document-upload-form label { display: grid; gap: .35rem; }
@media (max-width: 760px) { .document-upload-form { grid-template-columns: 1fr; } .client-document-row { grid-template-columns: 1fr auto; } }

/* v0.31.16 — alertes documentaires non bloquantes mais très visibles */
.participant-badges i.alert-badge{color:#a33f35;background:#fde7e3;border:1px solid #efb9b2}
.document-compliance .status-pill.blocked{color:#a33f35;background:#fde7e3}
.parental-link-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:8px 0 12px}
.document-upload-form [hidden]{display:none!important}
.client-parental-authorization-row{margin-top:8px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#f8fbfb}
.client-parental-authorization-row strong,.client-parental-authorization-row small{display:block}
.client-parental-authorization-row small{margin-top:3px;color:var(--muted)}

/* v0.32.2 — proposition de site et historique récent du groupe */
.outing-site-context{margin-top:2px;display:grid;gap:10px}
.outing-site-proposals,.outing-site-history{padding:12px;border:1px solid var(--line);border-radius:10px;background:#f8fbfb}
.site-context-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:9px}.site-context-heading h3{margin:0;color:var(--navy);font-size:14px}.site-context-heading small{max-width:360px;color:var(--muted);font-size:9px;text-align:right}
.outing-site-proposal-list{display:grid;gap:6px}.outing-site-proposal-list button{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 10px;border:1px solid #d7e4e6;border-radius:9px;background:#fff;color:var(--ink);text-align:left}.outing-site-proposal-list button:hover{border-color:#75aeb7;background:#f3fafb}.outing-site-proposal-list button.preferred{border-color:#72aab4;box-shadow:inset 3px 0 0 var(--sea)}.site-proposal-rank{width:22px;height:22px;display:grid;place-items:center;border-radius:50%;color:#fff;background:var(--sea);font-size:10px;font-weight:900}.outing-site-proposal-list strong,.outing-site-proposal-list small{display:block}.outing-site-proposal-list small{margin-top:2px;color:var(--muted);font-size:8px;line-height:1.25}.site-proposal-stars{white-space:nowrap;color:#d49a27;font-size:12px}.site-proposal-stars em{display:block;color:#809297;font-style:normal;font-size:9px}
.outing-site-history summary{cursor:pointer;color:var(--navy);font-size:11px;font-weight:900}.outing-site-history-list{margin-top:9px;display:grid;gap:7px}.outing-site-history-list article{padding-top:7px;display:grid;grid-template-columns:155px minmax(0,1fr);gap:10px;border-top:1px solid #dfe9ea}.outing-site-history-list article:first-child{padding-top:0;border-top:0}.outing-site-history-list article>strong{font-size:10px}.outing-site-history-list article>div{display:flex;flex-wrap:wrap;gap:5px}.outing-site-history-list article span{padding:4px 6px;border-radius:7px;background:#fff;border:1px solid #dce7e8;font-size:9px}.outing-site-history-list article span small{display:block;margin-top:1px;color:var(--muted);font-size:7px}.outing-site-history-list article em{color:var(--muted);font-size:9px;font-style:normal}
.site-ratings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.site-rating-field{margin:0;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fbfdfd}.site-rating-field legend{padding:0 4px;color:#516a70;font-size:10px;font-weight:800}.site-star-rating{display:flex;align-items:center;gap:2px}.site-star-rating button{width:31px;height:31px;padding:0;border:0;background:transparent;color:#c8d5d7;font-size:24px;line-height:1}.site-star-rating button.active{color:#d49a27}.site-star-rating .rating-clear{width:25px;margin-left:4px;color:#81959a;font-size:17px}
@media(max-width:760px){.site-context-heading{align-items:flex-start;flex-direction:column}.site-context-heading small{text-align:left}.outing-site-proposal-list button{grid-template-columns:24px minmax(0,1fr)}.site-proposal-stars{grid-column:2}.outing-site-history-list article{grid-template-columns:1fr}.site-ratings-grid{grid-template-columns:1fr}}
/* v0.32.2 — vérification automatique des certifications */
.certification-auto-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.certification-auto-actions .form-hint{flex:1;min-width:220px;margin:0}.certification-auto-actions button:disabled{opacity:.55;cursor:not-allowed}

/* 0.32.13 - compteur historique client */
.client-history-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.client-dive-history-total{margin-top:4px;padding:7px 11px;border-radius:999px;background:#e8f3f3;color:var(--navy);white-space:nowrap;font-size:12px}

/* 0.32.17 - vérification certification depuis la fiche client */
.certification-profile-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:-4px}.certification-profile-actions .form-hint{margin:0}.verification-last-result{padding:10px 12px;border:1px solid #d8e5e7;border-radius:10px;background:#f8fbfb;display:grid;gap:3px}.verification-last-result small{color:var(--muted);font-size:9px}.verification-last-result strong{color:var(--navy);font-size:11px}
/* 0.32.25 — actions de certification directement dans la fiche client */
.certification-profile-actions a[aria-disabled="true"]{opacity:.55;pointer-events:none;cursor:not-allowed}

/* 0.32.28 - préférences de sites client */
.site-preference-list{max-height:300px;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:6px;background:#fff}.site-preference-row{display:grid;grid-template-columns:minmax(0,1fr) 130px;align-items:center;gap:12px;padding:7px 8px;border-radius:8px}.site-preference-row:hover{background:#f4f8f8}.site-preference-name{display:grid;gap:1px;min-width:0}.site-preference-name strong{overflow-wrap:anywhere}.site-preference-name small{color:var(--muted)}.site-preference-row select{width:100%;min-height:36px;padding:5px 30px 5px 9px;font-size:14px}@media(max-width:760px){.site-preference-row{grid-template-columns:1fr 112px}}

/* 0.32.31 — édition de la déclinaison d'une formation client */
.training-package-editor{display:grid;grid-template-columns:minmax(180px,1fr) minmax(120px,.7fr) auto;gap:8px;align-items:end;margin-top:10px;padding-top:10px;border-top:1px solid var(--line,#dbe6e8)}.training-package-editor label{margin:0}.training-package-editor select{width:100%}@media(max-width:760px){.training-package-editor{grid-template-columns:1fr}.training-package-editor button{justify-self:start}}
.participant-options{padding:10px 12px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;border:1px solid var(--line);border-radius:9px;background:#f8fbfb}.participant-options legend{padding:0 6px;color:var(--sea);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.participant-options .check-line{padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fff}.participant-options [data-scooter-option][hidden],.participant-options [data-gopro-option][hidden]{display:none!important}.participant-options small{color:var(--muted);font-size:10px;line-height:1.45}

/* v0.32.48 — fiche client multi-certifications */
#client-dialog.wide-dialog{width:min(1120px,calc(100vw - 28px));max-height:94vh}
#client-dialog form>header{position:sticky;top:0;z-index:6;background:rgba(255,255,255,.97);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
#client-dialog form>footer{position:sticky;bottom:0;z-index:6;background:rgba(255,255,255,.97);backdrop-filter:blur(12px);border-top:1px solid var(--line)}
.profile-alert-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:2px}.profile-alert-card{padding:12px 14px;border-radius:12px;border:1px solid;display:grid!important;gap:7px!important}.profile-alert-card>span{font-size:11px;font-weight:900;letter-spacing:.02em}.profile-alert-card textarea{min-height:62px;background:rgba(255,255,255,.82)!important}.profile-alert-card.operational-alert{border-color:#efc99b;background:#fff8ed}.profile-alert-card.operational-alert>span{color:#9c631b}.profile-alert-card.medical-alert{border-color:#efb8b0;background:#fff3f1}.profile-alert-card.medical-alert>span{color:#9e4d43}.identity-section{background:linear-gradient(180deg,#fff,#fbfdfd)}
.client-diving-section{background:linear-gradient(180deg,#f9fcfc,#fff)}.client-certifications-editor{display:grid;gap:12px}.client-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.client-section-heading h3{margin:1px 0 4px;font:600 21px Georgia,serif;color:var(--navy)}.client-section-heading small{color:var(--muted);font-size:11px}.client-certification-list{display:grid;gap:9px}.client-certification-row{padding:11px;display:grid;grid-template-columns:minmax(150px,.8fr) minmax(240px,1.35fr) minmax(170px,1fr) auto auto;align-items:end;gap:9px;border:1px solid #d5e3e4;border-radius:11px;background:#fff;box-shadow:0 3px 12px rgba(20,65,72,.035)}.client-certification-row label{gap:4px!important}.client-certification-row label:not(.check-line){font-size:10px}.client-certification-row select,.client-certification-row input{min-height:39px!important}.certification-verified{min-height:39px;padding:0 8px;border:1px solid var(--line);border-radius:8px;white-space:nowrap}.certification-row-actions{display:flex;align-items:center;gap:6px;min-height:39px}.compact-button{padding:8px 10px!important;font-size:10px!important;white-space:nowrap}.client-capability-summary{min-height:34px;display:flex;gap:6px;flex-wrap:wrap;align-items:center;padding:8px 10px;border-radius:10px;background:#edf6f6}.capability-chip{display:inline-flex;padding:5px 8px;border-radius:99px;color:#1f6975;background:#fff;border:1px solid #c9dfe1;font-size:9px;font-weight:900;letter-spacing:.04em}.profile-metric-card{padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;display:grid;align-content:center}.profile-metric-card small{font-size:9px;color:var(--muted);text-transform:uppercase;font-weight:900}.profile-metric-card strong{font-size:22px;color:var(--sea)}.profile-metric-card span{font-size:9px;color:var(--muted)}
.client-site-preferences{grid-template-columns:1fr!important}.client-site-preferences .site-preference-intro{grid-column:1/-1;margin:0 0 4px}.client-site-preferences .site-preference-list{grid-column:1/-1;width:100%;max-height:350px}.clickable-client-card{cursor:pointer;transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease}.clickable-client-card:hover,.clickable-client-card:focus-visible{transform:translateY(-1px);border-color:#aacdd1;box-shadow:0 9px 24px rgba(20,65,72,.09);outline:none}.client-card-actions{justify-content:flex-end}.client-card .danger-action{color:#a04a42;border-color:#efc4bf}.client-card .profile-alert:not(:empty){max-width:270px;overflow-wrap:anywhere}
@media(max-width:980px){.profile-alert-grid{grid-template-columns:1fr}.client-certification-row{grid-template-columns:1fr 1fr}.client-certification-row .certification-row-actions{grid-column:1/-1}.client-section-heading{align-items:stretch;flex-direction:column}.client-card{grid-template-columns:1fr 1fr}.client-card-actions{justify-content:flex-start}}
@media(max-width:620px){#client-dialog.wide-dialog{width:calc(100vw - 12px)}.client-certification-row{grid-template-columns:1fr}.client-certification-row .certification-row-actions{grid-column:auto}.profile-alert-card{padding:10px}.client-card{grid-template-columns:1fr}.client-card .client-identity{grid-column:auto}}

.link-button{padding:0;border:none;background:none;color:var(--sea);text-decoration:underline;font-size:inherit;cursor:pointer}

.client-invoice-items{margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.client-invoice-items-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.client-invoice-items-heading h3{margin:0;font:600 15px Georgia,serif}
.client-invoice-line{display:grid;grid-template-columns:1fr 90px 110px 90px auto;gap:8px;align-items:center;padding:6px 0}
.client-invoice-line input{min-height:36px}
.client-invoice-line .line-amount{text-align:right;font-weight:700;color:var(--navy)}
.client-invoice-line button{border:none;background:none;color:var(--coral);font-size:16px;cursor:pointer}
.client-invoice-text-line{grid-template-columns:1fr auto}
.client-invoice-text-line input{font-style:italic}
.client-identity .billed-with{display:inline-block;margin-top:4px;padding:2px 7px;border-radius:99px;background:#e7f2f2;color:#46656c;font-size:10px;font-weight:800}
.client-invoice-deposits{margin-bottom:18px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#f7fbfb}
.client-invoice-deposits h3{margin:0 0 4px;font-size:14px}
.client-invoice-deposits .check-line{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:12px}
.client-deposit-list{padding:0 24px 20px;display:grid;gap:6px}
.client-deposit-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;font-size:12px}
.client-deposit-row em{color:var(--muted);font-style:normal;font-size:11px}
.client-invoice-dive-lookup{margin-bottom:18px;padding:12px 14px;border:1px dashed var(--line);border-radius:10px}
.client-invoice-dive-lookup h3{margin:0 0 4px;font-size:14px}
.client-invoice-dive-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 0;font-size:12px;color:var(--navy)}
.client-invoice-total{margin-top:10px;text-align:right;font-size:1.05rem}
@media(max-width:700px){.client-invoice-line{grid-template-columns:1fr 1fr;grid-template-areas:"label label" "qty price" "amount remove"}.client-invoice-line input[data-line-field="label"]{grid-area:label}.client-invoice-line input[data-line-field="quantity"]{grid-area:qty}.client-invoice-line input[data-line-field="unitPrice"]{grid-area:price}.client-invoice-line .line-amount{grid-area:amount}.client-invoice-line button{grid-area:remove;justify-self:end}}

/* Groupe de facturation (fiches client et partenaire ; lot 6 : « Rattacher au groupe de facturation de … », « Détacher du groupe ») */
.billing-group-panel{margin-top:10px;padding:11px 13px;border:1px solid #d7e5e7;border-radius:10px;background:#f7fbfb}
.billing-group-panel h4{margin:0 0 7px;font:800 11px system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#3d6b74}
.billing-group-panel .form-hint{margin:6px 0 0}
.billing-group-members{margin:0;padding-left:18px;font-size:11px;color:#42646b}
.billing-group-members li{margin-bottom:3px}
.billing-group-members li.billing-group-payer{font-weight:800;color:#245866}
.billing-group-panel .billing-group-warning{color:#8b601c}
.billing-group-fieldset .billing-group-panel{margin-top:0;grid-column:1/-1}
.billing-group-actions .secondary-button{white-space:nowrap}
.billing-group-actions{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px;margin-top:10px}
.billing-group-search{flex:1 1 260px;min-width:0}
.billing-group-results{flex:1 1 100%;max-height:220px;overflow-y:auto;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:0 4px 16px rgba(23,63,77,.08)}
.billing-group-results .empty-hint{margin:0;padding:10px 12px;color:var(--muted);font-size:11px}
.billing-group-option{display:flex;justify-content:space-between;gap:10px;width:100%;padding:9px 12px;border:none;border-bottom:1px solid var(--line);background:#fff;text-align:left;font-size:12px;cursor:pointer}
.billing-group-option:last-child{border-bottom:none}
.billing-group-option:hover{background:#f4f9f9}
.billing-group-option small{color:var(--muted)}
.pending-entities{display:block;margin-top:3px;color:#617a80;font-size:10px}

/* Historique des messages envoyés (bloc 9) : lecture seule sur la fiche client. */
.client-message-row{padding:10px 12px;display:grid;grid-template-columns:minmax(0,1.6fr) 130px minmax(0,1fr);gap:10px;align-items:center;border-bottom:1px solid var(--line);font-size:11px}
.client-message-row:last-child{border-bottom:0}
.client-message-row>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.client-message-row strong{color:#245866;font-size:11px}
.client-message-row small{color:var(--muted);font-size:10px;overflow:hidden;text-overflow:ellipsis}
.client-message-row>small{grid-column:1/-1}
.client-message-row.failed{background:#fff8f6}
.client-message-row.failed strong{color:#984d43}
@media(max-width:700px){.client-message-row{grid-template-columns:1fr}}

/* Action « Prévenir les clients » de la barre d'outils d'une sortie (bloc 9). */
.outing-notify-action{display:flex;gap:6px;align-items:center}
.outing-notify-action[hidden]{display:none!important}
.outing-notify-action select{padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:11px}
@media(max-width:700px){.outing-notify-action{width:100%;flex-direction:column;align-items:stretch}}

/* L'EQUIPE SANS ACCES - bloc 18.1. Le compte d'un moniteur vient de sa fiche equipe : cette liste
   est ce qui rend la regle praticable, en evitant de comparer deux ecrans a la main. */
.team-without-access{margin:0 30px 18px;padding:17px 19px;border:1px solid var(--line);border-radius:14px;background:#fbfdfd}
.team-without-access[hidden]{display:none}
.team-without-access header{margin-bottom:12px}
.team-without-access h2{margin:4px 0 3px;font:600 17px Georgia,serif;color:var(--navy)}
.team-without-access header small{color:var(--muted);font-size:11px;line-height:1.5;display:block;max-width:74ch}
.team-without-access ul{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.team-without-access li{padding:11px 13px;display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid #e4edee;border-radius:11px;background:#fff}
.team-without-access li strong{display:block;font-size:14px}
.team-without-access li span{display:block;color:var(--muted);font-size:11px}
.team-without-access .form-error{margin-bottom:12px}
/* Un champ verrouille doit se voir verrouille : sans marque, le bureau tape une correction qui sera
   refusee par le serveur, et croit a un defaut. */
.form-grid input.is-locked{background:#eef2f3;color:var(--muted);cursor:not-allowed}
.auth-secondary-form{margin-top:16px;text-align:center}
.auth-secondary-form .link-button{border:0;background:transparent;color:var(--muted);font-size:12px;text-decoration:underline}

/* L'ACCES MEMBRE, dans la fiche client - bloc 18.2. */
.member-access-field{padding:12px 14px;border:1px solid var(--line);border-radius:11px;background:#fbfdfd}
.member-access-field[hidden]{display:none}
.member-access-field p{margin:0}
.member-access-field .form-error{margin-bottom:9px}
.member-access-field .secondary-button+.form-hint{display:block;margin-top:8px}

/* LA GRILLE DE REMISE EN LIGNE - saison par saison. */
.discount-grid{max-width:none}
.discount-table{width:100%;border-collapse:collapse;margin:12px 0 10px;font-size:13px}
.discount-table th{padding:7px 9px;text-align:left;font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line)}
.discount-table td{padding:7px 9px;border-bottom:1px solid #eef3f3}
.discount-table select,.discount-table input{min-height:38px;padding:7px 9px;border:1px solid #ceddde;border-radius:8px;background:#fbfdfd}
.discount-table input[type=number]{width:88px;text-align:right}
.discount-table input[name$="_label"]{width:100%;min-width:180px}
.discount-remove label{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted);white-space:nowrap}
/* Les semaines au prix public sont une information, pas une alerte : le bureau doit les voir pour
   que ce soit un choix, sans que la page crie. */
.discount-gaps{padding:9px 12px;border-left:3px solid var(--sea);background:#f2f8f8;border-radius:0 8px 8px 0}

/* v0.32.208 — fermetures du site et descriptifs des prestations (réglages de la réservation en ligne) */
.online-texts .online-text-product{margin:14px 0 0;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:#fff}
.online-texts .online-text-product h3{margin:0 0 10px;font:600 18px Georgia,serif;color:var(--ink)}
.online-texts .online-text-product h3 small{margin-left:8px;font:800 10px/1 sans-serif;letter-spacing:.08em;color:var(--sea)}
.online-text-languages{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.online-text-language h4{margin:0 0 4px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.online-text-language label{display:block;margin-top:8px;font-size:12px;color:var(--muted)}
.online-text-language textarea{display:block;width:100%;box-sizing:border-box;margin-top:4px;padding:8px 10px;font:inherit;font-size:13px;line-height:1.45;color:var(--ink);border:1px solid var(--line);border-radius:9px;background:#fff;resize:vertical}
.discount-table input[type=date]{min-width:150px}
@media(max-width:900px){.online-text-languages{grid-template-columns:1fr}}

/* v0.32.210 — articles en ligne (descriptifs et photos), page à propos */
.online-products .online-product{margin:14px 0 0;padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:#fff}
.online-products .online-product header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}
.online-products .online-product h3{margin:0;font:600 19px Georgia,serif;color:var(--ink)}
.online-products .online-product h3 small{margin-left:8px;font:800 10px/1 sans-serif;letter-spacing:.08em;color:var(--sea)}
.online-product-flag{flex:none;padding:3px 9px;border-radius:999px;background:#eef2f2;color:var(--muted);font:800 10px/1.6 sans-serif;letter-spacing:.06em}
.online-product-flag.online{background:#1f7a5c;color:#fff}.online-product-flag.missing{background:#f6e3df;color:#8a3a2e}
.online-photos-title{margin:14px 0 8px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.online-photos-title small{margin-left:6px;font-weight:400;letter-spacing:0;text-transform:none}
.online-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin:0;padding:0;list-style:none}
.online-photo{padding:8px;border:1px solid var(--line);border-radius:12px;background:#fafcfc}
.online-photo img{display:block;width:100%;height:120px;object-fit:cover;border-radius:8px;margin-bottom:6px;background:#eef2f2}
.online-photo label{display:block;font-size:11px;color:var(--muted);margin-top:4px}
.online-photo input[type=text],.online-photo input:not([type]){width:100%;box-sizing:border-box;margin-top:2px;padding:5px 8px;font:inherit;font-size:12px;border:1px solid var(--line);border-radius:7px}
.online-photo-tools{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:6px}
.online-photo-tools input[type=number]{width:56px;margin-left:4px;padding:4px 6px;font:inherit;font-size:12px;border:1px solid var(--line);border-radius:7px}
.online-photo-add{display:block;margin:12px 0;font-size:12px;color:var(--muted)}
.online-photo-add input{display:block;margin-top:6px;font:inherit;font-size:13px}
.about-page .about-card{margin-top:14px;padding:22px 24px;border:1px solid var(--line);border-radius:14px;background:#fff;max-width:720px}
.about-facts{display:grid;grid-template-columns:1fr 1fr;gap:12px 24px;margin:0 0 16px}
.about-facts div{display:flex;flex-direction:column;gap:2px}.about-facts dt{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.about-facts dd{margin:0;font-size:15px;color:var(--ink)}
.about-copyright{margin:0 0 8px;font-weight:700;color:var(--ink)}
@media(max-width:700px){.about-facts{grid-template-columns:1fr}}

/* 0.32.218 — l'aperçu de la photo d'accueil dans les réglages */
.online-hero-preview{margin:0 0 12px;max-width:520px}.online-hero-preview img{display:block;width:100%;height:auto;border-radius:12px;border:1px solid #d7e5e7}.online-hero-preview figcaption{margin-top:4px;font-size:11px;color:#516a70}

/* 0.32.219 — la règle de vente d'un article hors grille, sur sa fiche */
.online-sale-rule{margin:0 0 14px;padding:12px 14px;border:1px dashed #bfd6da;border-radius:12px;background:#f7fbfb}.online-sale-rule legend{padding:0 6px;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#3d6b74}.online-sale-rule .check-line{display:flex;align-items:center;gap:8px;font-size:12px}

/* 0.32.220 — l'alerte des connexions sur la page « À propos » */
.about-alert{color:#a3231a}

/* 0.32.227 — l'historique des connexions (Direction) */
.connexions-page .connexions-filters{margin:0 30px 16px;padding:14px 18px;display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 16px;border:1px solid var(--line);border-radius:14px;background:#fff}
.connexions-filters label{display:flex;flex-direction:column;gap:5px;font-size:11px;font-weight:800;color:#516a70}
.connexions-filters input,.connexions-filters select{min-height:40px;padding:6px 10px;border:1px solid #ceddde;border-radius:8px;background:#fbfdfd;font-size:13px;font-weight:600;color:var(--ink)}
.connexions-filters select{min-width:220px}
.connexions-quick{display:flex;gap:6px}
.connexions-quick .secondary-button{min-height:40px;padding:0 12px;font-size:12px}
.connexions-summary{margin:0 30px 16px}
.connexions-summary h2,.connexions-list h2{margin:0 0 10px;font:600 20px Georgia,serif}
.connexions-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.connexions-card{padding:12px 14px;border:1px solid var(--line);border-left:4px solid var(--line);border-radius:12px;background:#fff;display:flex;flex-direction:column;gap:3px}
.connexions-card.is-active{border-left-color:#35a777}
.connexions-card strong{font-size:15px;color:var(--navy)}.connexions-card small{font-size:11px;color:var(--muted)}
.connexions-card span{margin-top:4px;font-size:13px;color:#42646b}.connexions-card span b{color:var(--sea)}
.connexions-card em{font-size:11px;color:var(--muted);font-style:normal}
.connexions-list{margin:0 30px;padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:#fff}
.connexions-list header{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.connexions-list header small{color:var(--muted);font-size:12px}
.connexions-table td small{color:var(--muted);font-size:11px}
.connexions-table tr.is-active td{background:#f4fbf7}
.connexions-page .form-hint{margin:14px 30px 0}
@media(max-width:760px){.connexions-page .connexions-filters,.connexions-summary,.connexions-list,.connexions-page .form-hint{margin-left:12px;margin-right:12px}.connexions-filters label,.connexions-filters select{width:100%;min-width:0}.connexions-quick{width:100%}.connexions-quick .secondary-button{flex:1}}

/* 0.32.228 — les statistiques (bloc 15) */
.stats-page .stat-filters{margin:0 30px 16px;padding:14px 18px;display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 16px;border:1px solid var(--line);border-radius:14px;background:#fff}
.stat-filters label{display:flex;flex-direction:column;gap:5px;font-size:11px;font-weight:800;color:#516a70}
.stat-filters input{min-height:40px;padding:6px 10px;border:1px solid #ceddde;border-radius:8px;background:#fbfdfd;font-size:13px;font-weight:600;color:var(--ink)}
.stat-presets{display:flex;flex-wrap:wrap;gap:6px}
.stat-presets .secondary-button{min-height:40px;padding:0 12px;font-size:12px}
.stat-tiles{margin:0 30px 16px;display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}
.stat-tiles-small{margin:0 0 12px}
.stat-tile{padding:14px 16px;border:1px solid var(--line);border-left:4px solid var(--sea);border-radius:12px;background:#fff;display:flex;flex-direction:column;gap:2px}
.stat-tile.is-alert{border-left-color:var(--coral);background:#fff8f6}
.stat-tile strong{font-size:26px;color:var(--navy);font-variant-numeric:tabular-nums;line-height:1.1}
.stat-tile span{font-size:12px;color:#42646b;font-weight:700}
.stat-tile small{font-size:11px;color:var(--muted)}
.stat-section{margin:0 30px 14px;padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:#fff}
.stat-section header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}
.stat-section h2{margin:0;font:600 20px Georgia,serif}
.stat-section header small{color:var(--muted);font-size:12px}
.stat-table td{font-variant-numeric:tabular-nums}
.stat-bar{display:inline-block;vertical-align:middle;width:120px;height:8px;margin-right:8px;border-radius:99px;background:#e2ebec;overflow:hidden}
.stat-bar i{display:block;height:100%;background:var(--sea)}
.stat-alerts{margin:0;padding-left:18px;color:#a3231a;font-size:13px}
.stat-alerts li{margin:3px 0}
.stat-ok{margin:0;color:#26694f;font-size:13px;font-weight:700}
.stat-note,.stat-total{margin:8px 0 0;font-size:13px;color:#42646b}
.stat-total b{color:var(--navy);font-size:15px}
.stats-page .form-hint{margin:14px 30px 0}
@media(max-width:760px){.stats-page .stat-filters,.stat-tiles,.stat-section,.stats-page .form-hint{margin-left:12px;margin-right:12px}.stat-filters label,.stat-filters input{width:100%}.stat-tiles{grid-template-columns:repeat(2,1fr)}.stat-tile strong{font-size:22px}}

/* 0.32.229 — les connexions dans les statistiques */
.stat-subtitle{margin:14px 0 8px;font-size:14px;color:var(--navy)}

/* 0.32.230 — l'en-tête de saison et les graphiques des statistiques */
.stat-hero{margin:0 30px 16px;display:grid;grid-template-columns:1fr 1.4fr;gap:12px}
.hero-card{padding:18px 20px;border-radius:16px;color:#fff;background:linear-gradient(135deg,#173f4d,#2f7d8c);box-shadow:0 8px 24px rgba(23,63,77,.18)}
.hero-card.hero-month{background:linear-gradient(135deg,#0f2f3b,#173f4d)}
.hero-card header{margin-bottom:12px}.hero-card .eyebrow{color:#9fd3d9;margin-bottom:4px}
.hero-card h2{margin:0;font:600 24px Georgia,serif;text-transform:capitalize}
.hero-card header small{display:block;margin-top:3px;font-size:12px;color:#c8dfe3}
.hero-figures{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px 16px}
.hero-figure{display:flex;flex-direction:column;gap:2px}
.hero-figure strong{font-size:28px;line-height:1.05;font-variant-numeric:tabular-nums}
.hero-figure span{font-size:12px;font-weight:700;color:#d7e9ec}
.hero-figure small{margin-top:4px;font-size:11px;color:#bcd7dc;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.hero-figure small em{font-style:normal}
.stat-delta{display:inline-block;padding:2px 7px;border-radius:99px;font-size:11px;font-weight:900;font-variant-numeric:tabular-nums;background:#e2ebec;color:#42646b}
.stat-delta.is-good{background:#dff2e7;color:#1f6a45}.stat-delta.is-bad{background:#fde3df;color:#9d2f24}.stat-delta.is-flat{background:#e2ebec;color:#42646b}.stat-delta.is-new{background:#fff1dd;color:#8b601c}
.hero-card .stat-delta{background:rgba(255,255,255,.16);color:#fff}.hero-card .stat-delta.is-good{background:#35a777;color:#fff}.hero-card .stat-delta.is-bad{background:#d9534f;color:#fff}
.stat-sync-state{color:var(--muted);font-size:11px;max-width:260px;text-align:right}
.stat-period-title{margin:8px 30px 12px;font:600 20px Georgia,serif;color:var(--navy)}
.chart{margin:0}.chart svg{width:100%;height:auto;display:block}
.chart-grid{stroke:#e2ebec;stroke-width:1}.chart-axis{font-size:11px;fill:#6c858a}.chart-label{font-size:12px;fill:var(--ink)}.chart-value{font-size:11px;fill:#42646b;font-weight:700}
.chart-bar.current{fill:var(--sea)}.chart-bar.previous{fill:#c5d9dc}
.chart-legend{margin:8px 0 0;display:flex;flex-wrap:wrap;gap:14px;font-size:12px;color:#42646b}
.chart-legend span{display:inline-flex;align-items:center;gap:6px}.chart-legend i{display:inline-block;width:12px;height:12px;border-radius:3px}
.chart-legend i.current{background:var(--sea)}.chart-legend i.previous{background:#c5d9dc}
.chart-donut{display:grid;grid-template-columns:220px 1fr;gap:18px;align-items:center}
.chart-donut svg{max-width:220px}
.chart-slice{stroke:#c5d9dc}.chart-slice.c0,.chart-keys i.c0{stroke:#2f7d8c;background:#2f7d8c}.chart-slice.c1,.chart-keys i.c1{stroke:#173f4d;background:#173f4d}.chart-slice.c2,.chart-keys i.c2{stroke:#e2a33a;background:#e2a33a}.chart-slice.c3,.chart-keys i.c3{stroke:#35a777;background:#35a777}.chart-slice.c4,.chart-keys i.c4{stroke:#7c5cc4;background:#7c5cc4}.chart-slice.c5,.chart-keys i.c5{stroke:#d9534f;background:#d9534f}.chart-slice.c6,.chart-keys i.c6{stroke:#70c4ca;background:#70c4ca}.chart-slice.c7,.chart-keys i.c7{stroke:#9aa7ab;background:#9aa7ab}
.chart-center{font:700 18px system-ui,sans-serif;fill:var(--navy)}.chart-center-small{font-size:10px;fill:#6c858a}
.chart-keys{margin:0;padding:0;list-style:none;display:grid;gap:6px}
.chart-keys li{display:grid;grid-template-columns:12px minmax(0,1fr) auto auto auto;gap:8px;align-items:center;font-size:13px}
.chart-keys i{display:inline-block;width:12px;height:12px;border-radius:3px}.chart-keys b{font-variant-numeric:tabular-nums}.chart-keys small{color:var(--muted);min-width:34px;text-align:right}
@media(max-width:900px){.stat-hero{grid-template-columns:1fr}}
@media(max-width:760px){.stat-hero,.stat-period-title{margin-left:12px;margin-right:12px}.hero-figure strong{font-size:22px}.chart-donut{grid-template-columns:1fr}.chart-donut svg{margin:0 auto}.stat-sync-state{max-width:none;text-align:left}}
/* 0.32.230 — un bouton masqué (attribut hidden) le reste, malgré le display des boutons */
.stats-page [hidden]{display:none!important}

/* 0.32.231 — la comparaison par activité, sous le seuil de rapprochement */
.stat-note.stat-warning{color:#8b601c}
/* 0.32.232 — la part Plongée / Snorkeling / Apnée dans les cartouches d en-tête */
.hero-split{grid-column:1/-1;margin:2px 0 0;padding:8px 0 0;list-style:none;display:flex;flex-wrap:wrap;gap:8px 18px;border-top:1px solid rgba(255,255,255,.18)}
.hero-split li{display:inline-flex;align-items:baseline;gap:6px;font-size:12px;color:#d7e9ec}
.hero-split li b{font-size:15px;color:#fff;font-variant-numeric:tabular-nums}.hero-split li small{color:#bcd7dc;font-size:11px}

/* 0.32.233 — le tableau de bord du manager : alertes, moyenne des saisons, détail replié */
.stat-alerts-box{margin:0 30px 16px;display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}
.stat-alert{padding:12px 14px;border:1px solid var(--line);border-left:4px solid #35a777;border-radius:12px;background:#fff;display:flex;flex-direction:column;gap:2px}
.stat-alert.is-alert{border-left-color:var(--coral);background:#fff8f6}
.stat-alert strong{font-size:22px;color:var(--navy);font-variant-numeric:tabular-nums;line-height:1.1}.stat-alert.is-alert strong{color:#9d2f24}
.stat-alert span{font-size:12px;font-weight:700;color:#42646b}.stat-alert small{font-size:11px;color:var(--muted)}
.stat-alerts-title{margin:0 30px 8px;font:600 18px Georgia,serif;color:var(--navy)}
.hero-figure small.hero-average{color:#bcd7dc}
.chart-bar.average{fill:#e2a33a}.chart-legend i.average{background:#e2a33a}
.stat-details{margin:4px 30px 0;border:1px solid var(--line);border-radius:14px;background:#fff}
.stat-details>summary{padding:14px 18px;cursor:pointer;list-style:none;display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px}
.stat-details>summary::-webkit-details-marker{display:none}
.stat-details>summary span{font:600 18px Georgia,serif;color:var(--navy)}.stat-details>summary span::before{content:"▸ ";color:var(--sea)}
.stat-details[open]>summary span::before{content:"▾ "}
.stat-details>summary small{color:var(--muted);font-size:12px}
.stat-details .stat-filters,.stat-details .stat-tiles,.stat-details .stat-section,.stat-details .form-hint,.stat-details .stat-period-title{margin-left:18px;margin-right:18px}
.stat-details .form-hint{padding-bottom:16px}
@media(max-width:760px){.stat-alerts-box,.stat-alerts-title,.stat-details{margin-left:12px;margin-right:12px}.stat-alerts-box{grid-template-columns:repeat(2,1fr)}.stat-details .stat-filters,.stat-details .stat-tiles,.stat-details .stat-section,.stat-details .form-hint,.stat-details .stat-period-title{margin-left:10px;margin-right:10px}}
/* 0.32.234 — « À traiter » sur une seule ligne : le conteneur n est plus une grille, seules les cartes le sont */
.stat-alerts-wrap{margin:0 30px 16px}
.stat-alerts-wrap .stat-alerts-title{margin:0 0 8px}
.stat-alerts-wrap .stat-alerts-box{margin:0;grid-template-columns:repeat(6,minmax(0,1fr))}
@media(max-width:1100px){.stat-alerts-wrap .stat-alerts-box{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.stat-alerts-wrap{margin-left:12px;margin-right:12px}.stat-alerts-wrap .stat-alerts-box{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* (0.32.236) Les avoirs de report sur la fiche client, et l'indication dans la fiche de sortie. */
.client-credit-row.available strong{color:#0b6b3a}
.client-credit-row.cancelled strong{color:#8a8a8a;text-decoration:line-through}
.client-credit-row button{white-space:nowrap;align-self:center}
.client-credit-form{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;align-items:center}
.client-credit-form input{flex:1 1 240px;min-width:0}
.credit-hint{color:#0b6b3a;font-weight:600}

/* (0.32.236) Le chiffre d'affaires du bandeau : montant, évolution contre l'an dernier, évolution contre la moyenne, sur une ligne. */
.hero-figure-ca{grid-column:1/-1}
.hero-figure-ca .hero-line{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px}
.hero-figure-ca .hero-line small{margin-top:0;white-space:nowrap;flex-wrap:nowrap}
.hero-figure-ca>span{margin-top:2px}

/* (0.32.240) La moyenne des saisons en courbe par-dessus les barres. */
.chart-line.average{stroke:#e2a33a;stroke-width:3;stroke-linejoin:round;stroke-linecap:round}
.chart-dot.average{fill:#e2a33a;stroke:#fff;stroke-width:1.5}
.chart-legend i.line{width:18px;height:3px;border-radius:2px;vertical-align:middle}

/* (0.32.246) L'infobulle des graphiques. */
.chart-tip{position:fixed;z-index:60;pointer-events:none;background:#123;color:#fff;font-size:12px;line-height:1.35;padding:6px 9px;border-radius:6px;box-shadow:0 4px 14px rgba(0,0,0,.22);max-width:280px}
.chart-tip[hidden]{display:none}
.chart-bar,.chart-dot,.chart-slice{cursor:pointer}
.chart-bar:hover{opacity:.85}
/* (0.50.012) Le rôle d'une palanquée : le badge, le cadenas de la privée, son moniteur, ce que la règle en dit, le réglage. */
.palanquee-role{display:inline-block;margin-top:6px;padding:2px 8px;border-radius:999px;background:#eef4f6;color:var(--sea);font-size:10px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.palanquee-role-private{background:#fff3e0;color:#8a4b00}.palanquee-role-autonomous{background:#eef7ee;color:#2f6b2f}.palanquee-private-staff{display:block;margin-top:4px;color:var(--muted);font-size:11px}.palanquee-notice{display:block;margin-top:4px;color:#8a4b00;font-size:11px;font-weight:700}.palanquee-client-guide{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px;margin-top:6px;color:var(--ink,#173f4d);font-size:11px}.palanquee-client-guide.is-confirmed{color:var(--sea)}.palanquee-client-guide .secondary-button.compact{padding:2px 10px;font-size:11px;min-height:0}.palanquee-client-guide .link-button{border:0;background:none;color:var(--muted);font-size:11px;text-decoration:underline;cursor:pointer;padding:0}.palanquee-role-choice{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin:10px 0 4px}.palanquee-role-button{padding:3px 12px;border:1px solid #cfdde1;border-radius:999px;background:#fff;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;line-height:1.6;cursor:pointer}.palanquee-role-button:hover{border-color:var(--sea);color:var(--sea)}.palanquee-role-button.is-active{background:var(--sea);border-color:var(--sea);color:#fff}.palanquee-role-button[data-palanquee-mode="private"].is-active{background:#8a4b00;border-color:#8a4b00}.palanquee-role-button[data-palanquee-mode="autonomous"].is-active{background:#2f6b2f;border-color:#2f6b2f}.palanquee-role-error{flex-basis:100%;color:#9b1c1c;font-size:11px;font-weight:700}

/* ---------------------------------------------------------------------------------------------
   (0.50.073) LA PAGE D'UNE SORTIE AU TÉLÉPHONE — demande de la Direction du 20/09 : « beaucoup trop
   d'informations dans une sortie », « on ne peut pas déplacer une personne ».
   Sur ordinateur, RIEN NE CHANGE : les enveloppes de section sont transparentes (display: contents),
   leurs titres cachés, le bandeau absent. C'est la largeur qui décide (767 px et moins), pas l'appareil.
   --------------------------------------------------------------------------------------------- */
.phone-section,.phone-section-body{display:contents}
.phone-section-head{display:none}
.outing-phone-summary{display:none}
.phone-sheet{display:none}
.phone-sheet[open]{display:block}
@media (max-width: 767px) {
  /* L'ordre du téléphone : l'en-tête, le bandeau, puis Inscrits, Palanquées, Équipe, la sortie. */
  .unified-operations-page{display:flex;flex-direction:column}
  .unified-operations-page>*{order:50}
  .unified-operations-page>.operations-heading{order:1}
  .unified-operations-page>.double-dive-nav{order:2}
  .unified-operations-page>.outing-phone-summary{order:3}
  .unified-operations-page>.operations-alerts{order:4}
  .unified-operations-page>.operations-toolbar{order:5}
  .outing-command-center,.roster-board{display:contents}
  .phone-section{display:block;margin:0 12px 10px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 5px 18px rgba(24,52,60,.05);overflow:hidden}
  .phone-section[data-phone-section="inscrits"]{order:10}
  .phone-section[data-phone-section="palanquees"]{order:11}
  .phone-section[data-phone-section="equipe"]{order:12}
  .phone-section[data-phone-section="sortie"]{order:13}
  .phone-section-head{display:block;margin:0;font:inherit}
  .phone-section-toggle{display:flex;align-items:center;gap:10px;width:100%;min-height:52px;padding:0 16px;border:0;border-radius:0;background:#fff;color:var(--sea);font:600 16px/1.2 inherit;text-align:left;cursor:pointer}
  .phone-section-toggle small{margin-left:auto;padding:3px 9px;border-radius:99px;background:#edf3f4;color:var(--muted);font-size:12px!important;font-weight:700}
  .phone-section-toggle small:empty{display:none}
  .phone-section-chevron{flex:0 0 auto;width:9px;height:9px;margin-left:4px;border-right:2px solid var(--sea);border-bottom:2px solid var(--sea);transform:rotate(45deg);transition:transform .15s}
  .phone-section.is-open .phone-section-toggle{border-bottom:1px solid var(--line)}
  .phone-section.is-open .phone-section-chevron{transform:rotate(-135deg)}
  .phone-section-body{display:block}
  .phone-section:not(.is-open)>.phone-section-body{display:none}
  .phone-section-body>article,.phone-section-body>.roster-column{margin:0;border:0;border-radius:0;box-shadow:none;width:auto;min-width:0}
  .phone-section-body>.outing-team-card+.outing-assignment-card{border-top:1px solid var(--line)}
  .roster-column,.unified-palanquee-card,.surface-safety-roster{width:auto;min-width:0}
  .palanquee-list{flex-direction:column;align-items:stretch;gap:0}
  .palanquee-list>.roster-column+.roster-column{border-top:1px solid var(--line)}
  .surface-safety-roster{border:0;border-bottom:1px solid var(--line);border-radius:0}
  .participant-dropzone{min-height:0}
  .unassigned-roster>header{display:none}
  /* Le doigt fait défiler la page : plus de glisser-déposer au téléphone, le geste ouvre la feuille. */
  .participant-card{touch-action:pan-y;user-select:auto;cursor:pointer;padding:13px 40px 13px 13px;position:relative}
  .participant-card::after{content:"›";position:absolute;right:14px;top:50%;transform:translateY(-50%);font-size:26px;line-height:1;color:var(--sea);opacity:.55}
  /* (0.50.108) la ligne d'icônes reste visible au téléphone : le tap déclenche, l'appui long dit le libellé ; le reste de la carte ouvre la feuille. */
  .operations-toolbar{margin:0 12px 10px;gap:8px}
  .operations-toolbar>div{display:none}
  /* (0.50.075) L'en-tête compact : les boutons sur une barre, deux lignes au plus avant le bandeau. */
  .operations-heading{padding-bottom:10px}
  .operations-heading .heading-actions{display:flex;flex-wrap:wrap;gap:6px}
  .operations-heading .heading-actions>a,.operations-heading .heading-actions>button{flex:1 1 auto;min-height:40px;padding:6px 12px;font-size:14px;white-space:nowrap}
  .operations-alerts{margin:0 12px 10px}
  .operations-alerts:not(.is-open){display:none}

  /* LE BANDEAU : l'essentiel de la sortie, sur un écran, sans défilement horizontal. */
  .outing-phone-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;margin:0 12px 12px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 5px 18px rgba(24,52,60,.05)}
  .outing-phone-summary[hidden]{display:none}
  .outing-phone-summary .phone-fact{min-width:0;margin:0}
  .outing-phone-summary .phone-fact dt{margin:0;font-size:11px!important;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:800}
  .outing-phone-summary .phone-fact dd{margin:2px 0 0;font-size:17px;font-weight:700;color:var(--ink,#18343c);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .outing-phone-summary .phone-fact dd small{display:block;font-size:12px!important;font-weight:500;color:var(--muted);white-space:normal}
  .outing-phone-summary .phone-fact dd.is-warning{color:#984d43}
  .outing-phone-summary .phone-fact.span-2{grid-column:1/-1}
  .outing-phone-summary .phone-fact dd .status-pill{font-size:11px;vertical-align:middle}
  .outing-phone-alerts{grid-column:1/-1;display:flex;align-items:center;gap:8px;width:100%;min-height:44px;margin:2px 0 0;padding:8px 12px;border:0;border-left:3px solid var(--amber);border-radius:8px;background:#fff3df;color:#8b601c;font:inherit;font-size:13px;text-align:left;cursor:pointer}
  .outing-phone-alerts.is-danger{border-left-color:var(--coral);background:#fff0ed;color:#984d43}
  .outing-phone-alerts b{flex:0 0 auto}
  .outing-phone-alerts span{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

  /* LA FEUILLE DES GESTES, en bas d'écran : cibles de 44 px, une action par ligne. */
  .phone-sheet{position:fixed;inset:0;width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:0;border:0;background:transparent}
  .phone-sheet::backdrop{background:rgba(14,47,59,.45)}
  .phone-sheet-panel{position:absolute;left:0;right:0;bottom:0;max-height:88vh;overflow:auto;padding:0 0 max(12px,env(safe-area-inset-bottom));border-radius:18px 18px 0 0;background:#fff;box-shadow:0 -10px 30px rgba(14,47,59,.25)}
  .phone-sheet-panel>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 16px 10px;border-bottom:1px solid var(--line)}
  .phone-sheet-panel>header h2{margin:2px 0 0;font:600 19px Georgia,serif;color:var(--ink,#18343c)}
  .phone-sheet-close{flex:0 0 auto;width:44px;height:44px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--sea);font-size:22px;line-height:1}
  .phone-sheet-actions{display:flex;flex-direction:column;padding:8px 12px 4px}
  .phone-sheet-actions button{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;padding:10px 12px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:#fff;color:var(--sea);font:600 16px/1.25 inherit;text-align:left}
  .phone-sheet-actions button:last-child{border-bottom:0}
  .phone-sheet-actions button.is-danger{color:#984d43}
  .phone-sheet-actions button.is-back{color:var(--muted);font-weight:500}
  .phone-sheet-actions button small{margin-left:auto;font-size:12px!important;font-weight:500;color:var(--muted)}
  .phone-sheet-actions .phone-sheet-group{margin:8px 0 2px;padding:0 12px;font-size:11px!important;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:800}
  .phone-sheet-actions .phone-sheet-empty{margin:0;padding:12px;color:var(--muted);font-size:14px}
}
/* (0.50.081) Au téléphone, une ligne de forfait ne tient pas en quatre colonnes : le libellé sur toute la largeur, le solde et les gestes dessous. */
@media(max-width:600px){.package-row{grid-template-columns:auto minmax(0,1fr)}.package-row>div,.package-row>small{grid-column:1/-1}.package-row>button{justify-self:start}}
/* (0.50.096) LE MIROIR OUTLOOK « OUTING » dans À propos : le code d'appareil en grand, les gestes en ligne, les réglages en grille ; la
   confirmation des événements étrangers en encadré d'avertissement. */
.outlook-mirror h2{margin:0 0 6px;font-size:18px}
.outlook-device-code{margin:12px 0;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#f3f8f9}
.outlook-device-code p{margin:0 0 8px}
.outlook-code{display:inline-block;font-size:26px;letter-spacing:.12em;font-family:ui-monospace,Consolas,monospace;margin:4px 0 10px}
.outlook-actions{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 14px}.outlook-actions form{margin:0}
.outlook-settings{display:grid;grid-template-columns:auto repeat(2,minmax(0,1fr)) auto;gap:10px 14px;align-items:end}
/* (0.50.106) le calendrier choisi dans la liste, ou lu en lecture seule */
.outlook-calendar-cell,.outlook-calendar-readonly{grid-column:1/-1;order:-1}.outlook-calendar-cell{display:flex;gap:8px;align-items:end;min-width:0}.outlook-calendar-cell label{flex:1;min-width:0}.outlook-calendar-cell select{width:100%;min-width:0}
/* (0.50.106, § 12.8) le diagnostic du miroir */
.outlook-diagnostic{margin:12px 0;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#f7fafb;min-width:0}.outlook-diagnostic h3{margin:0 0 8px;font-size:15px}
.outlook-diagnostic-groups{width:100%;border-collapse:collapse;font-size:12px;margin:8px 0;display:block;overflow-x:auto}.outlook-diagnostic-groups th,.outlook-diagnostic-groups td{text-align:left;padding:4px 6px;border-bottom:1px solid var(--line)}
.outlook-diagnostic pre{white-space:pre-wrap;word-break:break-all;font-size:11px;max-width:100%}
/* (0.50.111, § 3) les catégories Outlook attendues : les noms des bateaux, à créer une fois dans Outlook */
.outlook-categories{margin:12px 0;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;min-width:0}.outlook-categories h3{margin:0 0 6px;font-size:15px}
.outlook-category-list{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 0;padding:0;list-style:none}.outlook-category-list code{display:inline-block;padding:3px 10px;border:1px solid var(--line);border-radius:999px;background:#f7fafb;font-size:12.5px;font-family:inherit;font-weight:600}
.outlook-calendar-readonly{display:flex;flex-direction:column;gap:4px;font-size:12px;min-width:0}.outlook-calendar-readonly strong{font-size:14px}.outlook-calendar-readonly small{margin:0}.outlook-calendar-readonly button{align-self:flex-start}
.outlook-settings label{display:flex;flex-direction:column;gap:4px;font-size:12px}.outlook-settings .outlook-active{flex-direction:row;align-items:center;gap:8px;font-size:14px}
.form-warning{margin:10px 0;padding:12px 14px;border:1px solid #e3c27a;border-radius:10px;background:#fff8e6}.form-warning p{margin:0 0 10px}
@media(max-width:700px){.outlook-settings{grid-template-columns:1fr}.outlook-settings button{justify-self:start}.outlook-calendar-cell{flex-wrap:wrap}}
.outlook-foreign-confirm .danger-button,.outlook-calendar-confirm .danger-button{border:0;border-radius:999px;padding:9px 16px;font-weight:700;background:#a3231a;color:#fff;cursor:pointer}
.outlook-foreign-confirm .danger-button:hover{background:#861b13}
/* (0.50.102, point 62) « Désigner un autre guide » sous la ligne du guide de palanquée. */
.palanquee-guide-other{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px;margin-left:8px;font-size:12px;color:var(--muted,#5b7075)}.palanquee-guide-other select{min-height:32px;max-width:220px;font-size:12px}
/* (0.50.102, point 40) LA FICHE DE SORTIE (capture 1 de la Direction, 28/09) : les personnes à bord à gauche, les palanquées au centre, l'équipe
   à droite (DP, Sécurité surface et Pilote les uns sous les autres, l'effectif en dessous) ; la proposition de site puis les notes ; les
   informations de la sortie en bas. Le téléphone garde ses sections (Inscrits, Palanquées, Équipe, Sortie). */
@media (min-width:768px){
  .outing-workspace.single-screen-outing{display:grid;grid-template-columns:minmax(240px,.72fr) minmax(0,2fr) minmax(290px,.82fr);grid-template-areas:"people pal team" "site site site" "info info info";align-items:start;gap:14px}
  .outing-workspace>.phone-section[data-phone-section="inscrits"]{display:block;grid-area:people;min-width:0}
  .outing-workspace>.phone-section[data-phone-section="palanquees"]{display:block;grid-area:pal;min-width:0}
  .outing-workspace>.phone-section[data-phone-section="equipe"]{display:flex;flex-direction:column;gap:14px;grid-area:team;min-width:0}
  .outing-workspace.single-screen-outing .outing-site-notes-card{grid-area:site}
  .outing-workspace.single-screen-outing .outing-edit-card{grid-area:info}
  .outing-workspace .unassigned-roster,.outing-workspace .surface-safety-roster{width:auto;min-width:0}
  .outing-workspace #phone-section-inscrits{display:flex;flex-direction:column;gap:14px}
  .outing-workspace .palanquee-list{overflow-x:auto;padding-bottom:8px}
  .outing-workspace .inline-team-form{grid-template-columns:1fr}
}
@media (min-width:768px) and (max-width:1050px){
  .outing-workspace.single-screen-outing{grid-template-columns:minmax(0,1fr) minmax(280px,.9fr);grid-template-areas:"people team" "pal team" "site site" "info info"}
}
.outing-site-notes-card{padding:18px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 5px 18px rgba(24,52,60,.05);display:grid;gap:12px}
.outing-site-notes-card .outing-site-context{margin:0}
.outing-notes-field{display:flex;flex-direction:column;gap:6px;color:#4e686e;font-size:12px;font-weight:800}.outing-notes-field textarea{width:100%;min-height:70px;padding:9px;border:1px solid var(--line);border-radius:8px;font:inherit;font-weight:400;color:var(--ink)}
.outing-site-notes-card footer{display:flex;justify-content:flex-end}
/* (0.50.102, point 41) L'effectif cliquable et sa liste. */
.headcount-open{padding:0;border:0;background:none;color:var(--sea);font:inherit;font-weight:800;text-align:left;text-decoration:underline dotted;text-underline-offset:3px;cursor:pointer}
.headcount-dialog{width:min(560px,calc(100vw - 32px))}.headcount-dialog>header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.headcount-body{display:grid;gap:16px}.headcount-body h3{margin:0 0 6px;font-size:14px}.headcount-body ul{margin:0;padding-left:18px}.headcount-body li{margin:3px 0}
.headcount-dossiers>li>a{font-weight:700}.headcount-minor{margin-left:6px;padding:1px 7px;border-radius:99px;background:#fff3df;color:#8b601c;font-size:11px;font-weight:700}.headcount-anonymous{color:var(--muted,#5b7075);font-style:italic}
/* (0.50.102, point 48) La section « Matériel » de la fiche client, ouverte : gilet, combinaison, palmes, lestage. */
.client-equipment-section{padding:12px 14px}.client-equipment-title{margin:0 0 8px;font-size:14px}.client-equipment-section .equipment-complements{padding:0}
@media (min-width:901px){.client-equipment-section .equipment-complements{grid-template-columns:repeat(4,minmax(0,1fr))}}.client-equipment-section .own-equipment-toggle{grid-column:1/-1}
/* (0.50.102, point 49) Les sites favoris et à éviter : deux listes, un geste pour ajouter ou retirer. */
.site-preference-lists{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}@media (max-width:760px){.site-preference-lists{grid-template-columns:1fr}}
.site-preference-group{padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fbfdfd}.site-preference-group h4{margin:0 0 8px;font-size:13px}.site-preference-group.is-avoid h4{color:#9a3b2f}.site-preference-group.is-favorite h4{color:#1f6b46}
.site-preference-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.site-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 4px 3px 10px;border-radius:99px;background:#eef5f6;font-size:12px}.is-avoid .site-chip{background:#fdecea}.is-favorite .site-chip{background:#eef8f2}.site-chip button{min-width:28px;min-height:28px;border:0;border-radius:50%;background:transparent;cursor:pointer;font-size:15px}
.site-preference-search{display:flex;flex-direction:column;gap:4px;font-size:12px}.site-preference-results{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.site-preference-results button small{margin-left:6px;opacity:.7}
.headcount-dialog{padding:20px 22px 22px;border:0;border-radius:16px;box-shadow:0 20px 50px rgba(15,49,58,.25)}.headcount-dialog h2{margin:4px 0 0;font-size:22px}.headcount-dialog .headcount-close{border:0;background:none;font-size:22px;cursor:pointer;color:var(--muted,#5b7075)}
.headcount-body section{padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fbfdfd}.headcount-dossiers>li>a{color:var(--sea);text-decoration:none}.headcount-dossiers>li>a:hover{text-decoration:underline}.headcount-empty{margin:0;color:var(--muted,#5b7075);font-size:13px}.headcount-body small{display:block;margin-top:8px;color:var(--muted,#5b7075)}
/* (0.50.103, point 67) La saisie rapide du matériel sur la carte d'une personne : au téléphone seulement. */
.quick-equipment{display:none}
@media (max-width:767px){.quick-equipment{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 4px;align-items:end;margin-top:8px;padding-top:8px;border-top:1px dashed var(--line)}.quick-equipment label{display:grid;grid-template-rows:auto 44px;row-gap:3px;min-width:0;margin:0;font-size:11px;line-height:1.25;font-weight:700;color:var(--muted,#5b7075)}.quick-equipment select,.quick-equipment input{box-sizing:border-box;width:100%;height:44px;min-height:44px;margin:0;padding:0 3px;border:1px solid var(--line);border-radius:8px;background-color:#fff}.quick-equipment .is-saved{border-color:#2e8b57;box-shadow:0 0 0 2px rgba(46,139,87,.2)}}
/* (petites suites 11, § 7, Direction 04/10/2026) LA LIGNE DU MATÉRIEL ALIGNÉE : quatre colonnes égales, les étiquettes sur une ligne (jamais
   repliées), les quatre champs de 44 px (la cible tactile et le 16 px de mobile.css, que Safari exige) sur la même ligne de base, les mêmes
   marges ; une flèche compacte laisse lire la valeur entière (« Perso », « Enfant », « 46/47 » à 375 px). En dessous de 360 px, deux colonnes
   sur deux lignes, alignées de même : la valeur n'est jamais rognée. */
@media (max-width:767px){.quick-equipment-name{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:1.25}.quick-equipment select{-webkit-appearance:none;appearance:none;padding-right:9px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='6' height='4' viewBox='0 0 6 4'%3E%3Cpath d='M0 0l3 4 3-4z' fill='%235b7075'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 2px center;background-size:6px 4px}.quick-equipment input[type=number]{-moz-appearance:textfield;appearance:textfield}.quick-equipment input[type=number]::-webkit-inner-spin-button,.quick-equipment input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}}
@media (max-width:359px){.quick-equipment{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* (0.50.108) LA CARTE DE L'INSCRIT, LES GESTES EN ICÔNES — brief docs/BRIEF-carte-inscrit-V1.md § 3. Une ligne d'icônes (20 px à l'ordinateur,
   24 px et cibles de 44 px au toucher), les gestes d'alerte colorés, « ⋯ » à droite ; son menu est une liste verticale placée en position fixe
   (ui.js ne coupe rien : la colonne défile, le menu non). Les libellés : title au survol, appui long au toucher (bulle de l'aide). */
.participant-card .participant-actions{margin-top:8px;display:flex;flex-wrap:wrap;align-items:center;gap:3px}
.participant-card .participant-actions>button,.participant-card .participant-more-toggle{display:inline-flex;align-items:center;justify-content:center;flex:none;width:28px;height:28px;min-height:0;margin:0;padding:0;border:1px solid var(--line);border-radius:7px;color:var(--sea);background:#fff;font-size:0;line-height:1;cursor:pointer}
.participant-card .participant-actions>button:hover,.participant-card .participant-more-toggle:hover,.participant-card .participant-more-toggle[aria-expanded="true"]{border-color:var(--sea);background:#eef8f8}
.participant-card .participant-actions>button:focus-visible,.participant-card .participant-more-toggle:focus-visible{outline:2px solid var(--sea);outline-offset:1px}
.participant-card .participant-actions>button.alert{color:#a33f35;border-color:#efb9b2;background:#fde7e3}
.participant-card .participant-actions>button.alert:hover{border-color:#a33f35;background:#fbd9d3}
.participant-card .participant-actions>button.participant-counter{color:var(--navy)}
.participant-card .participant-more{display:block;margin:0 0 0 auto}
/* (0.60.035, petites suites 2 point 13) le pictogramme « GP » : éteint (peut guider), contour (proposé), allumé (guide de la palanquée) */
.participant-card .participant-actions>.participant-guide-toggle,.participant-card .participant-actions>span.participant-guide-toggle{display:inline-flex;align-items:center;justify-content:center;flex:none;width:28px;height:28px;box-sizing:border-box;border:1px solid var(--line);border-radius:7px;background:#fff;color:#8aa3aa;font:800 10px/1 system-ui,-apple-system,"Segoe UI",sans-serif;letter-spacing:.02em}
.participant-card .participant-actions>.participant-guide-toggle.is-proposed{border:2px dashed var(--sea);color:var(--sea);background:#fff}
.participant-card .participant-actions>.participant-guide-toggle.is-on{border-color:var(--sea);background:var(--sea);color:#fff}
.participant-card .participant-actions>span.participant-guide-toggle.is-readonly{cursor:default}
.gesture-icon{display:block;width:20px;height:20px;flex:none}
.participant-more-menu[hidden]{display:none!important}
.participant-more-menu.is-placed{position:fixed;z-index:95;display:flex;flex-direction:column;gap:2px;box-sizing:border-box;min-width:230px;max-width:min(320px,calc(100vw - 32px));margin:0;padding:5px;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:0 10px 28px rgba(22,63,77,.18);text-decoration:none;opacity:1}
.participant-more-menu button{display:flex;align-items:center;gap:10px;width:100%;min-height:40px;margin:0;padding:8px 10px;border:0;border-radius:7px;color:var(--ink);background:none;font:600 13px/1.3 system-ui,-apple-system,"Segoe UI",sans-serif;text-align:left;cursor:pointer}
.participant-more-menu button:hover,.participant-more-menu button:focus-visible{background:#eaf6f6;outline:none}
.participant-more-menu button .gesture-icon{color:var(--sea)}
.participant-more-menu button.participant-remove{width:100%;margin:0;padding:8px 10px;border:0;background:none;color:#a4493e;font-size:13px;line-height:1.3}.participant-more-menu button.participant-remove .gesture-icon{color:#a4493e}
.participant-more-menu button.participant-remove:hover,.participant-more-menu button.participant-remove:focus-visible{background:#fff0ed}
.participant-more-menu button:disabled{opacity:.6;cursor:not-allowed;background:none}
.participant-card .participant-more-menu .gesture-text{display:block;margin:0;color:inherit;font-size:13px}
.participant-card .participant-more-menu .gesture-text small{display:block;margin-top:2px;color:var(--muted);font-size:11px;font-weight:400}
@media (pointer:coarse),(hover:none){
  .participant-card .participant-actions{gap:6px}
  .participant-card .participant-actions>button,.participant-card .participant-more-toggle{width:44px;height:44px;border-radius:9px;-webkit-touch-callout:none;user-select:none}
  .participant-card .participant-actions .gesture-icon{width:24px;height:24px}
  .participant-card .participant-actions>.participant-guide-toggle{width:44px;height:44px;border-radius:9px;font-size:12px}
  .participant-more-menu button{min-height:44px;font-size:15px}
  .participant-card .participant-more-menu .gesture-text{font-size:15px}
}
/* (0.60.002) Les dossiers de formation dans « Forfaits et formations » : une carte par dossier, l'état en pastille libellée (jamais les
   couleurs du règlement), la pédagogie et les forfaits liés côte à côte comme deux lectures distinctes, les gestes en pied. */
.training-file-zone{padding:18px 24px 4px;display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.training-file-heading{margin:0;font:600 17px Georgia,serif;color:var(--ink)}
.training-file-empty{margin:0;color:var(--muted);font-size:12px}
.training-file-card{min-width:0;grid-template-columns:minmax(0,1fr);padding:12px 14px;border:1px solid var(--line);border-left:4px solid #5b7fa6;border-radius:9px;background:#fbfcfe;display:grid;gap:6px}
.training-file-card.status-active{border-left-color:#2f6f9f}.training-file-card.status-suspended{border-left-color:#8a7a52}.training-file-card.status-completed,.training-file-card.status-abandoned{border-left-color:#9aa6ad;background:#f7f8f9}
.training-file-card>header{min-width:0;display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.training-file-card>header small{color:#2f5f86;font-weight:900;font-size:9px;letter-spacing:.06em;text-transform:uppercase}
.training-file-card>header h4{margin:2px 0 0;font:600 16px Georgia,serif;color:var(--ink)}
.training-file-status{padding:3px 9px;border-radius:999px;border:1px solid #b9c9da;background:#eef3f8;color:#2f4f6c;font-size:10px;font-weight:800;white-space:nowrap}
.training-file-status.status-active{background:#e3eef8;border-color:#9fbfdc;color:#1f4f7a}.training-file-status.status-suspended{background:#f5f0e3;border-color:#d8c9a0;color:#6b5a2c}.training-file-status.status-completed,.training-file-status.status-abandoned{background:#f1f3f4;border-color:#d3d9dc;color:#5b6b73}
.training-file-line{margin:0;color:var(--muted);font-size:11px}.training-file-line b{color:var(--ink)}
.training-file-readings{display:grid;grid-template-columns:minmax(120px,auto) minmax(0,1fr);gap:12px;padding:8px 10px;border:1px solid #e3e9ee;border-radius:8px;background:#fff}
.training-file-readings>p>span,.training-file-readings>div>span{display:block;color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.training-file-readings p{margin:0}.training-file-readings b{font-size:12px}
.training-file-readings ul{margin:2px 0 0;padding:0;list-style:none;font-size:11px;display:grid;gap:2px}.training-file-none{color:var(--muted)}.training-file-settlement{color:#5b6b73}
.training-file-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;align-items:center}.training-file-actions .secondary-button{padding:6px 11px;font-size:10px}
.training-file-attach{display:inline-flex;gap:6px;align-items:center;margin-right:auto;min-width:0;max-width:100%}.training-file-attach select{font-size:11px;min-width:0;max-width:240px;flex:1 1 auto}
.training-file-enrol{margin-top:2px}.training-file-enrol form>footer{padding:10px 0 0;display:flex;justify-content:flex-end}.training-enrol-packages{border:1px solid var(--line);border-radius:8px;padding:8px 10px;display:grid;gap:4px}.training-enrol-packages legend{font-size:11px;font-weight:800;color:var(--muted)}
@media(max-width:600px){.training-file-zone{padding:14px 14px 4px}.training-file-actions{justify-content:flex-start}.training-file-readings{grid-template-columns:1fr}.training-file-attach{margin-right:0;width:100%}.training-file-attach select{flex:1;max-width:none}}
/* (0.60.003) La liste de contrôle des prérequis sur la carte du dossier : l'état en pastille libellée (cinq états, jamais les couleurs du
   règlement), la preuve, les exigences bloquantes marquées, la phrase de ce qui empêche l'étape ; le dialogue du constat. */
.training-checklist{border:1px solid #e3e9ee;border-radius:8px;background:#fff}.training-checklist>summary{padding:8px 10px;display:flex;justify-content:space-between;gap:10px;cursor:pointer;font-size:11px;font-weight:800;color:var(--ink)}
.training-checklist>summary b{font-size:10px;padding:2px 8px;border-radius:999px}.training-checklist>summary b.is-complete{background:#e6f2ee;color:#1f5f4a}.training-checklist>summary b.is-blocked{background:#f7ebe4;color:#8a3f22}
.training-checklist ul{margin:0;padding:0 10px 8px;list-style:none;display:grid;gap:6px}.training-check{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:start;padding:6px 0;border-top:1px solid #eef2f4}
.training-check small{display:block;color:var(--muted);font-size:10px}.training-check b{font-size:12px}.training-check em{color:var(--muted);font-size:10px}.training-check .secondary-button{padding:5px 10px;font-size:10px}
.training-check-state{justify-self:start;padding:2px 8px;border-radius:999px;border:1px solid #d3d9dc;font-size:9px;font-weight:900;white-space:nowrap;color:#4b5b63;background:#f4f6f7}
.training-check-state.state-compliant{border-color:#9fc9b9;background:#e8f4ef;color:#1f5f4a}.training-check-state.state-to_verify{border-color:#c9c19f;background:#f6f3e6;color:#5f5320}.training-check-state.state-expired{border-color:#d9a99a;background:#f9ece7;color:#8a3f22}.training-check-state.state-absent{border-color:#d3b0b0;background:#fbf0f0;color:#7a2d2d}.training-check-state.state-not_applicable{border-style:dashed}
.training-check-warning{color:#8a5a00!important;font-weight:700}.training-checklist-notice{margin:0;padding:8px 10px;border-top:1px solid #f0e6cc;background:#fffaf0;color:#7a5200;font-size:11px;font-weight:700;border-radius:0 0 8px 8px} /* (0.60.014) l'avertissement avant la 3e séance */
.training-check.blocking b{color:#7a2d2d}.training-checklist-obstacle{margin:0;padding:8px 10px;border-top:1px solid #f0e2dc;background:#fdf6f3;color:#7a3a22;font-size:11px;font-weight:700;border-radius:0 0 8px 8px}
.training-check-dialog{width:min(480px,calc(100vw - 32px))}.training-check-dialog form>header,.training-check-dialog .form-grid,.training-check-dialog footer{padding:14px 18px}.training-check-dialog footer{display:flex;justify-content:flex-end;gap:8px}
@media(max-width:600px){.training-check{grid-template-columns:minmax(0,1fr)}.training-check .secondary-button{justify-self:start}}
.training-check-actions{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.training-check-actions .link-button{font-size:10px}
/* (0.60.004) La vérification d'une pièce : son état en pastille libellée. */
.document-verification{display:inline-block;margin-top:4px;padding:1px 8px;border-radius:999px;border:1px solid #d8c9a0;background:#f6f3e6;color:#5f5320;font-size:9px;font-weight:800}.document-verification.is-verified{border-color:#9fc9b9;background:#e8f4ef;color:#1f5f4a}.document-verification.is-rejected{border-color:#d9a99a;background:#f9ece7;color:#8a3f22}
/* (0.60.004) L'eLearning sur la carte du dossier ; la page des codes eLearning : le stock, les codes, leurs états en pastille libellée. */
.training-elearning{padding:8px 10px;border:1px solid #e3e9ee;border-radius:8px;background:#fff;display:grid;gap:4px}.training-elearning p{margin:0;display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:11px}.training-elearning p>span{color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}
.training-elearning small{color:var(--muted);font-size:10px}.training-elearning code{font-size:11px;color:var(--ink)}.training-elearning-status{padding:2px 8px;border-radius:999px;border:1px solid #b9c9da;background:#eef3f8;color:#2f4f6c;font-size:9px}.training-elearning-status.status-verified{border-color:#9fc9b9;background:#e8f4ef;color:#1f5f4a}.training-elearning-status.status-declared_done{border-color:#d8c9a0;background:#f6f3e6;color:#5f5320}
.training-elearning-actions{display:flex;gap:6px;flex-wrap:wrap}.training-elearning-actions .secondary-button{padding:5px 10px;font-size:10px}
.elearning-page .reservation-panel{margin-top:14px;padding-bottom:10px}.elearning-page .reservation-panel>header{padding:14px 16px 8px;display:flex;justify-content:space-between;align-items:flex-end;gap:10px}.elearning-page #elearning-stock,.elearning-page #elearning-codes{padding:0 16px;overflow-x:auto}.elearning-filters{display:flex;gap:10px;flex-wrap:wrap;padding:0 16px 10px}
.elearning-stock,.elearning-codes{width:100%;border-collapse:collapse;font-size:12px}.elearning-stock th,.elearning-codes th{padding:7px 9px;text-align:left;font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line)}
.elearning-stock td,.elearning-codes td{padding:7px 9px;border-bottom:1px solid #edf3f4;vertical-align:top}.elearning-stock td small,.elearning-codes td small{display:block;color:var(--muted);font-size:10px}.elearning-stock td.num{text-align:right;font-variant-numeric:tabular-nums}
.elearning-stock tr.is-low td{background:#fdf6f3}.elearning-stock tr.is-inactive{opacity:.55}.elearning-low{margin-left:6px;padding:1px 7px;border-radius:999px;background:#f7ebe4;color:#8a3f22;font-size:9px;font-style:normal;font-weight:800}
.elearning-status{padding:2px 8px;border-radius:999px;border:1px solid #d3d9dc;font-size:10px;font-weight:800;white-space:nowrap;background:#f4f6f7;color:#4b5b63}.elearning-status.status-available{border-color:#9fc9b9;background:#e8f4ef;color:#1f5f4a}.elearning-status.status-assigned,.elearning-status.status-sent{border-color:#9fbfdc;background:#e3eef8;color:#1f4f7a}.elearning-status.status-withdrawn{border-style:dashed}
.elearning-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.elearning-actions .secondary-button{padding:5px 9px;font-size:10px}.elearning-history{margin:0;padding:12px 20px;display:grid;gap:4px;font-size:12px}
.reservation-elearning{margin-top:10px}.reservation-elearning li{font-size:12px}
@media(max-width:700px){.elearning-codes thead{display:none}.elearning-codes tr{display:block;border-bottom:1px solid var(--line);padding:6px 0}.elearning-codes td{display:block;border:0;padding:3px 9px}.elearning-actions{justify-content:flex-start}.elearning-stock{font-size:11px}}
/* (0.60.005) Le Tableau Formation et le Dossier élève : la prochaine action en pastille, l'en-tête en grille, les onglets, l'historique. */
.training-board-page .reservation-panel,.training-file-page .reservation-panel{margin-top:14px;padding:14px 16px}.training-board-views{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.training-board-filters{padding:0 0 10px}#training-board{overflow-x:auto}.training-board td a{color:var(--ink)}.training-board td a:hover{color:var(--sea)}
.training-next-action{display:inline-block;padding:2px 9px;border-radius:999px;border:1px solid #d8c9a0;background:#f6f3e6;color:#5f5320;font-size:11px;font-weight:800;margin:0}.training-next-none{color:var(--muted);font-size:11px}
.training-file-card>header h4 a{color:inherit;text-decoration:none}.training-file-card>header h4 a:hover{color:var(--sea);text-decoration:underline}.training-file-card>header .training-next-action{margin-top:4px}
.training-file-page .heading-actions{display:flex;gap:8px;flex-wrap:wrap}.training-file-head-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.training-file-head-grid p{margin:0;display:grid;gap:3px}.training-file-head-grid span{color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.training-file-head-grid small{color:var(--muted);font-size:10px}.training-file-head-next{grid-column:1/-1}
.training-file-tabs{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:14px}.training-file-tabs button{padding:8px 14px;border:1px solid var(--line);border-radius:999px;background:#fff;font-weight:800;font-size:12px;cursor:pointer}.training-file-tabs button.is-active{background:#173f4d;border-color:#173f4d;color:#fff}.training-file-tabs-later{color:var(--muted);font-size:11px;margin-left:6px}
.training-tf-summary{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:20px}.training-tf-summary h3,.training-file-page [data-tf-panel] h3{margin:10px 0 6px;font:600 15px Georgia,serif;color:var(--ink)}
.training-tf-list{margin:0;padding:0;list-style:none;display:grid;gap:6px}.training-tf-list li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:start;padding:6px 0;border-top:1px solid #eef2f4}.training-tf-list li small{display:block;color:var(--muted);font-size:10px}.training-tf-list li.blocking b{color:#7a2d2d}
.training-history{margin:0;padding:0;list-style:none;display:grid;gap:8px}.training-history li{display:grid;grid-template-columns:130px minmax(0,1fr);gap:12px;padding:6px 0;border-top:1px solid #eef2f4}.training-history time{color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}.training-history small{display:block;color:var(--muted);font-size:10px}
@media(max-width:700px){.training-tf-summary{grid-template-columns:1fr}.training-history li{grid-template-columns:1fr}.training-tf-list li{grid-template-columns:minmax(0,1fr)}.training-check-state{justify-self:start}}
.training-board-page .sync small,.training-file-page .sync small{font-size:inherit;color:inherit}.elearning-filters label{display:grid;gap:4px;font-size:11px;font-weight:800;color:var(--muted)}.elearning-filters select,.elearning-filters input{min-width:130px}
.takeover-summary{display:flex;flex-wrap:wrap;gap:10px;padding:0 16px 12px}.takeover-count{display:grid;min-width:120px;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.takeover-count strong{font-size:22px}.takeover-count span{font-size:11px;font-weight:700;color:var(--muted)}.takeover-count.is-ok strong{color:#1f6b45}.takeover-count.is-warn strong{color:#9a5b00}.takeover-note{padding:0 16px 14px;margin:0;color:var(--muted);font-size:12px;max-width:80ch}.training-takeover-page #takeover-list{padding:0 16px;overflow-x:auto}.training-action{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:800;border:1px solid var(--line)}.training-action.is-ok{background:#e8f4ec;color:#1f6b45;border-color:#b9dcc6}.training-action.is-warn{background:#fdf1dc;color:#8a5200;border-color:#efd3a0}.training-action.is-muted{color:var(--muted)}.muted-line{display:block;color:var(--muted);font-size:11px}
/* (0.60.007) Les séances du Dossier élève : une carte par séance, l'état en pastille libellée (prévue, sous réserve, annulée, déplacée), jamais les couleurs du paiement. */
.tf-sessions-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:0 0 8px}.tf-sessions-head h3{margin:0}
.tf-sessions{list-style:none;margin:0;padding:0;display:grid;gap:10px}.tf-session{border:1px solid var(--line);border-left:4px solid #2f6f9f;border-radius:9px;padding:10px 12px;background:#fbfcfe;display:grid;gap:4px}
.tf-session header{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.tf-session p{margin:0;font-size:12px}.tf-session p>span{color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;margin-right:4px}
.tf-session footer{display:flex;justify-content:flex-end}.tf-session-state{padding:2px 9px;border-radius:999px;border:1px solid #9fbfdc;background:#e3eef8;color:#1f4f7a;font-size:10px;font-weight:800;white-space:normal;text-align:right}
.tf-session.is-reserved{border-left-color:#b08a2c}.tf-session.is-reserved .tf-session-state{background:#f6f3e6;border-color:#d8c9a0;color:#5f5320}
.tf-session.is-cancelled,.tf-session.is-moved{border-left-color:#9aa6ad;background:#f7f8f9}.tf-session.is-cancelled .tf-session-state,.tf-session.is-moved .tf-session-state{background:#f1f3f4;border-color:#d3d9dc;color:#4b5b63}
.tf-session-dialog .form-grid{padding:14px 18px}.tf-session-dialog form>header,.tf-session-dialog footer{padding:14px 18px}.tf-session-dialog footer{display:flex;justify-content:flex-end}.tf-session-targets{border:1px solid var(--line);border-radius:8px;padding:8px 10px}.tf-session-targets .checkbox-line{display:flex;gap:6px;align-items:center;font-size:12px}
/* (0.60.009) « Mon groupe du jour » : une carte par élève, ses points à reprendre, sa présence, ses compétences du jour — un formulaire chacun. */
.ts-collective{display:flex;gap:10px;align-items:center;margin-bottom:10px}.ts-collective small{color:var(--muted);font-size:11px}
.ts-student{border:1px solid var(--line);border-left:4px solid #2f6f9f;border-radius:9px;padding:10px 12px;margin-bottom:12px;background:#fbfcfe;display:grid;gap:6px}
.ts-student header{display:flex;justify-content:space-between;gap:10px}.ts-student h3{margin:0;font:600 16px Georgia,serif}.ts-student p{margin:0;font-size:12px}.ts-student p>span,.ts-rework>span{color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;margin-right:4px}
.ts-rework ul{margin:2px 0 0;padding-left:18px;font-size:12px}.ts-presence{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.ts-assess{overflow-x:auto}.ts-assess tr.is-targeted td:first-child{font-weight:700}.ts-assess select,.ts-assess input{font-size:12px;max-width:100%}
.ts-assess footer{display:flex;justify-content:flex-end;padding-top:6px}.ts-reason{display:grid;gap:3px;font-size:11px;color:var(--muted);margin-top:6px}.participant-training-objective{display:block;font-size:11px;color:#3f3566}

/* (0.60.010) La Progression du Dossier élève : cinq blocs séparés et libellés, les étapes, les reprises. */
.tf-progress{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.tf-progress-block{border:1px solid var(--line);border-radius:9px;padding:10px 12px;background:#fbfcfe}.tf-progress-block h3{margin:0 0 6px;font-size:14px}.tf-progress-block ul{margin:0;padding-left:18px;font-size:12px}
.tf-stages{margin:0 0 8px;padding-left:18px;font-size:12px;display:grid;gap:4px}.tf-stages li.is-current>b{color:#1f4f7a}.tf-stages li.is-passed{color:var(--muted)}.tf-reprises{grid-column:1/-1}.tf-reprise-actions{display:flex;flex-wrap:wrap;gap:8px}.tf-reprise-preview h4{margin:8px 0 2px;font-size:12px}.tf-reprise-preview ul{margin:0;padding-left:18px;font-size:12px}
/* (0.60.011) LA CERTIFICATION d'un dossier : les trois questions, la démarche, le portail ; la raison dans la vue « À certifier » ; la délivrance sur la fiche client. */
.tf-cert-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}.tf-cert-missing,.tf-cert-who,.tf-cert-pieces{margin:0;padding-left:18px;font-size:12px;display:grid;gap:4px}.tf-cert-missing li{color:#9a3412}.tf-cert-ok{margin:0;color:#166534;font-weight:700;font-size:13px}
.tf-cert-who{list-style:none;padding:0}.tf-cert-who li{display:grid;gap:1px}.tf-cert-who li.is-ok b::before{content:"✓ ";color:#166534}.tf-cert-who li.is-ko{color:var(--muted)}.tf-cert-who small{color:var(--muted);font-size:11px}
.tf-cert-disabled{display:grid;gap:4px;margin:8px 0 0}.tf-cert-disabled small{color:#9a3412;font-size:11px}.tf-cert-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.tf-cert-steps li{grid-template-columns:110px minmax(0,1fr)}
.tf-cert-status{display:inline-block;padding:2px 8px;border-radius:999px;background:#eef6f7;color:var(--ink);font-size:12px}.tf-cert-status.status-ready{background:#fff4e5;color:#8a4b00}.tf-cert-status.status-confirmed{background:#dcfce7;color:#166534}.tf-cert-status.status-complement_requested{background:#fee2e2;color:#991b1b}
.tf-cert-portal{margin-top:14px;border:1px solid var(--line);border-radius:9px;padding:10px 12px}.tf-cert-portal header{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.tf-cert-portal header div{display:flex;gap:6px;flex-wrap:wrap}.tf-cert-portal h3{margin:0}.tf-cert-portal h4{margin:10px 0 4px;font-size:13px}
.tf-cert-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:6px 14px;margin:10px 0 0}.tf-cert-fields div{display:grid;gap:2px}.tf-cert-fields dt{font-size:10px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.tf-cert-fields dd{margin:0}.tf-cert-copy{user-select:all;font-size:13px;background:#f4f7f9;padding:2px 6px;border-radius:4px;overflow-wrap:anywhere}.tf-cert-fields .is-missing em{color:#9a3412;font-size:12px}
.tf-cert-previous{margin-top:10px;font-size:12px}.tf-cert-pdf{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px}.tf-cert-pdf small{color:var(--muted)}.training-to-certify{display:block;color:#8a4b00;font-size:11px;margin-top:2px}.training-certified{margin:2px 0 0;color:#166534;font-size:12px;font-weight:700}
@media(max-width:700px){.tf-cert-steps li{grid-template-columns:1fr}}
.tf-cert-decision{display:flex;gap:18px;flex-wrap:wrap;align-items:center;border:1px solid var(--line);border-radius:8px;padding:8px 12px}.tf-cert-decision legend{font-size:12px;font-weight:800;color:var(--muted)}.tf-cert-decision label{display:inline-flex;align-items:center;gap:6px;font-weight:700;margin:0}.tf-cert-decision input{width:auto;margin:0}
#tf-cert-form label.checkbox-line{display:flex;flex-direction:row;align-items:center;gap:8px;font-weight:700}#tf-cert-form label.checkbox-line input{width:auto;margin:0;flex:none}
.tf-cert-elearning{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap;margin:10px 0 0}.tf-cert-elearning label{display:grid;gap:3px;font-size:11px;font-weight:800;color:var(--muted)}.tf-cert-elearning input{min-width:200px}
.tf-correspondance-basis{margin:6px 0;padding:6px 10px;border-radius:7px;background:#eef6f7;font-size:12px;font-weight:700}.tf-correspondance-basis.is-equivalent{background:#dcfce7;color:#166534}.tf-correspondance-basis.is-partial{background:#fff4e5;color:#8a4b00}.tf-correspondance-basis.is-label{background:#f4f4f5;color:#52525b}.tf-examiner{list-style:none;padding:0;margin:0;display:grid;gap:4px}.tf-examiner label{display:flex;align-items:center;gap:8px;font-weight:600}.tf-examiner input{width:auto;margin:0}
.enrol-sale-results{display:flex;flex-direction:column;gap:4px}.enrol-sale-results button{text-align:left}.enrol-sale-chosen{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0}
/* (petites suites 6) LE GAZ : « AIR » au style des badges ; le bouton de bascule montre l'autre gaz, lisible malgré la carte compacte */
.participant-card .participant-actions>button.gas-toggle{width:auto;min-width:28px;padding:0 4px}
.gas-toggle .gas-badge{display:inline-block;padding:3px 5px;border-radius:5px;color:#42646b;background:#e6f0f1;font:800 9px/1 system-ui,-apple-system,"Segoe UI",sans-serif;font-style:normal;letter-spacing:.02em}
/* (correctif gilet et Nitrox, § 4 — Direction, 04/10) « Nx » : fond VERT plein, texte blanc (contraste 5:1), UNE règle pour la carte de l'inscrit, le bouton de bascule, la fiche de sortie, la fiche de sécurité et son impression ; aucune autre couleur du Nitrox ailleurs */
.gas-badge.gas-nitrox,.participant-badges i.gas-nitrox,.gas-toggle .gas-badge.gas-nitrox{color:#fff;background:#15803d;border:1px solid #166534;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.safety-sheet .gas-badge{font-style:normal;font-weight:800}.safety-sheet .gas-badge.gas-nitrox{padding:1px 4px;border-radius:4px;-webkit-print-color-adjust:exact;print-color-adjust:exact}
/* (carte de certification avant la sortie) la preuve sous le niveau, le check dive : visibles à l’écran et à l’impression */
.safety-proof{display:block;font-size:9px;line-height:1.3;font-weight:600}.safety-proof-verified{color:#1d6b3a}.safety-proof-received{color:#7a4b00}.safety-proof-missing{color:#b42318;font-weight:800;text-transform:none}.safety-row-check-dive td{background:#fff4f2}.safety-check-dive,.safety-check-dive-warning{color:#b42318}@media print{.safety-proof-missing,.safety-check-dive,.safety-check-dive-warning{color:#000!important;font-weight:800}.safety-row-check-dive td{background:none!important}}
/* (carte de certification avant la sortie) la preuve de certification sur la fiche du client : son état, l’historique, les deux gestes du bureau */
.client-certification-proof{display:grid;gap:8px;margin:10px 0 14px;padding:12px 14px;border:1px solid #d7e3e7;border-radius:10px;background:#f8fbfc}.certification-proof-head{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.client-certification-proof .status-pill.ok{color:#1d6b3a;background:#e4f4e9}.client-certification-proof .status-pill.warning{color:#7a4b00;background:#fff1d6}.client-certification-proof .status-pill.blocked{color:#a33f35;background:#fde7e3}.certification-proof-history{display:grid;gap:6px;margin:0;padding:0;list-style:none}.certification-proof-history li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;align-items:center;padding:8px 10px;border-radius:8px;background:#fff;border:1px solid #e3ecef}.certification-proof-history li span:first-child{display:grid;gap:2px}.certification-proof-history small{color:#5b6f76}.certification-proof-history li.is-rejected{border-color:#efb9b2}.certification-proof-history li.is-verified{border-color:#b7dfc4}.certification-proof-actions{display:flex;gap:6px}.certification-proof-actions .proof-refuse{color:#a33f35}
