:root {
    color-scheme: dark;
}

html, body {
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
    background-color: #0b0e14; /* deep dark */
    color: #e5e7eb; /* gray-200 */
    line-height: 1.6; /* improve readability */
}

a, .btn-link {
    color: #93c5fd; /* blue-300 */
}

a:hover, .btn-link:hover { color: #bfdbfe; }

.btn-primary {
    color: #fff;
    background-color: #2563eb; /* blue-600 */
    border-color: #1d4ed8; /* blue-700 */
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem rgba(255,255,255,0.25), 0 0 0 0.25rem rgba(37, 140, 251, 0.35);
}

.content { padding-top: 1.1rem; }

h1:focus { outline: none; }

.valid.modified:not([type=checkbox]) { outline: 1px solid #22c55e; }
.invalid { outline: 1px solid #ef4444; }
.validation-message { color: #f87171; }

/* Cards and containers */
.card { background-color: #111827; border-color: #1f2937; color: #e5e7eb; }
.card-header { background-color: #0f172a; border-bottom-color: #1f2937; color: #e5e7eb; }
.card-body { color: #e5e7eb; }

/* Tables: dark-friendly */
.table { --bs-table-bg: transparent; --bs-table-striped-bg: rgba(255,255,255,0.06); --bs-table-color: #e5e7eb; --bs-table-border-color: #334155; }
.table thead, .table .table-light, .table-light { background-color: #0f172a !important; color: #f1f5f9 !important; font-weight: 600; }
.table tbody tr { background-color: transparent; }
.table-hover tbody tr:hover { background-color: rgba(255,255,255,0.04); }

/* Make small/muted text more readable on dark */
.text-muted { color: #a8b1c0 !important; }
.form-text { color: #a8b1c0; }

/* Forms */
.form-control, .form-select, .form-check-input, .form-control:disabled {
    background-color: #111827;
    color: #e5e7eb;
    border-color: #475569;
}
.form-control::placeholder { color: #cbd5e1; }
.form-check-input:checked { background-color: #2563eb; border-color: #1d4ed8; }

/* Alerts */
.alert { color: #e5e7eb; border-color: #374151; }
.alert-danger { background-color: #3f1d1d; border-color: #7f1d1d; color: #fecaca; }

/* Error boundary */
.blazor-error-boundary {
    background-color: #7f1d1d;
    padding: 1rem 1rem 1rem 1rem;
    color: #fee2e2;
}
.blazor-error-boundary::after { content: "An error has occurred." }

.darker-border-checkbox.form-check-input { border-color: #929292; }

/* Code styling for better legibility */
code {
    background-color: #0f172a;
    color: #f8fafc;
    padding: 0.1rem 0.35rem;
    border-radius: 0.25rem;
}

pre code {
    display: block;
    padding: 0.75rem;
}

/* Badges: ensure secondary has contrast on dark */
.badge.bg-secondary { background-color: #475569 !important; color: #fff !important; }
