/* ============================================================================
   IADAI — feuille de style de l'application (production)
   Basée sur les jetons de couleur et les styles de l'app définis dans le
   prototype de démonstration ; l'habillage "page de présentation" (bandeau
   de pitch, panneau de démo, maquette de téléphone) a été retiré et remplacé
   par une vraie mise en page d'application, responsive du mobile au bureau.
   ========================================================================= */

:root{
  --ground:#FCF7F8;
  --surface:#FFFFFF;
  --surface-alt:#FBEDF1;
  --surface-sunken:#F6E2E8;
  --ink:#241419;
  --ink-soft:#7A5C66;
  --ink-faint:#B58F99;
  --accent:#B23A63;
  --accent-strong:#8E2A4C;
  --accent-soft:#F6CFDA;
  --accent-tint:#FDE7ED;
  --pro-gold:#93702E;
  --pro-gold-soft:#F1E2C2;
  --line:#EBD3DB;
  --banner-bg:#241419;
  --banner-ink:#F3DEE5;
  --good:#3E7A56;
  --good-soft:#DCEFE1;
  --warn:#9C7A22;
  --warn-soft:#F5EBCB;
  --bad:#A5423C;
  --bad-soft:#F7DEDA;
  --shadow-card: 0 1px 2px rgba(36,20,25,.06), 0 8px 24px -12px rgba(36,20,25,.18);
  --shadow-frame: 0 30px 70px -25px rgba(36,20,25,.45), 0 10px 24px -12px rgba(36,20,25,.25);
  color-scheme: light;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ground:#160F12;
    --surface:#20161A;
    --surface-alt:#2A1B20;
    --surface-sunken:#331F26;
    --ink:#F6EAEC;
    --ink-soft:#CBA3AE;
    --ink-faint:#7E5A64;
    --accent:#F08FAC;
    --accent-strong:#F6ACC2;
    --accent-soft:#4A2530;
    --accent-tint:#37202A;
    --pro-gold:#DABD79;
    --pro-gold-soft:#3A311D;
    --line:#3D2830;
    --banner-bg:#000000;
    --banner-ink:#E7C9D2;
    --good:#7FCB9B;
    --good-soft:#1E3327;
    --warn:#E0BE63;
    --warn-soft:#3A311C;
    --bad:#E58E86;
    --bad-soft:#3A211F;
    --shadow-card: 0 1px 2px rgba(0,0,0,.35), 0 8px 24px -12px rgba(0,0,0,.55);
    --shadow-frame: 0 30px 70px -25px rgba(0,0,0,.7), 0 10px 24px -12px rgba(0,0,0,.5);
    color-scheme: dark;
  }
}
:root[data-theme="dark"]{
  --ground:#160F12;
  --surface:#20161A;
  --surface-alt:#2A1B20;
  --surface-sunken:#331F26;
  --ink:#F6EAEC;
  --ink-soft:#CBA3AE;
  --ink-faint:#7E5A64;
  --accent:#F08FAC;
  --accent-strong:#F6ACC2;
  --accent-soft:#4A2530;
  --accent-tint:#37202A;
  --pro-gold:#DABD79;
  --pro-gold-soft:#3A311D;
  --line:#3D2830;
  --banner-bg:#000000;
  --banner-ink:#E7C9D2;
  --good:#7FCB9B;
  --good-soft:#1E3327;
  --warn:#E0BE63;
  --warn-soft:#3A311C;
  --bad:#E58E86;
  --bad-soft:#3A211F;
  --shadow-card: 0 1px 2px rgba(0,0,0,.35), 0 8px 24px -12px rgba(0,0,0,.55);
  --shadow-frame: 0 30px 70px -25px rgba(0,0,0,.7), 0 10px 24px -12px rgba(0,0,0,.5);
  color-scheme: dark;
}

*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
html,body{height:100%;}
body{
  margin:0;
  background:var(--ground);
  color:var(--ink);
  font-family:"Public Sans", ui-sans-serif, system-ui, sans-serif;
}
h1,h2,h3,.display{
  font-family:"Fraunces", Georgia, serif;
  text-wrap:balance;
  font-weight:600;
  margin:0;
}
button{font-family:inherit;}
::selection{background:var(--accent-soft); color:var(--accent-strong);}
a{color:inherit;}
.scrolled-hide{scrollbar-width:thin;}
@media (prefers-reduced-motion:no-preference){
  .fade-in{animation:fadeIn .28s ease both;}
}
@keyframes fadeIn{from{opacity:0; transform:translateY(4px);} to{opacity:1; transform:none;}}

