/* Layout AGLOG — navbar branca com acento índigo (consistente com o login) */
:root {
    --aglog-primary: #232078;
    --aglog-primary-dark: #1a1860;
    --aglog-accent: #00adef;
}

/* Destaque rápido quando um valor é recalculado (ex.: taxa no modal de edição) */
@keyframes agFlash {
    0% { background-color: rgba(35, 32, 120, 0.20); }
    100% { background-color: transparent; }
}

.ag-flash {
    animation: agFlash 0.7s ease-out;
}

.navbar-ag {
    background: #fff;
    border-top: 3px solid var(--aglog-primary);
    border-bottom: 1px solid #e5e7eb;
    box-shadow: 0 2px 12px rgba(17, 24, 39, 0.06);
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
}
.navbar-ag .navbar-brand { display: flex; align-items: center; gap: 0.6rem; }
.navbar-ag .navbar-brand .logo { max-height: 40px; width: auto; }
.navbar-ag__name {
    font-family: "Kanit", "Montserrat", sans-serif;
    font-weight: 600;
    font-size: 1.35rem;
    letter-spacing: 0.5px;
    color: var(--aglog-primary);
    line-height: 1;
}
.navbar-ag .navbar-nav { font-size: 1rem; }
.navbar-ag .nav-link {
    color: #374151;
    font-weight: 500;
    padding: 0.55rem 0.95rem;
    border-radius: 8px;
    display: flex;
    align-items: center;
    gap: 0.4rem;
}
.navbar-ag .nav-link:hover,
.navbar-ag .nav-link:focus { color: var(--aglog-primary); background: rgba(35, 32, 120, 0.07); }
.navbar-ag .nav-link.active { color: var(--aglog-primary); font-weight: 600; background: rgba(35, 32, 120, 0.08); }

