/*
 * Tema do SisEPI.
 * Referência: balcão de atendimento e praça pública. Superfícies que se destacam
 * pela tonalidade, mais respiro e controles maiores, pensada para o munícipe e
 * para quem usa o sistema de vez em quando.
 * Fonte e raios não têm configuração no sistema; todas as cores vêm de --ds-*.
 */

html[data-ds="sisepi"] {
	--ds-font: "Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;
	--ds-radius: 10px;
	--ds-radius-card: 16px;
	--ds-shadow: 0 2px 4px color-mix(in srgb, var(--ds-on-surface) 6%, transparent), 0 10px 26px color-mix(in srgb, var(--ds-on-surface) 8%, transparent);
	--ds-fill: color-mix(in srgb, var(--ds-action) 5%, var(--ds-surface));
}

html[data-ds="sisepi"] body,
html[data-ds="sisepi"] button,
html[data-ds="sisepi"] input,
html[data-ds="sisepi"] select,
html[data-ds="sisepi"] textarea,
html[data-ds="sisepi"] .btn,
html[data-ds="sisepi"] .tooltip,
html[data-ds="sisepi"] .popover {
	font-family: var(--ds-font) !important;
}

html[data-ds="sisepi"] h1, html[data-ds="sisepi"] h2, html[data-ds="sisepi"] h3,
html[data-ds="sisepi"] h4, html[data-ds="sisepi"] h5, html[data-ds="sisepi"] h6,
html[data-ds="sisepi"] .card-title, html[data-ds="sisepi"] .nav-link,
html[data-ds="sisepi"] .brand-text, html[data-ds="sisepi"] p, html[data-ds="sisepi"] label,
html[data-ds="sisepi"] a, html[data-ds="sisepi"] td, html[data-ds="sisepi"] th {
	font-family: var(--ds-font);
}

html[data-ds="sisepi"] ::selection { background: var(--ds-action); color: var(--ds-on-action); }
html[data-ds="sisepi"] :focus-visible { outline: 2px solid var(--ds-focus) !important; outline-offset: 3px; box-shadow: none !important; }
html[data-ds="sisepi"] table td, html[data-ds="sisepi"] table th { font-variant-numeric: tabular-nums; }

/* Componentes compartilhados -------------------------------------------- */

html[data-ds="sisepi"] body .btn {
	min-height: 40px;
	padding-inline: 1.1rem;
	border-radius: var(--ds-radius) !important;
	font-weight: 600;
	box-shadow: none !important;
	transform: none !important;
	transition: background-color .18s ease-out, color .18s ease-out;
}

html[data-ds="sisepi"] body .btn-sm, html[data-ds="sisepi"] body .btn-xs { min-height: 32px; padding-inline: .7rem; }

html[data-ds="sisepi"] body .btn-primary,
html[data-ds="sisepi"] body .btn-purple {
	background: var(--ds-action) !important;
	border: 0 !important;
	color: var(--ds-on-action) !important;
}

html[data-ds="sisepi"] body .btn-primary:hover,
html[data-ds="sisepi"] body .btn-purple:hover {
	background: var(--ds-action-hover) !important;
	color: var(--ds-on-action) !important;
}

html[data-ds="sisepi"] body .btn-secondary,
html[data-ds="sisepi"] body .btn-outline-primary,
html[data-ds="sisepi"] body .btn-outline-secondary,
html[data-ds="sisepi"] body .btn-default,
html[data-ds="sisepi"] body .btn-light {
	background: var(--ds-tint) !important;
	border: 0 !important;
	color: var(--ds-on-surface) !important;
}

html[data-ds="sisepi"] body .btn-secondary:hover,
html[data-ds="sisepi"] body .btn-outline-primary:hover,
html[data-ds="sisepi"] body .btn-outline-secondary:hover,
html[data-ds="sisepi"] body .btn-default:hover,
html[data-ds="sisepi"] body .btn-light:hover {
	background: var(--ds-tint-strong) !important;
}

html[data-ds="sisepi"] body .btn-danger,
html[data-ds="sisepi"] body .btn-outline-danger {
	background: var(--ds-danger) !important;
	border: 0 !important;
	color: var(--ds-on-danger) !important;
}

html[data-ds="sisepi"] body .form-control,
html[data-ds="sisepi"] body .custom-select {
	min-height: 42px;
	border: 1px solid transparent !important;
	border-radius: var(--ds-radius) !important;
	background-color: var(--ds-fill);
	color: var(--ds-on-surface);
	box-shadow: inset 0 0 0 1px var(--ds-line) !important;
}

html[data-ds="sisepi"] body .form-control::placeholder { color: var(--ds-muted); opacity: 1; }

html[data-ds="sisepi"] body .form-control:focus {
	background-color: var(--ds-surface);
	box-shadow: inset 0 0 0 1px var(--ds-action), 0 0 0 .2rem color-mix(in srgb, var(--ds-action) 18%, transparent) !important;
}

html[data-ds="sisepi"] body .input-group-text {
	border: 0 !important;
	border-radius: var(--ds-radius) !important;
	background: var(--ds-tint);
	color: var(--ds-on-surface);
}

html[data-ds="sisepi"] body .card {
	border: 1px solid var(--ds-line) !important;
	border-radius: 14px !important;
	background: var(--ds-surface) !important;
	color: var(--ds-on-surface);
	box-shadow: var(--sisepi-shadow-sm, var(--ds-shadow)) !important;
}

