:root { --sidebar-w: 240px; --brand: #14365d; }
body { background: #f4f6f9; font-size: .95rem; }
.layout { display: flex; min-height: 100vh; }
.sidebar { width: var(--sidebar-w); background: var(--brand); color: #fff; padding: 1rem .75rem; position: sticky; top: 0; height: 100vh; overflow-y: auto; flex-shrink: 0; display: flex; flex-direction: column; }
.sidebar .brand { color: #fff; font-weight: 700; font-size: 1.15rem; text-decoration: none; padding: .25rem .5rem 1rem; display: block; }
.sidebar .nav-link { color: rgba(255,255,255,.82); padding: .35rem .5rem; border-radius: .35rem; }
.sidebar .nav-link:hover { background: rgba(255,255,255,.12); color: #fff; }
.sidebar .nav-link.disabled { color: rgba(255,255,255,.35); }
.sidebar .nav-section { text-transform: uppercase; font-size: .7rem; letter-spacing: .06em; color: rgba(255,255,255,.5); padding: 1rem .5rem .25rem; list-style: none; }
.sidebar ul { list-style: none; padding: 0; margin: 0; }
.sidebar-user { margin-top: auto; padding: 1rem .5rem 0; border-top: 1px solid rgba(255,255,255,.15); }
.sidebar-user a { color: rgba(255,255,255,.7); }
.content { flex: 1; min-width: 0; padding: 1.5rem 2rem 3rem; }
.page-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: 1rem; }
.page-head h1 { font-size: 1.4rem; margin: 0; }
.card { border-color: #e3e7ee; }
.table > :not(caption) > * > * { padding: .45rem .6rem; }
.table thead th { white-space: nowrap; font-size: .8rem; text-transform: uppercase; letter-spacing: .03em; color: #5b6573; background: #f8f9fb; }
.table thead th a { color: inherit; text-decoration: none; }
.table .num { text-align: right; white-space: nowrap; }
.inativo td { opacity: .55; }
.filtros label { font-size: .75rem; color: #5b6573; margin-bottom: .1rem; }
.filtros input:not([type=checkbox]), .filtros select { display: block; width: 100%; padding: .25rem .5rem; font-size: .875rem; border: 1px solid var(--bs-border-color); border-radius: .25rem; background: #fff; }
.form-label { font-weight: 500; margin-bottom: .2rem; }
.form-text { font-size: .8rem; }
.fs-table td { vertical-align: top; min-width: 90px; }
.fs-table td:first-child { min-width: 210px; }
.fs-table input[type=url] { min-width: 220px; }
.fs-table input[type=date] { min-width: 140px; }
.fs-table th { white-space: nowrap; }
.fs-table .form-check { padding-top: .5rem; }
.resumo-valor { font-size: 1.25rem; font-weight: 600; }
.login-box { max-width: 380px; margin: 12vh auto 0; }
.ts-wrapper.form-select, .ts-wrapper.form-control { padding: 0; }
.preview-calc { background: #eef3fa; border: 1px solid #d5e0f0; border-radius: .4rem; padding: .6rem .9rem; }
.preview-calc strong { font-variant-numeric: tabular-nums; }

/* gráfico de colunas do painel */
.grafico-colunas { display: flex; align-items: flex-end; gap: .4rem; height: 150px; padding-top: .5rem; }
.grafico-colunas .col-barra { flex: 1; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; min-width: 0; }
.grafico-colunas .barra { width: 100%; background: #1f3a5f; border-radius: 3px 3px 0 0; min-height: 2px; }
.grafico-colunas .rotulo { font-size: .65rem; color: #6c757d; margin-top: .25rem; white-space: nowrap; }
.tabela-relatorio td:not(.text-end) { min-width: 7rem; max-width: 22rem; }
.tabela-relatorio th { white-space: nowrap; }
