/*
 * Vibra visual identity foundation.
 *
 * Component overrides will consume semantic --simlab-* tokens. Raw brand
 * colors should not be referenced outside this file or data-visualization
 * palette adapters.
 */

:root,
[data-simlab-theme="vibra"] {
    /* Official primary palette */
    --vibra-green-dark: #044317;
    --vibra-green-light: #268200;
    --vibra-blue: #0000ff;
    --vibra-yellow: #fedc00;
    --vibra-white: #ffffff;

    /* Official supporting palette */
    --vibra-gray-light: #dbdbdb;
    --vibra-gray-dark: #54585a;
    --vibra-green-pastel: #a9c78e;
    --vibra-yellow-pastel: #fced96;
    --vibra-blue-pastel: #75a7d2;

    /* Typography: Acumin Pro will take effect when licensed webfonts arrive. */
    --simlab-font-sans: "Acumin Pro", Arial, sans-serif;
    --simlab-font-condensed: "Acumin Pro Condensed", "Arial Narrow", Arial, sans-serif;
    --simlab-font-extra-condensed: "Acumin Pro Extra Condensed", "Arial Narrow", Arial, sans-serif;

    /* Semantic interface tokens */
    --simlab-primary: var(--vibra-green-dark);
    --simlab-primary-emphasis: #033612;
    --simlab-primary-soft: var(--vibra-green-pastel);
    --simlab-primary-subtle: rgba(4, 67, 23, .06);
    --simlab-accent: var(--vibra-green-light);
    --simlab-focus: var(--vibra-blue);

    --simlab-page-background: #f6f7f6;
    --simlab-surface: var(--vibra-white);
    --simlab-surface-muted: #f1f3f1;
    --simlab-border: var(--vibra-gray-light);
    --simlab-text: var(--vibra-green-dark);
    --simlab-text-muted: var(--vibra-gray-dark);
    --simlab-on-primary: var(--vibra-white);

    /* Functional colors remain distinct from institutional decoration. */
    --simlab-success: var(--vibra-green-light);
    --simlab-success-soft: rgba(38, 130, 0, .1);
    --simlab-warning: #9a6c00;
    --simlab-warning-soft: var(--vibra-yellow-pastel);
    --simlab-danger: #c9362b;
    --simlab-danger-soft: rgba(201, 54, 43, .1);
    --simlab-danger-on-dark: #ffb7b0;
    --simlab-info: #245f9f;
    --simlab-info-soft: rgba(117, 167, 210, .24);
    --simlab-shadow-sm: 0 4px 12px rgba(4, 67, 23, .05);
    --simlab-shadow-md: 0 8px 20px rgba(4, 67, 23, .1);
    --simlab-auth-panel: rgba(255, 255, 255, .08);
    --simlab-auth-border: rgba(255, 255, 255, .18);
    --simlab-auth-muted: rgba(255, 255, 255, .7);

    /* Data visualization palette; final combinations require visual review. */
    --simlab-chart-1: var(--vibra-green-dark);
    --simlab-chart-2: var(--vibra-green-light);
    --simlab-chart-3: var(--vibra-gray-dark);
    --simlab-chart-4: var(--vibra-green-pastel);
    --simlab-chart-highlight: var(--vibra-yellow);
    --simlab-chart-text: var(--vibra-gray-dark);
    --simlab-chart-grid: rgba(84, 88, 90, .16);
    --simlab-chart-on-dark: var(--vibra-white);
}

/* Global typography */
[data-simlab-theme="vibra"] {
    font-family: var(--simlab-font-sans);
    color: var(--simlab-text);
}

[data-simlab-theme="vibra"] h1,
[data-simlab-theme="vibra"] h2,
[data-simlab-theme="vibra"] h3,
[data-simlab-theme="vibra"] h4,
[data-simlab-theme="vibra"] h5,
[data-simlab-theme="vibra"] h6,
[data-simlab-theme="vibra"] .h1,
[data-simlab-theme="vibra"] .h2,
[data-simlab-theme="vibra"] .h3,
[data-simlab-theme="vibra"] .h4,
[data-simlab-theme="vibra"] .h5,
[data-simlab-theme="vibra"] .h6 {
    font-family: var(--simlab-font-sans);
    color: var(--simlab-text);
}

