/* ============================================================
   GetPublic Admin - Layout Moderno (Bootstrap 5 + FA6)
   Paleta verde alinhada ao system/assets/css/modern.css
   ============================================================ */

:root {
    --gp-primary: #1e7e34;
    --gp-primary-dark: #155d27;
    --gp-primary-light: #e8f5e9;
    --gp-accent: #28a745;
    --gp-accent-dark: #1e7e34;
    --gp-accent-light: #e8f5e9;
    --gp-ink: #1f2733;
    --gp-muted: #6b7785;
    --gp-line: #e6eaf0;
    --gp-bg: #f4f6f9;
    --gp-card-bg: #ffffff;
    --gp-radius: 14px;
    --gp-radius-sm: 10px;
    --gp-shadow: 0 2px 12px rgba(16, 38, 73, 0.07);
    --gp-shadow-hover: 0 8px 26px rgba(16, 38, 73, 0.13);
    --gp-font: "Inter", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --gp-sidebar-width: 270px;
    --gp-topbar-height: 56px;
}

html {
    height: 100%;
}

body.gp-admin-modern {
    font-family: var(--gp-font);
    background: var(--gp-bg);
    color: var(--gp-ink);
    margin: 0;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

/* --------------------------- Shell --------------------------- */
.gp-admin-shell {
    min-height: 100vh;
    display: flex;
    background: var(--gp-bg);
}

.gp-admin-sidebar {
    width: var(--gp-sidebar-width);
    flex-shrink: 0;
    background: var(--gp-primary-dark);
    color: #fff;
    display: flex;
    flex-direction: column;
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    z-index: 1040;
    overflow-y: auto;
    transition: transform 0.25s ease;
}

.gp-admin-sidebar-brand {
    padding: 20px 18px 16px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.gp-admin-sidebar-brand a {
    text-decoration: none;
    color: inherit;
    display: block;
}

.gp-admin-sidebar-brand img {
    max-height: 40px;
    width: auto;
    margin-bottom: 10px;
    filter: brightness(0) invert(1);
}

.gp-admin-sidebar-brand .gp-admin-title,
.gp-admin-sidebar-brand .gp-admin-municipio {
    font-size: 15px;
    font-weight: 700;
    line-height: 1.3;
    margin: 0 0 4px;
}

.gp-admin-sidebar-brand .gp-admin-subtitle {
    font-size: 12px;
    opacity: 0.85;
    margin: 0;
    line-height: 1.35;
}

.gp-admin-nav {
    padding: 12px 10px 24px;
    flex: 1;
}

.gp-admin-nav .nav-link {
    color: rgba(255, 255, 255, 0.88);
    border-radius: var(--gp-radius-sm);
    padding: 10px 14px;
    font-size: 14px;
    display: flex;
    align-items: center;
    gap: 10px;
    transition: background 0.15s ease, color 0.15s ease;
    text-decoration: none;
}

.gp-admin-nav .nav-link:hover,
.gp-admin-nav .nav-link:focus {
    color: #fff;
    background: rgba(255, 255, 255, 0.14);
}

.gp-admin-nav .nav-link.active {
    color: #fff;
    background: rgba(255, 255, 255, 0.22);
    font-weight: 600;
    box-shadow: inset 3px 0 0 rgba(255, 255, 255, 0.65);
}

.gp-admin-nav .gp-nav-sub .nav-link.active {
    box-shadow: inset 3px 0 0 var(--gp-accent);
    background: rgba(40, 167, 69, 0.22);
}

.gp-admin-nav .nav-link.gp-nav-external:hover {
    background: rgba(255, 255, 255, 0.1);
}

.gp-admin-nav .gp-nav-external-icon {
    font-size: 11px;
    opacity: 0.7;
}

.gp-admin-nav .nav-link .gp-nav-chevron {
    margin-left: auto;
    font-size: 11px;
    opacity: 0.75;
    transition: transform 0.2s ease;
}

.gp-admin-nav .nav-link[aria-expanded="true"] .gp-nav-chevron {
    transform: rotate(-90deg);
}

.gp-admin-nav .gp-nav-sub {
    padding-left: 8px;
    margin-top: 2px;
}

.gp-admin-nav .gp-nav-sub .nav-link {
    font-size: 13px;
    padding: 8px 14px 8px 32px;
}

.gp-admin-nav .nav-link i {
    width: 18px;
    text-align: center;
    flex-shrink: 0;
    opacity: 0.9;
}

.gp-admin-nav .dropdown-toggle::after {
    margin-left: auto;
}

.gp-admin-nav .dropdown-menu {
    background: #fff;
    border: 1px solid var(--gp-line);
    border-radius: var(--gp-radius-sm);
    box-shadow: var(--gp-shadow-hover);
    padding: 6px;
    margin-top: 4px;
}

.gp-admin-nav .dropdown-item {
    border-radius: 8px;
    font-size: 13px;
    padding: 8px 12px;
    color: var(--gp-ink);
}

.gp-admin-nav .dropdown-item:hover,
.gp-admin-nav .dropdown-item:focus {
    background: var(--gp-primary-light);
    color: var(--gp-primary-dark);
}

.gp-admin-nav .dropdown-item i {
    width: 18px;
    margin-right: 8px;
    color: var(--gp-primary);
}

.gp-admin-nav .dropdown-divider {
    margin: 6px 0;
    border-color: var(--gp-line);
}

.gp-admin-nav .gp-nav-section {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: rgba(255, 255, 255, 0.5);
    padding: 14px 14px 6px;
    margin: 0;
}

.gp-admin-sidebar-user {
    padding: 14px 18px;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
    margin-top: auto;
}

.gp-admin-sidebar-user .gp-user-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.gp-sidebar-user-name {
    font-weight: 600;
    line-height: 1.3;
}

.gp-sidebar-user-email {
    opacity: 0.75;
    font-size: 12px;
}

.gp-topbar-context {
    font-size: 13px;
    color: var(--gp-muted);
}

.gp-topbar-context i {
    color: var(--gp-primary);
}

/* ------------------------ Main + Topbar ---------------------- */
.gp-admin-main {
    flex: 1;
    min-width: 0;
    margin-left: var(--gp-sidebar-width);
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

.gp-admin-topbar {
    background: #fff;
    border-bottom: 1px solid var(--gp-line);
    box-shadow: var(--gp-shadow);
    min-height: var(--gp-topbar-height);
    display: flex;
    align-items: center;
    padding: 0 20px;
    gap: 16px;
    position: sticky;
    top: 0;
    z-index: 1030;
}

.gp-admin-topbar-toggle {
    display: none;
    border: 1px solid var(--gp-line);
    background: #fff;
    color: var(--gp-primary);
    border-radius: 8px;
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    cursor: pointer;
    padding: 0;
}

.gp-admin-topbar-breadcrumb {
    flex: 1;
    min-width: 0;
}

.gp-admin-topbar-breadcrumb .breadcrumb {
    margin: 0;
    font-size: 13px;
}

.gp-admin-topbar-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 20px;
    font-size: 13px;
    color: var(--gp-muted);
    flex: 1;
    min-width: 0;
}

.gp-admin-topbar-user {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
    color: var(--gp-muted);
}

.gp-admin-topbar-user strong {
    color: var(--gp-ink);
    font-weight: 600;
}

.gp-admin-topbar-user .gp-user-badge {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--gp-primary-light);
    color: var(--gp-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
}

.gp-admin-topbar-meta strong {
    color: var(--gp-ink);
}

.gp-admin-topbar-meta i {
    color: var(--gp-primary);
    margin-right: 5px;
}

.gp-admin-topbar-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
}

.gp-admin-topbar .btn-logout {
    font-size: 13px;
}

.gp-admin-content {
    flex: 1;
    padding: 24px;
}

/* --------------------------- Footer -------------------------- */
.gp-admin-footer {
    background: #fff;
    border-top: 1px solid var(--gp-line);
    padding: 16px 24px;
    font-size: 12px;
    color: var(--gp-muted);
    margin-top: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px;
}

/* ----------------------------- Cards --------------------------- */
.gp-admin-modern .gp-card {
    background: var(--gp-card-bg);
    border: 1px solid var(--gp-line);
    border-radius: var(--gp-radius);
    box-shadow: var(--gp-shadow);
}

.gp-admin-modern .gp-card-pad {
    padding: 26px;
}

.gp-admin-modern .gp-icon-badge {
    width: 52px;
    height: 52px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 22px;
}

.gp-admin-modern .gp-icon-badge.is-primary {
    background: var(--gp-primary-light);
    color: var(--gp-primary);
}

.gp-admin-modern .gp-icon-badge.is-accent {
    background: var(--gp-accent-light);
    color: var(--gp-accent);
}

.gp-admin-modern .gp-stat-grid {
    margin-bottom: 18px;
    --bs-gutter-x: 1.25rem;
    --bs-gutter-y: 0.75rem;
}

.gp-admin-modern .gp-stat-card {
    background: var(--gp-card-bg);
    border: 1px solid var(--gp-line);
    border-radius: var(--gp-radius-sm);
    box-shadow: 0 1px 2px rgba(16, 38, 73, 0.035);
    padding: 12px 14px;
    height: 100%;
    display: flex;
    align-items: center;
    gap: 12px;
    transition: box-shadow 0.18s ease, border-color 0.18s ease;
}

.gp-admin-modern .gp-stat-card:hover {
    box-shadow: 0 4px 14px rgba(16, 38, 73, 0.07);
    border-color: rgba(16, 38, 73, 0.12);
}

.gp-admin-modern .gp-stat-card.gp-stat-card--alert {
    border-color: rgba(220, 53, 69, 0.35);
    background: rgba(220, 53, 69, 0.06);
}

.gp-admin-modern .gp-stat-card .gp-stat-icon {
    width: 34px;
    height: 34px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    flex-shrink: 0;
}

.gp-admin-modern .gp-stat-card .gp-stat-icon.is-blue {
    background: #e3f2fd;
    color: #1565c0;
}

.gp-admin-modern .gp-stat-card .gp-stat-icon.is-green {
    background: var(--gp-primary-light);
    color: var(--gp-primary);
}

.gp-admin-modern .gp-stat-card .gp-stat-icon.is-amber {
    background: #fff8e1;
    color: #f57f17;
}

.gp-admin-modern .gp-stat-card .gp-stat-icon.is-red {
    background: #ffebee;
    color: #c62828;
}

.gp-admin-modern .gp-stat-card .gp-stat-icon.is-purple {
    background: rgba(111, 66, 193, 0.12);
    color: #6f42c1;
}

.gp-admin-modern .gp-stat-card .gp-stat-label {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--gp-muted);
    margin-bottom: 2px;
    line-height: 1.25;
}

.gp-admin-modern .gp-stat-card .gp-stat-value {
    font-size: 1.35rem;
    font-weight: 600;
    color: var(--gp-ink);
    line-height: 1.15;
}

.gp-admin-modern .gp-stat-card .gp-stat-hint {
    font-size: 11px;
    color: var(--gp-muted);
    margin-top: 2px;
}

/* Dashboard tabs, filters, table card */
.gp-admin-modern .gp-table-card {
    background: var(--gp-card-bg);
    border: 1px solid var(--gp-line);
    border-radius: var(--gp-radius);
    box-shadow: 0 1px 3px rgba(16, 38, 73, 0.045);
    overflow: hidden;
}

.gp-admin-modern .gp-table-card > .card-header {
    background: transparent;
    border-bottom: 1px solid var(--gp-line);
    padding: 0;
}

.gp-admin-modern .gp-dash-tabs {
    border-bottom: 0;
    padding: 0 12px;
    gap: 4px;
}

.gp-admin-modern .gp-dash-tabs .nav-link {
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    color: var(--gp-muted);
    font-weight: 500;
    font-size: 14px;
    padding: 14px 16px;
    margin-bottom: -1px;
}

.gp-admin-modern .gp-dash-tabs .nav-link:hover {
    color: var(--gp-primary-dark);
    border-bottom-color: rgba(30, 126, 52, 0.25);
}

.gp-admin-modern .gp-dash-tabs .nav-link.active {
    color: var(--gp-primary-dark);
    font-weight: 600;
    background: transparent;
    border-bottom-color: var(--gp-primary);
}

.gp-admin-modern .gp-filter-bar .form-label {
    font-size: 13px;
    font-weight: 500;
    color: var(--gp-ink);
    margin-bottom: 6px;
}

.gp-admin-modern .gp-filter-bar .form-control,
.gp-admin-modern .gp-filter-bar .form-select {
    border-radius: var(--gp-radius-sm);
    border-color: var(--gp-line);
    font-size: 13px;
}

