
/* =================================================================
   PAINEL ADMINISTRAÇÃO — melhorias do design (AO VIVO, sidebar cards,
   toolbar, polish). Escopado a #view-admin.
   ================================================================= */
@keyframes admLivePulse { 0%,100% { opacity: 1; } 50% { opacity: .35; } }
@keyframes admLiveRing  { 0% { transform: scale(1); opacity: .6; } 100% { transform: scale(2.6); opacity: 0; } }

/* ---- Faixa AO VIVO ---- */
#view-admin .adm-live-strip {
  display: flex; align-items: stretch; gap: 12px; margin: 14px 0 4px; flex-wrap: wrap;
}
#view-admin .adm-live-clock {
  display: flex; align-items: center; gap: 12px;
  background: #fff; border: 1px solid #eaefe2; border-radius: 16px; padding: 12px 18px;
  box-shadow: 0 8px 22px rgba(57,70,36,.06);
}
#view-admin .adm-live-dot { position: relative; width: 11px; height: 11px; flex-shrink: 0; }
#view-admin .adm-live-dot span { position: absolute; inset: 0; border-radius: 50%; background: #e0445a; }
#view-admin .adm-live-dot span:first-child { animation: admLiveRing 1.6s ease-out infinite; }
#view-admin .adm-live-dot span:last-child { animation: admLivePulse 1.6s ease-in-out infinite; }
#view-admin .adm-live-kicker { font-size: 9.5px; letter-spacing: 1px; font-weight: 700; color: #8d9977; }
#view-admin .adm-live-time { font-size: 15px; font-weight: 800; color: #212717; font-variant-numeric: tabular-nums; }
#view-admin .adm-live-metrics { flex: 1; min-width: 280px; display: grid; grid-template-columns: repeat(4,1fr); gap: 10px; }
#view-admin .adm-live-card {
  display: flex; align-items: center; gap: 11px;
  background: #fff; border: 1px solid #eaefe2; border-radius: 16px; padding: 11px 14px;
  box-shadow: 0 8px 22px rgba(57,70,36,.06);
}
#view-admin .adm-live-ico { width: 34px; height: 34px; flex-shrink: 0; border-radius: 11px; display: flex; align-items: center; justify-content: center; }
#view-admin .adm-live-num { font-size: 19px; font-weight: 800; color: #24281d; line-height: 1; font-variant-numeric: tabular-nums; }
#view-admin .adm-live-lbl { font-size: 10px; color: #7e8474; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ---- Sidebar: 3 grupos como cards separados ---- */
#view-admin .adm-nav-groups {
  background: transparent !important; border: none !important; padding: 0 !important;
  display: flex !important; flex-direction: column; gap: 12px;
}
#view-admin .adm-nav-groups .adm-tab {
  display: flex; align-items: center; gap: 10px; width: 100%; text-align: left; justify-content: flex-start;
  padding: 10px 11px; border-radius: 12px; margin: 1px 0; white-space: normal;
  font-size: 13px; font-weight: 600; color: #3d4234; background: transparent; border: none;
  transition: background .15s, color .15s;
}
#view-admin .adm-nav-groups .adm-tab svg { color: #8d9977; }
#view-admin .adm-nav-groups .adm-tab:hover { background: #f0f4e9; color: #212717; }
#view-admin .adm-nav-groups .adm-tab.active { background: #394820; color: #fff; }
#view-admin .adm-nav-groups .adm-tab.active svg { color: #fff; }
#view-admin .adm-side { flex: 0 0 250px; max-width: 250px; }

/* ---- Toolbar (título/subtítulo da aba) ---- */
#view-admin .adm-toolbar { margin-bottom: 16px; }
#view-admin .adm-toolbar-title { font-size: 19px; font-weight: 800; color: #212717; }
#view-admin .adm-toolbar-sub { font-size: 12.5px; color: #7e8474; margin-top: 1px; }

