/* ============================================================
   Orion UI — CSS por PÁGINA (Fase 8)
   Estilos específicos de telas individuais, extraídos do corpo
   legado do orion.css. NÃO é framework: são regras de uma tela só.

   CARREGAMENTO: <link> próprio no index.html, DEPOIS do orion.css
   — de propósito. Assim estas regras mantêm exatamente a posição
   que tinham no corpo do orion.css (após todos os @import e após o
   CSS de shell/tema), e o cascade não muda ao extrair. Se virasse
   @import dentro do orion.css subiria pro topo e inverteria empates
   de especificidade com o que ficou no corpo.

   Cache-busting: versionado pelo ?v= do próprio <link> (ver index.html).
   ============================================================ */

/* ===================== VERSIONAMENTO (CHANGELOG) ===================== */
.orion-changelog-card{
  padding:20px;
}

/* ===================== PRECIFICACAO ODONTOLOGICA ===================== */
.prec-topbar{
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--sp-3);
  padding:16px 20px;
}
.prec-topbar-info{display:flex;flex-direction:column;gap:2px;}
.prec-topbar-info strong{font-size:14px;}
.prec-topbar-info span{font-size:11px;color:var(--text-muted);}

.prec-shell{display:grid;grid-template-columns:1fr 220px;gap:var(--sp-5);align-items:start;}
.prec-main{display:flex;flex-direction:column;gap:var(--sp-5);min-width:0;}
.prec-summary{position:sticky;top:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3);font-size:11px;}
.prec-summary .prec-section-title{font-size:9.5px;margin-bottom:6px;}
.prec-summary .prec-result-list{font-size:11px;gap:0;}
.prec-summary .prec-result-row{padding:5px 0;}
.prec-summary .prec-result-row.is-total{font-size:12.5px;padding-top:7px;}

.prec-card.is-disabled{opacity:.5;pointer-events:none;}
.prec-card-header{
  display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);
  padding:16px 20px;cursor:pointer;user-select:none;
}
.prec-card-header h2{display:flex;align-items:center;gap:8px;font-size:15px;margin:0;}
.prec-card-header small{display:block;color:var(--text-muted);font-size:11px;font-weight:400;margin-top:2px;}
.prec-card-header .fa-chevron-down{transition:transform .16s ease;color:var(--text-muted);}
.prec-card.is-collapsed .fa-chevron-down{transform:rotate(-90deg);}
.prec-card-body{padding:0 20px 20px;display:flex;flex-direction:column;gap:var(--sp-5);}
.prec-card.is-collapsed .prec-card-body{display:none;}

.prec-section{border-top:1px solid rgba(255,255,255,.07);padding-top:var(--sp-4);}
.prec-section:first-child{border-top:0;padding-top:0;}
.prec-section-title{
  display:flex;align-items:center;gap:6px;font-size:11px;text-transform:uppercase;
  letter-spacing:.6px;color:var(--text-muted);margin-bottom:var(--sp-3);font-weight:700;
}

.prec-help-btn{
  background:none;border:0;color:var(--text-muted);cursor:pointer;font-size:13px;
  display:inline-flex;align-items:center;padding:0;line-height:1;transition:.16s;
}
.prec-help-btn:hover{color:var(--primary);}
.prec-help-popover{
  position:fixed;z-index:200;max-width:320px;padding:12px 14px;border-radius:var(--r-md);
  border:1px solid var(--panel-border);background:var(--panel-bg);
  backdrop-filter:blur(25px) saturate(160%);-webkit-backdrop-filter:blur(25px) saturate(160%);
  box-shadow:0 12px 32px rgba(0,0,0,.4);font-size:12px;line-height:1.55;color:var(--text-main);
}
.prec-help-popover strong{
  display:block;margin-bottom:4px;font-size:10.5px;text-transform:uppercase;
  letter-spacing:.4px;color:var(--primary);
}

.prec-horario-calc{
  border:1px dashed rgba(255,255,255,.12);border-radius:var(--r-sm);padding:var(--sp-3);
  background:rgba(255,255,255,.02);display:flex;flex-direction:column;gap:var(--sp-3);
}
.prec-horario-calc-title{font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-weight:700;}
.prec-horario-calc-hint{font-size:11px;color:var(--text-muted);}
.prec-horario-calc-totais{display:flex;flex-wrap:wrap;gap:var(--sp-3);}
.prec-horario-calc-total{
  display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:var(--r-pill);
  background:rgba(249,115,22,.12);border:1px solid rgba(249,115,22,.25);
}
.prec-horario-calc-total span{font-size:11px;color:var(--text-muted);}
.prec-horario-calc-total strong{font-size:14px;font-weight:800;color:var(--primary);font-family:'Fira Code',monospace;}

.prec-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3);}
.prec-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-3);}
.prec-grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-3);}

.prec-checklist{
  max-height:220px;overflow-y:auto;border:1px solid rgba(255,255,255,.08);
  border-radius:var(--r-sm);padding:6px;display:flex;flex-direction:column;gap:1px;
}
.prec-checklist label{
  display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;
  font-size:12px;cursor:pointer;transition:.14s;
}
.prec-checklist label:hover{background:rgba(255,255,255,.05);}
.prec-checklist label small{color:var(--text-muted);margin-left:auto;font-size:10px;}
.prec-checklist input[type="checkbox"]{flex:none;}

.prec-item-list{display:flex;flex-direction:column;gap:8px;}
.prec-item-row{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr)) 32px;
  gap:8px;align-items:end;padding:10px;border:1px solid rgba(255,255,255,.07);border-radius:var(--r-sm);
}
.prec-item-row .field-group{gap:2px;}
.prec-item-row label{font-size:9.5px;}
.prec-item-remove{
  width:30px;height:30px;border-radius:50%;border:0;background:rgba(244,63,94,.12);
  color:var(--rose);cursor:pointer;display:grid;place-items:center;align-self:center;transition:.16s;
}
.prec-item-remove:hover{background:rgba(244,63,94,.22);}
.prec-empty-hint{color:var(--text-muted);font-size:12px;font-style:italic;padding:8px 0;}

.prec-result-list{display:flex;flex-direction:column;gap:2px;font-size:13px;}
.prec-result-row{display:flex;justify-content:space-between;gap:8px;padding:7px 0;border-bottom:1px dashed rgba(255,255,255,.08);}
.prec-result-row span:first-child{color:var(--text-muted);}
.prec-result-row strong{color:var(--text-main);font-family:'Fira Code',monospace;}
.prec-result-row.is-total{font-weight:800;font-size:15px;border-bottom:0;padding-top:10px;}
.prec-result-row.is-total strong{color:var(--primary);}

.prec-badge{
  display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:var(--r-pill);
  font-size:9.5px;text-transform:uppercase;letter-spacing:.4px;font-weight:800;
}
.prec-badge.is-ativo{background:rgba(16,185,129,.15);color:var(--emerald);}
.prec-badge.is-rascunho{background:rgba(148,163,184,.15);color:var(--text-muted);}
.prec-badge.is-arquivado,.prec-badge.is-substituida,.prec-badge.is-inativo{background:rgba(148,163,184,.08);color:var(--text-muted);}

