:root {
    --kenjac-blue: #1958A2;
    --kenjac-blue-dark: #123F75;
    --kenjac-blue-soft: #DCEEFF;
    --kenjac-blue-mist: #EEF7FF;
    --kenjac-blue-panel: #F8FBFF;
    --kenjac-gold: #F2B31B;
    --kenjac-gold-dark: #B87900;
    --kenjac-gold-soft: #FFF7DA;
    --kenjac-ink: #172033;
    --kenjac-muted: #667085;
    --kenjac-canvas: #EAF4FF;
    --kenjac-line: #BCD3EB;
}

body {
    background:
        radial-gradient(circle at 92% 6%, rgba(242, 179, 27, .12), transparent 24rem),
        linear-gradient(145deg, #F5FAFF 0%, var(--kenjac-canvas) 52%, #E2F0FF 100%);
    background-attachment: fixed;
    color: var(--kenjac-ink);
}

::selection {
    background: var(--kenjac-gold);
    color: #172033;
}

:focus-visible {
    outline: 3px solid rgba(242, 179, 27, .48);
    outline-offset: 2px;
}

.kenjac-brand-lockup {
    display: flex;
    align-items: center;
    gap: .75rem;
    min-width: 0;
}

.kenjac-brand-mark {
    width: 2.5rem;
    height: 2.5rem;
    object-fit: contain;
    flex: 0 0 auto;
}

.kenjac-brand-name {
    color: var(--kenjac-ink);
    font-weight: 800;
    letter-spacing: .01em;
}

.kenjac-brand-section {
    color: var(--kenjac-blue);
    font-size: .625rem;
    font-weight: 800;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.kenjac-module-sidebar {
    background:
        radial-gradient(circle at 18% 0%, rgba(242, 179, 27, .20), transparent 26%),
        linear-gradient(180deg, #F8FCFF 0%, #DCEEFF 100%);
    border-color: var(--kenjac-line);
    color: var(--kenjac-ink);
    position: sticky;
    top: 0;
    height: 100vh;
    overflow: hidden;
}

.kenjac-module-sidebar a {
    color: var(--kenjac-muted);
    transition: background-color .18s ease, color .18s ease, transform .18s ease;
}

.kenjac-module-sidebar a:hover {
    background: rgba(255, 255, 255, .72);
    color: var(--kenjac-blue);
    box-shadow: inset 3px 0 0 var(--kenjac-gold);
}

.kenjac-module-sidebar a[aria-current="page"],
.kenjac-module-sidebar .kenjac-active {
    background: var(--kenjac-blue);
    color: #FFFFFF;
    box-shadow: 0 8px 20px rgba(25, 88, 162, .18);
}

.kenjac-module-sidebar nav {
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: #8DB7DE transparent;
}

.kenjac-finance-group {
    display: flex;
    align-items: center;
    gap: .7rem;
    padding: .75rem;
    background: rgba(255, 255, 255, .72);
    border-color: var(--kenjac-line);
    color: var(--kenjac-ink);
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .035em;
    text-transform: uppercase;
}

.kenjac-finance-group-icon {
    display: inline-grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    border-radius: .6rem;
    background: var(--kenjac-blue);
    color: #fff;
}

/* Finance navigation mirrors the Node module hierarchy and interaction. */
.kenjac-sidebar-section {
    overflow: hidden;
}

.kenjac-sidebar-section-toggle {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .625rem;
    padding: .625rem .75rem;
    border: 1px solid rgba(25, 88, 162, .16);
    border-radius: .625rem;
    background: rgba(255, 255, 255, .58);
    color: var(--kenjac-ink);
    cursor: pointer;
    transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}

.kenjac-sidebar-section-toggle:hover {
    background: rgba(255, 255, 255, .86);
    border-color: rgba(25, 88, 162, .28);
    color: var(--kenjac-blue);
}

.kenjac-section-icon {
    width: 1.25rem;
    color: var(--kenjac-blue);
    text-align: center;
    font-size: .875rem;
}

.kenjac-section-title {
    color: inherit;
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .025em;
    text-transform: uppercase;
    white-space: nowrap;
}

.kenjac-section-chevron {
    color: #6E88A2;
    font-size: .625rem;
    transition: transform .2s ease, color .2s ease;
}

.kenjac-sidebar-section[data-open="true"] .kenjac-section-chevron {
    color: var(--kenjac-gold-dark);
    transform: rotate(180deg);
}

.kenjac-section-panel {
    display: flex;
    flex-direction: column;
    gap: .125rem;
    flex: 1 1 auto;
    min-height: 0;
    width: 100%;
    padding-bottom: .4rem;
}

.kenjac-section-panel.hidden {
    display: none;
}

.kenjac-subnav-link {
    display: flex !important;
    align-items: center;
    gap: .5rem;
    flex: 0 0 auto;
    width: 100%;
    box-sizing: border-box;
    min-height: 1.9rem;
    padding: .375rem .75rem .375rem 2.5rem;
    border-left: 2px solid transparent;
    border-radius: .5rem;
    font-size: .6875rem;
    line-height: 1.25;
    transition: all .2s ease;
}

.kenjac-subnav-link > span {
    white-space: nowrap;
}

.kenjac-module-link {
    min-height: 1.9rem;
}

.kenjac-module-link-icon {
    width: 1rem;
    color: #6E88A2;
    text-align: center;
}

.kenjac-module-link:hover .kenjac-module-link-icon {
    color: var(--kenjac-blue);
}

.kenjac-module-link.kenjac-active .kenjac-module-link-icon {
    color: var(--kenjac-gold);
}

.kenjac-module-group-label {
    margin: 1rem .65rem .35rem;
    color: var(--kenjac-blue);
    font-size: .57rem;
    font-weight: 900;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.kenjac-module-badge {
    padding: .16rem .35rem;
    border-radius: 999px;
    background: var(--kenjac-gold-soft);
    color: var(--kenjac-gold-dark);
    font-size: .48rem;
    font-weight: 900;
    letter-spacing: .06em;
}

.kenjac-module-sidebar + main {
    flex: 1 1 auto;
    min-width: 0;
    width: auto !important;
    margin-left: 0 !important;
    background:
        radial-gradient(circle at 96% 4%, rgba(242, 179, 27, .10), transparent 20rem),
        linear-gradient(145deg, #F5FAFF 0%, #EAF4FF 62%, #E2F0FF 100%) !important;
}

.kenjac-accent-line {
    height: 3px;
    background: linear-gradient(90deg, var(--kenjac-blue) 0 72%, var(--kenjac-gold) 72% 100%);
}

/*
 * Finance Node compatibility palette.
 * Legacy dark utility classes are translated into the official KENJAC
 * light-blue/gold system after Tailwind and page-level Node styles load.
 */
body,
main,
body.bg-slate-50,
body.bg-slate-900,
body.bg-slate-950,
main.bg-slate-50,
main.bg-slate-900,
main.bg-slate-950 {
    background-color: var(--kenjac-canvas) !important;
    color: var(--kenjac-ink) !important;
}

.glass,
.glass-panel,
.bg-white,
.bg-slate-950,
.bg-slate-900,
.bg-slate-900\/80,
.bg-slate-900\/60,
.bg-slate-900\/50,
.bg-slate-800,
.bg-slate-800\/50,
.bg-slate-800\/30,
[class*="bg-[#020617]"],
[class*="bg-[#0f172a]"] {
    background: rgba(248, 251, 255, .94) !important;
    border-color: var(--kenjac-line) !important;
    color: var(--kenjac-ink) !important;
    box-shadow: 0 10px 28px rgba(25, 88, 162, .08);
}

.bg-slate-50,
.bg-slate-100,
.bg-slate-700,
.bg-slate-600,
.bg-white\/5,
.bg-white\/10 {
    background-color: var(--kenjac-blue-soft) !important;
    color: var(--kenjac-ink) !important;
}

.border-white\/5,
.border-white\/10,
.border-slate-200,
.border-slate-700,
.border-slate-800,
.divide-white\/5 > :not([hidden]) ~ :not([hidden]),
.divide-white\/10 > :not([hidden]) ~ :not([hidden]) {
    border-color: var(--kenjac-line) !important;
}

.text-white,
.text-slate-50,
.text-slate-100,
.text-slate-200,
.text-slate-300 {
    color: var(--kenjac-ink) !important;
}

.text-teal-300,
.text-teal-400,
.text-blue-400 {
    color: var(--kenjac-blue) !important;
}

.bg-teal-500,
.bg-teal-600,
.bg-blue-500,
.bg-blue-600 {
    background-color: var(--kenjac-blue) !important;
    color: #FFFFFF !important;
}

[class*="bg-[#1958A2]"][class*="text-white"],
[class*="bg-[#123F75]"][class*="text-white"],
.kenjac-module-sidebar a[aria-current="page"],
.kenjac-module-sidebar .kenjac-active {
    color: #FFFFFF !important;
}

.bg-amber-500,
.bg-amber-600 {
    background-color: var(--kenjac-gold) !important;
    color: var(--kenjac-ink) !important;
}

input,
select,
textarea,
.field,
.inp,
.modal-input {
    background-color: #FFFFFF !important;
    border-color: var(--kenjac-line) !important;
    color: var(--kenjac-ink) !important;
}

input:focus,
select:focus,
textarea:focus {
    border-color: var(--kenjac-blue) !important;
    box-shadow: 0 0 0 3px rgba(242, 179, 27, .22) !important;
}
