/* ── MoveX Clínica ─────────────────────────────────────────────────────── */
:root{
  --bg:#f2f6f8; --surface:#fff; --line:#e2e9ee; --line2:#eef3f6;
  --txt:#12202b; --mut:#6b7f8d;
  --pri:#0d7d8c; --pri-d:#0a636f; --pri-l:#e6f3f5;
  --ok:#15803d; --ok-l:#e8f6ed; --warn:#b45309; --warn-l:#fdf3e3; --dan:#b91c1c; --dan-l:#fdecec;
  --r:12px; --sh:0 1px 2px rgba(16,40,52,.06), 0 6px 18px rgba(16,40,52,.05);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:'Segoe UI',system-ui,-apple-system,'Helvetica Neue',Arial,sans-serif;
  background:var(--bg); color:var(--txt); font-size:14.5px; line-height:1.45;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
h1,h2,h3{margin:0;font-weight:650;letter-spacing:-.01em}

/* ── shell ─────────────────────────────────────────────────────────────── */
.shell{display:flex;min-height:100vh}
.side{
  width:242px;flex:0 0 242px;background:var(--surface);border-right:1px solid var(--line);
  display:flex;flex-direction:column;padding:18px 14px;position:sticky;top:0;height:100vh;
}
.brand{display:flex;gap:11px;align-items:center;padding:4px 6px 20px}
.logo{
  width:38px;height:38px;border-radius:11px;background:var(--pri);color:#fff;
  display:grid;place-items:center;font-size:20px;flex:0 0 38px;
}
.bname{font-weight:700;font-size:14.5px;letter-spacing:-.01em}
.bname span{font-weight:400;color:var(--mut)}
.bsub{font-size:12px;color:var(--mut);max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.side .menu{flex:1;overflow-y:auto;margin:0 -6px;padding:0 6px}
.menu{display:flex;flex-direction:column;gap:1px}
.menu a{
  display:flex;align-items:center;gap:11px;padding:8px 11px;border-radius:9px;
  color:#3d5260;font-size:14px;font-weight:500;transition:background .12s,color .12s;
}
.menu a .ico{flex:0 0 auto;color:#7b909e;transition:color .12s}
.menu a:hover{background:var(--line2);color:var(--txt)}
.menu a:hover .ico{color:var(--txt)}
.menu a.active{background:var(--pri-l);color:var(--pri-d);font-weight:650}
.menu a.active .ico{color:var(--pri)}
.menu a .ext{margin-left:auto;display:flex}
.menu a .ext .ico{color:#a9b8c2}
.navsep{font-size:10.5px;text-transform:uppercase;letter-spacing:.09em;color:#9bacb8;font-weight:700;padding:16px 11px 5px}
/* rodapé da barra lateral: quem está logado (leva a Meus dados) + sair */
.side-user{display:flex;align-items:center;gap:6px;padding-top:10px;border-top:1px solid var(--line2);margin-top:8px}
.su-perfil{display:flex;align-items:center;gap:9px;flex:1;min-width:0;padding:6px;border-radius:9px}
.su-perfil:hover{background:var(--line2)}
.su-perfil .un,.su-perfil .up{display:block}
.ini{width:32px;height:32px;border-radius:50%;background:var(--pri-l);color:var(--pri-d);
  display:grid;place-items:center;font-weight:700;font-size:12.5px;flex:0 0 32px}
.un{font-weight:650;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.up{font-size:11.5px;color:var(--mut)}
.su-sair{display:grid;place-items:center;width:36px;height:36px;border-radius:9px;color:var(--dan)}
.su-sair:hover{background:var(--dan-l)}
.side-acoes{display:flex;gap:6px}
.side-acoes .btn{flex:1;justify-content:center}
/* gaveta do menu no celular */
.gaveta-fundo{position:fixed;inset:0;background:rgba(8,22,30,.4);z-index:60;animation:fade .15s}
.gaveta{position:fixed;top:0;bottom:0;left:0;width:min(300px,86vw);background:var(--surface);z-index:61;
  display:flex;flex-direction:column;padding:14px 12px calc(14px + env(safe-area-inset-bottom,0px));
  box-shadow:0 0 40px rgba(8,22,30,.25);animation:entra .18s ease-out}
.gaveta .menu{flex:1;overflow-y:auto;margin-bottom:12px}
.gaveta-topo{display:flex;align-items:center;gap:10px;padding:4px 4px 12px;border-bottom:1px solid var(--line2);margin-bottom:4px}
.gaveta-topo .x{display:grid;place-items:center}
@keyframes fade{from{opacity:0}}
@keyframes entra{from{transform:translateX(-100%)}}
.btn.btn-sair{color:var(--dan);border-color:#f0d3d3;background:#fff}
.btn.btn-sair:hover{background:var(--dan-l)}

/* barra superior do conteúdo (desktop) */
.topbar{display:flex;align-items:center;gap:10px;justify-content:flex-end;
  padding-bottom:14px;margin-bottom:18px;border-bottom:1px solid var(--line)}
.tb-ini{width:32px;height:32px;border-radius:50%;background:var(--pri-l);color:var(--pri-d);
  display:grid;place-items:center;font-weight:700;font-size:12.5px}
.tb-nome{font-weight:650;font-size:13.5px;line-height:1.15}
.tb-papel{font-size:11.5px;color:var(--mut)}
.content{flex:1;min-width:0;padding:26px 30px 70px}
.mtop{display:none}
.botnav{display:none}

/* ── cabeçalho de página ───────────────────────────────────────────────── */
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:20px;flex-wrap:wrap}
.page-head h1{font-size:23px}
.page-head .sub{color:var(--mut);font-size:13.5px;margin-top:3px}
.head-actions{display:flex;gap:8px;flex-wrap:wrap}

/* ── cards ─────────────────────────────────────────────────────────────── */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh)}
.card-pad{padding:18px}
.card h2{font-size:15.5px;margin-bottom:12px}
.grid{display:grid;gap:14px}
.g4{grid-template-columns:repeat(4,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g2{grid-template-columns:repeat(2,1fr)}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;box-shadow:var(--sh)}
.stat .k{font-size:12px;color:var(--mut);text-transform:uppercase;letter-spacing:.06em}
.stat .v{font-size:29px;font-weight:700;letter-spacing:-.02em;margin-top:4px}
.stat .h{font-size:12.5px;color:var(--mut)}

/* ── botões ────────────────────────────────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--surface);
  color:var(--txt);padding:8px 14px;border-radius:9px;font-size:13.5px;font-weight:600;cursor:pointer;
  font-family:inherit;transition:.12s;white-space:nowrap;
}
.btn:hover{background:var(--line2)}
.btn-pri{background:var(--pri);border-color:var(--pri);color:#fff}
.btn-pri:hover{background:var(--pri-d);border-color:var(--pri-d)}
.btn-ok{background:var(--ok);border-color:var(--ok);color:#fff}
.btn-ok:hover{filter:brightness(.93)}
.btn-dan{color:var(--dan);border-color:#f0d3d3;background:var(--dan-l)}
.btn-dan:hover{background:#fbdcdc}
.btn-sm{padding:5px 10px;font-size:12.5px;border-radius:8px}
.btn-lg{padding:12px 20px;font-size:15px}
.btn:disabled{opacity:.5;cursor:not-allowed}

/* ── formulários ───────────────────────────────────────────────────────── */
label{display:block;font-size:12.5px;color:var(--mut);font-weight:600;margin-bottom:5px}
input,select,textarea{
  width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:9px;background:#fff;
  font-family:inherit;font-size:14px;color:var(--txt);outline:none;transition:.12s;
}
input:focus,select:focus,textarea:focus{border-color:var(--pri);box-shadow:0 0 0 3px rgba(13,125,140,.12)}
textarea{resize:vertical;min-height:84px;line-height:1.5}
.field{margin-bottom:13px}
.fgrid{display:grid;gap:12px}
.f2{grid-template-columns:1fr 1fr}
.f3{grid-template-columns:repeat(3,1fr)}
.f4{grid-template-columns:repeat(4,1fr)}
.f6{grid-template-columns:repeat(6,1fr)}

/* ── tabelas ───────────────────────────────────────────────────────────── */
.tbl-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:13.8px}
th{
  text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--mut);
  font-weight:700;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap;
}
td{padding:11px 12px;border-bottom:1px solid var(--line2);vertical-align:middle}
tbody tr:hover{background:#fafcfd}
tbody tr:last-child td{border-bottom:0}
.tnome{font-weight:600}
.tmut{color:var(--mut);font-size:12.5px}

/* ── badges ────────────────────────────────────────────────────────────── */
.badge{
  display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;
  font-size:11.5px;font-weight:700;letter-spacing:.01em;
}
.b-esp{background:#eef2f5;color:#4a6272}
.b-cham{background:var(--warn-l);color:var(--warn)}
.b-and{background:var(--pri-l);color:var(--pri-d)}
.b-fim{background:var(--ok-l);color:var(--ok)}
.b-can{background:var(--dan-l);color:var(--dan)}
.b-urg{background:var(--dan);color:#fff}
.b-pref{background:#fff3d6;color:#8a5a00}

/* ── fila ──────────────────────────────────────────────────────────────── */
.fila{display:flex;flex-direction:column;gap:10px}
.fitem{
  display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--line);
  border-left:4px solid var(--line);border-radius:var(--r);padding:13px 16px;box-shadow:var(--sh);
}
.fitem.p-urgencia{border-left-color:var(--dan)}
.fitem.p-preferencial{border-left-color:#d99a00}
.fitem.p-normal{border-left-color:var(--pri)}
.fitem.s-em_atendimento{background:#f4fbfc}
.fsenha{
  font-size:16px;font-weight:800;letter-spacing:.02em;background:#0f2630;color:#fff;
  padding:8px 11px;border-radius:9px;min-width:62px;text-align:center;
}
.finfo{flex:1;min-width:0}
.fnome{font-weight:650;font-size:15px}
.fmeta{color:var(--mut);font-size:12.5px;display:flex;gap:10px;flex-wrap:wrap;margin-top:2px}
.facoes{display:flex;gap:7px;flex-wrap:wrap}
.fbadges{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.vazio{text-align:center;color:var(--mut);padding:36px 12px;font-size:14px}

/* ── modal ─────────────────────────────────────────────────────────────── */
.modal-overlay{
  position:fixed;inset:0;background:rgba(10,26,34,.45);display:grid;place-items:center;
  z-index:60;padding:20px;overflow:auto;
}
.modal{
  background:var(--surface);border-radius:14px;width:min(560px,100%);box-shadow:0 20px 60px rgba(8,22,30,.3);
  max-height:92vh;overflow:auto;
}
.modal-lg{width:min(900px,100%)}
.modal-head{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line)}
.modal-head h2{font-size:16.5px}
.modal-body{padding:18px 20px}
.modal-foot{display:flex;justify-content:flex-end;gap:9px;padding:14px 20px;border-top:1px solid var(--line);background:#fbfcfd;border-radius:0 0 14px 14px}
.x{border:0;background:none;font-size:19px;color:var(--mut);cursor:pointer;line-height:1;padding:4px}

/* ── login ─────────────────────────────────────────────────────────────── */
.login-wrap{min-height:100vh;display:grid;place-items:center;background:var(--bg);padding:22px}
.login-box{width:min(378px,100%);background:#fff;border:1px solid var(--line);border-radius:16px;padding:38px 32px;box-shadow:0 10px 40px rgba(16,40,52,.08)}
.login-logo{display:flex;justify-content:center;margin-bottom:18px}
.login-box h1{text-align:center;font-size:20px;letter-spacing:-.02em}
.login-box h1 span{font-weight:400;color:var(--mut)}
.login-box .tagline{text-align:center;color:var(--mut);font-size:13px;margin:6px 0 24px}
.login-box input{margin-bottom:11px;padding:11px 13px}
.login-box button{width:100%;padding:12px;border:0;border-radius:9px;background:var(--pri);color:#fff;font-size:14.5px;font-weight:650;cursor:pointer;font-family:inherit}
.login-box button:hover{background:var(--pri-d)}
.login-erro{margin-top:14px;background:var(--dan-l);color:var(--dan);padding:9px 12px;border-radius:9px;font-size:13px;text-align:center}
.login-assina{margin-top:22px;text-align:center;font-size:11.5px;color:#a9b7c1}
.login-assina a{color:#7d909c;font-weight:600;text-decoration:underline dotted;text-underline-offset:3px;transition:color .15s}
.login-assina a:hover{color:var(--pri);text-decoration-style:solid}


/* logo enviada pela clínica */
.logo-cli,.logo-sis{display:block;object-fit:contain;flex:0 0 auto;width:auto}
.side .logo-sis{max-width:100%}
.logo-box{display:flex;gap:16px;align-items:center;flex-wrap:wrap;padding:14px;border:1px dashed var(--line);
  border-radius:10px;background:#fbfdfd;margin-bottom:14px}
.logo-prev{min-width:120px;padding:10px 14px;height:84px;display:grid;place-items:center;background:#fff;border:1px solid var(--line);border-radius:10px}
.brand-cli{flex-direction:column;align-items:flex-start;gap:8px}
.bname.bcli{font-size:13.5px;line-height:1.25}
.painel .logo-cli{background:#fff;border-radius:10px;padding:4px 8px;box-sizing:content-box}
.login-logo .logo-cli,.login-logo .logo-sis{margin:0 auto;max-width:100%}

/* ── atalhos grandes do Início ───────────────────────────────────────── */
.atalhos-grandes{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
.atalho{display:flex;align-items:center;gap:14px;padding:18px;border-radius:var(--r);background:var(--surface);
  border:1px solid var(--line);box-shadow:var(--sh);color:var(--txt);transition:.12s}
.atalho:hover{border-color:var(--pri);transform:translateY(-1px)}
.atalho .ico{color:var(--pri);flex:0 0 auto}
.atalho b{display:block;font-size:15.5px}
.atalho small{display:block;color:var(--mut);font-size:12.5px;margin-top:1px}
.atalho.pri{background:var(--pri);border-color:var(--pri);color:#fff}
.atalho.pri .ico,.atalho.pri small{color:#d7eef1}


/* ── fila do médico ───────────────────────────────────────────────────── */
.proximo{display:flex;align-items:center;gap:16px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);
  border-left:5px solid var(--pri);border-radius:var(--r);box-shadow:var(--sh);padding:18px 20px;margin-bottom:20px}
.proximo.chamando{border-left-color:var(--warn);background:#fffaf2}
.proximo .fsenha{font-size:22px;padding:10px 14px}
.prox-info{flex:1;min-width:200px}
.prox-rot{font-size:11.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--mut);font-weight:700}
.proximo.chamando .prox-rot{color:var(--warn)}
.prox-nome{font-size:21px;font-weight:700;margin:2px 0 4px}
.prox-acoes{display:flex;gap:8px;flex-wrap:wrap}
.fila-tit{font-size:13px;text-transform:uppercase;letter-spacing:.07em;color:var(--mut);margin:0 0 10px}
.link{border:0;background:none;color:var(--pri);font:inherit;cursor:pointer;text-decoration:underline;padding:0 0 0 4px}

/* ── consulta ──────────────────────────────────────────────────────────── */
.consulta{display:grid;grid-template-columns:1fr 320px;gap:16px;align-items:start}
.sec{margin-bottom:18px}
.sec h3{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--pri-d);margin-bottom:9px}
.pac-head{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:16px;padding:15px 18px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh)}
.pac-ini{width:46px;height:46px;border-radius:50%;background:var(--pri-l);color:var(--pri-d);display:grid;place-items:center;font-weight:700;font-size:16px}
.alerta{background:var(--dan-l);color:var(--dan);border:1px solid #f4d4d4;padding:9px 13px;border-radius:9px;font-size:13px;font-weight:600}
.item-lista{display:flex;flex-direction:column;gap:7px;margin-bottom:12px}
.item{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#fbfdfd}
.item .num{color:var(--mut);font-weight:700;font-size:12.5px;padding-top:1px}
.item .desc{flex:1;min-width:0}
.item .desc b{font-weight:650}
.tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);margin-bottom:16px;flex-wrap:wrap}
.tabs button{
  border:0;background:none;padding:9px 14px;font-size:13.5px;font-weight:600;color:var(--mut);
  cursor:pointer;font-family:inherit;border-bottom:2px solid transparent;margin-bottom:-1px;
}
.tabs button.on{color:var(--pri-d);border-bottom-color:var(--pri)}
.toast{position:fixed;bottom:22px;right:22px;background:#0f2630;color:#fff;padding:11px 17px;border-radius:10px;font-size:13.5px;box-shadow:0 8px 30px rgba(8,22,30,.35);z-index:80}

/* ── timeline do histórico ─────────────────────────────────────────────── */
.tl{display:flex;flex-direction:column;gap:10px}
.tl-item{border-left:2px solid var(--line);padding:2px 0 14px 16px;position:relative}
.tl-item::before{content:'';position:absolute;left:-6px;top:4px;width:10px;height:10px;border-radius:50%;background:var(--pri)}
.tl-data{font-size:12.5px;color:var(--mut);font-weight:600}

/* ── painel da sala de espera ──────────────────────────────────────────── */
.painel{min-height:100vh;background:#0c1f27;color:#fff;display:flex;flex-direction:column;padding:28px 34px}
.painel-top{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(255,255,255,.12);padding-bottom:16px}
.painel-top .pnome{font-size:21px;font-weight:700;letter-spacing:-.01em;display:flex;align-items:center;gap:11px}
.plogo{flex:0 0 auto}
.painel-top .phora{font-size:26px;font-weight:300;font-variant-numeric:tabular-nums;color:#9fd6dd}
.painel-main{flex:1;display:grid;place-items:center;text-align:center;padding:30px 0}
.painel-rot{font-size:15px;letter-spacing:.24em;text-transform:uppercase;color:#7fc4ce}
.painel-nome{font-size:clamp(38px,7.5vw,92px);font-weight:800;letter-spacing:-.02em;line-height:1.05;margin:14px 0}
.painel-sala{font-size:clamp(20px,3vw,34px);color:#9fd6dd;font-weight:600}
.painel-senha{display:inline-block;margin-top:18px;background:#12b0a0;color:#04262a;font-size:clamp(22px,3vw,34px);font-weight:800;padding:8px 22px;border-radius:12px;letter-spacing:.04em}
.painel-hist{border-top:1px solid rgba(255,255,255,.12);padding-top:16px}
.painel-hist h4{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#7fc4ce;margin:0 0 10px;font-weight:600}
.phist{display:flex;gap:10px;flex-wrap:wrap}
.phist div{background:rgba(255,255,255,.07);border-radius:10px;padding:9px 14px;font-size:14.5px}
.phist span{color:#9fd6dd;margin-left:8px;font-size:13px}
.passos{margin:0 0 0 18px;padding:0;display:flex;flex-direction:column;gap:9px;font-size:13.5px}
.passos code{background:var(--line2);padding:1px 5px;border-radius:5px;font-size:12px;word-break:break-all}
.painel-som-aviso{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);display:flex;gap:14px;align-items:center;
  background:rgba(4,38,42,.92);border:1px solid #12b0a0;color:#dff5f2;padding:12px 14px 12px 18px;border-radius:12px;
  font-size:15px;max-width:calc(100% - 32px);box-shadow:0 10px 30px rgba(0,0,0,.35)}
.painel-som-aviso .painel-som{position:static}
.painel-som{position:fixed;right:20px;bottom:20px;background:#12b0a0;color:#04262a;border:0;padding:10px 16px;border-radius:10px;font-weight:700;cursor:pointer;font-family:inherit;font-size:13.5px}
.piscar{animation:piscar 1s ease-in-out 6}
@keyframes piscar{0%,100%{opacity:1}50%{opacity:.35}}

/* ── impressão ─────────────────────────────────────────────────────────── */
.doc{max-width:760px;margin:0 auto;background:#fff;padding:40px 46px;color:#000;font-size:14px}
.doc-head{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2px solid #000;padding-bottom:12px;margin-bottom:22px}
.doc-head .cnome{font-size:19px;font-weight:700}
.doc-head .cinfo{font-size:12px;color:#333;line-height:1.5}
.doc h1{font-size:17px;text-align:center;text-transform:uppercase;letter-spacing:.08em;margin:0 0 20px}
.doc .pac{font-size:13.5px;margin-bottom:20px;line-height:1.7}
.doc .corpo{min-height:320px;line-height:1.9;white-space:pre-wrap}
.doc .rx{margin-bottom:18px;line-height:1.6}
.doc .rx b{font-size:14.5px}
.doc .rx .pos{padding-left:20px;color:#222}
.doc .assin{margin-top:64px;text-align:center;font-size:13px}
.doc .assin .linha{width:290px;border-top:1px solid #000;margin:0 auto 6px}
.doc .rodape{margin-top:26px;border-top:1px solid #ccc;padding-top:10px;font-size:11px;color:#555;text-align:center}
.doc-barra{max-width:760px;margin:16px auto;display:flex;gap:8px;justify-content:flex-end}
.sec-doc{margin-bottom:16px}
.sec-doc h3{font-size:12.5px;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid #999;padding-bottom:3px;margin-bottom:6px}
.sec-doc p{margin:0;white-space:pre-wrap;line-height:1.6}
.ia-doc{margin-top:28px;padding-top:14px;border-top:2px dashed #999;font-size:12.5px;break-inside:auto}
.ia-doc h3{font-size:12.5px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}
.ia-doc-aviso{font-style:italic;color:#444;margin-bottom:10px}
.ia-doc .ia-texto h4{color:#000;font-size:11.5px;margin:10px 0 4px}
.ia-doc .ia-texto p,.ia-doc .ia-texto li{margin:2px 0}
body:has(.doc-barra){background:#e9eef1}
@media print{
  body{background:#fff}
  .doc-barra,.side,.botnav,.mtop,.topbar,#blazor-error-ui{display:none!important}
  .doc{max-width:none;padding:0;box-shadow:none}
  @page{margin:18mm 16mm}
}

/* ── erro blazor ───────────────────────────────────────────────────────── */
#blazor-error-ui{
  display:none;position:fixed;bottom:0;left:0;right:0;background:#fff3cd;color:#664d03;
  padding:12px 18px;font-size:13.5px;box-shadow:0 -2px 10px rgba(0,0,0,.1);z-index:100;
}
#blazor-error-ui a{text-decoration:underline;cursor:pointer;margin-left:8px}




/* ── consulta ─────────────────────────────────────────────────────────── */
.consulta>*{min-width:0}
.cons-head{position:sticky;top:0;z-index:15;background:var(--bg);padding:6px 0 2px;margin:-6px 0 12px}
.cons-head .pac-head{margin-bottom:0}
.cons-head .alerta{margin-top:8px}
.cons-acoes{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.salvo{font-size:12px;color:var(--ok);margin-right:4px}
.salvo.pend{color:var(--warn)}
.cons-lado{display:flex;flex-direction:column;gap:14px}
.btn-imp{justify-content:flex-start}
.btn-imp .ico{color:var(--pri)}
.conf-lista{display:flex;flex-direction:column;gap:6px}
.conf-lista>div{padding:8px 12px;border-radius:8px;background:var(--line2);font-size:13.5px}
.conf-lista>div.ok::before{content:"✓ ";color:var(--ok);font-weight:700}
.conf-lista>div.falta{background:var(--warn-l);color:var(--warn)}
.conf-lista>div.falta::before{content:"! ";font-weight:700}
.ia-card{border-top:3px solid #7c5cc4}
.btn-ia{background:#f3effb;border-color:#d9cdf3;color:#5b3fa6}
.btn-ia:hover{background:#e9e1f8}
.ia-aviso{background:#f3effb;color:#5b3fa6;border:1px solid #e2d8f6;border-radius:9px;padding:9px 12px;font-size:12.5px;margin-bottom:14px}
.ia-texto h4{font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--pri-d);margin:16px 0 6px}
.ia-texto h4:first-child{margin-top:0}
.ia-texto ul{margin:0 0 6px 18px;padding:0}
.ia-texto li{margin:3px 0}
.ia-texto p{margin:0 0 6px}
.ia-incluir{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:16px;padding:10px 12px;
  border:1px dashed var(--line);border-radius:9px;font-size:13px;color:var(--mut)}
.ia-incluir span{flex:1;min-width:200px}
.ia-incluir.on{border-style:solid;border-color:#cfe7d6;background:var(--ok-l);color:var(--ok)}
.ia-hist{margin:10px 0 14px;border:1px solid #e2d8f6;border-radius:9px;background:#faf8fe}
.ia-hist-btn{width:100%;text-align:left;border:0;background:none;padding:9px 12px;font:inherit;font-size:13px;
  font-weight:600;color:#5b3fa6;cursor:pointer}
.ia-hist-corpo{padding:0 14px 12px;font-size:13.5px}
.dados-2{grid-template-columns:1fr 1fr;padding:10px 12px;gap:10px 14px;margin:0}
/* recepção: iniciar atendimento */
.passo{font-size:11.5px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--pri-d);margin-bottom:10px}
.pac-item{cursor:pointer;align-items:center}
.pac-item:hover{border-color:var(--pri);background:var(--pri-l)}
.cad-rapido{margin-top:12px;padding:14px;border:1px dashed var(--line);border-radius:10px;background:#fbfdfd}
.cad-tit{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.cad-tit h3{font-size:14px}

/* ── barra de filtros (uma linha, quebra quando falta espaço) ─────────────── */
.filtros{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin-bottom:14px}
.filtros .field{margin:0;flex:1 1 150px;max-width:210px}
.filtros .field.larga{flex:2 1 240px;max-width:none}
.filtros .acoes{display:flex;gap:8px}
.filtros .atalhos{margin-left:auto}
/* consultório do médico na fila */
.consultorio{display:flex;align-items:center;gap:8px}
.consultorio label{margin:0;white-space:nowrap}
.consultorio input{width:150px}
.t-acoes{white-space:nowrap;text-align:right}
.t-acoes .btn+.btn{margin-left:4px}

/* ── lista de pacientes ───────────────────────────────────────────────── */
.pac-filtros{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.busca{position:relative;flex:1 1 320px;max-width:460px;display:flex;align-items:center}
.busca>.ico{position:absolute;left:12px;color:var(--mut);pointer-events:none}
.busca input{padding-left:38px;padding-right:34px;background:var(--surface)}
.busca .x{position:absolute;right:6px;display:grid;place-items:center}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{border:1px solid var(--line);background:var(--surface);color:#3d5260;border-radius:999px;
  padding:6px 12px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;display:inline-flex;gap:6px;align-items:center}
.chip span{font-size:11.5px;color:var(--mut);background:var(--line2);border-radius:999px;padding:1px 7px}
.chip:hover{border-color:#c9d6de}
.chip.on{background:var(--pri-l);border-color:#bfe0e4;color:var(--pri-d)}
.chip.on span{background:#fff;color:var(--pri-d)}
.tbl-pac tr.linha{cursor:pointer;transition:background .1s}
.tbl-pac tr.linha:hover{background:#f7fafb}
.tbl-pac tr:last-child td{border-bottom:0}
.pac-cel{display:flex;align-items:center;gap:11px}
.pac-cel .tnome{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.tel{display:inline-flex;align-items:center;gap:6px;color:var(--txt);white-space:nowrap}
.tel .ico{color:var(--mut)}
.tel:hover{color:var(--pri-d)}
.c-idade,.c-ult{white-space:nowrap}
.c-acoes{white-space:nowrap;text-align:right;width:1%}
.c-acoes .btn+.btn{margin-left:4px}
.btn-ico{padding:5px 8px}
.b-part{background:var(--line2);color:#3d5260}
.dados{display:grid;grid-template-columns:repeat(3,1fr);gap:12px 18px;margin:4px 0 6px;
  padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:#fbfdfd}
.dados dt{font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--mut);font-weight:700}
.dados dd{margin:2px 0 0;font-size:13.8px;overflow-wrap:anywhere}
.dados .larga{grid-column:1/-1}
.ficha-sec{font-size:14px;margin:20px 0 10px}

/* ── responsivo ────────────────────────────────────────────────────────── */
@media (max-width:1100px){
  .atalhos-grandes{grid-template-columns:1fr 1fr}
  .g4{grid-template-columns:repeat(2,1fr)}
  .consulta{grid-template-columns:1fr}
}
@media (max-width:860px){
  .side{display:none}
  .content{padding:0 14px 76px}
  .mtop{
    display:flex;align-items:center;gap:10px;padding:12px 2px;margin:0 -14px 14px;
    padding-inline:14px;background:var(--surface);border-bottom:1px solid var(--line);
    position:sticky;top:0;z-index:20;
  }
  .mname{font-weight:700;flex:1}
  .topbar{display:none}
  .botnav{
    display:flex;position:fixed;bottom:0;left:0;right:0;background:var(--surface);
    border-top:1px solid var(--line);z-index:40;padding:6px 4px calc(6px + env(safe-area-inset-bottom,0px));
  }
  .botnav a,.botnav button{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11px;
    color:var(--mut);padding:5px 2px;font-weight:600;border:0;background:none;font-family:inherit;cursor:pointer}
  .botnav a.active,.botnav button.active{color:var(--pri-d)}
  .g3,.g2,.f2,.f3,.f4,.f6{grid-template-columns:1fr}
  .g4{grid-template-columns:repeat(2,1fr);gap:10px}
  .atalhos-grandes{grid-template-columns:1fr 1fr;gap:10px}
  .atalho{flex-direction:column;align-items:flex-start;gap:8px;padding:14px}
  .stat{padding:12px 14px}
  .stat .v{font-size:24px}
  .stat .k{font-size:11px}
  .page-head h1{font-size:20px}
  .fitem{display:grid;grid-template-columns:auto 1fr;gap:10px 12px;align-items:center;padding:12px 13px}
  .fsenha{font-size:15px;padding:7px 9px;min-width:56px}
  .fitem .fbadges{grid-column:1/-1}
  .facoes{grid-column:1/-1}
  .facoes .btn{flex:1;justify-content:center}
  .fnome{font-size:14.5px}
  .fmeta{font-size:12px;gap:8px}
  .doc{padding:22px 18px}
  /* consulta: cabeçalho não fixa no celular (ocuparia meia tela); sinais vitais em 3 colunas */
  .cons-head{position:static;margin:0 0 12px;padding:0}
  .cons-acoes{width:100%}
  .cons-acoes .btn{flex:1;justify-content:center}
  .salvo{flex:1 1 100%}
  .consulta .fgrid.f6{grid-template-columns:repeat(3,1fr)}
  /* cabeçalho: botões ocupam a largura, sem sobrar um sozinho na linha */
  .page-head{align-items:stretch;margin-bottom:14px}
  .head-actions{width:100%}
  .head-actions>.btn,.head-actions>a.btn{flex:1 1 auto;justify-content:center}
  .head-actions>select{flex:1 1 100%;width:auto!important}
  .consultorio{flex:1 1 100%}
  .prox-acoes{width:100%}
  .prox-acoes .btn{flex:1;justify-content:center}
  .consultorio input{flex:1;width:auto}
  .tabs{flex-wrap:nowrap;overflow-x:auto;margin-left:-14px;margin-right:-14px;padding:0 14px}
  .tabs button{flex:0 0 auto;white-space:nowrap}
  .filtros{gap:10px}
  .filtros .field,.filtros .field.larga{flex:1 1 calc(50% - 5px);max-width:none}
  .filtros .field.larga{flex-basis:100%}
  .filtros .acoes{flex:1 1 100%}
  .filtros .acoes .btn{flex:1;justify-content:center}
  .filtros .atalhos{margin-left:0}
  /* tabelas marcadas com tbl-cards viram cartões: título, pares rótulo/valor e ações */
  .tbl-cards thead{display:none}
  .tbl-cards,.tbl-cards tbody{display:block}
  .tbl-cards tr{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;padding:13px 14px;border-bottom:1px solid var(--line2)}
  .tbl-cards tr:last-child{border-bottom:0}
  .tbl-cards td{border:0;padding:0;font-size:13.5px;text-align:left!important;min-width:0}
  .tbl-cards td[data-rot]::before{content:attr(data-rot);display:block;font-size:10.5px;font-weight:700;
    text-transform:uppercase;letter-spacing:.05em;color:var(--mut);margin-bottom:1px}
  .tbl-cards td.t-tit{grid-column:1/-1;font-size:15px;font-weight:650;order:-1}
  .tbl-cards td.t-acoes{order:99}
  .tbl-cards td.t-acoes{grid-column:1/-1;display:flex;gap:6px;flex-wrap:wrap}
  .tbl-cards td.t-acoes .btn{flex:1;justify-content:center;margin:0}
  .tbl-cards td.t-cheia{grid-column:1/-1}
  .tbl-cards tr:has(td.t-cheia){display:block}
  /* pacientes: cada linha vira um cartão */
  .pac-filtros{gap:10px}
  .busca{max-width:none;flex-basis:100%}
  .chips{overflow-x:auto;flex-wrap:nowrap;margin:0 -14px;padding:0 14px 2px}
  .chip{flex:0 0 auto}
  .tbl-pac thead{display:none}
  .tbl-pac,.tbl-pac tbody{display:block}
  .tbl-pac tr.linha{display:grid;grid-template-columns:1fr auto;gap:6px 12px;padding:13px 14px;border-bottom:1px solid var(--line2)}
  .tbl-pac tr.linha:last-child{border-bottom:0}
  .tbl-pac tr.linha td{border:0;padding:0}
  .tbl-pac .c-pac{grid-column:1/-1}
  .tbl-pac .c-idade,.tbl-pac .c-ult{display:none}
  .tbl-pac .c-tel{font-size:13px}
  .tbl-pac .c-conv{text-align:right}
  .tbl-pac .c-acoes{grid-column:1/-1;width:auto;text-align:left;display:flex;gap:6px;margin-top:4px}
  .tbl-pac .c-acoes .btn{flex:1;justify-content:center;margin:0}
  .tbl-pac .c-acoes .btn-ico{flex:0 0 auto}
  .tbl-pac tr.linha-vazia,.tbl-pac tr.linha-vazia td{display:block;border:0}
  .dados{grid-template-columns:1fr 1fr}
  .modal-foot{flex-wrap:wrap}
}
.doc-marca{display:flex;align-items:center;gap:12px}

/* blocos de prévia (configurações, agenda) */
.prev{margin-top:16px;border:1px dashed var(--line);border-radius:10px;padding:14px;background:#fbfdfd}
.prev-tit{font-size:11.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--mut);margin-bottom:10px}
.prev-doc{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);
  border-radius:8px;padding:14px 16px}

/* ── anexos do prontuário ─────────────────────────────────────────────── */
.anx-envio{border:1px dashed var(--line);border-radius:10px;padding:14px;background:#fbfdfd;margin-bottom:14px}
.anx-drop{display:flex;align-items:center;gap:12px;margin-top:12px;padding:12px 14px;border:1px solid var(--line);
  border-radius:9px;background:#fff;cursor:pointer;font-size:13px;color:var(--mut)}
.anx-drop:hover{border-color:var(--pri);background:var(--pri-l)}
.anx-drop input[type=file]{max-width:210px;font-size:12.5px}
.anx-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.anx-card{display:flex;gap:11px;border:1px solid var(--line);border-radius:10px;padding:10px;background:#fff}
.anx-thumb{width:64px;height:64px;flex:0 0 64px;border-radius:8px;overflow:hidden;background:var(--line2);
  display:grid;place-items:center}
.anx-thumb img{width:100%;height:100%;object-fit:cover}
.anx-ico{font-size:11px;font-weight:800;letter-spacing:.06em;color:var(--pri-d)}
.anx-info{min-width:0;flex:1}
.anx-nome{font-weight:650;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.anx-meta{font-size:11.5px;color:var(--mut);margin-top:2px}
.anx-acoes{display:flex;gap:5px;margin-top:7px;flex-wrap:wrap}

/* consulta finalizada: prontuário só leitura + adendos */
fieldset.trava{border:0;padding:0;margin:0;min-width:0}
fieldset.trava:disabled input,fieldset.trava:disabled textarea,fieldset.trava:disabled select{background:#f6f9fa;color:var(--txt);cursor:default}
fieldset.trava:disabled button.btn{display:none}
.trava-aviso{margin-top:10px;background:#eef6f7;border:1px solid #cfe3e6;color:#0a4f58;padding:10px 14px;border-radius:10px;font-size:13.5px;line-height:1.5}
.adendos{margin-top:10px}
.adendos h3{font-size:14px;margin-bottom:8px}
.adendo-lista{display:flex;flex-direction:column;gap:8px}
.adendo{border-left:3px solid var(--pri);background:#f7fafb;padding:8px 12px;border-radius:0 8px 8px 0}
.adendo-meta{font-size:12px;color:#6b7f8b;margin-bottom:3px}
.adendo-texto{white-space:pre-wrap;font-size:13.5px}
.filtro-fixo{display:flex;gap:10px;align-items:center;min-height:38px;font-weight:600}

/* ── MoveX Estética ─────────────────────────────────────────────── */
.b-pend{background:#fff3d6;color:#8a5a00}
.foto-btn{position:relative;overflow:hidden;cursor:pointer}
.foto-btn input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.fotos-botoes{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.fotos-botoes .foto-cat{width:auto;padding:7px 10px}
.fotos-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.fotos-cols h4{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--pri-d);margin:4px 0 8px}
.fotos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}
.foto img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:10px;border:1px solid var(--line);display:block}
.foto-meta{font-size:11.5px;color:var(--mut);display:flex;justify-content:space-between;margin-top:3px}
.termo-item{flex-wrap:wrap}
.termo-acoes{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.termo-texto{white-space:pre-wrap;line-height:1.65;font-size:13.5px;text-align:justify}
.doc-tab{width:100%;border-collapse:collapse;font-size:13px}
.doc-tab td,.doc-tab th{border:1px solid #bbb;padding:5px 7px;text-align:left;vertical-align:top}
.doc-tab td:first-child{width:34%;color:#333}
.doc-grade td:first-child{width:auto}
.doc .pre{white-space:pre-wrap}
.doc .declara{margin-top:20px;font-size:12.5px;line-height:1.6}
.assin-duplo{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:56px;text-align:center;font-size:12.5px;break-inside:avoid}
.assin-duplo .linha{border-top:1px solid #000;margin-bottom:6px}
@media (max-width:700px){ .fotos-cols{grid-template-columns:1fr} }

/* paleta do MoveX Estética: rosé/terracota no lugar do verde-azulado */
body.produto-estetica{--pri:#9a6b5f;--pri-d:#74493f;--pri-l:#f6ece8}
.est-atalhos{grid-template-columns:repeat(3,1fr)}
.est-atalhos button.atalho{font:inherit;text-align:left;cursor:pointer;color:inherit}
.est-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:16px;align-items:start}
.est-grid h2{font-size:15px;margin-bottom:10px}
.est-lado{display:flex;flex-direction:column;gap:16px}
.hora-ag{font-weight:700;font-size:15px;color:var(--pri-d);min-width:48px;padding-top:1px}
.item-click{width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer}
.item-click:hover{border-color:var(--pri);background:var(--pri-l)}
.busca-grande{font-size:16px;padding:12px 14px}
@media (max-width:860px){ .est-grid{grid-template-columns:1fr} .est-atalhos{grid-template-columns:1fr} }
.campo-termo{display:inline-block;background:var(--pri-l);color:var(--pri-d);border-radius:5px;padding:0 5px;margin:2px 2px;font-size:11.5px}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px}
.kpi .kv{font-size:26px;font-weight:700;color:var(--pri-d);line-height:1.1}
.kpi .kl{font-size:12.5px;color:var(--mut)}
.barra-linha{margin-bottom:10px}
.barra-rot{display:flex;justify-content:space-between;font-size:13.5px;margin-bottom:3px}
.barra{height:8px;background:var(--line2);border-radius:99px;overflow:hidden}
.barra div{height:100%;background:var(--pri);border-radius:99px}
@media (max-width:700px){ .kpis{grid-template-columns:repeat(2,1fr)} }
.produto-estetica .c-conv{display:none}
.foto-btn{display:inline-flex;align-items:center;gap:6px}