/* ---- Polish geral: tabelas e cards ---- */
#view-admin .adm-content .card,
#view-admin .adm-content table {
  border-radius: 16px;
}
#view-admin .adm-content table {
  border-collapse: separate; border-spacing: 0; width: 100%;
  background: #fff; border: 1px solid #eaefe2; overflow: hidden;
  box-shadow: 0 8px 22px rgba(57,70,36,.06);
}
#view-admin .adm-content table thead th {
  background: #f0f4e9; color: #737b64; font-size: 10.5px; letter-spacing: .5px;
  font-weight: 700; text-transform: uppercase; text-align: left; padding: 13px 16px; border: none;
}
#view-admin .adm-content table tbody td { padding: 12px 16px; border-top: 1px solid #f1f4eb; font-size: 12.5px; color: #2d3225; }
#view-admin .adm-content table tbody tr:hover { background: #f7f9f4; }

@media (max-width: 900px) {
  #view-admin .adm-live-metrics { grid-template-columns: repeat(2,1fr); }
}

/* =================================================================
   RAIL FIXO PERSISTENTE — menu da Regulação ao abrir painéis (design)
   ================================================================= */
#reg-rail-fixed.reg-rail-fixed {
  position: fixed; left: 22px; top: 18px; height: calc(100vh - 36px); height: calc(100dvh - 36px);
  z-index: 45; align-self: auto;
}
/* Reserva a coluna do rail fixo pra todo o conteúdo abrir ao lado dele */
body.reg-shell-on { padding-left: 112px; }
/* Kanban/painel dentro da casca do rail: preenche a coluna como o Master (sem overflow) */
body.reg-shell-on #view-regulacao .reg-shell,
body.reg-shell-on #view-regulacao .reg-task-shell {
  width: auto !important;
  max-width: none !important;
  margin: 18px 22px 40px 0 !important;
}
@media (max-width: 640px) {
  #reg-rail-fixed.reg-rail-fixed { left: 10px; width: 62px; }
  body.reg-shell-on { padding-left: 80px; }
}

/* =================================================================
   ADMIN · Aba USUÁRIOS — idêntico ao design
   ================================================================= */
#view-admin .admu-table td { vertical-align: middle; }
#view-admin .admu-login { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12.5px; font-weight: 600; color: #394820; white-space: nowrap; }
#view-admin .admu-name-wrap { display: flex; align-items: center; gap: 10px; min-width: 0; }
#view-admin .admu-avatar { width: 34px; height: 34px; flex-shrink: 0; border-radius: 10px; background: linear-gradient(135deg,#415026,#526533); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 10px; font-weight: 700; }
#view-admin .admu-name { font-size: 12.5px; font-weight: 600; color: #212717; }
#view-admin .admu-sub { font-size: 11px; color: #8d9977; }
#view-admin .admu-role { display: inline-block; font-size: 11px; font-weight: 600; color: #405023; background: #ecf0e5; padding: 4px 10px; border-radius: 10px; white-space: nowrap; }
#view-admin .admu-status { display: inline-block; font-size: 10.5px; font-weight: 700; padding: 4px 10px; border-radius: 10px; white-space: nowrap; }
#view-admin .admu-status.on { background: #e9f6ee; color: #1f8a5b; }
#view-admin .admu-status.off { background: #fdecec; color: #d23b47; }
#view-admin .admu-depts { font-size: 11.5px; color: #4d5243; }
#view-admin .admu-manage { font-size: 11.5px; font-weight: 600; color: #394820; background: #f0f4e9; border: 1px solid #e2e8d7; padding: 7px 13px; border-radius: 11px; cursor: pointer; transition: background .15s; }
#view-admin .admu-manage:hover { background: #e1ead2; }

