/*
|--------------------------------------------------------------------------
| KPF University Design Tokens
|--------------------------------------------------------------------------
|
| Os tokens --kpf-* sao a fonte da identidade do produto. Os tokens
| --starter-* permanecem como aliases de compatibilidade para os componentes
| existentes e nao devem ser removidos sem uma migracao dedicada.
|
*/

/*
|--------------------------------------------------------------------------
| Light Theme / Default
|--------------------------------------------------------------------------
*/

:root {
    --kpf-navy-950: #031a30;
    --kpf-navy-900: #052b4f;
    --kpf-navy-800: #0a3b68;
    --kpf-sidebar-bg: #031f46;
    --kpf-sidebar-hover: rgb(27 83 148 / 42%);
    --kpf-sidebar-active: #0754bd;
    --kpf-sidebar-card: #0e315f;
    --kpf-blue-700: #0759bd;
    --kpf-blue-600: #0b6ee8;
    --kpf-blue-100: #eaf3ff;
    --kpf-gold-500: #f2c94c;
    --kpf-gold-100: #fff7d6;
    --kpf-bg: #ffffff;
    --kpf-surface: #ffffff;
    --kpf-surface-soft: #f8fafd;
    --kpf-text: #0b1f3a;
    --kpf-text-muted: #5f6f82;
    --kpf-border: #dbe4ef;
    --kpf-border-soft: #e9eff6;
    --kpf-success: #168a52;
    --kpf-warning: #b86a00;
    --kpf-danger: #cf3342;
    --kpf-info: #0b6ee8;
    --kpf-space-1: .25rem;
    --kpf-space-2: .5rem;
    --kpf-space-3: .75rem;
    --kpf-space-4: 1rem;
    --kpf-space-5: 1.5rem;
    --kpf-space-6: 2rem;
    --kpf-radius-sm: .5rem;
    --kpf-radius-md: .75rem;
    --kpf-radius-lg: 1rem;
    --kpf-shadow-sm: 0 1px 2px rgb(3 26 48 / 4%), 0 6px 18px rgb(3 26 48 / 5%);
    --kpf-shadow-md: 0 12px 32px rgb(3 26 48 / 8%);

    --tblr-bg-surface: var(--kpf-surface);
    --tblr-body-bg: var(--kpf-bg);
    --tblr-body-color: var(--kpf-text);
    --tblr-border-color: var(--kpf-border);

    --starter-card: var(--kpf-surface);
    --starter-card-soft: var(--kpf-surface-soft);
    --starter-ink: var(--kpf-text);
    --starter-muted: var(--kpf-text-muted);
    --starter-muted-soft: #8a98aa;

    --starter-line: var(--kpf-border);
    --starter-line-soft: var(--kpf-border-soft);

    --starter-input: #ffffff;
    --starter-input-text: var(--kpf-text);
    --starter-placeholder: #8796a9;

    --starter-table-head: #ffffff;
    --starter-table-row: #ffffff;
    --starter-table-row-hover: #f5f9ff;

    --starter-accent: var(--kpf-blue-600);
    --starter-accent-2: #2788f2;
    --starter-accent-soft: var(--kpf-blue-100);
    --starter-accent-line: #c9def8;
    --starter-accent-text: var(--kpf-blue-700);
    --starter-accent-focus: rgb(11 110 232 / 16%);
    --starter-accent-shadow: rgb(11 110 232 / 20%);
    --starter-accent-shadow-strong: rgb(11 110 232 / 26%);

    --starter-system-primary: var(--kpf-blue-600);
    --starter-system-primary-rgb: 11, 110, 232;
    --starter-system-primary-text: #073f85;
    --starter-system-primary-soft: var(--kpf-blue-100);
    --starter-system-primary-line: #c9def8;

    --starter-overlap-bg: var(--kpf-navy-900);
    --starter-overlap-text: #f8fafc;
    --starter-overlap-muted: #c9d9e8;

    --starter-primary: var(--kpf-blue-600);
    --starter-primary-2: #2788f2;

    --starter-danger: var(--kpf-danger);
    --starter-danger-2: #e0525f;
    --starter-danger-soft: #fff1f2;
    --starter-danger-line: #fee2e2;
    --starter-danger-text: #b42318;

    --starter-success: var(--kpf-success);
    --starter-success-soft: #dcfce7;
    --starter-success-line: #bbf7d0;
    --starter-success-text: #15803d;

    --starter-warning: var(--kpf-warning);
    --starter-warning-soft: #fffaeb;
    --starter-warning-line: #fedf89;

    --starter-chip-soft: var(--kpf-blue-100);
    --starter-chip-line: #c9def8;
    --starter-role-text: #334155;
    --starter-role-soft: #f8fafc;
    --starter-role-line: #e2e8f0;

    --starter-avatar-start: #ffffff;
    --starter-avatar-mid: #edf5ff;
    --starter-avatar-end: #dcecff;

    --starter-on-accent: #ffffff;
    --starter-status-inactive: #94a3b8;
    --starter-status-inactive-soft: rgb(148 163 184 / 18%);
    --starter-overlay: rgb(15 23 42 / 58%);
    --starter-modal-shadow: 0 30px 90px rgb(3 26 48 / 30%);
    --starter-shadow: var(--kpf-shadow-md);
    --starter-shadow-soft: var(--kpf-shadow-sm);
    --starter-show-shadow: var(--kpf-shadow-md);
    --starter-button-shadow: 0 8px 18px rgb(3 26 48 / 9%);
    --starter-inset-line: rgb(11 110 232 / 6%);
    --starter-inset-highlight: rgba(255, 255, 255, .65);

    --tblr-primary: var(--starter-system-primary);
    --tblr-tabler: var(--starter-system-primary);
    --tblr-primary-rgb: var(--starter-system-primary-rgb);
    --tblr-tabler-rgb: var(--starter-system-primary-rgb);

    --tblr-link-color: var(--starter-system-primary);
    --tblr-link-color-rgb: var(--starter-system-primary-rgb);
    --tblr-link-hover-color: var(--starter-accent-text);
    --tblr-link-hover-color-rgb: 7, 89, 189;

    --tblr-primary-text-emphasis: var(--starter-system-primary-text);
    --tblr-primary-bg-subtle: var(--starter-system-primary-soft);
    --tblr-primary-border-subtle: var(--starter-system-primary-line);

    --tblr-focus-ring-color: var(--starter-accent-focus);
    --bg-switch-checked-color: var(--starter-system-primary);
}

