/* SRGS design tokens.
   One palette for the app, login and public site. Loaded straight after
   Bootstrap so its variables pick up the brand everywhere. */

:root {
    /* Brand */
    --srgs-ink: #0D1929;
    --srgs-navy: #0A1E4A;
    --srgs-navy-2: #0D2760;
    --srgs-brand: #1650B4;
    --srgs-brand-hover: #123F8F;
    --srgs-brand-rgb: 22, 80, 180;
    --srgs-brand-soft: #E8F0FC;
    --srgs-brand-line: #B9CEF0;

    /* Surfaces and lines */
    --srgs-canvas: #F5F8FC;
    --srgs-surface: #FFFFFF;
    --srgs-surface-muted: #F8FAFD;
    --srgs-line: #D5E0EF;
    --srgs-line-soft: #E8EEF6;
    --srgs-text: #0D1929;
    --srgs-text-muted: #4E5E77;

    /* State colours: text tones meet 4.5:1 on white */
    --srgs-success: #15803D;
    --srgs-success-soft: #E8F6EE;
    --srgs-warning: #B86E00;
    --srgs-warning-soft: #FEF3D7;
    --srgs-warning-line: #F5D48A;
    --srgs-danger: #B91C1C;
    --srgs-danger-soft: #FDECEC;
    --srgs-danger-line: #F5C2C2;
    --srgs-info: #1650B4;
    --srgs-info-soft: #E8F0FC;

    /* Type */
    --srgs-font-ui: 'Inter', 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    --srgs-font-display: 'Sora', 'Inter', 'Segoe UI', sans-serif;
    --fs-xs: .75rem;
    --fs-sm: .8125rem;
    --fs-md: .875rem;
    --fs-base: .9375rem;
    --fs-lg: 1.125rem;
    --fs-xl: 1.375rem;
    --fs-2xl: 1.75rem;

    /* Shape */
    --srgs-radius-sm: 6px;
    --srgs-radius: 10px;
    --srgs-shadow-float: 0 12px 32px rgba(10, 30, 74, .16);

    /* Legacy aliases used by older stylesheets */
    --srgs-primary: var(--srgs-brand);
    --srgs-primary-hover: var(--srgs-brand-hover);
    --srgs-blue: var(--srgs-brand);
    --srgs-blue-hover: var(--srgs-brand-hover);
    --srgs-bg: var(--srgs-canvas);
    --srgs-border: var(--srgs-line);
    --srgs-dark: var(--srgs-ink);
    --srgs-muted: var(--srgs-text-muted);
    --srgs-error: var(--srgs-danger);
    --srgs-focus-ring: rgba(var(--srgs-brand-rgb), .35);

    /* Bootstrap mapping */
    --bs-primary: var(--srgs-brand);
    --bs-primary-rgb: var(--srgs-brand-rgb);
    --bs-primary-text-emphasis: #0E3677;
    --bs-primary-bg-subtle: var(--srgs-brand-soft);
    --bs-primary-border-subtle: var(--srgs-brand-line);
    --bs-success: var(--srgs-success);
    --bs-success-rgb: 21, 128, 61;
    --bs-danger: var(--srgs-danger);
    --bs-danger-rgb: 185, 28, 28;
    --bs-warning-text-emphasis: #7A4A00;
    --bs-warning-bg-subtle: var(--srgs-warning-soft);
    --bs-warning-border-subtle: var(--srgs-warning-line);
    --bs-body-font-family: var(--srgs-font-ui);
    --bs-body-color: var(--srgs-text);
    --bs-body-bg: var(--srgs-canvas);
    --bs-secondary-color: var(--srgs-text-muted);
    --bs-border-color: var(--srgs-line);
    --bs-link-color: var(--srgs-brand);
    --bs-link-color-rgb: var(--srgs-brand-rgb);
    --bs-link-hover-color: var(--srgs-brand-hover);
    --bs-link-hover-color-rgb: 18, 63, 143;
    --bs-border-radius: var(--srgs-radius-sm);
    --bs-border-radius-lg: var(--srgs-radius);
    --bs-focus-ring-color: rgba(var(--srgs-brand-rgb), .3);
}

/* Bootstrap components that read their own variables */
.btn-primary {
    --bs-btn-bg: var(--srgs-brand);
    --bs-btn-border-color: var(--srgs-brand);
    --bs-btn-hover-bg: var(--srgs-brand-hover);
    --bs-btn-hover-border-color: var(--srgs-brand-hover);
    --bs-btn-active-bg: #0E3677;
    --bs-btn-active-border-color: #0E3677;
    --bs-btn-disabled-bg: var(--srgs-brand);
    --bs-btn-disabled-border-color: var(--srgs-brand);
    --bs-btn-focus-shadow-rgb: var(--srgs-brand-rgb);
}

.btn-outline-primary {
    --bs-btn-color: var(--srgs-brand);
    --bs-btn-border-color: var(--srgs-brand-line);
    --bs-btn-hover-bg: var(--srgs-brand-soft);
    --bs-btn-hover-color: var(--srgs-brand-hover);
    --bs-btn-hover-border-color: var(--srgs-brand);
    --bs-btn-active-bg: var(--srgs-brand-soft);
    --bs-btn-active-color: var(--srgs-brand-hover);
    --bs-btn-active-border-color: var(--srgs-brand);
    --bs-btn-focus-shadow-rgb: var(--srgs-brand-rgb);
}

.btn-outline-secondary {
    --bs-btn-color: #334155;
    --bs-btn-border-color: #C3CFDF;
    --bs-btn-hover-bg: #EEF2F8;
    --bs-btn-hover-color: var(--srgs-ink);
    --bs-btn-hover-border-color: #9DB0C8;
    --bs-btn-active-bg: #E3E9F2;
    --bs-btn-active-color: var(--srgs-ink);
    --bs-btn-active-border-color: #9DB0C8;
}

.btn-success {
    --bs-btn-bg: var(--srgs-success);
    --bs-btn-border-color: var(--srgs-success);
    --bs-btn-hover-bg: #116632;
    --bs-btn-hover-border-color: #116632;
}

.btn-danger {
    --bs-btn-bg: var(--srgs-danger);
    --bs-btn-border-color: var(--srgs-danger);
    --bs-btn-hover-bg: #991818;
    --bs-btn-hover-border-color: #991818;
}

.btn-outline-danger {
    --bs-btn-color: var(--srgs-danger);
    --bs-btn-border-color: var(--srgs-danger-line);
    --bs-btn-hover-bg: var(--srgs-danger-soft);
    --bs-btn-hover-color: #991818;
    --bs-btn-hover-border-color: var(--srgs-danger);
}

.text-primary { color: var(--srgs-brand) !important; }
.bg-primary { background-color: var(--srgs-brand) !important; }
.text-warning { color: var(--srgs-warning) !important; }
.text-success { color: var(--srgs-success) !important; }
.text-danger { color: var(--srgs-danger) !important; }
.text-muted { color: var(--srgs-text-muted) !important; }

.num,
.money,
.marks-input,
.table td.text-end,
.table td.text-center {
    font-variant-numeric: tabular-nums;
}

.money { white-space: nowrap; }