.prec-alert{display:flex;gap:8px;align-items:flex-start;padding:10px 12px;border-radius:var(--r-sm);font-size:12px;line-height:1.5;}
.prec-alert i{margin-top:2px;}
.prec-alert.is-warning{background:rgba(249,115,22,.12);color:#fdba74;}
.prec-alert.is-danger{background:rgba(244,63,94,.12);color:var(--rose);}
.prec-alert.is-info{background:rgba(6,182,212,.1);color:#67e8f9;}
.prec-alerts{display:flex;flex-direction:column;gap:6px;}

.prec-table-wrap{overflow:auto;border:1px solid rgba(255,255,255,.08);border-radius:var(--r-sm);}
.prec-table{border-collapse:collapse;width:100%;font-size:12px;}
.prec-table th,.prec-table td{padding:9px 12px;border-bottom:1px solid rgba(255,255,255,.06);text-align:left;white-space:nowrap;}
.prec-table thead th{text-transform:uppercase;font-size:10px;letter-spacing:.4px;color:var(--text-muted);}
.prec-table tbody tr:hover{background:rgba(255,255,255,.03);}
.prec-table tbody tr:last-child td{border-bottom:0;}

.prec-summary-mobile-toggle{display:none;}

@media (max-width:1000px){
  .prec-shell{grid-template-columns:1fr;}
  .prec-summary{
    position:fixed;left:0;right:0;bottom:0;top:auto;z-index:90;max-height:70vh;overflow:auto;
    margin:0;border-radius:var(--r-lg) var(--r-lg) 0 0;transform:translateY(calc(100% - 46px));
    transition:transform .25s ease;box-shadow:0 -12px 32px rgba(0,0,0,.4);
  }
  .prec-summary.is-expanded{transform:translateY(0);}
  .prec-summary-mobile-toggle{
    display:flex;align-items:center;justify-content:center;gap:8px;width:100%;
    padding:12px;border:0;background:none;color:var(--text-main);font-weight:700;
    font-size:12px;text-transform:uppercase;letter-spacing:.4px;cursor:pointer;
  }
  .prec-grid-2,.prec-grid-3,.prec-grid-4{grid-template-columns:1fr;}
}

.orion-changelog-head h2{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 4px;
  font-size:18px;
  color:var(--text-main);
}

.orion-changelog-versao{
  font-size:12px;
  font-weight:600;
  font-family:'Courier New', monospace;
  padding:3px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.06);
  color:var(--primary);
}

.orion-changelog-list{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-top:16px;
}

.orion-changelog-item{
  border:1px solid var(--panel-border,rgba(255,255,255,.08));
  border-radius:var(--r-md,10px);
  overflow:hidden;
  background:rgba(255,255,255,.02);
}

.orion-changelog-item-head{
  display:flex;
  align-items:center;
  gap:14px;
  width:100%;
  padding:14px 16px;
  background:none;
  border:none;
  cursor:pointer;
  text-align:left;
  font-family:inherit;
  color:var(--text-main);
}

.orion-changelog-item-head:hover{
  background:rgba(255,255,255,.03);
}

.orion-changelog-hash{
  flex-shrink:0;
  font-family:'Courier New', monospace;
  font-size:11px;
  padding:3px 8px;
  border-radius:6px;
  background:rgba(255,255,255,.06);
  color:var(--primary);
}

.orion-changelog-item-title{
  flex:1;
  min-width:0;
  font-weight:600;
  font-size:14px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.orion-changelog-item-date{
  flex-shrink:0;
  font-size:12px;
  color:var(--text-muted);
  white-space:nowrap;
}

.orion-changelog-chevron{
  flex-shrink:0;
  font-size:12px;
  color:var(--text-muted);
  transition:transform .18s ease;
}

.orion-changelog-item-head.is-open .orion-changelog-chevron{
  transform:rotate(180deg);
}

.orion-changelog-item-body{
  padding:0 16px 16px 16px;
  border-top:1px solid var(--panel-border,rgba(255,255,255,.06));
  padding-top:14px;
}

.orion-changelog-item-desc{
  font-size:13px;
  line-height:1.6;
  color:var(--text-muted);
}

.orion-changelog-item-desc p{
  margin:0 0 10px;
  text-align:justify;
  text-justify:inter-word;
}

.orion-changelog-item-desc p:last-child{
  margin-bottom:0;
}

.orion-changelog-item-list{
  margin:0 0 10px;
  padding-left:20px;
  list-style:disc;
}

.orion-changelog-item-list:last-child{
  margin-bottom:0;
}

.orion-changelog-item-list li{
  margin-bottom:4px;
  text-align:left;
}

.orion-changelog-item-list li:last-child{
  margin-bottom:0;
}

.orion-changelog-empty{
  font-style:italic;
  color:var(--text-muted);
}

.orion-changelog-item-autor{
  display:flex;
  align-items:center;
  gap:6px;
  margin-top:10px;
  font-size:12px;
  color:var(--text-muted);
}

/* ===================== DIAGNOSTICO FINANCEIRO ===================== */
.diag-page{
  max-width:1500px;
  padding-bottom:var(--sp-5);
  overflow:auto;
  font-size:12px;
}
.diag-header{
  align-items:flex-end;
  padding-top:var(--sp-4);
  padding-bottom:var(--sp-2);
}
.diag-header .orion-header-title h1{
  font-size:20px;
}
.diag-header .orion-header-title p{
  font-size:10px;
}
.diag-actions{
  display:flex;
  align-items:center;
  gap:var(--sp-2);
  flex-wrap:wrap;
}
.diag-actions .orion-btn,
.diag-section .orion-btn-mini{
  min-height:30px;
  height:30px;
  padding:0 12px;
  font-size:11px;
  border-radius:10px;
}
.diag-grid{
  display:grid;
  gap:var(--sp-3);
}
.diag-metrics{
  grid-template-columns:repeat(4,minmax(0,1fr));
  margin-bottom:var(--sp-3);
}
.diag-metric-card{
  padding:var(--sp-3);
  display:grid;
  gap:4px;
  border-radius:var(--r-sm);
}
.diag-metric-card span,
.diag-metric-card small,
.diag-section p{
  color:var(--text-muted);
}
.diag-metric-card span{
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.8px;
  font-weight:800;
}
.diag-metric-card strong{
  font-size:18px;
  line-height:1.1;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.diag-metric-card small{
  font-size:10px;
}
.diag-section{
  padding:var(--sp-3);
  border-radius:var(--r-sm);
  margin-bottom:var(--sp-3);
}
.diag-section-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:var(--sp-2);
  margin-bottom:var(--sp-2);
}
.diag-section h2{
  display:flex;
  align-items:center;
  gap:6px;
  font-size:12px;
  margin-bottom:2px;
}
.diag-section h2 i{
  color:var(--primary);
}
.diag-section p{
  font-size:10px;
}
.diag-form-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:var(--sp-3);
}
.diag-form-grid .field-group span{
  font-size:var(--fs-xs);
  color:var(--text-muted);
  text-transform:uppercase;
  letter-spacing:.5px;
  font-weight:700;
}
.diag-warning{
  margin-top:var(--sp-3);
  padding:var(--sp-3);
  border-radius:var(--r-sm);
  background:rgba(244,63,94,.1);
  border:1px solid rgba(244,63,94,.3);
  color:var(--rose);
  font-size:var(--fs-sm);
  display:flex;
  align-items:center;
  gap:8px;
}
.diag-avisos{
  display:grid;
  gap:var(--sp-2);
  margin-bottom:var(--sp-3);
}
.diag-avisos .diag-warning{
  margin-top:0;
  align-items:flex-start;
}
.diag-warning.is-info{
  background:rgba(56,189,248,.1);
  border-color:rgba(56,189,248,.3);
  color:var(--sky, #38bdf8);
}
.diag-periodo{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  gap:var(--sp-3);
}
.diag-periodo .field-group{
  min-width:150px;
}
.diag-periodo-rotulo{
  font-size:var(--fs-xs);
  color:var(--text-muted);
  padding-bottom:10px;
}
.diag-estimado{
  display:inline-block;
  margin-left:6px;
  padding:1px 6px;
  border-radius:999px;
  font-size:10px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.4px;
  background:rgba(250,204,21,.15);
  border:1px solid rgba(250,204,21,.35);
  color:#facc15;
}
.diag-two-col{
  display:grid;
  grid-template-columns:1fr;
  gap:var(--sp-3);
}
.diag-two-col-wide{
  grid-template-columns:1fr;
}
.diag-table-wrap{
  overflow:hidden;
  border:1px solid rgba(255,255,255,.08);
  border-radius:var(--r-sm);
}
.diag-edit-table{
  width:100%;
  min-width:100%;
  table-layout:fixed;
  border-collapse:collapse;
  border-spacing:0;
}
.diag-edit-table th,
.diag-edit-table td{
  padding:4px 6px;
  border:1px solid rgba(255,255,255,.075);
  text-align:left;
  vertical-align:middle;
  height:32px;
}
.diag-edit-table th{
  position:sticky;
  top:0;
  z-index:2;
  background:rgba(6,20,34,.98);
  color:var(--text-main);
  font-size:9px;
  text-transform:uppercase;
  letter-spacing:.25px;
  text-align:center;
  font-weight:800;
  line-height:1.15;
}
.diag-edit-table td{
  font-size:12px;
  overflow:hidden;
  line-height:1.2;
}
.diag-edit-table tfoot td{
  position:sticky;
  bottom:0;
  z-index:1;
  background:rgba(7,7,12,.94);
  color:var(--text-main);
  font-weight:800;
}
.diag-cell-input{
  width:100%;
  max-width:100%;
  min-width:0;
  height:24px;
  padding:2px 6px;
  font-size:11px;
  border-radius:4px;
  box-sizing:border-box;
  background:rgba(255,255,255,.025);
  box-shadow:none;
}
.diag-cell-input:focus{
  box-shadow:inset 0 0 0 1px var(--primary);
}
.diag-cell-input[type="number"]{
  appearance:textfield;
  -moz-appearance:textfield;
  text-align:right;
  font-family:'Fira Code',monospace;
}
.diag-cell-input[type="number"]::-webkit-outer-spin-button,
.diag-cell-input[type="number"]::-webkit-inner-spin-button{
  -webkit-appearance:none;
  margin:0;
}
.diag-money{
  text-align:right !important;
  font-family:'Fira Code',monospace;
  white-space:nowrap;
  font-size:12px;
}
.diag-edit-table select.diag-cell-input{
  text-align:left;
  font-family:inherit;
}
.diag-edit-table td:has(.orion-icon-btn){
  text-align:center;
}
.diag-fin-table th{text-align:center;}
.diag-fin-table th:nth-child(1),
.diag-fin-table td:nth-child(1){width:20%;text-align:left;}
.diag-fin-table th:nth-child(2),
.diag-fin-table td:nth-child(2){width:11%;text-align:right;}
.diag-fin-table th:nth-child(3),
.diag-fin-table td:nth-child(3){width:9%;text-align:right;}
.diag-fin-table th:nth-child(4),
.diag-fin-table td:nth-child(4){width:8%;text-align:center;}
.diag-fin-table th:nth-child(5),
.diag-fin-table td:nth-child(5){width:10%;text-align:right;}
.diag-fin-table th:nth-child(6),
.diag-fin-table td:nth-child(6){width:11%;text-align:right;}
.diag-fin-table th:nth-child(7),
.diag-fin-table td:nth-child(7){width:11%;text-align:right;}
.diag-fin-table th:nth-child(8),
.diag-fin-table td:nth-child(8){width:10%;text-align:right;}
.diag-fin-table th:nth-child(9),
.diag-fin-table td:nth-child(9){width:10%;text-align:right;}
.diag-fin-table th:nth-child(10),
.diag-fin-table td:nth-child(10){width:32px;text-align:center;}
.diag-colab-table th{text-align:center;}
.diag-colab-table th:nth-child(1),
.diag-colab-table td:nth-child(1){width:46%;text-align:left;}
.diag-colab-table th:nth-child(2),
.diag-colab-table td:nth-child(2){width:18%;text-align:center;}
.diag-colab-table th:nth-child(3),
.diag-colab-table td:nth-child(3){width:36%;text-align:right;}
.diag-compras-table th{text-align:center;}
.diag-compras-table th:nth-child(1),
.diag-compras-table td:nth-child(1){width:34%;text-align:left;}
.diag-compras-table th:nth-child(2),
.diag-compras-table th:nth-child(3),
.diag-compras-table th:nth-child(4){width:22%;}
.diag-compras-table td:nth-child(2),
.diag-compras-table td:nth-child(3),
.diag-compras-table td:nth-child(4){width:22%;text-align:right;}
.diag-markup-table th{text-align:center;}
.diag-markup-table th:nth-child(1),
.diag-markup-table td:nth-child(1){width:36%;text-align:left;}
.diag-markup-table th:nth-child(2),
.diag-markup-table th:nth-child(3),
.diag-markup-table th:nth-child(4){width:21.33%;}
.diag-markup-table td:nth-child(2),
.diag-markup-table td:nth-child(3),
.diag-markup-table td:nth-child(4){width:21.33%;text-align:right;}
.diag-custos-table th{text-align:center;}
.diag-custos-table th:nth-child(1),
.diag-custos-table td:nth-child(1){width:64px;text-align:center;font-weight:800;color:var(--primary);}
.diag-custos-table th:nth-child(2),
.diag-custos-table td:nth-child(2){width:auto;text-align:left;}
.diag-custos-table th:nth-child(3),
.diag-custos-table td:nth-child(3){width:92px;text-align:center;}
.diag-custos-table th:nth-child(4),
.diag-custos-table td:nth-child(4),
.diag-custos-table th:nth-child(5),
.diag-custos-table td:nth-child(5){width:118px;text-align:right;}
.diag-custos-table .diag-cost-group td,
.diag-custos-table .diag-cost-result td{
  background:rgba(255,255,255,.035);
  font-weight:900;
  color:var(--text-main);
}
.diag-custos-table .diag-cost-result td{
  background:rgba(0,229,255,.055);
}
.diag-read-table td:nth-child(1){
  color:var(--primary);
  font-weight:800;
  font-size:13px;
}
.diag-kv{
  display:flex;
  justify-content:space-between;
  gap:var(--sp-2);
  padding:8px 0;
  border-bottom:1px solid rgba(255,255,255,.07);
}
.diag-kv:last-child{
  border-bottom:0;
}
.diag-kv span{
  color:var(--text-muted);
  font-size:11px;
}
.diag-kv strong{
  text-align:right;
  font-size:13px;
}
.diag-page.is-loading{
  opacity:.55;
  pointer-events:none;
}

.dre-filters{
  display:flex;
  align-items:flex-end;
  gap:var(--sp-3);
  flex-wrap:wrap;
}
.dre-filters .field-group{
  min-width:120px;
}
.dre-table-wrap{
  overflow:auto;
  max-height:70vh;
  border:1px solid rgba(255,255,255,.08);
  border-radius:var(--r-sm);
}
.dre-table{
  border-collapse:collapse;
  border-spacing:0;
  width:100%;
  font-size:12px;
}
.dre-table th,
.dre-table td{
  padding:6px 10px;
  border:1px solid rgba(255,255,255,.06);
  white-space:nowrap;
}
.dre-table thead th{
  position:sticky;
  top:0;
  z-index:2;
  background:rgba(6,20,34,.98);
  color:var(--text-main);
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.3px;
  font-weight:800;
}
.dre-table tbody td:first-child{
  color:var(--primary);
  font-weight:700;
}
.dre-col-money{
  text-align:right;
  font-family:'Fira Code',monospace;
}
.dre-col-pct{
  text-align:right;
  color:var(--text-muted);
  font-size:11px;
}
.dre-table tr.dre-group td{
  background:rgba(255,255,255,.04);
  font-weight:900;
  color:var(--text-main);
  text-transform:uppercase;
  font-size:10.5px;
  letter-spacing:.3px;
}
.dre-table tr.dre-subtotal td{
  background:rgba(255,255,255,.025);
  font-weight:800;
  border-top:1px solid rgba(255,255,255,.15);
}
.dre-table tr.dre-result td{
  background:rgba(0,229,255,.06);
  font-weight:900;
  color:var(--text-main);
}
.dre-table tr.dre-result-final td{
  background:rgba(16,185,129,.1);
}
.dre-table tr.dre-pct-row td{
  background:rgba(255,255,255,.015);
  color:var(--text-muted);
  font-size:10.5px;
  font-style:italic;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.dre-table tr.dre-warning td{
  background:rgba(249,115,22,.12);
  color:#fdba74;
}
.dre-table tr.dre-warning-row td{
  background:rgba(249,115,22,.05);
  color:#fdba74;
}
.dre-aviso{
  margin-top:6px;
  color:#fdba74;
  font-size:var(--fs-xs);
  display:flex;
  align-items:center;
  gap:6px;
}
.dre-aviso i{font-size:11px;}
.dre-table.is-loading{
  opacity:.5;
  pointer-events:none;
}

/* diagnostico — responsivo. Estava parado no fim da secao do RELATORIO
   COMPARATIVO desde o corte da Fase 8 (as duas telas sairam juntas do
   orion.css); voltou para a secao dona das classes. */
@media (max-width:1100px){
  .diag-metrics,
  .diag-form-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .diag-two-col,
  .diag-two-col-wide{
    grid-template-columns:1fr;
  }
}

@media (max-width:640px){
  .diag-metrics,
  .diag-form-grid{
    grid-template-columns:1fr;
  }
  .diag-actions{
    width:100%;
  }
  .diag-actions .orion-btn{
    flex:1;
    justify-content:center;
  }
}

/* ===================== RELATORIO COMPARATIVO ===================== */
.rc-kpi-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:var(--sp-3);
  margin-bottom:var(--sp-3);
}
.rc-kpi-card{
  padding:var(--sp-3);
  border-radius:var(--r-sm);
}
.rc-kpi-label{
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.8px;
  font-weight:800;
  color:var(--text-muted);
}
.rc-kpi-row{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:8px;
  margin-top:6px;
  font-size:13px;
}
.rc-kpi-row .rc-kpi-tag{
  color:var(--text-muted);
  font-size:10px;
  white-space:nowrap;
}
.rc-kpi-row strong{
  font-family:'Fira Code',monospace;
  font-size:14px;
}
.rc-kpi-delta{
  margin-top:8px;
  display:inline-flex;
  align-items:center;
  gap:4px;
  font-size:11.5px;
  font-weight:700;
  padding:3px 9px;
  border-radius:20px;
}
.rc-kpi-delta.is-up{ color:var(--emerald); background:rgba(16,185,129,.12); }
.rc-kpi-delta.is-down{ color:var(--rose); background:rgba(244,63,94,.12); }
.rc-kpi-delta.is-flat{ color:var(--text-muted); background:rgba(255,255,255,.05); }

.rc-wf-group{ margin-bottom:14px; }
.rc-wf-row{
  display:grid;
  grid-template-columns:170px 1fr 120px;
  align-items:center;
  gap:10px;
  margin-bottom:8px;
  font-size:12px;
}
.rc-wf-label{ text-align:right; color:var(--text-main); }
.rc-wf-track{
  position:relative;
  height:22px;
  background:rgba(255,255,255,.05);
  border-radius:4px;
}
.rc-wf-track::before{
  content:'';
  position:absolute;
  left:50%;
  top:-3px;
  bottom:-3px;
  width:1px;
  background:rgba(255,255,255,.18);
}
.rc-wf-fill{
  position:absolute;
  top:2px;
  bottom:2px;
  border-radius:4px;
  opacity:.92;
}
.rc-wf-fill.is-up{ background:var(--emerald); }
.rc-wf-fill.is-down{ background:var(--rose); }
.rc-wf-val{
  font-family:'Fira Code',monospace;
  font-size:12px;
  font-weight:700;
}
.rc-wf-val.is-up{ color:var(--emerald); }
.rc-wf-val.is-down{ color:var(--rose); }
.rc-wf-total{
  margin-top:12px;
  padding-top:12px;
  border-top:1px dashed rgba(255,255,255,.18);
  display:flex;
  justify-content:space-between;
  font-weight:800;
  font-size:13px;
}

.rc-subtitle{
  font-size:11.5px;
  text-transform:uppercase;
  letter-spacing:.4px;
  margin:16px 0 8px;
  color:var(--text-main);
  font-weight:800;
  display:flex;
  align-items:center;
  gap:8px;
}
.rc-subtitle:first-child{ margin-top:0; }

.rc-heat-table td.rc-heat-cell{
  text-align:right;
  font-family:'Fira Code',monospace;
  font-size:11px;
}

.rc-normalizado{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:var(--sp-3);
}

.rc-movers-title{
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.4px;
  font-weight:800;
  color:var(--text-main);
  margin:16px 0 8px;
}
.rc-movers-title:first-child{ margin-top:0; }
.rc-movers-empty{ color:var(--text-muted); font-size:12px; }

.rc-recs{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:10px;
  counter-reset:rcacao;
}
.rc-recs li{
  counter-increment:rcacao;
  position:relative;
  padding:14px 16px 14px 54px;
  border-radius:var(--r-sm);
  background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.08);
}
.rc-recs li::before{
  content:counter(rcacao, decimal-leading-zero);
  position:absolute;
  left:14px;
  top:12px;
  font-size:20px;
  font-weight:800;
  color:var(--primary);
}
.rc-recs li h4{ margin:0 0 4px; font-size:13px; }
.rc-recs li p{ margin:0; font-size:12px; color:var(--text-muted); }
.rc-recs li .rc-tag{
  font-size:10px;
  color:var(--emerald);
  background:rgba(16,185,129,.12);
  padding:2px 8px;
  border-radius:20px;
  margin-left:8px;
  white-space:nowrap;
}

@media print{
  .orion-topbar, .orion-sidebar, .ai-float-btn, .rc-filters, #rcPrintBtn{ display:none !important; }
  #page-content{ margin:0 !important; padding:0 !important; }
  body{ background:#fff; }
  .orion-card{ break-inside:avoid; }
  .dre-table-wrap{ max-height:none !important; overflow:visible !important; }
}

@media (max-width:1100px){
  .dre-filters{
    width:100%;
  }
  .rc-wf-row{
    grid-template-columns:110px 1fr 90px;
  }
}

/* ===================== COMPARADOR T0xTF ===================== */
.comparador-tray{
  position:fixed;
  left:50%;
  bottom:24px;
  transform:translateX(-50%);
  z-index:60;
  display:flex;
  align-items:center;
  gap:var(--sp-3);
  padding:12px 16px;
  background:var(--panel-bg);
  border:1px solid var(--panel-border);
  backdrop-filter:blur(25px) saturate(160%);
  -webkit-backdrop-filter:blur(25px) saturate(160%);
  border-radius:var(--r-lg);
  box-shadow:0 12px 40px rgba(0,0,0,.5);
  max-width:calc(100vw - 48px);
}
.comparador-tray.hidden{display:none;}
.comparador-tray-chips{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  max-width:min(60vw,640px);
}
.comparador-chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:6px 8px 6px 12px;
  background:rgba(249,115,22,.1);
  border:1px solid rgba(249,115,22,.3);
  border-radius:999px;
  font-size:var(--fs-xs);
  color:var(--text-main);
  white-space:nowrap;
}
.comparador-chip button{
  width:18px;
  height:18px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:none;
  border-radius:50%;
  background:rgba(255,255,255,.08);
  color:var(--text-muted);
  cursor:pointer;
  font-size:10px;
  flex-shrink:0;
}
.comparador-chip button:hover{color:var(--rose);}

/* O shell bespoke do comparador (.comparador-modal-overlay/-box/-head/-body) saiu na
   Fase 8: virou .orion-modal--xl. Só o conteúdo (loading, tabela, chips) segue aqui. */
.comparador-loading{
  text-align:center;
  color:var(--text-muted);
  padding:var(--sp-6);
}
.comparador-table-wrap{overflow-x:auto;}
.comparador-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm);}
.comparador-table thead th{
  text-align:left;
  padding:10px 14px;
  color:var(--text-muted);
  font-size:var(--fs-xs);
  text-transform:uppercase;
  letter-spacing:.5px;
  border-bottom:1px solid var(--panel-border);
  white-space:nowrap;
}
.comparador-table tbody td{
  padding:10px 14px;
  border-bottom:1px solid rgba(255,255,255,.05);
  white-space:nowrap;
}
.comparador-row-label{color:var(--text-main);font-weight:600;}
.comparador-col-value{color:var(--text-main);}
.comparador-col-variacao{font-weight:700;text-align:right;}
.comparador-col-variacao.is-positive{color:var(--emerald);}
.comparador-col-variacao.is-negative{color:var(--rose);}
.comparador-section-row td{
  padding-top:20px;
  font-weight:700;
  color:var(--primary);
  text-transform:uppercase;
  font-size:var(--fs-xs);
  letter-spacing:.5px;
  border-bottom:1px solid var(--panel-border);
}
[data-theme="claro"] .comparador-table tbody td,
[data-theme="polar"] .comparador-table tbody td,
[data-theme="solar"] .comparador-table tbody td{
  border-bottom:1px solid rgba(15,23,42,.08);
}


