@import url("https://fonts.googleapis.com/css2?family=Source+Sans+3:wght@400;500;600;700;800&display=swap");

:root {
    --chase-blue-950: #061a3a;
    --chase-blue-900: #0a2f6b;
    --chase-blue-800: #0c4f97;
    --chase-blue-700: #0f64bd;
    --chase-blue-600: #1c7ee0;
    --chase-surface: #ffffff;
    --chase-page: #f4f7fc;
    --chase-border: #d6e1f1;
    --chase-text: #0f2b4f;
    --chase-muted: #5b7391;
    --chase-shadow: 0 16px 34px -28px rgba(4, 33, 77, 0.56);
}

.chase-theme {
    font-family: "Source Sans 3", "Segoe UI", Tahoma, sans-serif;
    color: var(--chase-text);
}

.dark .chase-theme {
    --chase-surface: #0f203d;
    --chase-page: #091428;
    --chase-border: #203455;
    --chase-text: #e3ecfb;
    --chase-muted: #a2b6d2;
    --chase-shadow: 0 18px 34px -28px rgba(0, 0, 0, 0.76);
}

.chase-theme h1,
.chase-theme h2,
.chase-theme h3,
.chase-theme h4,
.chase-theme h5,
.chase-theme h6 {
    letter-spacing: -0.015em;
}

.chase-theme .text-gray-900 {
    color: #0f2b4f !important;
}

.chase-theme .text-gray-800,
.chase-theme .text-gray-700 {
    color: #27476d !important;
}

.chase-theme .text-gray-600,
.chase-theme .text-gray-500 {
    color: #5a7394 !important;
}

.dark .chase-theme .dark\:text-white,
.dark .chase-theme .dark\:text-gray-100,
.dark .chase-theme .dark\:text-gray-200 {
    color: #edf4ff !important;
}

.dark .chase-theme .dark\:text-gray-300,
.dark .chase-theme .dark\:text-gray-400,
.dark .chase-theme .dark\:text-gray-500 {
    color: #b2c5e2 !important;
}

.chase-theme .bg-primary-600,
.chase-theme .bg-primary-500 {
    background-color: var(--chase-blue-700) !important;
}

.chase-theme .bg-primary-700,
.chase-theme .bg-primary-800,
.chase-theme .bg-primary-900 {
    background-color: var(--chase-blue-900) !important;
}

.chase-theme .text-primary-600,
.chase-theme .text-primary-500 {
    color: var(--chase-blue-700) !important;
}

.chase-theme .text-primary-700,
.chase-theme .text-primary-800,
.chase-theme .text-primary-900 {
    color: var(--chase-blue-900) !important;
}

.chase-theme .border-gray-200,
.chase-theme .border-gray-300,
.chase-theme .border-primary-100,
.chase-theme .border-primary-200,
.chase-theme .border-primary-300 {
    border-color: var(--chase-border) !important;
}

.chase-theme .rounded-2xl,
.chase-theme .rounded-xl,
.chase-theme .rounded-lg {
    border-radius: 0.8rem !important;
}

.chase-theme .shadow-lg,
.chase-theme .shadow-xl,
.chase-theme .shadow-2xl,
.chase-theme .shadow-soft,
.chase-theme .shadow-top {
    box-shadow: var(--chase-shadow) !important;
}

.chase-theme input,
.chase-theme textarea,
.chase-theme select {
    border-color: var(--chase-border) !important;
}

.chase-theme input:focus,
.chase-theme textarea:focus,
.chase-theme select:focus {
    border-color: #89addb !important;
    box-shadow: 0 0 0 3px rgba(15, 100, 189, 0.16) !important;
}

.chase-theme .page-loading {
    display: none !important;
}

.chase-public {
    background: var(--chase-page);
}

.chase-public-nav {
    background: #ffffff !important;
    border-bottom: 1px solid var(--chase-border) !important;
    box-shadow: 0 8px 20px -20px rgba(6, 42, 96, 0.75) !important;
}

