:root { --exata: #0f3d5e; --exata-2: #155e8c; }
body { background: #f3f5f8; }
.bg-exata { background: var(--exata) !important; }
.btn-exata { background: var(--exata); color: #fff; }
.btn-exata:hover { background: var(--exata-2); color: #fff; }
.card { border: 0; box-shadow: 0 1px 3px rgba(15, 61, 94, .08); border-radius: .75rem; }
.card-header { background: #fff; border-bottom: 1px solid #eef1f5; font-weight: 600; }
.kpi .valor { font-size: 1.5rem; font-weight: 700; }
.kpi .rotulo { color: #6b7280; font-size: .85rem; }
.kpi i { font-size: 1.8rem; opacity: .8; }
.table > :not(caption) > * > * { vertical-align: middle; }
.table thead th { font-size: .8rem; text-transform: uppercase; color: #6b7280; letter-spacing: .02em; }
.nav-pills .nav-link { color: var(--exata); }
.nav-pills .nav-link.active { background: var(--exata); }
.login-wrap { min-height: 100vh; display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, #0f3d5e, #155e8c); }
.login-card { width: 100%; max-width: 400px; }
.campo-loading { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 50 50'%3E%3Ccircle cx='25' cy='25' r='20' fill='none' stroke='%23155e8c' stroke-width='5' stroke-dasharray='90 60'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 25 25' to='360 25 25' dur='0.8s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 10px center; }
code.copiar { cursor: pointer; word-break: break-all; }
.navbar .nav-link { white-space: nowrap; }
