:root {
	--marca: #0d6e82;
	--marca-escuro: #0a5566;
	--marca-fundo: #e6f3f6;
	--fundo: #f6f8fb;
	--papel: #ffffff;
	--superficie: #f1f4f8;
	--texto: #14233b;
	--suave: #64748b;
	--linha: #e2e8f0;
	--ok: #16724a;
	--ok-fundo: #e8f6ef;
	--alerta: #b42318;
	--alerta-fundo: #fdecea;
	--aviso: #a66a12;
	--aviso-fundo: #fbf4e6;
	--sombra: 0 1px 2px rgba(25, 35, 51, 0.04);
	--raio: 10px;
	--raio-sm: 8px;
	--fonte: "Segoe UI Variable", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
	--transicao: 160ms ease;
	--foco: 0 0 0 3px rgba(13, 110, 130, 0.2);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	background: var(--fundo);
	color: var(--texto);
	font: 15px/1.55 var(--fonte);
	-webkit-font-smoothing: antialiased;
}
#conteudo { flex: 1 0 auto; }
a { color: var(--marca); text-underline-offset: 2px; }
a:hover { color: var(--marca-escuro); }
h1, h2 { font-weight: 650; letter-spacing: -0.02em; line-height: 1.25; color: var(--texto); }
h1 { font-size: 1.75rem; margin: 0 0 6px; }
h2 { font-size: 1.2rem; margin: 0 0 12px; }
:focus-visible { outline: 2px solid var(--marca); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; scroll-behavior: auto !important; }
}

