/*
 * Gestão Integrada — Corporate Precision
 * Camada visual global gerada a partir dos princípios frontend-design + ui-ux-pro-max.
 * Mantém Bootstrap/Razor e os componentes existentes; concentra somente acabamento e acessibilidade.
 */

:root,
[data-bs-theme="dark"] {
    --gs-font-sans: "Segoe UI Variable Text", "Segoe UI Variable", "Segoe UI", system-ui, sans-serif;
    --gs-font-heading: "Bahnschrift", "Segoe UI Variable Display", "Segoe UI", system-ui, sans-serif;
    --gs-font-data: "Cascadia Mono", "SFMono-Regular", Consolas, monospace;

    --gs-accent: #d9852d;
    --gs-accent-strong: #f0aa61;
    --gs-accent-deep: #9f5918;
    --gs-accent-soft: rgba(217, 133, 45, 0.13);
    --gs-hover-accent: rgba(217, 133, 45, 0.09);
    --gs-focus-ring: 0 0 0 3px rgba(240, 170, 97, 0.25);

    --gs-body-bg: #0a1015;
    --gs-shell-bg: linear-gradient(145deg, #0a1015 0%, #0d141b 56%, #0b1117 100%);
    --gs-surface-1: #111820;
    --gs-surface-2: #151d26;
    --gs-surface-3: #19232d;
    --gs-surface-4: #0f161d;
    --gs-sidebar-bg: #0c1319;
    --gs-topbar-bg: rgba(12, 19, 25, 0.92);
    --gs-control-bg: #121b23;
    --gs-control-bg-hover: #17222c;

    --gs-text-primary: #eef1f3;
    --gs-text-secondary: #c5cdd3;
    --gs-text-muted: #929da6;
    --gs-text-soft: #74808b;
    --gs-border: rgba(197, 211, 221, 0.09);
    --gs-border-strong: rgba(197, 211, 221, 0.16);

    --gs-info: #69aeca;
    --gs-success: #51ad7b;
    --gs-warning: #d9852d;
    --gs-danger: #d96b78;
    --gs-info-soft: rgba(105, 174, 202, 0.13);
    --gs-success-soft: rgba(81, 173, 123, 0.13);
    --gs-warning-soft: rgba(217, 133, 45, 0.13);
    --gs-danger-soft: rgba(217, 107, 120, 0.13);

    --gs-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.18);
    --gs-shadow-md: 0 12px 28px rgba(0, 0, 0, 0.2);
    --gs-shadow-lg: 0 24px 56px rgba(0, 0, 0, 0.28);
    --gs-shadow-premium: 0 14px 34px rgba(0, 0, 0, 0.18), inset 0 1px rgba(255, 255, 255, 0.025);

    --gs-radius-xs: 6px;
    --gs-radius-sm: 9px;
    --gs-radius-md: 12px;
    --gs-radius-lg: 16px;
    --gs-sidebar-width: 252px;
    --gs-sidebar-current-width: var(--gs-sidebar-width);

    --bs-primary: var(--gs-accent);
    --bs-primary-rgb: 217, 133, 45;
    --bs-warning-rgb: 217, 133, 45;
}

