@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@500;700;800&family=Inter:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500;600&display=swap');
:root{
  --yellow:#F2A900; --yellow-dark:#C98600; --yellow-bg:#FDF1DA;
  --bg:#FAF7F0; --card:#FFFFFF; --ink:#241E12; --muted:#8A8170; --line:#ECE3D2;
  --teal:#1F9E7D; --teal-bg:#E3F5EF; --amber:#E8801D; --amber-bg:#FCEBDB;
  --red:#D8543F; --red-bg:#FBE6E2; --stage-off:#ECE3D2;
  --purple:#6E56A8; --purple-bg:#EFEAF9;
}
*{box-sizing:border-box;}
body{margin:0;background:var(--bg);color:var(--ink);font-family:'Inter',sans-serif;-webkit-font-smoothing:antialiased;}
.wrap{max-width:1220px;margin:0 auto;padding:28px 20px 80px;}
.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;flex-wrap:wrap;gap:14px;}
.brand{display:flex;align-items:center;gap:12px;}
.brand-mark{width:42px;height:42px;border-radius:11px;background:var(--yellow);display:flex;align-items:center;justify-content:center;font-family:'Manrope',sans-serif;font-weight:800;color:#3A2A00;font-size:18px;flex-shrink:0;}
.brand h1{font-family:'Manrope',sans-serif;font-weight:800;font-size:21px;margin:0;letter-spacing:-0.01em;}
.brand span{display:block;font-size:12.5px;color:var(--muted);font-weight:500;}
.tabs{display:flex;gap:4px;background:var(--card);padding:5px;border-radius:12px;border:1px solid var(--line);flex-wrap:wrap;}
.tab-btn{border:none;background:transparent;padding:9px 16px;border-radius:9px;font-family:'Inter';font-weight:600;font-size:13.5px;color:var(--muted);cursor:pointer;transition:all .15s;}
.tab-btn.active{background:var(--yellow);color:#3A2A00;}
.tab-btn:not(.active):hover{background:var(--bg);color:var(--ink);}
.view{display:none;} .view.active{display:block;animation:fadein .25s ease;}
.subview{display:none;} .subview.active{display:block;animation:fadein .25s ease;}
@keyframes fadein{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
.grid-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin-bottom:22px;}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px 20px;}
.card .num{font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:26px;line-height:1;margin-bottom:6px;}
.card .lbl{font-size:12.5px;color:var(--muted);font-weight:500;}
.card.warn .num{color:var(--amber);} .card.danger .num{color:var(--red);} .card.ok .num{color:var(--teal);} .card.blue .num{color:var(--yellow-dark);} .card.purple .num{color:var(--purple);}
.section-title{font-family:'Manrope',sans-serif;font-weight:700;font-size:15.5px;margin:26px 0 12px;color:var(--ink);}
.panel{background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden;}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.table-scroll table{min-width:640px;}
table{width:100%;border-collapse:collapse;font-size:13.5px;}
th{text-align:left;padding:10px 14px;background:var(--bg);color:var(--muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--line);}
td{padding:11px 14px;border-bottom:1px solid var(--line);vertical-align:middle;}
tr:last-child td{border-bottom:none;}
tbody tr:hover{background:#FFFDF7;}
.mono{font-family:'IBM Plex Mono',monospace;} .muted{color:var(--muted);}
.visit-row td{background:#FFFDF7;font-weight:600;border-bottom:1px solid var(--line);}
.proc-row td{padding-left:30px;border-bottom:1px solid var(--line);}
.stepper{display:flex;align-items:center;gap:3px;}
.dot{width:9px;height:9px;border-radius:50%;background:var(--stage-off);flex-shrink:0;}
.dot.on{background:var(--yellow-dark);} .dot.on.paid{background:var(--teal);}
.step-label{font-size:11.5px;margin-left:8px;font-weight:600;}
.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;padding:18px;}
.field{display:flex;flex-direction:column;gap:5px;}
.field label{font-size:11.5px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.02em;}
input,select,textarea{font-family:'Inter';font-size:13.5px;padding:9px 10px;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--ink);}
input:focus,select:focus,textarea:focus{outline:2px solid var(--yellow-dark);outline-offset:0;border-color:var(--yellow-dark);}
.field.wide{grid-column:span 2;}
textarea{resize:vertical;min-height:36px;}
.btn{border:none;border-radius:9px;padding:9px 16px;font-family:'Inter';font-weight:600;font-size:13.5px;cursor:pointer;transition:opacity .15s;}
.btn:hover{opacity:.88;}
.btn-primary{background:var(--yellow);color:#3A2A00;}
.btn-ghost{background:var(--bg);color:var(--ink);}
.btn-danger{background:var(--red-bg);color:var(--red);}
.btn-sm{padding:5px 10px;font-size:12px;border-radius:7px;}
.form-actions{display:flex;justify-content:flex-end;gap:8px;padding:0 18px 18px;}
.pill{display:inline-block;padding:3px 9px;border-radius:99px;font-size:11.5px;font-weight:600;}
.pill.pop{background:var(--teal-bg);color:var(--teal);}
.pill.cartao{background:var(--yellow-bg);color:var(--yellow-dark);}
.pill.convenio{background:var(--purple-bg);color:var(--purple);}
.toolbar{display:flex;gap:10px;padding:16px 18px 0;flex-wrap:wrap;align-items:center;}
.toolbar select,.toolbar input{max-width:190px;}
.toolbar .spacer{flex:1;}
.empty{padding:40px 20px;text-align:center;color:var(--muted);font-size:13.5px;}
.status-select{font-size:12.5px;padding:6px 8px;}
.small-btns{display:flex;gap:6px;flex-wrap:wrap;}
.readout{background:var(--bg);border-radius:10px;padding:12px 14px;margin:0 18px 16px;display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;font-size:12.5px;}
.readout div b{display:block;font-family:'IBM Plex Mono',monospace;font-size:15px;margin-top:2px;color:var(--ink);}
.note{background:var(--yellow-bg);border:1px solid #F0D9A3;border-radius:10px;padding:10px 14px;font-size:12.5px;color:#6B4E00;margin:0 18px 16px;overflow-wrap:break-word;word-break:break-word;}
.type-toggle{display:flex;gap:8px;padding:0 18px 4px;}
.type-btn{flex:1;text-align:center;padding:10px;border-radius:9px;border:1.5px solid var(--line);background:#fff;font-weight:700;font-size:13px;cursor:pointer;color:var(--muted);}
.type-btn.active.particular{background:var(--teal-bg);border-color:var(--teal);color:var(--teal);}
.type-btn.active.convenio{background:var(--purple-bg);border-color:var(--purple);color:var(--purple);}
footer{text-align:center;color:var(--muted);font-size:12px;margin-top:34px;}
@media(max-width:640px){.form-grid{grid-template-columns:1fr 1fr;}.field.wide{grid-column:span 2;}table{font-size:12px;}th,td{padding:8px;}}
.foto-thumb{position:relative;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:#000;aspect-ratio:4/3;}
.foto-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.foto-thumb button{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;border:none;background:rgba(0,0,0,.6);color:#fff;font-size:13px;line-height:1;cursor:pointer;}
.foto-thumb button:hover{background:var(--red);}
.foto-thumb .foto-toggle{left:4px;right:auto;}
.foto-thumb .foto-toggle:hover{background:var(--teal);}
.foto-thumb .foto-num{position:absolute;bottom:4px;left:4px;background:rgba(0,0,0,.6);color:#fff;font-size:10.5px;padding:1px 6px;border-radius:6px;font-family:'IBM Plex Mono',monospace;}

/* ---- Laudos: mapa de lesão (anuscopia) ---- */
#lau-anusco-svg-wrap svg{width:100%;height:auto;display:block;cursor:crosshair;user-select:none;}
.anusco-label{font-family:'Manrope',sans-serif;font-weight:700;font-size:15px;fill:var(--muted);}
.anusco-pin-circle{fill:var(--red);stroke:#fff;stroke-width:2;cursor:pointer;}
.anusco-pin-num{font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:13px;fill:#fff;text-anchor:middle;dominant-baseline:central;pointer-events:none;}

/* ---- Agenda: calendário semanal ---- */
.ag-legenda-item{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);font-weight:600;}
.ag-dot{width:12px;height:12px;border-radius:4px;border:1.5px solid;flex-shrink:0;display:inline-block;}
.ag-cal{display:grid;grid-template-columns:52px repeat(7,1fr);min-width:900px;}
.ag-cal-head{position:sticky;top:0;background:var(--card);z-index:2;border-bottom:1px solid var(--line);padding:10px 4px;text-align:center;font-family:'Manrope',sans-serif;font-weight:700;font-size:12.5px;}
.ag-cal-head.hoje{color:var(--yellow-dark);}
.ag-cal-head .dia-num{display:block;font-size:15px;margin-top:2px;}
.ag-cal-timecol{border-right:1px solid var(--line);}
.ag-cal-timelabel{font-size:10.5px;color:var(--muted);text-align:right;padding-right:6px;font-family:'IBM Plex Mono',monospace;transform:translateY(-6px);}
.ag-cal-daycol{position:relative;border-right:1px solid var(--line);background-image:repeating-linear-gradient(to bottom, var(--line) 0, var(--line) 1px, transparent 1px, transparent 60px);overflow-x:auto;overflow-y:hidden;}
.ag-cal-daycol.hoje{background-color:#FFFDF7;}
.ag-cal-event{position:absolute;left:2px;right:2px;border-radius:7px;border:1.5px solid var(--stage-off);background:var(--card);padding:3px 6px;overflow:hidden;cursor:pointer;font-size:11px;line-height:1.3;box-shadow:0 1px 2px rgba(0,0,0,.06);}
.ag-cal-event b{display:block;font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ag-cal-event.status-confirmado{background:var(--purple-bg);border-color:var(--purple);}
.ag-cal-event.status-chegou{background:var(--amber-bg);border-color:var(--amber);}
.ag-cal-event.status-atendido{background:var(--teal-bg);border-color:var(--teal);}
.ag-cal-event.status-cancelado{background:var(--red-bg);border-color:var(--red);text-decoration:line-through;opacity:.75;}
.ag-cal-empty-slot{position:absolute;left:2px;right:2px;height:20px;cursor:pointer;border-radius:6px;}
.ag-cal-empty-slot:hover{background:var(--yellow-bg);}
.ag-cal-mini-btn{position:absolute;top:2px;right:2px;width:18px;height:18px;border-radius:50%;border:1px solid currentColor;background:#fff;color:var(--ink);font-size:10px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;}
.ag-cal-mini-btn:hover{background:var(--yellow);border-color:var(--yellow-dark);}
.ag-cal-atender-btn{display:block;margin-top:2px;border:none;background:none;padding:0;font-size:10.5px;font-weight:700;color:var(--yellow-dark);cursor:pointer;text-decoration:underline;}
.ag-cal-atender-btn:hover{color:var(--ink);}

/* ---- WhatsApp ---- */
.wpp-shell{display:flex;height:640px;max-height:75vh;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--card);position:relative;}
.wpp-sidebar{width:300px;flex-shrink:0;border-right:1px solid var(--line);display:flex;flex-direction:column;background:var(--bg);}
.wpp-sidebar-top{padding:12px;border-bottom:1px solid var(--line);}
.wpp-sidebar-top input{width:100%;}
.wpp-lista{flex:1;overflow-y:auto;}
.wpp-conv-item{display:flex;gap:10px;align-items:center;padding:10px 12px;cursor:pointer;border-bottom:1px solid var(--line);}
.wpp-conv-item:hover{background:#FFFDF7;}
.wpp-conv-item.active{background:var(--yellow-bg);}
.wpp-conv-avatar,.wpp-chat-avatar{border-radius:50%;background:var(--teal-bg);color:var(--teal);display:flex;align-items:center;justify-content:center;font-weight:700;font-family:'Manrope';flex-shrink:0;overflow:hidden;}
.wpp-conv-avatar{width:40px;height:40px;font-size:14px;}
.wpp-chat-avatar{width:36px;height:36px;font-size:12.5px;}
.wpp-conv-avatar img,.wpp-chat-avatar img{width:100%;height:100%;object-fit:cover;}
.wpp-conv-info{flex:1;min-width:0;}
.wpp-conv-nome{font-weight:600;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.wpp-conv-preview{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.wpp-conv-meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0;}
.wpp-conv-hora{font-size:10.5px;color:var(--muted);}
.wpp-badge{background:var(--teal);color:#fff;font-size:10.5px;font-weight:700;border-radius:99px;min-width:18px;height:18px;display:flex;align-items:center;justify-content:center;padding:0 5px;}
.wpp-chat{flex:1;display:flex;flex-direction:column;min-width:0;}
#wpp-chat-body{display:flex;flex-direction:column;flex:1;min-height:0;}
.wpp-chat-header{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line);}
#wpp-voltar-btn{display:none;}
.wpp-mensagens{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:8px;background:#F7F2E4;}
.wpp-bubble{max-width:72%;padding:8px 11px;border-radius:12px;font-size:13.5px;line-height:1.45;box-shadow:0 1px 1px rgba(0,0,0,.06);word-wrap:break-word;}
.wpp-bubble.entrada{align-self:flex-start;background:#fff;border-bottom-left-radius:3px;}
.wpp-bubble.saida{align-self:flex-end;background:var(--teal-bg);border-bottom-right-radius:3px;}
.wpp-hora{display:block;text-align:right;font-size:10px;color:var(--muted);margin-top:3px;}
.wpp-bubble.saida .wpp-hora{color:#4a8a76;}
.wpp-input-bar{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--line);align-items:flex-end;}
.wpp-input-bar textarea{flex:1;resize:none;max-height:100px;font-family:'Inter';}
.wpp-pendencia-row{padding:8px 16px;background:var(--amber-bg);border-bottom:1px solid var(--line);font-size:12px;color:#6b4e00;display:flex;justify-content:space-between;align-items:center;gap:8px;}
.wpp-pin{color:var(--amber);margin-right:3px;}
#wpp-anexo-btn,#wpp-audio-btn{flex-shrink:0;padding:9px 11px;font-size:15px;}
#wpp-audio-btn.gravando{background:var(--red-bg);color:var(--red);animation:wpp-pulse 1s infinite;}
@keyframes wpp-pulse{0%,100%{opacity:1;}50%{opacity:.5;}}
.wpp-preview-anexo{display:flex;align-items:center;gap:10px;padding:8px 16px;background:var(--bg);border-top:1px solid var(--line);font-size:12.5px;}
.wpp-preview-anexo img{height:44px;width:44px;object-fit:cover;border-radius:8px;}
.wpp-preview-anexo .wpp-preview-nome{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.wpp-msg-img{max-width:220px;border-radius:10px;display:block;cursor:pointer;}
.wpp-msg-audio{width:230px;}
.wpp-msg-doc{display:flex;align-items:center;gap:8px;background:rgba(0,0,0,.04);border-radius:8px;padding:8px 10px;text-decoration:none;color:inherit;font-size:12.5px;font-weight:600;}
@media(max-width:800px){
  .wpp-shell{height:100vh;height:clamp(420px, calc(100dvh - 250px), 640px);}
  .wpp-sidebar{position:absolute;inset:0;z-index:2;width:100%;background:var(--card);}
  .wpp-shell.chat-aberto .wpp-sidebar{display:none;}
  #wpp-voltar-btn{display:inline-block;}
  #wpp-busca,#wpp-input{font-size:16px;} /* evita zoom automático no iOS */
}

/* ---- WhatsApp: abas com contador, status de sincronização e ações ---- */
/* Grade 2x2 em vez de 4 botões numa linha só.
   Com flex, um botão nunca encolhe abaixo da largura do próprio texto — era isso
   que fazia "Pendências"/"Grupos" vazarem por cima do chat. Grid com 1fr 1fr
   define a largura pela coluna, não pelo conteúdo, então não tem como transbordar. */
/* 3 abas numa linha só (Aguardando saiu — a presença ao vivo substitui essa função) */
.wpp-abas{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:10px 10px 0;}
.wpp-abas .type-btn{position:relative;min-width:0;width:100%;padding:9px 6px;font-size:12px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.wpp-count{display:inline-block;margin-left:5px;background:var(--ink);color:#fff;font-size:10px;font-weight:700;border-radius:99px;padding:1px 5px;min-width:16px;line-height:1.4;}
.wpp-count:empty{display:none;}
.wpp-abas .type-btn.active .wpp-count{background:#3A2A00;}
.wpp-sidebar-rodape{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;flex-wrap:wrap;}
.wpp-sidebar-rodape .btn{font-size:11.5px;padding:4px 9px;white-space:nowrap;}
.wpp-sync{font-size:11px;font-weight:600;display:inline-flex;align-items:center;gap:5px;}
.wpp-sync::before{content:'';width:7px;height:7px;border-radius:50%;background:currentColor;flex-shrink:0;}
.wpp-sync.ok{color:var(--teal);}
.wpp-sync.off{color:var(--amber);}
.wpp-acoes{display:flex;gap:2px;flex-shrink:0;}
.wpp-acoes .btn{padding:5px 7px;font-size:14px;}
.wpp-aguard{color:var(--amber);font-size:18px;line-height:0;margin-left:5px;vertical-align:middle;}
.wpp-seta{color:var(--muted);margin-right:3px;font-size:11px;}
.wpp-origem{font-size:9.5px;opacity:.75;margin-right:5px;text-transform:uppercase;letter-spacing:.02em;}
.wpp-tab-badge{display:inline-block;margin-left:6px;background:var(--red);color:#fff;font-size:10px;font-weight:700;border-radius:99px;padding:1px 5px;line-height:1.4;}
/* A coluna da esquerda tinha largura fixa e não podia encolher: qualquer conteúdo
   um pouco mais largo (as 3 abas) vazava por cima do chat. */
.wpp-sidebar{min-width:0;}
.wpp-sidebar-top{min-width:0;}
@media(max-width:1100px){
  .wpp-sidebar{width:260px;}
  .wpp-abas .type-btn{font-size:11.5px;padding:8px 4px;}
}
@media(max-width:800px){
  .wpp-acoes .btn{padding:6px 8px;}
  .wpp-sidebar{width:100%;}
  .wpp-abas .type-btn{font-size:11.5px;padding:8px 4px;}
}

/* ---- WhatsApp: identificação de quem respondeu ---- */
.wpp-autor{display:block;font-size:10.5px;font-weight:700;color:var(--teal);margin-bottom:2px;letter-spacing:.01em;}
.wpp-autor.celular{color:var(--muted);font-weight:600;font-style:italic;}
.wpp-atendente{color:var(--teal);font-weight:600;}
.wpp-bubble .wpp-seta{font-weight:700;color:var(--muted);}

/* ---- WhatsApp: gravação de áudio ---- */
#wpp-audio-btn.gravando{background:var(--red-bg);color:var(--red);font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:600;min-width:66px;animation:wpp-pulse 1s infinite;}
.wpp-preview-audio{height:32px;max-width:180px;flex-shrink:0;}
.wpp-preview-anexo .muted{font-size:11px;}

/* ---- WhatsApp: presença ao vivo ---- */
.wpp-presenca-banner{display:flex;align-items:center;padding:8px 16px;background:var(--amber-bg);border-bottom:1px solid var(--line);font-size:12.5px;color:#6b4e00;font-weight:600;}
.wpp-presenca-dot{display:inline-flex;align-items:center;gap:3px;margin-left:6px;font-size:10.5px;font-weight:700;color:var(--amber);background:var(--amber-bg);border-radius:99px;padding:1px 7px;white-space:nowrap;}

/* ---- WhatsApp: respostas rápidas ---- */
#wpp-respostas-btn{font-size:16px;}
.wpp-respostas-painel{position:absolute;bottom:64px;left:12px;right:12px;max-height:280px;overflow-y:auto;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 -4px 16px rgba(0,0,0,.1);z-index:5;}
.wpp-respostas-cabecalho{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--card);border-radius:12px 12px 0 0;}
.wpp-respostas-cabecalho div{display:flex;gap:4px;}
.wpp-resposta-item{display:flex;align-items:center;gap:6px;padding:10px 14px;border-bottom:1px solid var(--line);}
.wpp-resposta-item:last-child{border-bottom:none;}
.wpp-resposta-clicavel{flex:1;min-width:0;cursor:pointer;display:flex;flex-direction:column;gap:2px;}
.wpp-resposta-clicavel:hover b{color:var(--yellow-dark);}
.wpp-resposta-clicavel b{font-size:13px;}
.wpp-resposta-clicavel span{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.wpp-input-bar{position:relative;}