/* ===================== PERMISSÕES ===================== */
.permissions-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:var(--sp-4);
  margin:var(--sp-4) 0;
}
.permission-group-title{
  grid-column:1 / -1;
  display:flex;
  align-items:center;
  gap:8px;
  margin:var(--sp-2) 0 calc(var(--sp-2) * -1);
  padding-bottom:var(--sp-2);
  border-bottom:1px solid var(--panel-border);
  color:var(--primary);
  font-size:var(--fs-sm);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:1px;
}
.permission-group-title i{
  font-size:var(--fs-base);
}
.permission-module{
  padding:var(--sp-4);
  border-radius:var(--r-sm);
}
.permission-module h3{
  font-size:var(--fs-sm);
  margin-bottom:var(--sp-3);
  text-transform:uppercase;
  letter-spacing:1px;
}
.permission-options{
  display:grid;
  gap:8px;
}
.permission-option{
  display:flex;
  align-items:flex-start;
  gap:10px;
  color:var(--text-muted);
  font-size:var(--fs-sm);
  line-height:1.45;
}
.permission-option input{
  margin-top:2px;
  accent-color:var(--primary);
}

/* ===================== DOCUMENTAÇÃO ===================== */
.docs-layout{
  display:grid;
  grid-template-columns:260px minmax(0,1fr);
  gap:var(--sp-5);
  align-items:start;
}
.docs-index{
  position:sticky;
  top:96px;
  display:grid;
  gap:6px;
  padding:var(--sp-3);
}
.docs-index a{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border-radius:var(--r-sm);
  color:var(--text-muted);
  text-decoration:none;
  font-size:var(--fs-sm);
  font-weight:700;
}
.docs-index a:hover{
  color:var(--text-main);
  background:rgba(255,255,255,.05);
}
.docs-index i{
  width:16px;
  color:var(--primary);
}
.docs-content{
  display:grid;
  gap:var(--sp-4);
}
.docs-section{
  padding:var(--sp-5);
  border-radius:var(--r-sm);
  scroll-margin-top:96px;
}
.docs-section h2{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:var(--sp-3);
  font-size:var(--fs-lg);
}
.docs-section h2 i{
  color:var(--primary);
  font-size:16px;
}
.docs-section p{
  color:var(--text-muted);
  line-height:1.65;
  margin-bottom:var(--sp-3);
}
.docs-section ul{
  display:grid;
  gap:8px;
  padding-left:18px;
  color:var(--text-muted);
  line-height:1.55;
}
.docs-section strong{
  color:var(--text-main);
}

@media (max-width:900px){
  .docs-layout{grid-template-columns:1fr;}
  .docs-index{position:relative;top:auto;}
}

/* ===================== DASHBOARD ===================== */
.dashboard-page{
  max-width:1480px;
}
.dashboard-header{
  align-items:center;
  margin-bottom:var(--sp-4);
}
.dashboard-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:var(--sp-2);
}
.dashboard-overview{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:var(--sp-3);
  margin-bottom:var(--sp-4);
}
.dashboard-stat-card{
  display:flex;
  align-items:center;
  gap:var(--sp-3);
  border-radius:var(--r-sm);
  padding:var(--sp-4);
}
.dashboard-stat-icon,
.dashboard-module-icon{
  width:42px;
  height:42px;
  border-radius:12px;
  display:grid;
  place-items:center;
  background:linear-gradient(135deg, rgba(249,115,22,.22), rgba(6,182,212,.12));
  color:var(--primary);
  font-size:17px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}
.dashboard-stat-content{
  min-width:0;
  display:grid;
  gap:3px;
}
.dashboard-stat-label{
  color:var(--text-muted);
  font-size:var(--fs-xs);
  text-transform:uppercase;
  letter-spacing:.7px;
  font-weight:800;
}
.dashboard-stat-content strong{
  font-size:24px;
  line-height:1;
  letter-spacing:0;
}
.dashboard-stat-content small{
  color:var(--cyan);
  font-size:var(--fs-xs);
  text-transform:uppercase;
  letter-spacing:.8px;
}
.dashboard-modules-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(280px,1fr));
  gap:var(--sp-3);
}
.dashboard-loading-card{
  grid-column:1 / -1;
  padding:var(--sp-5);
  color:var(--text-muted);
}