/* ---------- Coquille de l'application ----------
   Sur mobile, l'app occupe tout l'écran (comme une PWA installée).
   Sur des écrans plus larges, elle reste centrée dans une colonne façon
   application mobile, plutôt que de s'étirer sur toute la largeur. */
#app-shell{
  width:100%;
  max-width:480px;
  margin:0 auto;
  height:100vh;
  height:100dvh;
  background:var(--surface);
  display:flex;
  flex-direction:column;
  padding-top:env(safe-area-inset-top);
  padding-bottom:env(safe-area-inset-bottom);
}
@media (min-width:560px){
  body{ padding:28px 16px; }
  #app-shell{
    height:min(860px, calc(100vh - 56px));
    border-radius:28px;
    border:1px solid var(--line);
    box-shadow:var(--shadow-frame);
  }
}

#screen{
  position:relative;
  flex:1;
  min-height:0;
  background:var(--surface);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  font-size:14px;
}

/* Le conteneur de l'écran principal doit remplir toute la hauteur de #screen :
   sans cela (height:100% d'un enfant flex sans hauteur définie), l'app s'arrête
   à la fin de son contenu et laisse un bloc blanc en dessous. */
.app-frame{flex:1; min-height:0; display:flex; flex-direction:column;}

/* app chrome */
.app-header{
  flex:none;
  padding:22px 16px 10px;
  display:flex; flex-direction:column; gap:8px;
  background:var(--surface);
  border-bottom:1px solid var(--line);
}
.app-header .row{display:flex; align-items:center; justify-content:space-between; gap:8px;}
.navbtn{
  border:none; background:transparent; color:var(--ink-soft); font-weight:700; font-size:13px;
  cursor:pointer; padding:6px 4px; display:flex; align-items:center; gap:5px; border-radius:8px;
}
.navbtn:hover{color:var(--accent-strong);}
.navbtn svg{width:14px;height:14px;}
.brandmark{display:flex; align-items:center; gap:7px; border:none; background:none; padding:0; margin:0; font:inherit; color:inherit; cursor:pointer; border-radius:6px;}
.brandmark:hover .word b{color:var(--accent);}
.brandmark:focus-visible{outline:2px solid var(--accent); outline-offset:2px;}
.brandmark .logo{width:24px;height:24px;color:var(--accent);}
.brandmark .word{font-family:"Fraunces",serif; font-weight:600; font-size:15px;}
.brandmark .word b{color:var(--accent-strong);}
.titlebar-title{font-family:"Fraunces",serif; font-size:16px; font-weight:600;}
.tierline{display:flex; align-items:center; gap:8px; flex-wrap:wrap;}
.pill{
  display:inline-flex; align-items:center; gap:5px; font-size:10.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase;
  padding:3.5px 9px; border-radius:99px;
}
.pill.free{background:var(--surface-sunken); color:var(--ink-soft);}
.pill.pro{background:var(--pro-gold-soft); color:var(--pro-gold); border:1px solid color-mix(in srgb, var(--pro-gold) 35%, transparent);}
.upgrade-chip{
  margin-left:auto; border:none; cursor:pointer; background:var(--accent); color:#fff; font-weight:700;
  font-size:11.5px; padding:5.5px 11px; border-radius:99px; display:flex; align-items:center; gap:5px;
}
.upgrade-chip svg{width:11px;height:11px;}
.restart-chip{
  margin-left:auto; border:1px solid var(--line); cursor:pointer; background:var(--surface); color:var(--ink-soft); font-weight:700;
  font-size:11.5px; padding:5px 10px; border-radius:99px; display:flex; align-items:center; gap:5px;
}
.restart-chip:hover{color:var(--accent); border-color:var(--accent-soft);}
.restart-chip svg{width:11px;height:11px;}

