/* Compléments de l'interface raccordée. L'identité (couleurs, typographie, grille, composants) vient de v11.css,
   extraite sans modification de la maquette V11 de référence. Aucun style en ligne (CSP style-src 'self'). */
.connexion{min-height:100vh;display:grid;place-items:center;padding:24px 16px;background:var(--paper)}
.connexion .carte{width:100%;max-width:420px;background:white;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.connexion .entete{background:var(--navy);padding:28px 30px}
.connexion .corps{padding:26px 30px 30px}
.connexion .brand{display:block}
.soustitre-connexion{margin-bottom:20px}
.filtres{margin-bottom:6px}
.filtres summary{cursor:pointer;font-size:12px;font-weight:600;color:#9b8049;margin-bottom:12px}
.filtres summary span{font-weight:500;color:var(--muted)}
.connexion label{display:block;font-size:11px;color:var(--muted);margin-bottom:14px}
.connexion input{width:100%;margin-top:6px;padding:11px 12px;border-radius:7px;border:1px solid #dfe2e2;background:white;color:var(--ink)}
.connexion .btn{width:100%;margin-top:6px}
.connexion .pied{font-size:11px;color:var(--muted);margin-top:18px;line-height:1.5}
.message{font-size:12px;padding:12px 14px;border-radius:8px;margin-bottom:16px}
.message.info{background:#edf1f9;color:#46638a}
.message.erreur{background:#f9ece8;color:#9a4f40}
.message.attention{background:#fbf2df;color:#86692a}
.profile .qui{display:flex;flex-direction:column;line-height:1.2}
.profile .qui b{font-weight:600;font-size:13px}
.profile .btn{padding:7px 11px;font-size:12px}
.filtergrid input{width:100%;padding:9px;border:1px solid var(--line);border-radius:7px;background:white;color:var(--ink)}
.filtergrid select,.filtergrid input{margin-top:5px}
.triline{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-bottom:18px}
.triline label{font-size:11px;color:var(--muted)}
.triline select{display:block;margin-top:5px;padding:9px;border:1px solid var(--line);border-radius:7px;background:white}
.triline .grow{flex:1}
.etat{padding:42px 24px;text-align:center;color:var(--muted)}
.etat b{display:block;color:var(--ink);font-size:15px;margin-bottom:6px}
.etat .btn{margin-top:14px}
.chargement{display:inline-block;width:14px;height:14px;border:2px solid #d9d4c6;border-top-color:var(--gold);border-radius:50%;animation:tour .8s linear infinite;vertical-align:-2px;margin-right:8px}
@keyframes tour{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.chargement{animation:none}}
.panelhead .compteur{font-size:12px;color:var(--muted)}
.pagination{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:16px 22px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
.pagination .btn{padding:8px 14px}
.indispo{display:inline-block;border-radius:5px;padding:4px 8px;font-size:10px;font-weight:550;background:#f4f1ea;color:#8a7650;border:1px dashed #d9cba6;white-space:nowrap}
.motifs{display:block;color:#56759b;font-size:11px;margin-top:3px}
.indisponibles{margin:18px 0 0}
.indisponibles summary{cursor:pointer;font-weight:600}
.indisponibles ul{margin:10px 0 0;padding-left:18px}
.bandeau-maquette{border:1px dashed #d9cba6;background:#fbf8ef;color:#86692a;border-radius:9px;padding:16px 18px;font-size:12px;margin-bottom:22px}
.nav button .tag{margin-left:auto;font-size:9px;letter-spacing:.5px;text-transform:uppercase;color:#aab2c1;border:1px solid #ffffff22;border-radius:4px;padding:1px 5px}
.nav button.active .tag{color:#e5c786}
.seul-mobile{display:none}
.seul-mobile .indispo{margin-right:4px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.saloncell .nom{font-weight:600;font-size:13px}
td .ligne2{display:block;color:var(--muted);font-size:11px;margin-top:3px}
a.back{display:inline-block;text-decoration:none}
a.lien-fiche{color:var(--ink);text-decoration:none;display:block}
a.lien-fiche:hover,a.lien-fiche:focus-visible{text-decoration:underline;color:var(--navy)}
.field .indispo{font-size:10px}
.inconnu{color:var(--muted);font-style:italic}
.non-raccorde{font-size:12px;color:#86692a;background:#fbf8ef;border:1px dashed #d9cba6;border-radius:8px;padding:12px 14px;margin:0}
.tag-onglet{display:inline-block;margin-left:6px;font-size:9px;letter-spacing:.4px;text-transform:uppercase;color:#a08a5a;border:1px dashed #d9cba6;border-radius:4px;padding:0 4px;vertical-align:1px}
.chip.lecture-seule{background:#edf1f9;color:#56759b}
.ligne-meta{font-size:11px;color:var(--muted)}
#fiche .grid{margin-top:4px}
#fiche .panel{margin-bottom:22px}
a.btn{text-decoration:none;color:inherit}
/* Consultation (R03 à R05) */
.etat-section,.vide-section{font-size:12px;color:var(--muted);margin:0}
.erreur-section{color:#9a4f40}
.erreur-section .btn{margin-left:8px;padding:6px 10px}
.contact .grow{flex:1;min-width:0}
.contact h3{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 4px}
.contact .tel{unicode-bidi:isolate}
.etiquette{color:var(--muted);font-size:11px}
.contenu{white-space:pre-wrap;overflow-wrap:anywhere}
.provenance{overflow-wrap:anywhere}
.lien-correction{font-size:11px;color:#56759b;margin:4px 0 0}
.ligne-inactive{opacity:.72}
.ligne-inactive h3,.ligne-inactive .contenu{text-decoration:line-through;text-decoration-color:#c9a59c}
.timelineitem details{margin-top:8px;font-size:12px}
.timelineitem details summary{cursor:pointer;color:#9b8049;font-weight:600}
/* Ma journée (R25) */
.groupe-journee{margin-bottom:10px}
.groupe-journee .agenda-date{display:flex;gap:8px;align-items:center;border-radius:6px}
.journee-item{border-top:1px solid var(--line);padding-top:10px}
.journee-item:first-of-type{border-top:0}
.salon-journee{margin:6px 0 0;font-size:13px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.journee-item .action-item{border-top:0;padding-top:4px}
/* Actions (R24) */
.action-item{padding:14px 0;border-top:1px solid var(--line);font-size:12px}
.action-item:first-of-type{border-top:0}
.action-item h3{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 6px;font-size:14px}
.action-item p{margin:4px 0}
.resume-actions{margin:0 0 6px}
.note-actions{margin-top:12px}
#section-actions-apercu .btn{margin-top:12px}
ul.affectations{list-style:none;padding:0;margin:12px 0 16px}
ul.affectations li{padding:10px 0;border-top:1px solid var(--line);font-size:12px;line-height:1.7}
ul.affectations li .chip{margin-right:6px}
ul.affectations .ligne-meta{display:block}
.pagination-section{padding:16px 0 0;border-top:1px solid var(--line);margin-top:8px}
#section-apercu .btn{margin-top:12px}
/* Saisie d'un échange (R11) : boîte de dialogue V11 (dialog, modalhead, formgrid, modalfoot) */
#dialogue-echange{max-width:720px;max-height:92dvh;overflow:auto}
#dialogue-echange .formgrid small{display:block;margin-top:4px}
#dialogue-echange [aria-invalid="true"]{border-color:#c47a6a;background:#fdf6f4}
#dialogue-echange .indisponibles{margin-top:18px}
#dialogue-echange .indisponibles li{margin:4px 0}
#dialogue-echange .modalhead button{font-size:16px;padding:4px 8px}
#dialogue-echange option:disabled{color:#9aa1ab}
#confirmation-echange .message{margin:0 0 18px}
#dialogue-echange [hidden]{display:none!important}
#dialogue-echange .modalfoot{flex-wrap:wrap}
.champs-echange{border:0;padding:0;margin:0;min-width:0}
.champs-echange:disabled{opacity:.75}
#tentative-echange .message{margin-bottom:14px}
/* Vérifications de qualification (R26-R28) : même boîte de dialogue V11 */
#dialogue-qualif{max-width:760px;max-height:92dvh;overflow:auto}
#dialogue-qualif [aria-invalid="true"]{border-color:#c47a6a;background:#fdf6f4}
#dialogue-qualif .modalhead button{font-size:16px;padding:4px 8px}
#dialogue-qualif [hidden]{display:none!important}
#dialogue-qualif .modalfoot{flex-wrap:wrap}
#champs-qualif{border:0;padding:0;margin:0;min-width:0}
#champs-qualif:disabled{opacity:.75}
.bloc-critere{border:1px solid var(--line);border-radius:8px;padding:10px 14px;margin:0 0 12px;min-width:0}
.bloc-critere legend{font-weight:600;padding:0 6px}
#dialogue-qualif label.case{display:flex;gap:8px;align-items:center;margin:12px 0}
#tentative-qualif .message{margin-bottom:14px}
ul.criteres-qualif{padding-left:18px;margin:8px 0}
ul.criteres-qualif li{margin:6px 0}
ul.criteres-qualif .ligne-meta,ol.historique-qualif .ligne-meta{display:block}
ol.historique-qualif{padding-left:18px}
ol.historique-qualif li{margin:8px 0}
ol.historique-qualif .btn{margin-top:4px}
@media(max-width:760px){
  #dialogue-qualif{width:100%;max-width:100%;max-height:100dvh;margin:0;border-radius:0;height:100dvh}
  #dialogue-qualif .modalfoot{position:sticky;bottom:0;background:white;padding:12px 0 4px}
  #dialogue-echange{width:100%;max-width:100%;max-height:100dvh;margin:0;border-radius:0;height:100dvh}
  #dialogue-echange .modalfoot{position:sticky;bottom:0;background:white;padding:12px 0 4px}
  #dialogue-echange .modalfoot .btn{flex:1}
  .profile .qui small{display:none}
  .pagination{padding:14px 16px;flex-wrap:wrap}
  .triline select{min-width:120px}
  .demo{display:none}
  .saloncell .round{display:none}
  .seul-mobile{display:block;margin-top:6px;font-size:10px;color:var(--muted)}
}
/* Créer un salon (R30, R29, R08 ; lot 4) : même boîte de dialogue V11 */
.actions-creation{display:flex;justify-content:flex-end;margin:-12px 0 18px}
#confirmation-creation .message{margin:0 0 18px}
#dialogue-creation{max-width:760px;max-height:92dvh;overflow:auto}
#dialogue-creation [hidden]{display:none!important}
#dialogue-creation [aria-invalid="true"]{border-color:#c47a6a;background:#fdf6f4}
#dialogue-creation .modalhead button{font-size:16px;padding:4px 8px}
#dialogue-creation .modalfoot{flex-wrap:wrap}
#dialogue-creation option:disabled{color:#9aa1ab}
#dialogue-creation label.case{display:flex;gap:8px;align-items:center;margin:8px 0;font-size:12px;color:var(--ink)}
#dialogue-creation .question-compte{border:1px solid var(--line);border-radius:8px;padding:10px 14px;margin:0 0 16px}
#dialogue-creation .question-compte legend{font-size:12px;font-weight:600;padding:0 4px}
#dialogue-creation .candidats-creation{margin-top:20px;border-top:1px solid var(--line);padding-top:16px}
#dialogue-creation .liste-candidats{list-style:none;padding:0;margin:8px 0}
#dialogue-creation .candidat{padding:10px 0;border-bottom:1px solid var(--line);font-size:12px}
#dialogue-creation .candidat .ligne-meta,#dialogue-creation .candidat .criteres{display:block;margin-top:4px}
#dialogue-creation textarea{width:100%;margin-top:6px;padding:10px;border-radius:6px;border:1px solid #dfe2e2}
#tentative-creation .message{margin-bottom:14px}
@media(max-width:760px){
  #dialogue-creation{width:100%;max-width:100%;max-height:100dvh;margin:0;border-radius:0;height:100dvh}
  #dialogue-creation .modalfoot{position:sticky;bottom:0;background:white;padding:12px 0 4px}
  .actions-creation{justify-content:stretch;margin-top:0}.actions-creation .btn{flex:1}
}
/* Première attribution (R32, R31 ; lot 4) : même boîte de dialogue V11 */
#dialogue-attribution{max-width:620px;max-height:92dvh;overflow:auto}
#dialogue-attribution [hidden]{display:none!important}
#dialogue-attribution [aria-invalid="true"]{border-color:#c47a6a;background:#fdf6f4}
#dialogue-attribution .modalhead button{font-size:16px;padding:4px 8px}
#dialogue-attribution .modalfoot{flex-wrap:wrap}
#dialogue-attribution label.case{display:flex;gap:8px;align-items:center;margin:8px 0;font-size:12px;color:var(--ink)}
#tentative-attribution .message,#confirmation-attribution .message{margin-bottom:14px}
@media(max-width:760px){
  #dialogue-attribution{width:100%;max-width:100%;max-height:100dvh;margin:0;border-radius:0;height:100dvh}
  #dialogue-attribution .modalfoot{position:sticky;bottom:0;background:white;padding:12px 0 4px}
}
/* Contacts en écriture (R33, R34, R35 ; lot 4) : même boîte de dialogue V11 */
.dialogue-contact{max-width:720px;max-height:92dvh;overflow:auto}
.dialogue-contact [hidden]{display:none!important}
.dialogue-contact [aria-invalid="true"]{border-color:#c47a6a;background:#fdf6f4}
.dialogue-contact .modalhead button{font-size:16px;padding:4px 8px}
.dialogue-contact .modalfoot{flex-wrap:wrap}
.dialogue-contact label.case{display:flex;gap:8px;align-items:center;margin:8px 0;font-size:12px;color:var(--ink)}
.dialogue-contact .tentative .message,.dialogue-contact .erreur .message{margin-bottom:14px}
.barre-contacts{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px}
#avis-contacts .message{margin-bottom:12px}
#avis-contacts ul{margin:6px 0 0 18px}
.contact .actions-contact{align-self:flex-start}
@media(max-width:760px){
  .dialogue-contact{width:100%;max-width:100%;max-height:100dvh;margin:0;border-radius:0;height:100dvh}
  .dialogue-contact .modalfoot{position:sticky;bottom:0;background:white;padding:12px 0 4px}
  .contact .actions-contact{width:100%}
}
/* Historique restreint des coordonnées (R36) */
table.historique{width:100%;border-collapse:collapse;font-size:12px}
table.historique th,table.historique td{border-bottom:1px solid var(--line,#e5e2dc);padding:6px 8px;text-align:left;vertical-align:top}
.contact .actions-contact{display:flex;gap:6px;flex-wrap:wrap}
@media(max-width:760px){table.historique{display:block;overflow-x:auto}}
/* Socle Formation F-1 / F-2 (docs/36) : blocs typés des contenus internes, rendu échappé par le module ; le module n'apporte
   aucun style. Codes du kit : bleu = phrase dite au professionnel, rouge = interdit ou obligation, ambre = en attente de
   décision, bleu nuit = règle officielle. */
.fc-confidentiel{display:inline-block;font-size:11px;font-weight:600;color:var(--red);border:1px solid #e7c7c1;background:#fbf1ef;border-radius:999px;padding:3px 10px;margin-bottom:12px}
.fc-version{font-size:11px;color:var(--muted)}
.fc-bloc{margin:0 0 12px;line-height:1.55;font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere}
.fc-bloc.fc-phrase_dite{border-left:4px solid #3c6fb4;background:#eef3fa;color:#1f3f6b;padding:10px 12px;border-radius:0 8px 8px 0}
.fc-bloc.fc-interdit{border-left:4px solid var(--red);background:#fbf1ef;color:#7a2f22;padding:10px 12px;border-radius:0 8px 8px 0}
.fc-bloc.fc-en_attente{border-left:4px solid #c99a2e;background:#fbf6e9;color:#7a5a12;padding:10px 12px;border-radius:0 8px 8px 0}
.fc-bloc.fc-regle{background:var(--navy);color:white;padding:10px 12px;border-radius:8px}
.fc-bloc.fc-regle b,.fc-bloc.fc-regle strong{color:var(--gold)}
.fc-bloc.fc-titre{font-weight:700;font-size:15px;color:var(--ink)}
.fc-bloc ul,.fc-bloc ol{margin:0;padding-left:20px}
.fc-bloc table{border-collapse:collapse;width:100%}.fc-bloc td{border:1px solid var(--line);padding:6px 8px;vertical-align:top}
.fc-champ{background:#fff6d6;border-bottom:2px solid var(--gold);padding:0 3px;border-radius:3px}
.fc-rtl{direction:rtl;text-align:right;unicode-bidi:plaintext}
.fc-copier{min-height:44px}
.fc-lien-retire{color:var(--muted);text-decoration:line-through;cursor:default}
@media (max-width:720px){
  .fc-copier-fixe{position:sticky;bottom:0;z-index:5;background:var(--paper);padding:10px 0;margin:0}
  .fc-copier-fixe .fc-copier{width:100%}
  .fc-bloc table{display:block;overflow-x:auto}
}

/* Socle FIN-S1 (docs/41) : espace composé « Abonnements et paiements » — un bloc par module, empilés, jamais imbriqués. */
.espace-blocs{display:grid;gap:18px}
.bloc-module{min-width:0}

/* ARB8-L2 (agent 1, 27/10/2026) : gabarit commun des documents imprimables (devis, relevé, reçu). Un module pose
   <section class="document-imprimable"> dans son bloc, ajoute la classe impression-en-cours au corps, puis window.print().
   À l'écran, le conteneur reste caché ; à l'impression, seul lui est imprimé. */
.document-imprimable{display:none}
.document-imprimable .doc-entete{display:flex;justify-content:space-between;border-bottom:2px solid #5b2a86;padding-bottom:6px;margin-bottom:12px}
.document-imprimable .doc-marque{font-weight:700;color:#5b2a86}
.document-imprimable h1{font-size:18px;margin:0 0 4px}
.document-imprimable table{width:100%;border-collapse:collapse;margin:8px 0}
.document-imprimable th,.document-imprimable td{border:1px solid #999;padding:4px 6px;text-align:left;font-size:11px}
.document-imprimable .doc-mention{margin-top:16px;font-size:10px;font-style:italic;border-top:1px solid #999;padding-top:6px}
@media print{
  body.impression-en-cours *{visibility:hidden}
  body.impression-en-cours .document-imprimable,body.impression-en-cours .document-imprimable *{visibility:visible}
  body.impression-en-cours .document-imprimable{display:block;position:absolute;left:0;top:0;width:100%;color:#000;background:#fff}
}
