/* ── Google Fonts ── */
@import url('https://fonts.googleapis.com/css2?family=DM+Serif+Display&family=DM+Sans:wght@300;400;500;600;700&display=swap');

/* ── Reset Blazor defaults ── */
html, body {
    font-family: 'DM Sans', ui-sans-serif, system-serif;
    font-size: 16px;
    line-height: 1.5;
    margin: 0;
    padding: 0;
    height: 100%;
    overflow: hidden;
}

/* ── Blazor validation ── */
.valid.modified:not([type=checkbox]) { outline: 1px solid #10b981; }
.invalid                              { outline: 1px solid #f43f5e; }
.validation-message                   { color: #f43f5e; font-size: 0.75rem; }

/* ── Blazor error boundary ── */
.blazor-error-boundary {
    background: #7f1d1d;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
    border-radius: 0.5rem;
}
.blazor-error-boundary::after { content: "An error has occurred." }

/* ── #blazor-error-ui ── */
#blazor-error-ui       { display: none; }
#blazor-error-ui.shown { display: flex; }

/* ── Scrollbar styling ── */
::-webkit-scrollbar       { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #94a3b8; }

/* ── NavLink active state ── */
a.nav-item.active {
    background: rgba(255,255,255,0.12) !important;
    color: #fff !important;
}

/* ── Responsive table scroll ── */
.table-responsive { overflow-x: auto; -webkit-overflow-scrolling: touch; }

/* ── Focus rings ── */
:focus-visible {
    outline: 2px solid #2a54ff;
    outline-offset: 2px;
}

/* ── Print ── */
@media print {
    aside, header { display: none !important; }
    main          { padding: 0 !important; }
}