.app-body{flex:1; min-height:0; overflow-y:auto; background:var(--ground); -webkit-overflow-scrolling:touch;}
.app-footer{flex:none;}

.banner-ad{
  background:var(--banner-bg); color:var(--banner-ink);
  text-align:center; font-size:11px; letter-spacing:.03em; padding:11px 12px;
  font-weight:600;
}
.banner-ad span{opacity:.55; font-weight:500;}

/* generic screen padding */
.pad{padding:16px;}
.stack{display:flex; flex-direction:column; gap:12px;}

/* splash */
.splash{
  height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;
  background:linear-gradient(180deg, var(--accent-soft), var(--surface) 78%);
  padding:32px; gap:14px;
}
.splash.pr{background:linear-gradient(180deg, var(--surface), var(--accent-soft) 82%);}
.splash .logo-big{width:56px;height:56px;color:var(--accent-strong);}
.splash .word-big{font-family:"Fraunces",serif; font-size:30px; font-weight:600; letter-spacing:-.01em;}
.splash .word-big b{color:var(--accent-strong); font-weight:700;}
.splash .tag{font-size:12.5px; color:var(--ink-soft); max-width:26ch; line-height:1.5;}
.splash .go{
  margin-top:10px; border:none; background:var(--ink); color:var(--surface); font-weight:700; font-size:13.5px;
  padding:11px 22px; border-radius:99px; cursor:pointer;
}
.dots{display:flex; gap:6px; margin-top:18px;}
.dots span{width:5px;height:5px;border-radius:50%;background:var(--ink-faint); opacity:.4;}
.dots span.on{opacity:1; background:var(--accent);}

/* language */
.lang-list{display:flex; flex-direction:column; gap:10px; width:100%; max-width:260px;}
.lang-btn{
  border:1px solid var(--line); background:var(--surface); color:var(--ink); font-weight:600; font-size:14.5px;
  padding:12px 16px; border-radius:12px; cursor:pointer; display:flex; align-items:center; justify-content:space-between;
}
.lang-btn:hover{border-color:var(--accent); color:var(--accent-strong);}
.lang-btn .flag{font-size:16px;}

/* portal choice */
.portal-card{
  border:1px solid var(--line); background:var(--surface); border-radius:16px; padding:16px;
  display:flex; flex-direction:column; gap:8px; cursor:pointer; text-align:left; width:100%;
  box-shadow:var(--shadow-card);
}
.portal-card:hover{border-color:var(--accent);}
.portal-card .top{display:flex; align-items:center; gap:10px;}
.portal-card .ic{width:34px;height:34px; border-radius:10px; display:flex; align-items:center; justify-content:center; flex:none;}
.portal-card .ic.dr{background:var(--accent-tint); color:var(--accent-strong);}
.portal-card .ic.pr{background:var(--pro-gold-soft); color:var(--pro-gold);}
.portal-card .ic svg{width:18px;height:18px;}
.portal-card h3{font-size:15.5px;}
.portal-card p{margin:0; font-size:12.5px; color:var(--ink-soft); line-height:1.5;}

/* forms (contact, restauration d'achat) */
.field{display:flex; flex-direction:column; gap:6px;}
.field label{font-size:12px; font-weight:700; color:var(--ink-soft);}
.field input{
  border:1px solid var(--line); background:var(--surface); border-radius:10px; padding:10px 12px; font-size:14px; color:var(--ink);
  font-family:inherit;
}
.field input:focus{outline:2px solid var(--accent); outline-offset:1px; border-color:var(--accent);}
.field textarea{
  border:1px solid var(--line); background:var(--surface); border-radius:10px; padding:10px 12px; font-size:14px; color:var(--ink);
  font-family:inherit; resize:vertical; min-height:64px;
}
.field textarea:focus{outline:2px solid var(--accent); outline-offset:1px; border-color:var(--accent);}
.field input.invalid, .field textarea.invalid{border-color:var(--bad);}
.field-error{font-size:11.5px; color:var(--bad); font-weight:600;}
:focus-visible{outline:2px solid var(--accent); outline-offset:2px;}
.btn-primary{
  border:none; background:var(--accent); color:#fff; font-weight:700; font-size:14px; padding:11px 14px; border-radius:11px; cursor:pointer;
}
.btn-primary:hover{background:var(--accent-strong);}
.btn-primary[disabled]{opacity:.6; cursor:default;}
.btn-ghost{
  border:1px solid var(--line); background:transparent; color:var(--ink-soft); font-weight:600; font-size:13px; padding:9px 12px; border-radius:11px; cursor:pointer;
}
.switcher{font-size:12.5px; color:var(--ink-soft); text-align:center;}
.switcher a{color:var(--accent-strong); font-weight:700; cursor:pointer; text-decoration:none;}

