:root {
    --bs-primary: #3659d9;
    --bs-primary-rgb: 54, 89, 217;
    --bs-link-color: #3659d9;
    --bs-link-hover-color: #243fa5;
    --bs-body-color: #26334b;
    --bs-border-color: #e4e9f1;
    --bs-body-font-family: 'Source Sans 3', system-ui, sans-serif;
}
body { background: #f5f7fb; }
.app-main { background: #f5f7fb; padding-bottom: 24px; min-width: 0; }
.app-header { border-bottom: 1px solid #e4e9f1; box-shadow: none; min-height: 68px; }
.app-header .nav-link { color: #617089; }
.app-sidebar { background: #172238 !important; box-shadow: none !important; }
.sidebar-brand { border-bottom: 1px solid #ffffff12; height: 68px; }
.brand-link { gap: 12px; }
.brand-mark, .account-avatar { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 36px; height: 36px; border-radius: 11px; background: #3659d9; color: white; font-weight: 700; }
.account-avatar { width: 32px; height: 32px; background: #eaf0ff; color: #3659d9; border-radius: 50%; }
.sidebar-brand .brand-text { font-size: 19px; font-weight: 650 !important; letter-spacing: -.3px; }
.sidebar-wrapper { padding: 20px 12px; }
.sidebar-menu .nav-link { border-radius: 9px; padding: 12px 14px; margin-bottom: 5px; color: #b5c2d7; }
.sidebar-menu .nav-link:hover { background: #ffffff0c; color: white; }
.sidebar-menu .nav-link.active { background: #3659d9 !important; color: white !important; box-shadow: 0 4px 12px #00000012; }
.app-content-header { padding: 30px 20px 22px; }
.app-content { padding-right: 20px; padding-left: 20px; }
.app-content-header h3, .page-heading { font-size: clamp(24px, 2.3vw, 30px); font-weight: 650; letter-spacing: -.7px; }
.page-description { color: #718097; margin: 7px 0 0; font-size: 15px; }
.breadcrumb { font-size: 13px; margin: 8px 0 0; }
.breadcrumb a { text-decoration: none; }
.card { border: 1px solid #e4e9f1; border-radius: 14px; box-shadow: 0 3px 14px #22345004; }
.card.card-outline { border-top: 1px solid #e4e9f1; }
.card-header { background: transparent; padding: 18px 22px; border-bottom: 1px solid #edf0f5; border-radius: 14px 14px 0 0 !important; }
.card-title { font-size: 17px; font-weight: 600; float: none; margin: 0; }
.card-header h2 { font-size: 24px; margin: 0; font-weight: 650; }
.card-body { padding: 22px; }
.card-footer { padding: 16px 22px; background: #fafbfd; border-top: 1px solid #edf0f5; border-radius: 0 0 14px 14px; }
.card-footer:empty { display: none; }
.card-footer .btn + .btn { margin-left: 6px; }
.btn { border-radius: 8px; padding: 9px 15px; font-size: 14px; font-weight: 600; }
.btn-primary { --bs-btn-bg: #3659d9; --bs-btn-border-color: #3659d9; --bs-btn-hover-bg: #2948ba; --bs-btn-hover-border-color: #2948ba; }
.btn-outline-primary { --bs-btn-color: #3659d9; --bs-btn-border-color: #d4def9; --bs-btn-hover-bg: #3659d9; --bs-btn-hover-border-color: #3659d9; }
.btn-outline-secondary { --bs-btn-color: #596880; --bs-btn-border-color: #dde3ed; --bs-btn-hover-bg: #edf1f7; --bs-btn-hover-color: #26334b; --bs-btn-hover-border-color: #c9d3e2; }
.btn-icon { padding: 7px 10px; }
.table { --bs-table-bg: transparent; --bs-table-striped-bg: #f8fafd; --bs-table-border-color: #edf0f5; font-size: 14px; margin-bottom: 0; }
.table > :not(caption) > * > * { padding: 15px 16px; }
.table-bordered > :not(caption) > * { border-width: 0 0 1px; }
.table-bordered > :not(caption) > * > * { border-width: 0; }
.table thead th { background: #f8fafd; color: #78859b; font-size: 12px; font-weight: 650; letter-spacing: .04em; white-space: nowrap; }
.table tbody tr:last-child { border-bottom-color: transparent; }
.table tbody td { overflow-wrap: anywhere; }
.table tbody tr:hover { background: #fafbfe; }
.entity-link { color: #26334b; font-weight: 650; text-decoration: none; }
.entity-link:hover { color: #3659d9; }
.entity-icon { display: inline-flex; justify-content: center; align-items: center; width: 36px; height: 36px; border-radius: 10px; background: #edf1ff; color: #3659d9; margin-right: 10px; flex-shrink: 0; }
.project-name { min-width: 190px; }
.project-description { color: #718097; min-width: 180px; max-width: 360px; }
.projects-table { table-layout: fixed; min-width: 850px; }
.projects-table .project-name-column { width: 22%; }
.projects-table .project-description-column { width: 25%; }
.projects-table .project-actions-column { width: 100px; }
.projects-table .project-title { display: flex; align-items: flex-start; gap: 12px; font-size: 15px; line-height: 1.5; }
.projects-table .project-title .entity-icon { margin: 0; }
.projects-table .project-title > span:last-child { min-width: 0; padding-top: 6px; overflow-wrap: anywhere; }
.projects-table .project-description { color: #56657c; line-height: 1.6; }
.project-access-list { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 8px; }
.project-access-link { display: inline-flex; align-items: center; gap: 10px; max-width: 100%; padding: 9px 12px; border: 1px solid #d3ddf5; border-radius: 8px; background: #eef2ff; color: #2948a6; font-size: 14px; font-weight: 500; line-height: 1.5; text-decoration: none; white-space: normal; overflow-wrap: anywhere; }
.project-access-link:hover { background: #e0e8ff; border-color: #a7b9ec; color: #1f3889; }
.project-access-title { min-width: 0; }
.project-access-count { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; min-width: 24px; height: 24px; padding: 0 6px; border-radius: 6px; background: #dce5ff; color: #2948a6; font-size: 12px; font-weight: 650; }
.users-table { min-width: 1100px; }
.users-table th:first-child, .users-table td:first-child { width: 105px; min-width: 105px; }
.users-table td:first-child .badge { white-space: nowrap; font-size: 12px; }
.users-table td:nth-child(2) { min-width: 190px; font-size: 15px; }
.users-table td:nth-child(5) { min-width: 220px; }
.users-table .accordion-body { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 8px; }
.credential-card .card-title, .credential-project { overflow-wrap: anywhere; }
.badge { font-weight: 550; border-radius: 6px; padding: 6px 9px; white-space: normal; line-height: 1.35; overflow-wrap: anywhere; }
.badge.text-bg-info { background: #edf1ff !important; color: #3659d9 !important; }
.badge.text-bg-light { background: #f0f3f8 !important; color: #55657d !important; }
.badge.text-bg-secondary { background: #dfe7fb !important; color: #3659d9 !important; padding: 2px 5px; margin-left: 4px; }
.chip-list { display: flex; flex-wrap: wrap; gap: 6px; }
.form-label { font-weight: 600; font-size: 14px; margin-bottom: 8px; }
.form-control, .form-select, .input-group-text { border-color: #dfe5ee; border-radius: 8px; padding: 10px 12px; font-size: 15px; }
.form-control:focus, .form-select:focus { border-color: #8da2ec; box-shadow: 0 0 0 3px #3659d912; }
textarea.form-control { min-height: 110px; }
.input-group-text { background: #f8fafd; color: #718097; }
.select2-container { max-width: 100%; width: 100% !important; }
.select2-container--default .select2-selection--multiple { border: 1px solid #dfe5ee; border-radius: 8px; min-height: 44px; padding: 4px 8px; }
.select2-container--default .select2-selection--multiple .select2-selection__choice { background: #edf1ff; border: 0; border-radius: 5px; padding: 4px 8px; }
.alert { border-radius: 10px; font-size: 14px; }
.app-footer { color: #8995a8; font-size: 12px; border-top: 1px solid #e4e9f1; padding: 16px 32px; }
.app-footer p { margin: 0; }
.empty-state { text-align: center; padding: 52px 24px; color: #718097; }
.empty-state > .bi { display: block; font-size: 32px; color: #8fa1cc; margin-bottom: 14px; }
.empty-state h3 { color: #26334b; font-size: 19px; }
.credential-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.credential-card { min-width: 0; margin-bottom: 0; }
.credential-card .card-header { display: block; }
.credential-table { table-layout: fixed; width: 100%; }
.credential-table td:first-child { width: 100px; font-size: 13px; }
.credential-table > tbody > tr > td { padding: 12px 6px; }
.credential-project { display: block; color: #718097; font-size: 13px; text-decoration: none; margin-bottom: 5px; }
.credential-fields { margin: 0; }
.credential-field { display: grid; grid-template-columns: 95px minmax(0, 1fr); gap: 12px; padding: 12px 0; border-bottom: 1px solid #edf0f5; }
.credential-field:first-child { padding-top: 0; }
.credential-field:last-child { border-bottom: 0; padding-bottom: 0; }
.credential-field dt { font-size: 13px; font-weight: 500; color: #718097; }
.credential-field dd { margin: 0; font-size: 14px; overflow-wrap: anywhere; }
.credential-field dd a { overflow-wrap: anywhere; }
.copy-icon { border: 0; background: #f0f3fa; color: #617499; border-radius: 6px; padding: 5px 8px; margin-left: 6px; cursor: pointer; }
.password-text { border: 0; background: transparent; color: inherit; font-family: monospace; padding: 0; cursor: pointer; }
.credential-card .card-footer { display: flex; gap: 8px; flex-wrap: wrap; }
.pagination { gap: 4px; margin-bottom: 0; }
.page-link { border-radius: 7px; }
.search-results-form { display: flex; gap: 12px; max-width: 760px; }
.search-results-form .form-control { min-width: 0; }
.search-results-form .btn { flex-shrink: 0; }
.search-results .page-description { overflow-wrap: anywhere; }
.search-results section { scroll-margin-top: 85px; }
.search-results .card-title { font-size: 17px; }
.search-result { display: flex; align-items: flex-start; gap: 14px; padding: 22px; color: #26334b; text-decoration: none; border-bottom: 1px solid #edf0f5; }
.search-result:last-child { border-bottom: 0; }
.search-result:hover { background: #f8faff; color: #3659d9; }
.search-result .entity-icon { margin: 0; }
.search-result-content { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.search-result-content h3 { font-size: 16px; font-weight: 650; margin: 0 0 7px; line-height: 1.5; }
.search-result-content p { color: #617089; font-size: 14px; line-height: 1.6; margin: 0; }
.search-result-arrow { color: #8b9bb7; margin-top: 5px; }
.search-result-meta { display: flex; flex-wrap: wrap; column-gap: 24px; row-gap: 6px; color: #617089; font-size: 14px; }
.search-result-meta > span { min-width: 0; }
.search-result-label { color: #78859b; margin-right: 6px; }
.search-pagination > nav { width: 100%; }
.search-pagination > nav > div { gap: 16px 24px; flex-wrap: wrap; }
.search-pagination p { margin: 0; }
.search-pagination .pagination { gap: 6px; flex-wrap: wrap; }
.search-pagination .page-item .page-link { margin-left: 0; min-width: 38px; text-align: center; border-radius: 7px; }
.search-pagination > nav > .d-sm-flex > div:last-child { margin-left: auto; }
.small-box { border-radius: 14px; border: 1px solid #e4e9f1; background: white !important; color: #26334b !important; box-shadow: none; overflow: hidden; }
.small-box .inner { padding: 24px; }
.small-box .inner h3 { font-size: 36px; font-weight: 650; }
.small-box .inner p { color: #718097; }
.small-box .small-box-icon { color: #3659d9; opacity: .15; }
.small-box .small-box-footer { background: #f8fafd; color: #3659d9 !important; padding: 12px; }
.list-group { border-radius: 12px; }
.list-group-item { padding: 20px; border-color: #e4e9f1; }
.list-group-item p { color: #718097; margin-bottom: 0; overflow-wrap: anywhere; }
.login-page { background: radial-gradient(ellipse at top, #e9eeff, #f5f7fb 65%) !important; padding: 32px 16px; }
.login-box { width: min(440px, 100%); }
.login-logo { font-size: 30px; color: #26334b; letter-spacing: -1px; margin-bottom: 24px; }
.login-card-body { border-radius: 14px; padding: 32px; }
.login-box-msg { color: #718097; padding: 0 0 24px; }
:focus-visible { outline: 3px solid #94a8ee; outline-offset: 3px; }
@media (max-width: 1199.98px) { .credential-grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 575.98px) {
    .app-content-header { padding: 24px 8px 18px; }
    .app-content { padding: 0 8px; }
    .card-body, .card-header, .card-footer { padding: 16px; }
    .credential-field { grid-template-columns: 75px minmax(0, 1fr); gap: 8px; }
    .app-content .d-flex.gap-2 { flex-wrap: wrap; }
    .login-card-body { padding: 24px; }
    #searchForm { max-width: 190px; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }
