/* ============================================================
   CO.Society Design System — Theme Tokens + Dark Mode
   Finance-grade professional palette
   ============================================================ */

/* ---- Light theme ------------------------------------------ */
:root {
    --cs-sidebar-width: 250px;
    --cs-mobile-breakpoint: 641px;

    /* Page & surface */
    --cs-bg:           #F4F7FA;
    --cs-bg-card:      #FFFFFF;
    --cs-bg-subtle:    #EEF2F7;

    /* Text */
    --cs-text:         #111827;
    --cs-text-muted:   #6B7280;
    --cs-text-inverse: #FFFFFF;

    /* Borders */
    --cs-border:       #DDE3EC;
    --cs-border-strong:#C4CEDB;

    /* Brand */
    --cs-primary:      #2563EB;
    --cs-primary-hover:#1D4ED8;

    /* Top bar */
    --cs-topbar-bg:    #FFFFFF;
    --cs-topbar-border:#DDE3EC;
    --cs-topbar-color: #111827;

    /* Inputs */
    --cs-input-bg:     #FFFFFF;
    --cs-input-border: #C8D4E0;
    --cs-input-color:  #111827;

    /* Table header — professional dark (serious finance look) */
    --cs-table-hd-bg:  #1E293B;
    --cs-table-hd-text:#F1F5F9;

    /* Card shadow */
    --cs-card-shadow:  0 1px 3px rgba(0,0,0,0.06), 0 4px 14px rgba(0,0,0,0.04);

    /* Sidebar — light mode: clean white */
    --cs-sidebar-bg:          #FFFFFF;
    --cs-sidebar-brand-bg:    #F4F7FA;
    --cs-sidebar-text:        #374151;
    --cs-sidebar-hover-bg:    #EEF2F7;
    --cs-sidebar-active-bg:   #EEF3FF;
    --cs-sidebar-active-text: #2563EB;
    --cs-sidebar-active-bdr:  #2563EB;
    --cs-sidebar-hd-text:     #6B7280;
    --cs-sidebar-border:      #DDE3EC;
    --cs-sidebar-brand-text:  #111827;

    /* Report table */
    --cs-rpt-hd-bg:      #1E293B;
    --cs-rpt-hd-text:    #FFFFFF;
    --cs-rpt-odd:        #FFFFFF;
    --cs-rpt-even:       #F9FAFB;
    --cs-rpt-border:     #E5E7EB;
    --cs-rpt-foot-bg:    #E5E7EB;
    --cs-rpt-foot-bdr:   #D1D5DB;
    --cs-rpt-text:       #111827;
    --cs-rpt-opening-bg: #DBEAFE;
    --cs-rpt-closing-bg: #DCFCE7;

    /* Summary sections */
    --cs-sum-hd-bg:    #1E293B;
    --cs-sum-hd-text:  #FFFFFF;
    --cs-sum-row-odd:  #FFFFFF;
    --cs-sum-row-even: #F9FAFB;
    --cs-sum-row-bdr:  #E5E7EB;
    --cs-sum-row-label:#374151;
    --cs-sum-row-value:#1F2937;
    --cs-sum-bal-bg:   #DCFCE7;
    --cs-sum-bal-bdr:  #BBF7D0;
    --cs-sum-note-bg:  transparent;
    --cs-sum-note-bdr: #E5E7EB;
    --cs-sum-note-text:#9CA3AF;
}

/* ---- Dark theme ------------------------------------------- */
[data-theme="dark"] {
    --cs-sidebar-width: 250px;

    /* Page & surface */
    --cs-bg:           #07111E;
    --cs-bg-card:      #0F1D2E;
    --cs-bg-subtle:    #0C1828;

    /* Text */
    --cs-text:         #D4E4F7;
    --cs-text-muted:   #7090B0;
    --cs-text-inverse: #07111E;

    /* Borders */
    --cs-border:       #172844;
    --cs-border-strong:#1E3A5F;

    /* Brand */
    --cs-primary:      #3B82F6;
    --cs-primary-hover:#2563EB;

    /* Top bar */
    --cs-topbar-bg:    #0F1D2E;
    --cs-topbar-border:#172844;
    --cs-topbar-color: #D4E4F7;

    /* Inputs */
    --cs-input-bg:     #0A1628;
    --cs-input-border: #1A3050;
    --cs-input-color:  #D4E4F7;

    /* Table header */
    --cs-table-hd-bg:  #07111E;
    --cs-table-hd-text:#93C5FD;

    /* Card shadow */
    --cs-card-shadow:  0 1px 4px rgba(0,0,0,0.35), 0 4px 16px rgba(0,0,0,0.25);

    /* Sidebar — deeper near-black navy */
    --cs-sidebar-bg:          #050D18;
    --cs-sidebar-brand-bg:    rgba(0, 0, 0, 0.3);
    --cs-sidebar-text:        rgba(108, 142, 180, 0.9);
    --cs-sidebar-hover-bg:    rgba(255, 255, 255, 0.06);
    --cs-sidebar-active-bg:   rgba(59, 130, 246, 0.15);
    --cs-sidebar-active-text: #7CB8F8;
    --cs-sidebar-active-bdr:  #3B82F6;
    --cs-sidebar-hd-text:     rgba(80, 115, 155, 0.72);
    --cs-sidebar-border:      rgba(255, 255, 255, 0.04);
    --cs-sidebar-brand-text:  #D4E4F7;

    /* Report table */
    --cs-rpt-hd-bg:      #0F1D2E;
    --cs-rpt-hd-text:    #D4E4F7;
    --cs-rpt-odd:        #07111E;
    --cs-rpt-even:       #0F1D2E;
    --cs-rpt-border:     #172844;
    --cs-rpt-foot-bg:    #172844;
    --cs-rpt-foot-bdr:   #1E3A5F;
    --cs-rpt-text:       #D4E4F7;
    --cs-rpt-opening-bg: #0C1E40;
    --cs-rpt-closing-bg: #0D2E18;

    /* Summary sections */
    --cs-sum-hd-bg:    #0F1D2E;
    --cs-sum-hd-text:  #D4E4F7;
    --cs-sum-row-odd:  #07111E;
    --cs-sum-row-even: #0F1D2E;
    --cs-sum-row-bdr:  #172844;
    --cs-sum-row-label:#A0BAD4;
    --cs-sum-row-value:#D4E4F7;
    --cs-sum-bal-bg:   #0D2E18;
    --cs-sum-bal-bdr:  #155226;
    --cs-sum-note-bg:  transparent;
    --cs-sum-note-bdr: #172844;
    --cs-sum-note-text:#50728E;
}

/* ============================================================
   Bootstrap 5.1 overrides — dark mode only
   ============================================================ */

[data-theme="dark"] body {
    background-color: var(--cs-bg) !important;
    color: var(--cs-text);
}

/* Cards */
[data-theme="dark"] .card {
    background-color: var(--cs-bg-card) !important;
    border-color: var(--cs-border) !important;
    color: var(--cs-text);
}
[data-theme="dark"] .card-header {
    background-color: var(--cs-bg-subtle) !important;
    border-color: var(--cs-border) !important;
    color: var(--cs-text);
}
[data-theme="dark"] .card-footer {
    background-color: var(--cs-bg-subtle) !important;
    border-color: var(--cs-border) !important;
}
[data-theme="dark"] .card-body {
    background-color: var(--cs-bg-card);
    color: var(--cs-text);
}

/* Tables */
[data-theme="dark"] .table {
    --bs-table-bg: var(--cs-bg-card);
    --bs-table-accent-bg: transparent;
    --bs-table-striped-color: var(--cs-text);
    color: var(--cs-text);
    border-color: var(--cs-border);
}
[data-theme="dark"] .table > :not(caption) > * > * {
    border-color: var(--cs-border);
    color: var(--cs-text);
}
[data-theme="dark"] .table-striped > tbody > tr:nth-of-type(odd) {
    --bs-table-accent-bg: rgba(255, 255, 255, 0.03);
}
[data-theme="dark"] .table thead th {
    background-color: var(--cs-table-hd-bg);
    color: var(--cs-table-hd-text);
    border-color: var(--cs-border);
}

/* Modals */
[data-theme="dark"] .modal-content {
    background-color: var(--cs-bg-card) !important;
    border-color: var(--cs-border) !important;
    color: var(--cs-text);
}
[data-theme="dark"] .modal-header { border-color: var(--cs-border); }
[data-theme="dark"] .modal-footer { border-color: var(--cs-border); }

