/* ==========================================================================
   SeeTheFuture Design System Tokens (STF-DS)
   Unified semantic tokens harmonized with MudBlazor theme variables.
   ========================================================================== */

:root,
.stf-theme-dark {
    /* ── 1. Color Palette: Brand & Semantic ── */
    --stf-primary: var(--mud-palette-primary, #7e6fff);
    --stf-primary-hover: #6c5ce7;
    --stf-primary-subtle: rgba(126, 111, 255, 0.12);

    --stf-secondary: var(--mud-palette-secondary, #26C6DA);
    --stf-secondary-subtle: rgba(38, 198, 218, 0.12);

    --stf-success: var(--mud-palette-success, #3dcb6c);
    --stf-success-subtle: rgba(61, 203, 108, 0.12);

    --stf-warning: var(--mud-palette-warning, #ffb545);
    --stf-warning-subtle: rgba(255, 181, 69, 0.12);

    --stf-error: var(--mud-palette-error, #ff3f5f);
    --stf-error-subtle: rgba(255, 63, 95, 0.12);

    --stf-info: var(--mud-palette-info, #4a86ff);
    --stf-info-subtle: rgba(74, 134, 255, 0.12);

    /* ── 2. Surfaces & Backgrounds ── */
    --stf-surface: var(--mud-palette-surface, #1e1e2d);
    --stf-surface-card: var(--mud-palette-surface, #1e1e2d);
    --stf-surface-page: var(--mud-palette-background, #1a1a27);
    --stf-surface-subtle: var(--mud-palette-background-gray, #151521);
    --stf-surface-highlight: rgba(126, 111, 255, 0.08);

    /* ── 3. Table Header & Table Rows (replaces hardcoded #1565C0) ── */
    --stf-table-head-bg: #222036;                              /* Dark slate indigo in dark mode */
    --stf-table-head-text: #ffffff;
    --stf-table-head-border: var(--mud-palette-table-lines, #33323e);
    --stf-table-row-hover: rgba(126, 111, 255, 0.05);
    --stf-table-row-selected: rgba(126, 111, 255, 0.12);

    /* ── 4. Typography ── */
    --stf-font-family: 'Inter', 'Roboto', system-ui, -apple-system, sans-serif;
    --stf-font-mono: 'JetBrains Mono', 'Fira Code', 'Consolas', monospace;

    --stf-font-size-xs: 0.75rem;    /* 12px */
    --stf-font-size-sm: 0.8125rem;  /* 13px */
    --stf-font-size-md: 0.875rem;   /* 14px (base) */
    --stf-font-size-lg: 1rem;       /* 16px */
    --stf-font-size-xl: 1.25rem;    /* 20px */
    --stf-font-size-2xl: 1.5rem;    /* 24px */
    --stf-font-size-3xl: 2rem;      /* 32px */

    /* ── 5. Spacing Scale ── */
    --stf-space-1: 0.25rem;  /* 4px */
    --stf-space-2: 0.5rem;   /* 8px */
    --stf-space-3: 0.75rem;  /* 12px */
    --stf-space-4: 1rem;     /* 16px */
    --stf-space-5: 1.25rem;  /* 20px */
    --stf-space-6: 1.5rem;   /* 24px */
    --stf-space-8: 2rem;     /* 32px */
    --stf-space-10: 2.5rem;  /* 40px */

    /* ── 6. Borders & Radii ── */
    --stf-radius-sm: 4px;
    --stf-radius-md: 8px;    /* Standard inputs & small cards */
    --stf-radius-lg: 12px;   /* Standard cards & dialogs */
    --stf-radius-xl: 16px;   /* Hero cards & prominent panels */
    --stf-radius-pill: 9999px;

    --stf-border-subtle: 1px solid var(--mud-palette-lines-default, #33323e);
    --stf-border-accent: 4px solid var(--stf-primary);

    /* ── 7. Elevation / Shadows ── */
    --stf-shadow-1: 0 1px 3px rgba(0, 0, 0, 0.2), 0 1px 2px rgba(0, 0, 0, 0.3);
    --stf-shadow-2: 0 3px 6px rgba(0, 0, 0, 0.25), 0 2px 4px rgba(0, 0, 0, 0.2);
    --stf-shadow-3: 0 10px 20px rgba(0, 0, 0, 0.25), 0 3px 6px rgba(0, 0, 0, 0.15);
    --stf-shadow-hover: 0 8px 24px rgba(126, 111, 255, 0.18);
}

/* Light Mode Overrides */
.stf-theme-light {
    --stf-primary: var(--mud-palette-primary, #7e6fff);
    --stf-secondary: var(--mud-palette-secondary, #00ACC1);
    --stf-secondary-subtle: rgba(0, 172, 193, 0.12);

    --stf-surface: var(--mud-palette-surface, #ffffff);
    --stf-surface-card: var(--mud-palette-surface, #ffffff);
    --stf-surface-page: var(--mud-palette-background, #f5f5f9);
    --stf-surface-subtle: var(--mud-palette-background-gray, #f0f0f5);
    --stf-surface-highlight: rgba(126, 111, 255, 0.06);

    --stf-table-head-bg: #2c284e;                              /* Deep slate violet-indigo */
    --stf-table-head-text: #ffffff;
    --stf-table-head-border: rgba(0, 0, 0, 0.08);
    --stf-table-row-hover: rgba(126, 111, 255, 0.04);
    --stf-table-row-selected: rgba(126, 111, 255, 0.08);

    --stf-border-subtle: 1px solid var(--mud-palette-lines-default, #e0e0ea);

    --stf-shadow-1: 0 1px 3px rgba(0, 0, 0, 0.08), 0 1px 2px rgba(0, 0, 0, 0.05);
    --stf-shadow-2: 0 3px 6px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06);
    --stf-shadow-3: 0 10px 20px rgba(0, 0, 0, 0.1), 0 3px 6px rgba(0, 0, 0, 0.05);
    --stf-shadow-hover: 0 8px 24px rgba(126, 111, 255, 0.14);
}

/* ── Unified Page Header ── */
.stf-page-header {
    background: var(--stf-surface-card);
    border-radius: var(--stf-radius-lg);
    border-left: var(--stf-border-accent);
    padding: var(--stf-space-4) var(--stf-space-5);
    margin-bottom: var(--stf-space-5);
    box-shadow: var(--stf-shadow-1);
}

/* ── Unified Table Styling ── */
.stf-table {
    border-radius: var(--stf-radius-md) !important;
    overflow: hidden;
}

.stf-table-th,
.stf-table-head th,
.mud-table-head .mud-table-cell {
    background-color: var(--stf-table-head-bg) !important;
    color: var(--stf-table-head-text) !important;
    font-weight: 600 !important;
    font-size: var(--stf-font-size-md) !important;
    padding: 10px 14px !important;
    letter-spacing: -0.01em !important;
    border-bottom: 1px solid var(--stf-table-head-border) !important;
}

.stf-table-th .mud-table-sort-label,
.stf-table-head th .mud-table-sort-label,
.mud-table-head .mud-table-cell .mud-table-sort-label {
    color: var(--stf-table-head-text) !important;
}

.stf-table-th .mud-table-sort-label:hover,
.stf-table-head th .mud-table-sort-label:hover,
.mud-table-head .mud-table-cell .mud-table-sort-label:hover {
    color: #e0e0ff !important;
}

/* ── Unified KPI Card ── */
.stf-kpi-card {
    background: var(--stf-surface-card);
    border-radius: var(--stf-radius-lg);
    border: var(--stf-border-subtle);
    padding: var(--stf-space-4);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.stf-kpi-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--stf-shadow-hover);
}

.stf-kpi-icon-box {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: var(--stf-radius-md);
    background: var(--stf-primary-subtle);
    color: var(--stf-primary);
    flex-shrink: 0;
}

.stf-kpi-value {
    font-weight: 700;
    font-size: var(--stf-font-size-2xl);
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.02em;
    line-height: 1.2;
}

.stf-kpi-label {
    color: var(--mud-palette-text-secondary);
    font-size: var(--stf-font-size-sm);
    font-weight: 500;
}

.stf-kpi-delta {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: var(--stf-radius-pill);
    font-size: var(--stf-font-size-xs);
    font-weight: 600;
}

.stf-kpi-delta-positive {
    background: var(--stf-success-subtle);
    color: var(--stf-success);
}

.stf-kpi-delta-negative {
    background: var(--stf-error-subtle);
    color: var(--stf-error);
}