/* Toolbar (busca + adicionar) */
#view-admin .users-toolbar { display: flex !important; align-items: flex-end; gap: 11px; background: transparent !important; border: none !important; box-shadow: none !important; padding: 0 !important; }
#view-admin .users-toolbar .users-toolbar-search { flex: 1; min-width: 220px; display: flex; flex-direction: column; gap: 4px; background: #fff; border: 1px solid #e0e7d4; border-radius: 14px; padding: 9px 15px; box-shadow: 0 6px 16px rgba(57,70,36,.05); }
#view-admin .users-toolbar-search label { font-size: 10px; letter-spacing: .5px; color: #8d9977; font-weight: 700; }
#view-admin .users-toolbar-search input { border: none; outline: none; background: transparent; font-family: inherit; font-size: 13px; color: #2d3225; padding: 0; }
#view-admin .users-toolbar-toggle { background: #394820; border: none; color: #fff; font-family: inherit; font-weight: 600; font-size: 13px; padding: 12px 18px; border-radius: 13px; box-shadow: 0 8px 18px rgba(57,72,32,.26); cursor: pointer; white-space: nowrap; }
#view-admin .users-toolbar-toggle:hover { background: #2f3c19; }

/* Form adicionar usuário */
#view-admin #add-user-form-card { background: #f9faf6; border: 1px solid #d3dcc2; border-radius: 20px; box-shadow: 0 8px 22px rgba(57,70,36,.06); }
#view-admin #add-user-form-card h4 { color: #212717; font-weight: 700; }
#view-admin #add-user-form-card input, #view-admin #add-user-form-card select { border: 1px solid #d7decb; border-radius: 12px; background: #fff; }

/* =================================================================
   ADMIN · Aba DEPARTAMENTOS
   ================================================================= */
#view-admin .dept-create-card { background: #f9faf6; border: 1px solid #d3dcc2; border-radius: 18px; padding: 18px 20px; box-shadow: 0 8px 22px rgba(57,70,36,.06); margin-bottom: 14px; }
#view-admin .dept-create-title { font-size: 14px; font-weight: 700; color: #212717; margin-bottom: 12px; }
#view-admin .dept-create-row { display: flex; gap: 11px; flex-wrap: wrap; align-items: center; }
#view-admin .dept-create-row input { background: #fff; border: 1px solid #e0e7d4; border-radius: 13px; padding: 11px 14px; font-size: 12.5px; font-family: inherit; color: #2d3225; margin: 0; }
#view-admin .dept-create-sigla { width: 130px; }
#view-admin .dept-create-nome { min-width: 200px; }
#view-admin .dept-create-btn { display: inline-flex; align-items: center; gap: 7px; background: #394820; border: none; color: #fff; font-family: inherit; font-weight: 600; font-size: 13px; padding: 11px 18px; border-radius: 13px; cursor: pointer; box-shadow: 0 8px 18px rgba(57,72,32,.26); }
#view-admin .dept-create-btn:hover { background: #2f3c19; }
#view-admin .admd-id { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12.5px; font-weight: 700; color: #8d9977; }
#view-admin .admd-name { font-size: 12.5px; font-weight: 600; color: #212717; }
#view-admin .admd-actions { display: flex; gap: 7px; }
#view-admin .admd-edit { font-size: 11.5px; font-weight: 600; color: #394820; background: #f0f4e9; border: 1px solid #e2e8d7; padding: 6px 12px; border-radius: 10px; cursor: pointer; }
#view-admin .admd-edit:hover { background: #e1ead2; }
#view-admin .admd-del { font-size: 11.5px; font-weight: 600; color: #d6334a; background: #fdeef0; border: 1px solid #f7d3d8; padding: 6px 12px; border-radius: 10px; cursor: pointer; }
#view-admin .admd-del:hover { filter: brightness(.97); }

/* =================================================================
   ADMIN · Aba UNIDADE — 3 cards do design
   ================================================================= */
