/* ============================================================================
   OXTON LAB — CAMADA PREMIUM (SaaS institucional).
   Refina o design system global (admin.css + sono.css) sem remover nada.
   Carregada por último.
   ============================================================================ */
.adm-body{ --line:rgba(15,23,42,.07); --line2:rgba(15,23,42,.11);
  --shadow:0 1px 2px rgba(15,23,42,.04),0 1px 3px rgba(15,23,42,.06);
  --shadow-lg:0 6px 24px rgba(15,23,42,.08); }

/* conteúdo: sem rolagem horizontal */
.adm-content{max-width:1500px;overflow-x:hidden}
.adm-content > *{min-width:0}

/* cards */
.adm-body .card{border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);transition:box-shadow .18s,border-color .18s}
.adm-body .card:hover{box-shadow:var(--shadow-lg)}
.adm-body .card__head{margin-bottom:1.1rem}
.adm-body .card__head h2{font-size:1.02rem;letter-spacing:-.01em}
.adm-body .card__head h3{font-size:.95rem}

/* KPIs */
.adm-body .kpi{border-radius:16px;box-shadow:var(--shadow);transition:box-shadow .18s,transform .18s}
.adm-body .kpi:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}
.adm-body .kpi__value{letter-spacing:-.02em}
.adm-body .adm-kpis{gap:18px}