/* home chooser (pr) */
.home-hero{padding:22px 16px 6px; text-align:center;}
.home-hero h2{font-size:19px;}
.home-hero p{font-size:12.5px; color:var(--ink-soft); margin-top:6px;}
.choice-grid{display:grid; gap:12px; padding:14px 16px 16px;}

/* list */
.tabbar{display:flex; gap:6px; padding:12px 16px 0;}
.tabbtn{
  flex:1; border:1px solid var(--line); background:var(--surface); color:var(--ink-soft); font-weight:700; font-size:12.5px;
  padding:8px 10px; border-radius:10px; cursor:pointer;
}
.tabbtn.on{background:var(--ink); border-color:var(--ink); color:var(--surface);}
.searchbar{
  margin:12px 16px 0; display:flex; align-items:center; gap:8px; background:var(--surface); border:1px solid var(--line);
  border-radius:11px; padding:8px 11px;
}
.searchbar .sicon{color:var(--ink-faint); flex:none; display:flex;}
.searchbar .sicon svg{width:15px;height:15px;}
.searchbar input{
  border:none; background:transparent; font-size:13.5px; color:var(--ink); flex:1; min-width:0; font-family:inherit;
}
.searchbar input:focus{outline:none;}
.searchbar input::-webkit-search-cancel-button{cursor:pointer;}
.list-toolbar{display:flex; align-items:center; justify-content:space-between; padding:12px 16px 4px; gap:8px;}
.list-count{font-size:12px; color:var(--ink-soft); font-weight:600;}
.fav-toggle{
  display:flex; align-items:center; gap:5px; border:1px solid var(--line); background:var(--surface); color:var(--ink-soft);
  font-size:11.5px; font-weight:700; padding:5px 10px; border-radius:99px; cursor:pointer;
}
.fav-toggle svg{width:12px;height:12px;}
.fav-toggle.on{background:var(--accent-tint); border-color:var(--accent-soft); color:var(--accent-strong);}
.chips{display:flex; gap:6px; flex-wrap:wrap; padding:0 16px 10px;}
.chip{
  display:flex; align-items:center; gap:5px; background:var(--accent-tint); color:var(--accent-strong); border:1px solid var(--accent-soft);
  font-size:11px; font-weight:700; padding:4px 8px 4px 9px; border-radius:99px;
}
.chip button{border:none; background:transparent; color:inherit; cursor:pointer; font-size:12px; line-height:1; padding:0;}
.row-item{
  display:flex; align-items:center; gap:10px; padding:11px 16px; border-bottom:1px solid var(--line);
  background:var(--surface); cursor:pointer;
}
.row-item:hover{background:var(--surface-alt);}
.row-thumb{
  width:40px; height:40px; border-radius:10px; flex:none; background:var(--accent-tint); color:var(--accent-strong);
  display:flex; align-items:center; justify-content:center; overflow:hidden;
}
.row-thumb svg{width:20px;height:20px;}
.row-text{min-width:0; flex:1;}
.row-text .name{font-weight:700; font-size:14px;}
.row-text .def{font-size:12px; color:var(--ink-soft); overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.fav-btn{
  flex:none; border:none; background:transparent; color:var(--ink-faint); cursor:pointer; padding:4px; display:flex;
  border-radius:8px;
}
.fav-btn svg{width:17px;height:17px;}
.fav-btn.on{color:var(--accent);}
.fav-btn:hover{color:var(--accent-strong);}
.row-arrow{color:var(--ink-faint); flex:none;}
.row-arrow svg{width:15px;height:15px;}
.empty-state{padding:40px 24px; text-align:center; color:var(--ink-soft); font-size:13px; line-height:1.6;}

/* filters */
.filter-group{padding:14px 16px 0;}
.filter-group h4{font-size:11.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft); margin:0 0 8px;}
.filter-opts{display:flex; gap:8px; flex-wrap:wrap;}
.opt{
  border:1px solid var(--line); background:var(--surface); color:var(--ink-soft); font-size:12.5px; font-weight:600;
  padding:7px 12px; border-radius:99px; cursor:pointer;
}
.opt.on{background:var(--accent); border-color:var(--accent); color:#fff;}
.filter-footer{
  position:sticky; bottom:0; background:var(--surface); border-top:1px solid var(--line);
  padding:12px 16px; display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:16px;
}
.filter-footer .count{font-size:12.5px; color:var(--ink-soft);}
.filter-footer .count b{color:var(--ink);}

/* detail */
.detail-hero{padding:16px; display:flex; flex-direction:column; gap:4px; border-bottom:1px solid var(--line); background:var(--surface);}
.detail-hero-row{display:flex; align-items:flex-start; justify-content:space-between; gap:12px;}
.detail-hero .kicker{font-size:11px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--accent-strong);}
.detail-hero h2{font-size:20px;}
.hero-actions{display:flex; gap:4px; flex:none;}
.icon-btn{
  border:1px solid var(--line); background:var(--surface); color:var(--ink-soft); width:32px; height:32px; border-radius:10px;
  display:flex; align-items:center; justify-content:center; cursor:pointer; flex:none;
}
.icon-btn svg{width:15px;height:15px;}
.icon-btn.on{color:var(--accent); border-color:var(--accent-soft); background:var(--accent-tint);}
.icon-btn:hover{border-color:var(--ink-faint);}
.snackbar{
  position:absolute; left:50%; bottom:58px; transform:translateX(-50%); background:var(--ink); color:var(--surface);
  font-size:12.5px; font-weight:600; padding:9px 15px; border-radius:99px; display:flex; align-items:center; gap:6px;
  box-shadow:0 8px 20px rgba(0,0,0,.25); z-index:35;
}
.snackbar svg{width:14px;height:14px;}
.kv{border-bottom:1px solid var(--line); padding:12px 16px; background:var(--surface);}
.kv h4{font-size:11.5px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:var(--ink-soft); margin:0 0 5px;}
.kv .val{font-size:13.5px; line-height:1.55; color:var(--ink);}
.tag-row{display:flex; gap:6px; flex-wrap:wrap;}
.tag{background:var(--surface-alt); color:var(--ink-soft); font-size:12px; font-weight:600; padding:4px 10px; border-radius:99px;}
.badge{display:inline-flex; align-items:center; gap:5px; font-size:11.5px; font-weight:700; padding:3px 10px; border-radius:99px;}
.badge.good{background:var(--good-soft); color:var(--good);}
.badge.warn{background:var(--warn-soft); color:var(--warn);}
.badge.bad{background:var(--bad-soft); color:var(--bad);}
.steps{display:flex; flex-direction:column; gap:10px;}
.step{display:flex; gap:10px; align-items:flex-start;}
.step .n{
  flex:none; width:20px; height:20px; border-radius:50%; background:var(--accent-tint); color:var(--accent-strong);
  font-size:11px; font-weight:800; display:flex; align-items:center; justify-content:center;
}
.step .t{font-size:13.5px; line-height:1.5;}