.dashboard-charts-section{
  margin-bottom:var(--sp-4);
}
.dashboard-charts-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:var(--sp-3);
  margin-bottom:var(--sp-3);
  flex-wrap:wrap;
}
.dashboard-charts-head h2{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:var(--fs-lg);
}
.dashboard-charts-head h2 i{
  color:var(--primary);
}
.dashboard-charts-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
  gap:var(--sp-3);
}
.dash-chart-card{
  --dash-color-1:var(--primary);
  --dash-color-2:var(--cyan);
  --dash-color-3:var(--emerald);
  --dash-color-4:var(--rose);
  --dash-color-5:#a855f7;
  padding:var(--sp-4);
  border-radius:var(--r-sm);
}
.dash-chart-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:var(--sp-3);
  margin-bottom:var(--sp-2);
  flex-wrap:wrap;
}
.dash-chart-head h3{
  font-size:var(--fs-sm);
  margin:0;
}
.dash-chart-head span{
  display:block;
  margin-top:2px;
  color:var(--text-muted);
  font-size:var(--fs-xs);
  text-transform:uppercase;
  letter-spacing:.5px;
}
.dash-chart-legend{
  display:flex;
  gap:var(--sp-3);
  flex-wrap:wrap;
}
.dash-chart-legend-item{
  display:flex;
  align-items:center;
  gap:5px;
  font-size:var(--fs-xs);
  color:var(--text-muted);
}
.dash-chart-legend-item i{
  width:8px;
  height:8px;
  border-radius:50%;
  display:inline-block;
}
.dash-chart-svg{
  width:100%;
  height:auto;
  display:block;
}
.dash-chart-svg *{pointer-events:none;}
.dash-chart-wrap{position:relative;}
.dash-chart-tooltip{
  position:absolute;
  z-index:5;
  min-width:150px;
  padding:8px 10px;
  border-radius:var(--r-sm);
  background:rgba(10,10,18,.96);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 10px 28px rgba(0,0,0,.5);
  pointer-events:none;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.dash-chart-tooltip strong{
  font-size:var(--fs-xs);
  text-transform:uppercase;
  letter-spacing:.5px;
  color:var(--text-muted);
}
.dash-tip-row{
  display:flex;
  align-items:center;
  gap:6px;
  font-size:var(--fs-xs);
  color:var(--text-main);
}
.dash-tip-row i{
  width:8px;
  height:8px;
  border-radius:50%;
  flex:0 0 auto;
}
.dash-tip-row b{margin-left:auto;font-weight:700;}
.dash-hover-guide{
  stroke:rgba(255,255,255,.35);
  stroke-width:1;
  stroke-dasharray:4 3;
}
.dash-chart-grid-line{
  stroke:rgba(255,255,255,.05);
  stroke-width:1;
}
.dash-chart-ytick{
  fill:var(--text-muted);
  font-size:8.5px;
}
.dash-chart-stats{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-bottom:var(--sp-2);
}
.dash-stat-chip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:3px 9px;
  border-radius:var(--r-pill);
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.07);
  font-size:var(--fs-xs);
  color:var(--text-muted);
}
.dash-stat-chip b{color:var(--text-main);font-weight:700;}
.dash-stat-chip i{width:8px;height:8px;border-radius:50%;display:inline-block;}
.dash-stat-chip.is-up{color:var(--emerald);border-color:rgba(16,185,129,.3);}
.dash-stat-chip.is-down{color:var(--rose);border-color:rgba(244,63,94,.3);}
.dash-chart-baseline{
  stroke:rgba(255,255,255,.12);
  stroke-width:1;
}
.dash-chart-axis-label{
  fill:var(--text-muted);
  font-size:9px;
  text-transform:uppercase;
}
.dash-chart-line{
  vector-effect:non-scaling-stroke;
  fill:none !important;
}
.dash-chart-area{
  fill-opacity:.16;
  stroke:none;
}
.dash-series-1{fill:var(--dash-color-1);stroke:var(--dash-color-1);}
.dash-series-2{fill:var(--dash-color-2);stroke:var(--dash-color-2);}
.dash-series-3{fill:var(--dash-color-3);stroke:var(--dash-color-3);}
.dash-series-4{fill:var(--dash-color-4);stroke:var(--dash-color-4);}
.dash-series-5{fill:var(--dash-color-5);stroke:var(--dash-color-5);}
[data-theme="claro"] .dash-chart-baseline,
[data-theme="polar"] .dash-chart-baseline,
[data-theme="solar"] .dash-chart-baseline{
  stroke:rgba(15,23,42,.15);
}
[data-theme="claro"] .dash-chart-grid-line,
[data-theme="polar"] .dash-chart-grid-line,
[data-theme="solar"] .dash-chart-grid-line{
  stroke:rgba(15,23,42,.07);
}
[data-theme="claro"] .dash-hover-guide,
[data-theme="polar"] .dash-hover-guide,
[data-theme="solar"] .dash-hover-guide{
  stroke:rgba(15,23,42,.35);
}
[data-theme="claro"] .dash-chart-tooltip,
[data-theme="polar"] .dash-chart-tooltip,
[data-theme="solar"] .dash-chart-tooltip{
  background:rgba(255,255,255,.98);
  border-color:rgba(15,23,42,.12);
  box-shadow:0 10px 28px rgba(15,23,42,.18);
}

.dashboard-module-card{
  --dash-color-1:var(--primary);
  --dash-color-2:var(--cyan);
  --dash-color-3:var(--emerald);
  --dash-color-4:var(--rose);
  --dash-color-5:#a855f7;
  display:grid;
  gap:var(--sp-3);
  padding:var(--sp-4);
  border-radius:var(--r-sm);
}
.dashboard-module-head{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:var(--sp-3);
  align-items:center;
}
.dashboard-module-head h2{
  font-size:var(--fs-base);
  line-height:1.15;
  margin:0;
}
.dashboard-module-head span{
  display:block;
  margin-top:2px;
  color:var(--text-muted);
  font-size:var(--fs-xs);
  text-transform:uppercase;
  letter-spacing:.7px;
  font-weight:800;
}
.dashboard-module-head strong{
  justify-self:end;
  font-size:var(--fs-md);
  white-space:nowrap;
}
.dashboard-module-charts{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--sp-3);
}
.dashboard-chart-panel{
  min-width:0;
  padding:var(--sp-3);
  border-radius:12px;
  background:rgba(255,255,255,.035);
  border:1px solid rgba(255,255,255,.07);
}
.dashboard-chart-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--sp-2);
  margin-bottom:var(--sp-2);
  color:var(--text-muted);
  font-size:var(--fs-xs);
  text-transform:uppercase;
  letter-spacing:.6px;
  font-weight:800;
}
.dashboard-chart-title small{
  color:var(--primary);
  font-size:var(--fs-xs);
  text-transform:none;
  letter-spacing:0;
  font-family:'Fira Code',monospace;
}
.dashboard-donut{
  width:24px;
  height:24px;
  border-radius:50%;
  display:grid;
  place-items:center;
  flex:0 0 24px;
  box-shadow:0 0 16px rgba(0,0,0,.12);
}
.dashboard-donut::before{
  content:'';
  width:13px;
  height:13px;
  border-radius:50%;
  background:rgba(7,7,12,.78);
}
[data-theme="claro"] .dashboard-donut::before,
[data-theme="polar"] .dashboard-donut::before,
[data-theme="solar"] .dashboard-donut::before{
  background:rgba(255,255,255,.76);
}
.dashboard-donut span{display:none;}
.dashboard-donut.is-empty{
  background:rgba(255,255,255,.06);
}
.dashboard-mini-row{
  display:grid;
  gap:5px;
}
.dashboard-mini-row + .dashboard-mini-row{
  margin-top:8px;
}
.dashboard-mini-label{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  color:var(--text-muted);
  font-size:var(--fs-xs);
}
.dashboard-mini-label span{
  min-width:0;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
}
.dashboard-mini-label strong{
  color:var(--text-main);
  font-family:'Fira Code',monospace;
  font-size:var(--fs-xs);
}
.dashboard-mini-track{
  height:7px;
  overflow:hidden;
  border-radius:999px;
  background:rgba(255,255,255,.06);
}
.dashboard-mini-track span{
  display:block;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,var(--primary),var(--cyan));
  box-shadow:0 0 14px var(--primary-glow);
}
.dashboard-empty{
  color:var(--text-muted);
  font-size:var(--fs-xs);
  padding:var(--sp-2) 0;
}
[data-theme="claro"] .dashboard-chart-panel,
[data-theme="polar"] .dashboard-chart-panel,
[data-theme="solar"] .dashboard-chart-panel{
  background:rgba(255,255,255,.24);
  border-color:rgba(255,255,255,.52);
  backdrop-filter:blur(18px) saturate(170%);
  -webkit-backdrop-filter:blur(18px) saturate(170%);
}

@media (max-width:768px){
  .dashboard-overview,
  .dashboard-modules-grid,
  .dashboard-module-charts{
    grid-template-columns:1fr;
  }
  .dashboard-actions{
    justify-content:flex-start;
  }
}

@media (min-width:769px) and (max-width:1180px){
  .dashboard-overview,
  .dashboard-modules-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .dashboard-overview .dashboard-stat-card:last-child{
    grid-column:1 / -1;
  }
}

/* ===================== CONTROLADOR GERAL ===================== */
.controller-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--sp-4);
  margin-bottom:var(--sp-5);
  flex-wrap:wrap;
}
.controller-search{
  position:relative;
  flex:1 1 320px;
  max-width:520px;
}
.controller-search i{
  position:absolute;
  left:14px;
  top:50%;
  transform:translateY(-50%);
  color:var(--text-muted);
  font-size:13px;
}
.controller-search .orion-input{
  width:100%;
  padding-left:38px;
}
.controller-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:var(--sp-4);
}
.controller-card{
  border-radius:var(--r-sm);
  padding:var(--sp-4);
  min-height:172px;
  text-align:left;
  color:var(--text-main);
  cursor:pointer;
  display:flex;
  flex-direction:column;
  gap:var(--sp-3);
}
.controller-card:hover{
  transform:translateY(-2px);
  border-color:rgba(249,115,22,.45);
  box-shadow:0 12px 30px rgba(0,0,0,.45);
}
.controller-card-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--sp-3);
}
.controller-company-id{
  font-family:'Fira Code',monospace;
  color:var(--text-muted);
  font-size:var(--fs-xs);
}
.controller-status{
  border-radius:var(--r-pill);
  padding:4px 9px;
  font-size:var(--fs-xs);
  font-weight:700;
  text-transform:uppercase;
  color:var(--rose);
  background:rgba(244,63,94,.12);
}
.controller-status.active{
  color:var(--emerald);
  background:rgba(16,185,129,.12);
}
.controller-company-name{
  display:block;
  font-size:var(--fs-base);
  line-height:1.35;
}
.controller-company-doc{
  font-family:'Fira Code',monospace;
  color:var(--text-muted);
  font-size:var(--fs-sm);
}
.controller-card-meta{
  margin-top:auto;
  display:grid;
  gap:var(--sp-2);
  color:var(--text-muted);
  font-size:var(--fs-sm);
}
.controller-card-meta span{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
}
.controller-card-meta i{
  width:15px;
  color:var(--primary);
}
.controller-loading,
.controller-empty{
  grid-column:1/-1;
  padding:var(--sp-6);
  text-align:center;
  color:var(--text-muted);
}

/* ===================== COLABORADORES ===================== */
/* Migrado de pages/colaboradores.html (Fase 9, item 3 da Fase 8 — <style> embutido). */
  #orionColaboradoresTable [data-el="newItemBtn"],
  #orionColaboradoresTable [data-el="newItemBtnMobile"]{display:none !important;}

/* ===================== COMISSOES ===================== */
/* Migrado de pages/comissoes.html (Fase 9, item 3 da Fase 8 — <style> embutido). */
  /* Diálogo bespoke (680) entre md e lg: especificidade extra p/ vencer .orion-modal__dialog. */
  .orion-modal__dialog.comissoes-taxas-dialog{max-width:680px;}
  /* Form horizontal de "adicionar taxa" (5 controles) — layout de página, não inline. */
  .comissoes-taxa-form{display:grid;grid-template-columns:1fr 1fr 1fr 100px auto;gap:14px 16px;align-items:end;}
  #comissoesTaxasLista .flr-title{font-size:13px;}
  #comissoesTaxasLista .ficha-lista-card{padding:10px 14px;margin-bottom:8px;}
  /* Extrato e gerado automaticamente ao finalizar tratamento - sem criacao manual. */
  #orionComissoesTable [data-el="newItemBtn"],
  #orionComissoesTable [data-el="newItemBtnMobile"]{display:none;}
  @media (max-width:700px){
    .comissoes-taxa-form{grid-template-columns:1fr;}
  }

