/* Data+ admin visual system — mirrors the public landing page. */
:root {
    --dp-blue: #377af8;
    --dp-blue-deep: #1f5fe0;
    --dp-blue-soft: #eaf2ff;
    --dp-violet: #7c3aed;
    --dp-ink: #0f172a;
    --dp-muted: #5f6f86;
    --dp-line: #e5ebf5;
    --dp-surface: rgba(255, 255, 255, .94);
    --dp-shadow-sm: 0 8px 24px rgba(15, 23, 42, .055);
    --dp-shadow-md: 0 18px 48px rgba(15, 23, 42, .09);
}

body.fi-body {
    color: var(--dp-ink);
    background:
        radial-gradient(circle at 18% 0%, rgba(55, 122, 248, .10), transparent 0 25rem),
        radial-gradient(circle at 92% 8%, rgba(124, 58, 237, .075), transparent 0 22rem),
        linear-gradient(180deg, #fbfdff 0%, #f4f7fc 55%, #f7f9fd 100%);
    background-attachment: fixed;
}

body.fi-body::before {
    content: "";
    position: fixed;
    z-index: 0;
    inset: 0;
    pointer-events: none;
    opacity: .55;
    background-image:
        linear-gradient(90deg, rgba(55, 122, 248, .035) 1px, transparent 1px),
        linear-gradient(180deg, rgba(55, 122, 248, .03) 1px, transparent 1px);
    background-size: 34px 34px;
    mask-image: linear-gradient(180deg, rgba(0,0,0,.5), transparent 72%);
}

.fi-layout,
.fi-main-ctn,
.fi-main,
.fi-topbar,
.fi-sidebar { position: relative; }

/* Glass top bar and a quieter, premium navigation rail. */
.fi-topbar > nav {
    min-height: 4.25rem;
    border-bottom: 1px solid rgba(229, 235, 245, .92) !important;
    background: rgba(255, 255, 255, .82) !important;
    box-shadow: 0 6px 24px rgba(15, 23, 42, .035) !important;
    backdrop-filter: saturate(175%) blur(16px);
}

.fi-sidebar {
    border-right: 1px solid rgba(229, 235, 245, .92) !important;
    background: rgba(255, 255, 255, .88) !important;
    box-shadow: 12px 0 36px rgba(15, 23, 42, .035) !important;
    backdrop-filter: blur(18px);
}

.fi-sidebar-header {
    min-height: 4.25rem;
    border-bottom: 1px solid rgba(229, 235, 245, .8) !important;
    background: transparent !important;
    box-shadow: none !important;
}

.fi-logo { max-height: 2rem !important; }

.fi-sidebar-group-label {
    color: #8290a6 !important;
    font-size: .65rem !important;
    font-weight: 800 !important;
    letter-spacing: .12em !important;
    text-transform: uppercase;
}

.fi-sidebar-item-button {
    margin: 1px 8px;
    border-radius: 12px !important;
    transition: transform .18s ease, background-color .18s ease, box-shadow .18s ease;
}

.fi-sidebar-item-button:hover {
    transform: translateX(2px);
    background: #f2f6ff !important;
}

.fi-sidebar-item.fi-active .fi-sidebar-item-button {
    color: var(--dp-blue-deep) !important;
    background: linear-gradient(135deg, #edf4ff, #f5f0ff) !important;
    box-shadow: inset 3px 0 0 var(--dp-blue), 0 6px 18px rgba(55, 122, 248, .08);
}

.fi-sidebar-item.fi-active .fi-sidebar-item-icon { color: var(--dp-blue) !important; }

/* Page hierarchy inspired by the landing hero. */
.fi-main { z-index: 1; }

.fi-header-heading {
    color: var(--dp-ink) !important;
    font-weight: 800 !important;
    letter-spacing: -.035em !important;
}

.fi-header-subheading { color: var(--dp-muted) !important; }

.fi-header::after {
    content: "";
    display: block;
    width: 4.5rem;
    height: 3px;
    margin-top: .8rem;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--dp-blue), #70a6ff, var(--dp-violet));
}

/* Cards and form surfaces. */
.fi-section,
.fi-ta-ctn,
.fi-wi-stats-overview-stat,
.fi-fo-component-ctn > .fi-section {
    border: 1px solid rgba(222, 231, 244, .95) !important;
    border-radius: 20px !important;
    background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(250,252,255,.96)) !important;
    box-shadow: var(--dp-shadow-sm) !important;
}

.fi-section {
    position: relative;
    overflow: hidden;
}

.fi-section::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 2px;
    pointer-events: none;
    background: linear-gradient(90deg, rgba(55,122,248,.85), rgba(124,58,237,.42), transparent 68%);
}