.dark .chase-public-nav {
    background: #0a172f !important;
    border-bottom-color: #243a5d !important;
}

.chase-public-nav > .absolute {
    display: none !important;
}

.chase-public-utility {
    background: var(--chase-blue-900);
    color: #dbe9ff;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.chase-public-utility a {
    color: #dbe9ff;
    transition: color 0.2s ease;
}

.chase-public-utility a:hover {
    color: #ffffff;
}

.chase-public-nav-main {
    min-height: 4.3rem;
}

.chase-public-nav .group .absolute.inset-0,
.chase-public-nav .group .absolute.inset-0.bg-gradient-to-r,
.chase-public-nav .group .absolute.inset-0.bg-gradient-to-br {
    display: none !important;
}

.chase-public-nav a,
.chase-public-nav button {
    border-radius: 0.65rem !important;
}

.chase-public-nav a[href$="/register"],
.chase-public-nav a[href*="register"] {
    background: var(--chase-blue-700) !important;
    color: #ffffff !important;
    border: 1px solid var(--chase-blue-700) !important;
}

.chase-public-nav > div[x-show="mobileMenuOpen"],
.chase-public-nav #mobile-menu {
    background: #ffffff !important;
    border-top: 1px solid var(--chase-border) !important;
    box-shadow: 0 10px 24px -18px rgba(6, 42, 96, 0.7) !important;
}

.dark .chase-public-nav > div[x-show="mobileMenuOpen"],
.dark .chase-public-nav #mobile-menu {
    background: #0d1f3d !important;
    border-top-color: #27416a !important;
}

.chase-public-nav #mobile-menu[data-open="true"] {
    display: block !important;
}

.chase-public-nav #mobile-menu[data-open="false"] {
    display: none !important;
}

.chase-public-nav #mobile-menu .absolute.inset-0 {
    pointer-events: none !important;
    z-index: 0 !important;
}

.chase-public-nav #mobile-menu .mobile-menu-content {
    position: relative;
    z-index: 1;
}

.chase-public-nav #mobile-menu .mobile-menu-link {
    display: flex !important;
    opacity: 1 !important;
    visibility: visible !important;
}

.chase-public-content {
    background: var(--chase-page);
}

.chase-public-content section {
    border-bottom: 1px solid #e3ebf7;
}

.dark .chase-public-content section {
    border-bottom-color: #1d3152;
}