#view-admin .adm-unit-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; }
#view-admin .adm-unit-card { display: flex; flex-direction: column; align-items: flex-start; text-align: left; border: 1px solid #eaefe2; background: #fff; border-radius: 20px; padding: 22px; box-shadow: 0 8px 22px rgba(57,70,36,.06); cursor: pointer; transition: transform .16s, box-shadow .16s; font-family: inherit; width: 100%; }
#view-admin .adm-unit-card:hover { transform: translateY(-3px); box-shadow: 0 18px 36px rgba(57,70,36,.13); }
#view-admin .adm-unit-card svg { box-sizing: border-box; width: 48px; height: 48px; padding: 12px; border-radius: 15px; color: #fff; background: linear-gradient(135deg,#415026,#526533); margin-bottom: 15px; flex-shrink: 0; }
#view-admin .adm-unit-card:nth-child(2) svg { background: linear-gradient(135deg,#b56a2a,#d9a526); }
#view-admin .adm-unit-card:nth-child(3) svg { background: linear-gradient(135deg,#1f9d57,#2fb56a); }
#view-admin .adm-unit-card span { display: block; }
#view-admin .adm-unit-card strong { display: block; font-size: 16px; font-weight: 700; color: #212717; }
#view-admin .adm-unit-card small { display: block; font-size: 12.5px; color: #7e8474; line-height: 1.5; margin-top: 6px; }
#view-admin .adm-unit-card::after { content: 'Abrir \2192'; font-size: 12px; font-weight: 600; color: #394820; margin-top: 14px; }

/* =================================================================
   ADMIN · Abas SENHAS ATIVAS e HISTÓRICO — grids de cards
   ================================================================= */
#view-admin #adm-tab-active > h4, #view-admin #adm-tab-active > p,
#view-admin #adm-tab-history > h4 { display: none; }
#view-admin #admin-active-list, #view-admin #admin-history-list {
  display: grid !important; grid-template-columns: repeat(3,1fr); gap: 13px;
  max-height: none !important; overflow: visible !important;
}
#view-admin .adms-card, #view-admin .admh-card {
  border: 1px solid #eaefe2; background: #fff; border-radius: 18px; padding: 18px;
  box-shadow: 0 8px 22px rgba(57,70,36,.06);
}
#view-admin .adms-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
#view-admin .adms-code { font-size: 19px; font-weight: 800; color: #212717; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
#view-admin .admh-code { font-size: 17px; font-weight: 800; color: #212717; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
#view-admin .adms-tag { font-size: 10.5px; font-weight: 700; padding: 4px 10px; border-radius: 10px; white-space: nowrap; }
#view-admin .adms-tag.wait { background: #ecf0e5; color: #405023; }
#view-admin .adms-tag.prog { background: #fdf5e6; color: #b07d16; }
#view-admin .adms-tag.closed { background: #eef1f5; color: #7e8474; }
#view-admin .adms-patient { font-size: 13.5px; font-weight: 600; color: #212717; margin-top: 12px; }
#view-admin .adms-sub { font-size: 11.5px; color: #7e8474; margin-top: 3px; }
#view-admin .adms-meta { font-size: 11px; color: #8d9977; margin-top: 8px; }
#view-admin .adms-call { width: 100%; margin-top: 14px; display: flex; align-items: center; justify-content: center; gap: 7px; background: #394820; border: none; color: #fff; font-family: inherit; font-weight: 600; font-size: 13px; padding: 10px; border-radius: 12px; cursor: pointer; box-shadow: 0 8px 18px rgba(57,72,32,.26); }
#view-admin .adms-call:hover { background: #2f3c19; }
#view-admin .admh-patient { font-size: 13px; font-weight: 600; color: #212717; margin-top: 11px; }
#view-admin .admh-dept { font-size: 11.5px; color: #7e8474; }
#view-admin .admh-meta { display: flex; gap: 14px; margin-top: 11px; font-size: 11px; color: #8d9977; flex-wrap: wrap; }
#view-admin .admh-resgatar { width: 100%; margin-top: 13px; background: #f0f4e9; border: 1px solid #d3dcc2; color: #394820; font-family: inherit; font-weight: 600; font-size: 12.5px; padding: 9px; border-radius: 11px; cursor: pointer; }
#view-admin #adm-tab-history > .flex { display: flex; gap: 11px; flex-wrap: wrap; align-items: center; background: #f9faf6; border: 1px solid #d3dcc2; border-radius: 16px; padding: 14px 16px; }
#view-admin #adm-tab-history > .flex input { background: #fff; border: 1px solid #e0e7d4; border-radius: 12px; padding: 10px 13px; font-size: 12.5px; margin: 0; width: auto; }
#view-admin #adm-tab-history > .flex button { background: #394820; border: none; color: #fff; font-family: inherit; font-weight: 600; font-size: 13px; padding: 10px 18px; border-radius: 12px; cursor: pointer; }
@media (max-width: 1240px) { #view-admin #admin-active-list, #view-admin #admin-history-list { grid-template-columns: repeat(2,1fr); } }

/* =================================================================
   ADMIN · Aba CONSULTA PACIENTE — busca no padrão do design
   ================================================================= */
#view-admin .adm-patient-head { display: none !important; }
#view-admin .adm-patient-search {
  display: flex; align-items: center; gap: 11px;
  background: #f9faf6; border: 1px solid #d3dcc2; border-radius: 16px; padding: 14px 16px;
}
#view-admin .adm-patient-search > i, #view-admin .adm-patient-search > svg { color: #8d9977; flex-shrink: 0; }
#view-admin .adm-patient-search input {
  flex: 1; background: #fff; border: 1px solid #e0e7d4; border-radius: 12px;
  padding: 11px 14px; font-size: 12.5px; font-family: inherit; color: #2d3225; margin: 0;
}
#view-admin .adm-patient-search .btn {
  background: #394820; border: none; color: #fff; font-weight: 600; font-size: 13px;
  padding: 11px 20px; border-radius: 12px; box-shadow: 0 8px 18px rgba(57,72,32,.26);
}
#view-admin .adm-patient-search .btn:hover { background: #2f3c19; }
#view-admin #patient-lookup-result { margin-top: 14px; }