/* ===================== CONTAS A PAGAR ===================== */
/* Migrado de pages/contas-pagar.html (Fase 9, item 3 da Fase 8 — <style> embutido). */
/* Diálogo mais largo que o --xl (1040) do framework: especificidade extra p/ vencer .orion-modal__dialog. */
.orion-modal__dialog.conta-pagar-modal-box{width:min(1180px,100%);max-width:1180px;}
.conta-pagar-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,.9fr);gap:22px;}
.conta-pagar-inline-action{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:8px;}
.conta-pagar-plus-btn{width:44px;height:42px;padding:0;justify-content:center;box-shadow:0 0 18px var(--primary-glow);}
.conta-pagar-checks{display:flex;gap:22px;flex-wrap:wrap;margin-top:14px;color:var(--text-muted);}
.conta-pagar-checks label{display:flex;gap:8px;align-items:center;font-weight:700;}
.conta-pagar-quick-plan{
  margin-top:16px;
  padding:14px;
  border:1px solid color-mix(in srgb, var(--primary) 42%, transparent);
  border-radius:8px;
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--primary) 11%, transparent), rgba(255,255,255,.025)),
    rgba(10,10,18,.62);
  box-shadow:0 0 26px color-mix(in srgb, var(--primary) 18%, transparent);
}
.conta-pagar-quick-title{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:12px;
  color:var(--primary);
  font-size:var(--fs-xs);
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:1.2px;
}
.conta-pagar-quick-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:12px;}
.conta-pagar-parcela-editor{
  margin-top:16px;
  padding:14px;
  border:1px solid color-mix(in srgb, var(--cyan) 34%, transparent);
  border-radius:8px;
  background:
    radial-gradient(circle at 0% 0%, rgba(6,182,212,.14), transparent 42%),
    rgba(8,8,16,.66);
  box-shadow:0 0 24px rgba(6,182,212,.12), inset 0 1px 0 rgba(255,255,255,.05);
}
.conta-pagar-editor-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:12px;
  color:var(--text-main);
}
.conta-pagar-editor-head strong{display:block;font-size:15px;}
.conta-pagar-editor-head span{
  display:inline-flex;
  margin-top:4px;
  padding:3px 8px;
  border-radius:999px;
  background:rgba(245,158,11,.13);
  color:#fbbf24;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
}
.conta-pagar-editor-head span.pago{background:rgba(16,185,129,.14);color:#34d399;}
.conta-pagar-editor-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:12px;}
.conta-pagar-panel-title{
  background:linear-gradient(90deg, color-mix(in srgb, var(--primary) 92%, #ff7a18), color-mix(in srgb, var(--cyan) 72%, var(--primary)));
  color:#fff;
  text-align:center;
  font-weight:900;
  padding:13px;
  border-radius:8px 8px 0 0;
  letter-spacing:.2px;
  text-shadow:0 0 16px rgba(255,255,255,.28);
}
.conta-pagar-parcelas{
  border:1px solid color-mix(in srgb, var(--primary) 38%, transparent);
  border-radius:8px;
  background:
    radial-gradient(circle at 20% 0%, color-mix(in srgb, var(--primary) 18%, transparent), transparent 36%),
    radial-gradient(circle at 95% 20%, rgba(6,182,212,.14), transparent 34%),
    rgba(8,8,16,.72);
  overflow:hidden;
  box-shadow:0 0 30px color-mix(in srgb, var(--primary) 16%, transparent), inset 0 1px 0 rgba(255,255,255,.06);
}
.conta-pagar-parcela-config{
  padding:13px;
  display:grid;
  gap:8px;
  color:var(--text-main);
  border-bottom:1px solid color-mix(in srgb, var(--primary) 25%, transparent);
  background:rgba(255,255,255,.025);
}
.conta-pagar-parcela-config label{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--text-muted);}
.conta-pagar-parcela-config input[type="radio"]{accent-color:var(--primary);}
.conta-pagar-parcela-table-wrap{max-height:280px;overflow:auto;padding:10px;}
.conta-pagar-parcela-table{width:100%;border-collapse:collapse;font-size:13px;}
.conta-pagar-parcela-table th{
  background:linear-gradient(180deg, rgba(255,255,255,.09), rgba(255,255,255,.035));
  color:var(--text-muted);
  padding:8px 6px;
  text-align:left;
  text-transform:uppercase;
  letter-spacing:.7px;
  font-size:11px;
  border-bottom:1px solid color-mix(in srgb, var(--primary) 28%, transparent);
}
.conta-pagar-parcela-table td{padding:5px;border-bottom:1px solid rgba(255,255,255,.06);}
.conta-pagar-parcela-table tbody tr:hover{background:color-mix(in srgb, var(--primary) 8%, transparent);}
.conta-pagar-parcela-table tbody tr{cursor:pointer;}
.conta-pagar-parcela-table tbody tr.selected{outline:1px solid var(--primary);background:color-mix(in srgb, var(--primary) 13%, transparent);}
.conta-pagar-parcela-table .parcela-cell-readonly{
  display:block;
  min-height:28px;
  padding:6px 7px;
  color:var(--text-main);
  border:1px solid transparent;
  border-radius:6px;
}
.conta-pagar-parcela-table input{
  width:100%;
  height:32px;
  background:rgba(0,0,0,.22);
  border:1px solid rgba(255,255,255,.12);
  border-radius:6px;
  color:var(--text-main);
  padding:4px 7px;
  outline:none;
}
.conta-pagar-parcela-table input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow);}
.conta-pagar-parcela-table input:disabled{opacity:.62;cursor:not-allowed;}
.conta-pagar-parcela-table tr.parcela-paga{background:rgba(16,185,129,.08);}
.parcela-lock{
  display:inline-flex;
  margin-left:6px;
  padding:2px 6px;
  border-radius:999px;
  background:rgba(16,185,129,.14);
  color:#34d399;
  font-size:10px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.conta-pagar-parcela-table tfoot td{
  padding-top:10px;
  color:var(--primary);
  font-weight:900;
  text-align:right;
  border-bottom:0;
}
.baixa-conta-box{max-width:780px;}
@media (min-width:577px){
  .baixa-conta-box{min-height:480px;}
}
.conta-pagar-delete-choice .orion-confirm-box{width:min(540px,100%);}
.conta-pagar-delete-choice .orion-confirm-actions{justify-content:stretch;flex-wrap:wrap;}
.conta-pagar-delete-choice .orion-confirm-actions .orion-btn{flex:1;min-width:150px;justify-content:center;}
@media (max-width:1100px){
  .conta-pagar-layout{grid-template-columns:1fr;}
}

/* ===================== CONTAS A RECEBER ===================== */
/* Migrado de pages/contas-receber.html (Fase 9, item 3 da Fase 8 — <style> embutido). */
/* Diálogo mais largo que o --xl (1040) do framework: especificidade extra p/ vencer .orion-modal__dialog. */
.orion-modal__dialog.conta-receber-modal-box{width:min(1180px,100%);max-width:1180px;}
.conta-receber-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,.9fr);gap:22px;}
.conta-receber-inline-action{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:8px;}
.conta-receber-plus-btn{width:44px;height:42px;padding:0;justify-content:center;box-shadow:0 0 18px var(--primary-glow);}
.conta-receber-checks{display:flex;gap:22px;flex-wrap:wrap;margin-top:14px;color:var(--text-muted);}
.conta-receber-checks label{display:flex;gap:8px;align-items:center;font-weight:700;}
.conta-receber-quick-plan{
  margin-top:16px;
  padding:14px;
  border:1px solid color-mix(in srgb, var(--primary) 42%, transparent);
  border-radius:8px;
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--primary) 11%, transparent), rgba(255,255,255,.025)),
    rgba(10,10,18,.62);
  box-shadow:0 0 26px color-mix(in srgb, var(--primary) 18%, transparent);
}
.conta-receber-quick-title{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:12px;
  color:var(--primary);
  font-size:var(--fs-xs);
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:1.2px;
}
.conta-receber-quick-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:12px;}
.conta-receber-parcela-editor{
  margin-top:16px;
  padding:14px;
  border:1px solid color-mix(in srgb, var(--cyan) 34%, transparent);
  border-radius:8px;
  background:
    radial-gradient(circle at 0% 0%, rgba(6,182,212,.14), transparent 42%),
    rgba(8,8,16,.66);
  box-shadow:0 0 24px rgba(6,182,212,.12), inset 0 1px 0 rgba(255,255,255,.05);
}
.conta-receber-editor-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:12px;
  color:var(--text-main);
}
.conta-receber-editor-head strong{display:block;font-size:15px;}
.conta-receber-editor-head span{
  display:inline-flex;
  margin-top:4px;
  padding:3px 8px;
  border-radius:999px;
  background:rgba(245,158,11,.13);
  color:#fbbf24;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
}
.conta-receber-editor-head span.pago{background:rgba(16,185,129,.14);color:#34d399;}
.conta-receber-editor-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:12px;}
.conta-receber-panel-title{
  background:linear-gradient(90deg, color-mix(in srgb, var(--primary) 92%, #ff7a18), color-mix(in srgb, var(--cyan) 72%, var(--primary)));
  color:#fff;
  text-align:center;
  font-weight:900;
  padding:13px;
  border-radius:8px 8px 0 0;
  letter-spacing:.2px;
  text-shadow:0 0 16px rgba(255,255,255,.28);
}
.conta-receber-parcelas{
  border:1px solid color-mix(in srgb, var(--primary) 38%, transparent);
  border-radius:8px;
  background:
    radial-gradient(circle at 20% 0%, color-mix(in srgb, var(--primary) 18%, transparent), transparent 36%),
    radial-gradient(circle at 95% 20%, rgba(6,182,212,.14), transparent 34%),
    rgba(8,8,16,.72);
  overflow:hidden;
  box-shadow:0 0 30px color-mix(in srgb, var(--primary) 16%, transparent), inset 0 1px 0 rgba(255,255,255,.06);
}
.conta-receber-parcela-config{
  padding:13px;
  display:grid;
  gap:8px;
  color:var(--text-main);
  border-bottom:1px solid color-mix(in srgb, var(--primary) 25%, transparent);
  background:rgba(255,255,255,.025);
}
.conta-receber-parcela-config label{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--text-muted);}
.conta-receber-parcela-config input[type="radio"]{accent-color:var(--primary);}
.conta-receber-parcela-table-wrap{max-height:280px;overflow:auto;padding:10px;}
.conta-receber-parcela-table{width:100%;border-collapse:collapse;font-size:13px;}
.conta-receber-parcela-table th{
  background:linear-gradient(180deg, rgba(255,255,255,.09), rgba(255,255,255,.035));
  color:var(--text-muted);
  padding:8px 6px;
  text-align:left;
  text-transform:uppercase;
  letter-spacing:.7px;
  font-size:11px;
  border-bottom:1px solid color-mix(in srgb, var(--primary) 28%, transparent);
}
.conta-receber-parcela-table td{padding:5px;border-bottom:1px solid rgba(255,255,255,.06);}
.conta-receber-parcela-table tbody tr:hover{background:color-mix(in srgb, var(--primary) 8%, transparent);}
.conta-receber-parcela-table tbody tr{cursor:pointer;}
.conta-receber-parcela-table tbody tr.selected{outline:1px solid var(--primary);background:color-mix(in srgb, var(--primary) 13%, transparent);}
.conta-receber-parcela-table .parcela-cell-readonly{
  display:block;
  min-height:28px;
  padding:6px 7px;
  color:var(--text-main);
  border:1px solid transparent;
  border-radius:6px;
}
.conta-receber-parcela-table input{
  width:100%;
  height:32px;
  background:rgba(0,0,0,.22);
  border:1px solid rgba(255,255,255,.12);
  border-radius:6px;
  color:var(--text-main);
  padding:4px 7px;
  outline:none;
}
.conta-receber-parcela-table input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow);}
.conta-receber-parcela-table input:disabled{opacity:.62;cursor:not-allowed;}
.conta-receber-parcela-table tr.parcela-paga{background:rgba(16,185,129,.08);}
.parcela-lock{
  display:inline-flex;
  margin-left:6px;
  padding:2px 6px;
  border-radius:999px;
  background:rgba(16,185,129,.14);
  color:#34d399;
  font-size:10px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.conta-receber-parcela-table tfoot td{
  padding-top:10px;
  color:var(--primary);
  font-weight:900;
  text-align:right;
  border-bottom:0;
}
.baixa-conta-box{max-width:780px;}
@media (min-width:577px){
  .baixa-conta-box{min-height:480px;}
}
.conta-receber-delete-choice .orion-confirm-box{width:min(540px,100%);}
.conta-receber-delete-choice .orion-confirm-actions{justify-content:stretch;flex-wrap:wrap;}
.conta-receber-delete-choice .orion-confirm-actions .orion-btn{flex:1;min-width:150px;justify-content:center;}
@media (max-width:1100px){
  .conta-receber-layout{grid-template-columns:1fr;}
}

/* ===================== ENCAMINHAMENTOS ===================== */
/* Migrado de pages/encaminhamentos.html (Fase 9, item 3 da Fase 8 — <style> embutido). */
  /* Bloco de detalhe (somente leitura) do encaminhamento — layout de página. */
  .enc-detalhe{padding:6px 0 16px;}
  .enc-det-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px;}
  .enc-det-label{display:block;font-size:11.5px;color:var(--text-muted);}
  .enc-det-motivo-wrap{margin-top:12px;}
  .enc-det-motivo{margin:4px 0 0;color:var(--text-main);font-size:13.5px;}

/* ===================== MATERIAIS ===================== */
/* Migrado de pages/materiais.html (Fase 9, item 3 da Fase 8 — <style> embutido). */
  .cell-value.material-abaixo-minimo{color:#f43f5e;font-weight:800;}
  #movimentoHistorico .flr-title{font-size:12.5px;}

/* ===================== ORCAMENTOS ===================== */
/* Migrado de pages/orcamentos.html (Fase 9, item 3 da Fase 8 — <style> embutido). */
  #orcamentoForm .orcamento-itens-header{display:flex;align-items:center;gap:10px;margin:14px 0 8px;}
  #orcamentoForm .orcamento-item-row{display:grid;grid-template-columns:2fr 0.7fr 1fr 1.3fr 0.9fr auto;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid var(--panel-border);}
  #orcamentoForm .orcamento-item-status{font-size:11px;padding:3px 8px;border-radius:999px;text-align:center;white-space:nowrap;}
  #orcamentoForm .orcamento-item-status[data-status="pendente"]{background:rgba(180,83,9,.14);color:#b45309;}
  #orcamentoForm .orcamento-item-status[data-status="aprovado"]{background:rgba(15,157,104,.14);color:#0f9d68;}
  #orcamentoForm .orcamento-item-status[data-status="recusado"]{background:rgba(190,18,60,.12);color:#be123c;}
  #orcamentoForm .orcamento-item-acoes{display:flex;gap:4px;}
  #orcamentoForm .orcamento-item-acoes button{font-size:11px;padding:3px 6px;}
  #orcamentoForm .orcamento-totais{display:flex;gap:24px;justify-content:flex-end;padding:8px 0;font-size:13px;color:var(--text-main);}
  #orcamentoForm .orcamento-faturar-box{margin-top:10px;padding-top:10px;border-top:1px dashed var(--panel-border);}
  #orcamentoForm .orcamento-item-hint{font-size:11px;color:var(--text-muted);}
  #orcamentoForm .orcamento-item-remove{display:flex;align-items:center;gap:6px;}
  #orcamentoForm .orcamento-remove-locked{visibility:hidden;}
  #orcamentoForm .orcamento-itens-empty{padding:8px 0;color:var(--text-muted);font-size:13px;}

/* ===================== PACIENTES — FICHA ===================== */
/* Migrado de pages/pacientes-ficha.html (Fase 9, item 3 da Fase 8 — <style> embutido). */
  #fichaApp .ficha-topbar{margin-bottom:10px;}
  #fichaApp #fichaAtendimentoBanner{padding:14px 18px;margin-bottom:14px;border-left:4px solid #0f9d68;display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;}
  #fichaApp #fichaAtendimentoBanner .fab-label{font-size:11.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#0f9d68;}
  #fichaApp #fichaAtendimentoBanner p{margin:4px 0 0;font-size:12.5px;color:var(--text-muted);}
  #fichaApp .ficha-header{align-items:center;gap:16px;flex-wrap:wrap;}
  #fichaApp .ficha-avatar{width:56px;height:56px;border-radius:50%;background:var(--panel-hover, rgba(127,127,127,.12));display:flex;align-items:center;justify-content:center;font-size:22px;color:var(--text-muted);flex-shrink:0;}
  #fichaApp .ficha-header-info{flex:1;min-width:200px;}
  #fichaApp .ficha-header-info h1{margin:0;font-size:20px;}
  #fichaApp .ficha-header-info p{margin:4px 0 0;color:var(--text-muted);font-size:13px;}
  #fichaApp .ficha-tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--panel-border);margin:14px 0 16px;}
  #fichaApp .ficha-tab{background:none;border:none;padding:10px 14px;font-size:13.5px;font-weight:600;color:var(--text-muted);cursor:pointer;border-bottom:2px solid transparent;}
  #fichaApp .ficha-tab:hover{color:var(--text-main);}
  #fichaApp .ficha-tab.active{color:var(--accent, #0f766e);border-bottom-color:var(--accent, #0f766e);}
  #fichaApp .ficha-painel.hidden{display:none;}
  #fichaApp .ficha-dados-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;}
  #fichaApp .ficha-dados-grid span{display:block;font-size:11.5px;color:var(--text-muted);margin-bottom:2px;}
  #fichaApp .ficha-dados-grid strong{font-size:13.5px;color:var(--text-main);font-weight:600;}
  #fichaApp .odonto-consulta-row{padding:10px 0;border-bottom:1px solid var(--panel-border);}
  #fichaApp .odonto-consulta-row:last-child{border-bottom:none;}
  #fichaApp .odonto-consulta-row h4{margin:0 0 4px;font-size:13.5px;color:var(--text-main);}
  #fichaApp .odonto-consulta-row p{margin:2px 0;font-size:12.5px;color:var(--text-muted);}
  #fichaApp .ficha-lista-card{padding:14px 16px;margin-bottom:10px;}
  #fichaApp .ficha-lista-card .flr{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;}
  #fichaApp .ficha-lista-card .flr-title{font-size:13.5px;color:var(--text-main);font-weight:600;}
  #fichaApp .ficha-lista-card .flr-meta{font-size:12px;color:var(--text-muted);margin-top:2px;}
  #fichaApp .ficha-badge{font-size:11px;padding:3px 9px;border-radius:999px;white-space:nowrap;}
  #fichaApp .ficha-badge[data-tone="ok"]{background:rgba(15,157,104,.14);color:#0f9d68;}
  #fichaApp .ficha-badge[data-tone="warn"]{background:rgba(180,83,9,.14);color:#b45309;}
  #fichaApp .ficha-badge[data-tone="danger"]{background:rgba(190,18,60,.12);color:#be123c;}
  #fichaApp .ficha-badge[data-tone="muted"]{background:rgba(127,127,127,.14);color:var(--text-muted);}
  #fichaApp .ficha-imagens-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;}
  #fichaApp .ficha-imagem-card{position:relative;border-radius:10px;overflow:hidden;border:1px solid var(--panel-border);aspect-ratio:1;background:var(--panel-hover, rgba(127,127,127,.08));}
  #fichaApp .ficha-imagem-card img{width:100%;height:100%;object-fit:cover;display:block;}
  #fichaApp .ficha-imagem-card .ficha-imagem-remover{position:absolute;top:6px;right:6px;background:rgba(0,0,0,.55);color:#fff;border:none;border-radius:50%;width:26px;height:26px;cursor:pointer;}
  #fichaApp .anamnese-grupo{margin-bottom:18px;}
  #fichaApp .anamnese-grupo h3{margin:0 0 4px;font-size:15px;color:var(--text-main);}
  #fichaApp .anamnese-grupo p{margin:0 0 10px;font-size:12.5px;color:var(--text-muted);}
  #fichaApp .anamnese-item{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--panel-border);}
  #fichaApp .anamnese-item:last-child{border-bottom:none;}
  #fichaApp .anamnese-item-nome{flex:1 1 220px;font-size:13.5px;color:var(--text-main);}
  #fichaApp .anamnese-item-opcoes{display:flex;gap:6px;}
  #fichaApp .anamnese-item-opcoes label{display:flex;align-items:center;gap:4px;font-size:12px;padding:4px 8px;border-radius:8px;border:1px solid var(--panel-border);cursor:pointer;}
  #fichaApp .anamnese-item-opcoes input{margin:0;}
  #fichaApp .anamnese-item-obs{flex:1 1 220px;min-width:160px;}
  #fichaApp .ficha-financeiro-resumo{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:16px;}
  #fichaApp .ficha-financeiro-card{padding:14px 16px;}
  #fichaApp .ficha-financeiro-card span{display:block;font-size:11.5px;color:var(--text-muted);margin-bottom:4px;}
  #fichaApp .ficha-financeiro-card strong{font-size:19px;color:var(--text-main);}
  #fichaApp .ficha-financeiro-card[data-tone="ok"] strong{color:#0f9d68;}
  #fichaApp .ficha-financeiro-card[data-tone="warn"] strong{color:#b45309;}
  #fichaApp .ficha-financeiro-card[data-tone="danger"] strong{color:#be123c;}
  #fichaApp .ficha-timeline{position:relative;padding-left:20px;}
  #fichaApp .ficha-timeline::before{content:'';position:absolute;left:5px;top:6px;bottom:6px;width:2px;background:var(--panel-border);}
  #fichaApp .ficha-timeline-item{position:relative;padding:0 0 20px 18px;}
  #fichaApp .ficha-timeline-item::before{content:'';position:absolute;left:-15px;top:3px;width:10px;height:10px;border-radius:50%;background:var(--accent, #0f766e);border:2px solid var(--panel-solid, #fff);}
  #fichaApp .ficha-timeline-item .flt-data{font-size:11px;color:var(--text-muted);margin-bottom:2px;}
  #fichaApp .ficha-timeline-item .flt-titulo{font-size:13.5px;color:var(--text-main);font-weight:600;}
  #fichaApp .ficha-timeline-item .flt-detalhe{font-size:12.5px;color:var(--text-muted);margin-top:2px;}
  .ficha-upload-btn{cursor:pointer;}
  /* Listas de grupos/itens dentro do modal "Gerenciar perguntas de anamnese". */
  #anamConfigModal .anam-cfg-row{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;margin-bottom:6px;}
  #anamConfigModal .anam-cfg-row--click{cursor:pointer;}
  #anamConfigModal .anam-cfg-nome{color:var(--text-main);font-size:13px;}
  #anamConfigModal .anam-cfg-empty{padding:8px;color:var(--text-muted);font-size:13px;}
  #orcForm .orcamento-itens-header{display:flex;align-items:center;gap:10px;margin:14px 0 8px;}
  #orcForm .orcamento-item-row{display:grid;grid-template-columns:2fr 0.7fr 1fr 1.3fr 0.9fr auto;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid var(--panel-border);}
  #orcForm .orcamento-item-status{font-size:11px;padding:3px 8px;border-radius:999px;text-align:center;white-space:nowrap;}
  #orcForm .orcamento-item-status[data-status="pendente"]{background:rgba(180,83,9,.14);color:#b45309;}
  #orcForm .orcamento-item-status[data-status="aprovado"]{background:rgba(15,157,104,.14);color:#0f9d68;}
  #orcForm .orcamento-item-status[data-status="recusado"]{background:rgba(190,18,60,.12);color:#be123c;}
  #orcForm .orcamento-item-acoes{display:flex;gap:4px;}
  #orcForm .orcamento-item-acoes button{font-size:11px;padding:3px 6px;}
  #orcForm .orcamento-totais{display:flex;gap:24px;justify-content:flex-end;padding:8px 0;font-size:13px;color:var(--text-main);}
  #orcForm .orcamento-faturar-box{margin-top:10px;padding-top:10px;border-top:1px dashed var(--panel-border);}
  #orcForm .orcamento-item-hint{font-size:11px;color:var(--text-muted);}
  #orcForm .orcamento-item-remove{display:flex;align-items:center;gap:6px;}
  #orcForm .orcamento-remove-locked{visibility:hidden;}
  #orcForm .orcamento-itens-empty{padding:8px 0;color:var(--text-muted);font-size:13px;}
  #orcForm .orcamento-item-dente{display:flex;gap:4px;align-items:center;}
  /* Gerenciador de anamnese (duas colunas: grupos | itens) — layout de página. */
  .anam-config-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:16px;}
  .anam-col-head{display:flex;align-items:center;gap:8px;padding:0 0 8px;}
  .anam-col-head strong{color:var(--text-main);font-size:13px;}
  @media (max-width:576px){ .anam-config-grid{grid-template-columns:1fr;} }

