/* ============================================================
   NEUROVITTA PRIME — PRONTUÁRIO (sistema interno)
   Redesign v31 — substitui app.css + v11/v12/v13/v15/v19/v20/v23/
   v24/v25/v26/v27/v29/v30. Mesma identidade do site institucional.
   Mantém 100% das classes, ids e atributos usados pelo JavaScript —
   nenhuma mudança de estrutura HTML ou de lógica foi feita aqui.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Newsreader:ital,opsz,wght@0,6..72,400;0,6..72,500;0,6..72,600;1,6..72,500&family=Work+Sans:wght@400;500;600&family=Space+Mono:wght@400;700&display=swap');

:root{
  --teal-950:#0D2E2A; --teal-900:#123A36; --teal-700:#1B5750; --teal-600:#1F6E63; --teal-100:#E4EFEC;
  --amber-500:#D9A441; --amber-600:#BE8A2E; --amber-700:#8F6A24;
  --paper-50:#F5F8F7; --paper-100:#EDF2F0; --white:#FFFFFF;
  --ink-900:#14201E; --ink-600:#4B5B57; --ink-400:#7E8E89;
  --mist-300:#CBD8D4; --mist-150:#E4EBE9;
  --danger:#B3452F; --danger-bg:#FBEAE5; --warn:#8F6A24; --warn-bg:#FCF3E3;
  --shadow-sm:0 1px 2px rgba(13,46,42,.05), 0 4px 16px rgba(13,46,42,.05);
  --shadow-md:0 8px 28px rgba(13,46,42,.09);
  --radius:14px; --radius-sm:9px;
}
*{box-sizing:border-box;}
body{margin:0;font-family:'Work Sans',-apple-system,sans-serif;background:var(--paper-50);color:var(--ink-900);line-height:1.55;-webkit-font-smoothing:antialiased;}
h1,h2,h3{font-family:'Newsreader',Georgia,serif;font-weight:500;margin:0 0 .3em;color:var(--teal-950);}
p{margin:0 0 .8em;color:var(--ink-600);}
button,input,select,textarea{font-family:'Work Sans';}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--amber-500);outline-offset:1px;}
code{font-family:'Space Mono',monospace;}

/* ---------- estrutura geral do app ---------- */
.app-shell{display:flex;min-height:100vh;}
.sidebar{width:246px;flex-shrink:0;background:var(--teal-950);color:#CFE3DF;padding:22px 16px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;}
.sidebar-brand{display:flex;align-items:center;gap:10px;text-decoration:none;margin-bottom:24px;padding:0 6px;}
.sidebar-brand img{width:32px;}
.sidebar-brand small{display:block;font-family:'Space Mono',monospace;font-size:9px;letter-spacing:.12em;color:#7FA69C;}
.sidebar-brand strong{display:block;font-family:'Newsreader',serif;font-size:14.5px;color:#fff;font-weight:500;}
.side-nav{display:flex;flex-direction:column;gap:2px;flex:1;overflow-y:auto;}
.side-nav a,.side-nav button{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;color:#9FBAB4;text-decoration:none;font-size:13.5px;font-weight:500;background:none;border:none;text-align:left;cursor:pointer;width:100%;}
.side-nav a:hover,.side-nav button:hover{background:rgba(255,255,255,.06);color:#fff;}
.side-nav a.active,.side-nav button.active{background:rgba(255,255,255,.1);color:#fff;}
.sidebar-bottom{border-top:1px solid rgba(255,255,255,.1);padding-top:14px;margin-top:14px;font-size:11.5px;}
.sidebar-bottom small{display:block;color:#7FA69C;}
.sidebar-bottom strong{display:block;color:var(--amber-500);font-weight:500;margin-top:2px;}
.app-main{flex:1;min-width:0;}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 28px;background:var(--white);border-bottom:1px solid var(--mist-150);position:sticky;top:0;z-index:10;}
.topbar-title small{font-family:'Space Mono',monospace;font-size:10px;letter-spacing:.1em;color:var(--amber-700);}
.topbar-title h1{font-size:19px;margin:2px 0 0;}
.top-actions{display:flex;align-items:center;gap:14px;}
.search-box{display:flex;align-items:center;gap:8px;background:var(--paper-100);border:1px solid var(--mist-150);border-radius:999px;padding:8px 14px;color:var(--ink-400);}
.search-box input{border:none;background:none;outline:none;font-size:13.5px;width:180px;color:var(--ink-900);}
.user-chip{display:flex;align-items:center;gap:9px;}
.avatar{width:34px;height:34px;border-radius:50%;background:var(--amber-500);color:#3A2B08;display:flex;align-items:center;justify-content:center;font-family:'Newsreader',serif;font-size:13.5px;font-weight:600;}
.user-chip strong{display:block;font-size:12.5px;}
.user-chip small{color:var(--ink-400);font-size:11px;}
.icon-button{width:36px;height:36px;border-radius:8px;border:1px solid var(--mist-300);background:var(--white);color:var(--ink-600);cursor:pointer;display:flex;align-items:center;justify-content:center;}
.mobile-menu{display:none;}
.app-content{padding:26px 28px 60px;max-width:1280px;}
.demo-banner{background:var(--warn-bg);color:var(--warn);border:1px solid #EFD9A8;border-radius:var(--radius-sm);padding:12px 18px;font-size:13px;margin-bottom:20px;}
.view{display:none;}
.view.active{display:block;}

/* ---------- cabeçalho de view / botões ---------- */
.view-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px;flex-wrap:wrap;}
.kicker{font-family:'Space Mono',monospace;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--amber-700);display:block;margin-bottom:4px;}
.view-head h2{font-size:21px;}
.view-head p{font-size:13.5px;margin:2px 0 0;max-width:60ch;}
.view-actions{display:flex;gap:10px;flex-wrap:wrap;}
.view-actions.left{justify-content:flex-start;}
.primary-button,.secondary-button,.ghost-button,.danger-button,.login-button{font-family:'Work Sans';font-weight:600;font-size:13.5px;padding:10px 18px;border-radius:8px;border:1px solid var(--mist-300);background:var(--white);color:var(--ink-900);cursor:pointer;}
.primary-button,.login-button{background:var(--teal-700);border-color:var(--teal-700);color:#fff;}
.primary-button:hover,.login-button:hover{background:var(--teal-900);}
.secondary-button:hover{border-color:var(--teal-700);color:var(--teal-700);}
.ghost-button{border-color:transparent;color:var(--teal-700);}
.ghost-button:hover{background:var(--teal-100);}
.danger-button{color:var(--danger);border-color:#E7C3B7;}
.danger-button:hover{background:var(--danger-bg);}
.danger-text{color:var(--danger);}

/* ---------- painéis / cartões genéricos ---------- */
.panel,.metric,.table-shell,.consultation-timeline-v11,.instrument-list-v12,.document-config,.document-preview-shell{background:var(--white);border:1px solid var(--mist-150);border-radius:var(--radius);}
.panel{padding:20px 22px;}
.panel-head{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px;}
.panel-head h3{font-size:15.5px;}
.panel-head button{background:none;border:none;color:var(--teal-700);font-size:13px;font-weight:600;cursor:pointer;}

/* ---------- tabelas ---------- */
.table-shell{overflow:hidden;}
.table-shell.compact table{font-size:12.5px;}
table{width:100%;border-collapse:collapse;}
th,td{text-align:left;padding:11px 16px;border-bottom:1px solid var(--mist-150);font-size:13.5px;}
th{font-family:'Space Mono',monospace;font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-400);background:var(--paper-100);font-weight:400;}
tr:last-child td{border-bottom:none;}
.empty-cell{text-align:center;color:var(--ink-400);padding:26px;}

/* ---------- formulários ---------- */
.field{margin-bottom:14px;}
.field label,.field>span{display:block;font-size:12px;font-weight:500;color:var(--ink-600);margin-bottom:5px;}
.field-help{display:block;font-size:11px;color:var(--ink-400);margin-top:4px;}
input,select,textarea{width:100%;padding:10px 12px;border:1px solid var(--mist-300);border-radius:8px;font-size:13.5px;background:var(--white);color:var(--ink-900);}
textarea{min-height:80px;resize:vertical;}
.form-two{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.form-three{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;}
.upper-toggle{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink-600);width:auto;}
.upper-toggle input{width:auto;}
.editor-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;}
.suggestions{position:relative;}
.suggestions:not(:empty){border:1px solid var(--mist-300);border-radius:8px;margin-top:4px;background:var(--white);box-shadow:var(--shadow-md);}
.inline-status{display:inline-flex;padding:6px 12px;border-radius:999px;font-size:12px;font-weight:600;}
.inline-status.neutral{background:var(--paper-100);color:var(--ink-600);}
.inline-status.warning{background:var(--warn-bg);color:var(--warn);}
.clinical-alert{background:var(--teal-100);border:1px solid #C9DEDA;border-radius:var(--radius-sm);padding:14px 18px;font-size:13px;color:var(--teal-900);margin-bottom:16px;}
.clinical-alert strong{display:block;margin-bottom:3px;color:var(--teal-950);}
.status{display:inline-flex;padding:5px 12px;border-radius:999px;font-size:11.5px;font-weight:600;}
.status.waiting{background:var(--warn-bg);color:var(--warn);}
.privacy-pill{background:var(--teal-100);color:var(--teal-700);font-size:11px;font-weight:600;padding:5px 12px;border-radius:999px;}

/* ---------- dashboard ---------- */
.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:22px;}
.metric{padding:18px 20px;}
.metric span{display:block;font-size:12px;color:var(--ink-400);margin-bottom:6px;}
.metric strong{display:block;font-family:'Newsreader',serif;font-size:24px;color:var(--teal-950);font-weight:500;}
.metric small{color:var(--ink-400);font-size:11.5px;}
.dashboard-grid,.cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;}
.quick-list{display:flex;flex-direction:column;gap:4px;}
.quick-action{display:flex;align-items:center;gap:12px;padding:10px;border-radius:8px;border:none;background:none;text-align:left;cursor:pointer;width:100%;}
.quick-action:hover{background:var(--paper-100);}
.quick-icon{width:34px;height:34px;border-radius:8px;background:var(--teal-100);color:var(--teal-700);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.quick-action strong{display:block;font-size:13.5px;color:var(--ink-900);}
.quick-action small{color:var(--ink-400);font-size:11.5px;}
.appointment-list{display:flex;flex-direction:column;gap:8px;}
.portal-action-card a{color:var(--teal-700);font-weight:600;}

/* ---------- agenda ---------- */
.agenda-toolbar{display:flex;align-items:center;gap:14px;margin-bottom:16px;}
.date-chip{font-family:'Space Mono',monospace;font-size:12.5px;background:var(--white);border:1px solid var(--mist-150);padding:8px 16px;border-radius:999px;}
.calendar-grid{background:var(--white);border:1px solid var(--mist-150);border-radius:var(--radius);min-height:320px;}

/* ---------- prontuário do paciente (atendimento) ---------- */
.patient-layout{display:grid;grid-template-columns:260px 1fr;gap:22px;align-items:start;}
.patient-summary{background:var(--teal-950);color:#CFE3DF;border-radius:var(--radius);padding:22px;position:sticky;top:80px;}
.patient-avatar{width:48px;height:48px;border-radius:50%;background:var(--amber-500);color:#3A2B08;display:flex;align-items:center;justify-content:center;font-family:'Newsreader',serif;font-size:18px;margin-bottom:12px;}
.patient-summary h3{color:#fff;font-size:16.5px;}
.patient-summary small{color:#8FB1A8;}
.patient-meta{margin-top:16px;display:flex;flex-direction:column;gap:10px;font-size:12.5px;}
.patient-meta div{display:flex;justify-content:space-between;align-items:center;color:#B9D0CB;}
.patient-meta strong{color:#fff;font-weight:500;display:flex;align-items:center;gap:4px;}
.patient-meta input{width:64px;padding:5px 8px;font-size:12.5px;background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.2);color:#fff;}
.record-panel{min-width:0;}
.tabs{display:flex;gap:2px;background:var(--paper-100);padding:4px;border-radius:10px;margin-bottom:18px;flex-wrap:wrap;}
.tab{border:none;background:transparent;padding:9px 14px;border-radius:7px;font-size:12.5px;font-weight:600;color:var(--ink-600);cursor:pointer;}
.tab.active{background:var(--white);color:var(--teal-700);box-shadow:var(--shadow-sm);}
.tab-panel{display:none;}
.tab-panel.active{display:block;}
.history-toolbar-v11{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;gap:14px;}
.consultation-timeline-v11{padding:8px;min-height:100px;}

/* ---------- prescrição / medicações ---------- */
.prescription-builder{background:var(--white);border:1px solid var(--mist-150);border-radius:var(--radius);padding:20px;margin-bottom:16px;}
.medication-search-field{position:relative;}
.medication-suggestions{position:absolute;left:0;right:0;z-index:5;}
.medication-identity-grid,.medication-form-grid,.medication-route-grid{margin-bottom:6px;}
.connector-details{margin:16px 0;font-size:13px;}
.connector-details summary{cursor:pointer;font-weight:600;color:var(--teal-700);}
.connector-panel{background:var(--paper-100);border-radius:var(--radius-sm);padding:14px 18px;margin-top:10px;}
.prescription-history-v11{margin-top:20px;}
.prescription-history-list-v11{min-height:60px;margin-top:10px;}

/* ---------- rastreios / screening ---------- */
.screening-legal-v12{background:var(--teal-100);border-radius:var(--radius-sm);padding:14px 18px;font-size:12.5px;color:var(--teal-900);margin-bottom:16px;}
.screening-legal-v12 strong{display:block;margin-bottom:3px;}
.screening-toolbar-v12{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end;margin-bottom:18px;}
.screening-search-v12{min-width:220px;}
.field-inline-v12{font-size:12px;}
.field-inline-v12 span{display:block;color:var(--ink-600);margin-bottom:4px;}
.screening-workspace-v12{display:grid;grid-template-columns:280px 1fr;gap:20px;align-items:start;}
.screening-library-v12{background:var(--white);border:1px solid var(--mist-150);border-radius:var(--radius);padding:16px;}
.library-tabs-v12{display:flex;flex-direction:column;gap:2px;margin-bottom:12px;}
.library-tabs-v12 button{text-align:left;background:none;border:none;padding:8px 10px;border-radius:7px;font-size:12.5px;color:var(--ink-600);cursor:pointer;}
.library-tabs-v12 button.active{background:var(--teal-100);color:var(--teal-700);font-weight:600;}
.instrument-list-v12{border:none;min-height:100px;}
.screening-main-v12{background:var(--white);border:1px solid var(--mist-150);border-radius:var(--radius);padding:22px;}
.instrument-header-v12{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;}
.instrument-badge-v12{display:inline-block;background:var(--amber-500);color:#3A2B08;font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:999px;margin-bottom:6px;}
.instrument-progress-v12{text-align:right;}
.instrument-progress-v12 strong{font-family:'Space Mono',monospace;font-size:13px;color:var(--teal-700);}
.instrument-progress-v12 div{width:100px;height:5px;background:var(--mist-150);border-radius:99px;margin-top:6px;overflow:hidden;}
.instrument-progress-v12 span{display:block;height:100%;background:var(--teal-600);}
.screening-form-v12{min-height:80px;}
.screening-result-v12{margin-top:22px;border-top:1px solid var(--mist-150);padding-top:18px;}
.result-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px;}
.screening-visual-report-v28{margin:14px 0;}
.screening-result-actions-v12{display:flex;gap:10px;margin-top:10px;}

/* ---------- documentos ---------- */
.document-studio{display:grid;grid-template-columns:220px 1fr;gap:18px;align-items:start;}
.document-sidebar{display:flex;flex-direction:column;gap:6px;}
.document-type{display:block;text-align:left;background:var(--white);border:1px solid var(--mist-150);border-radius:var(--radius-sm);padding:12px 14px;cursor:pointer;}
.document-type span{display:block;font-size:11.5px;font-weight:700;letter-spacing:.03em;color:var(--ink-900);}
.document-type small{color:var(--ink-400);font-size:11px;}
.document-type.active{border-color:var(--teal-600);background:var(--teal-100);}
.document-config{padding:18px 20px;margin-bottom:14px;}
.document-preview-shell{padding:22px;min-height:360px;}
.print-area{background:var(--white);}

/* ---------- financeiro ---------- */
.finance-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;}

/* ---------- telemedicina ---------- */
.telemedicine-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px;}
.telemed-session-panel .settings-content{margin-top:6px;}
.telemed-consent{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink-600);margin:12px 0;}
.telemed-consent input{width:auto;}
.telemed-link-box{background:var(--paper-100);border-radius:var(--radius-sm);padding:12px 14px;margin:12px 0;}
.telemed-link-box small{color:var(--ink-400);font-size:10.5px;}
.input-button{display:flex;gap:8px;margin-top:6px;}
.telemed-video-stage{display:grid;grid-template-columns:1fr 110px;gap:10px;background:var(--teal-950);border-radius:var(--radius-sm);padding:10px;min-height:220px;}
.telemed-remote{background:#0A2521;border-radius:8px;display:flex;align-items:center;justify-content:center;position:relative;min-height:200px;}
.video-placeholder{text-align:center;color:#8FB1A8;}
.video-placeholder span{display:inline-flex;width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.08);align-items:center;justify-content:center;font-family:'Newsreader',serif;color:var(--amber-500);margin-bottom:8px;}
.video-placeholder strong{display:block;color:#fff;font-size:13px;font-weight:500;}
.video-placeholder small{font-size:11px;}
#telemedRemoteVideo,#telemedLocalVideo{width:100%;border-radius:8px;background:#000;}
.telemed-local{background:#0A2521;border-radius:8px;min-height:200px;position:relative;}
#telemedLocalPlaceholder{color:#8FB1A8;font-size:10.5px;text-align:center;padding:10px;}
.telemed-controls{display:flex;gap:8px;margin-top:12px;align-items:center;}
.telemed-quality{display:flex;flex-direction:column;gap:2px;font-size:11px;color:var(--ink-400);margin-top:10px;}
.telemed-doc-toolbar{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap;margin-bottom:14px;}
.telemed-signature-note{background:var(--teal-100);border-radius:var(--radius-sm);padding:14px 18px;font-size:12.5px;color:var(--teal-900);margin-top:14px;}
.telemed-compliance{margin-top:18px;}

/* ---------- clinical hub / integrações ---------- */
.clinical-hub-grid-v19{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;}
.clinical-hub-card-v19{background:var(--white);border:1px solid var(--mist-150);border-radius:var(--radius);padding:20px;}
.clinical-hub-results-v19{min-height:40px;margin-top:10px;font-size:12.5px;}
.clinical-hub-status-v19{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--ink-600);}
.ai-warning-v19{background:var(--warn-bg);color:var(--warn);border-radius:var(--radius-sm);padding:10px 14px;font-size:12px;margin-top:10px;}

/* ---------- usuários / permissões / auditoria / cms ---------- */
.user-admin-note-v20{background:var(--teal-100);color:var(--teal-900);border-radius:var(--radius-sm);padding:12px 18px;font-size:12.5px;margin-bottom:16px;}
.permission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;}
.audit-list{display:flex;flex-direction:column;gap:8px;min-height:60px;}
.cms-status-v13{background:var(--teal-100);border-radius:var(--radius-sm);padding:14px 18px;font-size:12.5px;color:var(--teal-900);margin-bottom:16px;}
.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;}
.settings-content p{font-size:13px;}

/* ---------- login / configuração de conta ---------- */
.login-body{margin:0;min-height:100vh;display:flex;}
.login-brand-panel{width:42%;background:var(--teal-950);color:#CFE3DF;padding:52px 48px;display:flex;flex-direction:column;justify-content:space-between;}
.login-brand{display:flex;align-items:center;gap:12px;}
.login-brand img{width:36px;}
.login-brand small{display:block;font-family:'Space Mono',monospace;font-size:10px;letter-spacing:.12em;color:#7FA69C;}
.login-brand strong{display:block;font-family:'Newsreader',serif;color:#fff;font-size:16px;font-weight:500;}
.login-story h1{color:#fff;font-size:2.4rem;max-width:11ch;}
.login-story p{color:#9FC0B7;max-width:38ch;}
.login-security{font-family:'Space Mono',monospace;font-size:10.5px;letter-spacing:.08em;color:var(--amber-500);}
.login-shell{flex:1;display:flex;align-items:center;justify-content:center;padding:40px;}
.login-card{background:var(--white);border-radius:18px;box-shadow:var(--shadow-md);padding:40px;width:100%;max-width:420px;}
.mobile-logo{display:none;width:40px;margin-bottom:16px;}
.login-card .kicker{margin-bottom:10px;}
.login-card h2{font-size:1.5rem;}
.login-form-v19{display:flex;flex-direction:column;gap:14px;margin-top:18px;}
.login-form-v19 label{display:block;}
.login-form-v19 label span{display:block;font-size:12px;font-weight:500;color:var(--ink-600);margin-bottom:5px;}
.login-button{width:100%;padding:12px;margin-top:4px;}
.login-note{font-size:11.5px;color:var(--ink-400);margin-top:16px;}
.login-back-v19,.login-back-v20{display:inline-block;margin-top:18px;font-size:13px;color:var(--teal-700);text-decoration:none;background:none;border:none;cursor:pointer;padding:0;}
.login-status-v19{font-size:13px;color:var(--teal-700);min-height:1.2em;margin-top:4px;}
.password-policy-v20{font-size:11.5px;color:var(--ink-400);background:var(--paper-100);border-radius:8px;padding:10px 12px;}
.mfa-setup-v20{margin-top:10px;}
.mfa-secret-v20{margin-top:16px;text-align:center;}
.mfa-qr-v21 img{margin:10px auto;border:1px solid var(--mist-150);border-radius:8px;}
.mfa-manual-v21{margin-top:12px;font-size:12.5px;text-align:left;}
.mfa-manual-v21 code{display:block;background:var(--paper-100);padding:8px 10px;border-radius:6px;margin:6px 0;word-break:break-all;}

/* ---------- SOAP: fluxo consolidado da aba Atendimento ---------- */
.soap-flow{position:relative;padding-left:34px;}
.soap-flow::before{content:'';position:absolute;left:15px;top:8px;bottom:8px;width:2px;background:linear-gradient(var(--mist-300),var(--teal-600),var(--mist-300));}
.soap-step{position:relative;margin-bottom:22px;}
.soap-step:last-child{margin-bottom:0;}
.soap-letter{position:absolute;left:-34px;top:0;width:32px;height:32px;border-radius:50%;background:var(--white);border:2px solid var(--amber-500);color:var(--amber-700);display:flex;align-items:center;justify-content:center;font-family:'Newsreader',serif;font-weight:600;font-size:15px;}
.soap-body{background:var(--white);border:1px solid var(--mist-150);border-radius:var(--radius);padding:20px 22px;}
.soap-body h3{font-size:16.5px;margin-bottom:3px;}
.soap-hint{font-size:12px;color:var(--ink-400);margin-bottom:12px;}
.optional-toggle{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink-600);cursor:pointer;margin-bottom:10px;}
.optional-toggle input{width:auto;}
.optional-block{margin-top:4px;}

/* ---------- ficha do paciente: seções empilhadas (sem sub-abas) ---------- */
.record-section-v13{padding:18px 0;border-bottom:1px solid var(--mist-150);}
.record-section-v13:last-child{border-bottom:none;}
.record-section-head-v13{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:14px;}
.record-section-head-v13 h3{font-size:15px;margin-bottom:2px;}
.record-section-head-v13 p{font-size:12.5px;color:var(--ink-400);margin:0;}
#historicoExtraV13 .connector-details,#fichaPacienteV13,#psicologiaV13{margin-top:8px;}
#historicoExtraV13 .connector-details summary{font-weight:600;font-size:13.5px;color:var(--teal-700);cursor:pointer;padding:8px 0;}
#historicoExtraV13 .connector-details .record-section-v13{border-bottom:none;padding-top:10px;}

/* ---------- modais e notificações (toast) ---------- */
.modal-backdrop{position:fixed;inset:0;background:rgba(13,46,42,.55);display:flex;align-items:center;justify-content:center;z-index:100;padding:20px;}
.modal,.v29-modal{background:var(--white);border-radius:var(--radius);max-width:560px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-md);}
.modal-head{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;border-bottom:1px solid var(--mist-150);}
.modal-head h3{font-size:16.5px;margin:0;}
.modal-body{padding:20px 22px;}
.modal-actions{display:flex;justify-content:flex-end;gap:10px;padding:16px 22px;border-top:1px solid var(--mist-150);}
.modal-error-v20{background:var(--danger-bg);color:var(--danger);border-radius:var(--radius-sm);padding:10px 14px;font-size:12.5px;margin-top:10px;}
.modal-success-v20{background:var(--teal-100);color:var(--teal-900);border-radius:var(--radius-sm);padding:10px 14px;font-size:12.5px;margin-top:10px;}
#toastRoot{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);z-index:200;}
.toast{background:var(--teal-950);color:#fff;padding:12px 22px;border-radius:999px;font-size:13px;box-shadow:var(--shadow-md);}

/* ---------- agenda: calendário ---------- */
#calendarGrid{display:grid;grid-template-columns:80px repeat(5,1fr);}
.cal-cell{border-bottom:1px solid var(--mist-150);border-right:1px solid var(--mist-150);padding:10px;min-height:56px;font-size:12px;}
.cal-cell:last-child{border-right:none;}
.cal-head{background:var(--paper-100);font-weight:600;text-align:center;font-size:12.5px;color:var(--teal-900);min-height:auto;}
.cal-time{font-family:'Space Mono',monospace;color:var(--ink-400);font-size:11px;background:var(--paper-100);}
.cal-event{background:var(--teal-100);color:var(--teal-900);border-left:3px solid var(--teal-600);border-radius:6px;padding:6px 8px;font-size:11.5px;}
.cal-event small{color:var(--teal-700);}

/* ---------- itens gerados dinamicamente: agenda/pacientes ---------- */
.appointment{display:flex;align-items:center;gap:14px;padding:10px 0;border-bottom:1px solid var(--mist-150);}
.appointment:last-child{border-bottom:none;}
.appointment time{font-family:'Space Mono',monospace;font-size:12.5px;color:var(--ink-400);width:44px;flex-shrink:0;}
.appointment strong{display:block;font-size:13.5px;}
.appointment small{color:var(--ink-400);font-size:11.5px;}
.patient-cell{display:flex;align-items:center;gap:10px;}
.patient-initials{width:30px;height:30px;border-radius:50%;background:var(--teal-100);color:var(--teal-700);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0;}
.table-action{background:none;border:none;color:var(--teal-700);font-weight:600;font-size:12.5px;cursor:pointer;padding:0;}
.status.confirmed{background:var(--teal-100);color:var(--teal-700);}
.status.progress{background:#EDEAF6;color:#6249A6;}
.status.blocked,.status.danger{background:var(--danger-bg);color:var(--danger);}
.status.enabled{background:var(--teal-100);color:var(--teal-700);}

/* ---------- histórico de consultas (timeline) ---------- */
.consultation-card-v11{display:flex;gap:16px;padding:16px 0;border-bottom:1px solid var(--mist-150);}
.consultation-card-v11:last-child{border-bottom:none;}
.consultation-date-v11{width:96px;flex-shrink:0;}
.consultation-date-v11 strong{display:block;font-family:'Space Mono',monospace;font-size:12px;}
.consultation-date-v11 span{color:var(--ink-400);font-size:11px;}
.consultation-body-v11 h4{font-size:14px;margin-bottom:4px;}
.consultation-body-v11 p{font-size:13px;margin-bottom:6px;}
.consultation-meta-v11{display:flex;gap:6px;flex-wrap:wrap;}
.consultation-meta-v11 span{background:var(--paper-100);color:var(--ink-600);font-size:11px;padding:3px 9px;border-radius:999px;}

/* ---------- prescrição: resultados de busca de medicamentos ---------- */
.med-result-group{border:1px solid var(--mist-150);border-radius:var(--radius-sm);padding:12px 14px;margin-bottom:8px;}
.med-result-summary{font-size:13px;font-weight:600;cursor:pointer;}
.med-structure{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px;}
.med-structure span{background:var(--paper-100);font-size:11px;padding:3px 8px;border-radius:6px;color:var(--ink-600);}
.med-variant-list{margin-top:8px;display:flex;flex-direction:column;gap:4px;}
.med-catalog-count{font-size:11px;color:var(--ink-400);}
.suggestion-empty,.screening-empty-v12,.empty-selection{padding:16px;text-align:center;color:var(--ink-400);font-size:12.5px;}

/* ---------- documentos: seleção de exames ---------- */
.exam-search-field{position:relative;margin-bottom:12px;}
.exam-selection-card{border:1px solid var(--mist-150);border-radius:var(--radius);padding:16px 18px;margin-top:14px;}
.exam-selection-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;}
.selected-exam-list{display:flex;flex-direction:column;gap:6px;}
.selected-exam{display:flex;justify-content:space-between;align-items:center;background:var(--paper-100);border-radius:8px;padding:8px 12px;font-size:12.5px;}
.selected-exam strong{color:var(--amber-700);margin-right:8px;}
.selected-exam small{display:block;color:var(--ink-400);}
.selected-exam button{background:none;border:none;color:var(--ink-400);cursor:pointer;font-size:16px;line-height:1;}

/* ---------- rastreios: gráficos e resultado (v28/v29) ---------- */
.screening-chart-v28{display:flex;flex-direction:column;gap:8px;margin:14px 0;}
.screening-chart-card-v28{background:var(--paper-100);border-radius:var(--radius-sm);padding:12px 14px;}
.screening-chart-row-v28{display:flex;align-items:center;gap:10px;font-size:12px;padding:4px 0;}
.screening-summary-v28{background:var(--teal-100);border-radius:var(--radius-sm);padding:14px 18px;font-size:13px;color:var(--teal-900);margin:14px 0;}
.screening-hypotheses-v28{display:flex;flex-direction:column;gap:8px;margin:14px 0;}
.screening-cids-v29,.screening-group-v29{border:1px solid var(--mist-150);border-radius:var(--radius-sm);padding:12px 14px;margin-bottom:8px;}
.screening-license-v29,.screening-source-v29{font-size:11px;color:var(--ink-400);}
.screening-register-v29{margin-top:10px;}
.instrument-card-v12{border:1px solid var(--mist-150);border-radius:var(--radius-sm);padding:12px;margin-bottom:6px;cursor:pointer;font-size:12.5px;}
.instrument-card-v12:hover{border-color:var(--teal-600);}
.count-v12{color:var(--ink-400);font-size:11px;}
.domain-head-v12{font-weight:600;font-size:13.5px;margin:16px 0 8px;color:var(--teal-900);}
.domain-section-v12{margin-bottom:18px;}
.question-row-v12{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--mist-150);}
.question-number-v12{font-family:'Space Mono',monospace;color:var(--ink-400);font-size:12px;}
.question-text-v12{font-size:13.5px;flex:1;}
.response-options-v12{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px;}
.results-panel-v12{margin-top:16px;}
.license-grid-v12{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;}

/* ---------- integrações clínicas (v29) ---------- */
.clinical-editor-v29{background:var(--white);border:1px solid var(--mist-150);border-radius:var(--radius);padding:20px;}
.clinical-editor-actions-v29{display:flex;gap:10px;margin-top:14px;}
.clinical-governance-v29{background:var(--teal-100);border-radius:var(--radius-sm);padding:14px 18px;font-size:12.5px;color:var(--teal-900);margin-top:14px;}
.clinical-server-grid-v29{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-bottom:16px;}
.clinical-server-head-v29{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;}
.clinical-server-tools-v29{display:flex;gap:8px;margin-top:10px;}
.clinical-timeline-v29,.server-timeline-v29{display:flex;flex-direction:column;gap:10px;}
.timeline-entry-v29{border:1px solid var(--mist-150);border-radius:var(--radius-sm);padding:12px 14px;}
.timeline-entry-v29 header{display:flex;justify-content:space-between;align-items:center;}
.entry-status-v29{font-size:10.5px;font-weight:600;padding:3px 9px;border-radius:999px;background:var(--paper-100);color:var(--ink-600);}
.entry-status-v29.approved,.entry-status-v29.active{background:var(--teal-100);color:var(--teal-700);}
.production-notice-v29,.unit-demo-warning{background:var(--warn-bg);color:var(--warn);border-radius:var(--radius-sm);padding:12px 16px;font-size:12.5px;}
.production-state-v29{font-family:'Space Mono',monospace;font-size:11px;}
.amendment-v29{border-left:2px solid var(--amber-500);padding-left:10px;margin-top:8px;font-size:12.5px;color:var(--ink-600);}
.legal-check-v29{display:flex;align-items:flex-start;gap:8px;font-size:12.5px;color:var(--ink-600);margin:8px 0;}

/* ---------- assinatura digital VIDaaS ---------- */
.vidaas-panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;}
.vidaas-session{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:var(--radius-sm);background:var(--paper-100);font-size:12.5px;}
.vidaas-session.active{background:var(--teal-100);color:var(--teal-900);}
.vidaas-actions{display:flex;gap:10px;margin-top:14px;}
.vidaas-document-meta{font-size:12px;color:var(--ink-400);margin-top:8px;}
.vidaas-legal-note{background:var(--paper-100);border-radius:var(--radius-sm);padding:12px 16px;font-size:11.5px;color:var(--ink-600);margin-top:12px;}

/* ---------- usuários: ações e senha temporária ---------- */
.user-actions-v20{display:flex;gap:8px;flex-wrap:wrap;}
.user-security-flags-v20{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px;}
.temporary-password-v20{background:var(--warn-bg);border:1px dashed #D3A63D;border-radius:var(--radius-sm);padding:14px 18px;font-family:'Space Mono',monospace;font-size:15px;text-align:center;color:var(--warn);margin:12px 0;}

/* ---------- LGPD / consentimento / interoperabilidade (v13) ---------- */
.consent-grid-v13{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;}
.consent-row{display:flex;align-items:flex-start;gap:8px;padding:8px 0;border-bottom:1px solid var(--mist-150);font-size:12.5px;}
.record-section-head-v13{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;}
.record-version-v13{font-family:'Space Mono',monospace;font-size:11px;color:var(--ink-400);}
.restricted-banner-v13{background:var(--warn-bg);color:var(--warn);border-radius:var(--radius-sm);padding:12px 16px;font-size:12.5px;}
.restricted-denied-v13{background:var(--danger-bg);color:var(--danger);border-radius:var(--radius-sm);padding:12px 16px;font-size:12.5px;}
.role-preview-v13{border:1px solid var(--mist-150);border-radius:var(--radius-sm);padding:10px 14px;font-size:12.5px;}
.interop-grid-v13{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;}

/* ---------- terapias / grupos (v11) e diversos ---------- */
.therapy-domain-grid-v11{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;}
.therapy-options{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px;}
.therapy-review-card{border:1px solid var(--mist-150);border-radius:var(--radius-sm);padding:12px 14px;}
.group-creator{border:1px dashed var(--mist-300);border-radius:var(--radius-sm);padding:14px;text-align:center;}
.file-button{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--mist-300);border-radius:8px;padding:9px 16px;font-size:13px;cursor:pointer;background:var(--white);}
.document-helper{font-size:11.5px;color:var(--ink-400);margin-top:4px;}
.telemed-document-actions{display:flex;gap:8px;}
.template-info{font-size:11.5px;color:var(--ink-400);}
.report-template-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;}
.large-textarea{min-height:200px;}
.mono{font-family:'Space Mono',monospace;}
.prescription-history-item-v11{display:flex;gap:14px;padding:10px 0;border-bottom:1px solid var(--mist-150);font-size:12.5px;}
.prescription-history-item-v11 time{font-family:'Space Mono',monospace;color:var(--ink-400);width:70px;flex-shrink:0;}
.patient-document-item{display:flex;justify-content:space-between;align-items:center;background:var(--paper-100);border-radius:8px;padding:10px 14px;margin-bottom:8px;font-size:12.5px;}
.prescription-auto-info{background:var(--teal-100);color:var(--teal-900);border-radius:var(--radius-sm);padding:10px 14px;font-size:12px;margin-bottom:10px;}
.details-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin-top:10px;}
address{font-style:normal;}

/* ---------- teleconsulta — visão do paciente ---------- */
.telemed-patient-body{margin:0;background:var(--paper-50);}
.patient-telemed-shell{display:flex;min-height:100vh;}
.patient-telemed-info{width:36%;background:var(--teal-950);color:#CFE3DF;padding:48px 40px;}
.patient-telemed-info img{width:38px;margin-bottom:20px;}
.patient-telemed-info h1{color:#fff;font-size:1.7rem;max-width:14ch;}
.patient-telemed-info p{color:#9FC0B7;}
.patient-telemed-contact{margin-top:28px;font-size:12.5px;color:#8FB1A8;line-height:1.7;}
.patient-telemed-main{flex:1;padding:44px;max-width:640px;}
.patient-access-card,.patient-waiting,.patient-documents-card{background:var(--white);border:1px solid var(--mist-150);border-radius:var(--radius);padding:26px;margin-bottom:18px;}
.patient-waiting{text-align:center;}
.patient-room{margin-bottom:18px;}
.patient-video-stage{background:var(--teal-950);border-radius:var(--radius);min-height:280px;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.patient-video-stage video{width:100%;border-radius:var(--radius);}
.patient-doctor-placeholder{position:absolute;bottom:14px;left:14px;color:#CFE3DF;}
.patient-doctor-placeholder strong{display:block;font-size:12.5px;color:#fff;}
.patient-doctor-placeholder small{font-size:11px;color:#8FB1A8;}
.patient-document-list{min-height:60px;margin-top:12px;}
.empty-state{text-align:center;padding:20px;color:var(--ink-400);}
.empty-state.compact{padding:12px;}
.hidden{display:none !important;}

/* ---------- responsivo ---------- */
@media (max-width:1080px){
  .patient-layout,.screening-workspace-v12,.document-studio{grid-template-columns:1fr;}
  .patient-summary{position:static;}
  .telemedicine-grid{grid-template-columns:1fr;}
}
@media (max-width:820px){
  .sidebar{position:fixed;left:-260px;z-index:40;transition:left .2s;box-shadow:var(--shadow-md);}
  .sidebar.open{left:0;}
  .mobile-menu{display:flex;}
  .search-box input{width:110px;}
  .login-brand-panel{display:none;}
  .mobile-logo{display:block;}
  .form-two,.form-three{grid-template-columns:1fr;}
}
