/* ABSERPLite — ABS Brand themes (Light, Dark, Classic) */

/* -------------------------------------------------------------------------- */
/* ABS Light — default workspace                                               */
/* -------------------------------------------------------------------------- */
[data-abs-theme="light"] {
    --abs-body-bg: #eef2f7;
    --abs-surface-bg: #ffffff;
    --abs-surface-muted: #f5f8fc;
    --abs-surface-elevated: #ffffff;
    --abs-text: #17253a;
    --abs-text-muted: #5c6b7f;
    --abs-text-inverse: #ffffff;
    --abs-border: #d5dee9;
    --abs-border-strong: #b8c5d6;
    --abs-link: #0077b6;
    --abs-link-hover: #005f92;
    --abs-focus: #00a8e8;

    --abs-primary: #0077b6;
    --abs-primary-hover: #005f92;
    --abs-primary-text: #ffffff;
    --abs-secondary: #5c6b7f;
    --abs-secondary-hover: #465566;
    --abs-secondary-text: #ffffff;
    --abs-success: #198754;
    --abs-success-bg: #d1e7dd;
    --abs-success-text: #0f5132;
    --abs-warning: #b8860b;
    --abs-warning-bg: #fff3cd;
    --abs-warning-text: #664d03;
    --abs-danger: #c0392b;
    --abs-danger-bg: #f8d7da;
    --abs-danger-text: #842029;
    --abs-info: #0077b6;
    --abs-info-bg: #cff4fc;
    --abs-info-text: #055160;
    --abs-accent: #f2b705;
    --abs-accent-muted: rgba(242, 183, 5, 0.18);

    --abs-sidebar-bg: linear-gradient(180deg, #0c2340 0%, #081a30 55%, #061222 100%);
    --abs-sidebar-bg-solid: #0c2340;
    --abs-sidebar-text: #e8eef7;
    --abs-sidebar-muted: rgba(232, 238, 247, 0.65);
    --abs-sidebar-hover: rgba(255, 255, 255, 0.08);
    --abs-sidebar-active-bg: rgba(0, 168, 232, 0.14);
    --abs-sidebar-active-border: #00a8e8;
    --abs-sidebar-accent: #f2b705;

    --abs-topbar-bg: #ffffff;
    --abs-topbar-text: #17253a;
    --abs-topbar-border: #d5dee9;
    --abs-footer-bg: #ffffff;
    --abs-footer-text: #5c6b7f;
    --abs-footer-border: #d5dee9;
    --abs-card-border: #d5dee9;
    --abs-logo-bg: rgba(255, 255, 255, 0.12);
    --abs-action-bg: #f0f4f8;
    --abs-action-text: #17253a;
    --abs-theme-toggle-bg: #e8eef5;

    --abs-table-header-bg: #f0f4f8;
    --abs-table-row-hover: rgba(0, 119, 182, 0.06);
    --abs-table-row-selected: rgba(0, 168, 232, 0.12);
    --abs-input-bg: #ffffff;
    --abs-input-border: #c5d0de;
    --abs-input-disabled-bg: #eef2f7;
    --abs-modal-backdrop: rgba(6, 20, 38, 0.45);
}

/* -------------------------------------------------------------------------- */
/* ABS Dark                                                                    */
/* -------------------------------------------------------------------------- */
[data-abs-theme="dark"] {
    --abs-body-bg: #0a111c;
    --abs-surface-bg: #121c2b;
    --abs-surface-muted: #1a2536;
    --abs-surface-elevated: #1e2a3d;
    --abs-text: #e8eef7;
    --abs-text-muted: #94a3b8;
    --abs-text-inverse: #0d1b2a;
    --abs-border: #2a3a50;
    --abs-border-strong: #3d5168;
    --abs-link: #4cc9f0;
    --abs-link-hover: #7dd8f5;
    --abs-focus: #4cc9f0;

    --abs-primary: #00a8e8;
    --abs-primary-hover: #4cc9f0;
    --abs-primary-text: #061426;
    --abs-secondary: #64748b;
    --abs-secondary-hover: #94a3b8;
    --abs-secondary-text: #061426;
    --abs-success: #3dd68c;
    --abs-success-bg: rgba(61, 214, 140, 0.15);
    --abs-success-text: #bbf7d0;
    --abs-warning: #f2b705;
    --abs-warning-bg: rgba(242, 183, 5, 0.15);
    --abs-warning-text: #fde68a;
    --abs-danger: #f87171;
    --abs-danger-bg: rgba(248, 113, 113, 0.15);
    --abs-danger-text: #fecaca;
    --abs-info: #4cc9f0;
    --abs-info-bg: rgba(76, 201, 240, 0.12);
    --abs-info-text: #bae6fd;
    --abs-accent: #f2b705;
    --abs-accent-muted: rgba(242, 183, 5, 0.12);

    --abs-sidebar-bg: linear-gradient(180deg, #061426 0%, #0a111c 100%);
    --abs-sidebar-bg-solid: #061426;
    --abs-sidebar-text: #e8eef7;
    --abs-sidebar-muted: rgba(232, 238, 247, 0.6);
    --abs-sidebar-hover: rgba(255, 255, 255, 0.06);
    --abs-sidebar-active-bg: rgba(0, 168, 232, 0.18);
    --abs-sidebar-active-border: #4cc9f0;
    --abs-sidebar-accent: #f2b705;

    --abs-topbar-bg: #121c2b;
    --abs-topbar-text: #e8eef7;
    --abs-topbar-border: #2a3a50;
    --abs-footer-bg: #121c2b;
    --abs-footer-text: #94a3b8;
    --abs-footer-border: #2a3a50;
    --abs-card-border: #2a3a50;
    --abs-logo-bg: rgba(255, 255, 255, 0.08);
    --abs-action-bg: #1a2536;
    --abs-action-text: #cbd5e1;
    --abs-theme-toggle-bg: #1a2536;

    --abs-table-header-bg: #1a2536;
    --abs-table-row-hover: rgba(76, 201, 240, 0.08);
    --abs-table-row-selected: rgba(0, 168, 232, 0.18);
    --abs-input-bg: #1a2536;
    --abs-input-border: #3d5168;
    --abs-input-disabled-bg: #121c2b;
    --abs-modal-backdrop: rgba(0, 0, 0, 0.65);
}

/* -------------------------------------------------------------------------- */
/* ABS Classic — light business workspace, stronger navy nav                   */
/* -------------------------------------------------------------------------- */
[data-abs-theme="classic"] {
    --abs-body-bg: #e9edf2;
    --abs-surface-bg: #ffffff;
    --abs-surface-muted: #f3f5f8;
    --abs-surface-elevated: #ffffff;
    --abs-text: #1a2332;
    --abs-text-muted: #5a6578;
    --abs-text-inverse: #ffffff;
    --abs-border: #c8d0db;
    --abs-border-strong: #a8b4c4;
    --abs-link: #0a3d91;
    --abs-link-hover: #082f70;
    --abs-focus: #0a3d91;

    --abs-primary: #0a3d91;
    --abs-primary-hover: #082f70;
    --abs-primary-text: #ffffff;
    --abs-secondary: #5a6578;
    --abs-secondary-hover: #434d5c;
    --abs-secondary-text: #ffffff;
    --abs-success: #157347;
    --abs-success-bg: #d1e7dd;
    --abs-success-text: #0a3622;
    --abs-warning: #997404;
    --abs-warning-bg: #fff3cd;
    --abs-warning-text: #664d03;
    --abs-danger: #b02a37;
    --abs-danger-bg: #f8d7da;
    --abs-danger-text: #58151c;
    --abs-info: #0a3d91;
    --abs-info-bg: #cfe2ff;
    --abs-info-text: #052c65;
    --abs-accent: #d4a017;
    --abs-accent-muted: rgba(212, 160, 23, 0.16);

    --abs-sidebar-bg: linear-gradient(180deg, #0d1b2a 0%, #0a1522 100%);
    --abs-sidebar-bg-solid: #0d1b2a;
    --abs-sidebar-text: #f0f4f8;
    --abs-sidebar-muted: rgba(240, 244, 248, 0.68);
    --abs-sidebar-hover: rgba(255, 255, 255, 0.07);
    --abs-sidebar-active-bg: rgba(212, 160, 23, 0.14);
    --abs-sidebar-active-border: #d4a017;
    --abs-sidebar-accent: #d4a017;

    --abs-topbar-bg: #ffffff;
    --abs-topbar-text: #1a2332;
    --abs-topbar-border: #c8d0db;
    --abs-footer-bg: #f3f5f8;
    --abs-footer-text: #5a6578;
    --abs-footer-border: #c8d0db;
    --abs-card-border: #c8d0db;
    --abs-logo-bg: rgba(255, 255, 255, 0.1);
    --abs-action-bg: #eef1f5;
    --abs-action-text: #1a2332;
    --abs-theme-toggle-bg: #e4e9ef;

    --abs-table-header-bg: #eef1f5;
    --abs-table-row-hover: rgba(10, 61, 145, 0.05);
    --abs-table-row-selected: rgba(212, 160, 23, 0.12);
    --abs-input-bg: #ffffff;
    --abs-input-border: #b8c4d4;
    --abs-input-disabled-bg: #eef1f5;
    --abs-modal-backdrop: rgba(13, 27, 42, 0.5);
}

/* -------------------------------------------------------------------------- */
/* Shell application of tokens                                                 */
/* -------------------------------------------------------------------------- */
[data-abs-theme] body.abs-app-body,
[data-abs-theme] body.abs-login-body {
    background-color: var(--abs-body-bg);
    color: var(--abs-text);
}

[data-abs-theme] .abs-sidebar {
    background: var(--abs-sidebar-bg);
    color: var(--abs-sidebar-text);
}

[data-abs-theme] .abs-sidebar__section-title,
[data-abs-theme] .abs-sidebar__company-meta,
[data-abs-theme] .abs-sidebar__company-env {
    color: var(--abs-sidebar-muted);
}

[data-abs-theme] .abs-sidebar__company-name {
    color: var(--abs-sidebar-text);
}

[data-abs-theme] .abs-nav-link,
[data-abs-theme] .abs-nav-parent,
[data-abs-theme] .abs-nav-child {
    color: var(--abs-sidebar-text);
}

[data-abs-theme] .abs-nav-link:hover,
[data-abs-theme] .abs-nav-parent:hover,
[data-abs-theme] .abs-nav-child:hover {
    background-color: var(--abs-sidebar-hover);
}

[data-abs-theme] .abs-nav-link.is-active,
[data-abs-theme] .abs-nav-child.is-active {
    border-left-color: var(--abs-sidebar-active-border);
    background-color: var(--abs-sidebar-active-bg);
    font-weight: var(--abs-font-weight-semibold);
}

[data-abs-theme] .abs-nav-group.is-active-group > .abs-nav-parent {
    color: var(--abs-sidebar-accent);
}

[data-abs-theme] .abs-sidebar__logo {
    background-color: var(--abs-logo-bg);
}

[data-abs-theme] .abs-topbar {
    background-color: var(--abs-topbar-bg);
    color: var(--abs-topbar-text);
    border-bottom: 1px solid var(--abs-topbar-border);
}

[data-abs-theme] .abs-topbar__toggle,
[data-abs-theme] .abs-topbar__action-btn {
    color: var(--abs-topbar-text);
}

[data-abs-theme] .abs-topbar__action-btn {
    background-color: var(--abs-action-bg);
    color: var(--abs-action-text);
    border-color: transparent;
}

[data-abs-theme] .abs-topbar__action-btn:hover,
[data-abs-theme] .abs-topbar__logout:hover {
    filter: brightness(0.97);
}

[data-abs-theme] .abs-content-card,
[data-abs-theme] .card {
    background-color: var(--abs-surface-bg);
    border-color: var(--abs-card-border);
    color: var(--abs-text);
}

[data-abs-theme] .card-header,
[data-abs-theme] .card-footer {
    background-color: var(--abs-surface-muted);
    border-color: var(--abs-card-border);
    color: var(--abs-text);
}

[data-abs-theme] .text-muted {
    color: var(--abs-text-muted) !important;
}

[data-abs-theme] .abs-breadcrumb-placeholder {
    color: var(--abs-text-muted);
}

[data-abs-theme] .abs-topbar__dropdown,
[data-abs-theme] .dropdown-menu {
    background-color: var(--abs-surface-bg);
    color: var(--abs-text);
    border-color: var(--abs-card-border);
}

[data-abs-theme] .abs-topbar__dropdown .dropdown-item,
[data-abs-theme] .abs-topbar__dropdown .dropdown-item-text,
[data-abs-theme] .abs-topbar__dropdown .dropdown-header,
[data-abs-theme] .dropdown-menu .dropdown-item {
    color: var(--abs-text);
}

[data-abs-theme] .abs-topbar__dropdown .dropdown-item:hover,
[data-abs-theme] .abs-topbar__dropdown .dropdown-item.active,
[data-abs-theme] .dropdown-menu .dropdown-item:hover,
[data-abs-theme] .dropdown-menu .dropdown-item.active {
    background-color: var(--abs-action-bg);
    color: var(--abs-text);
}

[data-abs-theme] .abs-app-footer {
    background-color: var(--abs-footer-bg);
    color: var(--abs-footer-text);
    border-top: 1px solid var(--abs-footer-border);
}

[data-abs-theme] a:not(.btn):not(.nav-link):not(.dropdown-item) {
    color: var(--abs-link);
}

[data-abs-theme] a:not(.btn):not(.nav-link):not(.dropdown-item):hover {
    color: var(--abs-link-hover);
}

[data-abs-theme] .btn-primary {
    --bs-btn-bg: var(--abs-primary);
    --bs-btn-border-color: var(--abs-primary);
    --bs-btn-color: var(--abs-primary-text);
    --bs-btn-hover-bg: var(--abs-primary-hover);
    --bs-btn-hover-border-color: var(--abs-primary-hover);
    --bs-btn-active-bg: var(--abs-primary-hover);
    --bs-btn-active-border-color: var(--abs-primary-hover);
    --bs-btn-disabled-bg: var(--abs-primary);
    --bs-btn-disabled-border-color: var(--abs-primary);
}

[data-abs-theme] .btn-secondary {
    --bs-btn-bg: var(--abs-secondary);
    --bs-btn-border-color: var(--abs-secondary);
    --bs-btn-hover-bg: var(--abs-secondary-hover);
    --bs-btn-hover-border-color: var(--abs-secondary-hover);
}

[data-abs-theme] .btn-outline-primary {
    --bs-btn-color: var(--abs-primary);
    --bs-btn-border-color: var(--abs-primary);
    --bs-btn-hover-bg: var(--abs-primary);
    --bs-btn-hover-border-color: var(--abs-primary);
    --bs-btn-hover-color: var(--abs-primary-text);
}

[data-abs-theme] .btn-outline-secondary {
    --bs-btn-color: var(--abs-text-muted);
    --bs-btn-border-color: var(--abs-border-strong);
    --bs-btn-hover-bg: var(--abs-action-bg);
    --bs-btn-hover-color: var(--abs-text);
}

[data-abs-theme] .form-control,
[data-abs-theme] .form-select,
[data-abs-theme] textarea.form-control {
    background-color: var(--abs-input-bg);
    border-color: var(--abs-input-border);
    color: var(--abs-text);
}

[data-abs-theme] .form-control:focus,
[data-abs-theme] .form-select:focus {
    border-color: var(--abs-focus);
    box-shadow: 0 0 0 var(--abs-focus-ring-width) color-mix(in srgb, var(--abs-focus) 25%, transparent);
}

[data-abs-theme] .form-control:disabled,
[data-abs-theme] .form-select:disabled {
    background-color: var(--abs-input-disabled-bg);
}

[data-abs-theme] .form-label {
    color: var(--abs-text);
    font-weight: var(--abs-font-weight-medium);
}

[data-abs-theme] .table {
    --bs-table-bg: var(--abs-surface-bg);
    --bs-table-color: var(--abs-text);
    --bs-table-border-color: var(--abs-border);
    --bs-table-striped-bg: var(--abs-surface-muted);
    --bs-table-hover-bg: var(--abs-table-row-hover);
}

[data-abs-theme] .table thead th {
    background-color: var(--abs-table-header-bg);
    color: var(--abs-text);
    font-weight: var(--abs-font-weight-semibold);
    border-bottom-width: 2px;
}

[data-abs-theme] .table > tbody > tr.table-active,
[data-abs-theme] .table > tbody > tr.selected {
    --bs-table-bg-state: var(--abs-table-row-selected);
}

[data-abs-theme] .alert-success {
    background-color: var(--abs-success-bg);
    color: var(--abs-success-text);
    border-color: color-mix(in srgb, var(--abs-success) 35%, transparent);
}

[data-abs-theme] .alert-warning {
    background-color: var(--abs-warning-bg);
    color: var(--abs-warning-text);
    border-color: color-mix(in srgb, var(--abs-warning) 35%, transparent);
}

[data-abs-theme] .alert-danger {
    background-color: var(--abs-danger-bg);
    color: var(--abs-danger-text);
    border-color: color-mix(in srgb, var(--abs-danger) 35%, transparent);
}

[data-abs-theme] .alert-info {
    background-color: var(--abs-info-bg);
    color: var(--abs-info-text);
    border-color: color-mix(in srgb, var(--abs-info) 35%, transparent);
}

[data-abs-theme] .modal-content {
    background-color: var(--abs-surface-bg);
    color: var(--abs-text);
    border-color: var(--abs-card-border);
}

[data-abs-theme] .modal-header,
[data-abs-theme] .modal-footer {
    border-color: var(--abs-card-border);
}

[data-abs-theme] .nav-tabs {
    border-color: var(--abs-border);
}

[data-abs-theme] .nav-tabs .nav-link {
    color: var(--abs-text-muted);
}

[data-abs-theme] .nav-tabs .nav-link.active {
    color: var(--abs-primary);
    border-color: var(--abs-border) var(--abs-border) var(--abs-surface-bg);
    background-color: var(--abs-surface-bg);
}

[data-abs-theme] .page-link {
    color: var(--abs-link);
    background-color: var(--abs-surface-bg);
    border-color: var(--abs-border);
}

[data-abs-theme] .page-item.active .page-link {
    background-color: var(--abs-primary);
    border-color: var(--abs-primary);
    color: var(--abs-primary-text);
}

[data-abs-theme] .bg-white {
    background-color: var(--abs-surface-bg) !important;
}

[data-abs-theme] .bg-light {
    background-color: var(--abs-surface-muted) !important;
}

[data-abs-theme] .border,
[data-abs-theme] .border-top,
[data-abs-theme] .border-bottom {
    border-color: var(--abs-border) !important;
}

[data-abs-theme] .text-dark {
    color: var(--abs-text) !important;
}

[data-abs-theme] .text-primary {
    color: var(--abs-primary) !important;
}

[data-abs-theme] *:focus-visible {
    outline: 2px solid var(--abs-focus);
    outline-offset: 2px;
}