/* ===================== RECEPCAO ===================== */
/* Migrado de pages/recepcao.html (Fase 9, item 3 da Fase 8 — <style> embutido). */
  #recepcaoApp .orion-header-title p{color:var(--text-muted);font-size:13px;margin:4px 0 0;}
  #recepcaoApp #recepcaoAtendendoBox{padding:20px;margin-bottom:20px;border-left:4px solid #0f9d68;}
  #recepcaoApp #recepcaoAtendendoBox .rec-atendendo-top{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;}
  #recepcaoApp #recepcaoAtendendoBox .rec-atendendo-label{font-size:11.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#0f9d68;margin-bottom:4px;}
  #recepcaoApp #recepcaoAtendendoBox h3{margin:0;font-size:18px;color:var(--text-main);}
  #recepcaoApp #recepcaoAtendendoBox p{margin:4px 0 0;font-size:12.5px;color:var(--text-muted);}
  #recepcaoApp #recepcaoAtendendoBox .rec-atendendo-acoes{display:flex;gap:10px;flex-wrap:wrap;}
  #recepcaoApp #recepcaoPendentesTitulo{font-size:14px;color:var(--text-main);margin:0 0 12px;}
  #recepcaoApp .rec-pendente-card{padding:14px 16px;margin-bottom:10px;}
  #recepcaoApp .rec-pendente-card .flr{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;}
  #recepcaoApp .rec-pendente-card .flr-title{font-size:14px;color:var(--text-main);font-weight:600;}
  #recepcaoApp .rec-pendente-card .flr-meta{font-size:12px;color:var(--text-muted);margin-top:3px;}
  #recepcaoApp .rec-vazio{padding:20px;color:var(--text-muted);text-align:center;}
  #recepcaoApp .rec-bloqueado{padding:16px;color:var(--text-muted);font-size:13px;}

/* ===================== REGISTRADORA ===================== */
/* Migrado de pages/registradora.html (Fase 9, item 3 da Fase 8 — <style> embutido). */
.registradora-status-card{padding:20px;color:var(--text-main);}
.registradora-status-loading{color:var(--text-muted);}
.registradora-status-head{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:16px;margin-bottom:16px;}
.registradora-status-badge{display:inline-flex;align-items:center;gap:8px;padding:4px 12px;border-radius:999px;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.6px;}
.registradora-status-badge.aberto{background:rgba(16,185,129,.14);color:#34d399;}
.registradora-status-badge.fechado{background:rgba(148,163,184,.14);color:#94a3b8;}
.registradora-status-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-bottom:18px;}
.registradora-tile{padding:14px;border-radius:8px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);}
.registradora-tile-label{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);margin-bottom:6px;}
.registradora-tile-value{font-size:20px;font-weight:800;}
.registradora-actions-row{display:flex;flex-wrap:wrap;gap:10px;}
.registradora-card-title{font-family:'Space Grotesk',sans-serif;font-size:var(--fs-lg);font-weight:700;margin-bottom:14px;}
.registradora-movimentos-card,.registradora-historico-card{margin-top:20px;padding:20px;}
.registradora-pendentes-lista{display:flex;flex-direction:column;gap:8px;max-height:360px;overflow:auto;}
.registradora-pendente-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border:1px solid rgba(255,255,255,.08);border-radius:8px;}
.registradora-pendente-info strong{display:block;}
.registradora-pendente-info small{color:var(--text-muted);}
.registradora-pendentes-empty{color:var(--text-muted);padding:20px 0;text-align:center;}
/* Movimentos e historico sao ledgers append-only (ver pages/registradora/_schema.php) -
   escondemos o botao "Novo" do OrionTable, que nao tem flag nativa de tabela somente leitura. */
#orionRegistradoraMovimentosTable [data-el="newItemBtn"],
#orionRegistradoraMovimentosTable [data-el="newItemBtnMobile"],
#orionRegistradoraHistoricoTable [data-el="newItemBtn"],
#orionRegistradoraHistoricoTable [data-el="newItemBtnMobile"]{display:none;}

/* ===================== TAREFAS ===================== */
/* A tela tem cabeçalho próprio (título + período + cards), então o header
   interno do OrionTable seria um segundo título repetido — a contagem que ele
   mostra já está nos 4 cards acima. */
.tarefas-page #orionTarefasTable .orion-header{display:none;}

.tarefas-filterbar{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end;}
.tarefas-filterbar .field-group{margin:0;}
.tarefas-filterbar .tarefas-filtro-data .orion-input{width:170px;}
.tarefas-filterbar .tarefas-filtro-usuario .orion-input,
.tarefas-filterbar .tarefas-filtro-status .orion-input{min-width:190px;}

.tarefas-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin:16px 0;}
.tarefas-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 16px;border-top:3px solid var(--orion-color-muted);cursor:pointer;text-align:center;font:inherit;color:inherit;}
.tarefas-card-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);font-weight:700;}
.tarefas-card strong{font-size:26px;font-weight:800;line-height:1;}
.tarefas-card.is-atrasadas{border-top-color:var(--rose);}
.tarefas-card.is-atrasadas strong{color:var(--rose);}
.tarefas-card.is-pendentes{border-top-color:var(--primary);}
.tarefas-card.is-pendentes strong{color:var(--primary);}
.tarefas-card.is-hoje{border-top-color:var(--cyan);}
.tarefas-card.is-hoje strong{color:var(--cyan);}
.tarefas-card.is-concluidas{border-top-color:var(--emerald);}
.tarefas-card.is-concluidas strong{color:var(--emerald);}
.tarefas-card.is-active{box-shadow:var(--orion-focus-ring);}

.tarefas-hint{display:block;margin-top:6px;font-size:var(--fs-xs);color:var(--text-muted);}
.tarefas-atribuicao{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--r-sm);background:rgba(255,255,255,.04);border:1px solid var(--panel-border);font-size:var(--fs-sm);color:var(--text-muted);}
.tarefas-atribuicao i{color:var(--primary);}
/* Relato de quem finalizou: mesmo bloco, mas alinhado ao topo (texto livre,
   quebra em varias linhas) e na cor de concluido. */
.tarefas-atribuicao.tarefas-conclusao{align-items:flex-start;color:var(--text-main);}
.tarefas-atribuicao.tarefas-conclusao i{color:var(--emerald);margin-top:3px;}
.tarefas-conclusao-alvo{margin:0 0 14px;font-weight:700;color:var(--text-main);}

/* ===================== CHAT INTERNO ===================== */
/* Layout de duas colunas (lista de conversas | painel da conversa) com altura
   fixa: o scroll tem que acontecer DENTRO da lista e DENTRO das mensagens, e
   nao na pagina — senao o campo de escrever sai da tela conforme a conversa
   cresce. */