/* Forms */
[data-theme="dark"] .form-control,
[data-theme="dark"] .form-select {
    background-color: var(--cs-input-bg) !important;
    border-color: var(--cs-input-border) !important;
    color: var(--cs-input-color) !important;
}
[data-theme="dark"] .form-control:focus,
[data-theme="dark"] .form-select:focus {
    background-color: var(--cs-input-bg) !important;
    color: var(--cs-input-color) !important;
    border-color: var(--cs-primary) !important;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15) !important;
}
[data-theme="dark"] .form-control::placeholder  { color: var(--cs-text-muted); }
[data-theme="dark"] .form-label                 { color: var(--cs-text); }
[data-theme="dark"] .form-floating > label      { color: var(--cs-text-muted); }
[data-theme="dark"] .input-group-text {
    background-color: var(--cs-bg-subtle) !important;
    border-color: var(--cs-input-border) !important;
    color: var(--cs-text);
}

/* Dropdowns */
[data-theme="dark"] .dropdown-menu {
    background-color: var(--cs-bg-card) !important;
    border-color: var(--cs-border) !important;
    color: var(--cs-text);
    box-shadow: 0 8px 30px rgba(0,0,0,0.45);
}
[data-theme="dark"] .dropdown-item { color: var(--cs-text); }
[data-theme="dark"] .dropdown-item:hover,
[data-theme="dark"] .dropdown-item:focus {
    background-color: var(--cs-bg-subtle);
    color: var(--cs-text);
}
[data-theme="dark"] .dropdown-divider { border-color: var(--cs-border); }

/* Lists */
[data-theme="dark"] .list-group-item {
    background-color: var(--cs-bg-card) !important;
    border-color: var(--cs-border) !important;
    color: var(--cs-text);
}