/* =================================================================
   ADMIN · Finalização — Dashboard / Relatório / Ouvidoria / Checklist
   ================================================================= */
/* Títulos duplicados (a toolbar já dá o título da aba) */
#view-admin #adm-tab-reports > h4,
#view-admin #adm-tab-complaints > h4,
#view-admin #adm-tab-checklist > div:first-child > h4,
#view-admin #adm-tab-dashboard .dash-title,
#view-admin #adm-tab-dashboard .dash-sub { display: none; }

/* Cards no padrão do design */
#view-admin .adm-content .card,
#view-admin #checklist-list .card,
#view-admin #admin-complaints-list .card {
  border: 1px solid #eaefe2 !important;
  border-radius: 18px !important;
  box-shadow: 0 8px 22px rgba(57,70,36,.06) !important;
}

/* Barras de filtro (Relatório / Ouvidoria) no padrão do design */
#view-admin #adm-tab-reports > .flex,
#view-admin #adm-tab-complaints > .flex {
  background: #f9faf6; border: 1px solid #d3dcc2; border-radius: 16px;
  padding: 14px 16px; gap: 11px; align-items: center;
}
#view-admin #adm-tab-reports > .flex input,
#view-admin #adm-tab-reports > .flex select,
#view-admin #adm-tab-complaints > .flex input,
#view-admin #adm-tab-complaints > .flex select {
  background: #fff; border: 1px solid #e0e7d4; border-radius: 12px; padding: 9px 12px; margin: 0;
}

/* Botões primários/accent das abas restantes → roxo do design */
#view-admin #adm-tab-reports .btn-primary,
#view-admin #adm-tab-reports .btn-accent,
#view-admin #adm-tab-complaints .btn-primary,
#view-admin #adm-tab-checklist .btn-primary,
#view-admin #adm-tab-dashboard .btn-primary {
  background: #394820; border: none; color: #fff; border-radius: 12px; box-shadow: 0 8px 18px rgba(57,72,32,.22);
}

/* Relatório: tabela já é coberta pelo estilo genérico de tabela do admin */
#view-admin #adm-tab-reports #report-table { min-width: 900px; }

