@import url("../fonts/fonts.css");

:root {
  --cor-primaria: #3387E9;
  --cor-primaria-hover: #1872DC;
  --cor-primaria-escura: #135AAD;
  --cor-primaria-suave: #E7EFF8;
  --cor-primaria-soft: rgba(51, 135, 233, 0.12);
  --cor-primaria-sombra: rgba(51, 135, 233, 0.15);
  --cor-primaria-texto: #1872DC;
  --texto-sobre-cor-primaria: #000000;

  --cor-ia: #7C3AED;
  --cor-ia-hover: #6D28D9;
  --cor-ia-texto: #5B21B6;
  --cor-ia-borda: #C4B5FD;
  --cor-ia-pastel-1: #FAF5FF;
  --cor-ia-pastel-2: #EDE9FE;
  --cor-ia-suave: #F3EEFF;
  --cor-ia-desabilitada: #A78BFA;

  --fundo: #F6F8FC;
  --superficie: #FFFFFF;
  --borda: #DDE3EC;
  --texto: #172033;
  --texto-suave: #5E6B82;
  --sucesso: #18794E;
  --perigo: #B42318;
  --aviso: #8A5A00;

  --fonte: "Inter", "Segoe UI", sans-serif;
  --fonte-titulo: "Sora", "Inter", sans-serif;
  --raio: 12px;
  --raio-sm: 8px;
  --sombra-sm: 0 8px 24px rgba(23, 32, 51, 0.08);
  --sidebar-w: 248px;
  --topbar-h: 60px;
}

a { color: inherit; }