/*
|--------------------------------------------------------------------------
| Dark Theme
|--------------------------------------------------------------------------
*/

html[data-bs-theme="dark"],
html[data-theme="dark"],
html.dark,
body[data-bs-theme="dark"],
body[data-theme="dark"],
body.theme-dark,
body.dark,
body.dark-mode {
    --kpf-bg: #071626;
    --kpf-surface: #0b2037;
    --kpf-surface-soft: #0e2946;
    --kpf-text: #f3f7fc;
    --kpf-text-muted: #b5c3d2;
    --kpf-border: #24425f;
    --kpf-border-soft: #173550;

    --tblr-bg-surface: var(--kpf-surface);
    --tblr-body-bg: var(--kpf-bg);
    --tblr-body-color: var(--kpf-text);
    --tblr-border-color: var(--kpf-border);

    --starter-card: var(--kpf-surface);
    --starter-card-soft: var(--kpf-surface-soft);
    --starter-ink: var(--kpf-text);
    --starter-muted: var(--kpf-text-muted);
    --starter-muted-soft: #8fa3b8;

    --starter-line: var(--kpf-border);
    --starter-line-soft: var(--kpf-border-soft);

    --starter-input: #0e2946;
    --starter-input-text: var(--kpf-text);
    --starter-placeholder: #8fa3b8;

    --starter-table-head: var(--kpf-surface);
    --starter-table-row: var(--kpf-surface);
    --starter-table-row-hover: #123252;

    --starter-accent: #58a6ff;
    --starter-accent-2: #7ab8ff;
    --starter-accent-soft: rgb(88 166 255 / 16%);
    --starter-accent-line: rgb(88 166 255 / 30%);
    --starter-accent-text: #8ac2ff;
    --starter-accent-focus: rgb(88 166 255 / 20%);
    --starter-accent-shadow: rgb(88 166 255 / 20%);
    --starter-accent-shadow-strong: rgb(88 166 255 / 28%);

    --starter-system-primary: #58a6ff;
    --starter-system-primary-rgb: 88, 166, 255;
    --starter-system-primary-text: #b9d9ff;
    --starter-system-primary-soft: rgb(88 166 255 / 16%);
    --starter-system-primary-line: rgb(88 166 255 / 30%);

    --starter-overlap-bg: var(--kpf-navy-950);
    --starter-overlap-text: #f3f7fc;
    --starter-overlap-muted: #b5c3d2;

    --starter-primary: #60a5fa;
    --starter-primary-2: #93c5fd;

    --starter-danger: #ff6b7a;
    --starter-danger-2: #fb7185;
    --starter-danger-soft: rgba(239, 68, 68, .14);
    --starter-danger-line: rgba(239, 68, 68, .28);
    --starter-danger-text: #fda4af;

    --starter-success: #4ade80;
    --starter-success-soft: rgba(22, 163, 74, .16);
    --starter-success-line: rgba(22, 163, 74, .28);
    --starter-success-text: #86efac;

    --starter-warning: #fdb022;
    --starter-warning-soft: rgba(253, 176, 34, .14);
    --starter-warning-line: rgba(253, 176, 34, .28);

    --starter-chip-soft: rgb(88 166 255 / 16%);
    --starter-chip-line: rgb(88 166 255 / 30%);
    --starter-role-text: #e5e7eb;
    --starter-role-soft: #123252;
    --starter-role-line: var(--kpf-border);

    --starter-avatar-start: #24425f;
    --starter-avatar-mid: #173550;
    --starter-avatar-end: #0e2946;

    --starter-status-inactive: #6f667c;
    --starter-status-inactive-soft: rgb(111 102 124 / 24%);
    --starter-overlay: rgb(5 4 8 / 72%);
    --starter-modal-shadow: 0 30px 90px rgb(0 0 0 / 45%);
    --starter-shadow: 0 24px 70px rgba(0, 0, 0, .38);
    --starter-shadow-soft: 0 12px 30px rgba(0, 0, 0, .24);
    --starter-show-shadow: 0 18px 45px rgba(0, 0, 0, .32);
    --starter-button-shadow: 0 10px 22px rgba(0, 0, 0, .22);
    --starter-inset-line: rgb(88 166 255 / 12%);
    --starter-inset-highlight: rgba(255, 255, 255, .08);

    --tblr-primary: var(--starter-system-primary);
    --tblr-tabler: var(--starter-system-primary);
    --tblr-primary-rgb: var(--starter-system-primary-rgb);
    --tblr-tabler-rgb: var(--starter-system-primary-rgb);

    --tblr-link-color: var(--starter-system-primary-text);
    --tblr-link-color-rgb: 185, 217, 255;
    --tblr-link-hover-color: #e4f1ff;
    --tblr-link-hover-color-rgb: 228, 241, 255;

    --tblr-primary-text-emphasis: var(--starter-system-primary-text);
    --tblr-primary-bg-subtle: var(--starter-system-primary-soft);
    --tblr-primary-border-subtle: var(--starter-system-primary-line);

    --tblr-focus-ring-color: var(--starter-accent-focus);
    --bg-switch-checked-color: var(--starter-system-primary);
}