.lock-media{
  border-radius:14px; border:1px dashed var(--line); background:var(--surface-alt);
  padding:22px 16px; display:flex; flex-direction:column; align-items:center; gap:8px; text-align:center;
}
.lock-media svg{width:26px;height:26px; color:var(--pro-gold);}
.lock-media .t1{font-size:13px; font-weight:700; color:var(--ink);}
.lock-media .t2{font-size:11.5px; color:var(--ink-soft); max-width:26ch; line-height:1.5;}
.lock-media button{
  margin-top:4px; border:none; background:var(--pro-gold); color:#241419; font-weight:800; font-size:12px;
  padding:8px 14px; border-radius:99px; cursor:pointer;
}

/* contact */
.contact-hero{padding:20px 16px 4px; text-align:center;}
.contact-hero h2{font-size:19px;}
.contact-hero p{font-size:12.5px; color:var(--ink-soft); margin-top:6px; line-height:1.5;}
.contact-form{padding:14px 16px 20px; display:flex; flex-direction:column; gap:12px;}
.toast{
  margin:0 16px 16px; background:var(--good-soft); color:var(--good); border-radius:12px; padding:12px 14px;
  font-size:13px; font-weight:600; display:flex; gap:8px; align-items:flex-start;
}
.toast svg{width:16px;height:16px; flex:none; margin-top:1px;}

