/* ==========================================================================
   User Service - Dark Theme (aligned with Student Community Platform shell)
   Design tokens come from /css/shared.css
   ========================================================================== */

/* --- Base --- */
html, body {
    font-family: var(--scp-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);
    background: var(--scp-bg-primary, #0f172a);
    color: var(--scp-text-secondary, #e2e8f0);
    margin: 0;
}

h1, h2, h3, h4, h5, h6 {
    color: var(--scp-text-primary, #f1f5f9);
}

h1:focus { outline: none; }

a, .btn-link {
    color: var(--scp-accent-blue, #38bdf8);
}
a:hover {
    color: #7dd3fc;
}

/* --- Bootstrap Overrides: Buttons --- */
.btn-primary {
    background-color: var(--scp-accent-blue, #38bdf8);
    border-color: var(--scp-accent-blue, #38bdf8);
    color: #0f172a;
    font-weight: 600;
}
.btn-primary:hover, .btn-primary:focus {
    background-color: #7dd3fc;
    border-color: #7dd3fc;
    color: #0f172a;
}
.btn-outline-primary {
    color: var(--scp-accent-blue, #38bdf8);
    border-color: var(--scp-accent-blue, #38bdf8);
}
.btn-outline-primary:hover {
    background-color: var(--scp-accent-blue, #38bdf8);
    border-color: var(--scp-accent-blue, #38bdf8);
    color: #0f172a;
}
.btn-outline-secondary {
    color: var(--scp-text-muted, #94a3b8);
    border-color: var(--scp-border, #334155);
}
.btn-outline-secondary:hover {
    background-color: var(--scp-bg-tertiary, #334155);
    border-color: var(--scp-border-hover, #475569);
    color: var(--scp-text-primary, #f1f5f9);
}
.btn-success {
    background-color: var(--scp-accent-green-bg, #16a34a);
    border-color: var(--scp-accent-green-bg, #16a34a);
}
.btn-outline-danger {
    color: #f87171;
    border-color: #f87171;
}
.btn-outline-danger:hover {
    background-color: #7f1d1d;
    border-color: #f87171;
    color: #fca5a5;
}

.btn:focus, .btn:active:focus {
    box-shadow: 0 0 0 0.2rem rgba(56, 189, 248, 0.3);
}

/* --- Bootstrap Overrides: Cards --- */
.card {
    background-color: var(--scp-bg-secondary, #1e293b);
    border: 1px solid var(--scp-border, #334155);
    color: var(--scp-text-secondary, #e2e8f0);
}
.card-header {
    background-color: var(--scp-bg-tertiary, #334155);
    border-bottom: 1px solid var(--scp-border, #334155);
    color: var(--scp-text-primary, #f1f5f9);
    font-weight: 600;
}

/* --- Bootstrap Overrides: Tables --- */
.table {
    color: var(--scp-text-secondary, #e2e8f0);
    border-color: var(--scp-border, #334155);
}
.table-striped > tbody > tr:nth-of-type(odd) > * {
    background-color: rgba(51, 65, 85, 0.4);
    color: var(--scp-text-secondary, #e2e8f0);
}
.table-hover > tbody > tr:hover > * {
    background-color: rgba(56, 189, 248, 0.06);
    color: var(--scp-text-primary, #f1f5f9);
}
.table thead th {
    color: var(--scp-text-muted, #94a3b8);
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-bottom-color: var(--scp-border, #334155);
}
.table td {
    border-bottom-color: var(--scp-border, #334155);
    vertical-align: middle;
}

/* --- Bootstrap Overrides: Forms --- */
.form-control, .form-select {
    background-color: var(--scp-bg-tertiary, #334155);
    border: 1px solid var(--scp-border, #334155);
    color: var(--scp-text-primary, #f1f5f9);
}
.form-control:focus, .form-select:focus {
    background-color: var(--scp-bg-tertiary, #334155);
    border-color: var(--scp-accent-blue, #38bdf8);
    color: var(--scp-text-primary, #f1f5f9);
    box-shadow: 0 0 0 0.2rem rgba(56, 189, 248, 0.2);
}
.form-control::placeholder {
    color: var(--scp-text-faint, #475569);
}
.form-label {
    color: var(--scp-text-muted, #94a3b8);
    font-size: 0.875rem;
    font-weight: 500;
}
.form-text {
    color: var(--scp-text-faint, #475569);
}
.form-check-input {
    background-color: var(--scp-bg-tertiary, #334155);
    border-color: var(--scp-border-hover, #475569);
}
.form-check-input:checked {
    background-color: var(--scp-accent-blue, #38bdf8);
    border-color: var(--scp-accent-blue, #38bdf8);
}
.form-check-label {
    color: var(--scp-text-secondary, #e2e8f0);
}

/* --- Bootstrap Overrides: Badges --- */
.badge.bg-danger  { background-color: #7f1d1d !important; color: #fca5a5; }
.badge.bg-primary { background-color: #1e3a5f !important; color: var(--scp-accent-blue, #38bdf8); }
.badge.bg-success { background-color: #14532d !important; color: #86efac; }
.badge.bg-warning { background-color: #713f12 !important; color: #fde68a; }
.badge.bg-secondary { background-color: var(--scp-bg-tertiary, #334155) !important; color: var(--scp-text-muted, #94a3b8); }

/* --- Bootstrap Overrides: Alerts --- */
.alert-info {
    background-color: rgba(56, 189, 248, 0.1);
    border-color: rgba(56, 189, 248, 0.3);
    color: #7dd3fc;
}
.alert-success {
    background-color: rgba(34, 197, 94, 0.1);
    border-color: rgba(34, 197, 94, 0.3);
    color: #86efac;
}
.alert-danger {
    background-color: rgba(239, 68, 68, 0.1);
    border-color: rgba(239, 68, 68, 0.3);
    color: #fca5a5;
}

/* --- Bootstrap Overrides: Text utilities --- */
.text-muted { color: var(--scp-text-muted, #94a3b8) !important; }
.display-4 { color: var(--scp-text-primary, #f1f5f9); font-weight: 700; }

/* --- Stat Cards (Dashboard) --- */
.card-title {
    color: var(--scp-text-muted, #94a3b8);
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: 600;
}

/* --- Content area --- */
.content {
    padding-top: 1rem;
}

/* --- Spinner --- */
.spinner-border {
    color: var(--scp-accent-blue, #38bdf8) !important;
}

/* --- Form Validation --- */
.valid.modified:not([type=checkbox]) { outline: 1px solid var(--scp-accent-green, #22c55e); }
.invalid { outline: 1px solid #f87171; }
.validation-message { color: #f87171; }

/* --- Blazor Error UI --- */
#blazor-error-ui {
    background: var(--scp-bg-secondary, #1e293b);
    border-top: 1px solid #f87171;
    color: #fca5a5;
    bottom: 0;
    box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.4);
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}
#blazor-error-ui .dismiss {
    cursor: pointer;
    position: absolute;
    right: 0.75rem;
    top: 0.5rem;
    color: var(--scp-text-muted, #94a3b8);
}

/* --- Close button (for badges with role removal) --- */
.btn-close-white {
    filter: invert(1);
    opacity: 0.7;
}
.btn-close-white:hover { opacity: 1; }

code { color: #f472b6; }