/*
|--------------------------------------------------------------------------
| Horizontal Overlap Fixes
|--------------------------------------------------------------------------
*/

body[bp-layout=horizontal-overlap] .header-operation,
body[bp-layout=horizontal-overlap] .breadcrumb .active,
body[bp-layout=horizontal-overlap] .navbar-filters .navbar-nav .nav-link {
    color: var(--starter-overlap-text);
}

body[bp-layout=horizontal-overlap] .nav-item > a {
    color: var(--starter-overlap-muted);
}

/*
|--------------------------------------------------------------------------
| Light Specific Component Fixes
|--------------------------------------------------------------------------
*/

body:not([data-bs-theme="dark"]):not([data-theme="dark"]):not(.theme-dark):not(.dark):not(.dark-mode) .starter-dashboard-card,
[data-bs-theme="light"] .starter-dashboard-card,
[data-theme="light"] .starter-dashboard-card {
    --tblr-card-bg: var(--starter-input);
    background-color: var(--starter-input);
}

/*
|--------------------------------------------------------------------------
| Reusable Select2 Shell
|--------------------------------------------------------------------------
|
| Use starter-select-shell around a starter-select2 when the control needs
| an internal leading icon. The generated Select2 content is aligned with
| flex instead of relying on line-height.
|
*/