html[data-ds="sisepi"] body .card-header {
	padding: .9rem 1.25rem;
	border-bottom: 1px solid var(--ds-line) !important;
	border-radius: 13px 13px 0 0 !important;
	background: var(--ds-head-bg) !important;
	color: var(--ds-head-text) !important;
}

html[data-ds="sisepi"] body .card-title { font-size: 1.1rem; font-weight: 700; color: inherit !important; }
html[data-ds="sisepi"] body .card-body { padding: 1rem 1.25rem 1.25rem; }

html[data-ds="sisepi"] body .table {
	border-collapse: separate;
	border-spacing: 0;
	color: var(--ds-on-surface);
	background: transparent;
}

html[data-ds="sisepi"] body .table thead th {
	border: 0 !important;
	border-bottom: 2px solid var(--ds-line) !important;
	background: var(--ds-head-bg) !important;
	color: var(--ds-head-text) !important;
	font-size: .85rem;
	font-weight: 600;
	white-space: nowrap;
}


html[data-ds="sisepi"] body .table td {
	padding-block: .8rem;
	border-top: 0 !important;
	border-bottom: 1px solid var(--ds-line) !important;
	vertical-align: middle;
}

html[data-ds="sisepi"] body .table-striped tbody tr:nth-of-type(odd) { background: transparent !important; }
html[data-ds="sisepi"] body .table tbody tr:hover { background: var(--ds-fill) !important; }

html[data-ds="sisepi"] body .alert {
	border: 0 !important;
	border-radius: var(--ds-radius) !important;
	box-shadow: none !important;
}

html[data-ds="sisepi"] body .alert-info { background: color-mix(in srgb, var(--ds-info) 10%, var(--ds-surface)) !important; color: color-mix(in srgb, var(--ds-info) 55%, var(--ds-on-surface)) !important; }
html[data-ds="sisepi"] body .alert-danger { background: color-mix(in srgb, var(--ds-danger) 10%, var(--ds-surface)) !important; color: color-mix(in srgb, var(--ds-danger) 55%, var(--ds-on-surface)) !important; }
html[data-ds="sisepi"] body .alert-success { background: color-mix(in srgb, var(--ds-success) 10%, var(--ds-surface)) !important; color: color-mix(in srgb, var(--ds-success) 55%, var(--ds-on-surface)) !important; }
html[data-ds="sisepi"] body .alert-warning { background: color-mix(in srgb, var(--ds-warning) 12%, var(--ds-surface)) !important; color: color-mix(in srgb, var(--ds-warning) 55%, var(--ds-on-surface)) !important; }

html[data-ds="sisepi"] body .modal-content { border: 0; border-radius: var(--ds-radius-card) !important; background: var(--ds-surface); color: var(--ds-on-surface); }
html[data-ds="sisepi"] body .dropdown-menu { border: 0 !important; border-radius: var(--ds-radius) !important; box-shadow: var(--ds-shadow) !important; padding: .4rem; }
html[data-ds="sisepi"] body .dropdown-item { border-radius: 8px; }

/* Painel ---------------------------------------------------------------- */

html[data-ds="sisepi"][data-ds-surface="panel"] body { background: var(--ds-nav-bg) !important; color: var(--ds-on-bg) !important; font-size: 15px; }
html[data-ds="sisepi"][data-ds-surface="panel"] body .wrapper { background: var(--ds-nav-bg) !important; }

/* A área de conteúdo é uma folha apoiada sobre a cor do menu. */
html[data-ds="sisepi"][data-ds-surface="panel"] body .content-wrapper {
	border-radius: 20px 0 0 0;
	background: var(--ds-bg) !important;
}

html[data-ds="sisepi"][data-ds-surface="panel"] body .main-sidebar { box-shadow: none !important; }

html[data-ds="sisepi"][data-ds-surface="panel"] body .brand-link {
	padding: 1.05rem 1.1rem;
	border-bottom: 0 !important;
	font-size: 1.25rem;
}

html[data-ds="sisepi"][data-ds-surface="panel"] body .brand-link .brand-text { margin-left: 0 !important; font-weight: 700 !important; color: var(--ds-nav-text) !important; }
html[data-ds="sisepi"][data-ds-surface="panel"] body .sidebar { padding: 0 .6rem !important; }

html[data-ds="sisepi"][data-ds-surface="panel"] body .nav-sidebar .nav-item { margin: 0 0 2px !important; }

html[data-ds="sisepi"][data-ds-surface="panel"] body .nav-sidebar .nav-item > .nav-link {
	margin: 0 !important;
	width: 100% !important;
	padding: .6rem .8rem !important;
	border: 0 !important;
	border-radius: var(--ds-radius) !important;
	background: transparent !important;
	color: var(--ds-nav-text) !important;
	box-shadow: none !important;
	font-weight: 500;
	transition: background-color .18s ease-out, color .18s ease-out, transform .18s ease-out;
}

html[data-ds="sisepi"][data-ds-surface="panel"] body .nav-sidebar .nav-item > .nav-link:hover {
	background: var(--ds-nav-hover-bg) !important;
	color: var(--ds-nav-hover-text) !important;
	transform: translateX(2px);
}

html[data-ds="sisepi"][data-ds-surface="panel"] body .nav-sidebar .nav-item > .nav-link.active,
html[data-ds="sisepi"][data-ds-surface="panel"] body .nav-sidebar .nav-item.menu-open > .nav-link {
	background: var(--ds-nav-active-bg) !important;
	color: var(--ds-nav-active-text) !important;
	box-shadow: 0 4px 12px rgba(15, 23, 42, .14) !important;
	font-weight: 600;
}