.chat-page .chat-header-actions{display:flex;gap:var(--sp-2);flex-wrap:wrap;}
.chat-shell{
  display:grid;grid-template-columns:320px 1fr;
  height:calc(100vh - 230px);min-height:460px;
  padding:0;overflow:hidden;
}
.chat-lista{display:flex;flex-direction:column;min-width:0;border-right:1px solid var(--panel-border);}
.chat-lista-head{padding:12px;border-bottom:1px solid var(--panel-border);display:flex;flex-direction:column;gap:10px;}
.chat-busca{position:relative;}
.chat-busca i{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:12px;pointer-events:none;}
.chat-busca .orion-input{padding-left:32px;}
.chat-lista-tabs{display:flex;gap:6px;}
.chat-tab{
  flex:1;padding:6px 10px;border-radius:999px;border:1px solid var(--panel-border);
  background:transparent;color:var(--text-muted);font:inherit;font-size:var(--fs-xs);font-weight:700;
  cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;
}
.chat-tab.is-active{background:var(--primary);border-color:var(--primary);color:#fff;}
.chat-tab-count{background:rgba(0,0,0,.2);border-radius:999px;padding:0 6px;font-size:10px;}
.chat-lista-itens{flex:1;min-height:0;overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:4px;}

.chat-conversa{
  display:flex;align-items:center;gap:10px;width:100%;padding:10px;border-radius:var(--r-sm);
  border:1px solid transparent;background:transparent;font:inherit;color:inherit;cursor:pointer;text-align:left;
}
.chat-conversa:hover{background:rgba(255,255,255,.05);}
.chat-conversa.is-active{background:rgba(255,255,255,.07);border-color:var(--panel-border);}
.chat-conversa-texto{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.chat-conversa-topo{display:flex;align-items:baseline;justify-content:space-between;gap:8px;}
.chat-conversa-topo strong{font-size:var(--fs-sm);color:var(--text-main);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.chat-conversa-topo small{color:var(--text-muted);font-size:10.5px;white-space:nowrap;}
.chat-conversa-previa{color:var(--text-muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.chat-conversa.tem-nao-lidas .chat-conversa-topo strong,
.chat-conversa.tem-nao-lidas .chat-conversa-previa{color:var(--text-main);font-weight:700;}
.chat-badge{
  background:var(--primary);color:#fff;border-radius:999px;min-width:20px;height:20px;
  display:grid;place-items:center;padding:0 6px;font-size:10.5px;font-weight:800;
}

/* Avatar: foto quando existe, inicial sobre cor derivada do id quando nao.
   Ver chatAvatarHtml() em assets/js/pages/chat.js. */
.chat-avatar{
  width:38px;height:38px;min-width:38px;border-radius:50%;
  display:grid;place-items:center;overflow:hidden;
  color:#fff;font-weight:800;font-size:13px;letter-spacing:.5px;
}
.chat-avatar img{width:100%;height:100%;object-fit:cover;}
.chat-avatar--lg{width:44px;height:44px;min-width:44px;font-size:15px;}

.chat-painel{display:flex;flex-direction:column;min-width:0;}
.chat-painel-vazio{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
  padding:40px;text-align:center;color:var(--text-muted);
}
.chat-painel-vazio i{font-size:38px;opacity:.4;}
.chat-painel-vazio strong{color:var(--text-main);font-size:var(--fs-md);}
.chat-painel-vazio span{font-size:var(--fs-sm);max-width:340px;}
.chat-painel-conteudo{flex:1;display:flex;flex-direction:column;min-height:0;}

.chat-painel-head{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--panel-border);}
.chat-painel-titulo{flex:1;min-width:0;display:flex;flex-direction:column;}
.chat-painel-titulo strong{font-size:var(--fs-md);color:var(--text-main);}
.chat-painel-titulo span{font-size:var(--fs-xs);color:var(--text-muted);}
.chat-painel-acoes{display:flex;gap:8px;flex-wrap:wrap;}
.chat-voltar{display:none;}

.chat-arquivada-aviso{
  display:flex;align-items:center;gap:10px;padding:10px 16px;
  background:rgba(148,163,184,.12);color:var(--text-muted);font-size:var(--fs-sm);
  border-bottom:1px solid var(--panel-border);
}

.chat-mensagens{flex:1;min-height:0;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;}
.chat-dia{
  align-self:center;padding:3px 12px;border-radius:999px;
  background:rgba(255,255,255,.06);color:var(--text-muted);
  font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;
}
.chat-sistema{align-self:center;max-width:80%;text-align:center;color:var(--text-muted);font-size:var(--fs-xs);font-style:italic;}

.chat-msg{display:flex;gap:10px;max-width:76%;align-self:flex-start;}
.chat-msg.is-minha{align-self:flex-end;flex-direction:row-reverse;}
.chat-msg-balao{padding:8px 12px;border-radius:var(--r-md);background:rgba(255,255,255,.05);border:1px solid var(--panel-border);min-width:0;}
.chat-msg.is-minha .chat-msg-balao{
  background:color-mix(in srgb,var(--primary) 22%,transparent);
  border-color:color-mix(in srgb,var(--primary) 38%,transparent);
}
.chat-msg-head{display:flex;align-items:baseline;gap:8px;margin-bottom:2px;flex-wrap:nowrap;}
/* Nome longo (razao social inteira, que e o que muita conta usa) empurrava o
   cabecalho para tres linhas e espremia o balao. Corta com reticencias. */
.chat-msg-head strong{
  font-size:12px;color:var(--text-main);min-width:0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.chat-msg-head small{color:var(--text-muted);font-size:10.5px;flex-shrink:0;}
.chat-msg-corpo{font-size:var(--fs-sm);color:var(--text-main);line-height:1.45;white-space:pre-wrap;word-break:break-word;}
/* Sequencia do mesmo autor: esconde o avatar (mantendo o espaco) e o nome, pra
   conversa nao virar uma coluna de nomes repetidos. */
.chat-msg.is-sequencia .chat-msg-avatar{visibility:hidden;}
.chat-msg.is-sequencia .chat-msg-head strong{display:none;}

.chat-msg-acoes{margin-left:auto;display:flex;gap:2px;flex-shrink:0;opacity:0;transition:opacity .15s ease;}
.chat-msg:hover .chat-msg-acoes,
.chat-msg-acoes:focus-within{opacity:1;}
.chat-msg-acao{
  border:none;background:transparent;color:var(--text-muted);cursor:pointer;
  font:inherit;font-size:11px;padding:2px 5px;border-radius:var(--r-sm);
  display:inline-flex;align-items:center;gap:5px;
}
.chat-msg-acao:hover{color:var(--text-main);background:rgba(255,255,255,.08);}

/* Rodape do balao: marca de "editada" (esquerda) e recibo de leitura (direita).
   Fica vazio na maioria das mensagens, por isso `min-height` nenhuma — some. */
.chat-msg-rodape{display:flex;align-items:center;gap:6px;margin-top:2px;}
.chat-msg-editado{
  font-size:10px;color:var(--text-muted);font-style:italic;
}
.chat-msg-recibo{
  position:relative;margin-left:auto;font-size:10px;color:var(--text-muted);
  line-height:1;display:inline-flex;align-items:center;gap:3px;cursor:pointer;
  padding:2px 4px;border-radius:var(--r-sm);
}
.chat-msg-recibo b{font-weight:700;font-size:10px;}
.chat-msg-recibo:hover{background:rgba(255,255,255,.08);}
/* Lida por todo mundo: o tique de dois vira cor do sistema, igual todo app de
   mensagem — a diferenca entre "entregue" e "lida" tem que ser vista de relance. */
.chat-msg-recibo.is-lida{color:var(--primary);}

/* Lista de quem ja viu. Abre ao mirar (hover/foco) e, no toque, com o clique —
   `is-aberto` e o equivalente do hover pra quem nao tem ponteiro. */
.chat-recibo-menu{
  display:none;position:absolute;bottom:calc(100% + 6px);right:0;z-index:30;
  min-width:190px;max-width:260px;max-height:220px;overflow-y:auto;
  padding:8px;border-radius:var(--r-md);
  background:var(--panel-bg);border:1px solid var(--panel-border);
  box-shadow:0 12px 28px rgba(0,0,0,.35);
  text-align:left;font-style:normal;cursor:default;
}
.chat-msg-recibo:hover .chat-recibo-menu,
.chat-msg-recibo:focus-within .chat-recibo-menu,
.chat-msg-recibo.is-aberto .chat-recibo-menu{display:block;}
/* A lista de mensagens rola (overflow-y:auto), entao o dropdown e recortado pelo
   container. Perto do topo ele abre pra baixo — a classe vem do JS, que e quem
   sabe quanto espaco sobrou. */
.chat-msg-recibo.is-abaixo .chat-recibo-menu{bottom:auto;top:calc(100% + 6px);}
.chat-recibo-titulo{
  display:block;font-size:10.5px;color:var(--text-main);
  padding-bottom:5px;margin-bottom:5px;border-bottom:1px solid var(--panel-border);
}
.chat-recibo-item{
  display:flex;align-items:center;gap:6px;padding:2px 0;
  font-size:11px;color:var(--text-main);white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;
}
.chat-recibo-item i{color:var(--primary);font-size:9px;flex-shrink:0;}
.chat-recibo-item.is-pendente{color:var(--text-muted);}
.chat-recibo-item.is-pendente i{color:var(--text-muted);}
.chat-recibo-sep{
  display:block;margin:6px 0 3px;font-size:9.5px;color:var(--text-muted);
  text-transform:uppercase;letter-spacing:.5px;
}

/* Faixa de "ate aqui eu ja tinha lido". Marcador de posicao, nao um aviso
   permanente: some na proxima abertura, porque ate la ja foi lido. */
.chat-novas{
  display:flex;align-items:center;gap:10px;margin:4px 0;
  color:var(--primary);font-size:10.5px;font-weight:700;
  text-transform:uppercase;letter-spacing:.6px;
}
.chat-novas::before,
.chat-novas::after{content:"";flex:1;height:1px;background:color-mix(in srgb,var(--primary) 45%,transparent);}

/* Editor inline: ocupa o lugar do texto dentro do proprio balao, pra ficar
   evidente QUAL mensagem esta sendo reescrita. */
.chat-msg-editor{display:flex;flex-direction:column;gap:6px;margin-top:4px;}
.chat-msg-editor textarea{resize:vertical;min-height:52px;font-size:var(--fs-sm);line-height:1.4;}
.chat-msg-editor-acoes{display:flex;align-items:center;gap:6px;}
.chat-msg-editor-acoes small{color:var(--text-muted);font-size:10px;margin-right:auto;}
.chat-msg-editor-acoes .orion-btn{padding:3px 10px;font-size:11px;}

/* Lapide de mensagem ocultada para todos. NAO e uma mensagem apagada: a linha
   continua no banco (ver pages/chat/ocultar.php) e um administrador restaura. */
.chat-msg-oculta{
  align-self:center;max-width:80%;display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  padding:6px 12px;border-radius:var(--r-md);
  border:1px dashed var(--panel-border);color:var(--text-muted);font-size:var(--fs-xs);font-style:italic;
}
.chat-oculta-corpo{
  width:100%;font-style:normal;color:var(--text-muted);
  padding-top:4px;border-top:1px dashed var(--panel-border);white-space:pre-wrap;
}

.chat-form{display:grid;grid-template-columns:1fr auto;gap:10px;padding:12px 16px;border-top:1px solid var(--panel-border);}
.chat-input{resize:none;max-height:140px;overflow-y:auto;line-height:1.4;}
.chat-enviar{min-width:52px;justify-content:center;}

.chat-vazio{padding:24px 16px;text-align:center;color:var(--text-muted);font-size:var(--fs-sm);}
.chat-hint{display:block;margin-top:8px;font-size:var(--fs-xs);color:var(--text-muted);line-height:1.5;}

.chat-usuarios-lista{max-height:300px;overflow-y:auto;display:flex;flex-direction:column;gap:2px;margin-top:8px;}
.chat-usuario{
  display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border-radius:var(--r-sm);
  border:1px solid transparent;background:transparent;font:inherit;color:inherit;cursor:pointer;text-align:left;
}
.chat-usuario:hover{background:rgba(255,255,255,.05);}
.chat-usuario-texto{flex:1;min-width:0;display:flex;flex-direction:column;}
.chat-usuario-texto strong{font-size:var(--fs-sm);color:var(--text-main);}
.chat-usuario-texto small{font-size:11px;color:var(--text-muted);}
.chat-usuario-seta{color:var(--text-muted);font-size:11px;}
.chat-usuario-check{
  width:20px;height:20px;min-width:20px;border-radius:6px;border:1px solid var(--panel-border);
  display:grid;place-items:center;color:transparent;font-size:10px;
}
.chat-usuario-check.is-on{background:var(--primary);border-color:var(--primary);color:#fff;}

/* ---- Chat dentro do painel flutuante (aba "Chat" do Assistente Orion) ----
   Versao compacta: ler e responder. Grupo, moderacao e arquivamento continuam
   so na tela cheia — o botao "Abrir tela do chat" leva pra la. Reaproveita as
   classes .chat-* acima, encolhidas para caber nos 390px do painel. */
.ai-panel-pane[data-ai-pane="chat"]{grid-template-rows:1fr;}
.mini-chat-lista{display:grid;grid-template-rows:auto 1fr;min-height:0;}
.mini-chat-topo{
  display:flex;flex-wrap:wrap;gap:6px;
  padding:8px 10px;border-bottom:1px solid rgba(255,255,255,.08);
}
.mini-chat-acao{flex:1;min-width:0;justify-content:center;font-size:11px;padding:6px 10px;white-space:nowrap;}
.mini-chat-expandir{width:32px;height:32px;min-width:32px;flex:0 0 auto;}
.mini-chat-itens{min-height:0;overflow-y:auto;padding:6px;display:flex;flex-direction:column;gap:2px;}
.mini-chat-itens .chat-conversa{padding:8px;gap:8px;}
.mini-chat-itens .chat-avatar{width:32px;height:32px;min-width:32px;font-size:11px;}
.mini-chat-itens .chat-conversa-topo strong{font-size:12px;}
.mini-chat-itens .chat-conversa-previa{font-size:11px;}

/* Escolha de com quem falar: mesma "terceira tela" que a conversa ocupa, com
   busca em cima. Reaproveita .chat-usuario da tela cheia. */
.mini-chat-novo{display:grid;grid-template-rows:auto auto 1fr;min-height:0;}
/* O grupo tem uma linha a mais que a nova conversa: o rodape com o "Criar". */
.mini-chat-grupo{grid-template-rows:auto auto 1fr auto;}
.mini-chat-busca{padding:8px 10px 0;display:flex;flex-direction:column;gap:6px;}
.mini-chat-busca .orion-input{height:32px;font-size:12px;}
.mini-chat-rodape{padding:8px 10px;border-top:1px solid rgba(255,255,255,.08);display:flex;}
.mini-chat-novo .chat-usuario{padding:7px 8px;gap:8px;}
.mini-chat-novo .chat-avatar{width:30px;height:30px;min-width:30px;font-size:10.5px;}
.mini-chat-novo .chat-usuario-texto strong{font-size:12px;}
.mini-chat-novo .chat-usuario-texto small{font-size:10.5px;}

.mini-chat-conversa{display:grid;grid-template-rows:auto 1fr auto;min-height:0;}
.mini-chat-head{
  display:flex;align-items:center;gap:8px;padding:6px 10px;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.mini-chat-head .chat-avatar{width:28px;height:28px;min-width:28px;font-size:10px;}
.mini-chat-head .orion-icon-btn{width:28px;height:28px;min-width:28px;}
.mini-chat-titulo{min-width:0;display:flex;flex-direction:column;}
.mini-chat-titulo strong{font-size:12px;color:var(--text-main);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mini-chat-titulo span{font-size:10px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mini-chat-mensagens{padding:10px;gap:8px;}
.mini-chat-mensagens .chat-msg{max-width:92%;gap:7px;}
.mini-chat-mensagens .chat-avatar{width:26px;height:26px;min-width:26px;font-size:9.5px;}
.mini-chat-mensagens .chat-msg-balao{padding:6px 9px;}
.mini-chat-mensagens .chat-msg-head strong{font-size:11px;}
.mini-chat-mensagens .chat-msg-corpo{font-size:12px;}
/* Ocultar mensagem tambem vale aqui. Como no painel nao ha hover confiavel
   (celular), as acoes ficam sempre visiveis, so mais discretas. */
.mini-chat-mensagens .chat-msg-acoes{opacity:.55;}
.mini-chat-mensagens .chat-msg-acao{font-size:10px;padding:1px 4px;}
/* O painel tem 390px: o dropdown de quem viu ancora pela direita e nao pode
   estourar essa largura. */
.mini-chat-mensagens .chat-recibo-menu{min-width:160px;max-width:220px;max-height:180px;}
.mini-chat-mensagens .chat-msg-oculta{font-size:10.5px;padding:5px 10px;}
.mini-chat-arquivada{
  display:flex;align-items:center;gap:8px;padding:8px 10px;
  background:rgba(148,163,184,.12);color:var(--text-muted);font-size:11px;
  border-top:1px solid rgba(255,255,255,.08);
}

/* Uma coluna so: a lista e a "primeira tela" e o painel entra por cima quando
   uma conversa e escolhida (classe is-conversa-aberta, posta pelo chat.js). */
@media (max-width:900px){
  .chat-shell{grid-template-columns:1fr;height:calc(100vh - 200px);}
  .chat-lista{border-right:none;}
  .chat-page .chat-painel{display:none;}
  .chat-page.is-conversa-aberta .chat-lista{display:none;}
  .chat-page.is-conversa-aberta .chat-painel{display:flex;}
  .chat-voltar{display:inline-flex;}
  .chat-msg{max-width:92%;}
  .chat-painel-acoes .orion-btn{padding:6px 10px;font-size:11px;}
}
