/*
 * Estilos comuns aos sistemas UniGov (o mesmo arquivo da intranet) mais os do Obras, no fim.
 * Usam as variáveis de cor do Filament (--primary-*, --gray-*), então acompanham
 * a cor da prefeitura e o modo escuro.
 * As classes sm-* são as mesmas do SisMetas, para os sistemas terem a mesma cara.
 */
/* ---------- Listas e tabelas (padrão SisMetas) ---------- */
.sm-lista { list-style: none; margin: 1rem 0 0; padding: 0; }
.sm-lista li + li { border-top: 1px solid var(--gray-100); }
.dark .sm-lista li + li { border-top-color: rgb(255 255 255 / .05); }
.sm-linha { display: flex; align-items: center; gap: .75rem; padding: .5rem; border-radius: .5rem; color: inherit; text-decoration: none; }
a.sm-linha:hover { background: var(--gray-50); }
.dark a.sm-linha:hover { background: rgb(255 255 255 / .05); }
.sm-linha .sm-icone { width: 1.25rem; height: 1.25rem; flex-shrink: 0; color: var(--gray-400); }
.sm-linha .sm-texto, .sm-texto { flex: 1; min-width: 0; }
.sm-titulo { display: block; font-size: .875rem; font-weight: 500; color: var(--gray-950); }
.dark .sm-titulo { color: #fff; }
.sm-sub { display: block; font-size: .75rem; color: var(--gray-500); }
.dark .sm-sub { color: var(--gray-400); }
.sm-num { font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.sm-vazio { font-size: .8125rem; color: var(--gray-500); padding: .25rem .5rem; }
.sm-sigla { font-size: .75rem; font-weight: 700; color: var(--primary-600); letter-spacing: .02em; }
.dark .sm-sigla { color: var(--primary-400); }

.in-mt { margin-top: 1.5rem; }
.in-rotulo { font-size: .75rem; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: var(--gray-500); margin: 0 0 .25rem; }
.in-colunas-2 { display: grid; gap: 1.5rem; }
@media (min-width: 640px) { .in-colunas-2 { grid-template-columns: 1fr 1fr; } }
.in-cor-primary { color: var(--primary-600); }
.in-cor-success { color: var(--success-600); }
.in-cor-warning { color: var(--warning-600); }
.in-cor-danger { color: var(--danger-600); }
.in-cor-info { color: var(--info-600); }
/* ---------- Marca no topo ---------- */
.in-marca { display: inline-flex; align-items: center; gap: .625rem; height: 100%; }
.in-marca-brasao { height: 100%; width: auto; object-fit: contain; }
.in-marca-sigla { display: grid; place-items: center; height: 2.25rem; width: 2.25rem; border-radius: .625rem; background: var(--primary-600); color: #fff; font-weight: 700; font-size: 1.125rem; }
.in-marca-texto { display: flex; flex-direction: column; line-height: 1.1; }
.in-marca-nome { font-weight: 700; font-size: 1rem; color: var(--gray-950); letter-spacing: -.01em; }
.dark .in-marca-nome { color: #fff; }
.in-marca-pref { font-size: .75rem; color: var(--gray-500); white-space: nowrap; }
/* ---------- Lançador de sistemas e blocos ---------- */
.in-lancador { padding: .75rem; }
.in-lancador-titulo { font-size: .75rem; font-weight: 600; color: var(--gray-500); padding: 0 .25rem .5rem; }
.in-blocos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .25rem; }
.in-bloco { display: flex; flex-direction: column; align-items: center; gap: .375rem; padding: .625rem .25rem; border-radius: .75rem; text-align: center; color: inherit; text-decoration: none; transition: background .15s; }
.in-bloco:hover { background: var(--gray-50); }
.dark .in-bloco:hover { background: rgb(255 255 255 / .05); }
.in-bloco-icone { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: .75rem; background: var(--primary-50); color: var(--primary-600); }
.dark .in-bloco-icone { background: rgb(255 255 255 / .06); color: var(--primary-400); }
.in-bloco-icone svg { width: 1.375rem; height: 1.375rem; }
.in-bloco-texto { font-size: .75rem; font-weight: 500; line-height: 1.2; color: var(--gray-700); }
.dark .in-bloco-texto { color: var(--gray-200); }
.in-atalho-img { width: 1.25rem; height: 1.25rem; object-fit: contain; flex-shrink: 0; }
/* ---------- Página inicial ---------- */
.in-inicio { display: grid; gap: 1.5rem; align-items: start; }
@media (min-width: 1280px) { .in-inicio { grid-template-columns: minmax(0, 1fr) 22rem; } }
.in-inicio-principal { min-width: 0; max-width: 46rem; width: 100%; margin-inline: auto; }
.in-inicio-lateral { display: flex; flex-direction: column; gap: 1.5rem; }
@media (min-width: 1280px) { .in-inicio-lateral { position: sticky; top: 5rem; } }
.in-centro { display: flex; flex-direction: column; gap: 1rem; }

.in-pendencia-num { display: grid; place-items: center; min-width: 2rem; height: 2rem; padding: 0 .375rem; border-radius: .5rem; font-weight: 700; font-size: .875rem; font-variant-numeric: tabular-nums; background: var(--gray-100); }
.dark .in-pendencia-num { background: rgb(255 255 255 / .08); }
.in-tudo-em-dia { display: flex; align-items: center; gap: .5rem; font-size: .875rem; color: var(--gray-500); }
.in-tudo-em-dia svg { width: 1.5rem; height: 1.5rem; color: var(--success-500); }

.in-aniv-hoje { display: flex; flex-direction: column; gap: .5rem; padding: .75rem; border-radius: .75rem; background: linear-gradient(135deg, var(--primary-50), var(--warning-50)); }
.dark .in-aniv-hoje { background: rgb(255 255 255 / .05); }
.in-aniv-hoje-item { display: flex; align-items: center; gap: .75rem; }

.in-feriado { display: flex; align-items: center; gap: .75rem; padding: .375rem 0; }
.in-data-bloco { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; border-radius: .625rem; background: var(--primary-50); color: var(--primary-700); line-height: 1; flex-shrink: 0; }
.dark .in-data-bloco { background: rgb(255 255 255 / .06); color: var(--primary-300); }
.in-data-dia { font-weight: 700; font-size: 1rem; }
.in-data-mes { font-size: .625rem; text-transform: uppercase; font-weight: 600; letter-spacing: .04em; }
/* ---------- Do SisMetas: progresso e alertas ---------- */
.sm-progresso { position: relative; height: .5rem; min-width: 5rem; border-radius: .25rem; background: var(--gray-100); }
.dark .sm-progresso { background: rgb(255 255 255 / .1); }
.sm-progresso > i { position: absolute; inset: 0 auto 0 0; border-radius: .25rem; background: var(--primary-500); }
.sm-progresso > b { position: absolute; top: -3px; bottom: -3px; width: 2px; border-radius: 1px; background: var(--gray-700); }
.dark .sm-progresso > b { background: var(--gray-200); }
.sm-alerta + .sm-alerta { margin-top: 1rem; }
.sm-alerta h4 { display: flex; justify-content: space-between; align-items: baseline; gap: .5rem; margin: 0 0 .25rem; font-size: .8125rem; font-weight: 600; color: var(--gray-950); }
.dark .sm-alerta h4 { color: #fff; }
/* ---------- Menu lateral compacto ----------
 * O Filament separa os grupos com 1,75rem; aqui ficam juntos, como num menu comum,
 * com um fio discreto entre os grupos para continuar fácil de achar cada um.
 */
.fi-sidebar-nav-groups { row-gap: .125rem; }
.fi-sidebar-nav { row-gap: .75rem; }
.fi-sidebar-group { row-gap: 0; }
.fi-sidebar-group + .fi-sidebar-group { border-top: 1px solid var(--gray-100); padding-top: .125rem; }
.dark .fi-sidebar-group + .fi-sidebar-group { border-top-color: rgb(255 255 255 / .05); }
.fi-sidebar-group-btn { padding: .4375rem .5rem; }
.fi-sidebar-group-items { row-gap: .0625rem; }
.fi-sidebar-item-btn { padding: .4375rem .5rem; }

/* ---------- Reuniões: a sala (tela da reunião) ---------- */
.rn-sala { display: flex; flex-direction: column; gap: 1rem; }
.rn-presenca { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; padding: .625rem .875rem; border-radius: .75rem; background: #fff; outline: 1px solid var(--gray-200); }
.dark .rn-presenca { background: var(--gray-900); outline-color: rgb(255 255 255 / .1); }
.rn-presenca-rotulo { display: flex; align-items: center; gap: .75rem; font-size: .8125rem; color: var(--gray-600); white-space: nowrap; }
.dark .rn-presenca-rotulo { color: var(--gray-300); }
.rn-ao-vivo { display: inline-flex; align-items: center; gap: .375rem; font-weight: 700; color: var(--danger-600); font-variant-numeric: tabular-nums; }
.rn-ponto { width: .5rem; height: .5rem; border-radius: 999px; background: var(--danger-500); animation: rn-pulsa 1.6s ease-in-out infinite; }
@keyframes rn-pulsa { 50% { opacity: .3; } }
@media (prefers-reduced-motion: reduce) { .rn-ponto { animation: none; } }
.rn-chips { display: flex; flex-wrap: wrap; align-items: center; gap: .375rem; flex: 1; }
.rn-chip { display: inline-flex; align-items: center; border-radius: 999px; border: 1px dashed var(--gray-300); color: var(--gray-500); font-size: .8125rem; }
.rn-chip button { display: inline-flex; align-items: center; gap: .25rem; padding: .25rem .5rem; background: none; border: 0; color: inherit; cursor: pointer; }
.rn-chip small { margin-left: .25rem; opacity: .7; }
.rn-chip-icone { width: 1rem; height: 1rem; }
.rn-chip-presente { border-style: solid; border-color: var(--success-300); background: var(--success-50); color: var(--success-800); }
.dark .rn-chip-presente { background: rgb(34 197 94 / .12); border-color: rgb(34 197 94 / .4); color: var(--success-300); }
.rn-chip .rn-chip-x { padding: .25rem .5rem .25rem 0; opacity: .45; font-size: 1rem; line-height: 1; }
.rn-chip .rn-chip-x:hover { opacity: 1; color: var(--danger-600); }
.rn-add-pessoa { position: relative; }
.rn-add-pessoa input { width: 11rem; font-size: .8125rem; border-radius: 999px; border: 1px solid var(--gray-300); padding: .25rem .75rem; background: transparent; color: inherit; }
.rn-link { background: none; border: 0; color: var(--primary-600); font-size: .8125rem; cursor: pointer; text-decoration: underline; }

.rn-colunas { display: grid; gap: 1rem; align-items: start; grid-template-columns: 1fr; }
@media (min-width: 1100px) { .rn-colunas { grid-template-columns: minmax(12rem, 16rem) minmax(0, 1fr) minmax(16rem, 21rem); } }
.rn-pauta, .rn-foco, .rn-pendencias { border-radius: .75rem; background: #fff; outline: 1px solid var(--gray-200); padding: .875rem; }
.dark .rn-pauta, .dark .rn-foco, .dark .rn-pendencias { background: var(--gray-900); outline-color: rgb(255 255 255 / .1); }
.rn-pauta h3, .rn-pendencias h3 { font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--gray-500); margin: 0 0 .5rem; display: flex; align-items: center; gap: .5rem; }
.rn-pendencias h3 small { margin-left: auto; text-transform: none; letter-spacing: 0; font-weight: 500; }
.rn-pauta ol { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .125rem; }
.rn-pauta li > button { width: 100%; display: flex; justify-content: space-between; gap: .5rem; text-align: left; padding: .5rem .625rem; border-radius: .5rem; background: none; border: 0; color: inherit; cursor: pointer; font-size: .875rem; }
.rn-pauta li > button:hover { background: var(--gray-50); }
.dark .rn-pauta li > button:hover { background: rgb(255 255 255 / .05); }
.rn-pauta li.ativo > button { background: var(--primary-50); color: var(--primary-700); font-weight: 600; }
.dark .rn-pauta li.ativo > button { background: rgb(255 255 255 / .08); color: var(--primary-300); }
.rn-item-acoes { display: flex; gap: .125rem; padding: 0 .375rem .25rem; }
.rn-item-acoes button { background: none; border: 1px solid var(--gray-200); border-radius: .375rem; padding: 0 .4rem; cursor: pointer; color: var(--gray-500); font-size: .8125rem; }
.rn-num { display: inline-grid; place-items: center; min-width: 1.375rem; height: 1.375rem; padding: 0 .375rem; border-radius: 999px; background: var(--gray-100); color: var(--gray-600); font-size: .75rem; font-weight: 700; }
.dark .rn-num { background: rgb(255 255 255 / .08); color: var(--gray-300); }
.rn-novo-item input { width: 100%; margin-top: .5rem; font-size: .875rem; border: 1px dashed var(--gray-300); border-radius: .5rem; padding: .5rem .625rem; background: transparent; color: inherit; }

.rn-foco { display: flex; flex-direction: column; gap: .75rem; min-width: 0; }
.rn-foco-topo { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.rn-foco-topo h2 { font-size: 1.125rem; font-weight: 700; margin: 0; }
.rn-salvo { font-size: .75rem; color: var(--gray-500); white-space: nowrap; }
.rn-notas { width: 100%; resize: vertical; border-radius: .5rem; border: 1px solid var(--gray-200); padding: .625rem .75rem; font-size: .9375rem; line-height: 1.5; background: var(--gray-50); color: inherit; }
.dark .rn-notas { background: rgb(255 255 255 / .03); border-color: rgb(255 255 255 / .1); }
.rn-registros { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .375rem; }
.rn-registros > li { display: flex; flex-wrap: wrap; align-items: center; gap: .375rem .625rem; padding: .5rem .625rem; border-radius: .5rem; border: 1px solid var(--gray-200); }
.dark .rn-registros > li { border-color: rgb(255 255 255 / .1); }
.rn-decisao { background: var(--success-50); border-color: var(--success-200) !important; }
.dark .rn-decisao { background: rgb(34 197 94 / .08); }
.rn-reg-icone { width: 1.125rem; height: 1.125rem; flex-shrink: 0; color: var(--gray-500); }
.rn-decisao .rn-reg-icone { color: var(--success-600); }
.rn-reg-texto { flex: 1; min-width: 12rem; font-size: .9375rem; }
.rn-campos { display: flex; flex-wrap: wrap; gap: .375rem; }
.rn-sel { font-size: .8125rem; border-radius: .375rem; border: 1px solid var(--gray-200); padding: .2rem .4rem; background: #fff; color: inherit; max-width: 13rem; }
.dark .rn-sel { background: var(--gray-800); border-color: rgb(255 255 255 / .15); }
.rn-sel.rn-falta { border-color: var(--warning-400); color: var(--warning-700); }
.rn-x { background: none; border: 0; color: var(--gray-400); font-size: 1.125rem; line-height: 1; cursor: pointer; padding: 0 .25rem; }
.rn-x:hover { color: var(--danger-600); }
.rn-vazio { font-size: .875rem; color: var(--gray-500); border: 0 !important; padding: .25rem 0 !important; }

.rn-entrada { display: flex; gap: .5rem; align-items: stretch; position: sticky; bottom: .75rem; z-index: 5; padding: .5rem; border-radius: .75rem; background: #fff; box-shadow: 0 4px 18px rgb(0 0 0 / .08); outline: 1px solid var(--primary-200); }
.dark .rn-entrada { background: var(--gray-800); outline-color: rgb(255 255 255 / .15); }
.rn-tipo { display: flex; border-radius: .5rem; overflow: hidden; border: 1px solid var(--gray-200); flex-shrink: 0; }
.rn-tipo button { padding: 0 .75rem; font-size: .8125rem; background: none; border: 0; cursor: pointer; color: var(--gray-600); }
.rn-tipo button.ativo { background: var(--primary-600); color: #fff; font-weight: 600; }
.rn-campo { position: relative; flex: 1; min-width: 0; }
.rn-campo input { width: 100%; height: 100%; min-height: 2.75rem; border: 0; outline: none; background: transparent; color: inherit; font-size: 1rem; padding: 0 .5rem; }
.rn-gravar { flex-shrink: 0; padding: 0 1rem; border-radius: .5rem; border: 0; background: var(--primary-600); color: #fff; font-weight: 600; cursor: pointer; }
.rn-gravar:disabled { opacity: .6; }
.rn-lista { position: absolute; left: 0; top: calc(100% + .25rem); z-index: 30; min-width: 18rem; max-width: 26rem; padding: .25rem; border-radius: .5rem; background: #fff; box-shadow: 0 8px 28px rgb(0 0 0 / .16); outline: 1px solid var(--gray-200); }
.dark .rn-lista { background: var(--gray-800); outline-color: rgb(255 255 255 / .12); }
.rn-lista-cima { top: auto; bottom: calc(100% + .5rem); }
.rn-lista button { width: 100%; display: flex; justify-content: space-between; gap: .75rem; text-align: left; padding: .4rem .6rem; border-radius: .375rem; background: none; border: 0; cursor: pointer; color: inherit; font-size: .875rem; }
.rn-lista button small { color: var(--gray-500); }
.rn-lista button.ativo, .rn-lista button:hover { background: var(--primary-50); color: var(--primary-800); }
.dark .rn-lista button.ativo, .dark .rn-lista button:hover { background: rgb(255 255 255 / .08); color: #fff; }
.rn-lista-dica { font-size: .75rem; color: var(--gray-500); padding: .4rem .6rem; margin: 0; }
.rn-previa { display: flex; flex-wrap: wrap; gap: .375rem; align-items: center; min-height: 1.75rem; font-size: .8125rem; }
.rn-dica { color: var(--gray-500); }
.rn-tag { display: inline-block; padding: .1rem .5rem; border-radius: 999px; background: var(--gray-100); color: var(--gray-700); font-weight: 600; }
.dark .rn-tag { background: rgb(255 255 255 / .08); color: var(--gray-200); }
.rn-tag-dec { background: var(--success-100); color: var(--success-800); }
.rn-tag-ok { background: var(--primary-100); color: var(--primary-800); }
.rn-tag-falta { background: var(--warning-100); color: var(--warning-800); }
.rn-prio-alta { color: var(--danger-700); }
.rn-tag.rn-prio-alta { background: var(--danger-100); }
.rn-alerta { color: var(--warning-700); font-weight: 600; }
.dark .rn-alerta { color: var(--warning-400); }

.rn-pendencias { display: flex; flex-direction: column; gap: .5rem; max-height: calc(100vh - 9rem); overflow: auto; }
@media (min-width: 1100px) { .rn-pendencias { position: sticky; top: 5rem; } }
.rn-pend { padding: .625rem; border-radius: .5rem; border: 1px solid var(--gray-200); border-left-width: 4px; }
.dark .rn-pend { border-color: rgb(255 255 255 / .1); }
.rn-pend-atrasada { border-left-color: var(--danger-500); }
.rn-pend-vista { opacity: .75; border-left-color: var(--success-500); }
.rn-pend-titulo { margin: 0; font-size: .875rem; font-weight: 600; }
.rn-pend-meta { margin: .125rem 0 0; font-size: .75rem; color: var(--gray-500); }
.rn-pend-atrasada .rn-prazo { color: var(--danger-600); font-weight: 700; }
.rn-pend-hoje { margin: .25rem 0 0; font-size: .75rem; color: var(--success-700); display: flex; gap: .25rem; align-items: center; }
.dark .rn-pend-hoje { color: var(--success-400); }
.rn-mini { width: .875rem; height: .875rem; }
.rn-pend-acoes { display: flex; flex-wrap: wrap; gap: .25rem; margin-top: .5rem; }
.rn-pend-acoes button { font-size: .75rem; padding: .15rem .45rem; border-radius: .375rem; border: 1px solid var(--gray-200); background: none; color: var(--gray-700); cursor: pointer; }
.dark .rn-pend-acoes button { border-color: rgb(255 255 255 / .15); color: var(--gray-200); }
.rn-pend-acoes button:hover { background: var(--gray-50); }
.dark .rn-pend-acoes button:hover { background: rgb(255 255 255 / .06); }

/* Ata dentro do sistema (quem não conduz ou reunião encerrada) */
.rn-ata-tela { max-width: 60rem; padding: 1.25rem 1.5rem; border-radius: .75rem; background: #fff; outline: 1px solid var(--gray-200); font-size: .9375rem; }
.dark .rn-ata-tela { background: var(--gray-900); outline-color: rgb(255 255 255 / .1); }
.rn-ata-tela table { width: 100%; border-collapse: collapse; margin: .25rem 0 .75rem; font-size: .875rem; }
.rn-ata-tela td, .rn-ata-tela th { border: 1px solid var(--gray-200); padding: .35rem .5rem; text-align: left; vertical-align: top; }
.dark .rn-ata-tela td, .dark .rn-ata-tela th { border-color: rgb(255 255 255 / .1); }
.rn-ata-tela table.id td:first-child { width: 26%; font-weight: 600; color: var(--gray-600); }
.rn-ata-tela h2 { font-size: .9375rem; font-weight: 700; margin: 1rem 0 .375rem; text-transform: uppercase; }
.rn-ata-tela .rotulo { font-weight: 600; margin: .5rem 0 .125rem; }
.rn-ata-tela ul { padding-left: 1.25rem; list-style: disc; }
.rn-aviso { padding: .5rem .75rem; border-radius: .5rem; background: var(--warning-50); color: var(--warning-800); font-size: .875rem; margin-bottom: .75rem; }
.dark .rn-aviso { background: rgb(234 179 8 / .1); color: var(--warning-300); }

/* Tarefas */
.rn-numeros { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: 1rem; }
.rn-numero { padding: .75rem 1rem; border-radius: .75rem; background: #fff; outline: 1px solid var(--gray-200); display: flex; flex-direction: column; gap: .25rem; color: inherit; text-decoration: none; }
.dark .rn-numero { background: var(--gray-900); outline-color: rgb(255 255 255 / .1); }
.rn-numero strong { font-size: 1.5rem; font-variant-numeric: tabular-nums; }
.rn-numero-alerta strong { color: var(--danger-600); }
.rn-grade { display: grid; gap: 1rem; align-items: start; }
@media (min-width: 1100px) { .rn-grade { grid-template-columns: 1fr 1fr; } }
.rn-historico { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .625rem; }
.rn-historico li { display: flex; gap: .625rem; font-size: .875rem; }
.rn-historico time { flex-shrink: 0; width: 6.5rem; color: var(--gray-500); font-size: .75rem; padding-top: .1rem; }
.in-dl { display: grid; gap: .5rem; margin: 0; font-size: .875rem; }
.in-dl > div { display: grid; grid-template-columns: 8.5rem minmax(0, 1fr); gap: .75rem; }
.in-dl dt { color: var(--gray-500); font-weight: 600; }
.in-dl dd { margin: 0; }
.in-link { color: var(--primary-600); text-decoration: underline; }
.dark .in-link { color: var(--primary-400); }
