/* ConsultPro — styles généraux (charte alignée sur Carelia Dental) */
:root {
  --fond:#eef3f8; --surface:#fff; --texte:#1d2733; --discret:#55606d; --bleu:#1e3a6b; --cyan:#00a8d6;
  --trait:#c9d3de; --vert:#2e9e6b; --orange:#e07b39; --rouge:#c8423b; --rayon:12px;
  color-scheme: light;
}
* { box-sizing:border-box; }
body { margin:0; background:var(--fond); color:var(--texte); font:15px/1.5 "Segoe UI",system-ui,-apple-system,sans-serif; }
h1 { font-size:24px; color:var(--bleu); margin:4px 0 12px; }
h2 { font-size:17px; color:var(--bleu); margin:0 0 10px; }
h3 { font-size:14px; text-transform:uppercase; letter-spacing:.05em; color:var(--discret); margin:16px 0 6px; }
a { color:var(--bleu); }
.chargement { text-align:center; margin-top:20vh; color:var(--discret); }
.discret { color:var(--discret); font-size:13px; }

/* Cadre */
.barre { display:flex; align-items:center; gap:20px; padding:10px 24px; background:var(--surface); border-bottom:1px solid var(--trait); position:sticky; top:0; z-index:5; flex-wrap:wrap; }
.logo { font-size:22px; font-weight:800; color:var(--bleu); text-decoration:none; letter-spacing:-.5px; }
.logo span { color:var(--cyan); }
.nav { display:flex; gap:4px; flex:1; }
.nav__lien { padding:6px 12px; border-radius:8px; text-decoration:none; color:var(--discret); font-weight:600; }
.nav__lien--actif { background:#e3f4fb; color:var(--bleu); }
.barre__utilisateur { font-size:13px; color:var(--discret); display:flex; align-items:center; gap:8px; }
.notif { background:#fdecea; color:var(--rouge); border-radius:999px; padding:4px 12px; font-size:13px; font-weight:600; text-decoration:none; }
.contenu { padding:24px; }
.pied { text-align:center; color:var(--discret); font-size:12px; padding:16px 24px 32px; }
.page { max-width:1180px; margin:0 auto; }
.page--etroite { max-width:820px; }
.page__entete { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:12px; }
.lien-retour { font-size:16px; font-weight:600; text-decoration:none; color:var(--bleu); display:inline-block; padding:4px 0; }
.lien-retour:hover { text-decoration:underline; }

/* Composants */
.carte { background:var(--surface); border:1px solid var(--trait); border-radius:var(--rayon); padding:18px 20px; margin-bottom:16px; }
.carte--accent { border-left:4px solid var(--cyan); }
.grille-2 { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.btn { background:var(--cyan); color:#fff; border:0; border-radius:8px; padding:9px 16px; font:inherit; font-weight:600; cursor:pointer; }
.btn:hover { filter:brightness(.95); }
.btn:disabled { opacity:.6; cursor:default; }
.btn--sec { background:#fff; color:var(--bleu); border:1px solid var(--trait); }
.btn--lien { background:none; color:var(--bleu); padding:0; text-decoration:underline; font-weight:500; }
.btn--danger-discret { background:#fff; color:var(--rouge); border:1px solid #f1c6c2; }
.btn--large { width:100%; padding:12px; margin-top:8px; }
.btn--rec { background:var(--rouge); font-size:16px; padding:12px 22px; }
.btn:focus-visible, .champ:focus-visible, a:focus-visible, .cliquable:focus-visible { outline:2px solid var(--cyan); outline-offset:2px; }
.champ { width:100%; padding:9px 10px; border:1px solid var(--trait); border-radius:8px; font:inherit; background:#fff; color:var(--texte); }
.champ--recherche { margin-bottom:14px; }
textarea.champ { resize:vertical; }
label { display:block; font-size:13px; font-weight:600; color:var(--discret); }
label .champ { margin-top:4px; font-weight:400; color:var(--texte); }
.case { display:flex; gap:10px; align-items:flex-start; font-size:15px; font-weight:500; color:var(--texte); }
.case input { margin-top:4px; width:18px; height:18px; }
.formulaire fieldset { border:1px solid var(--trait); border-radius:var(--rayon); background:var(--surface); padding:14px 18px 18px; margin:0 0 16px; }
.formulaire legend { font-weight:700; color:var(--bleu); padding:0 6px; }
.actions { display:flex; gap:10px; align-items:center; justify-content:flex-end; flex-wrap:wrap; margin-top:14px; }
.actions--centre { justify-content:center; }
.msg-erreur { color:var(--rouge); } .msg-ok { color:var(--vert); }
.vide { text-align:center; padding:40px; background:var(--surface); border:1px dashed var(--trait); border-radius:var(--rayon); }

.tableau { width:100%; border-collapse:collapse; background:var(--surface); border:1px solid var(--trait); border-radius:var(--rayon); overflow:hidden; }
.tableau th { text-align:left; font-size:12px; text-transform:uppercase; letter-spacing:.05em; color:var(--discret); background:#f5f8fb; padding:10px 12px; }
.tableau td { padding:10px 12px; border-top:1px solid #e6ebf1; }
.cliquable { cursor:pointer; } .cliquable:hover { background:#f2f9fd; }
.pastille { display:inline-block; font-weight:700; padding:2px 10px; border-radius:999px; background:#e8eef5; color:var(--bleu); font-size:13px; }
.pastille--alerte { background:#d93025; color:#fff; }
.pastilles { list-style:none; padding:0; display:flex; flex-wrap:wrap; gap:6px; margin:0; }
.pastille--ok { background:#e3f3ea; color:#1f6e49; } .pastille--ko { background:#f3f4f6; color:#8a939e; text-decoration:line-through; }
.liste-def { margin:0; display:grid; gap:8px; }
.liste-def dt { font-size:12px; text-transform:uppercase; letter-spacing:.04em; color:var(--discret); }
.liste-def dd { margin:2px 0 0; white-space:pre-line; }
.liste-def dd ul { margin:0; padding-left:18px; }
.liste-def--compacte > div { display:flex; justify-content:space-between; gap:12px; border-bottom:1px solid #eef1f5; padding-bottom:6px; }
.liste-def--compacte dd { text-align:right; }

/* Dossier patient */
.fiche-entete { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; flex-wrap:wrap; }
.fiche-entete p { margin:0; }
.fiche-entete h1 { font-size:32px; margin:6px 0 4px; }
.fiche-entete p.discret { font-size:16px; color:#3d4a5a; }
.fiche-entete__actions { display:flex; gap:10px; align-items:center; }
.onglets { display:flex; gap:4px; border-bottom:1px solid var(--trait); margin:16px 0; }
.onglet { padding:8px 14px; text-decoration:none; color:var(--discret); font-weight:600; border-bottom:3px solid transparent; }
.onglet--actif { color:var(--bleu); border-color:var(--cyan); }

/* Connexion */
.connexion { min-height:100vh; display:grid; place-items:center; padding:16px; }
.connexion__carte { width:100%; max-width:380px; display:grid; gap:12px; text-align:left; }
.connexion__carte .logo { font-size:30px; text-align:center; }
.connexion__carte .discret { text-align:center; margin:0 0 8px; }

@media (max-width:760px) {
  .grille-2 { grid-template-columns:1fr; }
  .contenu { padding:16px; }
  .barre { padding:10px 16px; gap:10px; }
  .tableau { display:block; overflow-x:auto; }
}

.tableau--compact td, .tableau--compact th { padding: 6px 10px; vertical-align: middle; }

/* Fonctions en version bêta */
.etiquette--beta { background: #f3e8ff; color: #6b21a8; font-size: 10.5px; text-transform: uppercase; letter-spacing: .04em; vertical-align: middle; }
.cases-liste { display: flex; flex-direction: column; gap: 6px; margin-bottom: 10px; }

/* Questionnaire médical (onglet Dossier médical) */
.qm-panneau { margin-top: 16px; }
.qm-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.qm-actions label.btn { cursor: pointer; }
.qm-detail .qm-actions { margin-top: 12px; }
.qm-lien { background: #f7fafd; }
.qm-lien__corps { display: flex; gap: 20px; align-items: flex-start; flex-wrap: wrap; }
.qm-lien__corps .qr-telephone__code { width: 170px; flex: none; }
.qm-lien__corps > div:last-child { flex: 1; min-width: 260px; }
.qm-lien__url { display: flex; gap: 8px; }
.qm-lien__url input { flex: 1; min-width: 0; padding: 8px; border: 1px solid #c9d3de; border-radius: 6px; font-size: 13px; }
.qm-tableau { margin: 12px 0; }
.ligne--choisie { background: #eaf3fb; }
.qm-alertes { border: 2px solid #e0a100; background: #fff8e6; border-radius: 8px; padding: 10px 14px; margin: 10px 0; }
.qm-alertes ul { margin: 6px 0 0; padding-left: 20px; }
.qm-reponses section h4 { margin: 14px 0 6px; color: var(--bleu); }
.qm-liste { margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(380px, 1fr)); gap: 2px 18px; }
.qm-liste > div { display: grid; grid-template-columns: 1fr minmax(120px, 45%); gap: 10px; padding: 5px 6px; border-bottom: 1px solid #edf1f5; font-size: 14px; }
.qm-liste dt { color: #4a5563; }
.qm-liste dd { margin: 0; font-weight: 600; }
.qm-liste .qm-alerte { background: #fff8e6; }
.qm-champ { display: flex; gap: 6px; flex-wrap: wrap; }
.qm-champ input, .qm-texte { flex: 1; min-width: 0; width: 100%; padding: 4px 6px; }
.qm-echelle { width: 70px; }
.pastille--recu { background: #fff1e0; color: #a85b00; } .pastille--integre { background: #e3f3ea; color: #1f6e49; }
.pastille--erreur { background: #fbeaea; color: #c8423b; }