/* Dashboard shell and navigation */
body[data-simlab-theme="vibra"].g-sidenav-show,
[data-simlab-theme="vibra"] .simlab-dashboard-shell {
    background: var(--simlab-primary) !important;
}

[data-simlab-theme="vibra"] .simlab-dashboard-content {
    background: var(--simlab-page-background) !important;
}

[data-simlab-theme="vibra"] #sidenav-main,
[data-simlab-theme="vibra"] #navbarBlur {
    background: var(--simlab-primary) !important;
}

[data-simlab-theme="vibra"] #sidenav-main .sidenav-brand-lockup {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .8rem;
    width: 100%;
    min-height: 5.25rem;
    margin-bottom: 1rem;
    padding: 1rem .15rem 1.15rem;
    border-bottom: 1px solid rgba(255, 255, 255, .18);
    text-decoration: none;
}

[data-simlab-theme="vibra"] #sidenav-main .sidenav-brand-logo {
    display: block;
    height: auto;
    object-fit: contain;
}

[data-simlab-theme="vibra"] #sidenav-main .sidenav-brand-logo-vibra {
    width: 4.35rem;
    max-width: 38%;
}

[data-simlab-theme="vibra"] #sidenav-main .sidenav-brand-logo-simlab {
    width: 6rem;
    max-width: 50%;
}

[data-simlab-theme="vibra"] #sidenav-main .sidenav-brand-divider {
    width: 1px;
    height: 2.35rem;
    flex: 0 0 1px;
    background: rgba(255, 255, 255, .32);
}

[data-simlab-theme="vibra"] #sidenav-main .sidenav-brand-lockup:focus-visible {
    border-radius: .5rem;
    outline: 2px solid var(--simlab-on-primary);
    outline-offset: -2px;
}

[data-simlab-theme="vibra"] #sidenav-main .nav-link {
    color: rgba(255, 255, 255, .78);
    border: 1px solid transparent;
    border-radius: .5rem;
}

[data-simlab-theme="vibra"] #sidenav-main .nav-link i,
[data-simlab-theme="vibra"] #sidenav-main .nav-link .nav-link-text {
    color: inherit !important;
}

[data-simlab-theme="vibra"] #sidenav-main .nav-link:hover {
    color: var(--simlab-on-primary);
    background: rgba(255, 255, 255, .1);
}

[data-simlab-theme="vibra"] #sidenav-main .nav-link.active {
    color: var(--simlab-primary);
    background: var(--simlab-surface);
    border-color: rgba(255, 255, 255, .34);
    box-shadow: 0 6px 18px rgba(0, 0, 0, .14);
}

[data-simlab-theme="vibra"] #navbarBlur .sidenav-toggler-line {
    background: var(--simlab-on-primary);
}

[data-simlab-theme="vibra"] .simlab-brand-hero {
    color: var(--simlab-on-primary);
    background: linear-gradient(
        115deg,
        var(--simlab-primary) 0%,
        var(--simlab-primary-emphasis) 72%,
        var(--simlab-accent) 140%
    );
    box-shadow: var(--simlab-shadow-md);
}

[data-simlab-theme="vibra"] .simlab-brand-hero h1,
[data-simlab-theme="vibra"] .simlab-brand-hero h2,
[data-simlab-theme="vibra"] .simlab-brand-hero h3,
[data-simlab-theme="vibra"] .simlab-brand-hero p {
    color: inherit;
}

/* Links and buttons */
[data-simlab-theme="vibra"] .simlab-dashboard-content a:not(.btn):not(.nav-link):not(.dropdown-item) {
    color: var(--simlab-primary);
}

[data-simlab-theme="vibra"] .btn-primary,
[data-simlab-theme="vibra"] .bg-primary,
[data-simlab-theme="vibra"] .bg-gradient-primary {
    color: var(--simlab-on-primary) !important;
    border-color: var(--simlab-primary) !important;
    background: var(--simlab-primary) !important;
}