html[data-bs-theme="light"] {
    --gs-body-bg: #edf1f3;
    --gs-shell-bg: linear-gradient(145deg, #f4f6f7 0%, #edf1f3 58%, #e9eef0 100%);
    --gs-surface-1: #ffffff;
    --gs-surface-2: #f8fafb;
    --gs-surface-3: #f1f5f6;
    --gs-surface-4: #e9eef1;
    --gs-sidebar-bg: #f7f9fa;
    --gs-topbar-bg: rgba(247, 249, 250, 0.93);
    --gs-control-bg: #f4f7f8;
    --gs-control-bg-hover: #ffffff;
    --gs-text-primary: #18232c;
    --gs-text-secondary: #3f4d58;
    --gs-text-muted: #63717c;
    --gs-text-soft: #7c8992;
    --gs-border: rgba(24, 35, 44, 0.1);
    --gs-border-strong: rgba(24, 35, 44, 0.18);
    --gs-shadow-sm: 0 1px 2px rgba(24, 35, 44, 0.06);
    --gs-shadow-md: 0 12px 28px rgba(24, 35, 44, 0.08);
    --gs-shadow-lg: 0 24px 56px rgba(24, 35, 44, 0.12);
    --gs-shadow-premium: 0 14px 34px rgba(24, 35, 44, 0.075), inset 0 1px rgba(255, 255, 255, 0.9);
}

/* Foundation ----------------------------------------------------------- */
html {
    background: var(--gs-body-bg);
}

body {
    background: var(--gs-shell-bg);
    font-family: var(--gs-font-sans);
    font-size: 0.95rem;
    letter-spacing: -0.006em;
}

.app-body::before,
.auth-body::before {
    opacity: 0.12;
    background-image:
        linear-gradient(rgba(197, 211, 221, 0.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(197, 211, 221, 0.025) 1px, transparent 1px);
    background-size: 48px 48px;
    mask-image: linear-gradient(to bottom, #000 0, transparent 72%);
}

h1,
h2,
h3,
h4,
h5,
h6,
.page-title,
.brand-title,
.auth-title {
    font-family: var(--gs-font-heading);
    font-stretch: semi-condensed;
    letter-spacing: -0.025em;
}

p,
.text-muted,
.page-subtitle {
    text-wrap: pretty;
}

strong,
.fw-bold,
.fw-semibold {
    letter-spacing: -0.012em;
}

::selection {
    background: rgba(217, 133, 45, 0.3);
    color: #fff;
}

:where(a, button, [role="button"], summary, select, .form-check-input) {
    cursor: pointer;
}

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
    outline: 2px solid var(--gs-accent-strong);
    outline-offset: 2px;
}

/* Navigation shell ----------------------------------------------------- */
.sidebar {
    padding: 14px 12px 16px;
    background:
        linear-gradient(180deg, rgba(217, 133, 45, 0.045), transparent 18%),
        var(--gs-sidebar-bg);
    border-right-color: var(--gs-border);
    box-shadow: 10px 0 34px rgba(0, 0, 0, 0.1);
    backdrop-filter: blur(20px) saturate(110%);
}

.sidebar::after {
    content: "";
    position: absolute;
    top: 0;
    right: -1px;
    width: 1px;
    height: 148px;
    background: linear-gradient(to bottom, var(--gs-accent), transparent);
    opacity: 0.55;
    pointer-events: none;
}

.sidebar-brand {
    grid-template-columns: 78px minmax(0, 1fr);
    grid-template-rows: auto;
    align-items: center;
    justify-items: start;
    gap: 0.75rem;
    min-height: 72px;
    margin: 0 0 0.75rem;
    padding: 0.55rem 0.65rem;
    border-radius: var(--gs-radius-md);
    text-align: left;
}

.sidebar-brand::after {
    position: absolute;
    left: 0.65rem;
    right: 0.65rem;
    bottom: -0.42rem;
    width: auto;
    background: linear-gradient(90deg, rgba(217, 133, 45, 0.5), var(--gs-border) 32%, transparent);
}

.brand-logo {
    width: 78px;
    max-height: 48px;
    object-fit: contain;
}

.brand-copy {
    display: grid;
    gap: 0.12rem;
}

.brand-title {
    color: var(--gs-text-primary);
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.1;
}

.brand-caption {
    color: var(--gs-text-soft);
    font-size: 0.64rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    line-height: 1.2;
    text-transform: uppercase;
}

.sidebar-menu {
    gap: 0.12rem;
    margin-inline: -0.1rem;
    padding: 0.3rem 0.1rem 1rem;
}

.menu-section-label {
    display: block;
    margin: 0.8rem 0.72rem 0.28rem;
    color: var(--gs-text-soft);
    font-family: var(--gs-font-data);
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.13em;
    line-height: 1;
    text-transform: uppercase;
}

.menu-section-label:first-child {
    margin-top: 0.3rem;
}

.menu-link {
    gap: 0.68rem;
    min-height: 39px;
    padding: 0.48rem 0.68rem;
    border-radius: var(--gs-radius-sm);
    color: var(--gs-text-muted);
    font-size: 0.855rem;
    font-weight: 650;
}

.menu-icon {
    display: grid;
    width: 1.15rem;
    height: 1.15rem;
    flex: 0 0 1.15rem;
    place-items: center;
    color: var(--gs-text-soft);
    transition: color 180ms ease, transform 180ms ease;
}

.menu-icon svg {
    width: 100%;
    height: 100%;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.menu-link::before {
    left: -1px;
    width: 2px;
    border-radius: 0 2px 2px 0;
    background: var(--gs-accent);
}

.menu-link:hover {
    color: var(--gs-text-primary);
    background: rgba(197, 211, 221, 0.045);
    border-color: transparent;
    transform: none;
    box-shadow: none;
}

.menu-link:hover .menu-icon {
    color: var(--gs-text-secondary);
    transform: translateX(1px);
}

.active-menu,
.active-menu:hover,
.active-menu:focus-visible {
    color: var(--gs-text-primary) !important;
    background: linear-gradient(90deg, rgba(217, 133, 45, 0.14), rgba(217, 133, 45, 0.055));
    border-color: rgba(217, 133, 45, 0.2);
    box-shadow: inset 0 1px rgba(255, 255, 255, 0.025);
    transform: none;
}

.active-menu::before {
    height: 58%;
    opacity: 1;
}

.active-menu .menu-icon {
    color: var(--gs-accent-strong);
}

.topbar {
    min-height: 74px;
    padding: 0.72rem clamp(18px, 2.1vw, 32px);
    background: var(--gs-topbar-bg);
    border-bottom-color: var(--gs-border);
    box-shadow: 0 6px 22px rgba(0, 0, 0, 0.08);
    backdrop-filter: blur(22px) saturate(115%);
}

.topbar::after {
    left: clamp(18px, 2.1vw, 32px);
    right: auto;
    width: 104px;
    background: linear-gradient(90deg, var(--gs-accent), transparent);
    opacity: 0.72;
}

.page-header-copy {
    gap: 0.12rem;
}

.page-kicker {
    color: var(--gs-accent-strong);
    font-family: var(--gs-font-data);
    font-size: 0.61rem;
    letter-spacing: 0.13em;
}

.page-title {
    font-size: clamp(1.3rem, 1.65vw, 1.66rem);
    font-weight: 700;
    line-height: 1.08;
}

.page-subtitle {
    color: var(--gs-text-muted);
    font-size: 0.8rem;
}

.sidebar-toggle-btn,
.global-search-trigger,
.theme-toggle,
.user-menu-button {
    border-radius: var(--gs-radius-sm);
    box-shadow: none;
}

.sidebar-toggle-btn {
    width: 42px;
    height: 42px;
}

.global-search-trigger {
    min-height: 40px;
}

.theme-toggle {
    min-height: 42px;
    padding: 0.35rem 0.68rem 0.35rem 0.42rem;
}

.theme-toggle-icons {
    width: 2rem;
    height: 2rem;
    background: rgba(217, 133, 45, 0.14);
    color: var(--gs-accent-strong);
    box-shadow: inset 0 0 0 1px rgba(217, 133, 45, 0.22);
}

.user-menu-button {
    min-height: 48px;
    padding: 0.34rem 0.72rem 0.34rem 0.38rem;
}

.user-avatar,
.user-avatar-image,
.user-avatar-fallback {
    width: 36px;
    height: 36px;
    border-radius: 9px;
}

.user-avatar {
    background: var(--gs-accent-soft);
    color: var(--gs-accent-strong);
    box-shadow: inset 0 0 0 1px rgba(217, 133, 45, 0.22);
}

.user-avatar-fallback {
    color: var(--gs-accent-strong);
}

/* Content rhythm and surfaces ----------------------------------------- */
.content-area {
    padding: clamp(18px, 2vw, 28px);
}

.content-area > :first-child {
    animation: precision-content-in 260ms ease-out both;
}

.card-dark,
.content-card {
    position: relative;
    border: 1px solid var(--gs-border);
    border-radius: var(--gs-radius-lg);
    background: var(--gs-surface-1);
    box-shadow: var(--gs-shadow-premium);
}

.card-dark::before,
.content-card::before {
    content: "";
    position: absolute;
    z-index: 1;
    top: -1px;
    left: 18px;
    width: clamp(56px, 7vw, 112px);
    height: 2px;
    border-radius: 0 0 2px 2px;
    background: linear-gradient(90deg, var(--gs-accent), rgba(217, 133, 45, 0.08));
    opacity: 0.9;
    pointer-events: none;
}

.card-dark:hover,
.content-card:hover {
    border-color: var(--gs-border-strong);
    transform: none;
    box-shadow: var(--gs-shadow-premium);
}

.card-dark > :where(h1, h2, h3, h4):first-child,
.card-dark > .d-flex:first-child :where(h1, h2, h3, h4),
.content-card > .page-header :where(h1, h2, h3) {
    font-weight: 700;
}

.mini-card,
.form-section,
.form-switch-card,
.payment-split-box,
.context-summary-card {
    border: 1px solid var(--gs-border);
    border-radius: var(--gs-radius-md);
    background: var(--gs-surface-2);
    box-shadow: none;
}

.mini-card-title,
.context-summary-card > span,
.report-filter-chip,
.data-chip {
    font-family: var(--gs-font-data);
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.context-summary-card strong,
.dashboard-kpi > strong,
.dashboard-kpi > h3,
.mini-card > h3,
.mini-card > h4,
.reports-shell-stat-value {
    font-family: var(--gs-font-data);
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.045em;
}

/* Buttons and controls ------------------------------------------------- */
.btn {
    min-height: 40px;
    border-radius: var(--gs-radius-sm);
    font-size: 0.84rem;
    font-weight: 700;
    letter-spacing: -0.006em;
    box-shadow: none;
    transform: none;
    transition: background-color 170ms ease, border-color 170ms ease, color 170ms ease, box-shadow 170ms ease;
}

.btn:hover,
.btn:active {
    transform: none;
}

.btn-warning,
.btn-primary {
    border: 1px solid #e29a50;
    background: #d9852d;
    color: #111820 !important;
    box-shadow: inset 0 1px rgba(255, 255, 255, 0.2), 0 6px 16px rgba(159, 89, 24, 0.16);
}

.btn-warning:hover,
.btn-warning:focus-visible,
.btn-primary:hover,
.btn-primary:focus-visible {
    border-color: var(--gs-accent-strong);
    background: #e3974a;
    color: #0d141b !important;
    box-shadow: inset 0 1px rgba(255, 255, 255, 0.22), 0 8px 18px rgba(159, 89, 24, 0.2);
}

.btn-outline-light,
.btn-outline-secondary,
.btn-outline-info,
.btn-outline-success,
.btn-outline-warning,
.btn-outline-danger {
    border-color: var(--gs-border-strong);
    background: transparent;
    box-shadow: none;
}

.btn-outline-light:hover,
.btn-outline-secondary:hover {
    border-color: rgba(217, 133, 45, 0.35);
    background: var(--gs-accent-soft);
    color: var(--gs-text-primary);
}

.form-label,
.filter-field > label {
    color: var(--gs-text-secondary);
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.012em;
}

.form-control,
.form-select,
.form-control:disabled,
.form-select:disabled,
.form-control[readonly],
.ts-wrapper.single .ts-control {
    min-height: 42px;
    border-color: var(--gs-border);
    border-radius: var(--gs-radius-sm);
    background: var(--gs-control-bg);
    box-shadow: inset 0 1px rgba(255, 255, 255, 0.012);
    color: var(--gs-text-primary);
    font-size: 0.9rem;
}

.form-control:hover,
.form-select:hover,
.ts-wrapper.single .ts-control:hover {
    border-color: var(--gs-border-strong);
}

.form-control:focus,
.form-select:focus,
.ts-wrapper.focus .ts-control {
    border-color: rgba(217, 133, 45, 0.55);
    background: var(--gs-control-bg-hover);
    box-shadow: var(--gs-focus-ring);
}

.form-control::placeholder {
    color: var(--gs-text-soft);
    opacity: 0.82;
}

.form-check-input {
    border-color: var(--gs-border-strong);
    background-color: var(--gs-control-bg);
}

.form-check-input:checked {
    border-color: var(--gs-accent);
    background-color: var(--gs-accent);
}

.filter-toolbar {
    gap: 0.68rem;
    padding: 0;
}

.filter-actions .btn,
.dashboard-filter-actions .btn {
    min-width: auto;
}

.active-filters-bar,
.filters-active-summary {
    border: 1px solid var(--gs-border);
    border-radius: var(--gs-radius-md);
    background: rgba(105, 174, 202, 0.035);
    box-shadow: none;
}

.active-filter-chip,
.filter-chip-active {
    border-color: rgba(217, 133, 45, 0.24);
    border-radius: 7px;
    background: var(--gs-accent-soft);
    color: var(--gs-text-secondary);
}

/* Data grids ----------------------------------------------------------- */
.table-responsive:has(> .custom-table),
.listing-table-wrap,
.enterprise-grid-shell {
    position: relative;
    border: 1px solid var(--gs-border);
    border-radius: var(--gs-radius-md);
    background: var(--gs-surface-4);
    box-shadow: none;
}

.table-responsive:has(> .custom-table)::before,
.listing-table-wrap::before,
.enterprise-grid-shell::before {
    content: "";
    position: absolute;
    z-index: 3;
    top: -1px;
    left: 16px;
    width: 88px;
    height: 2px;
    background: linear-gradient(90deg, var(--gs-accent), transparent);
    pointer-events: none;
}

.custom-table,
.listing-table,
.enterprise-data-grid {
    margin-bottom: 0;
    background: transparent;
    color: var(--gs-text-secondary);
    font-size: 0.875rem;
    font-variant-numeric: tabular-nums;
}

.custom-table thead th,
.listing-table thead th,
.enterprise-data-grid thead th {
    height: 45px;
    padding: 0.72rem 0.9rem;
    border-bottom: 1px solid var(--gs-border-strong);
    background: #151e27;
    color: var(--gs-text-muted);
    font-family: var(--gs-font-data);
    font-size: 0.64rem;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

html[data-bs-theme="light"] .custom-table thead th,
html[data-bs-theme="light"] .listing-table thead th,
html[data-bs-theme="light"] .enterprise-data-grid thead th {
    background: #eef2f4;
    color: #596773;
}

.custom-table tbody td,
.listing-table tbody td,
.enterprise-data-grid tbody td {
    padding: 0.76rem 0.9rem;
    border-bottom-color: var(--gs-border);
    color: var(--gs-text-secondary);
    vertical-align: middle;
}

.custom-table tbody tr:last-child td,
.listing-table tbody tr:last-child td,
.enterprise-data-grid tbody tr:last-child td {
    border-bottom: 0;
}

.custom-table tbody tr,
.listing-table tbody tr,
.enterprise-data-grid tbody tr {
    transition: background-color 160ms ease, box-shadow 160ms ease;
}

.custom-table tbody tr:hover > td,
.listing-table tbody tr:hover > td,
.enterprise-data-grid tbody tr:hover > td,
.custom-table tbody tr:focus-within > td,
.listing-table tbody tr:focus-within > td {
    background: rgba(105, 174, 202, 0.045);
}

.custom-table tbody tr:hover,
.listing-table tbody tr:hover,
.enterprise-data-grid tbody tr:hover {
    box-shadow: inset 2px 0 var(--gs-accent);
}

.listing-primary-cell strong,
.custom-table td strong {
    color: var(--gs-text-primary);
    font-weight: 700;
}

.table-sort-link {
    gap: 0.38rem;
    color: inherit;
}

.sort-icon {
    border: 1px solid var(--gs-border);
    border-radius: 5px;
    background: rgba(197, 211, 221, 0.025);
    color: var(--gs-text-soft);
}

th[aria-sort="ascending"] .sort-icon,
th[aria-sort="descending"] .sort-icon {
    border-color: rgba(217, 133, 45, 0.28);
    background: var(--gs-accent-soft);
    color: var(--gs-accent-strong);
}

.table-actions-trigger {
    min-height: 34px;
    border-radius: 8px;
    background: transparent;
}

.table-actions-dropdown-menu {
    border-radius: 10px;
    box-shadow: var(--gs-shadow-md);
}

.badge,
.status-badge,
.data-chip {
    border-radius: 6px;
    font-size: 0.72rem;
    font-weight: 700;
}

.pagination-toolbar .pagination,
.pagination {
    gap: 0.28rem;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.pagination-toolbar .pagination.pagination-dark .page-link,
.pagination .page-link {
    min-width: 34px;
    min-height: 34px;
    border: 1px solid var(--gs-border);
    border-radius: 7px !important;
    background: var(--gs-control-bg);
    color: var(--gs-text-secondary);
    box-shadow: none;
}

.pagination .page-item.active .page-link,
.pagination-toolbar .pagination .page-item.active .page-link {
    border-color: rgba(217, 133, 45, 0.45);
    background: var(--gs-accent-soft);
    color: var(--gs-accent-strong);
    box-shadow: inset 0 -2px var(--gs-accent);
}

/* Dashboards ----------------------------------------------------------- */
.dashboard-hero,
.operations-dashboard-hero {
    overflow: hidden;
    background:
        linear-gradient(110deg, rgba(217, 133, 45, 0.055), transparent 34%),
        var(--gs-surface-1);
}

.dashboard-hero::after,
.operations-dashboard-hero::after {
    content: "";
    position: absolute;
    top: 0;
    right: clamp(22px, 4vw, 64px);
    width: 1px;
    height: 82px;
    background: linear-gradient(to bottom, var(--gs-accent), transparent);
    opacity: 0.46;
}

.dashboard-hero h2 {
    max-width: 900px;
    font-size: clamp(1.62rem, 2.15vw, 2.18rem);
    font-weight: 680;
    line-height: 1.08;
}

.dashboard-hero-badges .badge {
    padding: 0.42rem 0.62rem;
    border-radius: 6px !important;
}

.dashboard-period-summary,
.dashboard-debt-card {
    background: rgba(197, 211, 221, 0.025);
}

.dashboard-action-card {
    border: 1px solid var(--gs-border);
    border-radius: var(--gs-radius-md);
    background: var(--gs-surface-1);
    box-shadow: none;
}

.dashboard-action-card::before {
    width: 2px;
    background: var(--gs-info);
    opacity: 0.5;
}

.dashboard-action-card:hover,
.dashboard-action-card:focus-visible {
    border-color: var(--gs-border-strong);
    background: var(--gs-surface-2);
    transform: none;
    box-shadow: inset 0 -1px rgba(105, 174, 202, 0.14);
}

.dashboard-kpi {
    min-height: 152px;
    border-radius: var(--gs-radius-md);
}

.dashboard-kpi > strong,
.dashboard-kpi > h3 {
    font-size: clamp(1.35rem, 1.7vw, 1.75rem);
}

.dashboard-kpi-action {
    color: var(--gs-accent-strong);
    font-size: 0.69rem;
    letter-spacing: 0.08em;
}

.dashboard-section,
.dashboard-collapsible-card {
    border-radius: var(--gs-radius-lg);
}

.chart-container,
.dashboard-chart-container {
    filter: saturate(0.86);
}

/* Reports -------------------------------------------------------------- */
.reports-shell {
    background: var(--gs-surface-1);
}

.report-selector-grid {
    gap: 0.7rem;
}

.report-selector-card {
    min-height: 142px;
    border: 1px solid var(--gs-border);
    border-radius: var(--gs-radius-md);
    background: var(--gs-surface-2);
    box-shadow: none;
}

.report-selector-item:hover .report-selector-card {
    border-color: var(--gs-border-strong);
    background: var(--gs-surface-3);
    transform: none;
    box-shadow: inset 0 -2px rgba(105, 174, 202, 0.16);
}

.report-selector-input:checked + .report-selector-card {
    border-color: rgba(217, 133, 45, 0.42);
    background: linear-gradient(135deg, rgba(217, 133, 45, 0.1), var(--gs-surface-2) 44%);
    box-shadow: inset 2px 0 var(--gs-accent);
}

.report-selector-check {
    border-radius: 6px;
}

.report-filter-chip,
.reports-filter-badge {
    border-radius: 6px;
}

.reports-filter-card,
.reports-action-panel {
    border-radius: var(--gs-radius-md);
}

/* Tabs, modals and messages ------------------------------------------- */
.nav-tabs {
    gap: 0;
}

.nav-tabs .nav-link {
    border-radius: 0;
    font-size: 0.84rem;
}

.nav-tabs .nav-link.active,
.nav-tabs .nav-item.show .nav-link {
    background: transparent;
    box-shadow: inset 0 -2px var(--gs-accent);
}

.dropdown-menu,
.table-actions-dropdown-menu {
    border: 1px solid var(--gs-border-strong);
    border-radius: var(--gs-radius-md);
    background: var(--gs-surface-2);
}

.dropdown-item {
    border-radius: 7px;
    font-size: 0.86rem;
}

.modal-backdrop.show {
    opacity: 0.7;
}

.modal-content,
.modal-content.bg-dark {
    overflow: hidden;
    border: 1px solid var(--gs-border-strong) !important;
    border-radius: var(--gs-radius-lg) !important;
    background: var(--gs-surface-1) !important;
    box-shadow: var(--gs-shadow-lg) !important;
}

.modal-content::before {
    content: "";
    position: absolute;
    top: 0;
    left: 18px;
    width: 92px;
    height: 2px;
    background: linear-gradient(90deg, var(--gs-accent), transparent);
}

.alert,
.toast {
    border-radius: var(--gs-radius-md);
    box-shadow: none;
}

.smart-empty-state-icon {
    display: grid;
    width: 48px;
    height: 48px;
    place-items: center;
    border: 1px solid rgba(81, 173, 123, 0.28);
    border-radius: 50%;
    background: var(--gs-success-soft);
    color: var(--gs-success);
    font-family: var(--gs-font-data);
}

/* Authentication ------------------------------------------------------- */
.auth-shell,
.auth-card {
    border-radius: var(--gs-radius-lg);
}

.auth-card {
    border: 1px solid var(--gs-border);
    background: var(--gs-surface-1);
    box-shadow: var(--gs-shadow-lg);
}

.auth-title {
    font-weight: 700;
}

/* Light mode corrections ---------------------------------------------- */
html[data-bs-theme="light"] .sidebar {
    box-shadow: 10px 0 34px rgba(24, 35, 44, 0.055);
}

html[data-bs-theme="light"] .card-dark:hover,
html[data-bs-theme="light"] .content-card:hover {
    border-color: var(--gs-border-strong);
}

html[data-bs-theme="light"] .custom-table tbody tr:hover > td,
html[data-bs-theme="light"] .listing-table tbody tr:hover > td,
html[data-bs-theme="light"] .enterprise-data-grid tbody tr:hover > td {
    background: rgba(105, 174, 202, 0.07);
}

/* Responsive ----------------------------------------------------------- */
@media (max-width: 1199.98px) {
    :root,
    [data-bs-theme="dark"],
    html[data-bs-theme="light"] {
        --gs-sidebar-current-width: 232px;
    }

    .sidebar-brand {
        grid-template-columns: 64px minmax(0, 1fr);
    }

    .brand-logo {
        width: 64px;
    }
}

@media (max-width: 991.98px) {
    :root,
    [data-bs-theme="dark"],
    html[data-bs-theme="light"] {
        --gs-sidebar-current-width: var(--gs-sidebar-width);
    }

    .topbar {
        min-height: 68px;
    }

    .content-area {
        padding: 16px;
    }

    .report-selector-card {
        min-height: 132px;
    }
}

@media (max-width: 767.98px) {
    .topbar {
        padding-inline: 12px;
    }

    .page-subtitle,
    .global-search-trigger-hint,
    .theme-toggle-copy,
    .user-menu-meta {
        display: none;
    }

    .content-area {
        padding: 12px;
    }

    .card-dark,
    .content-card {
        border-radius: var(--gs-radius-md);
    }

    .custom-table,
    .listing-table,
    .enterprise-data-grid {
        min-width: max-content;
    }

    .dashboard-hero h2 {
        font-size: 1.5rem;
    }
}

@media (max-width: 420px) {
    .topbar-actions {
        gap: 0.35rem;
    }

    .global-search-trigger {
        display: none;
    }

    .sidebar-toggle-btn,
    .theme-toggle,
    .user-menu-button {
        min-width: 40px;
        width: 40px;
        height: 40px;
        padding: 0;
        justify-content: center;
    }

    .content-area {
        padding-inline: 10px;
    }
}

@keyframes precision-content-in {
    from {
        opacity: 0;
        transform: translateY(5px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (prefers-reduced-motion: reduce) {
    html:focus-within {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}
/* Collapsible sidebar navigation -------------------------------------- */
.sidebar-menu:has(.sidebar-group) {
    display: grid;
    align-content: start;
    gap: 0.28rem;
    padding-top: 0.45rem;
}

.sidebar-group {
    min-width: 0;
    margin: 0;
}

.sidebar-group > summary {
    list-style: none;
}

.sidebar-group > summary::-webkit-details-marker {
    display: none;
}

.sidebar-group-trigger {
    position: relative;
    display: grid;
    grid-template-columns: 1.15rem minmax(0, 1fr) 1rem;
    align-items: center;
    gap: 0.68rem;
    min-height: 42px;
    padding: 0.54rem 0.68rem;
    border: 1px solid transparent;
    border-radius: var(--gs-radius-sm);
    color: var(--gs-text-muted);
    font-size: 0.855rem;
    font-weight: 700;
    cursor: pointer;
    user-select: none;
    transition: color 180ms ease, border-color 180ms ease, background-color 180ms ease;
}

.sidebar-group-trigger::before {
    content: "";
    position: absolute;
    left: -1px;
    top: 50%;
    width: 2px;
    height: 0;
    border-radius: 0 2px 2px 0;
    background: var(--gs-accent);
    opacity: 0;
    transform: translateY(-50%);
    transition: height 180ms ease, opacity 180ms ease;
}

.sidebar-group-trigger:hover {
    border-color: var(--gs-border);
    background: rgba(197, 211, 221, 0.045);
    color: var(--gs-text-primary);
}

.sidebar-group-trigger:hover .menu-icon {
    color: var(--gs-text-secondary);
}

.sidebar-group[open] > .sidebar-group-trigger,
.sidebar-group.is-current > .sidebar-group-trigger {
    border-color: rgba(217, 133, 45, 0.18);
    background: linear-gradient(90deg, rgba(217, 133, 45, 0.12), rgba(217, 133, 45, 0.035));
    color: var(--gs-text-primary);
}

.sidebar-group[open] > .sidebar-group-trigger::before,
.sidebar-group.is-current > .sidebar-group-trigger::before {
    height: 54%;
    opacity: 1;
}

.sidebar-group[open] > .sidebar-group-trigger .menu-icon,
.sidebar-group.is-current > .sidebar-group-trigger .menu-icon {
    color: var(--gs-accent-strong);
}

.sidebar-group-label {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sidebar-group-chevron {
    display: grid;
    width: 1rem;
    height: 1rem;
    place-items: center;
    color: var(--gs-text-soft);
    transition: color 180ms ease, transform 180ms ease;
}

.sidebar-group-chevron svg {
    width: 0.92rem;
    height: 0.92rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.sidebar-group[open] > .sidebar-group-trigger .sidebar-group-chevron {
    color: var(--gs-accent-strong);
    transform: rotate(90deg);
}

.sidebar-group-items {
    position: relative;
    display: grid;
    gap: 0.08rem;
    margin: 0.16rem 0 0.28rem 1.18rem;
    padding: 0.08rem 0 0.12rem 0.68rem;
    border-left: 1px solid var(--gs-border);
    animation: sidebar-group-reveal 180ms ease-out both;
}

.sidebar-submenu-link {
    gap: 0.52rem;
    min-height: 33px;
    padding: 0.36rem 0.58rem;
    border-radius: 7px;
    color: var(--gs-text-muted);
    font-size: 0.805rem;
    font-weight: 620;
}

.sidebar-submenu-link::before {
    display: none;
}

.sidebar-submenu-link:hover {
    background: rgba(197, 211, 221, 0.04);
}

.sidebar-submenu-marker {
    width: 5px;
    height: 5px;
    flex: 0 0 5px;
    border: 1px solid var(--gs-text-soft);
    border-radius: 50%;
    background: transparent;
    transition: border-color 160ms ease, background-color 160ms ease, box-shadow 160ms ease;
}

.sidebar-submenu-link:hover .sidebar-submenu-marker {
    border-color: var(--gs-text-secondary);
}

.sidebar-submenu-link.active-menu,
.sidebar-submenu-link.active-menu:hover,
.sidebar-submenu-link.active-menu:focus-visible {
    border-color: transparent;
    background: rgba(217, 133, 45, 0.09);
    color: var(--gs-text-primary) !important;
    box-shadow: none;
}

.sidebar-submenu-link.active-menu .sidebar-submenu-marker {
    border-color: var(--gs-accent-strong);
    background: var(--gs-accent);
    box-shadow: 0 0 0 3px rgba(217, 133, 45, 0.11);
}

/* Divergence workspace spacing ---------------------------------------- */
.divergence-workspace {
    overflow: hidden;
    padding: clamp(1.35rem, 1.8vw, 1.85rem);
}

.divergence-workspace::before {
    left: clamp(1.35rem, 1.8vw, 1.85rem);
}

.divergence-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.25rem;
    margin-bottom: 1.35rem;
}

.divergence-header > div {
    max-width: 920px;
}

.divergence-header .eyebrow {
    display: inline-flex;
    margin-bottom: 0.46rem;
    color: var(--gs-accent-strong);
    font-family: var(--gs-font-data);
    font-size: 0.64rem;
    letter-spacing: 0.11em;
}

.divergence-header h1 {
    margin: 0 0 0.48rem;
    color: var(--gs-text-primary);
    font-size: clamp(1.65rem, 2.25vw, 2.2rem);
    line-height: 1.08;
}

.divergence-header p {
    margin: 0;
    color: var(--gs-text-muted);
    font-size: 0.92rem;
    line-height: 1.55;
}

.divergence-workspace .context-summary-grid {
    gap: 0.82rem;
    margin: 0 0 1.55rem;
}

.divergence-workspace .context-summary-card {
    min-height: 104px;
    padding: 0.95rem 1.05rem;
}

.divergence-workspace .filter-toolbar {
    margin: 0 0 1.35rem;
    padding: 1.05rem 0 0;
    border-top: 1px solid var(--gs-border);
}

.divergence-workspace [data-dynamic-results-region] {
    padding-top: 0.15rem;
}

.divergence-workspace .smart-empty-state {
    min-height: 320px;
    align-content: center;
    padding-inline: clamp(1rem, 4vw, 3rem);
}

@keyframes sidebar-group-reveal {
    from {
        opacity: 0;
        transform: translateY(-3px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (max-width: 900px) {
    .divergence-workspace {
        padding: 1.1rem;
    }

    .divergence-workspace::before {
        left: 1.1rem;
    }

    .divergence-header {
        flex-direction: column;
        margin-bottom: 1.1rem;
    }

    .divergence-workspace .context-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .divergence-workspace {
        padding: 0.9rem;
    }

    .divergence-workspace::before {
        left: 0.9rem;
    }

    .divergence-workspace .context-summary-grid {
        grid-template-columns: 1fr;
    }

    .divergence-workspace .context-summary-card {
        min-height: 0;
    }
}
/* Grouped top navigation --------------------------------------------- */
.menu-layout-top .topbar {
    row-gap: 0.72rem;
    padding-bottom: 0.72rem;
}

.menu-layout-top .top-menu-nav {
    position: relative;
    order: 3;
    flex: 1 0 100%;
    display: flex;
    align-items: center;
    gap: 0.36rem;
    max-width: 100%;
    padding: 0.36rem;
    overflow: visible;
    border: 1px solid var(--gs-border);
    border-radius: var(--gs-radius-md);
    background: color-mix(in srgb, var(--gs-surface-2) 74%, transparent);
    box-shadow: inset 0 1px rgba(255, 255, 255, 0.018);
}

.top-menu-group {
    position: relative;
    flex: 0 0 auto;
    min-width: 0;
}

.top-menu-group > summary {
    list-style: none;
}

.top-menu-group > summary::-webkit-details-marker {
    display: none;
}

.top-menu-group-trigger {
    display: grid;
    grid-template-columns: 1.05rem minmax(0, auto) 0.85rem;
    align-items: center;
    gap: 0.5rem;
    min-height: 38px;
    padding: 0.46rem 0.68rem;
    border: 1px solid transparent;
    border-radius: 8px;
    color: var(--gs-text-muted);
    font-size: 0.82rem;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
    cursor: pointer;
    user-select: none;
    transition: color 170ms ease, border-color 170ms ease, background-color 170ms ease;
}

.top-menu-group-trigger:hover {
    border-color: var(--gs-border);
    background: rgba(197, 211, 221, 0.045);
    color: var(--gs-text-primary);
}

.top-menu-group.is-current > .top-menu-group-trigger,
.top-menu-group[open] > .top-menu-group-trigger {
    border-color: rgba(217, 133, 45, 0.22);
    background: var(--gs-accent-soft);
    color: var(--gs-text-primary);
    box-shadow: inset 0 -2px var(--gs-accent);
}

.top-menu-group-icon,
.top-menu-group-chevron {
    display: grid;
    place-items: center;
    color: var(--gs-text-soft);
}

.top-menu-group-icon {
    width: 1.05rem;
    height: 1.05rem;
}

.top-menu-group-icon svg,
.top-menu-group-chevron svg {
    width: 100%;
    height: 100%;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.75;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.top-menu-group-chevron {
    width: 0.8rem;
    height: 0.8rem;
    transition: transform 170ms ease, color 170ms ease;
}

.top-menu-group.is-current .top-menu-group-icon,
.top-menu-group[open] .top-menu-group-icon,
.top-menu-group[open] .top-menu-group-chevron {
    color: var(--gs-accent-strong);
}

.top-menu-group[open] .top-menu-group-chevron {
    transform: rotate(180deg);
}

.top-menu-panel {
    position: absolute;
    z-index: 1080;
    top: calc(100% + 0.55rem);
    left: 0;
    display: grid;
    gap: 0.18rem;
    width: max-content;
    min-width: 220px;
    padding: 0.48rem;
    border: 1px solid var(--gs-border-strong);
    border-radius: var(--gs-radius-md);
    background: var(--gs-surface-2);
    box-shadow: var(--gs-shadow-md);
    animation: top-menu-panel-in 150ms ease-out both;
}

.top-menu-panel-wide {
    grid-template-columns: repeat(2, minmax(190px, 1fr));
    min-width: 420px;
}

.top-menu-panel-end {
    right: 0;
    left: auto;
}

.top-menu-panel .top-menu-link {
    display: flex;
    align-items: center;
    gap: 0.52rem;
    width: 100%;
    min-height: 36px;
    padding: 0.46rem 0.6rem;
    border: 1px solid transparent;
    border-radius: 7px;
    color: var(--gs-text-secondary);
    font-size: 0.81rem;
    font-weight: 650;
    text-decoration: none;
    transform: none;
    transition: color 160ms ease, border-color 160ms ease, background-color 160ms ease;
}

.top-menu-panel .top-menu-link:hover,
.top-menu-panel .top-menu-link:focus-visible {
    border-color: var(--gs-border);
    background: rgba(197, 211, 221, 0.045);
    color: var(--gs-text-primary);
    transform: none;
}

.top-menu-panel .top-menu-link.active,
.top-menu-panel .top-menu-link.active:hover,
.top-menu-panel .top-menu-link.active:focus-visible {
    border-color: rgba(217, 133, 45, 0.2);
    background: var(--gs-accent-soft);
    color: var(--gs-text-primary);
    box-shadow: none;
}

.top-menu-item-marker {
    width: 5px;
    height: 5px;
    flex: 0 0 5px;
    border: 1px solid var(--gs-text-soft);
    border-radius: 50%;
}

.top-menu-link.active .top-menu-item-marker {
    border-color: var(--gs-accent);
    background: var(--gs-accent);
    box-shadow: 0 0 0 3px var(--gs-accent-soft);
}

@keyframes top-menu-panel-in {
    from {
        opacity: 0;
        transform: translateY(-4px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Calm light theme ---------------------------------------------------- */
html[data-bs-theme="light"] {
    --gs-accent: #a8652b;
    --gs-accent-strong: #87501f;
    --gs-accent-deep: #744218;
    --gs-accent-soft: rgba(168, 101, 43, 0.11);
    --gs-hover-accent: rgba(168, 101, 43, 0.085);
    --gs-focus-ring: 0 0 0 3px rgba(135, 80, 31, 0.2);

    --gs-body-bg: #e7ebec;
    --gs-shell-bg: linear-gradient(145deg, #eef0f0 0%, #e7ebec 58%, #e2e7e8 100%);
    --gs-surface-1: #f4f5f4;
    --gs-surface-2: #eef1f1;
    --gs-surface-3: #e9edee;
    --gs-surface-4: #e2e7e8;
    --gs-sidebar-bg: #ecefef;
    --gs-topbar-bg: rgba(239, 242, 242, 0.96);
    --gs-control-bg: #e9eded;
    --gs-control-bg-hover: #f1f3f2;

    --gs-text-primary: #26333b;
    --gs-text-secondary: #46545c;
    --gs-text-muted: #5d6a72;
    --gs-text-soft: #6f7b82;
    --gs-border: rgba(38, 51, 59, 0.13);
    --gs-border-strong: rgba(38, 51, 59, 0.21);

    --gs-info: #4f7c8c;
    --gs-success: #3f7d5c;
    --gs-warning: #9a642f;
    --gs-danger: #a24f5a;
    --gs-info-soft: rgba(79, 124, 140, 0.11);
    --gs-success-soft: rgba(63, 125, 92, 0.11);
    --gs-warning-soft: rgba(154, 100, 47, 0.11);
    --gs-danger-soft: rgba(162, 79, 90, 0.11);

    --gs-hover-bg: rgba(38, 51, 59, 0.055);
    --gs-table-head-bg: #e3e8e9;
    --gs-table-head-text: #52616a;
    --gs-table-row-hover: rgba(79, 124, 140, 0.06);
    --gs-shadow-sm: 0 1px 2px rgba(38, 51, 59, 0.05);
    --gs-shadow-md: 0 10px 24px rgba(38, 51, 59, 0.075);
    --gs-shadow-lg: 0 22px 50px rgba(38, 51, 59, 0.11);
    --gs-shadow-premium: 0 12px 28px rgba(38, 51, 59, 0.07), inset 0 1px rgba(255, 255, 255, 0.58);

    --bs-primary: var(--gs-accent);
    --bs-primary-rgb: 168, 101, 43;
    --bs-warning-rgb: 154, 100, 47;
    --bs-secondary-color: var(--gs-text-muted);
}

html[data-bs-theme="light"] .app-body::before,
html[data-bs-theme="light"] .auth-body::before {
    opacity: 0.045;
}

html[data-bs-theme="light"] * {
    scrollbar-color: rgba(111, 91, 72, 0.34) transparent;
}

html[data-bs-theme="light"] *::-webkit-scrollbar-thumb {
    background: rgba(111, 91, 72, 0.34);
    background-clip: padding-box;
}

html[data-bs-theme="light"] *::-webkit-scrollbar-thumb:hover {
    background: rgba(111, 91, 72, 0.48);
    background-clip: padding-box;
}

html[data-bs-theme="light"] .topbar,
html[data-bs-theme="light"] .sidebar {
    box-shadow: 0 6px 20px rgba(38, 51, 59, 0.055);
}

html[data-bs-theme="light"] .menu-layout-top .top-menu-nav,
html[data-bs-theme="light"] .top-menu-panel,
html[data-bs-theme="light"] .dropdown-menu,
html[data-bs-theme="light"] .table-actions-dropdown-menu {
    background: var(--gs-surface-2);
    border-color: var(--gs-border);
}

html[data-bs-theme="light"] .top-menu-group-trigger:hover,
html[data-bs-theme="light"] .sidebar-group-trigger:hover,
html[data-bs-theme="light"] .menu-link:hover,
html[data-bs-theme="light"] .dropdown-item:hover,
html[data-bs-theme="light"] .dropdown-item:focus,
html[data-bs-theme="light"] .table-actions-dropdown-item:hover,
html[data-bs-theme="light"] .table-actions-dropdown-item:focus-visible {
    background: rgba(38, 51, 59, 0.055);
    color: var(--gs-text-primary);
}

html[data-bs-theme="light"] .top-menu-group.is-current > .top-menu-group-trigger,
html[data-bs-theme="light"] .top-menu-group[open] > .top-menu-group-trigger,
html[data-bs-theme="light"] .sidebar-group[open] > .sidebar-group-trigger,
html[data-bs-theme="light"] .sidebar-group.is-current > .sidebar-group-trigger,
html[data-bs-theme="light"] .active-menu,
html[data-bs-theme="light"] .sidebar-submenu-link.active-menu,
html[data-bs-theme="light"] .top-menu-panel .top-menu-link.active {
    border-color: rgba(168, 101, 43, 0.22);
    background: rgba(168, 101, 43, 0.095);
    color: var(--gs-text-primary) !important;
}

html[data-bs-theme="light"] .btn-primary,
html[data-bs-theme="light"] .btn-warning {
    border-color: #95591f;
    background: #a8652b;
    color: #ffffff !important;
    box-shadow: inset 0 1px rgba(255, 255, 255, 0.14), 0 5px 12px rgba(116, 66, 24, 0.12);
}

html[data-bs-theme="light"] .btn-primary:hover,
html[data-bs-theme="light"] .btn-primary:focus-visible,
html[data-bs-theme="light"] .btn-warning:hover,
html[data-bs-theme="light"] .btn-warning:focus-visible {
    border-color: #7e4819;
    background: #92551f;
    color: #ffffff !important;
    box-shadow: 0 6px 14px rgba(116, 66, 24, 0.15);
}

html[data-bs-theme="light"] .btn-outline-light,
html[data-bs-theme="light"] .btn-outline-secondary {
    border-color: var(--gs-border-strong);
    background: rgba(244, 245, 244, 0.46);
    color: var(--gs-text-secondary);
}

html[data-bs-theme="light"] .btn-outline-light:hover,
html[data-bs-theme="light"] .btn-outline-light:focus-visible,
html[data-bs-theme="light"] .btn-outline-secondary:hover,
html[data-bs-theme="light"] .btn-outline-secondary:focus-visible {
    border-color: rgba(168, 101, 43, 0.28);
    background: var(--gs-accent-soft);
    color: var(--gs-text-primary);
}

html[data-bs-theme="light"] .btn-outline-primary {
    border-color: rgba(135, 80, 31, 0.45);
    color: #7d491c;
}

html[data-bs-theme="light"] .btn-outline-primary:hover,
html[data-bs-theme="light"] .btn-outline-primary:focus-visible {
    border-color: #87501f;
    background: var(--gs-accent-soft);
    color: #6f3f18;
}

html[data-bs-theme="light"] .btn-outline-info {
    border-color: rgba(79, 124, 140, 0.42);
    color: #3e6978;
}

html[data-bs-theme="light"] .btn-outline-success {
    border-color: rgba(63, 125, 92, 0.42);
    color: #326b4d;
}

html[data-bs-theme="light"] .btn-outline-warning {
    border-color: rgba(154, 100, 47, 0.42);
    color: #7f5024;
}

html[data-bs-theme="light"] .btn-outline-danger {
    border-color: rgba(162, 79, 90, 0.42);
    color: #8a404a;
}

html[data-bs-theme="light"] .btn-outline-info:hover,
html[data-bs-theme="light"] .btn-outline-info:focus-visible {
    background: var(--gs-info-soft);
    color: #315866;
}

html[data-bs-theme="light"] .btn-outline-success:hover,
html[data-bs-theme="light"] .btn-outline-success:focus-visible {
    background: var(--gs-success-soft);
    color: #285a40;
}

html[data-bs-theme="light"] .btn-outline-warning:hover,
html[data-bs-theme="light"] .btn-outline-warning:focus-visible {
    background: var(--gs-warning-soft);
    color: #6e431d;
}

html[data-bs-theme="light"] .btn-outline-danger:hover,
html[data-bs-theme="light"] .btn-outline-danger:focus-visible {
    background: var(--gs-danger-soft);
    color: #773640;
}

html[data-bs-theme="light"] .form-control,
html[data-bs-theme="light"] .form-select,
html[data-bs-theme="light"] .ts-wrapper.single .ts-control {
    border-color: var(--gs-border);
    background: var(--gs-control-bg);
    color: var(--gs-text-primary);
}

html[data-bs-theme="light"] .form-control:hover,
html[data-bs-theme="light"] .form-select:hover,
html[data-bs-theme="light"] .ts-wrapper.single .ts-control:hover {
    border-color: var(--gs-border-strong);
    background: #edf0ef;
}

html[data-bs-theme="light"] .form-control:focus,
html[data-bs-theme="light"] .form-select:focus,
html[data-bs-theme="light"] .ts-wrapper.focus .ts-control {
    border-color: rgba(135, 80, 31, 0.52);
    background: #f1f3f2;
    box-shadow: var(--gs-focus-ring);
}

html[data-bs-theme="light"] .card-dark,
html[data-bs-theme="light"] .content-card,
html[data-bs-theme="light"] .mini-card,
html[data-bs-theme="light"] .form-section,
html[data-bs-theme="light"] .context-summary-card,
html[data-bs-theme="light"] .report-selector-card {
    background: var(--gs-surface-1);
    border-color: var(--gs-border);
}

html[data-bs-theme="light"] .card-dark:hover,
html[data-bs-theme="light"] .content-card:hover,
html[data-bs-theme="light"] .report-selector-item:hover .report-selector-card {
    border-color: var(--gs-border-strong);
    background: #f2f4f3;
    box-shadow: var(--gs-shadow-premium);
}

html[data-bs-theme="light"] .custom-table thead th,
html[data-bs-theme="light"] .listing-table thead th,
html[data-bs-theme="light"] .enterprise-data-grid thead th {
    border-bottom-color: var(--gs-border-strong);
    background: #e3e8e9;
    color: #53616a;
}

html[data-bs-theme="light"] .custom-table tbody td,
html[data-bs-theme="light"] .listing-table tbody td,
html[data-bs-theme="light"] .enterprise-data-grid tbody td {
    border-bottom-color: var(--gs-border);
    color: var(--gs-text-secondary);
}

html[data-bs-theme="light"] .custom-table tbody tr:hover > td,
html[data-bs-theme="light"] .listing-table tbody tr:hover > td,
html[data-bs-theme="light"] .enterprise-data-grid tbody tr:hover > td,
html[data-bs-theme="light"] .dashboard-shell .custom-table tbody tr:hover td {
    background: rgba(79, 124, 140, 0.06);
}

html[data-bs-theme="light"] .text-info { color: #3f7182 !important; }
html[data-bs-theme="light"] .text-success { color: #347354 !important; }
html[data-bs-theme="light"] .text-warning { color: #875423 !important; }
html[data-bs-theme="light"] .text-danger { color: #984651 !important; }

html[data-bs-theme="light"] .bg-info,
html[data-bs-theme="light"] .text-bg-info {
    background-color: #d9e6e9 !important;
    color: #315866 !important;
}

html[data-bs-theme="light"] .bg-success,
html[data-bs-theme="light"] .text-bg-success {
    background-color: #dbe9df !important;
    color: #285a40 !important;
}

html[data-bs-theme="light"] .bg-warning,
html[data-bs-theme="light"] .text-bg-warning {
    background-color: #e9dfd1 !important;
    color: #70451f !important;
}

html[data-bs-theme="light"] .bg-danger,
html[data-bs-theme="light"] .text-bg-danger {
    background-color: #eadadd !important;
    color: #773640 !important;
}

html[data-bs-theme="light"] .text-bg-dark,
html[data-bs-theme="light"] .bg-dark {
    background-color: #dfe4e5 !important;
    color: var(--gs-text-primary) !important;
}

html[data-bs-theme="light"] .alert-info { background: var(--gs-info-soft); color: #315866; }
html[data-bs-theme="light"] .alert-success { background: var(--gs-success-soft); color: #285a40; }
html[data-bs-theme="light"] .alert-warning { background: var(--gs-warning-soft); color: #6e431d; }
html[data-bs-theme="light"] .alert-danger { background: var(--gs-danger-soft); color: #773640; }

html[data-bs-theme="light"] .active-filters-bar,
html[data-bs-theme="light"] .filters-active-summary,
html[data-bs-theme="light"] .active-filter-chip,
html[data-bs-theme="light"] .filter-chip-active {
    background: rgba(168, 101, 43, 0.075);
    border-color: rgba(168, 101, 43, 0.2);
    color: var(--gs-text-secondary);
}

html[data-bs-theme="light"] .pagination .page-link,
html[data-bs-theme="light"] .pagination-toolbar .pagination.pagination-dark .page-link {
    border-color: var(--gs-border);
    background: var(--gs-control-bg);
    color: var(--gs-text-secondary);
}

html[data-bs-theme="light"] .pagination .page-link:hover,
html[data-bs-theme="light"] .pagination .page-link:focus-visible {
    border-color: rgba(168, 101, 43, 0.25);
    background: var(--gs-accent-soft);
    color: var(--gs-text-primary);
}

html[data-bs-theme="light"] .pagination .page-item.active .page-link,
html[data-bs-theme="light"] .pagination-toolbar .pagination .page-item.active .page-link {
    border-color: rgba(168, 101, 43, 0.36);
    background: rgba(168, 101, 43, 0.11);
    color: #754218;
    box-shadow: inset 0 -2px var(--gs-accent);
}

html[data-bs-theme="light"] .nav-tabs .nav-link:hover,
html[data-bs-theme="light"] .nav-tabs .nav-link:focus-visible {
    background: rgba(38, 51, 59, 0.045);
    color: var(--gs-text-primary);
}

html[data-bs-theme="light"] .nav-tabs .nav-link.active {
    color: var(--gs-text-primary);
    box-shadow: inset 0 -2px var(--gs-accent);
}

html[data-bs-theme="light"] .dashboard-action-card:hover,
html[data-bs-theme="light"] .dashboard-action-card:focus-visible,
html[data-bs-theme="light"] .dashboard-kpi-link:hover,
html[data-bs-theme="light"] .dashboard-kpi-link:focus-visible,
html[data-bs-theme="light"] .ranking-item:hover,
html[data-bs-theme="light"] .ranking-item:focus-visible {
    border-color: var(--gs-border-strong);
    background: #eef1f0;
    box-shadow: inset 0 -1px rgba(79, 124, 140, 0.12);
}

html[data-bs-theme="light"] .chart-container,
html[data-bs-theme="light"] .dashboard-chart-container,
html[data-bs-theme="light"] .chart-bars {
    filter: saturate(0.72) contrast(0.97);
}

html[data-bs-theme="light"] .theme-toggle-icons,
html[data-bs-theme="light"] .user-avatar {
    background: rgba(168, 101, 43, 0.1);
    color: var(--gs-accent-strong);
    box-shadow: inset 0 0 0 1px rgba(168, 101, 43, 0.2);
}

@media (max-width: 767.98px) {
    .menu-layout-top .top-menu-nav {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        overflow: visible;
    }

    .top-menu-group {
        width: 100%;
    }

    .top-menu-group[open] {
        grid-column: 1 / -1;
    }

    .top-menu-group-trigger {
        grid-template-columns: 1rem minmax(0, 1fr) 0.8rem;
        width: 100%;
    }

    .top-menu-panel,
    .top-menu-panel-wide,
    .top-menu-panel-end {
        position: static;
        grid-template-columns: 1fr;
        width: 100%;
        min-width: 0;
        margin-top: 0.3rem;
        border-color: var(--gs-border);
        box-shadow: none;
    }
}
/* Navigation states: current route, expanded group and hover remain unmistakable. */
.sidebar-group.is-current > .sidebar-group-trigger,
.sidebar-group.is-current[open] > .sidebar-group-trigger,
.sidebar-group.is-current > .sidebar-group-trigger:hover,
.sidebar-group.is-current > .sidebar-group-trigger:focus-visible {
    border-color: color-mix(in srgb, var(--gs-accent) 48%, transparent);
    background: var(--gs-accent-soft);
    color: var(--gs-text-primary);
    box-shadow: inset 3px 0 var(--gs-accent);
}

.sidebar-group.is-current > .sidebar-group-trigger::before {
    height: 54%;
    opacity: 1;
}

.sidebar-group.is-current > .sidebar-group-trigger .sidebar-group-icon,
.sidebar-group.is-current > .sidebar-group-trigger .sidebar-group-chevron {
    color: var(--gs-accent-strong);
}

.sidebar-group[open]:not(.is-current) > .sidebar-group-trigger {
    border-color: var(--gs-border-strong);
    background: var(--gs-control-bg-hover);
    color: var(--gs-text-primary);
    box-shadow: none;
}

.sidebar-group[open]:not(.is-current) > .sidebar-group-trigger::before {
    height: 0;
    opacity: 0;
}

.sidebar-group[open]:not(.is-current) > .sidebar-group-trigger .sidebar-group-icon,
.sidebar-group[open]:not(.is-current) > .sidebar-group-trigger .sidebar-group-chevron {
    color: var(--gs-text-secondary);
}

.top-menu-group.is-current > .top-menu-group-trigger,
.top-menu-group.is-current[open] > .top-menu-group-trigger,
.top-menu-group.is-current > .top-menu-group-trigger:hover,
.top-menu-group.is-current > .top-menu-group-trigger:focus-visible {
    border-color: color-mix(in srgb, var(--gs-accent) 48%, transparent);
    background: var(--gs-accent-soft);
    color: var(--gs-text-primary);
    box-shadow: inset 0 -2px var(--gs-accent);
}

.top-menu-group.is-current > .top-menu-group-trigger .top-menu-group-icon,
.top-menu-group.is-current > .top-menu-group-trigger .top-menu-group-chevron {
    color: var(--gs-accent-strong);
}

.top-menu-group[open]:not(.is-current) > .top-menu-group-trigger {
    border-color: var(--gs-border-strong);
    background: var(--gs-control-bg-hover);
    color: var(--gs-text-primary);
    box-shadow: none;
}

.top-menu-group[open]:not(.is-current) > .top-menu-group-trigger .top-menu-group-icon,
.top-menu-group[open]:not(.is-current) > .top-menu-group-trigger .top-menu-group-chevron {
    color: var(--gs-text-secondary);
}

html[data-bs-theme="light"] .sidebar-group[open]:not(.is-current) > .sidebar-group-trigger,
html[data-bs-theme="light"] .top-menu-group[open]:not(.is-current) > .top-menu-group-trigger {
    border-color: var(--gs-border-strong);
    background: rgba(38, 51, 59, 0.055);
    box-shadow: none;
}

/* Compact global search control with a shared text baseline. */
.global-search-trigger {
    display: inline-grid;
    grid-auto-flow: column;
    grid-template-columns: auto auto;
    align-items: center;
    justify-content: center;
    column-gap: 0.34rem;
    min-height: 42px;
    padding: 0.58rem 0.82rem;
    line-height: 1;
}

.global-search-trigger-label,
.global-search-trigger-hint {
    display: block;
    line-height: 1;
}

.global-search-trigger-label {
    font-size: 0.8rem;
    font-weight: 800;
}

.global-search-trigger-hint {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: var(--gs-text-muted);
}

/* Account panel: quiet trigger, clear hierarchy and safe sign-out action. */
.user-menu-button {
    gap: 0.65rem;
    min-width: 154px;
    border-radius: 10px;
}

.user-menu-button:hover,
.user-menu-button:focus,
.user-menu-button:active {
    border-color: var(--gs-border-strong) !important;
    background: var(--gs-control-bg-hover) !important;
    box-shadow: none !important;
}

.topbar-user.show .user-menu-button,
.user-menu-button[aria-expanded="true"] {
    border-color: color-mix(in srgb, var(--gs-accent) 34%, transparent) !important;
    background: var(--gs-control-bg-hover) !important;
    box-shadow: inset 0 -2px var(--gs-accent) !important;
}

.user-menu-dropdown {
    width: 292px;
    min-width: 292px;
    margin-top: 0.55rem !important;
    padding: 0.5rem;
    overflow: visible;
    border: 1px solid var(--gs-border-strong);
    border-radius: 14px;
    background: var(--gs-surface-2);
    box-shadow: var(--gs-shadow-lg);
}

.user-menu-dropdown::before {
    content: "";
    position: absolute;
    top: -5px;
    right: 28px;
    width: 10px;
    height: 10px;
    transform: rotate(45deg);
    border-top: 1px solid var(--gs-border-strong);
    border-left: 1px solid var(--gs-border-strong);
    background: var(--gs-surface-2);
}

.user-menu-summary {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr);
    align-items: center;
    gap: 0.7rem;
    margin-bottom: 0.42rem;
    padding: 0.72rem;
    border: 1px solid var(--gs-border);
    border-radius: 10px;
    background: var(--gs-surface-3);
}

.user-menu-summary-avatar,
.user-menu-summary-image {
    width: 40px;
    height: 40px;
    border-radius: 9px;
}

.user-menu-summary-avatar {
    display: inline-grid;
    place-items: center;
    overflow: hidden;
    background: var(--gs-accent-soft);
    color: var(--gs-accent-strong);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--gs-accent) 24%, transparent);
    font-size: 0.82rem;
    font-weight: 900;
}

.user-menu-summary-image {
    display: block;
    object-fit: cover;
}

.user-menu-summary-copy,
.user-menu-action > span {
    display: grid;
    min-width: 0;
}

.user-menu-summary-copy {
    gap: 0.16rem;
}

.user-menu-summary-copy strong {
    overflow: hidden;
    color: var(--gs-text-primary);
    font-size: 0.88rem;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.user-menu-summary-copy small {
    color: var(--gs-text-muted);
    font-size: 0.72rem;
    line-height: 1.25;
}

.user-menu-actions {
    display: grid;
    gap: 0.14rem;
}

.user-menu-action {
    display: grid !important;
    grid-template-columns: 1.1rem minmax(0, 1fr);
    align-items: center;
    gap: 0.7rem;
    min-height: 48px;
    padding: 0.55rem 0.62rem;
    border-radius: 8px;
    color: var(--gs-text-secondary) !important;
    text-align: left;
    white-space: normal;
}

.user-menu-action > svg,
.user-menu-signout > svg {
    width: 1.1rem;
    height: 1.1rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.user-menu-action > svg {
    color: var(--gs-text-muted);
}

.user-menu-action > span {
    gap: 0.08rem;
}

.user-menu-action strong {
    color: var(--gs-text-primary);
    font-size: 0.81rem;
    line-height: 1.25;
}

.user-menu-action small {
    color: var(--gs-text-muted);
    font-size: 0.68rem;
    line-height: 1.25;
}

.user-menu-action:hover,
.user-menu-action:focus-visible {
    background: var(--gs-control-bg-hover) !important;
    color: var(--gs-text-primary) !important;
}

.user-menu-action:hover > svg,
.user-menu-action:focus-visible > svg {
    color: var(--gs-accent-strong);
}

.user-menu-divider {
    height: 1px;
    margin: 0.45rem 0.2rem;
    background: var(--gs-border);
}

.user-menu-signout-form {
    margin: 0;
    padding: 0;
}

.user-menu-signout {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.62rem;
    width: 100%;
    min-height: 40px;
    padding: 0.55rem 0.65rem;
    border: 1px solid rgba(var(--bs-danger-rgb), 0.34);
    border-radius: 8px;
    background: rgba(var(--bs-danger-rgb), 0.08);
    color: var(--bs-danger) !important;
    box-shadow: none;
    font-size: 0.78rem;
    font-weight: 800;
}

.user-menu-signout:hover,
.user-menu-signout:focus-visible {
    border-color: rgba(var(--bs-danger-rgb), 0.48);
    background: rgba(var(--bs-danger-rgb), 0.14);
    color: var(--bs-danger) !important;
    box-shadow: none;
}

html[data-bs-theme="light"] .user-menu-dropdown {
    background: var(--gs-surface-2);
}

html[data-bs-theme="light"] .user-menu-summary {
    background: rgba(38, 51, 59, 0.035);
}

@media (max-width: 575.98px) {
    .user-menu-dropdown {
        width: min(292px, calc(100vw - 24px));
        min-width: min(292px, calc(100vw - 24px));
    }
}
/* Divergence filters: one compact, coherent toolbar on wide screens. */
.divergence-workspace .filter-toolbar {
    grid-template-columns:
        minmax(180px, 0.82fr)
        minmax(180px, 0.82fr)
        minmax(140px, 0.6fr)
        minmax(110px, 0.45fr)
        auto
        minmax(410px, 1.6fr);
    column-gap: 0.62rem;
}

.divergence-workspace .filter-toolbar > .filter-actions,
.divergence-workspace .filter-toolbar > .divergence-period-presets {
    grid-column: auto;
}

.divergence-workspace .filter-toolbar > .filter-actions {
    flex-wrap: nowrap;
}

.divergence-workspace .divergence-period-presets {
    min-width: 0;
    flex-wrap: nowrap;
    justify-content: flex-end;
    gap: 0.34rem;
    padding-top: 0;
}

.divergence-workspace .divergence-period-presets::before {
    content: none;
    display: none;
}

.divergence-workspace .divergence-period-preset {
    min-height: 40px;
    padding-inline: 0.58rem;
    white-space: nowrap;
}

@media (max-width: 1399.98px) {
    .divergence-workspace .filter-toolbar {
        grid-template-columns:
            minmax(180px, 1fr)
            minmax(180px, 1fr)
            minmax(150px, 0.7fr)
            minmax(120px, 0.5fr);
    }

    .divergence-workspace .filter-toolbar > .filter-actions {
        grid-column: 1;
    }

    .divergence-workspace .filter-toolbar > .divergence-period-presets {
        grid-column: 2 / -1;
        justify-content: flex-start;
    }
}

@media (max-width: 899.98px) {
    .divergence-workspace .filter-toolbar {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .divergence-workspace .filter-toolbar > .filter-actions,
    .divergence-workspace .filter-toolbar > .divergence-period-presets {
        grid-column: 1 / -1;
    }
}

@media (max-width: 575.98px) {
    .divergence-workspace .filter-toolbar {
        grid-template-columns: 1fr;
    }

    .divergence-workspace .filter-toolbar > .filter-actions,
    .divergence-workspace .filter-toolbar > .divergence-period-presets {
        grid-column: auto;
    }

    .divergence-workspace .divergence-period-presets {
        flex-wrap: wrap;
    }
}