/*
 * Kenan unified theme layer.
 * Loaded last so one theme contract covers the public website,
 * authentication screens, and all admin/company/investor workspaces.
 */
:root {
    --kenan-theme-bg: #f4f8ff;
    --kenan-theme-surface: #ffffff;
    --kenan-theme-surface-soft: #f7faff;
    --kenan-theme-surface-raised: #ffffff;
    --kenan-theme-text: #11234b;
    --kenan-theme-muted: #71809c;
    --kenan-theme-border: #e3ebf7;
    --kenan-theme-shadow: rgba(17, 54, 107, .10);
    --kenan-theme-topbar: rgba(255, 255, 255, .9);
    color-scheme: light;
}

html[data-bs-theme='dark'] {
    --kenan-theme-bg: #081426;
    --kenan-theme-surface: #0f2039;
    --kenan-theme-surface-soft: #132945;
    --kenan-theme-surface-raised: #172e4c;
    --kenan-theme-text: #e9f2ff;
    --kenan-theme-muted: #9dafc8;
    --kenan-theme-border: #29415f;
    --kenan-theme-shadow: rgba(0, 0, 0, .34);
    --kenan-theme-topbar: rgba(10, 25, 45, .91);
    --kenan-navy: #edf5ff;
    --kenan-navy-soft: #a8c9f6;
    --kenan-ice: #132b4a;
    --kenan-surface: #0f2039;
    --kenan-text: #e9f2ff;
    --kenan-muted: #9dafc8;
    --kenan-border: #29415f;
    --m-navy: #edf5ff;
    --m-navy2: #bdd5f5;
    --m-bg: #081426;
    --m-surface: #0f2039;
    --m-text: #e9f2ff;
    --m-muted: #9dafc8;
    --m-border: #29415f;
    --bs-body-color: #e9f2ff;
    --bs-body-color-rgb: 233, 242, 255;
    --bs-body-bg: #081426;
    --bs-body-bg-rgb: 8, 20, 38;
    --bs-secondary-color: #9dafc8;
    --bs-secondary-bg: #132945;
    --bs-tertiary-bg: #172e4c;
    --bs-border-color: #29415f;
    color-scheme: dark;
}

html,
body,
.app-main,
.app-content,
.market-nav,
.market-footer,
.card,
.stat-card,
.modal-content,
.dropdown-menu,
.form-control,
.form-select,
.input-group-text,
.table,
.list-group-item,
.accordion-item,
.offcanvas,
.toast {
    transition: color .2s ease, background-color .2s ease, border-color .2s ease, box-shadow .2s ease;
}