.pular {
	position: absolute;
	left: 12px;
	top: -48px;
	background: var(--marca);
	color: #fff;
	padding: 8px 12px;
	border-radius: var(--raio-sm);
	z-index: 5;
}
.pular:focus { top: 12px; color: #fff; }
.somente-leitor {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.topo {
	position: sticky;
	top: 0;
	z-index: 40;
	background: #fff;
	border-bottom: 1px solid var(--linha);
}
.topo-faixa, .miolo { width: min(1120px, calc(100% - 40px)); margin: 0 auto; }
.topo-barra {
	display: flex;
	align-items: center;
	gap: 8px;
	min-height: 72px;
}
.marca { display: flex; align-items: center; gap: 12px; text-decoration: none; color: inherit; flex: none; }
.marca-pge {
	height: 52px;
	width: auto;
	display: block;
	flex: none;
}
.marca-divisor {
	width: 1px;
	height: 28px;
	background: var(--linha);
	flex: none;
}
.nav-botao svg, .usuario-botao > svg {
	width: 16px;
	height: 16px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}
.marca-texto { display: flex; flex-direction: column; line-height: 1; }
.marca-texto strong { color: var(--marca); font-size: 18px; font-weight: 700; letter-spacing: 0.06em; }
.marca-texto small { color: var(--suave); font-size: 12px; font-weight: 500; }
.topo-acoes { display: flex; align-items: center; gap: 8px; margin-left: auto; }
.quem { position: relative; }
.usuario-botao {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	border: 1px solid transparent;
	background: transparent;
	padding: 3px 8px 3px 3px;
	border-radius: 999px;
	cursor: pointer;
	color: var(--suave);
	transition: background var(--transicao), border-color var(--transicao);
}
.usuario-botao:hover { background: var(--superficie); border-color: var(--linha); }
.usuario-rotulo {
	max-width: 180px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	font-size: 13px;
	font-weight: 600;
	color: var(--texto);
}
.usuario-botao > svg { width: 16px; height: 16px; }
.topo .avatar {
	display: inline-grid;
	place-items: center;
	width: 30px;
	height: 30px;
	border-radius: 999px;
	background: var(--marca-fundo);
	color: var(--marca);
	font-size: 12px;
	font-weight: 750;
}
.usuario-painel {
	position: absolute;
	right: 0;
	top: calc(100% + 8px);
	min-width: 240px;
	padding: 8px;
	background: #fff;
	border: 1px solid var(--linha);
	border-radius: 12px;
	box-shadow: 0 8px 24px rgba(25, 35, 51, 0.08);
}
.usuario-painel[hidden] { display: none; }
.usuario-nome {
	margin: 6px 10px 8px;
	font-size: 13px;
	font-weight: 650;
	color: var(--texto);
	white-space: nowrap;
}
.usuario-painel button {
	display: flex;
	justify-content: flex-start;
	width: 100%;
	border: 0;
	border-radius: 8px;
	background: transparent;
	color: var(--marca);
	font: inherit;
	font-size: 14px;
	font-weight: 650;
	text-align: left;
	padding: 8px 10px;
	cursor: pointer;
}
.usuario-painel button:hover { background: var(--marca-fundo); color: var(--marca-escuro); }
.abas-conjunto { width: min(1120px, calc(100% - 40px)); margin: 12px auto 0; }
.abas {
	display: flex;
	align-items: flex-end;
	gap: 6px;
	margin: 0;
	padding: 0 8px;
	position: relative;
	z-index: 2;
}
.aba {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 36px;
	padding: 0 16px;
	border: 1px solid transparent;
	border-bottom: 0;
	border-radius: 10px 10px 0 0;
	background: #e7edf3;
	color: var(--suave);
	text-decoration: none;
	font-size: 14px;
	font-weight: 600;
	white-space: nowrap;
	transition: background var(--transicao), color var(--transicao);
}
.aba svg {
	width: 16px;
	height: 16px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}
.aba:hover { background: #dfe6ee; color: var(--texto); }
.aba[aria-selected="true"] {
	height: 40px;
	background: #fff;
	border-color: var(--linha);
	color: var(--texto);
	z-index: 3;
}
.abas-conjunto.com-painel .aba[aria-selected="true"] { margin-bottom: -1px; border-bottom: 1px solid #fff; }
.painel-aba { position: relative; z-index: 1; outline: none; }
.abas-conjunto.com-painel .painel-aba {
	background: #fff;
	border: 1px solid var(--linha);
	border-radius: 12px;
	box-shadow: var(--sombra);
	min-height: 280px;
}
.abas-conjunto .miolo { width: auto; margin: 0; }
.abas-conjunto.com-painel .miolo { padding: 20px 22px 28px; }
.painel-aba[aria-busy="true"] { opacity: 0.55; }
.usuario-botao:focus-visible,
.aba:focus-visible,
.usuario-painel button:focus-visible {
	outline: 2px solid var(--marca);
	outline-offset: 2px;
}

.miolo { padding: 24px 0 40px; }
.miolo.estreito { width: min(760px, calc(100% - 40px)); }
.lead { color: var(--suave); margin: 2px 0 0; font-size: 13px; max-width: 42rem; }
.cabeca { display: flex; justify-content: space-between; gap: 16px; align-items: center; margin: 0; }
.olho { margin: 0 0 2px; font-size: 11px; font-weight: 650; letter-spacing: 0.08em; text-transform: uppercase; color: var(--marca); }
.pagina-topo { margin-bottom: 16px; }
.pagina-topo h1 { font-size: 1.5rem; margin: 0; }
.painel-lista {
	background: var(--papel);
	border: 1px solid var(--linha);
	border-radius: 16px;
	box-shadow: var(--sombra);
	padding: 20px 22px 16px;
	margin-bottom: 16px;
}
.alerta {
	background: var(--alerta-fundo);
	color: var(--alerta);
	border: 1px solid rgba(180, 35, 24, 0.14);
	border-radius: var(--raio-sm);
	padding: 12px 14px;
	margin: 0 0 12px;
}
.alerta.ok { background: var(--ok-fundo); color: var(--ok); border-color: rgba(22, 114, 74, 0.14); }

.pagina-topo .apoio { margin: 6px 0 0; max-width: 68ch; color: var(--suave); font-size: 14px; font-weight: 400; }
.formulario + .tabela-wrap,
.formulario + .estado-vazio { margin-top: 16px; }

.formulario {
	display: grid;
	gap: 12px;
	background: var(--papel);
	border: 1px solid var(--linha);
	border-radius: 10px;
	box-shadow: var(--sombra);
	padding: 16px 18px 18px;
}
.formulario label {
	display: grid;
	gap: 6px;
	font-size: 12px;
	font-weight: 600;
	color: var(--suave);
}
.formulario > label, .grade label, .filtros label { font-weight: 600; font-size: 12px; color: var(--suave); }
.formulario input,
.formulario select,
.formulario textarea {
	min-height: 38px;
	padding: 8px 12px;
	font-size: 14px;
	font-weight: 450;
	color: var(--texto);
	border-radius: 8px;
}
.formulario textarea { min-height: 88px; }
.formulario input[type="file"] { padding: 7px 10px; font-size: 13px; background: var(--papel); }
.formulario .check {
	display: flex;
	grid-template-columns: none;
	align-items: center;
	color: var(--texto);
	font-size: 14px;
	font-weight: 500;
}
.formulario .check input { min-height: 0; width: auto; padding: 0; }
.anexo-titulo {
	margin: 0 0 8px;
	font-size: 12px;
	font-weight: 650;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--suave);
}
.anexo-atuais { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 8px; padding: 0; list-style: none; }
.anexo-atuais a {
	display: inline-flex;
	padding: 4px 10px;
	border: 1px solid var(--linha);
	border-radius: 999px;
	background: var(--superficie);
	color: var(--texto);
	font-size: 12px;
	font-weight: 650;
	text-decoration: none;
}
.formulario .anexo-zona, .registro .anexo-zona {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	padding: 18px 16px;
	border: 1px dashed #c9d0d8;
	border-radius: 8px;
	background: #fbfcfd;
	color: var(--suave);
	text-align: center;
	cursor: pointer;
	transition: border-color var(--transicao), background var(--transicao);
}
.formulario .anexo-zona:hover, .registro .anexo-zona:hover { border-color: var(--marca); background: var(--marca-fundo); }
.formulario .anexo-zona input, .registro .anexo-zona input {
	position: absolute;
	width: 1px;
	height: 1px;
	min-height: 0;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	border: 0;
}
.anexo-zona svg, .sigilo svg {
	width: 18px;
	height: 18px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}
.anexo-zona svg { color: var(--marca); }
.anexo-zona strong { color: var(--texto); font-size: 14px; font-weight: 650; }
.anexo-nomes { font-size: 12px; font-weight: 450; }
.formulario .sigilo { gap: 8px; width: fit-content; padding: 8px 12px; border: 1px solid var(--linha); border-radius: 8px; }
.formulario .sigilo svg { width: 16px; height: 16px; color: var(--suave); }
.formulario .sigilo:has(input:checked) { border-color: rgba(13, 110, 130, 0.35); background: var(--marca-fundo); color: var(--marca); }
.formulario .sigilo:has(input:checked) svg { color: var(--marca); }
input, select, textarea {
	width: 100%;
	font: inherit;
	color: inherit;
	background: var(--papel);
	border: 1px solid var(--linha);
	border-radius: var(--raio-sm);
	padding: 9px 12px;
	transition: border-color var(--transicao), box-shadow var(--transicao);
}
textarea { resize: vertical; min-height: 96px; }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--marca); box-shadow: var(--foco); }
.grade { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.grade-datas { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.grade label { display: grid; gap: 6px; }
fieldset {
	border: 1px solid var(--linha);
	border-radius: 8px;
	margin: 0;
	padding: 12px 14px;
	background: transparent;
}
legend { font-size: 12px; font-weight: 650; letter-spacing: 0.04em; text-transform: uppercase; color: var(--suave); padding: 0 4px; }
.check { display: flex; gap: 8px; align-items: center; font-weight: 500; padding: 4px 0; }
.check input { width: auto; accent-color: var(--marca); }
.ajuda, .vazio { color: var(--suave); font-size: 13px; }
.botoes { display: flex; gap: 10px; align-items: center; }
.botao, button[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	background: var(--marca);
	color: #fff;
	text-decoration: none;
	border: 1px solid transparent;
	border-radius: var(--raio-sm);
	padding: 9px 14px;
	font: inherit;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.2;
	cursor: pointer;
	transition: background var(--transicao), border-color var(--transicao);
}
.botao:hover, button[type="submit"]:hover { background: var(--marca-escuro); color: #fff; }
.usuario-painel button[type="submit"] {
	display: flex;
	justify-content: flex-start;
	width: 100%;
	background: transparent;
	color: var(--marca);
	border: 0;
	border-radius: 8px;
	padding: 8px 10px;
	font-size: 14px;
	text-align: left;
}
.usuario-painel button[type="submit"]:hover { background: var(--marca-fundo); color: var(--marca-escuro); }
.botao.secundario {
	background: var(--papel);
	color: var(--texto);
	border-color: var(--linha);
}
.botao.secundario:hover { background: var(--superficie); color: var(--texto); }
.botao-menor {
	height: 28px;
	padding: 0 8px;
	font-size: 12px;
	font-weight: 600;
	border-radius: 6px;
	white-space: nowrap;
}
button:disabled, .botao[aria-disabled="true"] { opacity: 0.55; cursor: not-allowed; }
.botao svg, .estado-vazio svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.alerta-voto { background: var(--aviso); }
.alerta-voto:hover { background: #8c5810; }

.filtros {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	margin: 16px 0 0;
	padding: 0;
	border: 0;
}
.filtro {
	display: flex;
	align-items: center;
	gap: 8px;
	min-height: 36px;
	padding: 0 10px 0 12px;
	background: var(--papel);
	border: 1px solid var(--linha);
	border-radius: 8px;
	text-transform: none;
	letter-spacing: 0;
	font-size: 12px;
	font-weight: 600;
	color: var(--suave);
}
.filtro span { flex: none; color: var(--suave); }
.filtro select {
	min-width: 190px;
	height: 40px;
	border: 0;
	background-color: transparent;
	padding: 0 28px 0 0;
	font-weight: 650;
	color: var(--texto);
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23647084' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 2px center;
}
.filtro select:focus { box-shadow: none; }
.select-nativo {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: 0;
	padding: 0;
	opacity: 0;
	pointer-events: none;
}
.menu-filtro { position: relative; min-width: 0; }
.menu-gatilho {
	display: block;
	width: 100%;
	min-width: 132px;
	font-size: 13px;
	border: 0;
	background-color: transparent;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23647084' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 2px center;
	padding: 0 26px 0 0;
	font: inherit;
	font-weight: 650;
	color: var(--texto);
	text-align: left;
	cursor: pointer;
}
.menu-lista {
	position: absolute;
	z-index: 30;
	top: calc(100% + 10px);
	left: -14px;
	min-width: 260px;
	margin: 0;
	padding: 4px 0;
	list-style: none;
	background: var(--papel);
	border: 1px solid var(--linha);
	border-radius: 12px;
	box-shadow: 0 8px 20px rgba(25, 35, 51, 0.08);
	overflow: hidden;
}
.menu-lista[hidden] { display: none; }
.menu-lista li {
	padding: 6px 14px;
	border-bottom: 1px solid var(--linha);
	border-radius: 0;
	font-size: 12.5px;
	line-height: 1.35;
	font-weight: 450;
	color: #8b95a3;
	cursor: pointer;
}
.menu-lista li:last-child { border-bottom: 0; }
.menu-lista li:hover { background: var(--superficie); color: #5c6776; }
.menu-lista li[aria-selected="true"] {
	background: var(--marca-fundo);
	color: var(--marca-escuro);
	font-weight: 550;
}

.tabela-wrap {
	max-width: 100%;
	overflow-x: auto;
	background: var(--papel);
	border: 1px solid var(--linha);
	border-radius: 10px;
	box-shadow: var(--sombra);
}
.tabela { width: 100%; border-collapse: collapse; table-layout: fixed; }
.tabela.convidados .col-nome { width: 18%; }
.tabela.convidados .col-email { width: 22%; }
.tabela.convidados .col-instituicao { width: 14%; }
.tabela.convidados .col-acesso { width: 16%; }
.tabela.convidados .col-acoes-convidado { width: 30%; }
.tabela.convidados td { overflow-wrap: anywhere; }
.tabela.convidados .acoes {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: 6px;
}
.tabela.convidados .acoes form { display: flex; flex: 1 1 0; min-width: 0; margin: 0; }
.tabela.convidados .acoes .botao,
.tabela.convidados .acoes button[type="submit"] {
	width: 100%;
	margin: 0;
	height: 28px;
	padding: 0 8px;
	background: var(--papel);
	color: var(--texto);
	border: 1px solid var(--linha);
	font-size: 12px;
	font-weight: 600;
	white-space: nowrap;
}
.tabela.convidados .acoes button[type="submit"]:hover {
	background: var(--superficie);
	color: var(--texto);
}
.col-processo { width: 13%; }
.col-assunto { width: 18%; }
.col-relatoria { width: 15%; }
.col-quando { width: 10%; }
.col-situacao { width: 12%; }
.col-acoes { width: 22%; }
.tabela th, .tabela td { text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--linha); vertical-align: middle; }
.tabela th {
	font-size: 11px;
	color: var(--suave);
	font-weight: 650;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	background: var(--fundo);
	white-space: nowrap;
}
.tabela-wrap[hidden] { display: none; }
.tabela tbody tr { transition: background var(--transicao); }
.tabela tbody tr:hover { background: #f7f8fa; }
.tabela tbody tr:last-child td { border-bottom: 0; }
.tabela a { font-weight: 650; text-decoration: none; }
.tabela a:hover { text-decoration: underline; }
.processo {
	font-variant-numeric: tabular-nums;
	font-weight: 650;
	font-size: 13px;
	line-height: 1.35;
	color: var(--texto);
	overflow-wrap: break-word;
}
.processo-numero { display: block; }
.relatoria { font-size: 13px; line-height: 1.35; color: #3e4a5c; }
.quando { font-variant-numeric: tabular-nums; color: var(--suave); font-size: 12.5px; line-height: 1.35; white-space: normal; }
.assunto-texto {
	margin: 0;
	max-width: none;
	font-size: 13.5px;
	line-height: 1.4;
	color: var(--texto);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.assunto-texto.aberto { display: block; -webkit-line-clamp: unset; }
.assunto-mais {
	margin-top: 2px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--marca);
	font: inherit;
	font-size: 12px;
	font-weight: 600;
	cursor: pointer;
}
.acoes { white-space: nowrap; overflow: visible; }
.acoes form { display: inline; }
.acoes .botao { margin: 0 6px 0 0; vertical-align: middle; }
.acoes .botao:last-child { margin-right: 0; }
.selo {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 11px;
	font-weight: 600;
	line-height: 1.25;
	border-radius: 999px;
	padding: 2px 7px;
	border: 1px solid var(--linha);
	background: var(--superficie);
	color: var(--suave);
	white-space: normal;
}
.tabela .selo-sigilo { margin: 4px 0 0; }
.selo::before {
	content: "";
	width: 6px;
	height: 6px;
	border-radius: 999px;
	background: currentColor;
}
.selo-aberta { color: var(--ok); background: var(--ok-fundo); border-color: rgba(22, 114, 74, 0.18); }
.selo-aguardando { color: var(--aviso); background: var(--aviso-fundo); border-color: rgba(166, 106, 18, 0.2); }
.selo-encerrada, .selo-destaque { color: var(--suave); }
.selo-sigilo { margin-left: 6px; color: var(--marca); background: var(--marca-fundo); border-color: rgba(13, 110, 130, 0.18); }

.popup {
	border: 0;
	border-radius: 12px;
	padding: 22px 22px 18px;
	width: min(420px, calc(100vw - 32px));
	max-width: 420px;
	color: var(--texto);
	background: var(--papel);
	box-shadow: 0 18px 48px rgba(20, 35, 59, 0.22);
}
.popup::backdrop { background: rgba(20, 35, 59, 0.48); }
.popup h2 { margin: 0 0 8px; font-size: 1.15rem; }
.popup p { margin: 0 0 18px; color: var(--suave); }
.popup .botoes { justify-content: flex-end; margin: 0; }
.popup .botao.secundario,
.popup .botao.secundario:hover {
	background: var(--papel);
	color: var(--texto);
	border-color: var(--linha);
}
.popup .botao.secundario:hover { background: var(--superficie); }
.popup .botao.perigo { background: var(--alerta); border-color: transparent; }
.popup .botao.perigo:hover { background: #8f1c14; color: #fff; }

.estado-vazio {
	display: grid;
	justify-items: center;
	text-align: center;
	gap: 8px;
	margin-top: 8px;
	padding: 48px 24px;
	background: var(--papel);
	border: 1px solid var(--linha);
	border-radius: 12px;
	color: var(--suave);
}
.estado-vazio[hidden] { display: none; }
.estado-icone {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	margin-bottom: 4px;
	border-radius: 10px;
	background: var(--fundo);
	color: var(--suave);
}
.estado-icone svg { width: 20px; height: 20px; }
.estado-vazio strong { color: var(--texto); font-size: 16px; font-weight: 650; }
.estado-vazio p { margin: 0 0 8px; max-width: 36rem; }

.migalhas { display: flex; gap: 8px; align-items: center; margin: 0 0 14px; font-size: 13px; color: var(--suave); }
.migalhas a { color: var(--suave); text-decoration: none; font-weight: 600; }
.migalhas a:hover { color: var(--marca); }
.cabeca-processo { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; margin-bottom: 16px; }
.ficha {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1px;
	margin: 0 0 28px;
	background: var(--linha);
	border: 1px solid var(--linha);
	border-radius: 14px;
	overflow: hidden;
}
.ficha div { background: var(--papel); padding: 14px 16px; }
.ficha dt { color: var(--suave); font-size: 12px; font-weight: 650; letter-spacing: 0.03em; text-transform: uppercase; }
.ficha dd { margin: 4px 0 0; font-weight: 650; }
.secao { margin-bottom: 28px; }
.documentos, .votos { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.documentos li, .votos li {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	background: var(--papel);
	border: 1px solid var(--linha);
	border-radius: 12px;
	padding: 12px 14px;
}
.doc-nome { display: flex; align-items: center; gap: 10px; font-weight: 600; }
.doc-tipo {
	display: inline-grid;
	place-items: center;
	min-width: 42px;
	height: 28px;
	padding: 0 6px;
	border-radius: 6px;
	background: var(--marca-fundo);
	color: var(--marca);
	font-size: 11px;
	font-weight: 750;
	letter-spacing: 0.04em;
}
.voto { align-items: center; }
.voto-corpo { display: flex; gap: 12px; align-items: center; min-width: 0; }
.voto-corpo .avatar {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 999px;
	background: #eceff3;
	border: 1px solid var(--linha);
	flex: none;
	overflow: hidden;
}
.voto-corpo .avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 30%;
	display: block;
}
.voto-corpo strong, .voto-corpo span, .voto-corpo p, .voto-corpo small { display: block; }
.voto-corpo small, .voto-obs { color: var(--suave); font-size: 13px; }
.voto-obs { margin: 6px 0 0; white-space: pre-wrap; }
.voto > .selo { flex: none; margin-top: 4px; }
.voto .anexos { margin-top: 8px; }
.anexos { display: flex; gap: 8px; flex-wrap: wrap; padding: 0; list-style: none; }
.anexos a { background: var(--superficie); border: 1px solid var(--linha); border-radius: 999px; padding: 4px 10px; text-decoration: none; font-size: 12px; font-weight: 650; }
.rodape {
	width: 100%;
	margin-top: auto;
	padding: 28px 16px 22px;
	text-align: center;
	color: #8b95a3;
	font-size: 12px;
	letter-spacing: 0.01em;
}
.rodape p { margin: 0; }

.leitor-cabeca {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 16px;
	margin-bottom: 12px;
}
.leitor-acoes { display: flex; flex-wrap: wrap; gap: 8px; }
.leitor-quadro {
	overflow: hidden;
	height: min(85vh, 920px);
	min-height: 520px;
	border: 1px solid var(--linha);
	border-radius: 10px;
	background: #525659;
}
.leitor-quadro iframe { display: block; width: 100%; height: 100%; border: 0; background: #525659; }
.leitor-aviso { margin: 10px 0 0; text-align: center; color: var(--suave); font-size: 13px; }

.cadastro { display: grid; gap: 12px; }
.cadastro-topo {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 16px;
	margin-bottom: 4px;
}
.cadastro-topo h1 { font-size: 1.45rem; }
.cadastro-topo .migalhas { margin-bottom: 8px; }
.secao-card {
	display: grid;
	gap: 12px;
	padding: 16px 18px 18px;
	background: var(--papel);
	border: 1px solid var(--linha);
	border-radius: 10px;
	box-shadow: var(--sombra);
}
.secao-card header { display: grid; gap: 2px; }
.secao-card h2 { margin: 0; font-size: 15px; letter-spacing: 0; }
.secao-card header p, .secao-card header + p { margin: 0; color: var(--suave); font-size: 13px; }
.cadastro label {
	display: grid;
	gap: 6px;
	font-size: 12px;
	font-weight: 600;
	color: var(--suave);
}
.cadastro input,
.cadastro select,
.cadastro textarea {
	min-height: 38px;
	padding: 8px 12px;
	font-size: 14px;
	font-weight: 450;
	color: var(--texto);
	border-radius: 8px;
}
.cadastro textarea { min-height: 88px; }
.cadastro input[aria-invalid="true"],
.cadastro select[aria-invalid="true"],
.cadastro textarea[aria-invalid="true"] { border-color: var(--alerta); }
.campo-erro { margin: -4px 0 0; color: var(--alerta); font-size: 12px; font-weight: 600; }
.campo-ajuda { margin: 0; color: var(--suave); font-size: 12px; font-weight: 450; line-height: 1.4; }
.cadastro .anexo-zona {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	padding: 22px 16px;
	border: 1px dashed #c9d0d8;
	border-radius: 8px;
	background: #fbfcfd;
	color: var(--suave);
	text-align: center;
	cursor: pointer;
	transition: border-color var(--transicao), background var(--transicao);
}
.cadastro .anexo-zona:hover,
.cadastro .anexo-zona.arrastando { border-color: var(--marca); background: var(--marca-fundo); }
.cadastro .anexo-zona input {
	position: absolute;
	width: 1px;
	height: 1px;
	min-height: 0;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	border: 0;
}
.cadastro .anexo-zona svg {
	width: 18px;
	height: 18px;
	fill: none;
	stroke: var(--marca);
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}
.cadastro .anexo-zona strong { color: var(--texto); font-size: 14px; font-weight: 650; }
.arquivo-lista { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.arquivo-lista li {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 8px 10px;
	border: 1px solid var(--linha);
	border-radius: 8px;
	background: #fbfcfd;
}
.arquivo-lista span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; font-weight: 600; color: var(--texto); }
.arquivo-lista small { color: var(--suave); font-size: 12px; }
.arquivo-lista button {
	border: 0;
	background: transparent;
	color: var(--alerta);
	font: inherit;
	font-size: 12px;
	font-weight: 650;
	cursor: pointer;
	padding: 4px 6px;
	border-radius: 6px;
}
.arquivo-lista button:hover { background: var(--alerta-fundo); }
.cadastro .interruptor { display: flex; align-items: flex-start; gap: 12px; width: fit-content; cursor: pointer; }
.interruptor-controle { position: relative; width: 36px; height: 22px; flex: none; margin-top: 1px; }
.interruptor-controle input { position: absolute; inset: 0; width: 100%; height: 100%; min-height: 0; margin: 0; padding: 0; opacity: 0; cursor: pointer; }
.interruptor-trilho {
	display: block;
	width: 36px;
	height: 22px;
	border-radius: 999px;
	background: #d5dbe3;
	position: relative;
	transition: background var(--transicao);
}
.interruptor-trilho::after {
	content: "";
	position: absolute;
	top: 2px;
	left: 2px;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 1px 2px rgba(25, 35, 51, 0.18);
	transition: transform var(--transicao);
}
.interruptor input:checked + .interruptor-trilho { background: var(--marca); }
.interruptor input:checked + .interruptor-trilho::after { transform: translateX(14px); }
.interruptor input:focus-visible + .interruptor-trilho { outline: 2px solid var(--marca); outline-offset: 2px; }
.interruptor-texto { display: grid; gap: 2px; }
.interruptor-texto strong { display: inline-flex; align-items: center; gap: 6px; color: var(--texto); font-size: 14px; }
.interruptor-texto small { color: var(--suave); font-size: 12px; font-weight: 450; }
.interruptor-texto svg { width: 15px; height: 15px; fill: none; stroke: var(--suave); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.interruptor input:checked ~ .interruptor-texto svg,
.interruptor:has(input:checked) svg { stroke: var(--marca); }
.barra-acoes {
	position: sticky;
	bottom: 0;
	z-index: 20;
	display: flex;
	justify-content: flex-end;
	gap: 8px;
	padding: 12px 14px;
	background: rgba(255, 255, 255, 0.94);
	border: 1px solid var(--linha);
	border-radius: 10px;
	box-shadow: 0 -1px 0 rgba(25, 35, 51, 0.02);
}

@media (max-width: 900px) {
	.ficha { grid-template-columns: 1fr 1fr; }
	.cabeca, .cabeca-processo { align-items: flex-start; }
	.usuario-rotulo { display: none; }
	.usuario-botao { padding-right: 6px; }
	.abas { flex-wrap: wrap; padding: 0; }
	.abas-conjunto { width: min(1120px, calc(100% - 24px)); }
}
@media (max-width: 720px) {
	.topo-faixa, .miolo { width: min(1120px, calc(100% - 24px)); }
	.topo-barra { min-height: 64px; }
	.marca { gap: 8px; }
	.marca-pge { height: 40px; }
	.marca-divisor { height: 22px; }
	.marca-texto strong { font-size: 15px; }
	.topo-acoes { gap: 4px; }
	.cabeca, .leitor-cabeca, .cadastro-topo { flex-direction: column; align-items: flex-start; }
	.leitor-quadro { min-height: 70vh; height: 75vh; }
	.filtros, .filtro { width: 100%; }
	.filtro select { min-width: 0; width: 100%; }
	.quando { white-space: normal; }
	.grade, .grade-datas, .ficha { grid-template-columns: 1fr; }
	.tabela { min-width: 0; }
	.tabela thead { display: none; }
	.tabela, .tabela tbody, .tabela tr, .tabela td { display: block; width: 100%; }
	.tabela tr[hidden] { display: none !important; }
	.tabela tr { border-bottom: 1px solid var(--linha); padding: 8px 0; }
	.tabela td { border: 0; display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; padding: 6px 14px; }
	.tabela td::before { content: attr(data-rotulo); flex: none; color: var(--suave); font-size: 12px; font-weight: 650; }
	.acoes { white-space: normal; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
	.tabela.convidados .acoes { justify-content: flex-end; }
	.acoes .botao { margin: 0; }
	.assunto-texto, .processo { max-width: none; white-space: normal; text-align: right; }
	.votos li, .documentos li { flex-direction: column; align-items: flex-start; }
}

body.pagina-login {
	min-height: 100vh;
	background: #0b2430;
	color: #1f1a17;
	font-family: var(--fonte);
}
.login-cena {
	position: relative;
	display: flex;
	min-height: 100vh;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	padding: 16px;
}
.login-brilho { position: absolute; border-radius: 999px; pointer-events: none; filter: blur(64px); }
.login-brilho-a { top: -10rem; left: -10rem; width: 32rem; height: 32rem; background: rgba(13, 110, 130, 0.5); }
.login-brilho-b { right: -8rem; bottom: -12rem; width: 30rem; height: 30rem; background: rgba(10, 85, 102, 0.55); }
.login-miolo { position: relative; width: 100%; max-width: 24rem; }
.login-cartao { border-radius: 16px; background: #fff; padding: 32px; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.45); }
.login-logo { display: block; height: 80px; width: auto; max-width: 100%; margin: 0 auto; }
.login-cartao h1 { margin: 24px 0 0; font-size: 1.25rem; font-weight: 650; text-align: center; }
.login-subtitulo { margin: 4px 0 0; text-align: center; font-size: 14px; color: var(--suave); }
.login-cartao form { display: grid; gap: 12px; margin-top: 24px; background: none; border: 0; box-shadow: none; padding: 0; }
.login-cartao label { display: block; font-weight: 600; }
.login-cartao label > span:first-child { display: block; font-size: 12px; color: #475569; }
.login-campo { position: relative; display: block; margin-top: 4px; }
.login-campo svg {
	position: absolute; top: 50%; left: 12px; width: 16px; height: 16px; transform: translateY(-50%);
	fill: none; stroke: #94a3b8; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
}
.login-campo svg circle { fill: #94a3b8; stroke: none; }
.pagina-login input { height: 40px; padding: 0 12px 0 36px; font-size: 14px; }
.login-aviso { margin: 0; border-radius: 8px; background: #fef2f2; padding: 8px 12px; font-size: 14px; font-weight: 400; color: #b91c1c; }
.login-aviso.ok { background: #ecfdf5; color: #047857; }
.login-links { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 16px 0 0; font-size: 14px; }
.login-links a { color: var(--marca); font-weight: 600; text-decoration: none; }
.login-links a:hover { text-decoration: underline; }
.pagina-login .login-links button[type="submit"] {
	width: auto; height: auto; margin: 0; padding: 0; border: 0; background: none;
	color: var(--marca); font-size: 14px; font-weight: 600; box-shadow: none; }
}
.pagina-login button[type="submit"] { display: flex; height: 40px; width: 100%; gap: 8px; border-radius: 8px; }
.pagina-login button[type="submit"] svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.login-rodape {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 22px;
	margin: 0;
	text-align: center;
	font-size: 12px;
	color: rgba(253, 236, 238, 0.75);
}

.sessao-cabeca {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	align-items: flex-start;
	margin-bottom: 18px;
}
.sessao-cabeca h1 { font-size: 1.45rem; }
.sessao-layout {
	display: grid;
	grid-template-columns: minmax(0, 68fr) minmax(220px, 32fr);
	gap: 20px;
	align-items: start;
}
.sessao-bloco { margin-bottom: 22px; }
.sessao-bloco h2, .registro h2, .sessao-resumo h2 { font-size: 15px; margin: 0 0 10px; }
.lista-fina {
	list-style: none;
	margin: 0;
	padding: 0;
	background: var(--papel);
	border: 1px solid var(--linha);
	border-radius: 14px;
	box-shadow: var(--sombra);
}
.lista-fina > li { padding: 12px 14px; border-top: 1px solid var(--linha); }
.lista-fina > li:first-child { border-top: 0; }
.doc-item { display: flex; align-items: center; gap: 12px; }
.doc-icone {
	display: grid;
	place-items: center;
	width: 32px;
	height: 32px;
	border-radius: 8px;
	background: var(--superficie);
	color: var(--suave);
	flex: none;
}
.doc-icone svg {
	width: 16px;
	height: 16px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}
.doc-info { display: grid; min-width: 0; }
.doc-info strong { font-size: 14px; font-weight: 650; }
.doc-info small, .manifesto-topo small { color: var(--suave); font-size: 12px; }
.doc-acoes { display: flex; gap: 6px; margin-left: auto; flex: none; }
.manifesto { display: grid; gap: 8px; }
.manifesto-topo { display: flex; align-items: center; gap: 12px; }
.manifesto-topo .avatar {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border-radius: 999px;
	background: #eceff3;
	border: 1px solid var(--linha);
	overflow: hidden;
	flex: none;
}
.manifesto-topo .avatar img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; display: block; }
.manifesto-topo strong { display: block; font-size: 14px; }
.manifesto-topo .selo { margin-left: auto; flex: none; }
.selo-voto-acompanha { color: var(--ok); background: var(--ok-fundo); border-color: rgba(22, 114, 74, 0.18); }
.selo-voto-diverge { color: var(--alerta); background: var(--alerta-fundo); border-color: rgba(180, 35, 24, 0.16); }
.selo-voto-destaque { color: var(--aviso); background: var(--aviso-fundo); border-color: rgba(166, 106, 18, 0.2); }
.selo-voto-abstencao { color: var(--suave); background: var(--superficie); }
.anexos-voto { display: grid; gap: 8px; margin: 2px 0 0; padding: 0; list-style: none; }
.anexos-voto .doc-item {
	padding: 8px 10px;
	border: 1px solid var(--linha);
	border-radius: 10px;
	background: var(--fundo);
}
.registro {
	background: var(--papel);
	border: 1px solid var(--linha);
	border-radius: 14px;
	box-shadow: var(--sombra);
	padding: 16px 18px 18px;
}
.registro header p { margin: -4px 0 14px; color: var(--suave); font-size: 13px; }
.registro fieldset { border: 0; padding: 0; background: transparent; }
.registro legend { padding: 0; margin-bottom: 8px; }
.opcoes-voto { display: grid; gap: 8px; }
.opcao-voto {
	position: relative;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 14px;
	border: 1px solid var(--linha);
	border-radius: 10px;
	background: var(--papel);
	cursor: pointer;
}
.opcao-voto input {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	min-height: 0;
	margin: 0;
	padding: 0;
	opacity: 0;
	cursor: pointer;
	border: 0;
	box-shadow: none;
}
.opcao-voto:focus-within { outline: 2px solid var(--marca); outline-offset: 2px; }
.opcao-voto:hover { border-color: #c5ccd4; }
.opcao-voto:has(input:checked) { border-color: var(--marca); background: var(--marca-fundo); }
.opcao-circulo {
	width: 16px;
	height: 16px;
	border: 1.5px solid #c5ccd4;
	border-radius: 999px;
	display: grid;
	place-items: center;
	flex: none;
}
.opcao-voto:has(input:checked) .opcao-circulo { border-color: var(--marca); background: var(--marca); }
.opcao-voto:has(input:checked) .opcao-circulo::after {
	content: "";
	width: 4px;
	height: 7px;
	border: solid #fff;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg) translate(-1px, -1px);
}
.opcao-texto { font-weight: 600; }
.opcao-estado { display: none; margin-left: auto; color: var(--marca); font-size: 12px; font-weight: 650; }
.opcao-voto:has(input:checked) .opcao-estado { display: inline; }
.registro .campo { display: block; margin: 14px 0 6px; font-size: 12px; font-weight: 650; color: var(--suave); }
.registro .ajuda { margin: 6px 0 0; }
.registro .anexo-zona { margin-top: 14px; }
.registro .anexo-zona.arrastando { border-color: var(--marca); background: var(--marca-fundo); }
.registro .arquivo-lista { margin-top: 8px; }
.registro button[type="submit"] { margin-top: 14px; }
.sessao-resumo {
	position: sticky;
	top: 88px;
}
.resumo-corpo {
	display: grid;
	gap: 14px;
	padding: 16px;
	background: var(--papel);
	border: 1px solid var(--linha);
	border-radius: 14px;
	box-shadow: var(--sombra);
}
.sessao-resumo dl { display: grid; gap: 12px; margin: 0; }
.sessao-resumo dt { color: var(--suave); font-size: 11px; font-weight: 650; letter-spacing: 0.04em; text-transform: uppercase; }
.sessao-resumo dd { margin: 2px 0 0; font-weight: 650; }
.dialogo {
	width: min(420px, calc(100% - 32px));
	border: 1px solid var(--linha);
	border-radius: 14px;
	padding: 20px;
	background: var(--papel);
	color: var(--texto);
}
.dialogo::backdrop { background: rgba(25, 35, 51, 0.4); }
.dialogo h2 { font-size: 1.1rem; margin: 0 0 8px; }
.dialogo p { margin: 0 0 8px; }
.dialogo-acoes { display: flex; justify-content: flex-end; gap: 8px; margin-top: 16px; }
@media (max-width: 900px) {
	.sessao-layout { grid-template-columns: 1fr; }
	.sessao-resumo { position: static; order: -1; }
}
@media (max-width: 720px) {
	.doc-item { flex-wrap: wrap; }
	.doc-acoes { width: 100%; }
	.manifesto-topo { flex-wrap: wrap; }
	.manifesto-topo .selo { margin-left: 52px; }
}

.envio {
	position: fixed;
	inset: 0;
	z-index: 80;
	display: grid;
	place-items: center;
	background: rgba(20, 35, 59, 0.42);
}
.envio[hidden] { display: none; }
.envio-cartao {
	width: min(280px, calc(100% - 32px));
	padding: 22px 22px 20px;
	background: var(--papel);
	border: 1px solid var(--linha);
	border-radius: 16px;
	box-shadow: 0 16px 40px rgba(20, 35, 59, 0.16);
	text-align: center;
	animation: envio-entrar 220ms ease;
}
.envio-cena {
	position: relative;
	width: 180px;
	height: 110px;
	margin: 0 auto 4px;
}
.envio-halo {
	position: absolute;
	left: 14px;
	bottom: 2px;
	width: 92px;
	height: 92px;
	border-radius: 999px;
	background: var(--marca-fundo);
}
.envio-trilha {
	position: absolute;
	inset: 0;
	width: 180px;
	height: 110px;
	fill: none;
	stroke: var(--marca);
	stroke-width: 1.6;
	stroke-linecap: round;
	stroke-dasharray: 4 6;
	opacity: 0.4;
}
.envio-envelope {
	position: absolute;
	left: 22px;
	bottom: 8px;
	width: 76px;
	height: 54px;
	fill: #fff;
	stroke: var(--marca);
	stroke-width: 2;
	stroke-linejoin: round;
	animation: envio-envelope 1.7s ease-in-out infinite;
}
.envio-aviao {
	position: absolute;
	left: 0;
	top: 0;
	width: 24px;
	height: 24px;
	fill: none;
	stroke: var(--marca);
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
	offset-anchor: center;
	offset-path: path("M 78 64 C 108 46, 132 30, 156 18");
	offset-rotate: auto 45deg;
	animation: envio-voo 1.7s cubic-bezier(.4, .05, .3, 1) infinite;
}
.envio-legenda {
	margin: 8px 0 0;
	font-weight: 650;
	color: var(--texto);
}
.envio-sair { margin-top: 14px; }
.envio-pontos {
	display: inline-flex;
	gap: 3px;
	width: 1.5em;
	margin-left: 4px;
	vertical-align: 1px;
}
.envio-pontos i {
	width: 4px;
	height: 4px;
	border-radius: 999px;
	background: var(--marca);
	opacity: 0.25;
	animation: envio-ponto 1.05s infinite;
}
.envio-pontos i:nth-child(2) { animation-delay: 0.18s; }
.envio-pontos i:nth-child(3) { animation-delay: 0.36s; }
@keyframes envio-entrar {
	from { opacity: 0; transform: translateY(8px) scale(0.98); }
	to { opacity: 1; transform: none; }
}
@keyframes envio-envelope {
	0%, 100% { transform: translateY(0); }
	28% { transform: translateY(3px) scale(0.98); }
	46% { transform: translateY(0) scale(1); }
}
@keyframes envio-voo {
	0% { offset-distance: 0%; opacity: 0; }
	18% { opacity: 1; }
	100% { offset-distance: 100%; opacity: 0; }
}
@keyframes envio-ponto {
	0%, 25% { opacity: 0.25; }
	45%, 100% { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
	.envio-cartao,
	.envio-envelope,
	.envio-aviao,
	.envio-pontos i { animation: none; }
	.envio-aviao { opacity: 1; offset-distance: 65%; }
	.envio-pontos i { opacity: 1; }
}