html[data-ds="sisepi"][data-ds-surface="panel"] body .nav-sidebar .nav-link i,
html[data-ds="sisepi"][data-ds-surface="panel"] body .nav-sidebar .nav-link p { color: inherit !important; }

html[data-ds="sisepi"][data-ds-surface="panel"] body .nav-treeview { background: transparent !important; padding-left: .4rem; }

html[data-ds="sisepi"][data-ds-surface="panel"] body .main-header {
	border-bottom: 1px solid var(--ds-line) !important;
	background: var(--ds-bar-bg) !important;
	color: var(--ds-bar-text) !important;
	box-shadow: var(--sisepi-shadow-sm) !important;
}

html[data-ds="sisepi"][data-ds-surface="panel"] body .main-header label,
html[data-ds="sisepi"][data-ds-surface="panel"] body .main-header .nav-link { color: var(--ds-bar-text) !important; font-weight: 500; }

html[data-ds="sisepi"][data-ds-surface="panel"] body .content-wrapper h2 {
	margin-bottom: 1.25rem;
	color: var(--ds-title) !important;
	font-size: 1.85rem;
	font-weight: 700;
	letter-spacing: -.02em;
}

html[data-ds="sisepi"][data-ds-surface="panel"] body .main-footer {
	border-top: 1px solid var(--ds-line) !important;
	background: var(--ds-surface) !important;
	color: var(--ds-muted) !important;
}

/* Login, cadastro e recuperação ----------------------------------------- */

html[data-ds="sisepi"][data-ds-surface="login"] body {
	background: linear-gradient(135deg, var(--ds-gradient-start), var(--ds-gradient-end)) top / 100% 320px no-repeat, var(--ds-bg) !important;
	color: var(--ds-on-surface);
}

html[data-ds="sisepi"][data-ds-surface="login"] body.login-page { justify-content: flex-start; height: auto; min-height: 100vh; padding: 32px 0 96px; }

html[data-ds="sisepi"][data-ds-surface="login"] .login-box { width: 440px; max-width: calc(100% - 32px); margin: 0; }

html[data-ds="sisepi"][data-ds-surface="login"] .login-logo { margin-bottom: 14px; }

html[data-ds="sisepi"][data-ds-surface="login"] .logo_sisepi_camara a {
	width: 200px;
	height: 92px;
	margin: 0 auto;
	padding: 10px 16px;
	border-radius: var(--ds-radius-card);
	background: #FFFFFF var(--ds-login-logo) no-repeat center / contain content-box;
}

html[data-ds="sisepi"][data-ds-surface="login"] .institution-title { margin-bottom: 20px; text-align: center; color: var(--ds-on-field) !important; }

html[data-ds="sisepi"][data-ds-surface="login"] .institution-title strong { display: block; color: var(--ds-on-field) !important; font-size: 1.35rem; font-weight: 700; letter-spacing: -.01em; text-wrap: balance; }
html[data-ds="sisepi"][data-ds-surface="login"] .institution-title span { display: block; color: var(--ds-on-field) !important; font-size: .98rem; }

html[data-ds="sisepi"][data-ds-surface="login"] .card { border: 0 !important; border-top: 5px solid var(--institution-accent) !important; border-radius: 16px !important; overflow: hidden; box-shadow: var(--ds-shadow), 0 12px 30px rgba(0, 0, 0, .18) !important; }
html[data-ds="sisepi"][data-ds-surface="login"] .login-card-body { padding: 1.75rem; border-radius: 0; background: var(--ds-surface) !important; color: var(--ds-on-surface); }

html[data-ds="sisepi"][data-ds-surface="login"] .login-box-msg { padding: 0; margin-bottom: 1.25rem; color: var(--ds-on-surface) !important; font-size: 1.5rem; font-weight: 700; text-align: center; letter-spacing: -.01em; }