/* Theme switcher */
.kenan-theme-switcher { position: relative; flex: 0 0 auto; }
.kenan-theme-switcher > summary { list-style: none; }
.kenan-theme-switcher > summary::-webkit-details-marker { display: none; }
.kenan-theme-trigger {
    display: inline-flex;
    min-height: 40px;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    padding: .45rem .7rem;
    color: var(--kenan-theme-text);
    border: 1px solid var(--kenan-theme-border);
    border-radius: .78rem;
    background: var(--kenan-theme-surface);
    box-shadow: 0 5px 16px var(--kenan-theme-shadow);
    cursor: pointer;
    font: inherit;
    font-size: .76rem;
    font-weight: 800;
    user-select: none;
}
.kenan-theme-trigger:hover,
.kenan-theme-trigger:focus-visible {
    color: #49cbd5;
    border-color: rgba(24, 201, 210, .48);
    outline: 0;
}
.kenan-theme-symbol {
    display: inline-grid;
    width: 1.2rem;
    place-items: center;
    color: #0876e8;
    font-size: 1.05rem;
    line-height: 1;
}
.kenan-theme-chevron {
    color: var(--kenan-theme-muted);
    font-size: .72rem;
    transition: transform .2s ease;
}
.kenan-theme-switcher[open] .kenan-theme-chevron { transform: rotate(180deg); }
.kenan-theme-menu {
    position: absolute;
    z-index: 1090;
    top: calc(100% + .5rem);
    inset-inline-end: 0;
    width: 168px;
    padding: .4rem;
    border: 1px solid var(--kenan-theme-border);
    border-radius: .9rem;
    background: var(--kenan-theme-surface-raised);
    box-shadow: 0 18px 44px var(--kenan-theme-shadow);
}
.kenan-theme-option {
    display: grid;
    width: 100%;
    grid-template-columns: 1.25rem 1fr 1rem;
    gap: .5rem;
    align-items: center;
    padding: .58rem .65rem;
    color: var(--kenan-theme-text);
    border: 0;
    border-radius: .62rem;
    background: transparent;
    font: inherit;
    font-size: .78rem;
    font-weight: 700;
    text-align: start;
}
.kenan-theme-option:hover,
.kenan-theme-option:focus-visible {
    color: var(--kenan-theme-text);
    outline: 0;
    background: rgba(8, 118, 232, .12);
}
.kenan-theme-option i { color: #18c9d2; font-style: normal; opacity: 0; }
.kenan-theme-option.active {
    color: #0876e8;
    background: rgba(8, 118, 232, .11);
}
.kenan-theme-option.active i { opacity: 1; }
.kenan-theme-floating {
    position: fixed;
    z-index: 1080;
    top: max(.8rem, env(safe-area-inset-top));
    inset-inline-end: max(.8rem, env(safe-area-inset-right));
}
.auth-language-switch { display: flex; align-items: center; gap: .5rem; }

/* Shared application shell */
html[data-bs-theme='dark'],
html[data-bs-theme='dark'] body {
    color: var(--kenan-theme-text);
    background:
        radial-gradient(circle at 88% -10%, rgba(24, 201, 210, .10), transparent 23rem),
        radial-gradient(circle at 0 100%, rgba(8, 118, 232, .10), transparent 28rem),
        var(--kenan-theme-bg) !important;
}
html[data-bs-theme='dark'] .app-main { background: transparent; }
html[data-bs-theme='dark'] .app-topbar {
    border-bottom-color: var(--kenan-theme-border);
    background: var(--kenan-theme-topbar);
    box-shadow: 0 5px 24px rgba(0, 0, 0, .2);
}
html[data-bs-theme='dark'] .topbar-divider { background: var(--kenan-theme-border); }
html[data-bs-theme='dark'] .topbar-search .form-control,
html[data-bs-theme='dark'] .topbar-search .form-control:focus,
html[data-bs-theme='dark'] .topbar-action,
html[data-bs-theme='dark'] .sidebar-toggle,
html[data-bs-theme='dark'] .topbar-user {
    color: var(--kenan-theme-text);
    border-color: var(--kenan-theme-border);
    background: var(--kenan-theme-surface-soft);
}
html[data-bs-theme='dark'] .topbar-action:hover,
html[data-bs-theme='dark'] .sidebar-toggle:hover,
html[data-bs-theme='dark'] .topbar-user:hover {
    color: #66dce3;
    border-color: rgba(24, 201, 210, .46);
    background: var(--kenan-theme-surface-raised);
}
html[data-bs-theme='dark'] :is(.card,.stat-card,.auth-card,.modal-content,.dropdown-menu,.list-group-item,.accordion-item,.offcanvas,.toast) {
    color: var(--kenan-theme-text);
    border-color: var(--kenan-theme-border);
    background-color: var(--kenan-theme-surface);
    box-shadow: 0 16px 38px var(--kenan-theme-shadow);
}
html[data-bs-theme='dark'] :is(.card-header,.card-footer,.modal-header,.modal-footer,.accordion-button) {
    color: var(--kenan-theme-text);
    border-color: var(--kenan-theme-border);
    background-color: transparent;
}
html[data-bs-theme='dark'] .accordion-button:not(.collapsed) {
    color: #6adce3;
    background: rgba(8, 118, 232, .13);
}
html[data-bs-theme='dark'] :is(h1,h2,h3,h4,h5,h6,.page-heading h1,.page-heading .h4,.stat-card .stat-value) {
    color: var(--kenan-theme-text);
}
html[data-bs-theme='dark'] :is(.text-muted,.page-heading p,.form-text) { color: var(--kenan-theme-muted) !important; }
html[data-bs-theme='dark'] :is(.form-label,.col-form-label) { color: #c5d5e9; }
html[data-bs-theme='dark'] :is(.form-control,.form-select,.input-group-text) {
    color: var(--kenan-theme-text);
    border-color: var(--kenan-theme-border);
    background-color: var(--kenan-theme-surface-soft);
}
html[data-bs-theme='dark'] :is(.form-control,.form-select)::placeholder { color: #8295af; }
html[data-bs-theme='dark'] :is(.form-control,.form-select):focus {
    color: var(--kenan-theme-text);
    border-color: rgba(24, 201, 210, .6);
    background-color: var(--kenan-theme-surface-raised);
    box-shadow: 0 0 0 .2rem rgba(24, 201, 210, .12);
}
html[data-bs-theme='dark'] .form-control:disabled,
html[data-bs-theme='dark'] .form-select:disabled {
    color: #8295af;
    background-color: #0b1a30;
}
html[data-bs-theme='dark'] .dropdown-divider { border-color: var(--kenan-theme-border); }
html[data-bs-theme='dark'] .dropdown-item { color: var(--kenan-theme-text); }
html[data-bs-theme='dark'] .dropdown-item:hover,
html[data-bs-theme='dark'] .dropdown-item:focus {
    color: var(--kenan-theme-text);
    background: rgba(8, 118, 232, .14);
}
html[data-bs-theme='dark'] .dropdown-item.active { color: #fff; background: #0876e8; }
html[data-bs-theme='dark'] .btn-light,
html[data-bs-theme='dark'] .btn-outline-secondary,
html[data-bs-theme='dark'] .btn-outline-primary {
    color: #d8e8fb;
    border-color: var(--kenan-theme-border);
    background: var(--kenan-theme-surface-soft);
}
html[data-bs-theme='dark'] .btn-light:hover,
html[data-bs-theme='dark'] .btn-outline-secondary:hover,
html[data-bs-theme='dark'] .btn-outline-primary:hover {
    color: #fff;
    border-color: #0876e8;
    background: #0876e8;
}
html[data-bs-theme='dark'] .table {
    --bs-table-color: var(--kenan-theme-text);
    --bs-table-bg: transparent;
    --bs-table-border-color: var(--kenan-theme-border);
    --bs-table-striped-bg: rgba(255,255,255,.025);
    --bs-table-hover-bg: rgba(8,118,232,.10);
}
html[data-bs-theme='dark'] .table thead th,
html[data-bs-theme='dark'] .table-light {
    --bs-table-bg: var(--kenan-theme-surface-soft);
    color: #aec0d8;
    border-color: var(--kenan-theme-border);
    background: var(--kenan-theme-surface-soft);
}
html[data-bs-theme='dark'] :is(.border,.border-top,.border-bottom,.border-start,.border-end) {
    border-color: var(--kenan-theme-border) !important;
}
html[data-bs-theme='dark'] :is(.bg-white,.bg-light) {
    color: var(--kenan-theme-text) !important;
    background-color: var(--kenan-theme-surface-soft) !important;
}
html[data-bs-theme='dark'] .nav-tabs { border-color: var(--kenan-theme-border); }
html[data-bs-theme='dark'] .nav-tabs .nav-link { color: var(--kenan-theme-muted); }
html[data-bs-theme='dark'] .nav-tabs .nav-link.active {
    color: #63d8e0;
    border-color: var(--kenan-theme-border) var(--kenan-theme-border) var(--kenan-theme-surface);
    background: var(--kenan-theme-surface);
}
html[data-bs-theme='dark'] .pagination {
    --bs-pagination-color: #b9cbe2;
    --bs-pagination-bg: var(--kenan-theme-surface);
    --bs-pagination-border-color: var(--kenan-theme-border);
    --bs-pagination-hover-bg: var(--kenan-theme-surface-raised);
    --bs-pagination-hover-border-color: #0876e8;
}
html[data-bs-theme='dark'] .kenan-live-sync {
    color: var(--kenan-theme-muted);
    border-color: var(--kenan-theme-border);
    background: rgba(15,32,57,.92);
}

/* Authentication */
html[data-bs-theme='dark'] body.auth-page {
    background:
        radial-gradient(circle at 12% 18%, rgba(24,201,210,.18), transparent 22rem),
        radial-gradient(circle at 91% 90%, rgba(8,118,232,.18), transparent 28rem),
        linear-gradient(135deg,#050d19 0%,#081a31 52%,#0c2c54 100%) !important;
}
html[data-bs-theme='dark'] .auth-card {
    border-color: rgba(113,155,204,.25);
    background: rgba(15,32,57,.96);
}
html[data-bs-theme='dark'] .auth-card-divider { border-color: var(--kenan-theme-border); }

/* Public markets and landing pages */
html[data-bs-theme='dark'] body.market-home,
html[data-bs-theme='dark'] body.landing-page {
    color: var(--kenan-theme-text);
    background:
        radial-gradient(circle at 92% 0, rgba(24,201,210,.09), transparent 24rem),
        radial-gradient(circle at 0 45%, rgba(8,118,232,.10), transparent 28rem),
        var(--kenan-theme-bg) !important;
}
html[data-bs-theme='dark'] :is(.market-nav,.landing-nav) {
    border-color: var(--kenan-theme-border);
    background: rgba(10,25,45,.92);
    box-shadow: 0 7px 24px rgba(0,0,0,.24);
}
html[data-bs-theme='dark'] :is(.market-logo-wrap,.landing-brand-name,.market-hero h1,.section-head h2,.impact-heading h2,.global-intro h2,.energy-title-wrap h2) {
    color: var(--kenan-theme-text);
}
html[data-bs-theme='dark'] :is(.market-nav .nav-link,.landing-nav .nav-link) { color: #b2c5dd; }
html[data-bs-theme='dark'] :is(.market-nav .nav-link,.landing-nav .nav-link):hover { color: #61d9e0; }
html[data-bs-theme='dark'] :is(.market-language,.landing-language-switch) {
    border-color: var(--kenan-theme-border);
    background: var(--kenan-theme-surface-soft);
}
html[data-bs-theme='dark'] :is(.market-tape,.market-footer,.landing-footer) {
    color: var(--kenan-theme-muted);
    border-color: var(--kenan-theme-border);
    background: var(--kenan-theme-surface);
}
html[data-bs-theme='dark'] :is(.hero-fact,.terminal-shell,.terminal-top,.asset-chip,.market-card,.data-note,.libya-market-card,.libya-flag-chip,.impact-card,.context-badge,.local-instruments-empty,.issuer-command-card,.issuer-step,.offer-type,.reference-card,.libya-cta-card) {
    color: var(--kenan-theme-text);
    border-color: var(--kenan-theme-border);
    background: var(--kenan-theme-surface);
    box-shadow: 0 16px 38px var(--kenan-theme-shadow);
}
html[data-bs-theme='dark'] :is(.terminal-top,.market-card-head) {
    border-color: var(--kenan-theme-border);
    background: linear-gradient(180deg,var(--kenan-theme-surface-raised),var(--kenan-theme-surface));
}
html[data-bs-theme='dark'] :is(.terminal-body,.widget-body,.tradingview-widget-container__widget:empty) {
    background: linear-gradient(180deg,#0d1c32,#102641);
}
html[data-bs-theme='dark'] :is(.market-secondary,.app-store-button) {
    color: var(--kenan-theme-text);
    border-color: var(--kenan-theme-border);
    background: var(--kenan-theme-surface-raised);
}
html[data-bs-theme='dark'] :is(.impact-tag,.market-card-icon,.data-note .note-icon,.asset-chip i) {
    color: #5ed7df;
    background: rgba(24,201,210,.10);
}
html[data-bs-theme='dark'] :is(.hero-fact strong,.asset-chip strong,.data-note h3,.market-card-head h3,.libya-market-card h3,.libya-market-card .price,.impact-card h3) {
    color: var(--kenan-theme-text);
}
html[data-bs-theme='dark'] :is(.market-hero p,.section-head p,.hero-fact span,.asset-chip small,.data-note p,.market-card-head p,.libya-market-card .meta,.impact-card p,.impact-heading-copy) {
    color: var(--kenan-theme-muted);
}
html[data-bs-theme='dark'] .modal-backdrop {
    --bs-backdrop-bg: #020813;
    --bs-backdrop-opacity: .72;
}

/* Standalone document verification */
html[data-bs-theme='dark'] .wrap > .card {
    color: var(--kenan-theme-text);
    border-color: var(--kenan-theme-border);
    background: var(--kenan-theme-surface);
}
html[data-bs-theme='dark'] .wrap :is(.head,.body) { border-color: var(--kenan-theme-border); }
html[data-bs-theme='dark'] .wrap :is(.muted,.label) { color: var(--kenan-theme-muted); }
html[data-bs-theme='dark'] .wrap :is(.code,.hint) {
    color: var(--kenan-theme-text);
    border-color: var(--kenan-theme-border);
    background: var(--kenan-theme-surface-soft);
}

@media (max-width: 575.98px) {
    .kenan-theme-label,
    .kenan-theme-chevron { display: none; }
    .kenan-theme-trigger { width: 40px; padding-inline: 0; }
}
@media (prefers-reduced-motion: reduce) {
    html,body,.app-main,.app-content,.market-nav,.market-footer,.card,.stat-card,.modal-content,.dropdown-menu,.form-control,.form-select,.input-group-text,.table,.list-group-item,.accordion-item,.offcanvas,.toast {
        transition: none !important;
    }
}

/* Investor dashboard extensions */
html[data-bs-theme='dark'] :is(.account-status-strip,.dashboard-metric-card,.dashboard-panel,.price-data-note,.dividend-totals) {
    color: var(--kenan-theme-text);
    border-color: var(--kenan-theme-border);
    background: var(--kenan-theme-surface);
    box-shadow: 0 14px 34px var(--kenan-theme-shadow);
}
html[data-bs-theme='dark'] :is(.allocation-chart,.performance-stat-grid,.performance-stat,.asset-legend-row,.recent-trade-row,.dashboard-empty-state,.marked-position-row,.monitoring-row,.conditional-monitoring-section,.dividend-row) {
    border-color: var(--kenan-theme-border);
}
html[data-bs-theme='dark'] .allocation-chart {
    background: linear-gradient(to top,rgba(104,150,205,.055) 1px,transparent 1px);
    background-size: 100% 25%;
}
html[data-bs-theme='dark'] .asset-donut::after {
    background: var(--kenan-theme-surface);
    box-shadow: 0 0 0 1px var(--kenan-theme-border);
}
html[data-bs-theme='dark'] :is(.dashboard-orders-table thead th,.price-data-note) {
    color: var(--kenan-theme-muted);
    background: var(--kenan-theme-surface-soft);
}
html[data-bs-theme='dark'] :is(.recent-trade-icon,.dashboard-empty-icon,.monitoring-section-head > strong) {
    color: #61d9e0;
    background: rgba(24,201,210,.10);
}
html[data-bs-theme='dark'] .dashboard-readiness-banner {
    color: #f4d78d;
    border-color: rgba(233,169,45,.28);
    background: linear-gradient(100deg,rgba(121,82,9,.26),var(--kenan-theme-surface));
}
html[data-bs-theme='dark'] .readiness-icon {
    color: #f0bf55;
    background: rgba(233,169,45,.13);
}
html[data-bs-theme='dark'] .readiness-copy span { color: #c8b482; }
html[data-bs-theme='dark'] .dashboard-automation-banner {
    color: #8be9ee;
    border-color: rgba(24,201,210,.28);
    background: linear-gradient(100deg,rgba(24,201,210,.12),var(--kenan-theme-surface));
}
html[data-bs-theme='dark'] .price-state-chip.is-stale {
    color: #f1c96d;
    background: rgba(233,169,45,.14);
}
html[data-bs-theme='dark'] .price-state-chip.is-undated {
    color: #b7c8df;
    background: rgba(126,153,190,.14);
}
html[data-bs-theme='dark'] .price-state-chip.is-unavailable {
    color: #e7a9c2;
    background: rgba(220,77,97,.14);
}
html[data-bs-theme='dark'] .dividend-totals {
    background: linear-gradient(135deg,var(--kenan-theme-surface-soft),rgba(24,201,210,.07));
}
html[data-bs-theme='dark'] .dividend-totals > div + div { border-color: var(--kenan-theme-border); }

/* The trading terminal is dark by design; only its light review controls need adaptation. */
html[data-bs-theme='dark'] :is(.terminal-review-item,.terminal-symbol-select option) {
    color: var(--kenan-theme-text);
    border-color: var(--kenan-theme-border);
    background: var(--kenan-theme-surface-soft);
}
html[data-bs-theme='dark'] :is(.terminal-review-label,.terminal-review-value) {
    color: var(--kenan-theme-text);
}


/* Public website typography refinement */
body.market-home {
    font-size: .9rem;
}
.market-home .market-brand-copy {
    font-size: .94rem;
}
.market-home .market-brand-copy small {
    font-size: .56rem;
}
.market-home .market-nav .nav-link {
    font-size: .74rem;
}
.market-home .market-language a,
.market-home .market-login,
.market-home .kenan-theme-trigger {
    font-size: .68rem;
}
.market-home .market-hero h1 {
    font-size: clamp(1.8rem, 3.45vw, 3.35rem);
    line-height: 1.14;
}
.market-home .market-hero p {
    font-size: .88rem;
    line-height: 1.85;
}
.market-home .hero-actions .btn {
    min-height: 43px;
    font-size: .76rem;
}
.market-home .hero-fact strong {
    font-size: .68rem;
}
.market-home .section-head h2,
.market-home .impact-heading h2,
.market-home .global-intro h2,
.market-home .energy-title-wrap h2 {
    font-size: clamp(1.3rem, 2.15vw, 1.85rem);
}
.market-home :is(.section-head p,.impact-heading-copy,.global-intro p,.energy-title-wrap p) {
    font-size: .74rem;
    line-height: 1.85;
}
.market-home :is(.market-card-head h3,.libya-market-card h3,.impact-card h3) {
    font-size: .84rem;
}
.market-home :is(.market-card-head p,.libya-market-card .meta,.impact-card p) {
    font-size: .68rem;
}
.market-home .app-download-card h2 {
    font-size: clamp(1.3rem, 2.25vw, 1.8rem);
}
.market-home .app-download-card p {
    font-size: .8rem;
}
.market-home .market-cta h2 {
    font-size: 1.18rem;
}
.market-home .market-cta p,
.market-home .market-footer {
    font-size: .66rem;
}

@media (max-width: 767.98px) {
    body.market-home {
        font-size: .87rem;
    }
    .market-home .market-hero h1 {
        font-size: 1.85rem;
    }
    .market-home .market-hero p {
        font-size: .82rem;
    }
    .market-home .section-head h2,
    .market-home .impact-heading h2,
    .market-home .global-intro h2,
    .market-home .energy-title-wrap h2 {
        font-size: 1.22rem;
    }
}


/* Portal manuals */
html[data-bs-theme='dark'] .kenan-guide :is(.guide-search,.quick-card,.guide-card,.tips-card,.latest-note,.permission-note,.guide-card-footer) {
    color: var(--kenan-theme-text);
    border-color: var(--kenan-theme-border);
    background: var(--kenan-theme-surface);
    box-shadow: 0 14px 34px var(--kenan-theme-shadow);
}
html[data-bs-theme='dark'] .kenan-guide :is(.guide-section-title,.quick-card strong,.guide-card h3,.latest-note strong,.tips-card strong) {
    color: var(--kenan-theme-text);
}
html[data-bs-theme='dark'] .kenan-guide :is(.guide-card p,.quick-card span,.tips-card p,.permission-note,.latest-note p) {
    color: var(--kenan-theme-muted);
}
html[data-bs-theme='dark'] .kenan-guide :is(.quick-card-icon,.guide-card-icon) {
    color: #61d9e0;
    background: rgba(24,201,210,.10);
}
html[data-bs-theme='dark'] .kenan-guide .guide-search input {
    color: var(--kenan-theme-text);
    border-color: var(--kenan-theme-border);
    background: var(--kenan-theme-surface-soft);
}
