/*
 * CyberERP semantic token layer for Limitless 4.
 * Primary/secondary remain brand tokens; status roles retain fixed meanings.
 * A later project-level theme setting can override --primary/--secondary here
 * without recompiling Limitless SCSS.
 */
:root {
    --erp-primary: var(--primary);
    --erp-primary-rgb: var(--primary-rgb);
    --erp-secondary: var(--secondary);
    --erp-secondary-rgb: var(--secondary-rgb);
}

[data-color-theme="dark"] {
    --erp-primary: var(--primary);
    --erp-secondary: var(--secondary);
}

.erp-section-banner {
    border-inline-start: .25rem solid var(--info) !important;
    background-color: rgba(var(--info-rgb), .1) !important;
    color: var(--info) !important;
}

.erp-status {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    font-weight: 600;
}

.erp-status i {
    font-size: 1rem;
}

/* Module identity is intentionally limited to compact labels, never page chrome. */
.erp-module-badge {
    font-weight: 600;
    letter-spacing: .02em;
}

@media (prefers-reduced-motion: reduce) {
    .erp-status {
        transition: none;
    }
}
/* Phase 3 pilot: program/session selectors remain functional nav-pills but scan as a clean list. */
.erp-selector-card .nav-link { border-color: var(--bs-border-color) !important; }
.erp-selector-card .nav-link.active { box-shadow: inset .2rem 0 0 var(--erp-primary); }
.erp-selector-card .nav-link:hover { background-color: rgba(var(--erp-primary-rgb), .06); }

/* Alpha metric cards use dark body text. Legacy detail links previously
   assumed opaque card surfaces and declared white text inline. */
.card.border.bg-opacity-20 a[style*="color:white"],
.card.border.bg-opacity-20 a.text-white,
.card.border.bg-opacity-20 .panel-footer {
    color: var(--bs-body-color) !important;
}

.card.border.bg-opacity-20 a[style*="color:white"]:hover,
.card.border.bg-opacity-20 a.text-white:hover {
    color: var(--bs-body-color) !important;
    text-decoration: underline;
}

/* Alpha modal headers use a visible close glyph instead of the white-on-solid
   close treatment used by legacy modal markup. */
.modal-header.bg-opacity-20 .btn-close {
    background-image: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--bs-body-color);
    opacity: .75;
}
.modal-header.bg-opacity-20 .btn-close::before {
    content: "×";
    font-size: 1.5rem;
    line-height: 1;
}
.modal-header.bg-opacity-20 .btn-close:hover {
    color: var(--bs-body-color);
    opacity: 1;
}

/* Approval queues use alpha header fills; legacy inline black text must remain
   readable without relying on the former solid red/green/teal surfaces. */
.voucher-approval-header.bg-opacity-20,
.voucher-approval-header.bg-opacity-20 .card-title,
.voucher-approval-header.bg-opacity-20 .form-check-label {
    color: var(--bs-body-color) !important;
}
