/*
 * SchoolPick design tokens.
 * Phase 0: color/type bridge.
 * Phase 1: surface language — interactive vs informational elevation.
 * Phase 2: theme-aware bump chart series palette (--sp-chart-palette).
 * Phase 3–4: brand blue (#009BFF) from logo pack + login atmosphere.
 * Phase 6: app chrome (ink navbar, page canvas, tap targets) without a rebrand.
 */

@font-face {
    font-family: "IBM Plex Sans";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans@5.2.5/latin-400-normal.woff2") format("woff2");
}

@font-face {
    font-family: "IBM Plex Sans";
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url("https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans@5.2.5/latin-600-normal.woff2") format("woff2");
}

@font-face {
    font-family: "IBM Plex Sans";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url("https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans@5.2.5/latin-700-normal.woff2") format("woff2");
}

:root {
    /* Brand (SchoolPick logo pack) — primary retune from Bootstrap default blue */
    --sp-brand: #009bff;
    --sp-brand-rgb: 0, 155, 255;
    --sp-brand-on: #ffffff;
    --sp-brand-ink: #444444;

    --sp-color-primary: var(--sp-brand);
    --sp-color-primary-rgb: var(--sp-brand-rgb);
    --sp-color-success: #198754;
    --sp-color-danger: #dc3545;
    --sp-color-warning: #ffc107;
    --sp-color-info: #0dcaf0;
    --sp-color-muted: #6c757d;

    /* Bump chart categorical series (comma-separated; read by ranking-chart.js) */
    --sp-chart-palette: #009bff, #c1121f, #2a9d8f, #e76f51, #7b2cbf, #0a9396, #d62828, #0077b6, #6a994e, #495057;

    /* Surfaces
     * Interactive panels (.card-elevated): may use --sp-shadow-elevated.
     * Informational season cards: border-only (see .sp-card-info / season-* cards). */
    --sp-ink: #12161c;
    --sp-ink-rgb: 18, 22, 28;
    --sp-page-bg: #f4f7fb;
    --sp-surface-elevated: rgba(var(--sp-color-primary-rgb), 0.06);
    --sp-surface-info: rgba(var(--bs-secondary-rgb, 108, 117, 125), 0.04);
    --sp-surface-brand-soft: rgba(var(--sp-brand-rgb), 0.12);
    --sp-shadow-elevated: 0 0.2rem 0.7rem rgba(18, 22, 28, 0.08);
    --sp-shadow-none: none;
    --sp-focus-ring: 0 0 0 0.2rem rgba(var(--sp-brand-rgb), 0.28);
    --sp-tap: 2.75rem;

    /* Radius / measure */
    --sp-radius-sm: 0.25rem;
    --sp-radius: 0.5rem;
    --sp-radius-lg: 0.75rem;
    --sp-radius-pill: 999px;
    --sp-measure-content: 72rem;

    /* Typography — body stays system; headings use IBM Plex Sans */
    --sp-font-body: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans",
        "Liberation Sans", Arial, sans-serif;
    --sp-font-heading: "IBM Plex Sans", var(--sp-font-body);
    --sp-font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
        "Courier New", monospace;

    /* Legacy aliases used across feature CSS */
    --sp-accent: var(--sp-color-primary);
    --sp-text-muted: var(--sp-color-muted);

    /* Bridge Bootstrap so one token change can retint the app later */
    --bs-primary: var(--sp-color-primary);
    --bs-primary-rgb: var(--sp-color-primary-rgb);
    --bs-body-font-family: var(--sp-font-body);
    --bs-font-sans-serif: var(--sp-font-body);
    --bs-border-radius: var(--sp-radius);
    --bs-border-radius-sm: var(--sp-radius-sm);
    --bs-border-radius-lg: var(--sp-radius-lg);
}

[data-bs-theme="dark"] {
    --sp-ink: #0b0e12;
    --sp-page-bg: #10141a;
    --sp-surface-elevated: rgba(var(--sp-color-primary-rgb), 0.14);
    --sp-surface-info: rgba(255, 255, 255, 0.03);
    --sp-surface-brand-soft: rgba(var(--sp-brand-rgb), 0.2);
    --sp-text-muted: var(--bs-secondary-color);
    --sp-shadow-elevated: 0 0.2rem 0.7rem rgba(0, 0, 0, 0.45);
    /* Brighter series for dark backgrounds; lead with brand blue */
    --sp-chart-palette: #4db8ff, #ea868f, #75b798, #ffc078, #b197fc, #63e6be, #f783ac, #66d9e8, #9775fa, #ced4da;
}

/* Headings + brand only — body copy unchanged (low visual shock) */
h1, h2, h3,
.navbar-brand,
.login-brand,
.display-1, .display-2, .display-3, .display-4, .display-5, .display-6 {
    font-family: var(--sp-font-heading);
    letter-spacing: -0.015em;
}

/*
 * Informational surface: border + soft wash, no elevation shadow.
 * Prefer for season highlights / weekly blocks; keep .card-elevated for pick lists & prefs.
 */
.sp-card-info {
    border-radius: var(--sp-radius-lg);
    border: 1px solid var(--bs-border-color);
    background-color: var(--sp-surface-info);
    box-shadow: var(--sp-shadow-none);
}

.btn {
    --bs-btn-border-radius: var(--sp-radius);
    font-weight: 600;
}

.btn-primary {
    --bs-btn-bg: var(--sp-color-primary);
    --bs-btn-border-color: var(--sp-color-primary);
    --bs-btn-hover-bg: color-mix(in srgb, var(--sp-color-primary) 88%, #000);
    --bs-btn-hover-border-color: color-mix(in srgb, var(--sp-color-primary) 88%, #000);
    --bs-btn-active-bg: color-mix(in srgb, var(--sp-color-primary) 80%, #000);
    --bs-btn-active-border-color: color-mix(in srgb, var(--sp-color-primary) 80%, #000);
    --bs-btn-focus-shadow-rgb: var(--sp-color-primary-rgb);
}

.form-control:focus,
.form-select:focus,
.form-check-input:focus,
.btn:focus-visible {
    border-color: var(--sp-color-primary);
    box-shadow: var(--sp-focus-ring);
}
