/* Modern theme overrides without changing content text */
:root {
 --brand-primary: #4f46e5; /* indigo-600 */
 --brand-primary-600: #4338ca; /* indigo-700 */
 --brand-accent: #06b6d4; /* cyan-500 */
 --surface: #ffffff;
 --surface-muted: #f8fafc; /* slate-50 */
 --border: rgba(2,6,23,0.08); /* slate-950/8 */
 --text: #0f172a; /* slate-900 */
 --text-muted: #475569; /* slate-600 */
 --ring: rgba(79,70,229,0.35); /* primary ring */
}

html, body {
 font-family: Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji";
 color: var(--text);
 background:
 radial-gradient(1200px600px at -10% -10%, rgba(6,182,212,0.08), transparent60%),
 radial-gradient(900px500px at110% -10%, rgba(79,70,229,0.08), transparent60%),
 linear-gradient(180deg, #ffffff, #fbfbfd60%, #f7f8fb);
}

/* Typography tweaks */
h1, h2, h3, h4, h5, h6 { letter-spacing: -0.01em; }
.lead { color: var(--text-muted); }

/* Links */
a, .btn-link {
 color: var(--brand-primary);
 text-underline-offset:3px;
}

a:hover { color: var(--brand-primary-600); }

/* Buttons */
.btn-primary {
 --bs-btn-color: #fff;
 --bs-btn-bg: var(--brand-primary);
 --bs-btn-border-color: var(--brand-primary);
 --bs-btn-hover-bg: var(--brand-primary-600);
 --bs-btn-hover-border-color: var(--brand-primary-600);
 --bs-btn-focus-shadow-rgb:79,70,229;
 border:0;
 border-radius:999px; /* pill */
 box-shadow:06px20px rgba(79,70,229,0.25);
 transition: transform .12s ease, box-shadow .2s ease;
}
.btn-primary:hover { transform: translateY(-1px); box-shadow:010px24px rgba(79,70,229,0.3); }

.btn-outline-secondary {
 border-radius:999px;
 border-color: var(--border);
 color: var(--text);
 background: rgba(15,23,42,0.02);
}
.btn-outline-secondary:hover { background: rgba(15,23,42,0.05); }

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
 box-shadow:000 .25rem var(--ring);
}

/* Cards */
.card {
 border:1px solid var(--border);
 border-radius:1rem;
 box-shadow:08px30px rgba(2,6,23,0.06);
}
.card .card-title { font-weight:700; }
.card:hover { box-shadow:012px40px rgba(2,6,23,0.10); }

/* Content spacing */
.content { padding-top:1.25rem; }

/* Forms */
.form-control {
 border-radius: .75rem;
 border-color: var(--border);
}
.form-check-input { border-color: #b0b8c4; }
.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
 color: var(--text-muted);
 text-align: end;
}
.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
 text-align: start;
}

/* Validation */
.valid.modified:not([type=checkbox]) { outline:1px solid #26b050; }
.invalid { outline:1px solid #e11d48; }
.validation-message { color: #e11d48; }

/* Alerts */
.alert { border-radius: .75rem; }

/* Badges */
.badge.text-bg-light {
 background: #fff;
 border-color: var(--border) !important;
}

/* Error boundary (keep default text) */
.blazor-error-boundary {
 background-color: #b32121;
 padding:1rem1rem1rem3.7rem;
 color: white;
}
.blazor-error-boundary::after { content: "An error has occurred." }

/* Headings focus */
h1:focus { outline: none; }