:root {
  --marca: #1f2a48;          /* azul-marinho Garroux */
  --marca-escura: #141c33;
  --marca-clara: #f3efe6;    /* areia */
  --dourado: #b8860b;
  --bs-primary: #1f2a48;
  --bs-primary-rgb: 31, 42, 72;
  --bs-link-color: #1f2a48;
  --bs-link-color-rgb: 31, 42, 72;
  --bs-link-hover-color: #b8860b;
  --bs-body-bg: #faf9f6;
}
h1, h2, .navbar-brand { font-family: Georgia, "Times New Roman", serif; }

body { background: var(--bs-body-bg); }

.btn-primary {
  --bs-btn-bg: var(--marca); --bs-btn-border-color: var(--marca);
  --bs-btn-hover-bg: var(--marca-escura); --bs-btn-hover-border-color: var(--marca-escura);
  --bs-btn-active-bg: var(--marca-escura); --bs-btn-active-border-color: var(--marca-escura);
  --bs-btn-disabled-bg: var(--marca); --bs-btn-disabled-border-color: var(--marca);
}
.btn-outline-primary {
  --bs-btn-color: var(--marca); --bs-btn-border-color: var(--marca);
  --bs-btn-hover-bg: var(--marca); --bs-btn-hover-border-color: var(--marca);
  --bs-btn-active-bg: var(--marca-escura); --bs-btn-active-border-color: var(--marca-escura);
}
.form-control:focus, .form-select:focus, .form-check-input:focus {
  border-color: #d4b26a; box-shadow: 0 0 0 .2rem rgba(184, 134, 11, .2);
}
.form-check-input:checked { background-color: var(--marca); border-color: var(--marca); }
.nav-pills { --bs-nav-pills-link-active-bg: var(--marca); }
.nav-pills .nav-link { color: var(--marca); }
.nav-pills .nav-link.active { color: #fff; }

.app-nav { background: var(--marca); border-bottom: 3px solid var(--dourado); }
.app-nav .navbar-brand { color: #fff; letter-spacing: .5px; }
.app-nav .navbar-brand i { color: var(--dourado); }
.app-nav .nav-link.active { font-weight: 600; border-bottom: 2px solid var(--dourado); }
.stat { border-left-color: var(--dourado) !important; }

.card { border-color: #ece4df; }
.card-header { background: #fff; border-bottom-color: #ece4df; }

.page-head { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; justify-content: space-between; margin-bottom: 1.25rem; }
.page-head h1 { margin: 0; font-size: 1.6rem; }

.stat { border-left: 4px solid var(--marca); }
.stat .numero { font-size: 1.8rem; font-weight: 700; line-height: 1.1; }

.table > :not(caption) > * > * { vertical-align: middle; }
.table-hover tbody tr[data-href] { cursor: pointer; }
.valor { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }

.badge.status-rascunho { background: #6c757d; }
.badge.status-enviado { background: #0d6efd; }
.badge.status-aprovado, .badge.status-confirmado { background: #198754; }
.badge.status-recusado { background: #dc3545; }
.badge.status-cancelado { background: #343a40; }
.badge.status-realizado { background: var(--dourado); }
.cat-titulo { font-size: .8rem; font-weight: 600; color: var(--marca); text-transform: uppercase; letter-spacing: .4px; }

.servico-card .card-header { background: var(--marca-clara); }
.servico-card .hora { font-variant-numeric: tabular-nums; }
.item-incluso { color: #6c757d; }

.checkbox-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: .25rem .75rem; max-height: 320px; overflow-y: auto; background: #fff; }

.login-box { max-width: 400px; margin-top: 8vh; }
.login-logo { width: 64px; height: 64px; border-radius: 50%; background: var(--marca); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 2rem; }

.agenda-dia { position: sticky; top: 56px; z-index: 1; background: var(--bs-body-bg); }

.acoes form { display: inline; }

/* Financeiro */
.fluxo .barra { display: flex; height: 7px; margin: 2px 0; background: #f1ede6; border-radius: 4px; overflow: hidden; }
.fluxo .barra span { display: block; height: 100%; }
.entra { background: #198754; }
.entra.prev { background: #a3d9b8; }
.sai { background: #b02a37; }
.sai.prev { background: #eeb0b6; }
.legenda { display: inline-block; width: 10px; height: 10px; border-radius: 2px; vertical-align: middle; }
.badge.status-a_emitir { background: #fd7e14; }
.badge.status-emitida { background: #198754; }
.badge.status-cancelada { background: #343a40; }
.filtros .nav-link { padding: .3rem .8rem; }
.badge.status-separando { background: #fd7e14; }
.badge.status-saiu { background: #0d6efd; }
.badge.status-recebido { background: #198754; }
@media print { .app-nav, .d-print-none, .btn { display: none !important; } }

@media (max-width: 576px) {
  .page-head h1 { font-size: 1.3rem; }
  .table-responsive-stack td.valor { text-align: left; }
}
