/* Habillage commun ; couleurs de la signature et du client dans les variables posées par la page (style à nonce). */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;min-height:100vh;display:flex;flex-direction:column;background:var(--fond);color:var(--encre);font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
a{color:inherit;text-underline-offset:3px}
h1{font-size:1.6rem;line-height:1.2;margin:0 0 .4rem}
h2{font-size:1rem;margin:0}
.doux{color:var(--doux)}

/* Barre du haut : client à gauche, compte à droite */
.barre{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.75rem 1rem;background:var(--surface);border-bottom:1px solid var(--trait)}
.marque{display:flex;align-items:center;gap:.6rem;text-decoration:none;font-size:1.05rem}
.barre nav{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.barre nav form{margin:0}
.pastille{display:inline-grid;place-items:center;width:2.2rem;height:2.2rem;border-radius:50%;background:var(--accent);color:var(--accent-texte);font-weight:700;flex:none}
.choix{position:relative}
.choix summary{cursor:pointer;list-style:none;text-decoration:underline;text-underline-offset:3px}
.choix summary::-webkit-details-marker{display:none}
.choix ul{position:absolute;right:0;z-index:2;min-width:16rem;margin:.4rem 0 0;padding:.4rem 0;list-style:none;background:var(--surface);border:1px solid var(--trait);border-radius:10px;box-shadow:0 8px 24px rgb(0 0 0/.08)}
.choix li a{display:block;padding:.45rem 1rem;text-decoration:none}
.choix li a:hover,.choix li a[aria-current]{background:var(--clair)}

.contenu{flex:1;width:100%;max-width:72rem;margin:0 auto;padding:1.5rem 1rem 3rem}
.pied{padding:1rem;text-align:center;font-size:.85rem;color:var(--doux)}

/* Boutons et formulaires */
button,.bouton{display:inline-block;font:inherit;font-weight:600;padding:.7rem 1.2rem;border:0;border-radius:10px;background:var(--accent);color:var(--accent-texte);cursor:pointer;text-decoration:none;text-align:center}
button:hover,.bouton:hover{filter:brightness(.93)}
button:focus-visible,.bouton:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
button.lien{padding:0;background:none;color:inherit;font-weight:400;text-decoration:underline;text-underline-offset:3px}
.formulaire{display:grid;gap:.6rem;margin-top:1rem}
.formulaire label{font-weight:600}
.formulaire input{font:inherit;padding:.7rem .8rem;border:1px solid var(--trait);border-radius:10px;background:#fff;color:#111;width:100%}
.aide{margin:0;font-size:.9rem;color:var(--doux)}
.info{padding:.8rem 1rem;border-radius:10px;background:var(--clair)}
.erreur{padding:.8rem 1rem;border-radius:10px;background:#fdecea;color:#7a1d12}
.secret code{display:block;padding:.8rem;border-radius:10px;background:var(--clair);font-size:1.15rem;letter-spacing:.06em;word-break:break-all}

/* Connexion */
.page-connexion .contenu{display:grid;place-items:center}
.carte-connexion{width:100%;max-width:26rem;padding:2rem 1.5rem;background:var(--surface);border:1px solid var(--trait);border-radius:16px}
.accueil-client{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem}
.accueil-client span{display:block;color:var(--doux);font-size:.9rem}

/* Tableau de bord : tout sur un écran */
.tete-site{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.25rem}
.ouvrir{font-size:.95rem}
.grille{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(16.5rem,1fr))}
.carte{display:flex;flex-direction:column;gap:.35rem;padding:1.1rem 1.2rem;background:var(--surface);border:1px solid var(--trait);border-radius:14px;border-top:4px solid var(--accent)}
.carte header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.25rem}
.carte.large{margin-bottom:1rem}
.chiffre{margin:0;font-size:1.9rem;font-weight:700;line-height:1.1}
.legende,.ligne{margin:0}
.legende{color:var(--doux)}
.ligne{font-size:.95rem}
.badge{font-size:.75rem;font-weight:600;padding:.15rem .55rem;border-radius:99px;background:var(--clair);color:var(--doux);white-space:nowrap}
.etat-alerte{border-top-color:#c0392b}
.etat-alerte .badge{background:#fdecea;color:#7a1d12}
.etat-a_brancher,.etat-bientot{border-top-color:var(--trait)}
.etat-bientot{opacity:.8}
.liste{list-style:none;margin:.35rem 0 0;padding:0;font-size:.92rem}
.liste li{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.35rem 0;border-top:1px solid var(--trait)}
.liste li span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.liste li .doux{flex:none}
.liste form{margin:0}
.sessions li{flex-wrap:wrap}
.sessions li span:first-child{white-space:normal}

@media (max-width:30rem){
  .contenu{padding:1rem 1rem 2rem}
  .carte-connexion{padding:1.5rem 1rem}
}