html[data-ds="sisepi"][data-ds-surface="login"] .btn-primary { width: 100%; min-height: 48px; font-size: 1.02rem; }
html[data-ds="sisepi"][data-ds-surface="login"] .form-control { min-height: 48px; }
html[data-ds="sisepi"][data-ds-surface="login"] .input-group > .form-control { border-radius: var(--ds-radius) 0 0 var(--ds-radius) !important; }
html[data-ds="sisepi"][data-ds-surface="login"] .input-group-append .input-group-text { border-radius: 0 var(--ds-radius) var(--ds-radius) 0 !important; }
html[data-ds="sisepi"][data-ds-surface="login"] .login-actions a { color: var(--ds-on-surface) !important; text-decoration: underline; text-underline-offset: 3px; }
html[data-ds="sisepi"][data-ds-surface="login"] .login-error { border: 0 !important; border-radius: var(--ds-radius); background: color-mix(in srgb, var(--ds-danger) 10%, #FFFFFF) !important; color: color-mix(in srgb, var(--ds-danger) 80%, #000) !important; }

html[data-ds="sisepi"][data-ds-surface="login"] .register-container,
html[data-ds="sisepi"][data-ds-surface="login"] .reset-container {
	margin-top: 40px;
	border: 0;
	border-top: 5px solid var(--institution-accent);
	border-radius: 16px;
	box-shadow: var(--ds-shadow), 0 12px 30px rgba(0, 0, 0, .18);
	color: var(--ds-on-surface);
}

html[data-ds="sisepi"][data-ds-surface="login"] .register-title i,
html[data-ds="sisepi"][data-ds-surface="login"] .reset-title i { color: var(--ds-field) !important; }
html[data-ds="sisepi"][data-ds-surface="login"] .register-title h3,
html[data-ds="sisepi"][data-ds-surface="login"] .reset-title h3 { font-weight: 700; letter-spacing: -.01em; }

/* Portal ---------------------------------------------------------------- */

html[data-ds="sisepi"][data-ds-surface="portal"] body { background: var(--ds-bg) !important; color: var(--ds-on-bg) !important; font-size: 17px; }

/* Decisão C: mostra a imagem cadastrada inteira, seja logotipo ou fundo. */
html[data-ds="sisepi"][data-ds-surface="portal"] body .public-visual-header {
	border-bottom: 0 !important;
}

/* Barra do menu de largura total, com a linha na cor secundária configurada. */
html[data-ds="sisepi"][data-ds-surface="portal"] body .header-top-menu {
	background: var(--ds-nav-bg) !important;
	border-bottom: 5px solid var(--institution-secondary, var(--ds-action)) !important;
	box-shadow: 0 10px 26px rgba(15, 23, 42, .10);
}

html[data-ds="sisepi"][data-ds-surface="portal"] body .header-top-menu > .container {
	max-width: 1110px;
	background: var(--ds-nav-bg);
}

html[data-ds="sisepi"][data-ds-surface="portal"] body .header-top-menu .navbar-nav > .nav-item > .nav-link {
	margin: 6px 2px;
	padding: .5rem .85rem !important;
	border-radius: var(--ds-radius) !important;
	background: transparent !important;
	color: var(--ds-nav-text) !important;
	font-size: .98rem;
	font-weight: 600;
	box-shadow: none !important;
	transform: none !important;
}

html[data-ds="sisepi"][data-ds-surface="portal"] body .header-top-menu .navbar-nav > .nav-item > .nav-link:hover,
html[data-ds="sisepi"][data-ds-surface="portal"] body .header-top-menu .navbar-nav > .nav-item.show > .nav-link {
	background: var(--ds-nav-hover-bg) !important;
	color: var(--ds-nav-hover-text) !important;
}

html[data-ds="sisepi"][data-ds-surface="portal"] body .page-header {
	border-top: 6px solid var(--public-menu-hover-bg) !important;
	border-bottom: 1px solid var(--ds-line) !important;
	background: linear-gradient(135deg, color-mix(in srgb, var(--institution-primary) 8%, var(--ds-surface)), var(--ds-surface) 70%) !important;
}

html[data-ds="sisepi"][data-ds-surface="portal"] body .page-header h2 { color: var(--ds-text-primary) !important; font-size: clamp(1.45rem, 2.4vw, 2rem); font-weight: 700; letter-spacing: -.02em; }

/* O destaque é uma peça arredondada, com margem, em vez de ocupar toda a largura. */
html[data-ds="sisepi"][data-ds-surface="portal"] body .home-hero-wrapper {
	width: auto;
	max-width: none;
	margin-left: 0;
	margin-right: 0;
	margin-top: 0;
}

html[data-ds="sisepi"][data-ds-surface="portal"] body #homeHero {
	min-height: 0;
	border-radius: 20px;
	box-shadow: var(--ds-shadow);
	color: var(--ds-hero-text) !important;
}

html[data-ds="sisepi"][data-ds-surface="portal"] body .home-hero-title {
	color: var(--ds-hero-text) !important;
	font-size: clamp(2rem, 3.8vw, 3.1rem);
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -.025em;
	text-wrap: balance;
}

html[data-ds="sisepi"][data-ds-surface="portal"] body .home-hero-highlight { color: var(--ds-hero-accent-readable) !important; background: none !important; -webkit-text-fill-color: currentColor; }
html[data-ds="sisepi"][data-ds-surface="portal"] body .home-hero-text { color: var(--ds-hero-text) !important; }

html[data-ds="sisepi"][data-ds-surface="portal"] body .home-hero-eyebrow,
html[data-ds="sisepi"][data-ds-surface="portal"] body .home-institutional-kicker,
html[data-ds="sisepi"][data-ds-surface="portal"] body .home-numbers-eyebrow {
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
}

html[data-ds="sisepi"][data-ds-surface="portal"] body .home-hero-eyebrow { color: var(--ds-hero-text) !important; }

html[data-ds="sisepi"][data-ds-surface="portal"] body .home-hero-primary,
html[data-ds="sisepi"][data-ds-surface="portal"] body .home-search-button {
	border: 0 !important;
	border-radius: var(--ds-radius) !important;
	background: var(--ds-action) !important;
	color: var(--ds-on-action) !important;
	box-shadow: none !important;
	font-weight: 600;
}

html[data-ds="sisepi"][data-ds-surface="portal"] body #homeHero .home-hero-primary {
	background: var(--institution-accent) !important;
	color: var(--ds-on-accent) !important;
}

html[data-ds="sisepi"][data-ds-surface="portal"] body .home-hero-secondary {
	border: 1px solid var(--ds-hero-text) !important;
	border-radius: var(--ds-radius) !important;
	background: transparent !important;
	color: var(--ds-hero-text) !important;
	box-shadow: none !important;
	font-weight: 600;
}

html[data-ds="sisepi"][data-ds-surface="portal"] body .home-search-shell {
	border: 0 !important;
	border-radius: var(--ds-radius-card) !important;
	background: var(--ds-surface) !important;
	box-shadow: var(--ds-shadow) !important;
}

html[data-ds="sisepi"][data-ds-surface="portal"] body .home-search-input { color: var(--ds-on-surface) !important; }
html[data-ds="sisepi"][data-ds-surface="portal"] body .home-search-input::placeholder { color: var(--ds-muted) !important; opacity: 1; }