.starter-select-shell {
    --starter-select-shell-height: 2.75rem;
    --starter-select-shell-radius: var(--kpf-radius-md);
    position: relative;
    min-height: var(--starter-select-shell-height);
}

.starter-select-shell[data-select2-cloak] {
    visibility: hidden;
}

.starter-select-shell[data-select2-cloak].is-select2-ready {
    visibility: visible;
}

.starter-select-shell-icon {
    position: absolute;
    z-index: 2;
    top: 50%;
    left: 1rem;
    color: var(--starter-muted);
    font-size: 1.1rem;
    line-height: 1;
    pointer-events: none;
    transform: translateY(-50%);
}

.starter-select-shell-multiple .starter-select-shell-icon {
    top: calc(var(--starter-select-shell-height) / 2);
}

.kpf-university-admin .starter-select-shell > select.starter-select2 {
    min-height: var(--starter-select-shell-height);
    padding-left: 2.8rem;
    padding-right: 2.75rem;
    border-radius: var(--starter-select-shell-radius);
}

.kpf-university-admin .starter-select-shell .select2-container .select2-selection--single {
    display: flex;
    align-items: center;
    min-height: var(--starter-select-shell-height);
    border-radius: var(--starter-select-shell-radius);
}

.kpf-university-admin .starter-select-shell .select2-selection--single .select2-selection__rendered {
    display: block;
    width: 100%;
    min-width: 0;
    padding: 0 2.75rem 0 2.8rem !important;
    line-height: 1.25 !important;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.kpf-university-admin .starter-select-shell .select2-selection--single .select2-selection__arrow {
    top: 0 !important;
    right: .65rem !important;
    height: 100% !important;
}

.kpf-university-admin .starter-select-shell .select2-selection--multiple {
    min-height: var(--starter-select-shell-height);
    padding: .2rem .5rem .2rem 2.45rem;
    border-color: var(--starter-line);
    border-radius: var(--starter-select-shell-radius);
    color: var(--starter-input-text);
    background: var(--starter-input);
}

.kpf-university-admin .starter-select-shell .select2-selection--multiple .select2-selection__rendered {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .25rem;
    min-height: 2.15rem;
    padding: 0;
}

.kpf-university-admin .starter-select-shell .select2-selection--multiple .select2-selection__choice {
    margin: 0;
    padding: .22rem .5rem;
    border-color: var(--starter-accent-line);
    border-radius: var(--kpf-radius-sm);
    color: var(--starter-accent-text);
    background: var(--starter-accent-soft);
    font-size: .78rem;
    font-weight: 700;
}

.kpf-university-admin .starter-select-shell .select2-selection--multiple .select2-search--inline {
    float: none;
    flex: 1 1 10rem;
}

.kpf-university-admin .starter-select-shell .select2-selection--multiple .select2-search__field {
    width: 100% !important;
    min-height: 1.9rem;
    margin: 0;
    color: var(--starter-input-text);
}

.kpf-university-admin .select2-dropdown {
    overflow: hidden;
    border-color: var(--starter-line);
    border-radius: var(--kpf-radius-md);
    color: var(--starter-input-text);
    background: var(--starter-input);
    box-shadow: var(--kpf-shadow-md);
}

.kpf-university-admin .select2-search--dropdown {
    padding: .5rem;
    background: var(--starter-input);
}

.kpf-university-admin .select2-search--dropdown .select2-search__field {
    min-height: 2.35rem;
    padding: .4rem .65rem;
    border: 1px solid var(--starter-line);
    border-radius: var(--kpf-radius-sm);
    color: var(--starter-input-text);
    background: var(--starter-input);
    outline: none;
}

.kpf-university-admin .select2-search--dropdown .select2-search__field:focus {
    border-color: var(--starter-accent);
    box-shadow: 0 0 0 .2rem var(--starter-accent-focus);
}

.kpf-university-admin .select2-results__option {
    padding: .6rem .75rem;
    color: var(--starter-input-text);
    background: var(--starter-input);
}

.kpf-university-admin .select2-results__option[aria-selected="true"]:not(.select2-results__option--highlighted) {
    color: var(--starter-accent-text) !important;
    background-color: var(--starter-accent-soft) !important;
}

.kpf-university-admin .select2-container--bootstrap .select2-results__option--highlighted[aria-selected],
.kpf-university-admin .select2-container--default .select2-results__option--highlighted[aria-selected],
.kpf-university-admin .select2-results__option--highlighted[aria-selected] {
    color: #ffffff !important;
    background-color: var(--starter-accent) !important;
}

.kpf-university-admin .select2-container--bootstrap.select2-container--focus .select2-selection,
.kpf-university-admin .select2-container--bootstrap.select2-container--open .select2-selection,
.kpf-university-admin .select2-container--default.select2-container--focus .select2-selection,
.kpf-university-admin .select2-container--default.select2-container--open .select2-selection {
    border-color: var(--starter-accent) !important;
    box-shadow: 0 0 0 .2rem var(--starter-accent-focus) !important;
}

.kpf-university-admin .select2-results__message {
    color: var(--starter-muted);
}

/*
|--------------------------------------------------------------------------
| Component Aliases
|--------------------------------------------------------------------------
*/

.premium-list,
.modern-show {
    --pl-card: var(--starter-card);
    --pl-card-soft: var(--starter-card-soft);
    --pl-ink: var(--starter-ink);
    --pl-muted: var(--starter-muted);
    --pl-muted-soft: var(--starter-muted-soft);
    --pl-line: var(--starter-line);
    --pl-line-soft: var(--starter-line-soft);
    --pl-input: var(--starter-input);
    --pl-input-text: var(--starter-input-text);
    --pl-placeholder: var(--starter-placeholder);
    --pl-table-head: var(--starter-table-head);
    --pl-table-row: var(--starter-table-row);
    --pl-table-row-hover: var(--starter-table-row-hover);
    --pl-accent: var(--starter-accent);
    --pl-accent-2: var(--starter-accent-2);
    --pl-accent-soft: var(--starter-accent-soft);
    --pl-accent-line: var(--starter-accent-line);
    --pl-accent-text: var(--starter-accent-text);
    --pl-danger: var(--starter-danger);
    --pl-danger-soft: var(--starter-danger-soft);
    --pl-danger-line: var(--starter-danger-line);
    --pl-success: var(--starter-success);
    --pl-success-soft: var(--starter-success-soft);
    --pl-success-line: var(--starter-success-line);
    --pl-warning: var(--starter-warning);
    --pl-warning-soft: var(--starter-warning-soft);
    --pl-warning-line: var(--starter-warning-line);
    --pl-shadow: var(--starter-shadow);
    --pl-shadow-soft: var(--starter-shadow-soft);

    --ms-card: var(--starter-card);
    --ms-ink: var(--starter-ink);
    --ms-muted: var(--starter-muted);
    --ms-line: var(--starter-line);
    --ms-soft: var(--starter-accent-soft);
    --ms-accent: var(--starter-accent);
    --ms-accent-2: var(--starter-accent-2);
    --ms-danger: var(--starter-danger);
    --ms-success: var(--starter-success);
    --ms-shadow: var(--starter-show-shadow);
    --ms-shadow-soft: var(--starter-shadow-soft);
}