/* Alerts */
[data-theme="dark"] .alert-danger  { background-color: #2D0808; border-color: #6B1515; color: #FCA5A5; }
[data-theme="dark"] .alert-success { background-color: #031E0E; border-color: #0D4020; color: #86EFAC; }
[data-theme="dark"] .alert-warning { background-color: #2E1500; border-color: #5C2E00; color: #FCD34D; }
[data-theme="dark"] .alert-info    { background-color: #051828; border-color: #0A3050; color: #67E8F9; }

/* Text utilities */
[data-theme="dark"] .text-muted     { color: var(--cs-text-muted) !important; }
[data-theme="dark"] .text-dark      { color: var(--cs-text) !important; }
[data-theme="dark"] .text-secondary { color: var(--cs-text-muted) !important; }

/* Background utilities */
[data-theme="dark"] .bg-white { background-color: var(--cs-bg-card) !important; }
[data-theme="dark"] .bg-light { background-color: var(--cs-bg) !important; color: var(--cs-text); }

/* Borders */
[data-theme="dark"] .border,
[data-theme="dark"] .border-top,
[data-theme="dark"] .border-bottom,
[data-theme="dark"] .border-start,
[data-theme="dark"] .border-end { border-color: var(--cs-border) !important; }

/* Pagination */
[data-theme="dark"] .page-link {
    background-color: var(--cs-bg-card);
    border-color: var(--cs-border);
    color: var(--cs-primary);
}
[data-theme="dark"] .page-item.disabled .page-link {
    background-color: var(--cs-bg-subtle);
    border-color: var(--cs-border);
    color: var(--cs-text-muted);
}

/* Buttons */
[data-theme="dark"] .btn-outline-secondary {
    color: var(--cs-text);
    border-color: var(--cs-border-strong);
}
[data-theme="dark"] .btn-outline-secondary:hover,
[data-theme="dark"] .btn-outline-secondary:focus {
    background-color: var(--cs-bg-subtle);
    color: var(--cs-text);
    border-color: var(--cs-border-strong);
}
[data-theme="dark"] .btn-outline-danger        { color: #F87171; border-color: #F87171; }
[data-theme="dark"] .btn-outline-danger:hover  { background-color: #5C0F0F; border-color: #F87171; color: #fff; }
[data-theme="dark"] .btn-outline-success       { color: #4ADE80; border-color: #4ADE80; }
[data-theme="dark"] .btn-outline-success:hover { background-color: #0D3B1A; border-color: #4ADE80; color: #fff; }
[data-theme="dark"] .btn-close                 { filter: invert(1); }

/* Status colors */
[data-theme="dark"] .text-primary { color: var(--cs-primary) !important; }
[data-theme="dark"] .text-success { color: #4ADE80 !important; }
[data-theme="dark"] .text-danger  { color: #F87171 !important; }
[data-theme="dark"] .text-warning { color: #FCD34D !important; }

/* Nav tabs */
[data-theme="dark"] .nav-tabs                   { border-color: var(--cs-border); }
[data-theme="dark"] .nav-tabs .nav-link         { color: var(--cs-text-muted); border-color: transparent; }
[data-theme="dark"] .nav-tabs .nav-link.active  { background-color: var(--cs-bg-card); border-color: var(--cs-border) var(--cs-border) var(--cs-bg-card); color: var(--cs-text); }

/* Badges */
[data-theme="dark"] .badge.bg-light     { background-color: var(--cs-bg-subtle) !important; color: var(--cs-text) !important; }
[data-theme="dark"] .badge.bg-secondary { background-color: #1E3A5F !important; }

/* ============================================================
   Report table — dark mode screen overrides
   ============================================================ */
@media screen {
    [data-theme="dark"] .rpt-table thead th   { background: var(--cs-rpt-hd-bg) !important; color: var(--cs-rpt-hd-text) !important; }
    [data-theme="dark"] .rpt-table tbody tr:nth-child(even) { background: var(--cs-rpt-even) !important; }
    [data-theme="dark"] .rpt-table tbody tr:nth-child(odd)  { background: var(--cs-rpt-odd) !important; }
    [data-theme="dark"] .rpt-table td         { border-color: var(--cs-rpt-border) !important; color: var(--cs-rpt-text) !important; }
    [data-theme="dark"] .rpt-table tfoot td   { background: var(--cs-rpt-foot-bg) !important; border-color: var(--cs-rpt-foot-bdr) !important; color: var(--cs-rpt-text) !important; }
}

/* ============================================================
   Passbook table — dark mode screen overrides
   ============================================================ */
@media screen {
    [data-theme="dark"] .pb-section-header { background: var(--cs-rpt-hd-bg) !important; color: var(--cs-rpt-hd-text) !important; }
    [data-theme="dark"] .pb-table thead th  { background: var(--cs-rpt-hd-bg) !important; color: var(--cs-rpt-hd-text) !important; }
    [data-theme="dark"] .pb-table tbody tr:nth-child(even) { background: var(--cs-rpt-even) !important; }
    [data-theme="dark"] .pb-table tbody tr:nth-child(odd)  { background: var(--cs-rpt-odd) !important; }
    [data-theme="dark"] .pb-table td        { border-color: var(--cs-rpt-border) !important; color: var(--cs-rpt-text) !important; }
    [data-theme="dark"] .pb-table tfoot td  { background: var(--cs-rpt-foot-bg) !important; border-color: var(--cs-rpt-foot-bdr) !important; color: var(--cs-rpt-text) !important; }
    [data-theme="dark"] .pb-no-data         { background: var(--cs-rpt-odd) !important; color: var(--cs-text-muted) !important; border-color: var(--cs-rpt-border) !important; }
}

/* ============================================================
   Society Summary — dark mode screen overrides
   ============================================================ */
@media screen {
    [data-theme="dark"] .summary-section-title { background: var(--cs-sum-hd-bg) !important; color: var(--cs-sum-hd-text) !important; }
    [data-theme="dark"] .summary-row           { background: var(--cs-sum-row-even) !important; border-color: var(--cs-sum-row-bdr) !important; }
    [data-theme="dark"] .summary-row:nth-child(odd)  { background: var(--cs-sum-row-odd) !important; }
    [data-theme="dark"] .summary-row:nth-child(even) { background: var(--cs-sum-row-even) !important; }
    [data-theme="dark"] .summary-row .label   { color: var(--cs-sum-row-label) !important; }
    [data-theme="dark"] .summary-row .value   { color: var(--cs-sum-row-value) !important; }
    [data-theme="dark"] .summary-balance-row  { background: var(--cs-sum-bal-bg) !important; border-color: var(--cs-sum-bal-bdr) !important; color: var(--cs-sum-row-value) !important; }
}
