/* UnifevSigner — tema sobre o Tabler, só no azul da Unifev. */
:root {
    --tblr-primary: #04488E;
    --tblr-primary-rgb: 4, 72, 142;
    --azul: #04488E;
    --azul-escuro: #032F5E;
    --azul-claro: #E6EEF7;
    --tblr-success: #04488E;
    --tblr-success-rgb: 4, 72, 142;
    --tblr-success-lt: #E6EEF7;
    --tblr-green: #04488E;
    --tblr-green-rgb: 4, 72, 142;
    --tblr-green-lt: #E6EEF7;
    --tblr-link-color: #04488E;
    --tblr-link-hover-color: #032F5E;
}
html { overflow-y: scroll; scrollbar-gutter: stable; }
html, body { font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; font-size: 14.5px; }
body { background: #f4f6f8; }
.ti { display: inline-block; width: 1em; height: 1em; line-height: 1; text-align: center; font-style: normal; vertical-align: -.125em; overflow: hidden; }

/* Cabeçalho */
.navbar-topo { background: linear-gradient(90deg, #032F5E 0%, #04488E 100%); }
.navbar-topo .nav-link { color: rgba(255,255,255,.8); border-radius: 8px; white-space: nowrap; }
.navbar-topo .nav-link:hover { color: #fff; background: rgba(255,255,255,.1); }
.navbar-topo .nav-item.active > .nav-link { color: #fff; background: rgba(255,255,255,.16); font-weight: 600; }
.navbar-topo .nav-item.active > .nav-link::after { display: none; }
.navbar-topo .dropdown-menu { border-radius: 10px; box-shadow: 0 8px 24px rgba(16,24,40,.14); }
.navbar-topo .dropdown-item.active { background: var(--azul); color: #fff; }
.marca { display: flex; flex-direction: column; line-height: 1.05; white-space: nowrap; color: #fff; }
.marca > span:first-child { font-weight: 700; font-size: 1rem; }
.marca > span:last-child { font-weight: 500; font-size: .8rem; letter-spacing: .6px; opacity: .85; }

.faixa-topo { background: linear-gradient(90deg, #032F5E 0%, #04488E 100%); padding: 1.6rem 0 4.5rem; margin-bottom: -3.4rem; color: #fff; }
.faixa-topo .page-title, .faixa-topo .page-pretitle, .faixa-topo .page-pretitle a { color: #fff; }
.faixa-topo .text-muted, .faixa-topo .page-pretitle { color: rgba(255,255,255,.75) !important; }
.faixa-topo .btn:not(.btn-primary):not(.btn-light) { background: rgba(255,255,255,.14); border-color: rgba(255,255,255,.2); color: #fff; }
.faixa-topo .btn:not(.btn-primary):not(.btn-light):hover { background: rgba(255,255,255,.24); }
.faixa-topo .btn-light { background: #fff; color: var(--azul); border-color: #fff; font-weight: 600; }

/* Cartões e botões */
.card { border-radius: 12px; border-color: #e6e9ed; box-shadow: 0 1px 2px rgba(16,24,40,.04); }
.card-header { background: transparent; }
.card-link { transition: transform .14s ease, box-shadow .14s ease; }
.card-link:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(16,24,40,.09); }
.btn { --tblr-btn-border-radius: 9px; font-weight: 550; padding: .45rem .95rem; }
.btn-sm { padding: .3rem .7rem; font-size: .8rem; }
.btn-primary { background: linear-gradient(180deg, #0A57A6 0%, #04488E 100%); border-color: #033D78; box-shadow: 0 1px 2px rgba(3,47,94,.25); }
.btn-primary:hover { background: linear-gradient(180deg, #04488E 0%, #033B75 100%); border-color: #032F5E; }
.btn:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(4,72,142,.28); }
.table thead th { font-size: .7rem; text-transform: uppercase; letter-spacing: .5px; color: #7b8794; }
.mono { font-family: ui-monospace, "Cascadia Mono", Consolas, monospace; }
.footer { border-top: 1px solid #e6e9ed; margin-top: 1.5rem; }

.indicador { display: flex; align-items: center; gap: .9rem; }
.indicador .simbolo { width: 2.75rem; height: 2.75rem; border-radius: 12px; display: grid; place-items: center; font-size: 1.25rem; flex-shrink: 0; background: var(--azul-claro); color: var(--azul); }
.indicador .valor { font-size: 1.6rem; font-weight: 650; line-height: 1.15; }
.indicador .rotulo { font-size: .72rem; text-transform: uppercase; letter-spacing: .5px; color: #7b8794; font-weight: 600; }

/* Status: cores só para estado, nunca para a marca. */
.status-Aguardando { background: #fff4e0; color: #8a5a00; }
.status-Concluido { background: #dcf5e6; color: #0b5c2e; }
.status-Cancelado { background: #ececec; color: #555; }
.status-Expirado { background: #fde2e2; color: #8b1a1a; }
.status-Recusado { background: #fde2e2; color: #8b1a1a; }
.status-Pendente, .status-Enviado { background: #ececec; color: #555; }
.status-Aberto, .status-Verificado { background: #e6eef7; color: #04488E; }
.status-Assinado { background: #dcf5e6; color: #0b5c2e; }
.badge.status { font-weight: 600; letter-spacing: .2px; border: 0; }

/* Árvore de pastas do cofre */
.arvore a { display: flex; align-items: center; gap: .4rem; padding: .35rem .6rem; border-radius: 8px; color: #334155; text-decoration: none; }
.arvore a:hover { background: #eef2f6; }
.arvore a.ativa { background: var(--azul-claro); color: var(--azul); font-weight: 600; }
.arvore .nivel { margin-left: 1rem; border-left: 1px dashed #d7dde5; padding-left: .3rem; }
.cofre-icone { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; color: #fff; font-size: 1.3rem; }

/* Busca e filtros em pílula */
input[type="search"].form-control { height: 2.6rem; border-radius: 999px; background: #f0f2f5; border: 1px solid transparent; padding-left: 1rem; }
input[type="search"].form-control:focus { background: #fff; border-color: #d1d7db; box-shadow: 0 0 0 3px rgba(4,72,142,.08); }
form[method="get"] select.form-select { height: 2.6rem; border-radius: 999px; }
form[method="get"] .btn:not(.btn-link) { height: 2.6rem; border-radius: 999px; padding: 0 1.1rem; }

/* Linha do tempo da trilha */
.trilha { list-style: none; padding: 0; margin: 0; }
.trilha li { position: relative; padding: .3rem 0 .3rem 1.4rem; border-left: 2px solid #e6e9ed; }
.trilha li::before { content: ""; position: absolute; left: -6px; top: .7rem; width: 10px; height: 10px; border-radius: 50%; background: var(--azul); }
.trilha .quando { font-size: .75rem; color: #7b8794; }