.navbar-ag .dropdown-menu {
    border: 1px solid #eef0f2;
    border-radius: 10px;
    box-shadow: 0 12px 32px rgba(17, 24, 39, 0.14);
    padding: 0.4rem 0;
    margin-top: 0.45rem;
}
.navbar-ag .dropdown-item { color: #374151; padding: 0.55rem 1.15rem; display: flex; align-items: center; gap: 0.55rem; }
.navbar-ag .dropdown-item:hover,
.navbar-ag .dropdown-item:focus { background: rgba(35, 32, 120, 0.08); color: var(--aglog-primary); }
.navbar-ag .dropdown-item i { width: 18px; text-align: center; color: var(--aglog-primary); }

/* Menu do usuário (login partial) */
.user-menu-btn {
    display: flex; align-items: center; gap: 0.6rem;
    background: rgba(35, 32, 120, 0.06);
    border: 1px solid #e5e7eb;
    border-radius: 999px;
    padding: 0.28rem 0.9rem 0.28rem 0.45rem;
    color: #374151;
}
.user-menu-btn:hover, .user-menu-btn:focus { background: rgba(35, 32, 120, 0.12); color: var(--aglog-primary); }
.user-menu-btn::after { margin-left: 0.2rem; }
.user-menu-btn .user-avatar {
    width: 36px; height: 36px; border-radius: 50%;
    background: var(--aglog-primary); color: #fff;
    display: flex; align-items: center; justify-content: center; flex: none;
}
.user-menu-info { display: flex; flex-direction: column; line-height: 1.15; text-align: left; }
.user-menu-info .u-affiliate { font-size: 0.72rem; color: #6b7280; text-transform: uppercase; }
.user-menu-info .u-name { font-size: 0.86rem; font-weight: 500; color: #374151; }

/* Rodapé índigo (consistente) */
.section-footer { background-color: var(--aglog-primary) !important; color: #fff !important; }

@media (max-width: 992px) {
    .navbar-ag .navbar-nav { padding-top: 0.5rem; }
    .navbar-ag .user-menu { margin-top: 0; }
}

/* Rodapé AGLOG (estilo agpalete, índigo) */
.footer-ag {
    background: linear-gradient(150deg, var(--aglog-primary) 0%, var(--aglog-primary-dark) 55%, #12104a 100%);
    color: #fff;
    margin-top: 3rem;
}
.footer-ag__top { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 2rem; padding: 2.5rem 0 1.75rem; }
.footer-ag__logo-chip { display: inline-flex; align-items: center; background: #fff; padding: 8px 14px; border-radius: 10px; margin-bottom: 0.9rem; }
.footer-ag__logo-chip img { height: 34px; display: block; }
.footer-ag__tagline { margin: 0 0 0.9rem; opacity: 0.92; }
.footer-ag__social { display: flex; gap: 0.5rem; }
.footer-ag__social a { width: 36px; height: 36px; border-radius: 50%; background: rgba(255,255,255,0.12); color: #fff; display: inline-flex; align-items: center; justify-content: center; transition: background-color 0.15s ease; }
.footer-ag__social a:hover { background: rgba(255,255,255,0.28); color: #fff; }
.footer-ag__name { font-family: "Kanit", "Montserrat", sans-serif; font-weight: 600; font-size: 1.2rem; display: block; margin-bottom: 0.3rem; }
.footer-ag__muted { margin: 0 0 0.4rem; color: rgba(255,255,255,0.75); font-size: 0.92rem; }
.footer-ag__bottom { border-top: 1px solid rgba(255,255,255,0.18); padding: 1rem 0; font-size: 0.85rem; color: rgba(255,255,255,0.7); }
.footer-ag .lgpd-badge { display: inline-flex; align-items: center; gap: 0.6rem; margin-top: 0.6rem; padding: 0.55rem 0.9rem; border: 1px solid rgba(255,255,255,0.2); border-radius: 10px; background: rgba(255,255,255,0.08); }
.footer-ag .lgpd-badge i { font-size: 1.2rem; color: #fff; }
.footer-ag .lgpd-badge span { display: flex; flex-direction: column; line-height: 1.25; }
.footer-ag .lgpd-badge strong { font-size: 0.8rem; font-weight: 600; color: #fff; }
.footer-ag .lgpd-badge small { font-size: 0.72rem; color: rgba(255,255,255,0.75); }
@media (max-width: 575px) { .footer-ag__top { flex-direction: column; gap: 1.25rem; } }

/* Home — hero + cards de atalho (estilo agpalete, índigo) */
.home-hero { padding: 2.5rem 1rem 3rem; }
.home-hero__header { text-align: center; margin-bottom: 2rem; }
.home-hero__title { font-family: "Kanit","Montserrat",sans-serif; font-weight: 600; font-size: 2rem; color: #2b2b2b; margin: 0; }
.home-hero__subtitle { color: #6b7280; margin: 0.35rem 0 0; }
.home-section-title { font-family: "Kanit","Montserrat",sans-serif; font-weight: 600; font-size: 1.3rem; color: #2b2b2b; text-align: center; margin: 2.75rem 0 1.5rem; }
.home-card {
    display: flex; flex-direction: column; align-items: center; text-align: center; gap: 0.35rem;
    background: #fff; border: 1px solid #eef0f2; border-radius: 16px;
    box-shadow: 0 6px 20px rgba(17, 24, 39, 0.06);
    padding: 1.75rem 1.25rem; height: 100%; text-decoration: none;
    transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}
.home-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 32px rgba(35, 32, 120, 0.16);
    border-color: rgba(35, 32, 120, 0.35);
    text-decoration: none;
}
.home-card__icon {
    width: 64px; height: 64px; border-radius: 50%;
    background: rgba(35, 32, 120, 0.10); color: var(--aglog-primary);
    display: flex; align-items: center; justify-content: center; font-size: 1.6rem; margin-bottom: 0.5rem;
    transition: background-color 0.15s ease, color 0.15s ease;
}
.home-card:hover .home-card__icon { background: var(--aglog-primary); color: #fff; }
.home-card__label { font-family: "Kanit","Montserrat",sans-serif; font-weight: 600; font-size: 1.05rem; color: #2b2b2b; }
.home-card__hint { font-size: 0.82rem; color: #6b7280; }

/* Fix mobile: a regra global footer{white-space:nowrap} (site.css) era herdada pelo rodapé
   e o endereço/copyright não quebravam, estourando a largura da página no celular. */
.footer-ag, .footer-ag * { white-space: normal; }
.footer-ag__bottom { overflow-wrap: anywhere; }

/* Home — toggle Lista/Grade (somente celular) */
.home-view-toggle { margin: -0.25rem 0 1.5rem; }
.hvt-btn { border: 1px solid #e5e7eb; background: #fff; color: #6b7280; padding: 0.45rem 0.72rem; font-size: 0.95rem; font-weight: 500; display: inline-flex; align-items: center; gap: 0.4rem; cursor: pointer; }
.hvt-btn:first-child { border-radius: 999px 0 0 999px; }
.hvt-btn:last-child { border-radius: 0 999px 999px 0; border-left: 0; }
.hvt-btn.active { background: var(--aglog-primary); color: #fff; border-color: var(--aglog-primary); }
.hvt-btn:focus { outline: none; }
@media (max-width: 575.98px) {
    .home-hero[data-view="list"] .row > * { width: 100%; }
    .home-hero[data-view="grid"] .row > * { width: 50%; }
    .home-hero[data-view="grid"] .home-card { padding: 1.15rem 0.55rem; }
    .home-hero[data-view="grid"] .home-card__hint { display: none; }
    .home-hero[data-view="grid"] .home-card__icon { width: 54px; height: 54px; font-size: 1.35rem; }
    .home-hero[data-view="grid"] .home-card__label { font-size: 0.95rem; }
}

/* ===== Padrão de telas internas (estilo agpalete, índigo) — page-ag / card-ag / tabela ===== */
.page-ag { padding-bottom: 2rem; }
.page-ag__header { margin: 0.5rem 0 1.5rem; }
.page-ag__header--com-acao { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.page-ag__header--com-acao .btn { white-space: nowrap; }
.page-ag__title { font-family: "Kanit","Montserrat",sans-serif; font-weight: 600; font-size: 1.7rem; color: #2b2b2b; margin: 0; }
.page-ag__title i { color: var(--aglog-primary); font-size: 1.4rem; }
.page-ag__subtitle { color: #6b7280; margin: 0.25rem 0 0; }
.page-ag__numero { color: var(--aglog-primary); font-weight: 600; }

.card-ag { background: #fff; border: 1px solid #eef0f2; border-radius: 14px; box-shadow: 0 6px 20px rgba(17,24,39,0.06); padding: 1.25rem 1.5rem; }
.card-ag--table { padding: 0; }
.card-ag__divisor { margin: 1.1rem -1.5rem; border: 0; border-top: 1px solid #eef0f2; opacity: 1; }
.card-header-ag { background: var(--aglog-primary); color: #fff; border-bottom: 0; }
.card-header-ag .btn-close { filter: invert(1) grayscale(1) brightness(2); }

.btn-ag { --bs-btn-bg: var(--aglog-primary); --bs-btn-border-color: var(--aglog-primary); --bs-btn-color: #fff; --bs-btn-hover-bg: var(--aglog-primary-dark); --bs-btn-hover-border-color: var(--aglog-primary-dark); --bs-btn-hover-color: #fff; --bs-btn-active-bg: var(--aglog-primary-dark); --bs-btn-active-border-color: var(--aglog-primary-dark); --bs-btn-active-color: #fff; --bs-btn-disabled-bg: var(--aglog-primary); --bs-btn-disabled-border-color: var(--aglog-primary); --bs-btn-disabled-color: #fff; background: var(--aglog-primary); border: 1px solid var(--aglog-primary); color: #fff; font-weight: 600; border-radius: 8px; transition: background-color 0.15s ease; }
.btn-ag:hover { background: var(--aglog-primary-dark); border-color: var(--aglog-primary-dark); color: #fff; }
.btn-ag:focus, .btn-ag:focus-visible, .btn-ag:active, .btn-ag.active, .btn-ag:active:focus { background-color: var(--aglog-primary-dark) !important; border-color: var(--aglog-primary-dark) !important; color: #fff !important; box-shadow: 0 0 0 0.25rem rgba(35,32,120,0.25); }
.btn-ag:disabled, .btn-ag.disabled { background: var(--aglog-primary); border-color: var(--aglog-primary); color: #fff; opacity: 0.65; }
.btn-outline-ag { background: #fff; border: 1px solid var(--aglog-primary); color: var(--aglog-primary); font-weight: 600; border-radius: 8px; transition: background-color 0.15s ease, color 0.15s ease; }
.btn-outline-ag:hover { background: var(--aglog-primary); color: #fff; }

.search-bar { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: flex-end; }
.search-bar__field { flex: 2 1 260px; }
.search-bar__filter { flex: 1 1 160px; min-width: 150px; max-width: 240px; }
.search-bar__actions { display: flex; gap: 0.5rem; align-items: flex-end; padding-bottom: 1px; margin-left: auto; }
.search-bar__actions .btn { white-space: nowrap; }
.search-bar .form-label { font-size: 0.82rem; font-weight: 600; color: #6b7280; margin-bottom: 0.3rem; }
.search-bar .input-group-text { background: #fff; color: var(--aglog-primary); }

.card-ag--table thead th:first-child { border-top-left-radius: 14px; }
.card-ag--table thead th:last-child { border-top-right-radius: 14px; }
.card-ag--table tbody tr:last-child td:first-child { border-bottom-left-radius: 14px; }
.card-ag--table tbody tr:last-child td:last-child { border-bottom-right-radius: 14px; }
.card-ag--table thead th { background: #f8f9fa; color: #374151; font-family: "Kanit","Montserrat",sans-serif; font-weight: 600; font-size: 0.92rem; padding: 0.9rem 1rem; border-bottom: 2px solid #eef0f2; }
.card-ag--table tbody td { padding: 0.75rem 1rem; color: #374151; }
.card-ag--table tbody tr:hover { background: rgba(35,32,120,0.03); }
.linha-oculta { display: none !important; }

.badge-perfil { display: inline-block; background: rgba(35,32,120,0.08); color: var(--aglog-primary); font-size: 0.8rem; font-weight: 600; padding: 0.25rem 0.6rem; border-radius: 20px; }
.badge-status { display: inline-block; font-size: 0.78rem; font-weight: 600; padding: 0.22rem 0.6rem; border-radius: 20px; }
.badge-status--ativo { background: rgba(25,135,84,0.10); color: #198754; }
.badge-status--inativo { background: rgba(220,53,69,0.10); color: #dc3545; }

/* Placas em badges empilhados (relatório gerencial) */
.placas-cell { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; }
.placa-badge { background: rgba(35,32,120,0.07); color: var(--aglog-primary); border: 1px solid rgba(35,32,120,0.15); border-radius: 6px; padding: 2px 8px; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.5px; white-space: nowrap; }

/* Cabeçalho do relatório gerencial não quebra linha */
#tbGerencial thead th { white-space: nowrap; }

.btn-acao { width: 34px; height: 34px; padding: 0; display: inline-flex; align-items: center; justify-content: center; border: 1px solid #e5e7eb; border-radius: 8px; background: #fff; color: #6b7280; font-size: 0.85rem; transition: all 0.15s ease; }
.btn-acao:hover { border-color: var(--aglog-primary); color: var(--aglog-primary); background: rgba(35,32,120,0.05); }
.btn-acao--danger:hover { border-color: #dc3545; color: #dc3545; background: rgba(220,53,69,0.06); }
.btn-acao--ok:hover { border-color: #198754; color: #198754; background: rgba(25,135,84,0.06); }
.btn-acao.disabled, .btn-acao:disabled { opacity: 0.5; pointer-events: none; }

.empty-result { text-align: center; color: #9ca3af; padding: 3rem 1rem; }
.empty-result i { font-size: 2rem; margin-bottom: 0.75rem; display: block; }
.empty-result p { margin: 0; font-size: 1rem; }
.result-count { color: #6b7280; font-size: 0.88rem; margin: 0 0 0.6rem 0.25rem; }

/* ===== Diff de logs (mostra só os campos alterados: antes → depois) ===== */
.log-diff { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.35rem; }
.log-diff li { display: flex; align-items: center; flex-wrap: wrap; gap: 0.4rem; font-size: 0.85rem; }
.log-diff__campo { font-weight: 600; color: #374151; }
.log-diff__de { color: #9ca3af; text-decoration: line-through; }
.log-diff__seta { color: #c0c4cc; font-size: 0.7rem; }
.log-diff__para { font-weight: 600; color: var(--aglog-primary); background: rgba(35,32,120,0.07); padding: 0.05rem 0.5rem; border-radius: 6px; }

/* ===== Cards de resumo (stat), pills de tempo e toggles de etapa (Relatório Gerencial) ===== */
.stat-ag { display: flex; align-items: center; gap: 1rem; background: #fff; border: 1px solid #eef0f2; border-radius: 14px; box-shadow: 0 6px 20px rgba(17,24,39,0.06); padding: 1.1rem 1.25rem; height: 100%; }
.stat-ag__icon { flex-shrink: 0; width: 48px; height: 48px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; font-size: 1.2rem; }
.stat-ag__icon--azul { background: rgba(35,32,120,0.10); color: var(--aglog-primary); }
.stat-ag__icon--verde { background: rgba(25,135,84,0.12); color: #198754; }
.stat-ag__icon--ambar { background: rgba(217,164,6,0.16); color: #b9860b; }
.stat-ag__label { color: #6b7280; font-size: 0.85rem; font-weight: 600; margin: 0 0 0.15rem 0; }
.stat-ag__value { color: #1f2937; font-size: 1.5rem; font-weight: 700; line-height: 1.1; font-family: "Kanit","Montserrat",sans-serif; }

.tempo-pill { display: inline-block; background: rgba(35,32,120,0.08); color: var(--aglog-primary); font-weight: 600; font-size: 0.8rem; padding: 0.15rem 0.55rem; border-radius: 20px; white-space: nowrap; }
.tempo-pill--total { background: rgba(25,135,84,0.12); color: #198754; }
.tempo-pill--skip { background: transparent; color: #9ca3af; font-weight: 500; font-style: italic; padding-left: 0; }

.stage-toggle { border: 1px solid var(--aglog-primary); background: var(--aglog-primary); color: #fff; font-size: 0.8rem; font-weight: 600; padding: 0.32rem 0.9rem; border-radius: 20px; transition: all 0.15s ease; }
.stage-toggle:hover { filter: brightness(1.1); }
.stage-toggle.off { background: #fff; color: #9ca3af; border-color: #e5e7eb; }

.card-ag--table thead th.grupo { text-align: center; letter-spacing: 0.3px; }
.card-ag--table thead th.grupo-prep, .card-ag--table thead th.grupo-prep { background: rgba(35,32,120,0.06) !important; }
.card-ag--table thead th.grupo-emp { background: rgba(25,135,84,0.07) !important; }
.card-ag--table thead th.grupo-amar { background: rgba(217,164,6,0.10) !important; }

.hide-prep .col-prep, .hide-emp .col-emp, .hide-amar .col-amar { display: none !important; }

.aviso-lgpd { display: flex; gap: 0.6rem; align-items: flex-start; text-align: left; background: #fdf6ec; border: 1px solid rgba(180,120,0,0.25); border-left: 4px solid #d9a406; border-radius: 10px; padding: 0.7rem 0.9rem; font-size: 0.85rem; color: #6b5523; }
.aviso-lgpd i { color: #d9a406; margin-top: 2px; }

.usuario-chip { display: flex; align-items: center; gap: 0.6rem; background: #f8f9fa; border: 1px solid #eef0f2; border-radius: 10px; padding: 0.6rem 0.9rem; font-weight: 600; color: #374151; }
.usuario-chip i { color: var(--aglog-primary); font-size: 1.2rem; }
.validation-alert { background: #fdecea; border: 1px solid rgba(220,53,69,0.25); border-left: 4px solid #dc3545; border-radius: 8px; padding: 0.55rem 0.8rem; color: #b02a37; font-size: 0.85rem; }

.card-ag .form-control:focus, .card-ag .form-select:focus, .modal .form-control:focus, .modal .form-select:focus { border-color: var(--aglog-primary); box-shadow: 0 0 0 0.2rem rgba(35,32,120,0.12); }
.modal .input-group-text { background: #fff; color: var(--aglog-primary); }

@media (max-width: 768px) {
    .search-bar__field, .search-bar__filter { flex: 1 1 100%; max-width: none; min-width: 0; }
    .search-bar__actions { width: 100%; margin-left: 0; flex-direction: column; align-items: stretch; }
    .search-bar__actions .btn { width: 100%; }
    .card-ag--table { background: transparent; border: 0; box-shadow: none; }
    .card-ag--table table, .card-ag--table tbody { display: block; width: 100%; }
    .card-ag--table thead { display: none; }
    .card-ag--table tbody tr { display: block; background: #fff; border: 1px solid #eef0f2; border-radius: 14px; box-shadow: 0 6px 20px rgba(17,24,39,0.06); margin-bottom: 0.9rem; padding: 0.4rem 0; }
    .card-ag--table tbody tr:hover { background: #fff; }
    .card-ag--table tbody tr:hover > td { --bs-table-bg-state: transparent !important; box-shadow: none !important; }
    .card-ag--table tbody td { display: flex; justify-content: space-between; align-items: center; gap: 1rem; border: 0 !important; padding: 0.45rem 1rem; text-align: right; white-space: normal !important; }
    .card-ag--table tbody td[data-label]::before { content: attr(data-label); font-family: "Kanit","Montserrat",sans-serif; font-weight: 600; font-size: 0.75rem; letter-spacing: 0.3px; text-transform: uppercase; color: #9ca3af; text-align: left; flex-shrink: 0; }
    .card-ag--table tbody td:last-child:not([data-label]) { justify-content: flex-end; border-top: 1px solid #f3f4f6 !important; margin-top: 0.3rem; padding-top: 0.6rem; }
    .card-ag .row > [class*="col-"], .modal .row > [class*="col-"] { flex: 0 0 100%; width: 100%; max-width: 100%; }
}

/* ===== Paginação genérica (ag-pagination) ===== */
.ag-pagination { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 0.75rem; margin-top: 1rem; }
.ag-pagination__info { display: flex; align-items: center; gap: 0.9rem; color: #6b7280; font-size: 0.85rem; }
.ag-pagination__size-wrap { display: inline-flex; align-items: center; gap: 0.4rem; margin: 0; white-space: nowrap; }
.ag-pagination__size { width: auto; }
.ag-pagination .pagination { --bs-pagination-color: var(--aglog-primary); --bs-pagination-hover-color: var(--aglog-primary-dark); --bs-pagination-focus-color: var(--aglog-primary-dark); --bs-pagination-active-bg: var(--aglog-primary); --bs-pagination-active-border-color: var(--aglog-primary); --bs-pagination-focus-box-shadow: 0 0 0 0.2rem rgba(35,32,120,0.18); }
.ag-pagination .page-link { cursor: pointer; }
@media (max-width: 575.98px) { .ag-pagination { justify-content: center; } .ag-pagination__info { justify-content: center; width: 100%; } }

/* ===== Loading (overlay AG, índigo) — sobrescreve o .progresso/.fundoEscuro antigos ===== */
.fundoEscuro {
    position: fixed; inset: 0; top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(17, 24, 39, 0.50); opacity: 1; backdrop-filter: blur(3px);
    z-index: 99998; animation: ag-overlay-in 0.22s ease;
}
.progresso {
    position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%);
    margin: 0; width: auto; height: auto; border: 0;
    display: flex; flex-direction: column; align-items: center; gap: 0.95rem;
    background: #fff; border-radius: 18px; box-shadow: 0 24px 70px rgba(17, 24, 39, 0.32);
    padding: 1.9rem 2.6rem; z-index: 99999; text-align: center;
    animation: ag-pop-in 0.26s cubic-bezier(0.16, 1, 0.3, 1);
}
.progresso__spinner {
    width: 52px; height: 52px; border-radius: 50%;
    background: conic-gradient(from 0deg, rgba(35, 32, 120, 0) 10%, var(--aglog-accent) 55%, var(--aglog-primary) 100%);
    -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 5px), #000 calc(100% - 4px));
            mask: radial-gradient(farthest-side, transparent calc(100% - 5px), #000 calc(100% - 4px));
    animation: progresso-girar 0.7s linear infinite;
}
.progresso__texto {
    font-family: "Kanit","Montserrat",sans-serif; font-weight: 500; font-size: 0.95rem;
    color: #374151; letter-spacing: 0.2px;
}
.progresso__dots::after { content: ""; animation: ag-dots 1.4s steps(4, end) infinite; }
@keyframes progresso-girar { to { transform: rotate(360deg); } }
@keyframes ag-overlay-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes ag-pop-in { from { opacity: 0; transform: translate(-50%, -50%) scale(0.92); } to { opacity: 1; transform: translate(-50%, -50%) scale(1); } }
@keyframes ag-dots { 0% { content: ""; } 25% { content: "."; } 50% { content: ".."; } 75% { content: "..."; } 100% { content: ""; } }

/* Loading local da lista (paginação/busca sem overlay de tela cheia) */
.ag-list-loading { position: relative; min-height: 90px; pointer-events: none; }
.ag-list-loading > * { opacity: 0.45; transition: opacity 0.12s ease; }
.ag-list-loading::after {
    content: ""; position: absolute; top: 38px; left: 50%; width: 34px; height: 34px; margin-left: -17px;
    border-radius: 50%; border: 3px solid rgba(35, 32, 120, 0.15); border-top-color: var(--aglog-primary);
    animation: progresso-girar 0.7s linear infinite; z-index: 6;
}

/* ===== Modals de formulário: validação, senha, animação ===== */
.feedback-validacao { font-size: 0.8rem; margin-top: 0.25rem; display: block; }
.feedback-validacao--ok { color: #198754; }
.feedback-validacao--erro { color: #dc3545; }
.feedback-validacao i { margin-right: 0.25rem; }

.pw-strength { display: flex; gap: 4px; margin-top: 0.55rem; }
.pw-strength span { height: 5px; flex: 1; border-radius: 3px; background: #e5e7eb; transition: background-color 0.2s ease; }
.pw-strength--1 span:nth-child(-n+1) { background: #dc3545; }
.pw-strength--2 span:nth-child(-n+2) { background: #f59e0b; }
.pw-strength--3 span:nth-child(-n+3) { background: #3b82f6; }
.pw-strength--4 span:nth-child(-n+4) { background: #198754; }
.pw-strength__rotulo { font-size: 0.75rem; color: #6b7280; margin-top: 0.25rem; }
.pw-rules { list-style: none; margin: 0.5rem 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0.25rem 0.9rem; }
.pw-rules li { font-size: 0.8rem; color: #9ca3af; display: flex; align-items: center; gap: 0.4rem; }
.pw-rules li i { font-size: 0.68rem; }
.pw-rules li.ok { color: #198754; }
.pw-rules li.ok i { color: #198754; }
@media (max-width: 480px) { .pw-rules { grid-template-columns: 1fr; } }

/* Animação de abertura das modals (scale + rise) */
.modal.fade .modal-dialog { transform: scale(0.95) translateY(12px); transition: transform 0.22s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.22s ease; }
.modal.show .modal-dialog { transform: none; }

/* Select2 alinhado ao tema (busca em Empresa/Grupo) */
.select2-container { width: 100% !important; }
.select2-container--bootstrap .select2-selection--single,
.select2-container .select2-selection--single { min-height: 38px; display: flex; align-items: center; }
.select2-container--bootstrap.select2-container--focus .select2-selection,
.select2-container--bootstrap.select2-container--open .select2-selection { border-color: var(--aglog-primary); box-shadow: 0 0 0 0.2rem rgba(35, 32, 120, 0.12); }
.select2-results__option--highlighted[aria-selected] { background-color: var(--aglog-primary) !important; }

/* Sticky footer: área de conteúdo cresce e empurra o rodapé pra base (sem vão em telas curtas) */
.content-wrap { flex: 1 0 auto; }

/* Inputs limpos em modais/cards (sobrescreve CSS legado: fundo cinza + UPPERCASE) */
.modal .form-control, .modal .form-select,
.card-ag .form-control, .card-ag .form-select,
.search-bar .form-control, .search-bar .form-select {
    background-color: #fff;
    color: #374151;
    text-transform: none;
}
.modal .form-control::placeholder,
.card-ag .form-control::placeholder,
.search-bar .form-control::placeholder { text-transform: none; color: #adb5bd; }
.modal .input-group-text, .card-ag .input-group-text, .search-bar .input-group-text { background-color: #f8f9fa; }

/* Tom Select — combo moderno (Perfil/Empresa), tema índigo (lib local) */
.ts-wrapper { width: 100%; }
.ts-wrapper.single .ts-control { min-height: 38px; border: 1px solid #dee2e6; border-radius: 8px; background: #fff; padding: 0.32rem 0.7rem; box-shadow: none; }
.ts-wrapper.focus .ts-control { border-color: var(--aglog-primary); box-shadow: 0 0 0 0.2rem rgba(35,32,120,0.12); }
.ts-control, .ts-control input { color: #374151; }
.ts-dropdown { z-index: 1065; border: 1px solid #eef0f2; border-radius: 10px; box-shadow: 0 12px 32px rgba(17,24,39,0.16); margin-top: 4px; overflow: hidden; }
.ts-dropdown .option { padding: 0.5rem 0.85rem; font-size: 0.9rem; color: #374151; }
.ts-dropdown .option:hover, .ts-dropdown .option.active { background: rgba(35,32,120,0.08); color: var(--aglog-primary); }
.ts-dropdown .active.selected, .ts-dropdown .selected { color: var(--aglog-primary); }
.ts-dropdown-content { max-height: 240px; }

/* Wizard (passo a passo) dentro de modais */
.wizard-ag__steps { display: flex; gap: 0; padding: 0.4rem 1.25rem 0; }
.wizard-ag__step { flex: 1; display: flex; align-items: center; justify-content: center; gap: 0.5rem; padding: 0.65rem 0.5rem; color: #9ca3af; font-weight: 600; font-size: 0.9rem; border-bottom: 3px solid #eef0f2; cursor: default; user-select: none; }
.wizard-ag__step.active { color: var(--aglog-primary); border-bottom-color: var(--aglog-primary); }
.wizard-ag__step.done { color: #198754; border-bottom-color: #198754; cursor: pointer; }
.wizard-ag__num { width: 24px; height: 24px; border-radius: 50%; background: #eef0f2; color: #9ca3af; display: inline-flex; align-items: center; justify-content: center; font-size: 0.8rem; flex: none; }
.wizard-ag__step.active .wizard-ag__num { background: var(--aglog-primary); color: #fff; }
.wizard-ag__step.done .wizard-ag__num { background: #198754; color: #fff; }
.wizard-step { animation: ag-fade-step 0.2s ease; }
@keyframes ag-fade-step { from { opacity: 0; transform: translateX(6px); } to { opacity: 1; transform: none; } }

/* Tom Select: controle em linha única (nome longo com reticências, altura igual aos vizinhos) */
.ts-wrapper.single .ts-control { flex-wrap: nowrap; align-items: center; }
.ts-wrapper.single .ts-control > .item { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; max-width: 100%; }
.ts-wrapper.single .ts-control > input { flex: 1 1 auto; min-width: 2ch; }
.ts-dropdown .option { white-space: normal; line-height: 1.25; }

/* Larguras dos filtros: Empresa maior, Status menor */
.search-bar__filter--wide { flex: 2 1 280px; max-width: 380px; }
.search-bar__filter--narrow { flex: 0 1 140px; min-width: 110px; max-width: 150px; }

/* Realça o Tom Select quando o <select> obrigatório está inválido */
.ts-wrapper:has(select.is-invalid) .ts-control { border-color: #dc3545; }

/* Menu de conta (padrão profissional): avatar com iniciais + status, dropdown com cabeçalho */
.user-avatar { position: relative; font-weight: 600; font-size: 0.85rem; }
.user-status, .user-avatar .user-icon { position: absolute; bottom: -1px; right: -1px; width: 11px; height: 11px; border-radius: 50%; border: 2px solid #fff; background-color: currentColor; color: #9ca3af; }
.user-avatar--lg { width: 44px; height: 44px; border-radius: 50%; background: var(--aglog-primary); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 600; flex: none; }
.user-menu__header { display: flex; align-items: center; gap: 0.7rem; padding: 0.7rem 1rem 0.4rem; }
.user-menu__id { display: flex; flex-direction: column; line-height: 1.2; }
.user-menu__id strong { font-size: 0.9rem; color: #2b2b2b; }
.user-menu__id small { font-size: 0.75rem; color: #6b7280; text-transform: uppercase; }
.user-menu .dropdown-menu { min-width: 230px; }

/* Alinhamento vertical da barra: logo, avatar e hambúrguer no MESMO eixo */
.navbar-ag > .container-fluid { align-items: center; }
.navbar-ag .navbar-brand { margin: 0; padding: 0; display: flex; align-items: center; }
.navbar-ag .order-lg-last { align-self: center; }
@media (max-width: 991.98px) {
    .navbar-ag .order-lg-last { align-items: center; gap: 0.5rem; }
    .navbar-ag .user-menu { display: flex; align-items: center; margin: 0; }
    .navbar-ag .user-menu-btn { background: transparent; border: 0; padding: 0; display: inline-flex; align-items: center; }
    .navbar-ag .user-menu-btn::after { display: none; }
    .navbar-ag .navbar-toggler { padding: 0 0.4rem; display: inline-flex; align-items: center; }
}

/* ===== Picker de empresas (lista de checkboxes com filtro + Todas/Nenhuma + contador) ===== */
.picker-empresas { border: 1px solid #e5e7eb; border-radius: 10px; overflow: hidden; background: #fff; }
.picker-empresas__topo { display: flex; gap: 0.5rem; align-items: center; padding: 0.6rem; border-bottom: 1px solid #eef0f2; background: #f8f9fa; flex-wrap: wrap; }
.picker-empresas__busca { flex: 1 1 220px; }
.picker-empresas__busca .input-group-text { background: #fff; color: #9ca3af; }
.picker-empresas__acoes { display: flex; gap: 0.35rem; }
.picker-empresas__lista { max-height: 220px; overflow-y: auto; padding: 0.35rem 0; }
.picker-empresas__item { display: flex; align-items: center; gap: 0.6rem; padding: 0.45rem 0.9rem; margin: 0; cursor: pointer; font-size: 0.9rem; color: #374151; }
.picker-empresas__item:hover { background: rgba(35, 32, 120, 0.05); }
.picker-empresas__item input { margin: 0; flex-shrink: 0; cursor: pointer; }
.picker-empresas__item input:checked + span { color: var(--aglog-primary); font-weight: 600; }
.picker-empresas__item .form-check-input:checked { background-color: var(--aglog-primary); border-color: var(--aglog-primary); }
.picker-empresas__rodape { padding: 0.45rem 0.9rem; border-top: 1px solid #eef0f2; background: #f8f9fa; font-size: 0.8rem; color: #6b7280; }

/* ===== Menu de ações por linha (dropdown ⋮) ===== */
.acoes-menu { display: inline-block; }
.acoes-menu .btn-acao::after { display: none; }
.acoes-menu .dropdown-menu { border: 1px solid #e5e7eb; border-radius: 10px; box-shadow: 0 10px 30px rgba(17,24,39,0.12); padding: 0.35rem; min-width: 190px; }
.acoes-menu .dropdown-item { display: flex; align-items: center; gap: 0.6rem; padding: 0.5rem 0.7rem; border-radius: 8px; font-size: 0.9rem; color: #374151; cursor: pointer; }
.acoes-menu .dropdown-item i { width: 18px; text-align: center; color: var(--aglog-primary); }
.acoes-menu .dropdown-item:hover, .acoes-menu .dropdown-item:focus { background: rgba(35,32,120,0.08); color: var(--aglog-primary); }
.acoes-menu .acoes-menu__danger, .acoes-menu .acoes-menu__danger i { color: #dc3545; }
.acoes-menu .acoes-menu__danger:hover, .acoes-menu .acoes-menu__danger:focus { background: rgba(220,53,69,0.1); color: #dc3545; }
.acoes-menu .dropdown-divider { margin: 0.35rem 0.25rem; }