.gp-admin-modern .gp-filter-bar .input-group-text {
    background: #f8fafc;
    border-color: var(--gp-line);
    color: var(--gp-muted);
}

.gp-admin-modern .gp-table-card .table {
    margin-bottom: 0;
    font-size: 13px;
}

.gp-admin-modern .gp-table-card .table thead th {
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--gp-muted);
    border-bottom-width: 1px;
    white-space: nowrap;
}

.gp-admin-modern .gp-table-card .table tbody tr:hover {
    background: var(--gp-primary-light);
}

.gp-admin-modern .gp-table-card .table-responsive,
.gp-admin-modern .gp-dashboard-table-wrap {
    border-radius: 0 0 var(--gp-radius) var(--gp-radius);
}

.gp-admin-modern .gp-dashboard-legend {
    padding-top: 4px;
    border-top: 1px solid var(--gp-line);
}

.gp-admin-modern .gp-dashboard-snapshot {
    font-size: 12px;
    white-space: nowrap;
}

.gp-admin-modern .gp-dashboard-table-wrap {
    margin: 0 -1px;
    border: 1px solid var(--gp-line);
    border-radius: var(--gp-radius-sm);
    overflow: hidden;
}

.gp-admin-modern .gp-dashboard-table thead th {
    background: #f8fafc;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--gp-muted);
    border-bottom-width: 1px;
    white-space: nowrap;
}

.gp-admin-modern .gp-dashboard-table tbody tr:hover {
    background: var(--gp-primary-light);
}

@media (min-width: 1200px) {
    .gp-admin-modern .gp-stat-grid > .col-xl-3 {
        flex: 0 0 20%;
        max-width: 20%;
    }
}

body.gp-admin-modern.dark-mode .gp-dashboard-table thead th {
    background: rgba(255, 255, 255, 0.04);
}

body.gp-admin-modern.dark-mode .gp-dashboard-table tbody tr:hover {
    background: rgba(40, 167, 69, 0.08);
}

.gp-admin-modern .text-primary-gp {
    color: var(--gp-primary) !important;
}

.gp-admin-modern .gp-page-title {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--gp-ink);
    margin-bottom: 0.25rem;
}

.gp-admin-modern .breadcrumb {
    font-size: 13px;
    margin-bottom: 20px;
}

.gp-admin-modern .breadcrumb-item a {
    color: var(--gp-primary);
    text-decoration: none;
}

.gp-admin-modern .breadcrumb-item.active {
    color: var(--gp-muted);
}

/* ----------------------- Mobile / tablet -------------------- */
@media (max-width: 991.98px) {
    .gp-admin-main {
        margin-left: 0;
    }

    .gp-admin-topbar-toggle {
        display: inline-flex;
    }

    .gp-admin-topbar {
        flex-wrap: wrap;
        padding: 10px 12px;
        gap: 10px 12px;
        align-items: flex-start;
    }

    .gp-admin-topbar-breadcrumb,
    .gp-admin-topbar-meta {
        order: 3;
        flex: 1 1 100%;
        gap: 8px 14px;
        font-size: 12px;
    }

    .gp-admin-topbar-actions {
        margin-left: auto;
    }

    .gp-admin-content {
        padding: 16px;
    }

    .gp-admin-modern .gp-card-pad {
        padding: 18px;
    }

    .gp-admin-footer {
        padding: 14px 16px;
        text-align: center;
    }
}

/* BS5 offcanvas variant (sidebar as offcanvas on mobile) */
@media (max-width: 991.98px) {
    .gp-admin-sidebar-offcanvas.offcanvas {
        width: var(--gp-sidebar-width);
        background: var(--gp-primary-dark);
        color: #fff;
    }

    .gp-admin-sidebar-offcanvas .offcanvas-header {
        border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    }

    .gp-admin-sidebar-offcanvas .btn-close {
        filter: invert(1);
    }
}

@media (min-width: 992px) {
    .gp-admin-sidebar-offcanvas.offcanvas {
        position: fixed;
        visibility: visible;
        transform: none;
        border: 0;
    }
}

/* Legacy plugin tweaks inside modern shell */
.gp-admin-modern .tox:not([dir=rtl]) .tox-statusbar__branding {
    display: none;
}

.gp-admin-modern .preload {
    position: fixed;
    z-index: 99999;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 1;
    background-color: #fff;
    background-image: url('../../../../arquivos/img/carregando.gif');
    background-position: center;
    background-repeat: no-repeat;
    display: none;
}

/* --------------------------- Matéria (BS3 markup in BS5 shell) --------------------------- */
.gp-admin-modern .form-horizontal .control-label {
    text-align: start;
    font-weight: 500;
    color: var(--gp-ink);
    padding-top: calc(0.375rem + 1px);
}

.gp-admin-modern .form-horizontal .form-group {
    margin-bottom: 1rem;
}

.gp-admin-modern .form-horizontal fieldset {
    border: 0;
    padding: 0;
    margin: 0;
}

.gp-admin-modern .form-horizontal legend {
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--gp-ink);
    border-bottom: 1px solid var(--gp-line);
    padding-bottom: 0.5rem;
    margin-bottom: 1rem;
    width: 100%;
}

.gp-admin-modern .panel {
    background: var(--gp-card-bg);
    border: 1px solid var(--gp-line);
    border-radius: var(--gp-radius-sm);
    box-shadow: var(--gp-shadow);
}

.gp-admin-modern .panel-heading {
    background: var(--gp-primary-light);
    border-bottom: 1px solid var(--gp-line);
    padding: 0.75rem 1rem;
    border-radius: var(--gp-radius-sm) var(--gp-radius-sm) 0 0;
}

.gp-admin-modern .panel-body {
    padding: 1rem;
}

.gp-admin-modern .btn-xs {
    padding: 0.2rem 0.45rem;
    font-size: 0.75rem;
    border-radius: 0.25rem;
}

.gp-admin-modern .btn-group-justified {
    display: flex;
    width: 100%;
}

.gp-admin-modern .btn-group-justified > .btn {
    flex: 1 1 0;
}

.gp-admin-modern .alert .close {
    padding: 0.75rem 1rem;
    background: transparent;
    border: 0;
    font-size: 1.25rem;
    line-height: 1;
    opacity: 0.5;
}

.gp-admin-modern .alert .close:hover {
    opacity: 0.85;
}

.gp-admin-modern .table > :not(caption) > * > * {
    padding: 0.65rem 0.75rem;
}

.gp-admin-modern .gp-materia-admin .btn-toolbar .btn-group {
    flex-wrap: wrap;
    gap: 0.35rem;
}

.gp-admin-modern .gp-materia-admin textarea.ckeditor,
.gp-admin-modern .gp-materia-admin .tox-tinymce {
    max-width: 100%;
}

/* BS3 form-horizontal shim (legacy markup in BS5 shell) */
.gp-admin-modern .gp-materia-admin .form-horizontal .container {
    max-width: 100%;
    padding-left: 0;
    padding-right: 0;
}

.gp-admin-modern .gp-materia-admin .form-horizontal .form-group {
    display: flow-root;
    margin-right: -12px;
    margin-left: -12px;
    margin-bottom: 1.25rem;
    overflow: visible;
}

.gp-admin-modern .gp-materia-admin .form-horizontal .form-group::before,
.gp-admin-modern .gp-materia-admin .form-horizontal .form-group::after {
    display: table;
    content: " ";
}

.gp-admin-modern .gp-materia-admin .form-horizontal .form-group::after {
    clear: both;
}

.gp-admin-modern .gp-materia-admin .form-horizontal .form-group > [class*="col-"] {
    float: left;
    position: relative;
    min-height: 1px;
    padding-right: 12px;
    padding-left: 12px;
    overflow: visible;
}

@media (min-width: 576px) {
    .gp-admin-modern .gp-materia-admin .form-horizontal .form-group > .col-sm-3 {
        width: 25%;
    }

    .gp-admin-modern .gp-materia-admin .form-horizontal .form-group > .col-sm-5 {
        width: 41.666667%;
    }

    .gp-admin-modern .gp-materia-admin .form-horizontal .form-group > .col-sm-7 {
        width: 58.333333%;
    }

    .gp-admin-modern .gp-materia-admin .form-horizontal .form-group > .col-sm-8 {
        width: 66.666667%;
    }
}

@media (min-width: 768px) {
    .gp-admin-modern .gp-materia-admin .form-horizontal .form-group > .col-md-3 {
        width: 25%;
    }

    .gp-admin-modern .gp-materia-admin .form-horizontal .form-group > .col-md-12 {
        width: 100%;
    }
}

.gp-admin-modern .gp-materia-admin .form-horizontal hr {
    clear: both;
    margin: 0.5rem 0 1.5rem;
    border-color: var(--gp-line);
    opacity: 1;
}

/* Bloco "Informações da Matéria" — fechamento em destaque */
.gp-admin-modern .gp-materia-admin .gp-materia-info {
    margin-bottom: 1.25rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--gp-line);
}

.gp-admin-modern .gp-materia-admin .gp-materia-info-aside {
    height: auto !important;
    min-height: 0;
    padding-top: 0.15rem;
    border-right: 3px solid var(--gp-line);
}

.gp-admin-modern .gp-materia-admin .gp-materia-info-aside h4 {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--gp-text-muted, #6c757d);
}

.gp-admin-modern .gp-materia-admin .gp-materia-info-body {
    padding-top: 0.15rem;
}

.gp-admin-modern .gp-materia-admin .gp-materia-fechamento {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.35rem 0.5rem;
    margin-bottom: 0.35rem;
}

.gp-admin-modern .gp-materia-admin .gp-materia-info-kicker {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--gp-text-muted, #6c757d);
    width: 100%;
}

.gp-admin-modern .gp-materia-admin .gp-materia-info-value {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--gp-text, #212529);
    line-height: 1.2;
}