/* Senhas Ativas — chip de TIPO da fila (design) */
#view-admin .adms-tipo { display:inline-flex; align-items:center; gap:6px; font-size:11px; font-weight:700; padding:4px 12px; border-radius:20px; white-space:nowrap; }
#view-admin .adms-tipo.normal { background:#eaf1fb; color:#3a6fd0; }
#view-admin .adms-tipo.pref { background:#fdecef; color:#d6334a; }
#view-admin .adms-tipo.appt { background:#ecf0e5; color:#405023; }

/* Histórico — chips Finalizada / Cancelada (design) */
#view-admin .adms-tag.done { background:#e9f6ee; color:#1f8a5b; }
#view-admin .adms-tag.canceled { background:#fdecef; color:#d6334a; }

/* =================================================================
   ADMIN · Consulta Paciente — resultado em 2 colunas (design)
   ================================================================= */
#view-admin .pv2-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 14px; align-items: start; margin-top: 14px; }
#view-admin .pv2-left, #view-admin .pv2-right { background: #fff; border: 1px solid #eaefe2; border-radius: 20px; padding: 20px; box-shadow: 0 8px 22px rgba(57,70,36,.06); }
#view-admin .pv2-head { display: flex; align-items: center; gap: 14px; }
#view-admin .pv2-avatar { width: 52px; height: 52px; flex-shrink: 0; border-radius: 15px; background: linear-gradient(135deg,#415026,#526533); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 16px; font-weight: 800; }
#view-admin .pv2-name { font-size: 18px; font-weight: 800; color: #212717; }
#view-admin .pv2-sub { font-size: 12px; color: #7e8474; margin-top: 3px; }
#view-admin .pv2-unreg { color: #d6334a; font-weight: 600; }
#view-admin .pv2-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 16px; }
#view-admin .pv2-stat { background: #f7f9f4; border: 1px solid #eaefe2; border-radius: 16px; padding: 16px; text-align: center; }
#view-admin .pv2-stat-v { font-size: 26px; font-weight: 800; line-height: 1; }
#view-admin .pv2-stat-v.purple { color: #394820; }
#view-admin .pv2-stat-v.green { color: #1f9d57; }
#view-admin .pv2-stat-l { font-size: 11px; color: #7e8474; margin-top: 6px; font-weight: 500; }
#view-admin .pv2-sectitle { font-size: 10.5px; letter-spacing: 1.5px; font-weight: 700; color: #8d9977; margin: 18px 0 10px; }
#view-admin .pv2-righttitle { font-size: 15px; color: #212717; font-weight: 700; margin-bottom: 12px; }
#view-admin .pv2-decl { width: 100%; margin-top: 16px; display: flex; align-items: center; justify-content: center; gap: 8px; background: #394820; border: none; color: #fff; font-family: inherit; font-weight: 600; font-size: 13px; padding: 12px; border-radius: 13px; cursor: pointer; box-shadow: 0 8px 18px rgba(57,72,32,.26); }
#view-admin .pv2-decl:hover { background: #2f3c19; }
#view-admin .pv2-grid .pticket { border: 1px solid #eaefe2; border-radius: 14px; padding: 13px 15px; background: #fff; box-shadow: none; margin-bottom: 10px; }
#view-admin .pv2-grid .pappt { border: 1px solid #eaefe2; border-radius: 14px; padding: 13px 15px; margin-bottom: 10px; }
@media (max-width: 1100px) { #view-admin .pv2-grid { grid-template-columns: 1fr; } }

/* Rail fixo legado (#reg-rail-fixed) consome o MESMO buildRegRail, que agora emite
   famílias. Até a Regulação migrar, a família aparece só como filete colorido. */
#reg-rail-fixed .reg-rail-group + .reg-rail-group{ margin-top:6px; }
#reg-rail-fixed .reg-rail-fam{ display:flex; align-items:center; justify-content:center; height:20px; overflow:hidden; }
#reg-rail-fixed .reg-rail-fam-dot{ flex:none; width:20px; height:3px; border-radius:3px; opacity:.9; }
#reg-rail-fixed .reg-rail-fam-txt{ display:none; }