/* modal */
.modal-back{
  position:absolute; inset:0; background:rgba(20,10,14,.5); display:flex; align-items:flex-end; z-index:30;
}
.modal{
  width:100%; background:var(--surface); border-radius:22px 22px 0 0; padding:20px 18px 22px;
  display:flex; flex-direction:column; gap:12px; box-shadow:0 -10px 30px rgba(0,0,0,.2);
  max-height:90%; overflow-y:auto;
}
.modal h3{font-size:17px;}
.modal .price{display:flex; align-items:baseline; gap:6px;}
.modal .price b{font-family:"Fraunces",serif; font-size:26px;}
.modal .price span{font-size:12.5px; color:var(--ink-soft);}
.modal ul{margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:7px;}
.modal li{display:flex; gap:8px; align-items:flex-start; font-size:13px; color:var(--ink-soft); line-height:1.4;}
.modal li svg{width:14px;height:14px; color:var(--good); flex:none; margin-top:2px;}
.modal .close{position:absolute; top:14px; right:14px; border:none; background:var(--surface-alt); color:var(--ink-soft); width:26px;height:26px;border-radius:50%; cursor:pointer;}
.link-btn:hover{color:var(--accent-strong) !important;}

/* écran de chargement initial (avant que app.js ait fini de démarrer) */
.boot-loading{
  height:100%; display:flex; align-items:center; justify-content:center;
  color:var(--ink-soft); font-size:13px;
}

/* ---------- Nouveautés Dr IADAI : accès rapides, fiche du jour, urgence ---------- */

/* points d'entrée rapides (assistant + checklist), en haut de la liste patient */
.quick-actions{display:flex; gap:8px; padding:12px 16px 0;}
.quick-action{
  flex:1; display:flex; align-items:center; justify-content:center; gap:6px;
  border:1px solid var(--line); background:var(--surface); color:var(--ink); font-weight:700; font-size:12px;
  padding:9px 8px; border-radius:11px; cursor:pointer; text-align:center;
}
.quick-action svg{width:13px;height:13px; flex:none;}
.quick-action:hover{border-color:var(--accent); color:var(--accent-strong);}

/* fiche du jour : reprend l'accent de la marque pour se distinguer des lignes de liste */
.daily-card{
  display:block; width:calc(100% - 32px); margin:10px 16px 0; text-align:left; cursor:pointer;
  border:1px solid var(--accent-soft); background:var(--accent-tint); border-radius:14px; padding:13px 15px;
}
.daily-card:hover{border-color:var(--accent);}
.daily-kicker{
  display:flex; align-items:center; gap:5px; font-size:10.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase;
  color:var(--accent-strong); margin-bottom:4px;
}
.daily-kicker svg{width:12px;height:12px;}
.daily-title{font-family:"Fraunces",serif; font-weight:600; font-size:15.5px; color:var(--ink);}
.daily-sub{font-size:12px; color:var(--ink-soft); margin-top:2px; line-height:1.4;}

/* petit repère de couleur sur les lignes de liste, reflet du badge d'urgence */
.urgency-dot{
  display:inline-block; width:7px; height:7px; border-radius:50%; margin-right:7px; vertical-align:middle;
  position:relative; top:-1px;
}
.urgency-dot.watch{background:var(--good);}
.urgency-dot.soon{background:var(--warn);}
.urgency-dot.urgent{background:var(--bad);}

/* assistant "Qu'est-ce que j'ai ?" */
.wizard-screen{padding:18px 16px 24px;}
.wizard-disclaimer{
  font-size:11.5px; color:var(--ink-soft); background:var(--surface-alt); border-radius:11px; padding:9px 12px;
  line-height:1.5; margin:0 0 4px;
}