.gp-admin-modern .gp-materia-admin .gp-materia-info-muted {
    font-size: 0.875rem;
    color: var(--gp-text-muted, #6c757d);
}

.gp-admin-modern .gp-materia-admin .gp-materia-info-circ {
    font-size: 0.8125rem;
    color: var(--gp-text-muted, #6c757d);
}

/* Info da matéria — coluna direita (acima da prévia) */
.gp-admin-modern .gp-materia-admin .gp-materia-info-rail {
    background: var(--gp-card-bg, #fff);
    border: 1px solid var(--gp-line);
    border-radius: var(--gp-radius-sm);
    padding: 1rem 1.1rem;
    box-shadow: var(--gp-shadow);
}

.gp-admin-modern .gp-materia-admin .gp-materia-info-rail .gp-materia-info {
    display: block;
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: 0;
}

.gp-admin-modern .gp-materia-admin .gp-materia-info-rail .gp-materia-info + .gp-materia-info {
    margin-top: 0.75rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--gp-line);
}

.gp-admin-modern .gp-materia-admin .gp-materia-info-rail .gp-materia-info-aside {
    border-right: 0;
    border-bottom: 3px solid var(--gp-line);
    padding-bottom: 0.5rem;
    margin-bottom: 0.65rem;
    text-align: start !important;
}

.gp-admin-modern .gp-materia-admin .gp-materia-info-rail .gp-materia-info-body {
    padding-top: 0;
}

.gp-admin-modern .gp-materia-admin #ordinaria,
.gp-admin-modern .gp-materia-admin #extraExtraordinaria {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: 0;
}

/* Select2: largura total e altura alinhada ao form-control BS5 */
.gp-admin-modern .gp-materia-admin .select2-container {
    width: 100% !important;
    display: block;
}

.gp-admin-modern .gp-materia-admin .select2-container--bootstrap-5 .select2-selection {
    min-height: calc(1.5em + 0.75rem + 2px);
    padding: 0.375rem 2.25rem 0.375rem 0.75rem;
    font-size: 1rem;
    line-height: 1.5;
    border-color: var(--bs-border-color, #dee2e6);
}

.gp-admin-modern .gp-materia-admin .select2-container--bootstrap-5 .select2-selection--single .select2-selection__rendered {
    line-height: 1.5;
    padding-left: 0;
    padding-right: 0;
    color: var(--gp-text, #212529);
}

.gp-admin-modern .gp-materia-admin .select2-container--bootstrap-5 .select2-selection--single .select2-selection__arrow {
    height: calc(100% - 2px);
}

.gp-admin-modern .gp-materia-admin .select2-container--bootstrap-5.select2-container--focus .select2-selection,
.gp-admin-modern .gp-materia-admin .select2-container--bootstrap-5.select2-container--open .select2-selection {
    border-color: #86b7fe;
    box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
}

.gp-admin-modern .gp-materia-admin .form-horizontal .form-group > .col-sm-7:has(.select2-container),
.gp-admin-modern .gp-materia-admin .form-horizontal .form-group > .col-sm-6:has(.select2-container),
.gp-admin-modern .gp-materia-admin .form-horizontal .form-group > .col-sm-5:has(.select2-container) {
    min-height: calc(1.5em + 0.75rem + 2px);
}

.gp-admin-modern .gp-materia-admin .form-horizontal .form-group:has(.select2-container) {
    margin-bottom: 1.35rem;
    position: relative;
    z-index: 1;
}

.gp-admin-modern .gp-materia-admin .form-horizontal .form-group:has(.select2-container--open) {
    z-index: 1060;
}

.gp-admin-modern .gp-materia-admin .select2-container--bootstrap-5 .select2-dropdown {
    z-index: 1070;
    border-color: var(--bs-border-color, #dee2e6);
}

.gp-admin-modern .gp-materia-admin select.gp-select2 {
    width: 100%;
}

/* Formulário empilhado (label acima do input) — cadastrar/editar matéria */
.gp-admin-modern .gp-materia-admin .form-horizontal.gp-form-stacked .form-group {
    display: block;
    margin-left: 0;
    margin-right: 0;
    overflow: visible;
}

.gp-admin-modern .gp-materia-admin .form-horizontal.gp-form-stacked .form-group::before,
.gp-admin-modern .gp-materia-admin .form-horizontal.gp-form-stacked .form-group::after {
    display: none;
}

.gp-admin-modern .gp-materia-admin .form-horizontal.gp-form-stacked .form-group > [class*="col-"] {
    float: none;
    width: 100%;
    max-width: 100%;
    padding-left: 0;
    padding-right: 0;
}

.gp-admin-modern .gp-materia-admin .form-horizontal.gp-form-stacked .control-label {
    display: block;
    float: none;
    width: 100%;
    text-align: start;
    margin-bottom: 0.4rem;
    padding-top: 0;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--gp-ink);
}

.gp-admin-modern .gp-materia-admin .form-horizontal.gp-form-stacked .form-control,
.gp-admin-modern .gp-materia-admin .form-horizontal.gp-form-stacked .select2-container--bootstrap-5 .select2-selection {
    border-radius: var(--gp-radius-sm);
    border-color: var(--gp-line);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.gp-admin-modern .gp-materia-admin .form-horizontal.gp-form-stacked .form-control:focus {
    border-color: var(--gp-accent);
    box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.18);
}

.gp-admin-modern .gp-materia-admin .form-horizontal.gp-form-stacked .gp-materia-info {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1rem;
}

.gp-admin-modern .gp-materia-admin .form-horizontal.gp-form-stacked .gp-materia-info-aside {
    border-right: 0;
    border-bottom: 3px solid var(--gp-line);
    padding-bottom: 0.5rem;
    text-align: start !important;
}

.gp-admin-modern .gp-materia-admin .form-horizontal.gp-form-stacked .gp-materia-info-body {
    padding-top: 0;
}

/* Campo título + sugestão */
.gp-admin-modern .gp-materia-titulo-wrap {
    width: 100%;
}

.gp-admin-modern .gp-materia-titulo-input-group {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: stretch;
}

.gp-admin-modern .gp-materia-titulo-input {
    flex: 1 1 220px;
    min-width: 0;
}

.gp-admin-modern .gp-btn-sugerir-titulo {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    white-space: nowrap;
    border-radius: var(--gp-radius-sm);
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--gp-primary-dark);
    border-color: var(--gp-line);
    background: #fff;
}

.gp-admin-modern .gp-btn-sugerir-titulo:hover:not(:disabled) {
    background: var(--gp-primary-light);
    border-color: var(--gp-accent);
    color: var(--gp-primary-dark);
}

.gp-admin-modern .gp-btn-sugerir-titulo:disabled,
.gp-admin-modern .gp-btn-sugerir-titulo.is-loading {
    opacity: 0.65;
    cursor: wait;
}

.gp-admin-modern .gp-btn-sugerir-titulo.is-hidden {
    display: none !important;
}

.gp-admin-modern .gp-materia-titulo-meta {
    display: flex;
    justify-content: flex-end;
    margin-top: 0.35rem;
}

.gp-admin-modern .gp-materia-titulo-counter {
    font-size: 0.75rem;
    color: var(--gp-muted);
}

.gp-admin-modern .gp-materia-titulo-counter.is-near-limit {
    color: #856404;
}

.gp-admin-modern .gp-materia-titulo-counter.is-at-limit {
    color: #b02a37;
    font-weight: 600;
}

.gp-admin-modern .hidden-xs,
.gp-admin-modern .hidden-sm {
    display: none !important;
}

@media (min-width: 768px) {
    .gp-admin-modern .hidden-sm {
        display: block !important;
    }
}

@media (min-width: 992px) {
    .gp-admin-modern .hidden-xs {
        display: block !important;
    }
}

/* --------------------------- Matéria save progress overlay --------------------------- */
body.gp-materia-save-open {
    overflow: hidden;
}

.gp-materia-save-overlay {
    position: fixed;
    inset: 0;
    z-index: 20050;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
    background: rgba(15, 23, 42, 0.55);
    backdrop-filter: blur(4px);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.2s ease, visibility 0.2s ease;
}

.gp-materia-save-overlay.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.gp-materia-save-panel {
    width: min(520px, 100%);
    background: var(--gp-card-bg);
    border-radius: var(--gp-radius);
    box-shadow: var(--gp-shadow-hover);
    border: 1px solid var(--gp-line);
    padding: 22px 22px 20px;
}

.gp-materia-save-header {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    margin-bottom: 18px;
}

.gp-materia-save-icon {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: var(--gp-primary-light);
    color: var(--gp-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    flex-shrink: 0;
}

.gp-materia-save-title {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--gp-ink);
}

.gp-materia-save-subtitle {
    font-size: 0.88rem;
    color: var(--gp-muted);
}

.gp-materia-save-steps {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 16px;
}

.gp-materia-save-step {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 0.86rem;
    color: var(--gp-muted);
    transition: color 0.2s ease;
}

.gp-materia-save-step.is-active {
    color: var(--gp-primary-dark);
    font-weight: 600;
}

.gp-materia-save-step.is-done {
    color: var(--gp-accent);
}

.gp-materia-save-step-icon {
    width: 18px;
    text-align: center;
    flex-shrink: 0;
}

.gp-materia-save-progress {
    height: 10px;
    border-radius: 999px;
    background: #e9f2eb;
    overflow: hidden;
}

.gp-materia-save-progress .progress-bar {
    border-radius: 999px;
    transition: width 0.25s ease;
}

.gp-materia-save-status {
    font-size: 0.84rem;
    color: var(--gp-muted);
}

.gp-materia-save-percent {
    font-size: 0.84rem;
    font-weight: 700;
    color: var(--gp-primary-dark);
}

.gp-materia-save-error {
    font-size: 0.88rem;
}

.gp-materia-save-actions {
    display: flex;
    gap: 8px;
    justify-content: flex-end;
    flex-wrap: wrap;
}

@media (max-width: 575.98px) {
    .gp-materia-save-panel {
        padding: 18px 16px 16px;
    }

    .gp-materia-save-step-label {
        font-size: 0.82rem;
    }
}

/* ============================================================
   Responsive — touch targets, tables, DataTables, forms
   Breakpoints: 991.98px (tablet), 767.98px (mobile)
   ============================================================ */

/* Touch-friendly controls (min 44×44px tap targets) */
@media (max-width: 991.98px) {
    .gp-admin-modern .btn,
    .gp-admin-modern .btn-sm,
    .gp-admin-modern .gp-admin-topbar .btn-logout,
    .gp-admin-modern .gp-materia-admin-toolbar .btn,
    .gp-admin-modern .gp-btn-sugerir-titulo {
        min-height: 44px;
        padding-top: 0.5rem;
        padding-bottom: 0.5rem;
    }

    .gp-admin-modern .btn-group .btn,
    .gp-admin-modern .btn-toolbar .btn {
        min-height: 44px;
    }

    .gp-admin-modern .gp-materia-admin-toolbar {
        flex-wrap: wrap;
    }

    .gp-admin-modern .gp-materia-admin-toolbar .btn {
        flex: 1 1 auto;
    }

    .gp-admin-nav .nav-link {
        min-height: 44px;
        padding-top: 12px;
        padding-bottom: 12px;
    }

    .gp-admin-nav .dropdown-item {
        min-height: 44px;
        display: flex;
        align-items: center;
        padding-top: 10px;
        padding-bottom: 10px;
    }
}

/* Breadcrumb wrap */
.gp-admin-modern .breadcrumb {
    flex-wrap: wrap;
    row-gap: 0.25rem;
}

@media (max-width: 767.98px) {
    .gp-admin-modern .breadcrumb {
        font-size: 12px;
        margin-bottom: 14px;
    }

    .gp-admin-modern .gp-page-title {
        font-size: 1.25rem;
        word-break: break-word;
    }

    .gp-admin-topbar-meta span {
        flex: 1 1 auto;
        min-width: 0;
    }

    .gp-admin-topbar .btn-logout .fa-right-from-bracket {
        margin-right: 0;
    }

    .gp-admin-topbar .btn-logout {
        font-size: 0;
        min-width: 44px;
        padding-left: 0.65rem;
        padding-right: 0.65rem;
    }

    .gp-admin-topbar .btn-logout .fa-right-from-bracket::before {
        font-size: 1rem;
    }
}

/* E-CAF — coluna título (tipo certidão/documento) visível no layout moderno */
.gp-admin-modern .gp-ecaf-certidao-list .gp-ecaf-tipo-col {
    min-width: 14rem;
    max-width: 28rem;
    white-space: normal;
    word-break: break-word;
}

.gp-admin-modern .gp-ecaf-certidao-list .gp-ecaf-empresa-col {
    min-width: 10rem;
    white-space: normal;
}

/* Tables + DataTables horizontal scroll */
.gp-admin-modern .table-responsive {
    -webkit-overflow-scrolling: touch;
    overflow-x: auto;
}

.gp-admin-modern .table-responsive > .dataTables_wrapper {
    min-width: 0;
    overflow: visible;
}

@media (max-width: 991.98px) {
    .gp-admin-modern .dataTables_wrapper .row {
        margin-left: 0;
        margin-right: 0;
    }

    .gp-admin-modern .dataTables_wrapper .row > [class*="col-"] {
        flex: 0 0 100%;
        max-width: 100%;
        padding-left: 0;
        padding-right: 0;
    }

    .gp-admin-modern .dataTables_wrapper .dataTables_length,
    .gp-admin-modern .dataTables_wrapper .dataTables_filter {
        text-align: left;
        margin-bottom: 0.75rem;
    }

    .gp-admin-modern .dataTables_wrapper .dataTables_filter input {
        width: 100%;
        max-width: none;
        margin-left: 0;
        margin-top: 0.35rem;
        min-height: 44px;
    }

    .gp-admin-modern .dataTables_wrapper .dataTables_length select {
        min-height: 44px;
        margin: 0 0.35rem;
    }

    .gp-admin-modern .dataTables_wrapper .dataTables_info,
    .gp-admin-modern .dataTables_wrapper .dataTables_paginate {
        text-align: center;
        margin-top: 0.75rem;
    }

    .gp-admin-modern .dataTables_wrapper .dataTables_paginate .paginate_button {
        min-width: 44px;
        min-height: 44px;
        line-height: 44px;
        padding: 0 0.5rem;
    }

    .gp-admin-modern .table > :not(caption) > * > * {
        white-space: nowrap;
    }

    .gp-admin-modern .table .btn,
    .gp-admin-modern .table .btn-group .btn {
        min-height: 44px;
    }
}

/* Visualizar matéria — desktop table */
.gp-admin-modern .gp-materia-view-table th[scope="row"] {
    width: 1%;
    white-space: nowrap;
    background: var(--gp-primary-light);
    color: var(--gp-primary-dark);
    font-size: 0.8rem;
    font-weight: 600;
}

.gp-admin-modern .gp-materia-view-table td {
    word-break: break-word;
}

/* Stacked card layout for wide key-value tables on small screens */
@media (max-width: 767.98px) {
    .gp-admin-modern .gp-materia-view-table thead {
        display: none;
    }

    .gp-admin-modern .gp-materia-view-table tbody tr {
        display: block;
        margin-bottom: 1rem;
        border: 1px solid var(--gp-line);
        border-radius: var(--gp-radius-sm);
        background: var(--gp-card-bg);
        box-shadow: var(--gp-shadow);
        overflow: hidden;
    }

    .gp-admin-modern .gp-materia-view-table tbody tr td,
    .gp-admin-modern .gp-materia-view-table tbody tr th {
        display: block;
        width: 100% !important;
        border: 0;
        padding: 0.5rem 0.85rem;
        white-space: normal;
    }

    .gp-admin-modern .gp-materia-view-table tbody tr th {
        background: var(--gp-primary-light);
        color: var(--gp-primary-dark);
        font-size: 0.75rem;
        text-transform: uppercase;
        letter-spacing: 0.03em;
        padding-bottom: 0.25rem;
    }

    .gp-admin-modern .gp-materia-view-table tbody tr td {
        padding-top: 0.15rem;
        padding-bottom: 0.65rem;
        font-weight: 500;
    }

    .gp-admin-modern .gp-materia-view-dl {
        display: grid;
        gap: 0.75rem;
        margin: 0;
    }

    .gp-admin-modern .gp-materia-view-dl > div {
        padding: 0.75rem 0.85rem;
        border: 1px solid var(--gp-line);
        border-radius: var(--gp-radius-sm);
        background: var(--gp-card-bg);
    }

    .gp-admin-modern .gp-materia-view-dl dt {
        font-size: 0.75rem;
        text-transform: uppercase;
        letter-spacing: 0.03em;
        color: var(--gp-muted);
        margin-bottom: 0.2rem;
    }

    .gp-admin-modern .gp-materia-view-dl dd {
        margin: 0;
        font-weight: 600;
        color: var(--gp-ink);
        word-break: break-word;
    }
}

/* Dashboard stat cards — full width on mobile */
@media (max-width: 767.98px) {
    .gp-admin-modern .gp-stat-card {
        padding: 10px 12px;
        gap: 10px;
    }

    .gp-admin-modern .gp-stat-card .gp-stat-icon {
        width: 30px;
        height: 30px;
        font-size: 14px;
    }

    .gp-admin-modern .gp-stat-card .gp-stat-value {
        font-size: 1.15rem;
    }

    .gp-admin-modern .gp-icon-badge {
        width: 46px;
        height: 46px;
        font-size: 20px;
    }
}

/* Form actions + btn-toolbar */
@media (max-width: 991.98px) {
    .gp-admin-modern .btn-toolbar,
    .gp-admin-modern .gp-materia-admin .btn-toolbar .btn-group {
        width: 100%;
    }

    .gp-admin-modern .btn-toolbar .btn-group,
    .gp-admin-modern .gp-materia-admin .btn-toolbar .btn-group {
        flex: 1 1 100%;
    }

    .gp-admin-modern .btn-group-justified {
        flex-direction: column;
    }

    .gp-admin-modern .btn-group-justified > .btn {
        width: 100%;
        border-radius: var(--gp-radius-sm) !important;
        margin-bottom: 0.35rem;
    }
}

/* Offcanvas sidebar — full width on very small screens */
@media (max-width: 575.98px) {
    .gp-admin-sidebar-offcanvas.offcanvas {
        width: min(100%, 300px);
    }
}

/* Matérias — DataTables (publicadas / publicar) */
.gp-admin-modern .gp-materia-dt-filters .form-label-sm {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--gp-muted, #6c757d);
}

.gp-admin-modern .gp-materia-dt-table,
.gp-admin-modern .gp-materia-publicadas-table,
.gp-admin-modern .gp-materia-publicar-table,
.gp-admin-modern .gp-materia-dt-scroll .dataTables_wrapper {
    font-size: 0.875rem;
}

.gp-admin-modern .gp-materia-dt-table > :not(caption) > * > *,
.gp-admin-modern .gp-materia-publicadas-table > :not(caption) > * > *,
.gp-admin-modern .gp-materia-publicar-table > :not(caption) > * > * {
    padding: 0.35rem 0.5rem;
    vertical-align: middle;
}

.gp-admin-modern .gp-materia-dt-codigo-col,
.gp-admin-modern .gp-materia-codigo {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 0.8125rem;
    white-space: nowrap;
    width: 1%;
    max-width: 5.5rem;
}

.gp-admin-modern .gp-materia-dt-entidade-col {
    width: 1%;
    max-width: 6.5rem;
    white-space: nowrap;
    text-align: center;
}

.gp-admin-modern .gp-materia-dt-resumo-col,
.gp-admin-modern .gp-materia-dt-titulo-col {
    min-width: 18rem;
    max-width: none;
    width: auto;
}

.gp-admin-modern .gp-materia-resumo-cell {
    display: block;
    line-height: 1.4;
    min-width: 16rem;
}

.gp-admin-modern .gp-materia-resumo-text {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    overflow: hidden;
    word-break: break-word;
    text-transform: none;
}

.gp-admin-modern .gp-materia-resumo-loading {
    color: var(--gp-muted, #6c757d);
    font-style: italic;
    -webkit-line-clamp: 1;
}

.gp-admin-modern .gp-materia-tipo-badge,
.gp-admin-modern .gp-materia-entidade-badge {
    font-size: 0.65rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    white-space: nowrap;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    display: inline-block;
    vertical-align: middle;
    padding: 0.25em 0.4em;
}

.gp-admin-modern .gp-materia-entidade-badge {
    max-width: 5.75rem;
}

.gp-admin-modern .gp-materia-dt-tipo-col {
    width: 1%;
    max-width: 8rem;
    white-space: nowrap;
}

.gp-admin-modern .gp-materia-dt-data-col {
    white-space: nowrap;
    width: 1%;
    max-width: 7.5rem;
}

.gp-admin-modern .gp-materia-dt-responsavel-col {
    max-width: 9rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gp-admin-modern .gp-materia-dt-actions {
    width: 1%;
    white-space: nowrap;
}

.gp-admin-modern .gp-materia-dt-actions .btn {
    padding: 0.2rem 0.45rem;
    font-size: 0.8rem;
}

.gp-admin-modern .gp-materia-dt-select-col {
    width: 1%;
    white-space: nowrap;
    vertical-align: middle;
}

.gp-admin-modern .gp-materia-select-all-label {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 0.15rem;
    cursor: pointer;
    font-weight: 500;
    line-height: 1.2;
}

.gp-admin-modern .gp-materia-select-all-text {
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--gp-muted, #6c757d);
}

.gp-admin-modern .gp-materia-dt-select-col .form-check-input,
.gp-admin-modern .gp-materia-dt-select-col .gp-publicar-row-check {
    margin: 0;
    cursor: pointer;
}

.gp-admin-modern .gp-materia-autorizar-btn {
    white-space: nowrap;
}

.gp-admin-modern .gp-materia-dt-scroll .dataTables_wrapper .dataTables_scroll {
    margin-bottom: 0.5rem;
}

@media (max-width: 767.98px) {
    .gp-admin-modern .gp-materia-dt-resumo-col,
    .gp-admin-modern .gp-materia-dt-titulo-col {
        min-width: 12rem;
    }

    .gp-admin-modern .gp-materia-resumo-text {
        -webkit-line-clamp: 3;
    }
}

/* ============================================================
   Dark mode (toggle) — variante do tema verde (admin.getpublic)
   ============================================================ */
body.gp-admin-modern.dark-mode {
    --gp-bg: #0f141a;
    --gp-card-bg: #1a212b;
    --gp-ink: #e6e8eb;
    --gp-muted: #97a3b4;
    --gp-line: #2b3543;
    --gp-shadow: 0 2px 12px rgba(0,0,0,.45);
    --gp-shadow-hover: 0 8px 26px rgba(0,0,0,.55);
    background: var(--gp-bg);
    color: var(--gp-ink);
}
/* Dark mode: a sidebar deixa de ser verde e vira superfície escura (verde só no item ativo) */
.gp-admin-modern.dark-mode .gp-admin-sidebar { background: #131922; border-right: 1px solid var(--gp-line); }
.gp-admin-modern.dark-mode .gp-admin-sidebar-offcanvas.offcanvas { background: #131922; }
.gp-admin-modern.dark-mode .gp-admin-sidebar-brand { border-bottom-color: var(--gp-line); }
.gp-admin-modern.dark-mode .gp-admin-nav .nav-link:hover,
.gp-admin-modern.dark-mode .gp-admin-nav .nav-link:focus { background: rgba(255,255,255,.06); }
.gp-admin-modern.dark-mode .gp-admin-nav .nav-link.active { background: var(--gp-accent); color: #fff; }
.gp-admin-modern.dark-mode .gp-admin-topbar { background: #1a212b; }
.gp-admin-modern.dark-mode .gp-admin-footer { background: #1a212b; color: var(--gp-muted); }
.gp-admin-modern.dark-mode .gp-card,
.gp-admin-modern.dark-mode .card { background: var(--gp-card-bg); border-color: var(--gp-line); color: var(--gp-ink); }
.gp-admin-modern.dark-mode .card-header { background: rgba(255,255,255,.03); border-bottom-color: var(--gp-line); color: var(--gp-ink); }
.gp-admin-modern.dark-mode .card-footer { background: rgba(255,255,255,.02); border-top-color: var(--gp-line); }
.gp-admin-modern.dark-mode .table { color: var(--gp-ink); }
.gp-admin-modern.dark-mode .table > :not(caption) > * > * { border-color: var(--gp-line); background: transparent; }
.gp-admin-modern.dark-mode .table-striped > tbody > tr:nth-of-type(odd) > * { background: rgba(255,255,255,.02); color: var(--gp-ink); }
.gp-admin-modern.dark-mode .form-control,
.gp-admin-modern.dark-mode .form-select,
.gp-admin-modern.dark-mode .input-group-text { background: #131922; border-color: var(--gp-line); color: var(--gp-ink); }
.gp-admin-modern.dark-mode .form-control::placeholder { color: var(--gp-muted); }
.gp-admin-modern.dark-mode .modal-content { background: var(--gp-card-bg); color: var(--gp-ink); }
.gp-admin-modern.dark-mode .modal-header,
.gp-admin-modern.dark-mode .modal-footer { border-color: var(--gp-line); }
.gp-admin-modern.dark-mode .dropdown-menu { background: var(--gp-card-bg); border-color: var(--gp-line); }
.gp-admin-modern.dark-mode .dropdown-item { color: var(--gp-ink); }
.gp-admin-modern.dark-mode .dropdown-item:hover { background: rgba(255,255,255,.06); }
.gp-admin-modern.dark-mode .text-muted { color: var(--gp-muted) !important; }
.gp-admin-modern.dark-mode .gp-admin-topbar-toggle { background: #131922; }
.gp-admin-modern.dark-mode .select2-container--bootstrap-5 .select2-selection { background: #131922; border-color: var(--gp-line); color: var(--gp-ink); }
.gp-admin-modern.dark-mode .select2-dropdown { background: var(--gp-card-bg); color: var(--gp-ink); }
/* a sidebar permanece verde escuro (ja e dark nos dois modos) */

/* ============================================================
   Compat AdminLTE no shell BS5 (telas migradas) — info-box, card-outline, tabs
   Dentro de .gp-admin-content: restyle legado como gp-stat-card
   ============================================================ */
.gp-admin-content .info-box,
.gp-admin-modern .info-box {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: auto;
    padding: 12px 14px;
    background: var(--gp-card-bg);
    border: 1px solid var(--gp-line);
    border-radius: var(--gp-radius-sm);
    box-shadow: 0 1px 2px rgba(16, 38, 73, 0.035);
    margin-bottom: 0.75rem;
    overflow: visible;
}

.gp-admin-content .info-box-icon,
.gp-admin-modern .info-box-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    flex-shrink: 0;
    font-size: 16px;
    border-radius: 8px;
    color: var(--gp-primary);
    background: var(--gp-primary-light);
}

.gp-admin-content .info-box-content,
.gp-admin-modern .info-box-content {
    padding: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    flex: 1;
    min-width: 0;
}

.gp-admin-content .info-box-text,
.gp-admin-modern .info-box-text {
    font-size: 11px;
    color: var(--gp-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 2px;
    line-height: 1.25;
}

.gp-admin-content .info-box-number,
.gp-admin-modern .info-box-number {
    font-weight: 600;
    font-size: 1.35rem;
    color: var(--gp-ink);
    line-height: 1.15;
}
/* card-outline: borda superior colorida (mimetiza o AdminLTE) */
.gp-admin-modern .card.card-outline.card-primary { border-top:3px solid var(--gp-primary); }
.gp-admin-modern .card.card-outline.card-info { border-top:3px solid #17a2b8; }
.gp-admin-modern .card.card-outline.card-warning { border-top:3px solid #ffc107; }
/* nav-tabs dentro do card (card-tabs) */
.gp-admin-modern .card-tabs .card-header { background:transparent; }
.gp-admin-modern .nav-tabs { border-bottom:1px solid var(--gp-line); }
.gp-admin-modern .nav-tabs .nav-link { color:var(--gp-muted); border:0; border-bottom:2px solid transparent; }
.gp-admin-modern .nav-tabs .nav-link.active { color:var(--gp-primary-dark); font-weight:600; background:transparent; border-bottom-color:var(--gp-primary); }

/* Dashboard: cores dos ícones do info-box (selo tintado, não faixa sólida) */
.gp-admin-content .info-box-icon.bg-primary,
.gp-admin-modern .info-box-icon.bg-primary { background: var(--gp-primary-light); color: var(--gp-primary); }
.gp-admin-content .info-box-icon.bg-info,
.gp-admin-modern .info-box-icon.bg-info { background: rgba(23, 162, 184, 0.12); color: #17a2b8; }
.gp-admin-content .info-box-icon.bg-success,
.gp-admin-modern .info-box-icon.bg-success { background: rgba(40, 167, 69, 0.12); color: #28a745; }
.gp-admin-content .info-box-icon.bg-danger,
.gp-admin-modern .info-box-icon.bg-danger { background: rgba(220, 53, 69, 0.12); color: #dc3545; }
.gp-admin-content .info-box-icon.bg-warning,
.gp-admin-modern .info-box-icon.bg-warning { background: rgba(255, 193, 7, 0.16); color: #e0a800; }
.gp-admin-content .info-box-icon.bg-purple,
.gp-admin-modern .info-box-icon.bg-purple { background: rgba(111, 66, 193, 0.12); color: #6f42c1; }
.gp-admin-content .info-box-icon.bg-white,
.gp-admin-modern .info-box-icon.bg-white { background: #fff; color: #dc3545; border: 1px solid var(--gp-line); }
.gp-admin-content .info-box.bg-danger,
.gp-admin-modern .info-box.bg-danger { background: rgba(220, 53, 69, 0.06); border-color: rgba(220, 53, 69, 0.35); }
.gp-admin-content .info-box.bg-danger .info-box-text,
.gp-admin-content .info-box.bg-danger .info-box-number,
.gp-admin-modern .info-box.bg-danger .info-box-text,
.gp-admin-modern .info-box.bg-danger .info-box-number { color: var(--gp-ink); }

/* .box (AdminLTE) → card BS5 dentro do conteúdo moderno */
.gp-admin-content .box {
    background: var(--gp-card-bg);
    border: 1px solid var(--gp-line);
    border-radius: var(--gp-radius);
    box-shadow: 0 1px 3px rgba(16, 38, 73, 0.045);
    margin-bottom: 1.5rem;
}

.gp-admin-content .box-header {
    padding: 16px 20px;
    border-bottom: 1px solid var(--gp-line);
    background: transparent;
}

.gp-admin-content .box-header .box-title {
    font-size: 1rem;
    font-weight: 600;
    color: var(--gp-ink);
    margin: 0;
}

.gp-admin-content .box-body {
    padding: 20px;
}
.gp-admin-modern .text-purple { color:#6f42c1 !important; }
.gp-admin-modern .bg-purple { background-color:#6f42c1 !important; color:#fff !important; }

/* ===========================================================================
   Compat AdminLTE/BS4 no shell BS5 — portado p/ telas migradas incrementalmente.
   Evita reescrever markup (inclusive o gerado por JS): small-box, custom-switch/
   custom-control, card-tools/btn-tool, input-group append/prepend, btn-group-toggle.
   =========================================================================== */

/* --- small-box (caixas de estatística do AdminLTE) --- */
.gp-admin-modern .small-box { position:relative; display:block; margin-bottom:1rem; border-radius:var(--gp-radius-sm); box-shadow:var(--gp-shadow); color:#fff; overflow:hidden; }
.gp-admin-modern .small-box > .inner { padding:.85rem 1rem; }
.gp-admin-modern .small-box h3 { font-size:2.1rem; font-weight:700; margin:0 0 .25rem; white-space:nowrap; color:#fff; line-height:1.1; }
.gp-admin-modern .small-box p { font-size:.95rem; margin:0; }
.gp-admin-modern .small-box .icon { position:absolute; top:.5rem; right:1rem; font-size:3.4rem; color:rgba(255,255,255,.22); pointer-events:none; transition:transform .2s; }
.gp-admin-modern .small-box:hover .icon { transform:scale(1.06); }
.gp-admin-modern .small-box .small-box-footer { display:block; padding:.4rem 0; text-align:center; color:rgba(255,255,255,.9); background:rgba(0,0,0,.12); text-decoration:none; font-size:.85rem; }
.gp-admin-modern .small-box .small-box-footer:hover { color:#fff; background:rgba(0,0,0,.22); }
/* small-box claro (bg-warning/bg-light) precisa de texto escuro p/ contraste */
.gp-admin-modern .small-box.bg-warning, .gp-admin-modern .small-box.bg-warning h3,
.gp-admin-modern .small-box.bg-light, .gp-admin-modern .small-box.bg-light h3 { color:#212529; }
.gp-admin-modern .small-box.bg-warning .icon, .gp-admin-modern .small-box.bg-light .icon { color:rgba(0,0,0,.15); }

/* --- custom-control / custom-switch / custom-checkbox / custom-radio (BS4) --- */
.gp-admin-modern .custom-control { position:relative; display:block; min-height:1.5rem; padding-left:1.5rem; }
.gp-admin-modern .custom-control-inline { display:inline-flex; margin-right:1rem; }
.gp-admin-modern .custom-control-input { position:absolute; left:0; z-index:-1; width:1rem; height:1.25rem; opacity:0; }
.gp-admin-modern .custom-control-label { position:relative; margin-bottom:0; vertical-align:top; cursor:pointer; }
.gp-admin-modern .custom-control-label::before { position:absolute; top:.25rem; left:-1.5rem; display:block; width:1rem; height:1rem; content:""; background-color:var(--gp-card-bg,#fff); border:1px solid #adb5bd; transition:background-color .15s, border-color .15s; }
.gp-admin-modern .custom-control-label::after { position:absolute; top:.25rem; left:-1.5rem; display:block; width:1rem; height:1rem; content:""; background:50%/50% 50% no-repeat; }
.gp-admin-modern .custom-control-input:checked ~ .custom-control-label::before { color:#fff; border-color:var(--gp-primary); background-color:var(--gp-primary); }
.gp-admin-modern .custom-control-input:focus ~ .custom-control-label::before { box-shadow:0 0 0 .2rem rgba(40,167,69,.25); }
.gp-admin-modern .custom-control-input:disabled ~ .custom-control-label { color:var(--gp-muted); cursor:default; }
.gp-admin-modern .custom-checkbox .custom-control-label::before { border-radius:.25rem; }
.gp-admin-modern .custom-checkbox .custom-control-input:checked ~ .custom-control-label::after { background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e"); }
.gp-admin-modern .custom-radio .custom-control-label::before { border-radius:50%; }
.gp-admin-modern .custom-radio .custom-control-input:checked ~ .custom-control-label::after { background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e"); }
.gp-admin-modern .custom-switch { padding-left:2.25rem; }
.gp-admin-modern .custom-switch .custom-control-label::before { left:-2.25rem; width:1.75rem; pointer-events:all; border-radius:.5rem; }
.gp-admin-modern .custom-switch .custom-control-label::after { top:calc(.25rem + 2px); left:calc(-2.25rem + 2px); width:calc(1rem - 4px); height:calc(1rem - 4px); background-color:#adb5bd; border-radius:.5rem; transition:transform .15s ease-in-out, background-color .15s; }
.gp-admin-modern .custom-switch .custom-control-input:checked ~ .custom-control-label::after { background-color:#fff; transform:translateX(.75rem); }

/* --- card-tools / btn-tool (ferramentas no header do card, AdminLTE) --- */
.gp-admin-modern .card-tools { margin-left:auto; display:flex; align-items:center; gap:.25rem; }
.gp-admin-modern .card-header { display:flex; align-items:center; }
.gp-admin-modern .btn-tool { padding:.25rem .4rem; background:transparent; border:0; color:var(--gp-muted); font-size:.9rem; line-height:1; }
.gp-admin-modern .btn-tool:hover { color:var(--gp-ink); }

/* --- input-group-append / input-group-prepend (wrappers BS4 dentro de input-group BS5) --- */
.gp-admin-modern .input-group-append, .gp-admin-modern .input-group-prepend { display:flex; }
.gp-admin-modern .input-group-append { margin-left:-1px; }
.gp-admin-modern .input-group-prepend { margin-right:-1px; }

/* --- btn-group-toggle (data-toggle="buttons") — estado ativo via :checked (sem o JS removido do BS5) --- */
.gp-admin-modern .btn-group-toggle > label { margin-bottom:0; }
.gp-admin-modern .btn-group-toggle > label input[type="radio"],
.gp-admin-modern .btn-group-toggle > label input[type="checkbox"] { position:absolute; clip:rect(0,0,0,0); pointer-events:none; }
.gp-admin-modern .btn-group-toggle > label:has(input:checked).btn-outline-success { color:#fff; background-color:#28a745; border-color:#28a745; }
.gp-admin-modern .btn-group-toggle > label:has(input:checked).btn-outline-warning { color:#212529; background-color:#ffc107; border-color:#ffc107; }
.gp-admin-modern .btn-group-toggle > label:has(input:checked).btn-outline-primary { color:#fff; background-color:var(--gp-primary); border-color:var(--gp-primary); }

/* --- contraste de badges em fundos claros (BS5 não escurece o texto automaticamente) --- */
.gp-admin-modern .badge.bg-warning,
.gp-admin-modern .badge.bg-light,
.gp-admin-modern .badge.bg-info { color:#212529; }

/* --- .form-group: BS5 removeu (era só margin-bottom); telas de formulário dependem dela --- */
.gp-admin-modern .form-group { margin-bottom:1rem; }

/* ===========================================================================
   APPEND consolidado (06/2026) — compat p/ telas migradas que pediram CSS novo.
   Itens já cobertos acima (custom-control/switch/checkbox/radio, small-box,
   card-tools, input-group append/prepend, btn-group-toggle, badge, form-group)
   NÃO foram reescritos. Aqui só entra o que realmente faltava:
     1) custom-file / custom-file-input / custom-file-label (BS4) — sem equivalente BS5
        Pedido por: capas/edit.php, municipios/upload-certificado.php
     2) callout / callout-warning (AdminLTE) — sem equivalente BS5
        Pedido por: municipios/upload-certificado.php
     3) custom-switch-status — modificador opt-in p/ toggle de status (off=vermelho,
        on=verde), substitui o <style> inline de users/create.php e users/edit.php.
        Aplicar a classe .custom-switch-status no <div class="custom-control custom-switch">.
   =========================================================================== */

/* --- 1) custom-file (BS4): label sobreposto ao input, exibe nome do arquivo via JS --- */
.gp-admin-modern .custom-file { position:relative; display:inline-block; width:100%; height:calc(1.5em + .75rem + 2px); margin-bottom:0; }
.gp-admin-modern .custom-file-input { position:relative; z-index:2; width:100%; height:calc(1.5em + .75rem + 2px); margin:0; overflow:hidden; opacity:0; cursor:pointer; }
.gp-admin-modern .custom-file-input:disabled { cursor:default; }
.gp-admin-modern .custom-file-label { position:absolute; top:0; right:0; left:0; z-index:1; height:calc(1.5em + .75rem + 2px); padding:.375rem .75rem; overflow:hidden; font-weight:400; line-height:1.5; color:var(--gp-ink,#1f2733); white-space:nowrap; text-overflow:ellipsis; background-color:var(--gp-card-bg,#fff); border:1px solid var(--gp-line,#ced4da); border-radius:.375rem; }
.gp-admin-modern .custom-file-label::after { position:absolute; top:0; right:0; bottom:0; z-index:3; display:block; height:calc(1.5em + .75rem); padding:.375rem .75rem; line-height:1.5; color:#fff; content:"Procurar"; background-color:var(--gp-primary); border-left:inherit; border-radius:0 .375rem .375rem 0; }
.gp-admin-modern .custom-file-input:focus ~ .custom-file-label { border-color:var(--gp-primary); box-shadow:0 0 0 .2rem rgba(30,126,52,.25); }
.gp-admin-modern .custom-file-input:disabled ~ .custom-file-label { background-color:var(--gp-primary-light,#e9ecef); color:var(--gp-muted,#6b7785); }
body.gp-admin-modern.dark-mode .custom-file-label { background-color:#131922; }
body.gp-admin-modern.dark-mode .custom-file-input:disabled ~ .custom-file-label { background-color:#1a212b; }

/* --- 2) callout (AdminLTE): bloco de aviso com borda lateral; variante warning --- */
.gp-admin-modern .callout { position:relative; margin:0 0 1rem; padding:.85rem 1rem; border-radius:var(--gp-radius-sm,10px); border-left:5px solid var(--gp-muted,#6b7785); background:var(--gp-card-bg,#fff); box-shadow:var(--gp-shadow,0 1px 3px rgba(0,0,0,.08)); }
.gp-admin-modern .callout h5 { margin-top:0; margin-bottom:.5rem; font-size:1rem; font-weight:600; }
.gp-admin-modern .callout p:last-child, .gp-admin-modern .callout ul:last-child { margin-bottom:0; }
.gp-admin-modern .callout-warning { border-left-color:#ffc107; background:rgba(255,193,7,.10); }
.gp-admin-modern .callout-warning h5 { color:#9a6b00; }
.gp-admin-modern .callout-info { border-left-color:#17a2b8; background:rgba(23,162,184,.10); }
.gp-admin-modern .callout-danger { border-left-color:#dc3545; background:rgba(220,53,69,.10); }
.gp-admin-modern .callout-success { border-left-color:var(--gp-primary); background:rgba(30,126,52,.10); }
body.gp-admin-modern.dark-mode .callout-warning { background:rgba(255,193,7,.14); }
body.gp-admin-modern.dark-mode .callout-warning h5 { color:#ffcd39; }
body.gp-admin-modern.dark-mode .callout-info { background:rgba(23,162,184,.14); }
body.gp-admin-modern.dark-mode .callout-danger { background:rgba(220,53,69,.14); }
body.gp-admin-modern.dark-mode .callout-success { background:rgba(30,126,52,.16); }

/* --- 3) custom-switch-status: toggle de status (off=vermelho, on=verde) --- */
/* Modifier opt-in: NÃO altera o .custom-switch genérico (que segue cinza-off/verde-on). */
.gp-admin-modern .custom-switch-status .custom-control-label::before { background-color:#dc3545; border-color:#dc3545; }
.gp-admin-modern .custom-switch-status .custom-control-input:checked ~ .custom-control-label::before { background-color:#28a745; border-color:#28a745; }
.gp-admin-modern .custom-switch-status .custom-control-label::after { border-radius:50%; }
.gp-admin-modern .custom-switch-status .custom-control-input:disabled ~ .custom-control-label { opacity:.6; cursor:not-allowed; }
.gp-admin-modern .status-text { font-weight:500; }

/* --- 4) Tema verde nos controles NATIVOS do BS5 (form-check/switch/radio) ---
   Por padrão o BS5 usa --bs-primary (azul) no :checked; alinhamos ao verde GP. */
.gp-admin-modern .form-check-input:checked { background-color:var(--gp-primary); border-color:var(--gp-primary); }
.gp-admin-modern .form-check-input:focus { border-color:var(--gp-accent); box-shadow:0 0 0 .25rem rgba(40,167,69,.20); }
/* gp-status-switch: form-switch BS5 de status (off=vermelho, on=verde, knob branco) */
.gp-admin-modern .gp-status-switch .form-check-input:checked { background-color:#28a745; border-color:#28a745; }
.gp-admin-modern .gp-status-switch .form-check-input:not(:checked) { background-color:#dc3545; border-color:#dc3545; background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e"); }

/* --- 5) card-outline: variantes que faltavam (borda superior colorida) --- */
.gp-admin-modern .card.card-outline.card-secondary { border-top:3px solid var(--gp-muted); }
.gp-admin-modern .card.card-outline.card-success { border-top:3px solid #28a745; }
.gp-admin-modern .card.card-outline.card-danger { border-top:3px solid #dc3545; }

/* ============================================================
   "ENXUTO" — declutter das páginas (escolha do usuário, 09/06/2026)
   Meta: 1 delimitador por card, stat boxes claros, mais respiro.
   (vem por último: vence as regras anteriores na cascata)
   ============================================================ */
/* respiro */
.gp-admin-modern .gp-admin-content { padding: 28px 32px; }
.gp-admin-modern .gp-page-title { margin-bottom: .35rem; }
.gp-admin-modern .breadcrumb { margin-bottom: 22px; }

/* cards: borda fina + sombra quase plana, SEM faixa colorida no topo */
.gp-admin-modern .card,
.gp-admin-modern .gp-card { box-shadow: 0 1px 3px rgba(16,38,73,.045); }
.gp-admin-modern .info-box { box-shadow: 0 1px 2px rgba(16,38,73,.035); }
.gp-admin-modern .card.card-outline.card-primary,
.gp-admin-modern .card.card-outline.card-info,
.gp-admin-modern .card.card-outline.card-warning,
.gp-admin-modern .card.card-outline.card-secondary,
.gp-admin-modern .card.card-outline.card-success,
.gp-admin-modern .card.card-outline.card-danger { border-top: 1px solid var(--gp-line); }

/* stat boxes (small-box) -> card claro, número e ícone coloridos (ícone num selo) */
.gp-admin-modern .small-box { background: var(--gp-card-bg) !important; color: var(--gp-ink); border: 1px solid var(--gp-line); box-shadow: 0 1px 3px rgba(16,38,73,.045); }
.gp-admin-modern .small-box > .inner { padding: 1.1rem 1.2rem; }
.gp-admin-modern .small-box h3 { color: var(--gp-ink); font-size: 1.95rem; }
.gp-admin-modern .small-box p { color: var(--gp-muted); margin-bottom: 0; }
.gp-admin-modern .small-box .icon { top: 50%; right: 1.1rem; transform: translateY(-50%); width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; border-radius: 12px; font-size: 1.4rem; opacity: 1; }
.gp-admin-modern .small-box:hover .icon { transform: translateY(-50%); }
.gp-admin-modern .small-box .small-box-footer { background: transparent; color: var(--gp-muted); border-top: 1px solid var(--gp-line); }
.gp-admin-modern .small-box.bg-info    h3 { color:#138496; } .gp-admin-modern .small-box.bg-info    .icon { color:#17a2b8; background:rgba(23,162,184,.12); }
.gp-admin-modern .small-box.bg-success h3 { color:#1e7e34; } .gp-admin-modern .small-box.bg-success .icon { color:#28a745; background:rgba(40,167,69,.12); }
.gp-admin-modern .small-box.bg-primary h3 { color:var(--gp-primary); } .gp-admin-modern .small-box.bg-primary .icon { color:var(--gp-primary); background:var(--gp-primary-light); }
.gp-admin-modern .small-box.bg-warning h3 { color:#b8860b; } .gp-admin-modern .small-box.bg-warning .icon { color:#e0a800; background:rgba(255,193,7,.16); }
.gp-admin-modern .small-box.bg-danger  h3 { color:#c82333; } .gp-admin-modern .small-box.bg-danger  .icon { color:#dc3545; background:rgba(220,53,69,.12); }
.gp-admin-modern .small-box.bg-secondary h3 { color:#5a6268; } .gp-admin-modern .small-box.bg-secondary .icon { color:#6c757d; background:rgba(108,117,125,.12); }

/* dark-mode: stat boxes seguem o card escuro; número claro, selos do ícone seguem vivos */
body.gp-admin-modern.dark-mode .small-box { background: var(--gp-card-bg) !important; border-color: var(--gp-line); }
body.gp-admin-modern.dark-mode .small-box h3 { color: var(--gp-ink); }
body.gp-admin-modern.dark-mode .small-box .small-box-footer { border-top-color: var(--gp-line); }

/* ============================================================
   "SÓBRIO: VERDE + NEUTRO" — botões e cores (escolha 09/06/2026)
   1 ação verde por contexto; resto neutro/ghost; ícones de tabela
   discretos; badges viram pills suaves; headers de card tintados.
   Tudo central: nenhuma tela precisa mudar markup.
   ============================================================ */
/* base dos botões */
.gp-admin-modern .btn { border-radius: 9px; font-weight: 500; }
.gp-admin-modern .btn:focus-visible { box-shadow: 0 0 0 .2rem rgba(40,167,69,.22); }

/* ação principal: família verde (primary e success convergem no verde GP) */
.gp-admin-modern .btn-primary, .gp-admin-modern .btn-success {
    background: var(--gp-primary); border-color: var(--gp-primary); color: #fff;
}
.gp-admin-modern .btn-primary:hover, .gp-admin-modern .btn-primary:focus, .gp-admin-modern .btn-primary:active,
.gp-admin-modern .btn-success:hover, .gp-admin-modern .btn-success:focus, .gp-admin-modern .btn-success:active {
    background: var(--gp-primary-dark); border-color: var(--gp-primary-dark); color: #fff;
}

/* secundário/neutro: ghost cinza-claro */
.gp-admin-modern .btn-secondary, .gp-admin-modern .btn-light {
    background: #f1f4f8; border-color: #e3e8ee; color: #3d4756;
}
.gp-admin-modern .btn-secondary:hover, .gp-admin-modern .btn-secondary:focus,
.gp-admin-modern .btn-light:hover, .gp-admin-modern .btn-light:focus {
    background: #e6ebf1; border-color: #d7dee6; color: #1f2733;
}

/* info/warning/danger (tamanho normal): soft — fundo tintado, sólido só no hover */
.gp-admin-modern .btn-info    { background: rgba(23,162,184,.12); border-color: transparent; color: #0f7484; }
.gp-admin-modern .btn-info:hover, .gp-admin-modern .btn-info:focus { background: #17a2b8; border-color: #17a2b8; color: #fff; }
.gp-admin-modern .btn-warning { background: rgba(224,168,0,.14); border-color: transparent; color: #8a6d00; }
.gp-admin-modern .btn-warning:hover, .gp-admin-modern .btn-warning:focus { background: #e0a800; border-color: #e0a800; color: #fff; }
.gp-admin-modern .btn-danger  { background: rgba(220,53,69,.10); border-color: transparent; color: #b02a37; }
.gp-admin-modern .btn-danger:hover, .gp-admin-modern .btn-danger:focus { background: #dc3545; border-color: #dc3545; color: #fff; }

/* ações de tabela (btn-xs): ícone discreto colorido, fundo só no hover */
.gp-admin-modern .btn-xs { background: transparent !important; border-color: transparent !important; box-shadow: none; }
.gp-admin-modern .btn-xs.btn-primary { color: var(--gp-primary); }
.gp-admin-modern .btn-xs.btn-success { color: #28a745; }
.gp-admin-modern .btn-xs.btn-info, .gp-admin-modern .btn-xs.btn-outline-info { color: #17a2b8; }
.gp-admin-modern .btn-xs.btn-warning { color: #d39e00; }
.gp-admin-modern .btn-xs.btn-danger { color: #dc3545; }
.gp-admin-modern .btn-xs.btn-secondary, .gp-admin-modern .btn-xs.btn-outline-secondary { color: var(--gp-muted); }
.gp-admin-modern .btn-xs.btn-primary:hover { background: var(--gp-primary-light) !important; }
.gp-admin-modern .btn-xs.btn-success:hover { background: rgba(40,167,69,.14) !important; }
.gp-admin-modern .btn-xs.btn-info:hover, .gp-admin-modern .btn-xs.btn-outline-info:hover { background: rgba(23,162,184,.14) !important; }
.gp-admin-modern .btn-xs.btn-warning:hover { background: rgba(224,168,0,.16) !important; }
.gp-admin-modern .btn-xs.btn-danger:hover { background: rgba(220,53,69,.12) !important; }
.gp-admin-modern .btn-xs.btn-secondary:hover, .gp-admin-modern .btn-xs.btn-outline-secondary:hover { background: rgba(16,38,73,.07) !important; }

/* badges -> pills suaves (fundo ~12% + texto na cor; cor cheia nunca) */
.gp-admin-modern .badge { font-weight: 600; }
.gp-admin-modern .badge.bg-success   { background: rgba(40,167,69,.14) !important; color: #1e7e34 !important; }
.gp-admin-modern .badge.bg-info      { background: rgba(23,162,184,.14) !important; color: #0f7484 !important; }
.gp-admin-modern .badge.bg-warning   { background: rgba(224,168,0,.16) !important; color: #8a6d00 !important; }
.gp-admin-modern .badge.bg-danger    { background: rgba(220,53,69,.12) !important; color: #b02a37 !important; }
.gp-admin-modern .badge.bg-primary   { background: var(--gp-primary-light) !important; color: var(--gp-primary-dark) !important; }
.gp-admin-modern .badge.bg-secondary { background: rgba(108,117,125,.14) !important; color: #5a6268 !important; }
.gp-admin-modern .badge.bg-light     { background: #eef1f5 !important; color: #5a6268 !important; }
.gp-admin-modern .badge.bg-dark      { background: rgba(31,39,51,.12) !important; color: #1f2733 !important; }

/* headers de card coloridos -> tintados (modais NÃO: continuam sólidos) */
.gp-admin-modern .card-header.bg-primary { background: var(--gp-primary-light) !important; color: var(--gp-primary-dark) !important; }
.gp-admin-modern .card-header.bg-success { background: rgba(40,167,69,.12) !important; color: #1e7e34 !important; }
.gp-admin-modern .card-header.bg-danger  { background: rgba(220,53,69,.10) !important; color: #b02a37 !important; }
.gp-admin-modern .card-header.bg-warning { background: rgba(224,168,0,.14) !important; color: #8a6d00 !important; }
.gp-admin-modern .card-header.bg-info    { background: rgba(23,162,184,.12) !important; color: #0f7484 !important; }
.gp-admin-modern .card-header[class*="bg-"] .card-title,
.gp-admin-modern .card-header[class*="bg-"] .text-white { color: inherit !important; }

/* ---- dark mode: mesmas hierarquias, alvos mais claros ---- */
body.gp-admin-modern.dark-mode .btn-secondary, body.gp-admin-modern.dark-mode .btn-light { background: #222b37; border-color: #2b3543; color: #cfd6df; }
body.gp-admin-modern.dark-mode .btn-secondary:hover, body.gp-admin-modern.dark-mode .btn-light:hover { background: #2a3442; color: #fff; }
body.gp-admin-modern.dark-mode .btn-info    { background: rgba(23,162,184,.18); color: #6fd3e3; }
body.gp-admin-modern.dark-mode .btn-warning { background: rgba(224,168,0,.20); color: #ffd75e; }
body.gp-admin-modern.dark-mode .btn-danger  { background: rgba(220,53,69,.16); color: #f1969f; }
body.gp-admin-modern.dark-mode .badge.bg-success   { background: rgba(40,167,69,.22) !important; color: #7ddf9a !important; }
body.gp-admin-modern.dark-mode .badge.bg-info      { background: rgba(23,162,184,.22) !important; color: #6fd3e3 !important; }
body.gp-admin-modern.dark-mode .badge.bg-warning   { background: rgba(224,168,0,.22) !important; color: #ffd75e !important; }
body.gp-admin-modern.dark-mode .badge.bg-danger    { background: rgba(220,53,69,.20) !important; color: #f1969f !important; }
body.gp-admin-modern.dark-mode .badge.bg-primary   { background: rgba(40,167,69,.22) !important; color: #7ddf9a !important; }
body.gp-admin-modern.dark-mode .badge.bg-secondary { background: rgba(151,163,180,.18) !important; color: #aeb9c6 !important; }
body.gp-admin-modern.dark-mode .badge.bg-light     { background: rgba(151,163,180,.14) !important; color: #aeb9c6 !important; }
body.gp-admin-modern.dark-mode .badge.bg-dark      { background: rgba(230,232,235,.12) !important; color: #e6e8eb !important; }
body.gp-admin-modern.dark-mode .card-header.bg-primary { background: rgba(40,167,69,.16) !important; color: #7ddf9a !important; }
body.gp-admin-modern.dark-mode .card-header.bg-success { background: rgba(40,167,69,.16) !important; color: #7ddf9a !important; }
body.gp-admin-modern.dark-mode .card-header.bg-danger  { background: rgba(220,53,69,.16) !important; color: #f1969f !important; }
body.gp-admin-modern.dark-mode .card-header.bg-warning { background: rgba(224,168,0,.16) !important; color: #ffd75e !important; }
body.gp-admin-modern.dark-mode .card-header.bg-info    { background: rgba(23,162,184,.16) !important; color: #6fd3e3 !important; }
body.gp-admin-modern.dark-mode .btn-xs.btn-secondary:hover, body.gp-admin-modern.dark-mode .btn-xs.btn-outline-secondary:hover { background: rgba(255,255,255,.07) !important; }

/* --------------------------- Login ----------------------------- */
body.gp-login-page {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(145deg, var(--gp-primary-dark) 0%, #0d3d1a 50%, var(--gp-primary) 100%);
    padding: 24px;
    font-family: var(--gp-font);
}

.gp-login-wrap {
    width: 100%;
    max-width: 420px;
}

.gp-login-card {
    background: #fff;
    border-radius: var(--gp-radius);
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.25);
    overflow: hidden;
}

.gp-login-card-header {
    background: var(--gp-primary-dark);
    color: #fff;
    padding: 32px 28px 28px;
    text-align: center;
}

.gp-login-card-header img {
    max-height: 44px;
    margin-bottom: 16px;
    filter: brightness(0) invert(1);
}

.gp-login-card-header h1 {
    font-size: 1.25rem;
    font-weight: 700;
    margin: 0 0 4px;
}

.gp-login-card-header p {
    margin: 0;
    font-size: 13px;
    opacity: 0.85;
}

.gp-login-card-body {
    padding: 32px 28px;
}

.gp-login-card-body .form-control {
    padding: 12px 14px;
    font-size: 15px;
}

.gp-login-card-body .btn-login {
    width: 100%;
    padding: 12px;
    font-size: 15px;
    font-weight: 600;
    border-radius: var(--gp-radius-sm);
    margin-top: 8px;
    background-color: var(--gp-primary);
    border-color: var(--gp-primary);
}

.gp-login-card-body .btn-login:hover,
.gp-login-card-body .btn-login:focus {
    background-color: var(--gp-accent);
    border-color: var(--gp-accent);
}

.gp-login-footer-note {
    text-align: center;
    margin-top: 20px;
    font-size: 12px;
    color: var(--gp-muted);
}

.gp-admin-sidebar.d-none.d-lg-flex {
    flex-direction: column;
}

@media (max-width: 767.98px) {
    .gp-admin-topbar-user .gp-user-name {
        display: none;
    }
}

/* Títulos proporcionais (não AdminLTE gigante) */
.gp-admin-modern .gp-page-title,
.gp-admin-modern .gp-admin-content h1,
.gp-admin-modern .content-header h1 {
  font-size: 1.35rem !important;
  font-weight: 700;
  line-height: 1.35;
  margin-bottom: 0.75rem;
}
.gp-admin-modern .gp-admin-content h2,
.gp-admin-modern .card-header .card-title,
.gp-admin-modern .card-title,
.gp-admin-modern .box-header h3 {
  font-size: 1.1rem !important;
  font-weight: 600;
}
.gp-admin-modern .gp-admin-content h3,
.gp-admin-modern .card-header h3 {
  font-size: 1rem !important;
  font-weight: 600;
}

/* ============================================================
   INNER PAGES — layout calmo reutilizável (TCE, diários, editais)
   Escopo: .gp-inner-page + modificadores (.gp-muni-list, etc.)
   ============================================================ */

/* respiro entre seções */
.gp-admin-modern .gp-inner-page > .row + .row { margin-top: .5rem; }
.gp-admin-modern .gp-inner-page .card { margin-bottom: 1.25rem; }
.gp-admin-modern .gp-inner-page .card-header {
    background: transparent;
    border-bottom: 1px solid var(--gp-line);
    padding: .85rem 1.15rem;
}
.gp-admin-modern .gp-inner-page .card-body { padding: 1.15rem 1.25rem; }
.gp-admin-modern .gp-inner-page .card-header .card-title { font-weight: 600; color: var(--gp-ink); }
.gp-admin-modern .gp-inner-page .card-header .card-title i {
    color: var(--gp-muted);
    font-size: .88em;
    margin-right: .35rem;
}

/* --- lista de municípios --- */
.gp-admin-modern .gp-muni-list .list-group-item {
    padding: .55rem .85rem;
    border-color: var(--gp-line);
    font-size: .875rem;
}
.gp-admin-modern .gp-muni-list .list-group-item a { color: var(--gp-ink); }
.gp-admin-modern .gp-muni-list .list-group-item a strong { font-weight: 600; }
.gp-admin-modern .gp-muni-list .list-group-item.active {
    background: var(--gp-primary-light);
    border-color: var(--gp-line);
    border-left: 3px solid var(--gp-primary);
    color: var(--gp-ink);
}
.gp-admin-modern .gp-muni-list .list-group-item.active a { color: var(--gp-ink); }
.gp-admin-modern .gp-muni-list .list-group-item:hover:not(.active) { background: rgba(16,38,73,.025); }
.gp-admin-modern .gp-muni-list .list-group-item .fa-certificate,
.gp-admin-modern .gp-muni-list .list-group-item .fa-key {
    font-size: .72rem;
    opacity: .65;
}
.gp-admin-modern .gp-muni-list .list-group-item .text-success { color: var(--gp-primary) !important; }
.gp-admin-modern .gp-muni-list .list-group-item .text-danger { color: #c45c5c !important; opacity: .85; }
.gp-admin-modern .gp-muni-list .custom-switch {
    padding-left: 1.85rem;
    margin-bottom: 0;
    transform: scale(.82);
    transform-origin: center right;
}
.gp-admin-modern .gp-muni-list .custom-switch .custom-control-label::before {
    left: -1.85rem;
    width: 1.5rem;
    height: .85rem;
    top: .35rem;
}
.gp-admin-modern .gp-muni-list .custom-switch .custom-control-label::after {
    left: calc(-1.85rem + 2px);
    width: calc(.75rem - 4px);
    height: calc(.75rem - 4px);
    top: calc(.35rem + 2px);
}
.gp-admin-modern .gp-muni-list .custom-switch .custom-control-input:checked ~ .custom-control-label::after {
    transform: translateX(.65rem);
}

/* --- card token: neutro (sem amarelo de aviso) --- */
.gp-admin-modern .gp-token-card { border: 1px solid var(--gp-line); }
.gp-admin-modern .gp-token-card .form-control {
    background: var(--gp-card-bg);
    border: 1px solid var(--gp-line);
}
.gp-admin-modern .gp-token-card .form-control:focus {
    border-color: var(--gp-accent);
    box-shadow: 0 0 0 .2rem rgba(40,167,69,.12);
}
.gp-admin-modern .gp-token-card .form-control.is-invalid {
    border-color: #dc3545;
    background: rgba(220,53,69,.04);
}

/* --- status certificado/token: faixa horizontal compacta --- */
.gp-admin-modern .gp-status-row { --gp-status-gap: .75rem; }
.gp-admin-modern .gp-status-row > [class*="col-"] { margin-bottom: var(--gp-status-gap); }
.gp-admin-modern .gp-status-row .info-box {
    flex-direction: row;
    align-items: center;
    gap: .75rem;
    padding: .75rem 1rem;
    margin-bottom: 0;
    min-height: auto;
}
.gp-admin-modern .gp-status-row .info-box-icon {
    width: 34px;
    height: 34px;
    font-size: .95rem;
    border-radius: 8px;
}
.gp-admin-modern .gp-status-row .info-box-text {
    font-size: .68rem;
    margin-bottom: 2px;
    letter-spacing: .04em;
}
.gp-admin-modern .gp-status-row .info-box-number {
    font-size: .875rem;
    font-weight: 600;
}
.gp-admin-modern .gp-status-row .info-box-number .text-success { color: var(--gp-primary) !important; }
.gp-admin-modern .gp-status-row .info-box-number .text-danger { color: #b02a37 !important; }
.gp-admin-modern .gp-status-row .info-box-icon.bg-warning {
    background: rgba(108,117,125,.10);
    color: var(--gp-muted);
}

/* --- painel envio automático --- */
.gp-admin-modern .gp-envio-panel .card-body { padding: 1rem 1.25rem; }
.gp-admin-modern .gp-envio-panel #autoAmbienteBadge {
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .05em;
    text-transform: uppercase;
    padding: .3em .65em;
}
.gp-admin-modern .gp-envio-panel #autoCronometro {
    color: var(--gp-ink) !important;
    font-size: 1.15rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}
.gp-admin-modern .gp-envio-panel #autoUltimoResumo:not(:empty) {
    display: block;
    margin-top: .35rem;
    padding: .4rem .6rem;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: .72rem;
    line-height: 1.45;
    color: var(--gp-muted);
    background: #f1f4f8;
    border: 1px solid var(--gp-line);
    border-radius: 6px;
    max-height: 4.5em;
    overflow-y: auto;
}
.gp-admin-modern .gp-envio-panel .custom-control-label strong { font-weight: 600; }

/* --- filtros ambiente: toggle suave --- */
.gp-admin-modern .gp-tce-page .btn-group-toggle > label.btn-outline-warning,
.gp-admin-modern .gp-tce-page .btn-group-toggle > label.btn-outline-success {
    background: #f1f4f8;
    border-color: var(--gp-line);
    color: var(--gp-muted);
}
.gp-admin-modern .gp-tce-page .btn-group-toggle > label:has(input:checked).btn-outline-warning {
    background: rgba(224,168,0,.12);
    border-color: rgba(224,168,0,.35);
    color: #8a6d00;
}
.gp-admin-modern .gp-tce-page .btn-group-toggle > label:has(input:checked).btn-outline-success {
    background: var(--gp-primary-light);
    border-color: rgba(30,126,52,.35);
    color: var(--gp-primary-dark);
}

/* --- tabela diários: badges menores, ações discretas --- */
.gp-admin-modern .gp-tce-page .table .badge {
    font-size: .68rem;
    font-weight: 500;
    padding: .28em .5em;
    border-radius: 999px;
}
.gp-admin-modern .gp-tce-page .table .badge.bg-success { background: rgba(40,167,69,.10) !important; color: #1e7e34 !important; }
.gp-admin-modern .gp-tce-page .table .badge.bg-info    { background: rgba(23,162,184,.10) !important; color: #0f7484 !important; }
.gp-admin-modern .gp-tce-page .table .badge.bg-secondary { background: rgba(108,117,125,.10) !important; color: #5a6268 !important; }
.gp-admin-modern .gp-tce-page .table .badge.bg-warning  { background: rgba(224,168,0,.12) !important; color: #8a6d00 !important; }
.gp-admin-modern .gp-tce-page .table .badge.bg-danger   { background: rgba(220,53,69,.08) !important; color: #b02a37 !important; }
.gp-admin-modern .gp-tce-page .table .acoes-envio .btn-xs { padding: .15rem .35rem; font-size: .78rem; }
.gp-admin-modern .gp-tce-page #badgeMunicipio {
    font-size: .72rem;
    font-weight: 500;
    background: rgba(108,117,125,.12) !important;
    color: var(--gp-muted) !important;
}

/* --- legenda inline (sem card pesado) --- */
.gp-admin-modern .gp-legend-bar {
    border: none;
    box-shadow: none;
    background: transparent;
    margin-bottom: 0;
}
.gp-admin-modern .gp-legend-bar .card-body {
    padding: .65rem 0 0;
    border-top: 1px solid var(--gp-line);
}
.gp-admin-modern .gp-legend-bar .badge {
    font-size: .65rem;
    padding: .22em .45em;
    vertical-align: middle;
}

/* --- relatório / tabelas secundárias --- */
.gp-admin-modern .gp-tce-page .gp-table-card .badge {
    font-size: .68rem;
    font-weight: 500;
    padding: .28em .5em;
}
.gp-admin-modern .gp-tce-page .gp-table-card .btn-xs.btn-outline-info {
    padding: .12rem .35rem;
    font-size: .72rem;
    color: var(--gp-muted);
    border-color: transparent;
}
.gp-admin-modern .gp-tce-page .gp-table-card .btn-xs.btn-outline-info:hover {
    color: #0f7484;
    background: rgba(23,162,184,.10) !important;
}

/* --- página Gerar Diário Oficial --- */
.gp-admin-modern .gp-diarios-page .card {
    border: 1px solid var(--gp-line);
}
.gp-admin-modern .gp-diarios-page .form-group {
    margin-bottom: .85rem;
}
.gp-admin-modern .gp-diarios-page .form-group label {
    font-size: .875rem;
    font-weight: 500;
    color: var(--gp-ink);
    margin-bottom: .35rem;
}
.gp-admin-modern .gp-diarios-page .form-group label i {
    color: var(--gp-muted);
    font-size: .82em;
    margin-right: .25rem;
}
.gp-admin-modern .gp-diarios-page .card-footer {
    background: transparent;
    border-top: 1px solid var(--gp-line);
    padding: .85rem 1.15rem;
}
.gp-admin-modern .gp-diarios-page #totalDiarios {
    font-size: .72rem;
    font-weight: 500;
    background: rgba(108,117,125,.12) !important;
    color: var(--gp-muted) !important;
}
.gp-admin-modern .gp-diarios-page .gp-diarios-table {
    font-size: .8125rem;
}
.gp-admin-modern .gp-diarios-page .gp-diarios-table thead th {
    font-size: .72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: var(--gp-muted);
    border-bottom: 1px solid var(--gp-line);
    background: transparent;
}
.gp-admin-modern .gp-diarios-page .gp-diarios-table tbody tr:hover:not(.gp-row-active) {
    background: rgba(16,38,73,.025);
}
.gp-admin-modern .gp-diarios-page .gp-diarios-table tbody tr.gp-row-latest:not(.gp-row-active) {
    background: rgba(40,167,69,.04);
}
.gp-admin-modern .gp-diarios-page .gp-diarios-table tbody tr.gp-row-active {
    background: var(--gp-primary-light);
    box-shadow: inset 3px 0 0 var(--gp-primary);
}
.gp-admin-modern .gp-diarios-page .gp-diarios-table tbody tr.gp-row-active td {
    font-weight: 600;
}
.gp-admin-modern .gp-diarios-page .gp-diarios-table .badge.bg-warning {
    font-size: .62rem;
    font-weight: 600;
    padding: .2em .4em;
    background: rgba(224,168,0,.12) !important;
    color: #8a6d00 !important;
}
.gp-admin-modern .gp-diarios-page .gp-diarios-actions .gp-btn-icon {
    padding: .15rem .35rem;
    font-size: .78rem;
    color: var(--gp-muted);
    border-color: transparent;
    background: transparent;
    line-height: 1;
}
.gp-admin-modern .gp-diarios-page .gp-diarios-actions .gp-btn-icon + .gp-btn-icon {
    margin-left: .1rem;
}
.gp-admin-modern .gp-diarios-page .gp-diarios-actions .gp-btn-icon:hover {
    color: var(--gp-ink);
    background: rgba(16,38,73,.06);
    border-color: transparent;
}
.gp-admin-modern .gp-diarios-page .gp-preview-card .card-body {
    padding: 0;
}
.gp-admin-modern .gp-diarios-page .gp-pdf-container {
    text-align: center;
    padding: 2rem 1.5rem;
    min-height: 400px;
}
.gp-admin-modern .gp-diarios-page .gp-pdf-container iframe {
    border: none !important;
    border-top: 1px solid var(--gp-line) !important;
}
@media (min-width: 992px) {
    .gp-admin-modern .gp-diarios-page > .row.g-lg-3 {
        --bs-gutter-x: 1.35rem;
    }
}

/* --- dark mode --- */
body.gp-admin-modern.dark-mode .gp-muni-list .list-group-item.active {
    background: rgba(40,167,69,.12);
    border-left-color: var(--gp-accent);
}
body.gp-admin-modern.dark-mode .gp-envio-panel #autoUltimoResumo:not(:empty) {
    background: rgba(255,255,255,.04);
    border-color: var(--gp-line);
}
body.gp-admin-modern.dark-mode .gp-tce-page .btn-group-toggle > label.btn-outline-warning,
body.gp-admin-modern.dark-mode .gp-tce-page .btn-group-toggle > label.btn-outline-success {
    background: #222b37;
    border-color: var(--gp-line);
    color: var(--gp-muted);
}
body.gp-admin-modern.dark-mode .gp-diarios-page .gp-diarios-table tbody tr.gp-row-active {
    background: rgba(40,167,69,.12);
    box-shadow: inset 3px 0 0 var(--gp-accent);
}
body.gp-admin-modern.dark-mode .gp-diarios-page .gp-diarios-table tbody tr.gp-row-latest:not(.gp-row-active) {
    background: rgba(40,167,69,.06);
}

/* --- verificador, certificados e páginas admin restantes --- */
.gp-admin-modern .gp-stat-value--sm { font-size: 1.05rem; line-height: 1.25; }
.gp-admin-modern .gp-badge-soft {
    font-size: .68rem;
    font-weight: 500;
    padding: .28em .5em;
    border-radius: 999px;
    background: rgba(108,117,125,.10) !important;
    color: #5a6268 !important;
}
.gp-admin-modern .gp-verificador-page .gp-verificador-table thead th {
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--gp-muted);
    border-bottom: 1px solid var(--gp-line);
    white-space: nowrap;
}
.gp-admin-modern .gp-verificador-page .gp-verificador-table tbody tr:hover { background: rgba(16,38,73,.025); }
.gp-admin-modern .gp-verificador-page .gp-btn-icon,
.gp-admin-modern .gp-certificados-page .gp-btn-icon {
    background: transparent;
    border: 1px solid var(--gp-line);
    color: var(--gp-muted);
    padding: .2rem .45rem;
}
.gp-admin-modern .gp-verificador-page .gp-btn-icon:hover,
.gp-admin-modern .gp-certificados-page .gp-btn-icon:hover {
    background: var(--gp-primary-light);
    border-color: rgba(30,126,52,.25);
    color: var(--gp-primary-dark);
}
.gp-admin-modern .gp-certificados-page .gp-certificados-table thead th {
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--gp-muted);
}
.gp-admin-modern .gp-inner-page .card-tabs .nav-tabs .nav-link .badge {
    font-size: .65rem;
    font-weight: 500;
    background: rgba(108,117,125,.12) !important;
    color: var(--gp-muted) !important;
}
.gp-admin-modern .gp-inner-page .card-tabs .nav-tabs .nav-link.active .badge {
    background: var(--gp-primary-light) !important;
    color: var(--gp-primary-dark) !important;
}
.gp-admin-modern .gp-editais-page .card-footer .btn { margin-bottom: .35rem; }

/* ============================================================
   Font Awesome 6 — webfonts locais + prioridade sobre Inter
   (body/headings herdam Inter e quebram ícones como "F0 85")
   ============================================================ */
@font-face {
    font-family: "Font Awesome 6 Free";
    font-style: normal;
    font-weight: 400;
    font-display: block;
    src: url("/assets/webfonts/fa-regular-400.woff2") format("woff2");
}
@font-face {
    font-family: "Font Awesome 6 Free";
    font-style: normal;
    font-weight: 900;
    font-display: block;
    src: url("/assets/webfonts/fa-solid-900.woff2") format("woff2");
}
@font-face {
    font-family: "Font Awesome 6 Brands";
    font-style: normal;
    font-weight: 400;
    font-display: block;
    src: url("/assets/webfonts/fa-brands-400.woff2") format("woff2");
}

.gp-admin-modern .fa,
.gp-admin-modern .fas,
.gp-admin-modern .far,
.gp-admin-modern .fab,
.gp-admin-modern .fa-solid,
.gp-admin-modern .fa-regular,
.gp-admin-modern .fa-brands,
.gp-admin-modern [class^="fa-"],
.gp-admin-modern [class*=" fa-"],
.gp-login-page .fa,
.gp-login-page .fas,
.gp-login-page .far,
.gp-login-page .fab,
.gp-login-page .fa-solid,
.gp-login-page .fa-regular,
.gp-login-page .fa-brands,
.gp-login-page [class^="fa-"],
.gp-login-page [class*=" fa-"] {
    font-family: "Font Awesome 6 Free", "Font Awesome 6 Pro", "FontAwesome" !important;
    font-style: normal !important;
    font-variant: normal !important;
    text-rendering: auto !important;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.gp-admin-modern .fa-solid,
.gp-admin-modern .fas,
.gp-admin-modern .fa,
.gp-login-page .fa-solid,
.gp-login-page .fas,
.gp-login-page .fa {
    font-weight: 900 !important;
}

.gp-admin-modern .fa-regular,
.gp-admin-modern .far,
.gp-login-page .fa-regular,
.gp-login-page .far {
    font-weight: 400 !important;
}

.gp-admin-modern .fa-brands,
.gp-admin-modern .fab,
.gp-login-page .fa-brands,
.gp-login-page .fab {
    font-family: "Font Awesome 6 Brands" !important;
    font-weight: 400 !important;
}

/* ícones dentro de títulos (h1–h5) não herdam font shorthand do heading */
.gp-admin-modern h1 .fa,
.gp-admin-modern h1 .fas,
.gp-admin-modern h1 .fa-solid,
.gp-admin-modern h2 .fa,
.gp-admin-modern h2 .fas,
.gp-admin-modern h2 .fa-solid,
.gp-admin-modern h3 .fa,
.gp-admin-modern h3 .fas,
.gp-admin-modern h3 .fa-solid,
.gp-admin-modern h4 .fa,
.gp-admin-modern h4 .fas,
.gp-admin-modern h4 .fa-solid,
.gp-admin-modern h5 .fa,
.gp-admin-modern h5 .fas,
.gp-admin-modern h5 .fa-solid,
.gp-admin-modern .gp-page-title i,
.gp-admin-modern .card-title i,
.gp-admin-modern .card-header i[class*="fa-"] {
    font-family: "Font Awesome 6 Free", "Font Awesome 6 Pro", "FontAwesome" !important;
    font-weight: 900 !important;
}
