/* ============================================================
   CALIBRE DENTAL — launcher styles
   ============================================================
   Floating "¿Qué te duele?" pill + the mouth-map dialog.
   Loaded after calibre.css on every page of the demo.
   ============================================================ */
.c-fab{
  position:fixed; right:18px; bottom:calc(18px + env(safe-area-inset-bottom, 0px)); z-index:70;
  display:inline-flex; align-items:center; gap:10px; padding:12px 18px 12px 14px; min-height:50px;
  border-radius:999px; border:1px solid rgba(247,245,242,0.18); background:var(--graphite); color:var(--porcelain);
  font-family:var(--disp); font-weight:600; font-size:15px; letter-spacing:-0.01em; cursor:pointer;
  box-shadow:0 10px 30px rgba(22,25,27,0.35), 0 2px 6px rgba(22,25,27,0.25);
  transition:transform .2s ease, background .25s ease;
}
.c-fab svg{color:var(--mint); flex-shrink:0;}
.c-fab:hover{background:#000; transform:translateY(-1px);}
.c-fab.is-nudge{animation:fabNudge 1.3s ease 2;}
@keyframes fabNudge{0%,100%{transform:translateY(0)} 30%{transform:translateY(-7px)} 55%{transform:translateY(0)} 75%{transform:translateY(-3px)}}
.motion-off .c-fab{animation:none !important; transition:none !important;}
@media (max-width:600px){
  .c-fab{right:12px; bottom:calc(12px + env(safe-area-inset-bottom, 0px)); font-size:14px; padding:11px 16px 11px 12px; min-height:46px;}
}

html.mm-open{overflow:hidden;}
.c-mmdlg{
  border:0; padding:0; margin:auto; width:min(980px, calc(100vw - 24px)); max-height:calc(100vh - 24px);
  background:var(--graphite); color:var(--porcelain); border-radius:12px; box-shadow:0 30px 80px rgba(0,0,0,0.5);
}
.c-mmdlg::backdrop{background:rgba(22,25,27,0.72); backdrop-filter:blur(3px);}
.c-mmdlg-head{
  position:sticky; top:0; z-index:2; display:flex; align-items:flex-start; justify-content:space-between; gap:16px;
  padding:18px 20px 14px; background:var(--graphite); border-bottom:1px solid rgba(126,135,140,0.3);
}
.c-mmdlg-title{font-family:var(--disp); font-weight:600; font-size:clamp(22px,3vw,30px); line-height:1.1; letter-spacing:-0.02em; margin:6px 0 0;}
.c-mmdlg-sub{font-family:var(--mono); font-size:12px; color:#AEB6BA; margin:8px 0 0; max-width:48ch;}
.c-mmdlg-close{
  width:44px; height:44px; border-radius:999px; border:1px solid rgba(247,245,242,0.3); background:transparent;
  color:var(--porcelain); font-size:28px; line-height:1; cursor:pointer; flex-shrink:0; display:grid; place-items:center;
}
.c-mmdlg-close:hover{background:rgba(247,245,242,0.1);}
.c-mmdlg .c-panel{border-radius:0; background-image:none;}
@media (max-width:600px){
  .c-mmdlg{width:100vw; max-width:100vw; height:100dvh; max-height:100dvh; border-radius:0;}
  .c-mmdlg-title{font-size:24px;}
}

/* guided steps inside the mouth map */
.mm-stephead{display:flex; align-items:flex-start; gap:12px; margin:26px 0 10px; padding-top:18px; border-top:1px dashed rgba(126,135,140,0.35);}
.mm-stephead:first-child{margin-top:0; padding-top:0; border-top:0;}
.mm-stepnum{
  width:26px; height:26px; border:1.5px solid var(--mint); border-radius:999px; flex-shrink:0;
  display:inline-grid; place-items:center; font-family:var(--mono); font-size:12.5px; color:var(--mint);
}
.mm-stephead b{font-family:var(--disp); font-size:16px; font-weight:600; color:var(--porcelain); display:block; line-height:1.6;}
.mm-stephead span{font-family:var(--mono); font-size:11.5px; color:#AEB6BA; display:block; margin-top:2px;}
.mm-seclabel{color:#AEB6BA; margin:16px 0 4px; display:block;}
.mm-causes{margin:6px 0 0; padding-left:20px;}
.mm-causes li{font-size:14.5px; color:#DDE1E3; line-height:1.6; margin-top:4px;}
.mm-empty{
  border:1px dashed rgba(126,135,140,0.5); border-radius:2px; padding:16px 18px; margin-top:14px;
  font-family:var(--mono); font-size:12.5px; color:#AEB6BA; line-height:1.7; max-width:60ch;
}