/* checklist "avant mon rendez-vous" */
.checklist-item{cursor:pointer;}
.checklist-box{
  flex:none; width:22px; height:22px; border-radius:7px; border:1.5px solid var(--line); background:var(--surface);
  display:flex; align-items:center; justify-content:center; color:#fff;
}
.checklist-box.on{background:var(--accent); border-color:var(--accent);}
.checklist-box svg{width:13px;height:13px;}
.row-text .name.done{text-decoration:line-through; color:var(--ink-soft); font-weight:600;}

/* schéma buccal interactif */
.mouthmap-wrap{padding:6px 16px 0; display:flex; justify-content:center;}
.mouthmap-svg{width:100%; max-width:420px; height:auto; border-radius:16px; overflow:hidden; background:var(--surface-sunken); box-shadow:0 1px 3px rgba(0,0,0,.18);}
/* Couleurs des zones sur la photo : identiques en thème clair et sombre (la photo ne change pas). */
:root{--mzc-tooth:#3B82F6; --mzc-gum:#F59E0B; --mzc-cheek:#10B981; --mzc-palate:#FACC15; --mzc-tongue:#EC4899; --mzc-lip:#A855F7;}
.mouthzone{cursor:pointer; --c:var(--accent);}
.mz-tooth{--c:var(--mzc-tooth);} .mz-gum{--c:var(--mzc-gum);} .mz-cheek{--c:var(--mzc-cheek);}
.mz-palate{--c:var(--mzc-palate);} .mz-tongue{--c:var(--mzc-tongue);} .mz-lip{--c:var(--mzc-lip);}
.mouthzone polygon{fill:var(--c); fill-opacity:.14; stroke:#fff; stroke-opacity:.9; stroke-width:3; stroke-linejoin:round; transition:fill-opacity .15s ease;}
.mouthzone:hover polygon, .mouthzone:active polygon{fill-opacity:.42;}
.mouthzone:focus{outline:none;}
.mouthzone:focus-visible polygon{fill-opacity:.45; stroke:var(--c); stroke-width:6;}
.mz-label{font-family:"Public Sans", system-ui, sans-serif; font-weight:800; font-size:46px; fill:#fff; stroke:rgba(0,0,0,.7); stroke-width:9px; paint-order:stroke; stroke-linejoin:round; pointer-events:none;}
.mz-legend-pill{display:inline-flex; align-items:center; gap:6px;}
.mz-dot{width:9px; height:9px; border-radius:50%; display:inline-block; flex:none;}
.mz-dot-tooth{background:var(--mzc-tooth);}
.mz-dot-gum{background:var(--mzc-gum);}
.mz-dot-cheek{background:var(--mzc-cheek);}
.mz-dot-palate{background:var(--mzc-palate);}
.mz-dot-tongue{background:var(--mzc-tongue);}
.mz-dot-lip{background:var(--mzc-lip);}
.mz-count{color:var(--ink-faint); font-weight:700;}

/* ---- informations légales ---- */
.legal-links{display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:4px 8px; padding:22px 16px 26px; font-size:11.5px; color:var(--ink-soft);}
.legal-links button{border:none; background:none; padding:4px 2px; font:inherit; color:var(--ink-soft); text-decoration:underline; cursor:pointer; border-radius:4px;}
.legal-links button:hover{color:var(--accent);}
.legal-links button:focus-visible, .inline-link:focus-visible{outline:2px solid var(--accent); outline-offset:2px;}
.legal-wrap{padding-bottom:24px;}
.legal-body{padding:6px 16px 0;}
.legal-sec{margin-top:18px;}
.legal-sec h3{font-size:14px; margin:0 0 6px; color:var(--ink);}
.legal-sec p, .legal-sec li{font-size:12.5px; line-height:1.6; color:var(--ink-soft); margin:0 0 8px;}
.legal-sec ul{margin:0 0 8px; padding-left:18px;}
.legal-todo{background:var(--pro-gold-soft); color:var(--pro-gold); padding:0 4px; border-radius:4px; font-weight:700; font-size:11.5px;}
.legal-box{margin:20px 16px 0; padding:14px; border:1px solid var(--line); border-radius:12px; background:var(--surface-sunken);}
.legal-box h4{font-size:13px; margin:0 0 6px;}
.legal-box p{font-size:12px; line-height:1.55; color:var(--ink-soft); margin:0 0 10px;}
.legal-btn-row{display:flex; gap:8px;}
.legal-btn-row > *{flex:1;}
.consent-row{display:flex; gap:9px; align-items:flex-start; font-size:11.5px; line-height:1.5; color:var(--ink-soft); margin:12px 0 10px; cursor:pointer;}
.consent-row input{margin-top:2px; flex:none; width:16px; height:16px; accent-color:var(--accent);}
.inline-link{border:none; background:none; padding:0; font:inherit; color:var(--accent); text-decoration:underline; cursor:pointer;}

/* assistant « Qu'est-ce que j'ai ? » : un seul écran */
.wizard-group{margin-top:14px;}
.wizard-group h4{font-size:13px; margin:0 0 8px; color:var(--ink);}
.wizard-group .filter-opts{padding:0;}
.wizard-more-toggle{display:block; margin:14px 0 0; background:none; border:none; padding:4px 0; font:inherit; font-size:12.5px; font-weight:700; color:var(--accent); cursor:pointer;}
.wizard-results{margin-top:20px; padding-top:14px; border-top:1px solid var(--line);}
.wizard-results h3{font-size:16px; text-align:center; margin-bottom:6px;}

/* licence cabinet */
.cabinet-card{margin:12px 16px 4px; padding:14px 14px 12px; border:1px solid var(--accent-soft); border-radius:14px; background:var(--accent-tint);}
.cabinet-card.compact{margin:18px 16px 20px;}
.cabinet-kicker{font-size:10.5px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--accent-strong);}
.cabinet-name{font-family:"Fraunces", Georgia, serif; font-size:17px; font-weight:600; margin-top:3px; color:var(--ink);}
.cabinet-addr{font-size:12px; color:var(--ink-soft); margin-top:3px; line-height:1.45;}
.cabinet-actions{display:flex; gap:8px; margin-top:12px; flex-wrap:wrap;}
.cabinet-btn{flex:1 1 130px; text-align:center; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box;}

/* bouton « Soutenir IADAI » */
.support-card{display:flex; align-items:center; gap:12px; margin:16px 16px 0; padding:12px 14px; border:1px dashed var(--line); border-radius:14px;}
.support-text{display:flex; flex-direction:column; gap:2px; font-size:12px; color:var(--ink-soft); line-height:1.4; flex:1;}
.support-text b{font-size:13px; color:var(--ink);}
.support-btn{flex:none; text-decoration:none; display:inline-flex; width:auto; padding-left:16px; padding-right:16px; box-sizing:border-box;}

/* partenaires (publicité vendue en direct) — version gratuite uniquement */
.sponsor-banner{display:flex; align-items:center; justify-content:center; gap:10px; background:var(--banner-bg); color:var(--banner-ink); padding:8px 12px; min-height:46px;}
.sponsor-tag{flex:none; font-size:9.5px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; border:1px solid currentColor; border-radius:5px; padding:1px 5px; opacity:.7;}
.sponsor-link{display:inline-flex; align-items:center; gap:8px; color:inherit; text-decoration:none; font-size:12px; font-weight:600; min-width:0;}
.sponsor-link .sponsor-logo{width:28px; height:28px;}
.sponsor-name{overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.sponsor-logo{flex:none; border-radius:8px; object-fit:contain; background:#fff;}
.sponsor-card{margin:16px 16px 0; padding:10px 14px 12px; border:1px solid var(--line); border-radius:14px; background:var(--surface);}
.sponsor-card-tag{font-size:9.5px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:8px;}
.sponsor-card-body{display:flex; align-items:center; gap:12px;}
.sponsor-card-body .sponsor-logo{width:44px; height:44px; border:1px solid var(--line);}
.sponsor-card-text{display:flex; flex-direction:column; gap:2px; flex:1; min-width:0; font-size:12px; color:var(--ink-soft); line-height:1.4;}
.sponsor-card-text b{font-size:13px; color:var(--ink);}
.sponsor-cta{flex:none; text-decoration:none; display:inline-flex; width:auto; padding-left:16px; padding-right:16px; box-sizing:border-box;}