.chase-public-footer {
    background: linear-gradient(150deg, var(--chase-blue-900), #0b458c) !important;
}

.chase-public-footer > .absolute {
    display: none !important;
}

.chase-public .mobile-fixed-buttons a {
    border-radius: 0 !important;
}

.chase-auth {
    background: radial-gradient(circle at left top, #ecf3ff 0%, #f6f8fd 55%, #eef3fb 100%);
}

.dark .chase-auth {
    background: radial-gradient(circle at left top, #0f2448 0%, #09142a 60%, #060d1f 100%);
}

.chase-auth-content {
    width: 100%;
}

.chase-auth-content .bg-white,
.chase-auth-content [class*="bg-white/90"],
.chase-auth-content [class*="bg-white/80"] {
    border: 1px solid var(--chase-border) !important;
    background: rgba(255, 255, 255, 0.97) !important;
}

.dark .chase-auth-content .dark\:bg-gray-700,
.dark .chase-auth-content [class*="dark:bg-gray-700"],
.dark .chase-auth-content .dark\:bg-gray-800,
.dark .chase-auth-content [class*="dark:bg-gray-800"] {
    border-color: #2b4267 !important;
    background: rgba(14, 29, 56, 0.96) !important;
}

.chase-auth-legacy {
    background: var(--chase-page) !important;
    color: var(--chase-text);
}

.chase-auth-legacy .text-dark {
    color: var(--chase-text) !important;
}

.chase-dashboard {
    background: var(--chase-page) !important;
}

.chase-dashboard-shell {
    background: var(--chase-page) !important;
}

.chase-dashboard-sidebar {
    background: linear-gradient(180deg, var(--chase-blue-900), #0c4f97) !important;
    border-right: 0 !important;
}

.dark .chase-dashboard-sidebar {
    background: linear-gradient(180deg, #05152f, #0a2d66) !important;
}

.chase-dashboard-sidebar h3,
.chase-dashboard-sidebar .text-gray-400,
.chase-dashboard-sidebar .text-gray-500,
.chase-dashboard-sidebar .dark\:text-gray-400,
.chase-dashboard-sidebar .dark\:text-gray-500 {
    color: rgba(222, 235, 255, 0.72) !important;
}

.chase-dashboard-sidebar a {
    color: #dfeaff !important;
}

.chase-dashboard-sidebar a.bg-gradient-to-r {
    background: linear-gradient(145deg, #0f64bd, #1c7ee0) !important;
    color: #ffffff !important;
}

.chase-dashboard-sidebar .from-gray-50,
.chase-dashboard-sidebar .to-gray-100,
.chase-dashboard-sidebar .bg-gray-100,
.chase-dashboard-sidebar .dark\:bg-gray-800 {
    background: rgba(255, 255, 255, 0.12) !important;
}

.chase-dashboard-header {
    background: rgba(255, 255, 255, 0.97) !important;
    border-bottom: 1px solid var(--chase-border) !important;
}

.dark .chase-dashboard-header {
    background: rgba(8, 22, 45, 0.96) !important;
    border-bottom-color: #244065 !important;
}

.chase-dashboard-content,
.chase-dashboard-content-mobile {
    background: var(--chase-page) !important;
}

.chase-legacy-dashboard {
    background: var(--chase-page) !important;
}

.chase-legacy-dashboard .sidenav {
    background: linear-gradient(180deg, var(--chase-blue-900), #0c4f97) !important;
    border-right: 0 !important;
}

.chase-legacy-dashboard .sidenav .btn-square {
    background: rgba(255, 255, 255, 0.08) !important;
    border: 1px solid rgba(255, 255, 255, 0.18) !important;
    border-radius: 12px !important;
    color: #dce9ff !important;
}

.chase-legacy-dashboard .sidenav .btn-square.active {
    background: #1c7ee0 !important;
    border-color: #1c7ee0 !important;
    color: #ffffff !important;
}

.chase-legacy-dashboard .navbar-main {
    background: #0c4f97 !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.24) !important;
}

.chase-legacy-dashboard .navbar-main .nav-link,
.chase-legacy-dashboard .navbar-main .navbar-brand,
.chase-legacy-dashboard .navbar-main .font-weight-bold {
    color: #eef4ff !important;
}

.chase-legacy-dashboard .page-content {
    background: var(--chase-page) !important;
}

.chase-legacy-dashboard .card {
    border-radius: 0.85rem !important;
    border: 1px solid var(--chase-border) !important;
    box-shadow: var(--chase-shadow) !important;
}

.chase-legacy-dashboard .btn-primary,
.chase-legacy-dashboard .btn.btn-primary {
    background: var(--chase-blue-700) !important;
    border-color: var(--chase-blue-700) !important;
    color: #ffffff !important;
}

.chase-legacy-dashboard .btn-primary:hover,
.chase-legacy-dashboard .btn.btn-primary:hover {
    background: var(--chase-blue-800) !important;
    border-color: var(--chase-blue-800) !important;
}

.chase-legacy-dashboard .form-control,
.chase-legacy-dashboard .custom-select {
    border: 1px solid var(--chase-border) !important;
    border-radius: 10px !important;
    background: #ffffff !important;
    color: #143458 !important;
}

.chase-theme table,
.chase-theme .table,
.chase-theme .dataTable {
    border-color: var(--chase-border) !important;
}

.chase-theme .table thead th,
.chase-theme .dataTable thead th {
    background: #edf3fd;
    color: #284d77;
    border-bottom: 1px solid var(--chase-border) !important;
}

@media (max-width: 1024px) {
    .chase-public-utility {
        display: none !important;
    }

    .chase-public-nav-main {
        min-height: 4rem;
    }
}