[data-simlab-theme="vibra"] .btn-primary:hover,
[data-simlab-theme="vibra"] .btn-primary:focus,
[data-simlab-theme="vibra"] .bg-gradient-primary:hover,
[data-simlab-theme="vibra"] .bg-gradient-primary:focus {
    color: var(--simlab-on-primary) !important;
    border-color: var(--simlab-primary-emphasis) !important;
    background: var(--simlab-primary-emphasis) !important;
    box-shadow: 0 0 0 .2rem rgba(38, 130, 0, .22) !important;
}

[data-simlab-theme="vibra"] .btn-outline-primary {
    color: var(--simlab-primary);
    border-color: var(--simlab-primary);
}

[data-simlab-theme="vibra"] .btn-outline-primary:hover,
[data-simlab-theme="vibra"] .btn-outline-primary:focus {
    color: var(--simlab-on-primary);
    border-color: var(--simlab-primary);
    background: var(--simlab-primary);
}

[data-simlab-theme="vibra"] .text-primary {
    color: var(--simlab-primary) !important;
}

/* Cards, dropdowns and dialogs */
[data-simlab-theme="vibra"] .simlab-dashboard-content .card,
[data-simlab-theme="vibra"] .dropdown-menu,
[data-simlab-theme="vibra"] .modal-content {
    border-color: var(--simlab-border) !important;
    background-color: var(--simlab-surface);
}

[data-simlab-theme="vibra"] .card-header,
[data-simlab-theme="vibra"] .modal-header,
[data-simlab-theme="vibra"] .modal-footer {
    border-color: var(--simlab-border) !important;
}

[data-simlab-theme="vibra"] .text-muted,
[data-simlab-theme="vibra"] .metric-label,
[data-simlab-theme="vibra"] .metric-base {
    color: var(--simlab-text-muted) !important;
}

[data-simlab-theme="vibra"] .dropdown-item:hover,
[data-simlab-theme="vibra"] .dropdown-item:focus {
    color: var(--simlab-primary);
    background: var(--simlab-surface-muted);
}

[data-simlab-theme="vibra"] .dropdown-item.active,
[data-simlab-theme="vibra"] .dropdown-item:active {
    color: var(--simlab-on-primary);
    background: var(--simlab-primary);
}

/* Forms and focus states */
[data-simlab-theme="vibra"] .form-control,
[data-simlab-theme="vibra"] .form-select,
[data-simlab-theme="vibra"] .input-group-text,
[data-simlab-theme="vibra"] .datatable-input,
[data-simlab-theme="vibra"] .datatable-selector {
    color: var(--simlab-text);
    border-color: var(--simlab-border);
    background-color: var(--simlab-surface);
}

[data-simlab-theme="vibra"] .form-control:focus,
[data-simlab-theme="vibra"] .form-select:focus,
[data-simlab-theme="vibra"] .datatable-input:focus {
    border-color: var(--simlab-primary);
    outline: 0;
    box-shadow: 0 0 0 .18rem rgba(4, 67, 23, .14);
}

[data-simlab-theme="vibra"] .form-control:focus-visible,
[data-simlab-theme="vibra"] .form-select:focus-visible,
[data-simlab-theme="vibra"] .datatable-input:focus-visible {
    outline: 0;
}

[data-simlab-theme="vibra"] .input-group:focus-within {
    border-radius: .5rem;
    box-shadow: 0 0 0 .18rem rgba(4, 67, 23, .14);
}

[data-simlab-theme="vibra"] .input-group:focus-within > .form-control,
[data-simlab-theme="vibra"] .input-group:focus-within > .form-select,
[data-simlab-theme="vibra"] .input-group:focus-within > .input-group-text {
    border-color: var(--simlab-primary) !important;
}

[data-simlab-theme="vibra"] .input-group > .form-control:focus,
[data-simlab-theme="vibra"] .input-group > .form-select:focus {
    box-shadow: none;
}

[data-simlab-theme="vibra"] .form-check-input:checked {
    border-color: var(--simlab-primary);
    background-color: var(--simlab-primary);
}

[data-simlab-theme="vibra"] :focus-visible {
    outline: 2px solid var(--simlab-focus);
    outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
    [data-simlab-theme="vibra"] *,
    [data-simlab-theme="vibra"] *::before,
    [data-simlab-theme="vibra"] *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}

/* Tabs, tables and pagination */
[data-simlab-theme="vibra"] .nav-tabs,
[data-simlab-theme="vibra"] .table > :not(caption) > * > *,
[data-simlab-theme="vibra"] .datatable-container {
    border-color: var(--simlab-border) !important;
}

[data-simlab-theme="vibra"] .nav-tabs .nav-link {
    color: var(--simlab-text-muted);
}

[data-simlab-theme="vibra"] .nav-tabs .nav-link:hover,
[data-simlab-theme="vibra"] .nav-tabs .nav-link:focus,
[data-simlab-theme="vibra"] .nav-tabs .nav-link.active {
    color: var(--simlab-primary);
    border-color: var(--simlab-border) var(--simlab-border) var(--simlab-surface);
}

[data-simlab-theme="vibra"] .nav-pills.bg-gray-200,
[data-simlab-theme="vibra"] .nav-wrapper .bg-gray-200 {
    background: var(--simlab-border) !important;
}

[data-simlab-theme="vibra"] .nav-pills .nav-link {
    color: var(--simlab-text-muted);
}

[data-simlab-theme="vibra"] .nav-pills .nav-link:hover,
[data-simlab-theme="vibra"] .nav-pills .nav-link:focus,
[data-simlab-theme="vibra"] .nav-pills .nav-link.active {
    color: var(--simlab-primary);
}

[data-simlab-theme="vibra"] .nav-pills .moving-tab,
[data-simlab-theme="vibra"] .nav-pills .nav-link.active {
    background: var(--simlab-surface) !important;
    box-shadow: var(--simlab-shadow-sm);
}

[data-simlab-theme="vibra"] .table thead,
[data-simlab-theme="vibra"] .datatable-table thead {
    color: var(--simlab-primary);
    background: var(--simlab-surface-muted) !important;
}

[data-simlab-theme="vibra"] .table-hover > tbody > tr:hover > * {
    background: rgba(169, 199, 142, .22);
}

[data-simlab-theme="vibra"] .pagination .page-link,
[data-simlab-theme="vibra"] .datatable-pagination a,
[data-simlab-theme="vibra"] .datatable-pagination button {
    color: var(--simlab-primary) !important;
    border-color: var(--simlab-border) !important;
}

[data-simlab-theme="vibra"] .pagination .active .page-link,
[data-simlab-theme="vibra"] .datatable-pagination .datatable-active a,
[data-simlab-theme="vibra"] .datatable-pagination .datatable-active button {
    color: var(--simlab-on-primary) !important;
    border-color: var(--simlab-primary) !important;
    background: var(--simlab-primary) !important;
}

/* Functional feedback */
[data-simlab-theme="vibra"] .progress-bar,
[data-simlab-theme="vibra"] .bg-success {
    background-color: var(--simlab-success) !important;
}

[data-simlab-theme="vibra"] .badge.bg-primary {
    color: var(--simlab-on-primary) !important;
}

[data-simlab-theme="vibra"] .badge.bg-success {
    color: var(--simlab-primary) !important;
    border-color: var(--simlab-success) !important;
    background: var(--simlab-success-soft) !important;
}

[data-simlab-theme="vibra"] .badge.bg-info {
    color: var(--simlab-info) !important;
    border-color: var(--vibra-blue-pastel) !important;
    background: var(--simlab-info-soft) !important;
}

[data-simlab-theme="vibra"] .badge.bg-warning {
    color: var(--simlab-warning) !important;
    border-color: var(--vibra-yellow) !important;
    background: var(--simlab-warning-soft) !important;
}