html[data-ds="sisepi"][data-ds-surface="portal"] body .home-section-title,
html[data-ds="sisepi"][data-ds-surface="portal"] body .home-institutional-title,
html[data-ds="sisepi"][data-ds-surface="portal"] body .home-numbers-title {
	color: var(--ds-title) !important;
	font-weight: 700;
	letter-spacing: -.02em;
}

html[data-ds="sisepi"][data-ds-surface="portal"] body .home-section-subtitle,
html[data-ds="sisepi"][data-ds-surface="portal"] body .home-numbers-text { color: var(--ds-muted) !important; }

html[data-ds="sisepi"][data-ds-surface="portal"] body .home-institutional-kicker,
html[data-ds="sisepi"][data-ds-surface="portal"] body .home-numbers-eyebrow { color: var(--ds-muted) !important; }

html[data-ds="sisepi"][data-ds-surface="portal"] body #homeQuickLinks,
html[data-ds="sisepi"][data-ds-surface="portal"] body #homeNews,
html[data-ds="sisepi"][data-ds-surface="portal"] body #homePresentation {
	background: transparent !important;
}

html[data-ds="sisepi"][data-ds-surface="portal"] body .home-quick-link,
html[data-ds="sisepi"][data-ds-surface="portal"] body .home-number-card,
html[data-ds="sisepi"][data-ds-surface="portal"] body .home-news-featured,
html[data-ds="sisepi"][data-ds-surface="portal"] body .home-news-secondary {
	border: 1px solid var(--ds-line) !important;
	border-radius: 14px !important;
	background: var(--ds-surface) !important;
	color: var(--ds-on-surface) !important;
	box-shadow: var(--ds-shadow) !important;
	transition: transform .16s ease-out, box-shadow .16s ease-out, border-color .16s ease-out;
}

html[data-ds="sisepi"][data-ds-surface="portal"] body .home-quick-link:hover { border-color: var(--ds-action) !important; transform: translateY(-2px); }

html[data-ds="sisepi"][data-ds-surface="portal"] body .home-quick-link-icon,
html[data-ds="sisepi"][data-ds-surface="portal"] body .home-number-icon {
	border-radius: 50% !important;
	background: var(--ds-action) !important;
	color: var(--ds-on-action) !important;
	box-shadow: none !important;
}

html[data-ds="sisepi"][data-ds-surface="portal"] body .home-quick-links-inner,
html[data-ds="sisepi"][data-ds-surface="portal"] body .home-news-inner {
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

html[data-ds="sisepi"][data-ds-surface="portal"] body .home-number-value { color: var(--ds-title) !important; font-weight: 700; font-variant-numeric: tabular-nums; }
html[data-ds="sisepi"][data-ds-surface="portal"] body .home-number-label { color: var(--ds-on-surface) !important; }

html[data-ds="sisepi"][data-ds-surface="portal"] body .public-footer {
	border-radius: 24px 24px 0 0;
	background: var(--ds-footer-bg) !important;
	color: var(--ds-footer-text) !important;
}

@media (max-width: 991.98px) {
	html[data-ds="sisepi"][data-ds-surface="portal"] body #homeHero { border-radius: 16px; }
}

/* Tela inicial do painel: mantém o acabamento do visual atual. -------------- */

html[data-ds="sisepi"][data-ds-surface="panel"] body .adaptive-home-hero {
	border-radius: var(--ds-radius-card) !important;
	background:
		radial-gradient(circle at 100% 0, color-mix(in srgb, var(--ds-on-hero) var(--ds-hero-arc), transparent) 0, color-mix(in srgb, var(--ds-on-hero) var(--ds-hero-arc), transparent) 16%, transparent 17%),
		linear-gradient(135deg, var(--ds-hero-start), var(--ds-hero-end)) !important;
	color: var(--ds-on-hero) !important;
	box-shadow: var(--sisepi-shadow) !important;
}

html[data-ds="sisepi"][data-ds-surface="panel"] body .adaptive-home-hero * { color: var(--ds-on-hero) !important; }

html[data-ds="sisepi"][data-ds-surface="panel"] body .adaptive-home-kicker {
	font-size: .82rem !important;
	font-weight: 700 !important;
	letter-spacing: .03em !important;
	text-transform: uppercase !important;
}

html[data-ds="sisepi"][data-ds-surface="panel"] body .adaptive-home-hero h3 { font-size: 1.95rem; font-weight: 800; letter-spacing: -.02em; }

html[data-ds="sisepi"][data-ds-surface="panel"] body .adaptive-home-summary > div {
	border: 1px solid color-mix(in srgb, var(--ds-on-hero) 24%, transparent) !important;
	border-radius: 12px !important;
	background: color-mix(in srgb, var(--ds-on-hero) var(--ds-hero-tile), transparent) !important;
	backdrop-filter: blur(2px);
}

html[data-ds="sisepi"][data-ds-surface="panel"] body .adaptive-home-summary strong { font-size: 1.35rem; font-variant-numeric: tabular-nums; font-weight: 800; }

html[data-ds="sisepi"][data-ds-surface="panel"] body .adaptive-home-section > h3 { color: var(--ds-title) !important; font-weight: 700; letter-spacing: -.01em; }

html[data-ds="sisepi"][data-ds-surface="panel"] body .adaptive-home-card {
	border: 1px solid var(--ds-line) !important;
	border-radius: 14px !important;
	background: var(--ds-surface) !important;
	box-shadow: var(--sisepi-shadow-sm) !important;
	transition: transform .16s ease-out, box-shadow .16s ease-out, border-color .16s ease-out, background-color .16s ease-out;
}

html[data-ds="sisepi"][data-ds-surface="panel"] body .adaptive-home-card:hover,
html[data-ds="sisepi"][data-ds-surface="panel"] body .adaptive-home-card:focus-visible {
	border-color: var(--ds-action) !important;
	background: var(--ds-tint) !important;
	box-shadow: var(--sisepi-shadow) !important;
	transform: translateY(-2px);
}

html[data-ds="sisepi"][data-ds-surface="panel"] body .adaptive-home-icon {
	border-radius: 10px !important;
	background: var(--ds-tint-strong) !important;
	color: color-mix(in srgb, var(--ds-action) 70%, var(--ds-on-surface)) !important;
}

html[data-ds="sisepi"][data-ds-surface="panel"] body .adaptive-home-icon i { color: inherit !important; }
html[data-ds="sisepi"][data-ds-surface="panel"] body .adaptive-home-card h4 { color: var(--ds-title) !important; font-weight: 700; }
html[data-ds="sisepi"][data-ds-surface="panel"] body .adaptive-home-card p { color: var(--ds-muted) !important; }

/* Ajustes gerais --------------------------------------------------------- */

html[data-ds="sisepi"] body .institution-title strong,
html[data-ds="sisepi"] body .institution-title span,
html[data-ds="sisepi"] body .home-hero-title,
html[data-ds="sisepi"] body .home-hero-highlight,
html[data-ds="sisepi"] body .home-hero-text,
html[data-ds="sisepi"] body .brand-text { text-shadow: none !important; }

html[data-ds="sisepi"][data-ds-surface="portal"] body .page-header:not(:has(h2:not(:empty))) { display: none !important; }

html[data-ds="sisepi"][data-ds-surface="portal"] body #homeHero:not(.has-background) {
	background: linear-gradient(110deg, var(--ds-hero-start), var(--ds-hero-mid) 55%, var(--ds-hero-end)) !important;
}