.pagina-app { min-height: 100vh; }
.sidebar { position: fixed; inset: 0 auto 0 0; z-index: 40; width: var(--sidebar-w); display: flex; flex-direction: column; background: var(--superficie); border-right: 1px solid var(--borda); }
.sidebar-marca { display: flex; align-items: center; gap: 10px; padding: 18px 18px; border-bottom: 1px solid var(--borda); min-width: 0; }
.logo-quadro { width: 40px; height: 40px; flex: 0 0 auto; display: grid; place-items: center; border: 2px solid var(--cor-primaria); border-radius: 50%; color: var(--cor-primaria); font-size: 21px; }
.marca-texto { min-width: 0; }
.marca-nome { overflow: hidden; font: 700 15px/1.15 var(--fonte-titulo); letter-spacing: -.02em; text-overflow: ellipsis; white-space: nowrap; }
.marca-sub { color: var(--texto-suave); font-size: 11px; }
.sidebar-nav { flex: 1; overflow-y: auto; padding: 14px 12px; }
.grupo-label { padding: 12px 10px 5px; color: var(--texto-suave); font-size: 10.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.nav-item { display: flex; align-items: center; gap: 9px; padding: 8px 9px; border-radius: var(--raio-sm); color: var(--texto-suave); font-size: 13px; font-weight: 500; text-decoration: none; }
.nav-item:hover { background: var(--fundo); color: var(--texto); }
.nav-item.ativo { background: var(--cor-primaria-suave); color: var(--cor-primaria-escura); font-weight: 600; }
.nav-item i { font-size: 17px; }
.sidebar-rodape { padding: 12px; border-top: 1px solid var(--borda); }
.btn-home-side { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; padding: 9px 12px; border-radius: var(--raio-sm); background: linear-gradient(135deg,var(--cor-primaria),var(--cor-primaria-escura)); box-shadow: 0 2px 8px var(--cor-primaria-sombra); color: var(--texto-sobre-cor-primaria); font-size: 13px; font-weight: 600; text-decoration: none; }
.usuario-box { display: flex; align-items: center; gap: 9px; padding: 8px 6px; }
.avatar { width: 34px; height: 34px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 50%; background: linear-gradient(135deg,var(--cor-primaria),var(--cor-primaria-escura)); color: var(--texto-sobre-cor-primaria); font: 700 13px var(--fonte-titulo); }
.usuario-box .info { min-width: 0; flex: 1; }
.usuario-box .nome { overflow: hidden; font-size: 13px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.usuario-box .papel { overflow: hidden; color: var(--texto-suave); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.usuario-box form { margin: 0; }
.sidebar-resize { position: absolute; top: 0; right: -3px; z-index: 41; width: 6px; height: 100%; cursor: col-resize; }
.sidebar-resize:hover { background: var(--cor-primaria-soft); }
.sidebar-arrastando { cursor: col-resize; user-select: none; }
.app-corpo { min-height: 100vh; margin-left: var(--sidebar-w); }
.topbar { position: sticky; top: 0; z-index: 30; height: var(--topbar-h); display: flex; align-items: center; justify-content: space-between; padding: 0 24px; border-bottom: 1px solid var(--borda); background: rgba(255,255,255,.96); }
.titulo-pagina { font: 700 18px var(--fonte-titulo); letter-spacing: -.02em; }
.tb-acoes { display: flex; gap: 8px; }
.conteudo { min-height: calc(100vh - var(--topbar-h)); display: flex; flex-direction: column; padding: 22px 24px 32px; }
.sidebar-mobile { display: none; }
.btn-sm { min-height: 36px; padding: 0 13px; text-decoration: none; }
.btn-secundario { border-color: var(--borda); background: var(--superficie); color: var(--texto); text-decoration: none; }
.btn-secundario:hover { border-color: var(--cor-primaria); color: var(--cor-primaria-escura); }
.aviso-sucesso { border-color: #A6D5BC; background: #EFFAF4; color: var(--sucesso); }
.texto-suave { color: var(--texto-suave); }
.tabela-wrap { border: 1px solid var(--borda); border-radius: var(--raio); background: var(--superficie); }
.tabela-cab { display: flex; align-items: center; justify-content: space-between; padding: 13px 16px; border-bottom: 1px solid var(--borda); }
.tabela-cab h2 { margin: 0; font-size: 15px; }
.ta-menu-btn,.btn-icone { width: 32px; height: 32px; display: inline-grid; place-items: center; padding: 0; border: 1px solid transparent; border-radius: var(--raio-sm); background: transparent; color: var(--texto-suave); cursor: pointer; text-decoration: none; }
.ta-menu-btn { border-color: var(--borda); background: var(--superficie); }
.ta-menu-btn:hover,.btn-icone:hover { border-color: var(--cor-primaria); color: var(--cor-primaria); }
.ta-menu { position: relative; }
.ta-menu summary { list-style: none; }
.ta-menu summary::-webkit-details-marker { display: none; }
.ta-menu-painel { position: absolute; z-index: 20; top: 38px; right: 0; min-width: 210px; padding: 14px; display: grid; gap: 10px; border: 1px solid var(--borda); border-radius: var(--raio); background: var(--superficie); box-shadow: var(--sombra-sm); }
.ta-menu-painel label { display: flex; gap: 8px; align-items: center; font-size: .9rem; }
.btn-icone.desabilitado { opacity: .3; cursor: not-allowed; pointer-events: none; }
.tabela-scroll { overflow-x: auto; border-radius: 0 0 var(--raio) var(--raio); }
.tabela { width: 100%; border-collapse: collapse; background: var(--superficie); }
.tabela th { padding: 11px 14px; border-bottom: 1px solid var(--borda); color: var(--texto-suave); font-size: 11.5px; font-weight: 700; letter-spacing: .06em; text-align: left; text-transform: uppercase; white-space: nowrap; }
.tabela td { padding: 12px 14px; border-bottom: 1px solid var(--borda); font-size: 13px; vertical-align: middle; }
.tabela tbody tr:last-child td { border-bottom: 0; }
.tabela tbody tr:hover { background: #FAFBFD; }
.celula-acoes { display: inline-flex; align-items: center; justify-content: flex-end; gap: 4px; }
.status { display: inline-block; padding: 3px 8px; border-radius: 999px; font-size: 11px; font-weight: 700; }
.status-ativo { background: #E8F6EE; color: var(--sucesso); }
.status-inativo { background: #F1F3F6; color: var(--texto-suave); }
.amostra-cor { width: 26px; height: 26px; margin-right: 8px; padding: 0; border: 0; vertical-align: middle; }
.paginacao { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; margin-top: 12px; color: var(--texto-suave); font-size: 12px; }
.paginacao-controles { grid-column: 2; display: flex; align-items: center; gap: 5px; }
.paginacao > span { grid-column: 1; grid-row: 1; }
.vz { flex: 1; min-height: 300px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 32px 20px; text-align: center; }
.vz-icone { margin-bottom: 16px; color: var(--texto-suave); font-size: 40px; line-height: 1; }
.vz-titulo { margin: 0; font: 700 17px var(--fonte-titulo); letter-spacing: -.02em; }
.vz-sub { max-width: 400px; margin: 7px 0 0; color: var(--texto-suave); font-size: 13.5px; }
.form-card,.convite-pronto,.lista-perfis { padding: 18px; border: 1px solid var(--borda); border-radius: var(--raio); background: var(--superficie); }
.form-card { width: min(840px,100%); }
.form-card h2 { margin: 0 0 18px; font-size: 17px; }
.form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.form-span { grid-column: 1/-1; }
.form-acoes { display: flex; justify-content: flex-end; gap: 8px; margin-top: 16px; }
.separador { margin-top: 4px; border-bottom: 1px solid var(--borda); }
.separador span { position: relative; top: 9px; padding-right: 10px; background: var(--superficie); color: var(--texto-suave); font-size: 12px; font-weight: 700; }
fieldset.campo { min-width: 0; margin: 0; padding: 0; border: 0; }
fieldset.campo legend { margin-bottom: 5px; color: var(--texto-suave); font-size: 13px; font-weight: 600; }
.multi-opcoes { min-height: 38px; display: inline-flex; align-items: center; align-self: flex-start; gap: 4px; padding: 3px; border: 1px solid var(--borda); border-radius: 7px; background: var(--superficie); }
.opcao { height: 30px; display: inline-flex; align-items: center; padding: 0 10px; border: 1px solid transparent; border-radius: 5px; color: var(--texto-suave); cursor: pointer; font-size: 12px; font-weight: 600; white-space: nowrap; }
.opcao input { position: absolute; opacity: 0; }
.opcao.on,.opcao:has(input:checked) { border-color: var(--cor-primaria); background: var(--cor-primaria-suave); color: var(--cor-primaria-escura); }
.convite-pronto { margin-bottom: 16px; border-color: #A6D5BC; background: #F7FCF9; }
.convite-pronto p { margin: 3px 0 12px; color: var(--texto-suave); font-size: 13px; }
.copiar-linha { display: flex; gap: 8px; }
#novo-convite { margin-bottom: 16px; }
.duas-colunas { display: grid; grid-template-columns: 240px minmax(0,840px); gap: 16px; align-items: start; }
.lista-perfis h2 { margin: 0 0 12px; font-size: 15px; }
.perfil-item { display: flex; justify-content: space-between; gap: 8px; padding: 9px 10px; border-radius: var(--raio-sm); color: var(--texto); font-size: 13px; text-decoration: none; }
.perfil-item small { color: var(--texto-suave); }
.perfil-item:hover { background: var(--fundo); }
.perfil-item.ativo { background: var(--cor-primaria-suave); color: var(--cor-primaria-escura); font-weight: 600; }
.perfil-novo { margin-top: 8px; border-top: 1px solid var(--borda); border-radius: 0; color: var(--cor-primaria-escura); }
.matriz input[type=checkbox] { width: 18px; height: 18px; accent-color: var(--cor-primaria); }
.estado-central { text-align: center; }
.modal { width: min(620px,calc(100vw - 28px)); padding: 20px; border: 1px solid var(--borda); border-radius: var(--raio); background: var(--superficie); box-shadow: var(--sombra-sm); }
.modal::backdrop { background: rgba(23,32,51,.45); }
.modal-cab { display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--borda); padding-bottom: 12px; }
.modal-cab h2 { margin: 0; font-size: 17px; }
.boas-vindas { margin-bottom: 18px; }
.boas-vindas .login-selo { color: var(--cor-primaria-escura); }
.boas-vindas h1 { margin: 0; font-size: 26px; }
.modulos-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(210px,1fr)); gap: 14px; }
.modulo-card { min-height: 130px; display: flex; flex-direction: column; justify-content: center; gap: 8px; padding: 18px; border: 1px solid var(--borda); border-radius: var(--raio); background: var(--superficie); color: var(--texto); text-decoration: none; }
.modulo-card i { color: var(--cor-primaria); font-size: 28px; }
.modulo-card strong { font: 700 15px var(--fonte-titulo); }
.modulo-card span { color: var(--texto-suave); font-size: 11px; }
.modulo-card:not(.modulo-breve):hover { border-color: var(--cor-primaria); box-shadow: var(--sombra-sm); }
.modulo-breve { opacity: .72; }

@media (max-width: 800px) {
  .sidebar { transform: translateX(-100%); transition: transform 160ms ease; }
  .sidebar.aberta-mobile { transform: translateX(0); box-shadow: var(--sombra-sm); }
  .sidebar-mobile { position: fixed; top: 12px; left: 12px; z-index: 35; width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid var(--borda); border-radius: var(--raio-sm); background: var(--superficie); }
  .app-corpo { margin-left: 0; }
  .topbar { padding-left: 60px; padding-right: 14px; }
  .conteudo { padding: 16px 14px 24px; }
  .duas-colunas,.form-grid { grid-template-columns: 1fr; }
  .paginacao { grid-template-columns: 1fr; gap: 8px; text-align: center; }
  .paginacao > span,.paginacao-controles { grid-column: 1; justify-self: center; }
  .paginacao-controles { grid-row: 2; }
  .copiar-linha { flex-direction: column; }
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  color-scheme: light;
}

body {
  margin: 0;
  background: var(--fundo);
  color: var(--texto);
  font-family: var(--fonte);
  font-size: 15px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

button,
input,
select,
textarea {
  font-family: inherit;
}

h1,
h2,
h3,
h4,
h5 {
  color: var(--texto);
  font-family: var(--fonte-titulo);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.2;
}

:focus-visible {
  outline: 3px solid var(--cor-primaria-soft);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}

.pagina-login {
  min-height: 100vh;
}

.login-layout {
  display: grid;
  min-height: 100vh;
  grid-template-columns: minmax(320px, 1.05fr) minmax(420px, 0.95fr);
}

.login-contexto {
  display: flex;
  min-height: 100vh;
  flex-direction: column;
  justify-content: space-between;
  padding: clamp(32px, 5vw, 72px);
  background: var(--cor-primaria-escura);
  color: #FFFFFF;
  position: relative;
  overflow: hidden;
  min-width: 0;
}

.login-contexto::after {
  width: 420px;
  height: 420px;
  border: 72px solid rgba(255, 255, 255, 0.08);
  border-radius: 50%;
  content: "";
  position: absolute;
  right: -180px;
  bottom: -170px;
}

.login-marca {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: #FFFFFF;
  font-family: var(--fonte-titulo);
  font-size: 17px;
  font-weight: 800;
  letter-spacing: -0.02em;
  text-decoration: none;
  position: relative;
  z-index: 1;
}

.login-marca-icone,
.login-card-icone {
  display: inline-grid;
  width: 44px;
  height: 44px;
  border-radius: var(--raio-sm);
  place-items: center;
  font-size: 22px;
}

.login-marca-icone {
  background: rgba(255, 255, 255, 0.14);
  border: 1px solid rgba(255, 255, 255, 0.22);
}

.login-contexto-conteudo {
  max-width: 570px;
  position: relative;
  z-index: 1;
}

.login-selo {
  margin: 0 0 12px;
  color: inherit;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.login-contexto h1 {
  max-width: 540px;
  margin: 0;
  color: #FFFFFF;
  font-size: clamp(36px, 5vw, 64px);
  line-height: 1.06;
}

.login-contexto-conteudo > p:last-child {
  max-width: 520px;
  margin: 24px 0 0;
  color: rgba(255, 255, 255, 0.82);
  font-size: 17px;
}

.login-contexto-rodape {
  margin: 0;
  color: rgba(255, 255, 255, 0.7);
  font-size: 13px;
  position: relative;
  z-index: 1;
}

.login-acesso {
  display: grid;
  min-height: 100vh;
  padding: 32px;
  place-items: center;
  min-width: 0;
}

.login-card {
  width: 100%;
  max-width: 430px;
  min-width: 0;
  padding: clamp(28px, 4vw, 42px);
  border: 1px solid var(--borda);
  border-radius: calc(var(--raio) + 4px);
  background: var(--superficie);
  box-shadow: var(--sombra-sm);
}

.login-card-cabecalho {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 28px;
}

.login-card-icone {
  flex: 0 0 auto;
  background: var(--cor-primaria-suave);
  color: var(--cor-primaria-texto);
}

.login-card .login-selo {
  margin-bottom: 3px;
  color: var(--cor-primaria-texto);
}

.login-card h2 {
  margin: 0;
  font-size: 24px;
}

.login-formulario {
  display: grid;
  gap: 18px;
}

.campo {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.campo label {
  color: var(--texto-suave);
  font-size: 13px;
  font-weight: 600;
}

label.campo {
  color: var(--texto-suave);
  font-size: 13px;
  font-weight: 600;
}

.input {
  width: 100%;
  min-width: 0;
  height: 40px;
  padding: 0 12px;
  border: 1px solid var(--borda);
  border-radius: var(--raio-sm);
  background: var(--superficie);
  color: var(--texto);
  font-size: 14px;
  transition: border-color 160ms ease, box-shadow 160ms ease;
}

.input:hover {
  border-color: #B7C1D0;
}

.input:focus {
  border-color: var(--cor-primaria);
  box-shadow: 0 0 0 3px var(--cor-primaria-soft);
  outline: 0;
}

.login-acoes {
  display: flex;
  justify-content: flex-end;
  margin-top: 4px;
}

.btn {
  display: inline-flex;
  min-height: 40px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 18px;
  border: 1px solid transparent;
  border-radius: var(--raio-sm);
  cursor: pointer;
  font-size: 13px;
  font-weight: 500;
}

.btn-primario {
  min-width: 124px;
  background: var(--cor-primaria);
  color: var(--texto-sobre-cor-primaria);
  font-weight: 600;
  transition: background 160ms ease, transform 160ms ease;
}

.btn-primario:hover {
  background: var(--cor-primaria-hover);
}

.btn-primario:active {
  transform: translateY(1px);
}

.aviso {
  margin: 0 0 20px;
  padding: 11px 12px;
  border: 1px solid var(--borda);
  border-radius: var(--raio-sm);
  font-size: 13px;
}

.aviso-erro {
  border-color: #F2B8B5;
  background: #FEF3F2;
  color: var(--perigo);
}

.aviso-info {
  border-color: #B8D6F7;
  background: var(--cor-primaria-suave);
  color: var(--cor-primaria-escura);
}

.login-ajuda {
  margin: 24px 0 0;
  color: var(--texto-suave);
  font-size: 12px;
  text-align: center;
}

@media (max-width: 800px) {
  .login-layout {
    grid-template-columns: 1fr;
  }

  .login-contexto {
    min-height: auto;
    gap: 48px;
    padding: 28px;
  }

  .login-contexto h1 {
    font-size: clamp(30px, 9vw, 40px);
  }

  .login-acesso {
    min-height: auto;
    padding: 28px 20px 40px;
  }
}

@media (max-width: 460px) {
  .login-contexto-rodape {
    display: none;
  }

  .login-card {
    padding: 24px 20px;
  }

  .login-acoes,
  .btn-primario {
    width: 100%;
  }
}

.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.busca-hero { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 18px; }
.busca-hero .login-selo { margin: 0 0 6px; color: var(--cor-primaria-escura); }
.busca-hero h1 { margin: 0; font-size: clamp(24px,3vw,32px); }
.busca-hero p:last-child { margin: 7px 0 0; color: var(--texto-suave); }
.acervo-resumo { display: grid; grid-template-columns: auto auto; gap: 0 8px; min-width: 190px; padding: 14px 16px; border: 1px solid var(--borda); border-radius: var(--raio); background: var(--superficie); }
.acervo-resumo strong { color: var(--cor-primaria-escura); font: 700 16px var(--fonte-titulo); text-align: right; }
.acervo-resumo span { color: var(--texto-suave); font-size: 12px; }
.busca-form { position: relative; z-index: 10; margin-bottom: 20px; padding: 14px; border: 1px solid var(--borda); border-radius: var(--raio); background: var(--superficie); box-shadow: 0 4px 16px rgba(23,32,51,.04); }
.busca-principal { display: flex; align-items: center; gap: 10px; }
.busca-principal > i { margin-left: 4px; color: var(--cor-primaria); font-size: 22px; }
.busca-principal input[type=search] { min-width: 0; flex: 1; height: 44px; border: 0; background: transparent; color: var(--texto); font-size: 15px; outline: 0; }
.busca-principal input[type=search]::placeholder { color: #7D899D; }
.busca-principal .btn { min-height: 42px; }
.busca-principal button:disabled { cursor: wait; opacity: .75; }
.busca-status { display: inline-flex; align-items: center; gap: 5px; color: var(--texto-suave); font-size: 11px; white-space: nowrap; }
.busca-status[hidden] { display: none; }
.busca-status i { color: var(--cor-primaria); font-size: 17px; animation: girar 800ms linear infinite; }
@keyframes girar { to { transform: rotate(360deg); } }
.filtros-linha { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 9px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--borda); }
.filtro-grupo { display: grid; gap: 4px; }
.filtro-label,.filtro-codigo > span,.filtro-ordem legend,.filtro-tamanho legend { color: var(--texto-suave); font-size: 11px !important; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.filtro-menu { position: relative; }
.filtro-menu summary { min-height: 38px; display: flex; align-items: center; gap: 7px; padding: 0 11px; border: 1px solid var(--borda); border-radius: var(--raio-sm); color: var(--texto-suave); cursor: pointer; font-size: 12px; font-weight: 600; list-style: none; }
.filtro-menu summary::-webkit-details-marker { display: none; }
.filtro-menu[open] summary,.filtro-menu summary:hover { border-color: var(--cor-primaria); color: var(--cor-primaria-escura); }
.filtro-contagem { min-width: 18px; height: 18px; display: inline-grid; place-items: center; border-radius: 999px; background: var(--cor-primaria); color: var(--texto-sobre-cor-primaria); font-size: 10px; }
.filtro-painel { position: absolute; top: 43px; left: 0; z-index: 25; min-width: 180px; max-height: 280px; overflow-y: auto; display: grid; gap: 2px; padding: 8px; border: 1px solid var(--borda); border-radius: var(--raio-sm); background: var(--superficie); box-shadow: var(--sombra-sm); }
.filtro-painel-largo { min-width: 260px; }
.filtro-painel label { display: flex; align-items: center; gap: 8px; padding: 7px 8px; border-radius: 6px; cursor: pointer; font-size: 12px; }
.filtro-painel label:hover { background: var(--fundo); }
.filtro-painel input { width: 16px; height: 16px; accent-color: var(--cor-primaria); }
.filtro-codigo { width: 155px; display: grid; gap: 4px; }
.filtro-codigo .input { height: 38px; text-transform: uppercase; }
.limpar-filtros { min-height: 38px; display: inline-flex; align-items: center; padding: 0 8px; color: var(--cor-primaria-escura); font-size: 12px; font-weight: 600; }
.estado-busca { min-height: 300px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 32px; border: 1px dashed var(--borda); border-radius: var(--raio); background: rgba(255,255,255,.5); text-align: center; }
.estado-busca > i { color: var(--cor-primaria); font-size: 42px; }
.estado-busca h2 { margin: 13px 0 0; font-size: 18px; }
.estado-busca p { max-width: 480px; margin: 7px 0 0; color: var(--texto-suave); font-size: 13px; }
.estado-erro { border-color: #E9B8B4; background: #FFF8F7; }
.estado-erro > i,.estado-erro h2 { color: var(--perigo); }
.resultados-cab { display: flex; justify-content: space-between; margin: 2px 0 10px; }
.resultados-cab h2 { margin: 0; font-size: 17px; }
.resultados-cab p { margin: 2px 0 0; color: var(--texto-suave); font-size: 12px; }
.resultados-lista { display: grid; gap: 10px; }
.resultado-card { padding: 16px 18px; border: 1px solid var(--borda); border-radius: var(--raio); background: var(--superficie); }
.resultado-card:hover { border-color: #B9CBE3; box-shadow: 0 5px 18px rgba(23,32,51,.05); }
.resultado-topo { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.resultado-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.tag { display: inline-flex; align-items: center; min-height: 24px; padding: 2px 8px; border-radius: 999px; background: #F0F3F7; color: var(--texto-suave); font-size: 10.5px; font-weight: 700; }
.tag-bncc { background: var(--cor-primaria-suave); color: var(--cor-primaria-escura); }
.resultado-pagina { flex: 0 0 auto; color: var(--cor-primaria-escura); font-size: 11px; font-weight: 700; }
.resultado-card h3 { margin: 12px 0 6px; font-size: 15px; }
.resultado-trecho { display: -webkit-box; overflow: hidden; margin: 8px 0 14px; color: #344058; font-size: 13px; line-height: 1.62; -webkit-box-orient: vertical; -webkit-line-clamp: 5; }
.resultado-card footer { display: flex; align-items: center; gap: 8px; padding-top: 11px; border-top: 1px solid #EDF0F4; color: var(--texto-suave); }
.resultado-card footer > i { color: var(--cor-primaria); font-size: 18px; }
.resultado-card footer span { min-width: 0; display: grid; }
.resultado-card footer strong,.resultado-card footer small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.resultado-card footer strong { color: var(--texto); font-size: 11.5px; }
.resultado-card footer small { font-size: 10.5px; }

@media (max-width: 800px) {
  .busca-hero { align-items: stretch; flex-direction: column; }
  .acervo-resumo { align-self: stretch; }
  .busca-principal { align-items: stretch; flex-wrap: wrap; }
  .busca-principal > i { align-self: center; }
  .busca-principal input[type=search] { width: calc(100% - 42px); }
  .busca-principal .btn { width: 100%; }
  .busca-status { order: 3; }
  .filtro-codigo { width: 100%; }
  .filtro-menu { position: static; }
  .filtro-painel { left: 14px; right: 14px; min-width: 0; }
  .resultado-topo { align-items: flex-start; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) { .busca-status i { animation: none; } }

.nav-item-ia i,.modulo-card-ia > i { color: var(--cor-ia); }
.nav-item-ia.ativo { background: var(--cor-ia-suave); color: var(--cor-ia-texto); }
.assistente-hero { margin-bottom: 18px; padding: 20px 22px; border: 1px solid var(--cor-ia-borda); border-radius: var(--raio); background: linear-gradient(135deg,var(--cor-ia-pastel-1),var(--cor-ia-pastel-2)); }
.assistente-hero h1 { margin: 10px 0 5px; font-size: clamp(24px,3vw,32px); }
.assistente-hero p { max-width: 720px; margin: 0; color: var(--cor-ia-texto); font-size: 13px; }
.tag-ia { display: inline-flex; min-height: 24px; align-items: center; gap: 5px; padding: 2px 8px; border: 1px solid var(--cor-ia-borda); border-radius: 999px; background: var(--cor-ia-suave); color: var(--cor-ia-texto); font-size: 10.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.assistente-layout { display: grid; grid-template-columns: minmax(0,1fr) 280px; gap: 16px; align-items: start; }
.assistente-principal { min-width: 0; }
.assistente-pergunta,.assistente-historico { padding: 16px; border: 1px solid var(--borda); border-radius: var(--raio); background: var(--superficie); box-shadow: var(--sombra-sm); }
.assistente-pergunta { display: grid; gap: 10px; }
.assistente-pergunta > label,.turmas-opcoes legend { color: var(--texto); font-size: 13px; font-weight: 600; }
.assistente-pergunta textarea { width: 100%; min-height: 92px; resize: vertical; padding: 11px 12px; border: 1px solid var(--borda); border-radius: var(--raio-sm); color: var(--texto); font: 14px/1.5 var(--fonte); }
.assistente-pergunta textarea:focus { border-color: var(--cor-primaria); box-shadow: 0 0 0 3px var(--cor-primaria-soft); outline: 0; }
.turmas-opcoes { min-width: 0; margin: 2px 0 0; padding: 0; border: 0; }
.turmas-opcoes legend { margin-bottom: 7px; }
.turmas-lista { display: flex; flex-wrap: wrap; gap: 7px; }
.turma-opcao { min-height: 40px; display: flex; align-items: center; gap: 7px; padding: 6px 10px; border: 1px solid var(--borda); border-radius: var(--raio-sm); cursor: pointer; }
.turma-opcao.on { border-color: var(--cor-primaria); background: var(--cor-primaria-suave); }
.turma-opcao input { width: 15px; height: 15px; accent-color: var(--cor-primaria); }
.turma-opcao span { display: grid; }
.turma-opcao strong { font-size: 12px; }
.turma-opcao small { color: var(--texto-suave); font-size: 10.5px; }
.assistente-acoes { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 4px; }
.assistente-acoes > span { color: var(--texto-suave); font-size: 11px; }
.assistente-resultado { min-height: 260px; margin-top: 16px; }
.loading-inline { min-height: 260px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; padding: 48px 20px; border: 1px solid var(--borda); border-radius: var(--raio); background: var(--superficie); }
.spinner-circle { width: 44px; height: 44px; border: 4px solid var(--borda); border-top-color: var(--cor-ia); border-radius: 50%; animation: girar 800ms linear infinite; }
.loading-text { color: var(--cor-ia-texto); font-size: 14px; font-weight: 600; text-align: center; }
.fontes-cabecalho { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 10px; }
.secao-selo { margin: 0 0 3px; color: var(--texto-suave); font-size: 10.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.fontes-cabecalho h2 { margin: 0; font-size: 17px; }
.btn-ia { min-width: 184px; background: var(--cor-ia); color: #FFF; font-weight: 700; }
.btn-ia:hover { background: var(--cor-ia-hover); }
.btn-ia:disabled { background: var(--cor-ia-desabilitada); cursor: wait; }
.acao-indisponivel { max-width: 260px; margin: 0; color: var(--texto-suave); font-size: 11.5px; text-align: right; }
.fontes-contexto { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; align-items: stretch; }
.fonte-contexto { height: 100%; display: flex; flex-direction: column; gap: 9px; padding: 16px; border: 1px solid var(--borda); border-radius: var(--raio); background: var(--superficie); }
.fonte-contexto h3 { margin: 0; font-size: 14px; }
.fonte-contexto > p { display: -webkit-box; overflow: hidden; margin: 0; color: #344058; font-size: 12.5px; line-height: 1.55; -webkit-box-orient: vertical; -webkit-line-clamp: 5; }
.fonte-contexto footer { display: flex; align-items: center; gap: 6px; margin-top: auto; padding-top: 9px; border-top: 1px solid #EDF0F4; color: var(--texto-suave); font-size: 10.5px; }
.sugestao-ia { margin-top: 16px; padding: 18px; border: 1px solid var(--cor-ia-borda); border-radius: var(--raio); background: linear-gradient(135deg,var(--cor-ia-pastel-1),var(--cor-ia-pastel-2)); }
.sugestao-ia > header h2 { margin: 9px 0 14px; color: var(--cor-ia-texto); font-size: 21px; }
.sugestao-grade { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.sugestao-grade section { padding: 14px; border: 1px solid rgba(196,181,253,.8); border-radius: var(--raio-sm); background: rgba(255,255,255,.72); }
.sugestao-grade h3 { margin: 0 0 6px; color: var(--cor-ia-texto); font-size: 12px; }
.sugestao-grade p { margin: 0; color: var(--texto); font-size: 12.5px; line-height: 1.55; }
.sugestao-habilidades { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.sugestao-fontes { margin-top: 12px; padding: 12px 14px; border: 1px solid var(--cor-ia-borda); border-radius: var(--raio-sm); background: rgba(255,255,255,.62); }
.sugestao-fontes h3 { margin: 0 0 6px; color: var(--cor-ia-texto); font-size: 12px; }
.sugestao-fontes ul { margin: 0; padding-left: 18px; color: var(--texto); font-size: 11.5px; line-height: 1.5; }
.sugestao-ia > footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 10px; margin-top: 14px; }
.sugestao-ia > footer p { flex: 1; margin: 0; color: var(--cor-ia-texto); font-size: 11.5px; }
.rascunho-status { flex-basis: 100%; color: var(--sucesso); font-size: 12px; font-weight: 600; text-align: right; }
.rascunho-aula { display: grid; gap: 11px; margin-top: 16px; padding: 18px; border: 1px solid var(--borda); border-radius: var(--raio); background: var(--superficie); box-shadow: var(--sombra-sm); }
.rascunho-aula[hidden] { display: none; }
.rascunho-cab { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.rascunho-cab h2 { margin: 0; font-size: 17px; }
.rascunho-cab > span { padding: 3px 7px; border-radius: 999px; background: var(--fundo); color: var(--texto-suave); font-size: 10.5px; font-weight: 700; }
.rascunho-aula label { display: grid; gap: 5px; color: var(--texto); font-size: 12px; font-weight: 600; }
.rascunho-aula input,.rascunho-aula textarea { width: 100%; padding: 9px 10px; border: 1px solid var(--borda); border-radius: var(--raio-sm); color: var(--texto); font: 12.5px/1.45 var(--fonte); resize: vertical; }
.rascunho-aula input:focus,.rascunho-aula textarea:focus { border-color: var(--cor-primaria); box-shadow: 0 0 0 3px var(--cor-primaria-soft); outline: 0; }
.rascunho-aula input[readonly] { background: var(--fundo); color: var(--texto-suave); }
.rascunho-aula > p { margin: 0; color: var(--texto-suave); font-size: 11.5px; }
.rascunho-grade { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.assistente-historico { position: sticky; top: calc(var(--topbar-h) + 16px); }
.historico-cab { display: flex; align-items: center; justify-content: space-between; padding-bottom: 10px; border-bottom: 1px solid var(--borda); }
.historico-cab .secao-selo { margin: 0; }
.historico-cab strong { color: var(--texto-suave); font-size: 11px; }
.historico-lista { display: grid; }
.historico-lista article { padding: 12px 0; border-bottom: 1px solid #EDF0F4; }
.historico-lista article:last-child { border-bottom: 0; }
.historico-lista h3 { margin: 7px 0 4px; font-size: 12.5px; line-height: 1.35; }
.historico-lista time { color: var(--texto-suave); font-size: 10.5px; }
.historico-vazio { min-height: 180px; display: grid; place-items: center; align-content: center; gap: 7px; color: var(--texto-suave); text-align: center; }
.historico-vazio i { font-size: 28px; }
.historico-vazio p { margin: 0; font-size: 12px; }
.historico-paginas { display: flex; align-items: center; justify-content: center; gap: 7px; padding-top: 10px; border-top: 1px solid var(--borda); color: var(--texto-suave); font-size: 11px; }
.estado-assistente { border-color: var(--cor-ia-borda); background: var(--cor-ia-pastel-1); }
.estado-assistente > i,.estado-assistente h2 { color: var(--cor-ia-texto); }

@media (max-width: 980px) {
  .assistente-layout { grid-template-columns: 1fr; }
  .assistente-historico { position: static; }
}
@media (max-width: 680px) {
  .assistente-hero { padding: 17px; }
  .assistente-acoes,.fontes-cabecalho { align-items: stretch; flex-direction: column; }
  .assistente-acoes .btn,.fontes-cabecalho .btn { width: 100%; }
  .fontes-contexto,.sugestao-grade,.rascunho-grade { grid-template-columns: 1fr; }
  .sugestao-ia > footer { align-items: stretch; flex-direction: column; }
  .sugestao-ia > footer .btn { width: 100%; }
  .rascunho-status { text-align: left; }
}

.dashboard-hero { display: flex; align-items: center; justify-content: space-between; gap: 22px; margin-bottom: 16px; padding: 22px; border-radius: var(--raio); background: linear-gradient(135deg,var(--cor-primaria-suave),var(--superficie)); border: 1px solid var(--borda); }
.dashboard-hero h1 { margin: 4px 0 7px; font-size: 25px; }
.dashboard-hero p { margin: 0; color: var(--texto-suave); }
.dashboard-hero > i { color: var(--cor-primaria); font-size: 58px; }
.dashboard-kpis { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin-bottom: 16px; }
.dashboard-kpis article { display: flex; align-items: center; gap: 13px; padding: 16px; border: 1px solid var(--borda); border-radius: var(--raio); background: var(--superficie); }
.dashboard-kpis article > i { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 10px; background: var(--cor-primaria-suave); color: var(--cor-primaria-texto); font-size: 21px; }
.dashboard-kpis div { display: grid; }
.dashboard-kpis strong { font: 700 22px var(--fonte-titulo); }
.dashboard-kpis span { color: var(--texto-suave); font-size: 11.5px; }
.dashboard-grade { display: grid; grid-template-columns: minmax(0,1.6fr) minmax(260px,.7fr); gap: 16px; }
.dashboard-recentes,.dashboard-atalhos { padding: 18px; border: 1px solid var(--borda); border-radius: var(--raio); background: var(--superficie); }
.secao-cab { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.secao-cab h2,.dashboard-atalhos h2 { margin: 2px 0 0; font-size: 17px; }
.secao-cab > a { color: var(--cor-primaria-texto); font-size: 12px; font-weight: 700; text-decoration: none; }
.recentes-lista { display: grid; }
.recentes-lista > a { display: grid; grid-template-columns: 48px minmax(0,1fr) auto auto; gap: 10px; align-items: center; padding: 11px 4px; border-top: 1px solid var(--borda); text-decoration: none; }
.recentes-lista time { color: var(--cor-primaria-texto); font-size: 12px; font-weight: 700; }
.recentes-lista span { display: grid; min-width: 0; }
.recentes-lista strong { overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.recentes-lista small { color: var(--texto-suave); font-size: 11px; }
.recentes-lista > a > i:last-child { color: var(--texto-suave); }
.marca-ia-mini { color: var(--cor-ia); }
.dashboard-vazio { min-height: 230px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.dashboard-vazio > i { color: var(--texto-suave); font-size: 38px; }
.dashboard-vazio h3 { margin: 10px 0 4px; font-size: 15px; }
.dashboard-vazio p { margin: 0 0 12px; color: var(--texto-suave); font-size: 12px; }
.dashboard-atalhos { align-self: start; }
.dashboard-atalhos > a { display: flex; align-items: center; gap: 10px; margin-top: 9px; padding: 11px; border: 1px solid var(--borda); border-radius: var(--raio-sm); text-decoration: none; }
.dashboard-atalhos > a:hover { border-color: var(--cor-primaria); }
.dashboard-atalhos > a > i { color: var(--cor-primaria-texto); font-size: 20px; }
.dashboard-atalhos span { display: grid; }
.dashboard-atalhos strong { font-size: 12.5px; }
.dashboard-atalhos small { color: var(--texto-suave); font-size: 10.5px; }
.identidade-layout { display: grid; grid-template-columns: minmax(0,760px) minmax(260px,340px); gap: 18px; align-items: start; }
.identidade-form { width: 100%; }
.identidade-form h1 { margin: 2px 0 5px; font-size: 22px; }
.identidade-form .form-cab p:last-child { margin: 0; color: var(--texto-suave); font-size: 12.5px; }
.input-cor { font-family: ui-monospace,"Cascadia Mono",monospace; text-transform: uppercase; }
.identidade-preview { --preview-color: var(--cor-primaria); display: grid; gap: 13px; padding: 18px; border: 1px solid var(--borda); border-radius: var(--raio); background: var(--superficie); box-shadow: var(--sombra-sm); }
.identidade-preview h2 { margin: 0; font-size: 17px; }
.preview-marca { display: flex; align-items: center; gap: 9px; padding: 12px; border: 1px solid var(--borda); border-radius: var(--raio-sm); }
.preview-marca span { width: 34px; height: 34px; display: grid; place-items: center; border: 2px solid var(--preview-color); border-radius: 50%; color: var(--preview-color); }
.preview-marca strong { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.preview-botao { min-height: 40px; border: 0; border-radius: var(--raio-sm); background: var(--preview-color); color: var(--preview-on-color,#000); font-weight: 700; }
.preview-link { color: var(--preview-text-color,var(--cor-primaria-texto)); font-size: 12px; font-weight: 700; text-decoration: none; }
.preview-contraste { display: flex; justify-content: space-between; gap: 8px; padding: 10px; border-radius: var(--raio-sm); background: var(--preview-color); color: var(--preview-on-color,#000); font-size: 11px; }
.identidade-preview > small { color: var(--texto-suave); font-size: 10.5px; }
@media (max-width: 900px) { .dashboard-grade,.identidade-layout { grid-template-columns: 1fr; } .identidade-preview { width: 100%; } }
@media (max-width: 680px) { .dashboard-hero { padding: 17px; } .dashboard-hero > i { display: none; } .dashboard-hero h1 { font-size: 21px; } .dashboard-kpis { grid-template-columns: 1fr; } .recentes-lista > a { grid-template-columns: 42px minmax(0,1fr) auto; } .recentes-lista .marca-ia-mini { display: none; } }
@media (prefers-reduced-motion: reduce) { .spinner-circle { animation: none; } }

.pagina-cab { margin-bottom: 16px; }
.pagina-cab h1,.form-cab h1 { margin: 3px 0 5px; font-size: 24px; }
.pagina-cab p:last-child,.form-cab p:last-child { margin: 0; color: var(--texto-suave); font-size: 12.5px; }
.cards-operacionais { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.card-operacional { min-height: 190px; display: flex; flex-direction: column; gap: 10px; padding: 17px; border: 1px solid var(--borda); border-radius: var(--raio); background: var(--superficie); box-shadow: var(--sombra-sm); }
.card-operacional h2 { margin: 0; font-size: 17px; }
.card-operacional > p { margin: 0; color: var(--texto-suave); font-size: 12.5px; }
.card-operacional footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; padding-top: 11px; border-top: 1px solid var(--borda); color: var(--texto-suave); font-size: 11.5px; }
.form-card-menor { margin: 0 auto; }
.form-cab { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.form-aula { width: min(980px,100%); margin: 0 auto; }
.textarea { height: auto; line-height: 1.5; resize: vertical; }
.campo small { color: var(--texto-suave); font-size: 10.5px; font-weight: 400; }
.fontes-selecionadas { display: grid; gap: 5px; padding: 12px; border: 1px solid var(--borda); border-radius: var(--raio-sm); background: var(--fundo); font-size: 11.5px; }
.fontes-selecionadas span { color: var(--texto-suave); }
.filtros-aulas { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px; margin-bottom: 14px; padding: 12px; border: 1px solid var(--borda); border-radius: var(--raio); background: var(--superficie); }
.filtros-aulas > label { display: grid; gap: 4px; color: var(--texto-suave); font-size: 11px; font-weight: 700; text-transform: uppercase; }
.filtros-aulas .input { height: 38px; min-width: 140px; }
.filtro-opcoes { position: relative; }
.filtro-opcoes summary { min-width: 120px; height: 38px; display: flex; align-items: center; padding: 0 10px; border: 1px solid var(--borda); border-radius: var(--raio-sm); background: var(--superficie); color: var(--texto); cursor: pointer; font-size: 12px; }
.filtro-opcoes-painel { position: absolute; z-index: 5; top: 43px; left: 0; min-width: 190px; max-height: 260px; overflow: auto; display: grid; gap: 4px; padding: 8px; border: 1px solid var(--borda); border-radius: var(--raio-sm); background: var(--superficie); box-shadow: var(--sombra); }
.filtro-opcoes-painel label { display: flex; align-items: center; gap: 7px; padding: 7px; border-radius: 5px; font-size: 12px; cursor: pointer; }
.filtro-opcoes-painel label:hover { background: var(--fundo); }
.lista-aulas { display: grid; gap: 9px; }
.aula-card { display: grid; grid-template-columns: 64px minmax(0,1fr) auto; gap: 14px; align-items: center; padding: 14px; border: 1px solid var(--borda); border-radius: var(--raio); background: var(--superficie); }
.aula-data { display: grid; place-items: center; align-content: center; min-height: 58px; border-radius: var(--raio-sm); background: var(--cor-primaria-suave); color: var(--cor-primaria-escura); }
.aula-data strong { font: 700 22px/1 var(--fonte-titulo); }
.aula-data span { margin-top: 4px; font-size: 9.5px; }
.aula-conteudo h2 { margin: 7px 0 4px; font-size: 15px; }
.aula-conteudo p { margin: 0; color: var(--texto-suave); font-size: 11.5px; }
.aula-acoes { display: flex; align-items: center; gap: 6px; }
@media (max-width: 900px) { .cards-operacionais { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 680px) {
  .cards-operacionais { grid-template-columns: 1fr; }
  .form-cab { flex-direction: column; }
  .filtros-aulas { align-items: stretch; flex-direction: column; }
  .filtros-aulas .input,.filtro-opcoes summary,.filtros-aulas .btn { width: 100%; }
  .aula-card { grid-template-columns: 54px minmax(0,1fr); }
  .aula-acoes { grid-column: 1/-1; justify-content: flex-end; }
}