[data-simlab-theme="vibra"] .badge.bg-danger {
    color: var(--simlab-danger) !important;
    border-color: var(--simlab-danger) !important;
    background: var(--simlab-danger-soft) !important;
}

/* Authentication */
body[data-simlab-theme="vibra"].gradient {
    color: var(--vibra-white);
}

[data-simlab-theme="vibra"] .simlab-auth-shell .welcome-card {
    color: var(--vibra-white);
    box-shadow: 0 20px 55px rgba(0, 0, 0, .2) !important;
}

[data-simlab-theme="vibra"] .simlab-auth-shell h1,
[data-simlab-theme="vibra"] .simlab-auth-shell h2,
[data-simlab-theme="vibra"] .simlab-auth-shell h3,
[data-simlab-theme="vibra"] .simlab-auth-shell h4,
[data-simlab-theme="vibra"] .simlab-auth-shell h5,
[data-simlab-theme="vibra"] .simlab-auth-shell h6,
[data-simlab-theme="vibra"] .simlab-auth-shell .text-light,
[data-simlab-theme="vibra"] .simlab-auth-shell .text-white {
    color: var(--vibra-white) !important;
}

[data-simlab-theme="vibra"] .simlab-auth-shell .form-control {
    color: var(--simlab-text);
    border-color: var(--simlab-border);
    background: var(--simlab-surface);
}

[data-simlab-theme="vibra"] .simlab-auth-shell .form-control::placeholder {
    color: var(--simlab-text-muted);
    opacity: .72;
}

[data-simlab-theme="vibra"] .simlab-auth-shell .simlab-auth-addon {
    color: var(--simlab-primary);
    border: 0;
    background: var(--simlab-surface-muted);
}

[data-simlab-theme="vibra"] .simlab-auth-shell .simlab-auth-error {
    color: var(--vibra-white);
    border: 0;
    border-left: 4px solid var(--simlab-danger);
    background: rgba(201, 54, 43, .2);
    backdrop-filter: blur(6px);
}

[data-simlab-theme="vibra"] .simlab-auth-shell .text-danger {
    color: var(--simlab-danger-on-dark) !important;
}

[data-simlab-theme="vibra"] .simlab-auth-shell .simlab-auth-strength-track {
    height: 6px;
    background: rgba(255, 255, 255, .2);
}

[data-simlab-theme="vibra"] .simlab-auth-shell .bg-gradient-primary,
[data-simlab-theme="vibra"] .simlab-auth-shell .btn-primary {
    color: var(--simlab-primary) !important;
    border-color: var(--vibra-white) !important;
    background: var(--vibra-white) !important;
}

[data-simlab-theme="vibra"] .simlab-auth-shell .bg-gradient-primary:hover,
[data-simlab-theme="vibra"] .simlab-auth-shell .bg-gradient-primary:focus,
[data-simlab-theme="vibra"] .simlab-auth-shell .btn-primary:hover,
[data-simlab-theme="vibra"] .simlab-auth-shell .btn-primary:focus {
    color: var(--simlab-primary-emphasis) !important;
    border-color: var(--vibra-green-pastel) !important;
    background: var(--vibra-green-pastel) !important;
}

[data-simlab-theme="vibra"] .simlab-auth-shell .form-check-input {
    border-color: rgba(255, 255, 255, .7);
}

[data-simlab-theme="vibra"] .simlab-language-toggle,
[data-simlab-theme="vibra"] .simlab-language-menu {
    color: var(--simlab-primary) !important;
    border-radius: 12px;
    background: rgba(255, 255, 255, .94) !important;
}

[data-simlab-theme="vibra"] .simlab-language-menu {
    backdrop-filter: blur(6px);
}

[data-simlab-theme="vibra"] .text-success {
    color: var(--simlab-success) !important;
}

[data-simlab-theme="vibra"] .text-info {
    color: var(--simlab-info) !important;
}

[data-simlab-theme="vibra"] .text-warning {
    color: var(--simlab-warning) !important;
}

[data-simlab-theme="vibra"] .text-danger {
    color: var(--simlab-danger) !important;
}