/* Telas internas ---------------------------------------------------------- */
/* Status não têm configuração no sistema: usam os tokens --ds-success, --ds-info etc. */

html[data-ds="sisepi"] {
	--settings-muted: var(--ds-muted);
}

html[data-ds="sisepi"] body .btn-success,
html[data-ds="sisepi"] body .badge-success,
html[data-ds="sisepi"] body .bg-success { background-color: var(--ds-success) !important; border-color: var(--ds-success) !important; color: #FFFFFF !important; }

html[data-ds="sisepi"] body .btn-info,
html[data-ds="sisepi"] body .badge-info,
html[data-ds="sisepi"] body .bg-info { background-color: var(--ds-info) !important; border-color: var(--ds-info) !important; color: #FFFFFF !important; }

html[data-ds="sisepi"] body .btn-warning,
html[data-ds="sisepi"] body .badge-warning,
html[data-ds="sisepi"] body .bg-warning { color: #212529 !important; }

html[data-ds="sisepi"] body .btn-outline-success { border-color: var(--ds-success) !important; background: transparent !important; color: var(--ds-success) !important; }
html[data-ds="sisepi"] body .btn-outline-success:hover { background: var(--ds-success) !important; color: #FFFFFF !important; }

html[data-ds="sisepi"] body .small-box h3,
html[data-ds="sisepi"] body .small-box p,
html[data-ds="sisepi"] body .small-box .small-box-footer { color: inherit !important; }

html[data-ds="sisepi"] body .text-success { color: var(--ds-success) !important; }
html[data-ds="sisepi"] body .text-warning { color: var(--ds-warning) !important; }
html[data-ds="sisepi"] body .text-info { color: var(--ds-info) !important; }

html[data-ds="sisepi"][data-ds-surface="panel"] body .content-wrapper .text-muted,
html[data-ds="sisepi"][data-ds-surface="portal"] body #content .text-muted,
html[data-ds="sisepi"] body .news-slug,
html[data-ds="sisepi"] body .interaction-subject small,
html[data-ds="sisepi"] body .contact-help,
html[data-ds="sisepi"] body .institutional-pillar p,
html[data-ds="sisepi"] body .institutional-link-copy small { color: var(--ds-muted) !important; }

html[data-ds="sisepi"] body code { color: var(--ds-on-surface); background: var(--ds-tint); padding: .1em .35em; border-radius: 6px; }

html[data-ds="sisepi"] body .interaction-consult-page {
	--ic-primary: var(--ds-action);
	--ic-primary-dark: var(--ds-action-hover);
	--ic-ink: var(--ds-on-surface);
	--ic-muted: var(--ds-muted);
	--ic-border: var(--ds-line);
	--ic-soft: var(--ds-tint);
}

html[data-ds="sisepi"] body .pagination { gap: 4px; flex-wrap: wrap; }
html[data-ds="sisepi"] body .pagination .page-link { border-radius: 8px !important; border-color: var(--ds-line); background: var(--ds-surface); color: var(--ds-on-surface); }
html[data-ds="sisepi"] body .pagination .page-item.active .page-link { border-color: var(--ds-action); background: var(--ds-action); color: var(--ds-on-action); }

html[data-ds="sisepi"] body:has(.sev-hero) { overflow-x: clip; }

html[data-ds="sisepi"] body .public-calendar-grid > *,
html[data-ds="sisepi"] body .public-calendar-summary > * { min-width: 0; }

@media (max-width: 950px) {
	html[data-ds="sisepi"] body .public-calendar-grid,
	html[data-ds="sisepi"] body .public-calendar-hero { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 767.98px) {
	html[data-ds="sisepi"][data-ds-surface="panel"] body .row > .cards-container { max-width: calc(100% - 30px); }
	html[data-ds="sisepi"] body .card-header.d-flex { flex-wrap: wrap; gap: .5rem; }
	html[data-ds="sisepi"] body .btn-group { flex-wrap: wrap; }
}
html[data-ds="sisepi"] body .small-box .inner,
html[data-ds="sisepi"] body .small-box .icon { color: inherit !important; }

html[data-ds="sisepi"] body .public-calendar-home { grid-template-columns: minmax(0, 1fr); }
html[data-ds="sisepi"] body .public-calendar-month { overflow-x: auto; }

html[data-ds="sisepi"] body .contact-submit,
html[data-ds="sisepi"] body .ic-button { background: var(--ds-action) !important; border-color: var(--ds-action) !important; color: var(--ds-on-action) !important; }
html[data-ds="sisepi"] body .ic-page-kicker { color: var(--ds-text-primary) !important; }
html[data-ds="sisepi"] body .btn-link,
html[data-ds="sisepi"] body legend { color: var(--ds-title); }
html[data-ds="sisepi"] body .alert-heading { color: inherit !important; }
html[data-ds="sisepi"] body .calendar-summary-card strong { color: var(--ds-title) !important; }
html[data-ds="sisepi"] body .institutional-actions-copy p { color: var(--ds-muted) !important; }

html[data-ds="sisepi"] body .card-header > i:not([class*="text-"]),
html[data-ds="sisepi"] body .card-header .d-flex > i:not([class*="text-"]) { color: inherit !important; }

/* A regra antiga "* { color }" impede a herança: cada nível precisa herdar do cabeçalho. */
html[data-ds="sisepi"] body .card-header :is(div, h1, h2, h3, h4, h5, h6, span, i, small, strong, p, label):not(.btn, .btn *, .badge, .dropdown-menu, .dropdown-menu *, [class*="text-"]) { color: inherit !important; }
html[data-ds="sisepi"] body .card-header.bg-warning { background-color: #FFC107 !important; }

html[data-ds="sisepi"][data-ds-surface="panel"] body .main-header .nav-link :is(i, span, small):not(.badge, [class*="text-"]) { color: inherit !important; }

/*
 * sisepi.css e sisepi_public.css têm "* { color }", que impede a herança e fixa o
 * texto em cinza-escuro mesmo em superfícies escuras. :where() tem prioridade zero:
 * anula só essa regra, e qualquer outra definição de cor continua valendo.
 */
:where(html[data-ds="sisepi"] body *) { color: inherit; }

html[data-ds="sisepi"] body .table { color: inherit; }
html[data-ds="sisepi"] body .card { color: var(--ds-on-surface); }
html[data-ds="sisepi"] body .alert-secondary { background: var(--ds-tint) !important; color: var(--ds-on-surface) !important; }
html[data-ds="sisepi"][data-ds-surface="panel"] body .main-footer,
html[data-ds="sisepi"][data-ds-surface="panel"] body .admin-footer-version { color: var(--ds-muted) !important; }
html[data-ds="sisepi"] body .card.bg-primary { background-color: var(--ds-action) !important; color: var(--ds-on-action) !important; }
html[data-ds="sisepi"] body .card.bg-secondary { background-color: #6C757D !important; color: #FFFFFF !important; }
html[data-ds="sisepi"] body .card.bg-dark { background-color: #343A40 !important; color: #FFFFFF !important; }

/* Caixas de resumo da Transparência: mantêm as cores originais de status. */
html[data-ds="sisepi"] body .transparencia-page .summary-total { background: #117A8B !important; color: #FFFFFF !important; }
html[data-ds="sisepi"] body .transparencia-page .summary-year { background: var(--ds-success) !important; color: #FFFFFF !important; }
html[data-ds="sisepi"] body .transparencia-page .summary-update { background: #FFC107 !important; color: #212529 !important; }
html[data-ds="sisepi"] body .transparencia-page .summary-views { background: var(--ds-danger) !important; color: #FFFFFF !important; }
html[data-ds="sisepi"] body .card-header.bg-primary { background-color: var(--ds-action) !important; color: var(--ds-on-action) !important; }
html[data-ds="sisepi"] body .card-header.bg-danger { background-color: var(--ds-danger) !important; color: #FFFFFF !important; }

/* Painel de números: gradiente, círculos e cartões translúcidos do original, com texto calculado. */
html[data-ds="sisepi"][data-ds-surface="portal"] body .home-numbers-panel {
	border: 0 !important;
	border-radius: var(--ds-radius-card) !important;
	background: linear-gradient(135deg, var(--ds-numbers-start), var(--ds-numbers-end)) !important;
	color: var(--ds-numbers-text) !important;
	box-shadow: 0 18px 44px rgba(15, 23, 42, .16) !important;
}

html[data-ds="sisepi"][data-ds-surface="portal"] body .home-numbers-panel::before,
html[data-ds="sisepi"][data-ds-surface="portal"] body .home-numbers-panel::after {
	background: color-mix(in srgb, var(--ds-numbers-text) var(--ds-numbers-circle), transparent) !important;
}

html[data-ds="sisepi"][data-ds-surface="portal"] body .home-numbers-eyebrow {
	padding: 7px 15px;
	border: 1px solid color-mix(in srgb, var(--ds-numbers-text) 34%, transparent) !important;
	border-radius: 999px !important;
	background: color-mix(in srgb, var(--ds-numbers-text) var(--ds-numbers-circle), transparent) !important;
	color: var(--ds-numbers-text) !important;
	font-size: .76rem;
	font-weight: 800;
	text-transform: uppercase;
}

html[data-ds="sisepi"][data-ds-surface="portal"] body .home-numbers-title,
html[data-ds="sisepi"][data-ds-surface="portal"] body .home-numbers-text,
html[data-ds="sisepi"][data-ds-surface="portal"] body .home-number-value,
html[data-ds="sisepi"][data-ds-surface="portal"] body .home-number-label,
html[data-ds="sisepi"][data-ds-surface="portal"] body .home-number-since { color: var(--ds-numbers-text) !important; }

html[data-ds="sisepi"][data-ds-surface="portal"] body .home-numbers-title { font-weight: 800; }
html[data-ds="sisepi"][data-ds-surface="portal"] body .home-number-value { font-weight: 800; }

html[data-ds="sisepi"][data-ds-surface="portal"] body .home-number-card {
	border: 1px solid color-mix(in srgb, var(--ds-numbers-text) 22%, transparent) !important;
	border-radius: 12px !important;
	background: color-mix(in srgb, var(--ds-numbers-text) var(--ds-numbers-tile), transparent) !important;
	color: var(--ds-numbers-text) !important;
	box-shadow: none !important;
}

html[data-ds="sisepi"][data-ds-surface="portal"] body .home-number-icon {
	background: color-mix(in srgb, var(--ds-numbers-text) 18%, transparent) !important;
	color: var(--ds-numbers-text) !important;
}

/* Eventos: a faixa do topo usa 50vw, que inclui a barra de rolagem e criava 8px de rolagem lateral. */
html[data-ds="sisepi"][data-ds-surface="portal"]:has(.sev-hero) { overflow-x: hidden; }
html[data-ds="sisepi"][data-ds-surface="portal"] body:has(.sev-hero) { overflow-x: clip; }

/* Certificados: a origem cabe em uma linha, sem quebrar a palavra. */
html[data-ds="sisepi"][data-ds-surface="panel"] body .certificate-origin { white-space: nowrap; }


/* Redes sociais do topo: usam o par fundo e texto do menu, sempre configurado em conjunto. */
html[data-ds="sisepi"][data-ds-surface="portal"] body .public-header-socials-desktop a:not(:hover):not(:focus),
html[data-ds="sisepi"][data-ds-surface="portal"] body .public-header-social-mobile a:not(:hover):not(:focus) {
	background: var(--public-menu-bg);
	color: var(--public-menu-text) !important;
}


/* Ícones sobre fundo colorido: usam o texto calculado para esse fundo. */
html[data-ds="sisepi"] body .contact-info-icon { background: var(--ds-action) !important; color: var(--ds-on-action) !important; }
html[data-ds="sisepi"] body .contact-info-icon i { color: inherit !important; }
html[data-ds="sisepi"] body .institutional-side-icon, html[data-ds="sisepi"] body .institutional-side-icon i { color: var(--ds-on-accent) !important; }
html[data-ds="sisepi"] body .news-empty-state > i { color: var(--ds-muted) !important; }
html[data-ds="sisepi"] body .news-empty-state .btn i { display: inline; margin: 0 .35em 0 0; font-size: inherit; color: inherit !important; }


/* Títulos de seção ficam direto na página, sem faixa atrás. */
html[data-ds="sisepi"][data-ds-surface="portal"] body [class$="-page-header"] {
	margin-bottom: 1rem;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

/* Cartão de Quem Somos: gradiente e texto calculados a partir das cores configuradas. */
html[data-ds="sisepi"][data-ds-surface="portal"] body .institutional-side-card {
	background: linear-gradient(145deg, var(--ds-side-start), var(--ds-side-end)) !important;
	color: var(--ds-side-text) !important;
}
html[data-ds="sisepi"][data-ds-surface="portal"] body #content .institutional-side-card :is(h3, .institutional-side-label, .institutional-side-location, .institutional-side-location i) {
	color: var(--ds-side-text) !important;
}

/* Sem foto de fundo, o destaque do título fica sobre o gradiente. */
html[data-ds="sisepi"][data-ds-surface="portal"] body #homeHero:not(.has-background) .home-hero-highlight { color: var(--ds-hero-accent-gradient) !important; }

/* Painel de Contato: gradiente a partir da superfície configurada. */
html[data-ds="sisepi"][data-ds-surface="portal"] body .contact-panel {
	border-color: var(--ds-line) !important;
	background: linear-gradient(135deg, var(--ds-surface), color-mix(in srgb, var(--ds-surface) 97%, var(--ds-action))) !important;
}


/* Biblioteca: blocos em tag header não herdam o reset do topo do site. */
html[data-ds="sisepi"][data-ds-surface="portal"] body .public-library-hero {
	padding: 34px !important;
	border-radius: var(--ds-radius-card) !important;
}
html[data-ds="sisepi"][data-ds-surface="portal"] body :is(.public-library-card, .public-library-empty) { border-radius: var(--ds-radius-card) !important; }
html[data-ds="sisepi"][data-ds-surface="portal"] body .public-library-reader-header {
	flex-direction: row !important;
	min-height: 64px !important;
	padding: 12px 16px !important;
}
@media (max-width: 575px) {
	html[data-ds="sisepi"][data-ds-surface="portal"] body .public-library-hero { padding: 24px 18px !important; }
}