/* botões */
.adm-body .adm-btn{border-radius:11px;font-weight:600;letter-spacing:.01em;box-shadow:none;transition:background .15s,border-color .15s,color .15s}
/* botões-link sólidos: garante texto branco (sobrepõe a cor de link herdada) */
.adm-body a.adm-btn,.adm-body a.adm-btn:hover,.adm-body a.adm-btn:visited{color:#fff}
.adm-body a.adm-btn--ghost,.adm-body a.adm-btn--line{color:var(--txt)}
.adm-body a.adm-btn--ghost:hover,.adm-body a.adm-btn--line:hover{color:var(--txt)}
.adm-body .adm-btn:focus-visible{outline:2px solid color-mix(in srgb,var(--blue) 55%,transparent);outline-offset:2px}
.adm-body .adm-btn--lg{padding:.7rem 1.3rem;font-size:.95rem;border-radius:12px}
.adm-body .adm-btn--block{width:100%;justify-content:center}

/* badges */
.adm-body .adm-pill{border-radius:999px;font-weight:600;font-size:.7rem;padding:.18rem .6rem;letter-spacing:.01em;display:inline-flex;align-items:center;gap:.3rem}

/* tabelas */
.adm-body .adm-tablewrap{overflow-x:auto;border-radius:12px}
.adm-body .adm-table{font-size:.85rem}
.adm-body .adm-table th{font-size:.68rem;letter-spacing:.06em;color:var(--txt3)}
.adm-body .adm-table tbody tr{transition:background .12s}
.adm-body .adm-table tbody tr:nth-child(even){background:color-mix(in srgb,var(--card2) 60%,transparent)}
.adm-body .adm-table tbody tr:hover{background:color-mix(in srgb,var(--blue) 5%,transparent)}

/* tabs premium */
.adm-body .adm-tabs{border-radius:999px;box-shadow:var(--shadow);max-width:100%;overflow-x:auto}
.adm-body .adm-tabs::-webkit-scrollbar{display:none}
.adm-body .adm-tab{white-space:nowrap}
.adm-body .adm-tab.is-active{box-shadow:0 1px 4px rgba(30,94,255,.35)}

/* breadcrumbs */
.crumbs{display:flex;align-items:center;gap:.4rem;font-size:.78rem;color:var(--txt3);margin-bottom:.4rem;flex-wrap:wrap}
.crumbs a{color:var(--txt2)}
.crumbs a:hover{color:var(--blue)}
.crumbs__sep{opacity:.5}

/* estado vazio */
.empty{text-align:center;padding:2.6rem 1.5rem;color:var(--txt2)}
.empty__ico{width:60px;height:60px;border-radius:16px;display:inline-flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--blue) 10%,#fff);color:var(--blue);margin-bottom:1rem}
.empty__ico svg{width:28px;height:28px}
.empty h3{margin:0 0 .35rem;font-size:1.05rem}
.empty p{margin:0 auto 1.1rem;max-width:44ch;font-size:.9rem}

/* loaders */
.loader{display:inline-block;width:20px;height:20px;border:2.5px solid color-mix(in srgb,var(--blue) 25%,transparent);border-top-color:var(--blue);border-radius:50%;animation:ox-spin .7s linear infinite}
.loader--lg{width:40px;height:40px;border-width:3.5px}
@keyframes ox-spin{to{transform:rotate(360deg)}}
.skeleton{background:linear-gradient(90deg,#eef2f7 25%,#f6f9fc 37%,#eef2f7 63%);background-size:400% 100%;animation:ox-shimmer 1.3s ease infinite;border-radius:8px}
@keyframes ox-shimmer{0%{background-position:100% 0}100%{background-position:-100% 0}}

/* alertas */
.ox-alert{display:flex;gap:.8rem;align-items:flex-start;padding:.85rem 1rem;border-radius:12px;border:1px solid var(--line);background:var(--card2);font-size:.88rem;margin-bottom:1rem}
.ox-alert__ico{flex:0 0 auto;width:22px;height:22px}
.ox-alert--info{background:color-mix(in srgb,var(--blue) 8%,#fff);border-color:color-mix(in srgb,var(--blue) 22%,transparent);color:#13357a}
.ox-alert--ok{background:color-mix(in srgb,var(--green) 10%,#fff);border-color:color-mix(in srgb,var(--green) 25%,transparent);color:#0a6b4a}
.ox-alert--warn{background:color-mix(in srgb,var(--orange) 12%,#fff);border-color:color-mix(in srgb,var(--orange) 28%,transparent);color:#8a5a00}
.ox-alert--danger{background:color-mix(in srgb,var(--red) 10%,#fff);border-color:color-mix(in srgb,var(--red) 26%,transparent);color:#a01a13}

/* filtros */
.filterbar{display:flex;gap:.6rem;flex-wrap:wrap;align-items:flex-end;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:.9rem 1rem;box-shadow:var(--shadow);margin-bottom:1.2rem}
.filterbar .adm-field{margin:0;min-width:160px}
.filterbar .adm-field label{font-size:.72rem}

/* modal */
.ox-modal{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:1.2rem;background:rgba(10,17,36,.55);backdrop-filter:blur(3px)}
.ox-modal[hidden]{display:none}
.ox-modal__box{background:var(--card);border-radius:18px;max-width:560px;width:100%;box-shadow:0 24px 60px rgba(10,17,36,.35);padding:1.5rem;max-height:88vh;overflow:auto}
.ox-modal__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}
.ox-modal__head h3{margin:0}
.ox-modal__x{background:none;border:0;cursor:pointer;color:var(--txt3);font-size:1.3rem;line-height:1}

/* topbar premium */
.adm-rstatus{display:inline-flex;align-items:center;gap:.4rem;padding:.32rem .7rem;border-radius:999px;font-size:.74rem;font-weight:600;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);color:#cfe0ff}
.adm-rstatus__dot{width:8px;height:8px;border-radius:50%}
.adm-rstatus--on .adm-rstatus__dot{background:#10B981;box-shadow:0 0 0 3px rgba(16,185,129,.25)}
.adm-rstatus--off .adm-rstatus__dot{background:#F59E0B;box-shadow:0 0 0 3px rgba(245,158,11,.22)}
.adm-switcher{position:relative}
.adm-switcher>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:.45rem;padding:.4rem .75rem;border-radius:10px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);color:#dbe6ff;font-size:.8rem;font-weight:600;max-width:230px}
.adm-switcher>summary::-webkit-details-marker{display:none}
.adm-switcher>summary span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.adm-switcher__panel{position:absolute;top:calc(100% + .4rem);left:0;min-width:260px;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-lg);padding:.4rem;z-index:40}
.adm-switcher__panel a{display:block;padding:.5rem .6rem;border-radius:8px;font-size:.85rem;color:var(--txt)}
.adm-switcher__panel a:hover{background:var(--card2)}
.adm-switcher__panel a.is-active{background:color-mix(in srgb,var(--blue) 12%,#fff);color:var(--blue2);font-weight:600}
@media(max-width:560px){ .adm-rstatus__txt,.adm-switcher{display:none} }

/* sidebar hierarquia */
.adm-nav__label{opacity:.92}
.adm-nav__link{font-weight:500}
.adm-nav__link.is-active{font-weight:600}

/* grade responsiva */
@media(max-width:1100px){ .adm-body .col-8,.adm-body .col-7{grid-column:span 12} .adm-body .col-6,.adm-body .col-5,.adm-body .col-4{grid-column:span 6} }
@media(max-width:680px){ .adm-body .col-6,.adm-body .col-5,.adm-body .col-4,.adm-body .col-3{grid-column:span 12} .adm-content{padding:1rem} }

/* Central Científica */
.cc-list{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}
.cc-item{display:flex;align-items:center;gap:.7rem;padding:.6rem .7rem;border:1px solid var(--line);border-radius:12px;transition:border-color .15s,background .15s;color:inherit}
.cc-item:hover{border-color:color-mix(in srgb,var(--blue) 30%,transparent);background:color-mix(in srgb,var(--blue) 4%,transparent)}
.cc-item__ico{width:34px;height:34px;flex:0 0 34px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--blue) 12%,#fff);color:var(--blue)}
.cc-item__txt{min-width:0}
.cc-item__txt strong{display:block;font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cc-item__txt span{font-size:.76rem;color:var(--txt2)}
.cc-item__meta{margin-left:auto;font-size:.74rem;color:var(--txt3);white-space:nowrap}

/* ── Identidade plana: sem sombras no dashboard ───────────────────────────
   Remove todas as sombras (cards, KPIs, abas, topbar, modais, dropdowns…)
   e preserva apenas os indicadores que usam sombra INTERNA como borda
   (item ativo da sidebar, cabeçalho fixo de tabela, opção marcada). */
.adm-body{--shadow:none;--shadow-lg:none}
.adm-body, .adm-body *, .adm-body *::before, .adm-body *::after{ box-shadow:none !important; }
.adm-body .adm-nav__link.is-active{ box-shadow:inset 2px 0 0 var(--blue) !important; }
.adm-body .data-sheet thead th{ box-shadow:inset 0 -1px 0 var(--line) !important; }
.adm-body .q-opt input:checked + .q-opt__box{ box-shadow:inset 0 0 0 1px var(--blue) !important; }

/* ── Sem animações e sem efeitos ao passar o mouse (exceto gráficos) ───────
   Gráficos são canvas/JS e não são afetados por estas regras de CSS. */
.adm-body, .adm-body *, .adm-body *::before, .adm-body *::after{
  transition:none !important;
  animation:none !important;
}
/* mantém os indicadores de carregamento girando/animando */
.adm-body .loader{ animation:ox-spin .7s linear infinite !important; }
.adm-body .skeleton{ animation:ox-shimmer 1.3s ease infinite !important; }
/* sem movimento (lift/scale) ao passar o mouse */
.adm-body *:hover{ transform:none !important; }
/* sem realce decorativo ao passar o mouse */
.adm-body .card:hover,
.adm-body .kpi:hover,
.adm-body .inst-card:hover{ border-color:var(--line) !important; background:var(--card) !important; }
.adm-body .cc-item:hover{ border-color:var(--line) !important; background:transparent !important; }
.adm-body .adm-table tbody tr:hover{ background:transparent !important; }
.adm-body .q-opt:hover .q-opt__box{ border-color:var(--line2) !important; }
.adm-body .crumbs a:hover,
.adm-body .adm-back:hover{ color:inherit !important; }

/* ── Refino minimalista institucional ─────────────────────────────────────
   Cards brancos, borda fina, radius discreto (10–14px), espaçamento padronizado,
   topbar sóbria, foco de teclado acessível e cursor só em controles. */
.adm-body .card{ border-radius:14px; padding:1.25rem 1.35rem; }
.adm-body .card__head{ margin-bottom:.9rem; }
.adm-body .card__head h2{ font-size:1rem; font-weight:600; }
.adm-body .card__head h3{ font-size:.92rem; font-weight:600; }

/* KPIs superiores mais compactos */
.adm-body .adm-kpis{ gap:14px; }
/* Faixa de governança: força 4 colunas (vence o media query genérico) */
.adm-body .adm-kpis--4{ grid-template-columns:repeat(4,1fr); }
@media (max-width:1024px){ .adm-body .adm-kpis--4{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .adm-body .adm-kpis--4{ grid-template-columns:1fr; } }
.adm-body .kpi{ border-radius:12px; padding:.9rem 1rem; }
.adm-body .kpi__ico{ width:32px; height:32px; border-radius:9px; }
.adm-body .kpi__ico .ico{ width:17px; height:17px; }
.adm-body .kpi__label{ font-size:.74rem; margin-top:.55rem; }
.adm-body .kpi__value{ font-size:1.4rem; margin-top:.05rem; }

/* Cabeçalho da página — institucional */
.adm-pagehead{ margin-bottom:1.5rem; }
.adm-pagehead h1{ font-size:1.35rem; letter-spacing:-.01em; }
.adm-eyebrow{ display:block; font-size:.68rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--txt3); margin-bottom:.35rem; }

/* Cabeçalho de seção (faixa) — separa blocos sem virar card */
.adm-sectionhead{ display:flex; align-items:baseline; justify-content:space-between; gap:1rem; margin:1.4rem 0 .7rem; }
.adm-sectionhead h2{ font-size:.95rem; font-weight:600; color:var(--txt); }
.adm-sectionhead__links{ display:flex; gap:1rem; align-items:center; }
.adm-sectionhead__links a{ display:inline-flex; align-items:center; gap:.3rem; font-size:.8rem; font-weight:500; color:var(--txt2); }
.adm-sectionhead__links a:focus-visible{ outline:2px solid var(--brand); outline-offset:2px; border-radius:6px; }
.adm-sectionhead__links a .ico{ width:14px; height:14px; }

/* Status sóbrio (substitui caixas coloridas) */
.ox-status{ display:inline-flex; align-items:center; gap:.45rem; font-size:.8rem; font-weight:500; color:var(--txt2); padding:.1rem 0 .2rem; }
.ox-status__dot{ width:8px; height:8px; border-radius:50%; background:#10B981; flex:0 0 8px; }
.ox-status--warn{ color:#B45309; } .ox-status--warn .ox-status__dot{ background:#F59E0B; }
.ox-status--danger{ color:#B91C1C; } .ox-status--danger .ox-status__dot{ background:#EF4444; }

/* Utilitário acessível (input copiável fora da tela) */
.sr-only{ position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* Pendências — lista de cards limpos (substitui tabela apertada) */
.pend-list{ display:flex; flex-direction:column; gap:12px; }
.pend-item{ display:flex; align-items:flex-start; gap:1rem; background:var(--card,#fff); border:1px solid var(--line,#E6E8EE); border-radius:12px; padding:1rem 1.1rem; }
.pend-item__badge{ flex:0 0 auto; min-width:54px; text-align:center; font-size:.72rem; font-weight:700; letter-spacing:.02em; color:var(--txt2); background:var(--soft,#F4F6FA); border:1px solid var(--line,#E6E8EE); border-radius:8px; padding:.5rem .55rem; }
.pend-item__main{ flex:1 1 auto; min-width:0; }
.pend-item__head{ display:flex; align-items:center; gap:.7rem; flex-wrap:wrap; margin-bottom:.4rem; }
.pend-item__head strong{ font-size:.95rem; font-weight:600; color:var(--txt); }
.pend-item__meta{ display:flex; flex-wrap:wrap; gap:.4rem 1.1rem; font-size:.8rem; color:var(--txt3); }
.pend-item__meta span{ display:inline-flex; align-items:center; gap:.35rem; }
.pend-item__meta .ico{ width:14px; height:14px; color:var(--txt3); }
.pend-item__actions{ flex:0 0 auto; display:flex; align-items:center; gap:.5rem; }
@media (max-width:760px){
    .pend-item{ flex-wrap:wrap; }
    .pend-item__actions{ width:100%; flex-wrap:wrap; }
}

/* Lista de atividades — sóbria, com marcador cinza neutro */
.adm-body .cc-item--log{ padding:.4rem .1rem; border:0; }
.adm-body .cc-item--log .cc-item__dot{ width:6px; height:6px; border-radius:50%; background:var(--txt3); flex:0 0 6px; }
.adm-body .cc-item--log strong{ font-weight:500; font-size:.85rem; }

/* Topbar com menos destaque (plana, sem gradiente/realce) */
.adm-header{ background:var(--side) !important; border-bottom:1px solid rgba(255,255,255,.07) !important; }
.is-light .adm-header{ background:var(--side) !important; }

/* Acessibilidade: foco de teclado visível */
.adm-body a:focus-visible, .adm-body button:focus-visible, .adm-body input:focus-visible,
.adm-body select:focus-visible, .adm-body textarea:focus-visible, .adm-body summary:focus-visible{
  outline:2px solid var(--blue); outline-offset:2px; border-radius:6px;
}
/* cursor de ponteiro apenas em controles */
.adm-body button, .adm-body a, .adm-body summary, .adm-body label, .adm-body [role="button"]{ cursor:pointer; }

/* ── Central Científica — listas enxutas, alertas suaves, tabela arejada ──── */
/* estado vazio compacto */
.adm-body .empty--sm{ padding:1.4rem 1rem; }
.adm-body .empty--sm .empty__ico{ width:40px; height:40px; }
.adm-body .empty--sm h3{ font-size:.95rem; }
.adm-body .empty--sm p{ font-size:.82rem; }

/* listas compactas com divisória fina (sem ícones repetidos) */
.adm-body .cc-list--tight{ gap:0; }
.adm-body .cc-list--tight .cc-item{ border:0; border-bottom:1px solid var(--line); border-radius:0; padding:.55rem .15rem; }
.adm-body .cc-list--tight li:last-child .cc-item{ border-bottom:0; }
.adm-body .cc-item__meta{ flex:0 0 auto; margin-left:auto; color:var(--txt3); }
/* nome longo quebra linha sem deformar o card */
.adm-body .cc-item__txt--wrap{ min-width:0; }
.adm-body .cc-item__txt--wrap span{ white-space:normal; }

/* alertas e badges sóbrios (escopo Central) */
.cc-soft .ox-alert{ border:1px solid var(--line); border-radius:12px; padding:.7rem .85rem; align-items:flex-start; background:#fff; }
.cc-soft .ox-alert + .ox-alert{ margin-top:.5rem; }
.cc-soft .ox-alert--info{ background:#f5f8ff; border-color:#dbe6ff; }
.cc-soft .ox-alert--ok{ background:#f4fbf7; border-color:#cdeedd; }
.cc-soft .ox-alert--warn{ background:#fffdf4; border-color:#fbe7ad; }
.cc-soft .ox-alert--danger{ background:#fef6f5; border-color:#f6d2ce; }
.cc-soft .ox-alert__ico{ margin-top:.08rem; flex:0 0 auto; }
.cc-soft .cc-item{ align-items:center; }
.cc-soft .cc-item__meta .adm-pill{ white-space:nowrap; }

/* tabela arejada + link de ação minimalista */
.adm-body .adm-table--roomy th, .adm-body .adm-table--roomy td{ padding:.6rem .6rem; }
.adm-body .adm-link--sm{ font-size:.82rem; font-weight:600; color:var(--blue); }

/* Classificações ilustradas (cards minimalistas, sem sombra) */
.cls-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
@media(max-width:760px){ .cls-grid{ grid-template-columns:1fr; } }
.cls-card{ display:flex; gap:.9rem; align-items:flex-start; border:1px solid var(--line); border-radius:14px; padding:1rem 1.1rem; background:#fff; }
.cls-card__ico{ width:42px; height:42px; flex:0 0 42px; border-radius:12px; display:flex; align-items:center; justify-content:center; }
.cls-card__ico .ico{ width:20px; height:20px; }
.cls-card__body{ min-width:0; }
.cls-card__top{ display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; }
.cls-card__top strong{ font-size:.95rem; }
.cls-card__crit{ font-size:.78rem; color:var(--txt2); margin:.25rem 0 .4rem; font-variant-numeric:tabular-nums; }
.cls-card__desc{ font-size:.85rem; color:var(--txt2); margin:0; line-height:1.5; }

/* Bloco de fórmula (Metodologia) — sóbrio, sem sombra */
.prose .formula{ background:#f6f8fc; border:1px solid var(--line); border-radius:10px; padding:.8rem 1rem; font-size:.82rem; line-height:1.55; color:#0b2545; white-space:pre-wrap; overflow-x:auto; margin:.5rem 0 1rem; }

/* Métricas ilustradas (grid de cards minimalistas, sem sombra) */
.met-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
@media(max-width:980px){ .met-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:560px){ .met-grid{ grid-template-columns:1fr; } }
.met-card{ display:flex; gap:.75rem; align-items:flex-start; border:1px solid var(--line); border-radius:12px; padding:.85rem .95rem; background:#fff; }
.met-card__ico{ width:34px; height:34px; flex:0 0 34px; border-radius:10px; display:flex; align-items:center; justify-content:center; color:var(--blue); background:color-mix(in srgb,var(--blue) 10%,#fff); }
.met-card__ico .ico{ width:17px; height:17px; }
.met-card__body{ min-width:0; }
.met-card__top{ display:flex; align-items:baseline; gap:.45rem; flex-wrap:wrap; }
.met-card__top strong{ font-size:.88rem; }
.met-card__unit{ font-size:.68rem; font-weight:700; letter-spacing:.03em; color:var(--txt3); background:var(--card2,#f1f5f9); border:1px solid var(--line); border-radius:999px; padding:.05rem .4rem; }
.met-card__desc{ font-size:.8rem; color:var(--txt2); margin:.25rem 0 0; line-height:1.45; }

/* Mini-estatísticas compactas (aba Estatística) — minimalista, monocromático */
.stat-row{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:18px; }
@media(max-width:760px){ .stat-row{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:420px){ .stat-row{ grid-template-columns:1fr; } }
.stat-mini{ border:1px solid var(--line); border-radius:12px; background:#fff; padding:.7rem .9rem; }
.stat-mini__label{ display:flex; align-items:center; gap:.35rem; font-size:.72rem; font-weight:600; color:var(--txt3); }
.stat-mini__label .ico{ width:14px; height:14px; color:var(--txt3); }
.stat-mini__value{ font-size:1.3rem; font-weight:700; letter-spacing:-.01em; margin-top:.3rem; color:var(--txt); }

/* Anel de escore (ilustração do índice) — preenche conforme o valor, cor pelo nível */
.score-ring-wrap{ display:flex; flex-direction:column; align-items:center; gap:.8rem; padding:.5rem 0 .3rem; }
.score-ring{ width:140px; height:140px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex:0 0 140px; }
.score-ring__inner{ width:108px; height:108px; border-radius:50%; background:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.score-ring__num{ font-size:2.1rem; font-weight:800; letter-spacing:-.02em; line-height:1; color:var(--txt); }
.score-ring__max{ font-size:.78rem; color:var(--txt3); margin-top:.2rem; }

/* Itens de menu de ações (popover) — minimalista */
.adm-pop__item{ display:flex; align-items:center; gap:.5rem; width:100%; text-align:left; background:none; border:0; border-radius:8px; padding:.5rem .55rem; font:inherit; font-size:.84rem; color:var(--txt); cursor:pointer; text-decoration:none; }
.adm-pop__item .ico{ color:var(--txt3); }
.adm-pop__item--danger{ color:#c2231a; }
.adm-pop__item--danger .ico{ color:#c2231a; }

/* Formulário de cadastro — largura confortável, seções, grid 2 colunas */
.ox-form{ max-width:860px; }
.ox-form__sec{ border:1px solid var(--line); border-radius:14px; background:#fff; padding:1.2rem 1.35rem; margin-bottom:16px; }
.ox-form__sec > h2{ font-size:.95rem; font-weight:600; margin:0 0 .2rem; display:flex; align-items:center; gap:.5rem; }
.ox-form__sec > h2 .ox-step{ width:22px; height:22px; flex:0 0 22px; border-radius:7px; background:color-mix(in srgb,var(--blue) 12%,#fff); color:var(--blue); font-size:.74rem; font-weight:700; display:flex; align-items:center; justify-content:center; }
.ox-form__sec > p{ margin:.1rem 0 1rem; color:var(--txt2); font-size:.84rem; }
.ox-grid2{ display:grid; grid-template-columns:1fr 1fr; gap:.8rem 1rem; }
@media(max-width:680px){ .ox-grid2{ grid-template-columns:1fr; } }
.ox-field{ display:flex; flex-direction:column; gap:.3rem; }
.ox-field--full{ grid-column:1 / -1; }
.ox-field label{ font-size:.78rem; font-weight:600; color:var(--txt2); }
.ox-field input, .ox-field select, .ox-field textarea{ width:100%; height:40px; border:1px solid var(--line); border-radius:10px; background:#fff; padding:0 .7rem; font:inherit; font-size:.9rem; color:var(--txt); }
.ox-field textarea{ height:auto; min-height:74px; padding:.6rem .7rem; resize:vertical; }
.ox-field input:focus-visible, .ox-field select:focus-visible, .ox-field textarea:focus-visible{ outline:2px solid var(--blue); outline-offset:1px; border-color:var(--blue); }
.ox-form__foot{ display:flex; gap:.6rem; align-items:center; justify-content:flex-end; margin-top:.4rem; }
.ox-check{ display:flex; align-items:center; gap:.5rem; font-size:.88rem; color:var(--txt); }
.ox-check input{ width:auto; height:auto; }

/* Perfil do voluntário — linhas chave/valor */
.vp-row{ display:flex; justify-content:space-between; gap:1rem; padding:.4rem 0; border-bottom:1px solid var(--line); font-size:.86rem; }
.vp-row:last-of-type{ border-bottom:0; }
.vp-row__k{ color:var(--txt2); }
.vp-row__v{ font-weight:600; text-align:right; word-break:break-word; }
.vp-notes{ margin-top:.7rem; font-size:.82rem; color:var(--txt2); line-height:1.5; }
.vp-notes strong{ color:var(--txt); }

/* Ações inline da tabela de voluntários (sem dropdown — evita corte por overflow) */
.vol-actions{ display:flex; align-items:center; gap:.25rem; white-space:nowrap; }
.vol-actions form{ display:inline-flex; margin:0; }
.vol-act{ display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; border:1px solid var(--line); border-radius:9px; background:#fff; color:var(--txt2); cursor:pointer; padding:0; }
.vol-act .ico{ width:15px; height:15px; }
.vol-act--danger{ color:#c2231a; }
.vol-act:focus-visible{ outline:2px solid var(--blue); outline-offset:1px; }

/* ── Aba Inserção de dados — formulários minimalistas ─────────────────────── */
.ox-collect .card__head h2{ font-size:.98rem; font-weight:600; }
.ox-collect .adm-form label,
.ox-collect .reg-diary__head > span{ font-size:.76rem; font-weight:600; color:var(--txt2); letter-spacing:0; text-transform:none; }
/* inputs/selects/textarea uniformes: brancos, borda fina, altura consistente */
.ox-collect .adm-field input,
.ox-collect .adm-field select,
.ox-collect .adm-field textarea,
.ox-collect .q-input{
  background:#fff !important; border:1px solid var(--line); border-radius:10px;
  height:40px; padding:0 .7rem; font-size:.9rem; color:var(--txt); width:100%;
}
.ox-collect .adm-field textarea, .ox-collect textarea.q-input{ height:auto; min-height:70px; padding:.55rem .7rem; }
.ox-collect input[type="file"]{ height:auto; padding:.45rem .6rem; font-size:.84rem; }
.ox-collect input:focus-visible, .ox-collect select:focus-visible, .ox-collect textarea:focus-visible{ outline:2px solid var(--blue); outline-offset:1px; border-color:var(--blue); }
.ox-collect hr{ border:0; border-top:1px solid var(--line); margin:1rem 0; }
/* submit alinhado à direita, sem botão full-width pesado */
.ox-collect .q-submit{ display:flex; justify-content:flex-end; margin-top:1rem; }
.ox-collect .q-submit .adm-btn{ width:auto; }

/* diário (linhas data/dormiu/acordou/cochilos) mais enxuto */
.ox-collect .reg-diary__head{ border-bottom:1px solid var(--line); }
.ox-collect .reg-row{ gap:.5rem; }
.ox-collect .reg-row .q-input{ height:38px; }
.ox-collect .reg-del{ width:38px; height:38px; border:1px solid var(--line); border-radius:9px; background:#fff; color:var(--txt3); }

/* Diário por DIA — cards com campos que quebram linha (sem rolagem horizontal) */
.diary-day{ border:1px solid var(--line); border-radius:12px; padding:.85rem 1rem; margin-bottom:.7rem; background:#fff; }
.diary-day__top{ display:flex; align-items:center; justify-content:space-between; margin-bottom:.6rem; }
.diary-day__top strong{ font-size:.74rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--txt3); }
.diary-day__grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(135px, 1fr)); gap:.6rem .8rem; }
.diary-f{ display:flex; flex-direction:column; gap:.25rem; min-width:0; }
.diary-f label{ font-size:.72rem; font-weight:600; color:var(--txt2); }
.diary-f .q-input{ width:100%; height:38px; background:#fff; border:1px solid var(--line); border-radius:9px; padding:0 .55rem; font-size:.85rem; }
.diary-del2{ display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; border:1px solid var(--line); border-radius:8px; background:#fff; color:#c2231a; cursor:pointer; padding:0; }
.diary-del2 .ico{ width:15px; height:15px; }

/* ============================================================================
   BANCO MESTRE DE DADOS CIENTÍFICOS — minimalista (sem sombra/hover/animação)
   ============================================================================ */
/* Reset obrigatório de efeitos ao passar o mouse */
.adm-body .card:hover,
.adm-body .table-row:hover,
.adm-body .adm-table tbody tr:hover,
.adm-body .button:hover,
.adm-body .action-button:hover,
.adm-body .adm-btn:hover,
.adm-body .dict-row:hover{ transform:none; box-shadow:none; filter:none; transition:none; }

.wh-headactions{ display:flex; align-items:center; gap:.8rem; }
.wh-headactions form{ margin:0; }
.stat-mini__value--sm{ font-size:.95rem; font-weight:600; }

/* Qualidade dos dados */
.wh-quality{ display:flex; align-items:center; gap:1rem; }
.wh-quality__txt{ display:flex; flex-direction:column; gap:.15rem; }
.wh-quality__txt strong{ font-size:.92rem; font-weight:600; }
.wh-quality__txt .adm-muted{ font-size:.8rem; }

/* Formulário compacto (export/versões) */
.ox-form--tight .ox-field span{ font-size:.78rem; font-weight:600; color:var(--txt3); margin-bottom:.25rem; display:block; }
.ox-form--tight select,.ox-form--tight input,.ox-form--tight textarea{ width:100%; border:1px solid var(--line2); border-radius:9px; padding:.5rem .6rem; font:inherit; background:#fff; color:var(--txt); }
.ox-form--tight textarea{ resize:vertical; }
.ox-form__foot{ display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:1rem; flex-wrap:wrap; }
.ox-form__foot .adm-muted{ font-size:.78rem; max-width:60%; }

/* Dicionário — tabela em grid (linhas = formulários) */
.dict-table{ display:flex; flex-direction:column; }
.dict-row{ display:grid; grid-template-columns:1.4fr 1.6fr .9fr .8fr 1fr .7fr auto; gap:.6rem; align-items:center; padding:.55rem .1rem; border-bottom:1px solid var(--line); margin:0; }
.dict-row--head{ font-size:.72rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--txt3); border-bottom:1px solid var(--line2); }
.dict-key{ font-family:ui-monospace,Menlo,Consolas,monospace; font-size:.78rem; color:var(--txt2); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dict-origin{ font-size:.78rem; color:var(--txt3); }
.dict-input{ border:1px solid var(--line2); border-radius:8px; padding:.38rem .5rem; font:inherit; font-size:.84rem; background:#fff; width:100%; }
.dict-act{ text-align:right; }
@media (max-width:900px){
  .dict-row{ grid-template-columns:1fr 1fr; }
  .dict-row--head{ display:none; }
  .dict-row>*{ min-width:0; }
}

/* Banco Mestre — layout robusto que preenche a largura (sem col-*) */
.wh-export{ display:block; }
.wh-filters{ display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:.9rem 1rem; }
.wh-cols{ display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-bottom:18px; }
.wh-cols>.card{ margin:0; }
.wh-quality__hint{ font-size:.78rem; margin-top:.9rem; }
.wh-newvars{ max-height:300px; overflow:auto; margin-bottom:.6rem; }
@media (max-width:1024px){ .wh-cols{ grid-template-columns:1fr; } }

/* Oxton Stats — Analysis Studio: layout robusto (nav + área principal) */
.as-layout{ display:grid; grid-template-columns:264px 1fr; gap:18px; align-items:start; }
.as-main{ display:flex; flex-direction:column; gap:18px; }
.as-side .card__head{ display:flex; align-items:baseline; justify-content:space-between; gap:.5rem; }
.as-nav{ display:flex; flex-direction:column; gap:2px; }
.as-nav__item{ display:block; padding:.5rem .6rem; border-radius:9px; font-size:.88rem; color:var(--txt2); text-decoration:none; }
.as-nav__item.is-active{ background:#eef2ff; color:var(--txt); font-weight:600; }
.as-adv{ margin-top:1rem; border-top:1px solid var(--line); padding-top:.8rem; }
.as-adv__title{ font-size:.7rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--txt3); }
.as-adv__list{ display:flex; flex-wrap:wrap; gap:.4rem; margin-top:.6rem; }
.as-adv__item{ display:inline-flex; align-items:center; gap:.3rem; font-size:.74rem; color:var(--txt3); background:var(--soft,#f4f6fa); border:1px solid var(--line); border-radius:7px; padding:.25rem .5rem; }
.as-adv__item .ico{ width:12px; height:12px; }
.as-fields{ display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:.8rem 1rem; }
.as-fields .adm-field{ margin:0; }
.as-fields .as-field--wide{ grid-column:1/-1; }
.as-fields label{ display:block; font-size:.78rem; font-weight:600; color:var(--txt3); margin-bottom:.25rem; }
.as-fields select,.as-fields input{ width:100%; border:1px solid var(--line2); border-radius:9px; padding:.5rem .6rem; font:inherit; background:#fff; color:var(--txt); }
@media (max-width:900px){ .as-layout{ grid-template-columns:1fr; } }

/* Utilitário de colunas reutilizável (preenche a largura; minimalista) */
.ox-cols{ display:grid; gap:18px; align-items:start; }
.ox-cols--aside{ grid-template-columns:minmax(300px,360px) 1fr; }
.ox-cols--2{ grid-template-columns:1fr 1fr; }
.ox-cols .adm-form select,
.ox-cols .adm-form input:not([type=checkbox]):not([type=radio]),
.ox-cols .adm-form textarea{ width:100%; }
@media (max-width:1080px){ .ox-cols--aside{ grid-template-columns:1fr; } }
@media (max-width:900px){ .ox-cols--2{ grid-template-columns:1fr; } }

/* Cálculo Amostral — refino minimalista */
.tool-sub{ margin:-.4rem 0 .9rem; font-size:.82rem; }
.adm-body .sample-out{ background:var(--soft,#f4f6fa); border:1px solid var(--line); border-radius:11px; }
.adm-body .sample-out strong{ color:var(--txt); font-weight:700; }
.adm-body .sample-formula{ border-top:1px solid var(--line); padding-top:.6rem; }

/* ============================================================================
   CONTROLES DE FORMULÁRIO — padronização minimalista global (selects/inputs
   "crus" das filterbars e formulários). Não toca .q-input (já estilizado).
   ============================================================================ */
.adm-content select:not(.q-input),
.adm-content input:not(.q-input):not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=submit]):not([type=button]):not([type=file]),
.adm-content textarea:not(.q-input){
  border:1px solid var(--line2);
  border-radius:10px;
  padding:.5rem .65rem;
  font:inherit;
  font-size:.88rem;
  background:#fff;
  color:var(--txt);
  line-height:1.3;
}
.adm-content select:not(.q-input){
  -webkit-appearance:none; -moz-appearance:none; appearance:none;
  padding-right:2rem;
  cursor:pointer;
  background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right .6rem center;
  background-size:16px;
}
.adm-content select:not(.q-input):focus-visible,
.adm-content input:not(.q-input):focus-visible,
.adm-content textarea:not(.q-input):focus-visible{
  outline:2px solid color-mix(in srgb,var(--blue) 50%,transparent);
  outline-offset:1px;
  border-color:var(--blue);
}
/* filterbar: rótulo + controle alinhados e respirando */
.adm-content .filterbar label{ display:flex; flex-direction:column; gap:.3rem; font-size:.78rem; font-weight:600; color:var(--txt3); }

/* Variante: conteúdo principal largo + lateral estreita (à direita) */
.ox-cols--wide-aside{ grid-template-columns:1fr minmax(300px,360px); }
@media (max-width:1080px){ .ox-cols--wide-aside{ grid-template-columns:1fr; } }

/* Interpretação de referência (valores normativos) */
.norm-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1rem 1.4rem; }
.norm-item{ display:flex; flex-direction:column; gap:.45rem; }
.norm-item__k{ display:inline-flex; align-items:center; gap:.4rem; font-size:.78rem; font-weight:600; color:var(--txt3); }
.norm-item__k .ico{ width:14px; height:14px; }
.norm-item__d{ font-size:.8rem; color:var(--txt2); line-height:1.4; }
.norm-item__pct{ font-size:1.6rem; font-weight:700; color:var(--txt); line-height:1; }
.norm-item__pct small{ font-size:.72rem; font-weight:500; color:var(--txt3); margin-left:.25rem; }
.norm-bar{ position:relative; height:8px; border-radius:999px; background:var(--soft,#eef2f7); overflow:visible; }
.norm-bar__fill{ position:absolute; left:0; top:0; bottom:0; border-radius:999px; background:color-mix(in srgb,var(--blue) 45%,#fff); }
.norm-bar__mark{ position:absolute; top:50%; width:12px; height:12px; border-radius:50%; background:var(--blue); border:2px solid #fff; transform:translate(-50%,-50%); }
.norm-cite{ margin:1.1rem 0 0; padding-top:.8rem; border-top:1px solid var(--line); font-size:.76rem; color:var(--txt3); }

/* Actigraphy Analytics — circadiano */
.adm-kpis.adm-kpis--2{ grid-template-columns:repeat(2,1fr); }
.acti-main{ display:flex; flex-direction:column; gap:18px; }
.stat-mini__hint{ font-size:.72rem; color:var(--txt3); margin-top:.2rem; line-height:1.3; }
.acti-recs{ display:flex; flex-direction:column; gap:.4rem; max-height:240px; overflow:auto; margin-bottom:1rem; }
.acti-rec{ display:flex; flex-direction:column; gap:.15rem; padding:.55rem .65rem; border:1px solid var(--line); border-radius:10px; color:inherit; text-decoration:none; }
.acti-rec.is-active{ border-color:var(--blue); background:#eef2ff; }
.acti-rec__t{ font-size:.86rem; font-weight:600; color:var(--txt); }
.acti-rec__m{ font-size:.74rem; color:var(--txt3); }
.acti-actions{ border-top:1px solid var(--line); padding-top:.9rem; }
.acti-actions input[type=file]{ width:100%; font-size:.82rem; }
/* perfil de 24h em barras */
.acti-prof{ display:flex; align-items:flex-end; gap:3px; height:140px; padding-top:.5rem; }
.acti-prof__col{ flex:1; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; height:100%; position:relative; }
.acti-prof__bar{ width:100%; max-width:22px; background:color-mix(in srgb,var(--blue) 45%,#fff); border:1px solid color-mix(in srgb,var(--blue) 55%,#fff); border-radius:4px 4px 0 0; }
.acti-prof__lbl{ position:absolute; bottom:-16px; font-size:.62rem; color:var(--txt3); }
.acti-prof{ margin-bottom:18px; }

/* Selo de reprodutibilidade */
.repro-seal{ display:inline-flex; align-items:center; gap:.5rem; margin-top:.9rem; padding:.5rem .8rem; border:1px solid var(--line2); border-radius:10px; background:var(--soft,#f4f6fa); font-size:.82rem; color:var(--txt2); }
.repro-seal .ico{ width:15px; height:15px; color:var(--blue); }
.repro-seal strong{ font-family:ui-monospace,Menlo,Consolas,monospace; color:var(--txt); letter-spacing:.04em; }

/* Kit de Publicação */
.pub-t1 td, .pub-t1 th{ vertical-align:top; }
.pub-t1__indent{ padding-left:1.4rem !important; color:var(--txt2); }
.pub-t1__head td{ background:var(--soft,#f7f9fc); }
.pub-p{ font-variant-numeric:tabular-nums; }
.pub-figure{ border:1px solid var(--line); border-radius:12px; padding:.6rem; background:#fff; overflow:auto; }
.pub-figure img{ display:block; width:100%; max-width:720px; margin:0 auto; height:auto; }
.strobe{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:1rem 1.6rem; }
.strobe__sec h3{ font-size:.82rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--txt3); margin:0 0 .5rem; }
.strobe__item{ display:flex; gap:.5rem; align-items:flex-start; font-size:.84rem; color:var(--txt2); margin-bottom:.45rem; line-height:1.4; }
.strobe__item input{ margin-top:.2rem; flex:0 0 auto; }

/* EMA — painel */
.ema-vols{ display:flex; flex-direction:column; gap:.3rem; max-height:200px; overflow:auto; border:1px solid var(--line); border-radius:10px; padding:.5rem; margin-bottom:.6rem; }
.ema-vol{ display:flex; align-items:center; gap:.5rem; font-size:.85rem; }
.ema-card__meta{ display:flex; flex-direction:column; gap:.25rem; font-size:.8rem; color:var(--txt3); }
.ema-card__meta .ico{ width:14px; height:14px; }
.ema-rem-actions{ display:flex; gap:.4rem; margin-left:auto; }
/* EMA — microformulário público */
.ema-q{ margin-bottom:1.3rem; }
.ema-q__label{ display:block; font-weight:600; font-size:.95rem; margin-bottom:.6rem; color:var(--txt); }
.ema-range{ width:100%; accent-color:var(--blue,#1E5EFF); }
.ema-scale{ display:flex; justify-content:space-between; align-items:center; font-size:.74rem; color:var(--txt3); margin-top:.3rem; }
.ema-val{ font-size:.95rem; color:var(--txt); } .ema-val b{ color:var(--blue,#1E5EFF); font-size:1.1rem; }
.ema-choices{ display:flex; gap:.6rem; flex-wrap:wrap; }
.ema-choice{ display:inline-flex; align-items:center; gap:.4rem; border:1px solid var(--line2); border-radius:10px; padding:.5rem .9rem; cursor:pointer; font-size:.9rem; }
.ema-done__ico{ display:inline-flex; align-items:center; justify-content:center; width:56px; height:56px; border-radius:50%; background:#FEE2E2; color:#EF4444; margin-bottom:.6rem; }
.ema-done__ico--ok{ background:#D1FAE5; color:#10B981; }
.ema-done__ico .ico{ width:28px; height:28px; }

/* Portal do participante (público) */
.portal{ max-width:560px; }
.portal-sec{ margin-top:1.4rem; }
.portal-h{ font-size:.95rem; font-weight:600; margin:0 0 .6rem; color:var(--txt); }
.portal-pending{ display:flex; flex-direction:column; gap:.5rem; }
.portal-prompt{ display:flex; align-items:center; gap:.6rem; padding:.7rem .8rem; border:1px solid var(--line2); border-radius:12px; text-decoration:none; color:inherit; }
.portal-prompt__t{ font-weight:600; font-size:.9rem; }
.portal-prompt__m{ font-size:.78rem; color:var(--txt3); display:inline-flex; align-items:center; gap:.3rem; }
.portal-prompt__go{ margin-left:auto; display:inline-flex; align-items:center; gap:.3rem; font-size:.82rem; font-weight:600; color:var(--blue,#1E5EFF); }
.portal-stats{ display:flex; gap:.8rem; }
.portal-stat{ flex:1; border:1px solid var(--line); border-radius:12px; padding:.8rem; text-align:center; }
.portal-stat__v{ display:block; font-size:1.5rem; font-weight:700; color:var(--txt); }
.portal-stat__l{ font-size:.74rem; color:var(--txt3); }
.portal-hist{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.4rem; }
.portal-hist__item{ display:flex; align-items:center; gap:.7rem; padding:.55rem .2rem; border-bottom:1px solid var(--line); }
.portal-hist__abbr{ flex:0 0 auto; min-width:48px; text-align:center; font-size:.72rem; font-weight:700; color:var(--txt2); background:var(--soft,#f4f6fa); border:1px solid var(--line); border-radius:8px; padding:.35rem .4rem; }
.portal-hist__txt{ display:flex; flex-direction:column; min-width:0; flex:1; }
.portal-hist__txt strong{ font-size:.86rem; } .portal-hist__txt span{ font-size:.74rem; color:var(--txt3); }
.portal-hist__score{ font-weight:700; color:var(--txt); text-align:right; } .portal-hist__score small{ display:block; font-size:.7rem; font-weight:500; color:var(--txt3); }

/* Interoperabilidade */
.interop-list{ list-style:none; margin:.4rem 0 1.1rem; padding:0; display:flex; flex-direction:column; gap:.55rem; font-size:.86rem; color:var(--txt2); }
.interop-list li{ display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; }
.interop-list code{ background:var(--soft,#f4f6fa); border:1px solid var(--line); border-radius:6px; padding:.05rem .35rem; font-size:.8rem; }
.interop-tag{ flex:0 0 auto; min-width:60px; text-align:center; font-size:.68rem; font-weight:700; letter-spacing:.04em; color:#fff; background:var(--blue,#1E5EFF); border-radius:6px; padding:.18rem .45rem; }
.interop-how p{ font-size:.85rem; color:var(--txt2); margin:.4rem 0; }
.interop-how code{ background:var(--soft,#f4f6fa); border:1px solid var(--line); border-radius:6px; padding:.05rem .35rem; font-size:.8rem; }

/* Admin — comercial (planos/licenças/pagamentos) */
.plan-list{ display:grid; grid-template-columns:repeat(auto-fit,minmax(340px,1fr)); gap:18px; }
.plan-form,.lic-form{ margin:0; }
.plan-tools{ margin-top:.8rem; }
.plan-tools__h{ font-size:.72rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--txt3); }
.plan-tools__grid{ display:grid; grid-template-columns:1fr 1fr; gap:.35rem .8rem; margin-top:.5rem; }
.plan-tool{ display:flex; align-items:center; gap:.45rem; font-size:.84rem; color:var(--txt2); }
.plan-flags{ display:flex; gap:1.2rem; margin-top:.8rem; flex-wrap:wrap; }
.adm-inline-form{ display:inline-flex; align-items:center; gap:.4rem; margin:0; }
.adm-inline-select{ border:1px solid var(--line2); border-radius:8px; padding:.35rem .5rem; font:inherit; font-size:.82rem; background:#fff; }
.lic-inherit{ justify-content:flex-end; }
@media (max-width:560px){ .plan-tools__grid{ grid-template-columns:1fr; } }

/* ============================================================================
   CONSOLE ADMIN — reset obrigatório de hover + componentes
   ============================================================================ */
.card:hover, .table-row:hover, .button:hover, .action-button:hover, .admin-card:hover,
.adm-body .card:hover, .adm-body .adm-table tbody tr:hover, .adm-body .adm-btn:hover {
  transform: none; box-shadow: none; filter: none; transition: none;
}
.report-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:12px; }
.report-item{ display:flex; align-items:center; gap:.7rem; padding:.9rem 1rem; border:1px solid var(--line); border-radius:12px; color:inherit; text-decoration:none; }
.report-item__ico{ width:34px;height:34px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;background:var(--soft,#f4f6fa);color:var(--blue,#1E5EFF);flex:0 0 auto; }
.report-item__ico .ico{ width:17px;height:17px; }
.report-item__t{ font-size:.88rem;font-weight:600;flex:1; }
.report-item__go{ display:inline-flex;align-items:center;gap:.3rem;font-size:.78rem;color:var(--blue,#1E5EFF);font-weight:600; }

/* Saúde do sistema + Data Quality Score */
.health-mods{ display:flex; flex-wrap:wrap; gap:.5rem .9rem; }
.health-mod{ display:inline-flex; align-items:center; gap:.4rem; font-size:.84rem; color:var(--txt2); }
.health-mod__dot{ width:9px;height:9px;border-radius:50%;background:#cbd5e1;flex:0 0 9px; }
.health-mod__dot.is-on{ background:#10B981; }
.dq-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:.8rem 1.2rem; }
.dq-dim__top{ display:flex; justify-content:space-between; font-size:.82rem; margin-bottom:.3rem; }
.dq-dim__top strong{ font-variant-numeric:tabular-nums; }
.norm-bar{ height:8px; background:var(--soft,#eef2f7); border-radius:6px; overflow:hidden; }
.norm-bar__fill{ height:100%; background:var(--blue,#1E5EFF); border-radius:6px; }

/* ============================================================================
   PORTAL DO VOLUNTÁRIO + fluxo de convite — reset obrigatório de hover
   ============================================================================ */
.card:hover, .table-row:hover, .button:hover, .action-button:hover, .instrument-card:hover,
.vol-icard:hover, .vol-nav__link:hover { transform:none; box-shadow:none; filter:none; transition:none; }

.vol-body{ background:#eef2f7; min-height:100vh; display:flex; flex-direction:column; }
.vol-top{ display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.8rem 1.4rem; background:#0A1124; flex-wrap:wrap; }
.vol-top .adm-logo{ color:#fff; font-weight:800; letter-spacing:.04em; }
.vol-top .adm-logo b{ color:#1E5EFF; }
.vol-nav{ display:flex; align-items:center; gap:.3rem; flex-wrap:wrap; }
.vol-nav__link{ display:inline-flex; align-items:center; gap:.3rem; padding:.4rem .7rem; border-radius:8px; font-size:.85rem; color:#cbd5e1; text-decoration:none; background:none; border:0; cursor:pointer; font-family:inherit; }
.vol-nav__link.is-active{ background:rgba(255,255,255,.1); color:#fff; font-weight:600; }
.vol-nav__link--out{ color:#94a3b8; }
.vol-main{ flex:1; padding:1.6rem 1.2rem; }
.vol-wrap{ max-width:1040px; margin:0 auto; }
.vol-wrap--narrow{ max-width:680px; }
.vol-cards{ display:flex; flex-direction:column; gap:.6rem; }
.vol-icard{ display:flex; align-items:center; gap:1rem; padding:.8rem 1rem; border:1px solid var(--line); border-radius:12px; }
.vol-icard__main{ display:flex; align-items:center; gap:.8rem; flex:1; min-width:0; }
.vol-icard__abbr{ flex:0 0 auto; min-width:54px; text-align:center; font-size:.74rem; font-weight:700; color:var(--txt2); background:var(--soft,#f4f6fa); border:1px solid var(--line); border-radius:8px; padding:.45rem .5rem; }
.vol-icard__txt{ display:flex; flex-direction:column; min-width:0; }
.vol-icard__txt strong{ font-size:.92rem; }
.vol-icard__txt span{ font-size:.78rem; color:var(--txt3); }
@media (max-width:560px){ .vol-icard{ flex-wrap:wrap; } }

/* ============================================================================
   Consentimento (TCLE) + atalho WhatsApp do convite
   ============================================================================ */
.consent-box{ max-height:340px; overflow:auto; padding:1rem 1.1rem; border:1px solid var(--line); border-radius:10px; background:var(--soft,#f8fafc); font-size:.85rem; line-height:1.6; color:var(--txt2); white-space:normal; }
.consent-box:hover{ transform:none; box-shadow:none; }
.invite-share{ display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.7rem; }
.invite-share .adm-btn{ flex:0 0 auto; }

/* ============================================================================
   GOVERNANÇA CIENTÍFICA (eCRF/EDC) — 10 módulos
   ============================================================================ */
/* reset obrigatório de hover (inclui .study-card) */
.card:hover,.table-row:hover,.button:hover,.action-button:hover,.admin-card:hover,.study-card:hover,
.sci-step:hover,.lic-block:hover,.integ-score:hover{ transform:none; box-shadow:none; filter:none; transition:none; }

/* Construtor de estudo — stepper */
.sci-steps{ align-self:flex-start; }
.sci-steps__h{ font-size:.8rem; text-transform:uppercase; letter-spacing:.04em; color:var(--txt2); margin:0 0 .6rem; }
.sci-steplist{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.15rem; }
.sci-step a{ display:flex; align-items:center; gap:.55rem; padding:.5rem .55rem; border-radius:9px; text-decoration:none; color:var(--txt2); font-size:.86rem; }
.sci-step.is-active a{ background:#eff4ff; color:var(--ox-blue,#1E5EFF); font-weight:600; }
.sci-step__n{ display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; border-radius:50%; border:1px solid var(--line); font-size:.74rem; flex:0 0 22px; }
.sci-step.is-done .sci-step__n{ background:#10B981; border-color:#10B981; color:#fff; }
.sci-step.is-active .sci-step__n{ border-color:var(--ox-blue,#1E5EFF); color:var(--ox-blue,#1E5EFF); }

.sci-check{ list-style:none; margin:0 0 1rem; padding:0; display:flex; flex-direction:column; gap:.4rem; }
.sci-check li{ display:flex; align-items:center; gap:.5rem; font-size:.88rem; }
.sci-check li.ok{ color:#0f766e; }
.sci-check li.crit{ color:#b91c1c; }
.sci-check li.warn{ color:#b45309; }
.sci-check em{ color:var(--txt3); font-style:normal; font-size:.78rem; }

.sci-ul{ margin:.2rem 0 .6rem 1.1rem; padding:0; }
.sci-ul li{ margin:.15rem 0; font-size:.88rem; }

/* Integridade — score */
.integ-score{ padding:.6rem 0; }
.integ-score__num{ font-size:2.6rem; font-weight:800; line-height:1; }
.integ-score__lbl{ font-size:.95rem; font-weight:600; color:var(--txt2); margin-top:.2rem; }

/* Momentos — formulários inline */
.moment-actions{ display:flex; flex-wrap:wrap; gap:.8rem; align-items:flex-end; margin-top:.6rem; }
.moment-add{ display:flex; flex-wrap:wrap; gap:.4rem; align-items:center; }
.ox-inline-select,.ox-inline-num{ height:34px; border:1px solid var(--line); border-radius:8px; padding:0 .5rem; font-family:inherit; font-size:.85rem; }
.ox-inline-num{ width:90px; }
.plan-tool--inline{ margin:0; }

/* Licenças */
.lic-block{ border:1px solid var(--line); border-radius:10px; padding:.7rem .9rem; margin-bottom:.7rem; }

/* botão-link discreto para ações inline em tabelas */
.linkbtn{ background:none; border:0; color:var(--ox-blue,#1E5EFF); cursor:pointer; font:inherit; font-size:.82rem; padding:0; }

/* ============================================================================
   PLATAFORMA eCRF/EDC AVANÇADA — reset de hover + componentes
   ============================================================================ */
.card:hover,.table-row:hover,.button:hover,.action-button:hover,.study-card:hover,.ecrf-card:hover{ transform:none; box-shadow:none; filter:none; transition:none; }
.ecrf-sec{ font-size:.85rem; text-transform:uppercase; letter-spacing:.04em; color:var(--txt2); border-bottom:1px solid var(--line); padding-bottom:.3rem; margin:1.1rem 0 .4rem; }
.ox-field--err input,.ox-field--err select,.ox-field--err textarea{ border-color:#EF4444; }
.ox-err{ color:#b91c1c; font-size:.76rem; }

/* ============================================================================
   CAMADA INSTITUCIONAL — IA, interop, governança, SaaS
   ============================================================================ */
.card:hover,.table-row:hover,.button:hover,.action-button:hover,.study-card:hover,.module-card:hover{ transform:none; box-shadow:none; filter:none; transition:none; }
.cop-thread{ display:flex; flex-direction:column; gap:.6rem; max-height:420px; overflow:auto; }
.cop-msg{ border:1px solid var(--line); border-radius:10px; padding:.55rem .7rem; }
.cop-msg--user{ background:var(--soft,#f8fafc); }
.cop-msg--ai{ background:#eff4ff; }
.cop-msg__role{ display:block; font-size:.72rem; font-weight:600; color:var(--txt2); margin-bottom:.2rem; }
.cop-msg__body{ font-size:.88rem; line-height:1.5; white-space:normal; }
.cop-studies a{ display:block; padding:.15rem 0; font-size:.82rem; }

/* ============================================================================
   PROVENIÊNCIA, REPRODUTIBILIDADE, REDE E PRIVACIDADE
   ============================================================================ */
.card:hover,.table-row:hover,.button:hover,.action-button:hover,.dataset-card:hover,.network-card:hover{ transform:none; box-shadow:none; filter:none; transition:none; }

/* Topbar do voluntário → branca */
.vol-body .vol-top{ background:#fff; border-bottom:1px solid #e6eaf0; }
.vol-body .vol-top .adm-logo{ color:#0f1b33; }
.vol-body .vol-top .adm-logo b{ color:#1E5EFF; }
.vol-body .vol-top .pub-top__slogan{ color:#7a879e; }
.vol-body .vol-nav__link{ color:#46566f; }
.vol-body .vol-nav__link.is-active{ background:#eef2fb; color:#1E5EFF; }
.vol-body .vol-nav__link--out{ color:#7a879e; }

/* ====== Identidade institucional: ajustes de sidebar e topbar ====== */
/* Logo white-label no sidebar: compacto, proporção mantida, com respiro */
.adm-body .adm-lablogo{ max-height:32px; max-width:150px; width:auto; object-fit:contain; display:block; margin:2px auto 0; }
.adm-body .adm-side__brand{ padding-top:1rem; padding-bottom:.6rem; }
/* Busca da topbar não corta o placeholder */
.adm-body .adm-header__search{ min-width:210px; }
.adm-body .adm-header__search input{ min-width:0; text-overflow:ellipsis; }