.fi-section-header {
    border-bottom-color: rgba(229, 235, 245, .85) !important;
    background: linear-gradient(180deg, rgba(249,251,255,.92), rgba(255,255,255,.75));
}

.fi-section-header-heading {
    color: var(--dp-ink) !important;
    font-weight: 750 !important;
    letter-spacing: -.015em;
}

.fi-section-header-description { color: var(--dp-muted) !important; }

.fi-ta-ctn { overflow: hidden; }

.fi-ta-header,
.fi-ta-header-toolbar {
    border-color: var(--dp-line) !important;
    background: rgba(255,255,255,.72) !important;
}

.fi-ta-table thead { background: linear-gradient(180deg, #f8faff, #f3f7fd) !important; }
.fi-ta-header-cell-label { color: #42516a !important; font-weight: 750 !important; }
.fi-ta-row { transition: background-color .16s ease, transform .16s ease; }
.fi-ta-row:hover { background: rgba(234, 242, 255, .48) !important; }

/* Inputs and filters are softer and more deliberate. */
.fi-input-wrp,
.fi-select-input,
.fi-fo-field-wrp input,
.fi-fo-field-wrp textarea,
.fi-fo-field-wrp select {
    border-radius: 12px !important;
}

.fi-input-wrp {
    border-color: #dce5f2 !important;
    background: rgba(255,255,255,.92) !important;
    box-shadow: 0 2px 8px rgba(15,23,42,.025) !important;
}

.fi-input-wrp:focus-within {
    border-color: rgba(55,122,248,.6) !important;
    box-shadow: 0 0 0 4px rgba(55,122,248,.10) !important;
}

/* Landing-style calls to action. */
.fi-btn { border-radius: 999px !important; font-weight: 750 !important; }
.fi-btn.fi-color-primary {
    border: 0 !important;
    color: #fff !important;
    background: linear-gradient(135deg, var(--dp-blue), #5d97ff) !important;
    box-shadow: 0 10px 24px rgba(55,122,248,.20) !important;
}
.fi-btn.fi-color-primary:hover {
    transform: translateY(-1px);
    background: linear-gradient(135deg, var(--dp-blue-deep), #4c86f1) !important;
    box-shadow: 0 14px 28px rgba(55,122,248,.25) !important;
}

.fi-btn.fi-color-gray {
    border-color: #dbe4f0 !important;
    background: rgba(255,255,255,.92) !important;
    box-shadow: 0 6px 16px rgba(15,23,42,.045) !important;
}

/* Dashboard metric cards. */
.fi-wi-stats-overview-stat {
    position: relative;
    overflow: hidden;
    transition: transform .2s ease, box-shadow .2s ease;
}
.fi-wi-stats-overview-stat:hover {
    transform: translateY(-3px);
    box-shadow: var(--dp-shadow-md) !important;
}
.fi-wi-stats-overview-stat::after {
    content: "";
    position: absolute;
    width: 8rem;
    height: 8rem;
    right: -3rem;
    top: -4rem;
    border-radius: 999px;
    background: radial-gradient(circle, rgba(55,122,248,.14), transparent 68%);
}
.fi-wi-stats-overview-stat-value {
    color: var(--dp-ink) !important;
    font-size: 1.7rem !important;
    font-weight: 820 !important;
    letter-spacing: -.035em;
}

/* Custom IFRS9 charts integrate with the same surface language. */
.ifrs9-report-visual {
    border: 1px solid var(--dp-line);
    border-radius: 18px;
    background:
        radial-gradient(circle at 100% 0, rgba(124,58,237,.06), transparent 28%),
        linear-gradient(180deg, #fff, #fbfcff);
    box-shadow: var(--dp-shadow-sm);
}

@media (max-width: 768px) {
    .fi-main { padding-inline: .75rem !important; }
    .fi-section, .fi-ta-ctn, .fi-wi-stats-overview-stat { border-radius: 15px !important; }
}

.dark body.fi-body,
body.fi-body.dark {
    --dp-ink: #eef4ff;
    --dp-muted: #9eabc0;
    --dp-line: #243047;
    background:
        radial-gradient(circle at 20% 0%, rgba(55,122,248,.16), transparent 0 28rem),
        radial-gradient(circle at 92% 8%, rgba(124,58,237,.12), transparent 0 24rem),
        #0c1322;
}
.dark .fi-topbar > nav,
.dark .fi-sidebar { background: rgba(12,19,34,.88) !important; border-color: #243047 !important; }
.dark .fi-section,
.dark .fi-ta-ctn,
.dark .fi-wi-stats-overview-stat {
    border-color: #26334a !important;
    background: linear-gradient(180deg, rgba(18,27,46,.98), rgba(13,21,37,.98)) !important;
}
.dark .fi-section-header { background: rgba(18,27,46,.72) !important; }
.dark .fi-ta-table thead { background: #111b2e !important; }
