.validation-message,.validation-errors { color:#b42318; }
.invalid { border-color:#b42318; }
.valid.modified:not([type=checkbox]) { border-color:#187547; }
.blazor-error-boundary { padding:1rem; background:#fff0ef; }
.pager { display:flex; gap:.5rem; align-items:center; flex-wrap:wrap; margin-top:1rem; }

dialog.selection-modal { width:min(760px,calc(100vw - 32px)); max-height:85dvh; border:1px solid var(--line); border-radius:12px; padding:24px; }
dialog.selection-modal::backdrop { background:#0006; }
.selection-heading { display:flex; justify-content:space-between; align-items:center; gap:1rem; }

/* Shared presentation for page headings, fields, listings and actions. */
.app-main > h1.title { margin-bottom:28px; }
.app-main > .form-actions { margin:0 0 24px; }
.field > label { font-size:14px; font-weight:600; color:var(--ink); }
.app-main .subtitle { font-size:20px; font-weight:600; }
.app-main .surface > details > summary { font-size:14px; font-weight:600; color:var(--ink); min-height:32px; }
.table th :is(a,.btn-link) { display:inline-flex; align-items:center; min-height:32px; padding:4px 0; font:inherit; color:inherit; text-decoration:none; text-align:left; }
.table th :is(a,.btn-link):hover { color:var(--blue); text-decoration:underline; }
.table td :is(a:not(.btn),.btn-link) { display:inline-flex; align-items:center; min-height:32px; padding:4px 0; font-size:14px; font-weight:600; text-decoration:none; }
.table td :is(a:not(.btn),.btn-link):hover { text-decoration:underline; }
.table td .btn + .btn { margin-inline-start:8px; }
.table :is(tbody,tfoot) .form-control { min-width:100px; }
.pager :is(a,button,span) { display:inline-flex; align-items:center; justify-content:center; min-width:36px; min-height:36px; padding:6px 10px; border:1px solid var(--line); border-radius:6px; background:white; font-size:14px; font-weight:600; line-height:1.4; text-decoration:none; }
.pager :is(a,button):hover { background:#edf3ff; color:var(--blue); }
.pager [aria-current="page"] { color:white; background:var(--blue); border-color:var(--blue); }
.validation-message { font-size:13px; margin-top:4px; }
.selection-modal .selection-heading { margin-bottom:20px; }
.selection-modal .selection-heading h2 { margin:0; font-size:20px; }
.schedule-wizard { background:white; border:1px solid var(--line); border-radius:12px; overflow:hidden; margin:0; }
.schedule-steps { background:#edf3ff; border-inline-end:1px solid var(--line); }
.schedule-steps .btn { text-align:left; width:100%; }
@media(max-width:767px) {
 .app-main > h1.title { margin-bottom:24px; }
 .schedule-steps { border-inline-end:0; border-bottom:1px solid var(--line); }
 .pager { gap:6px; }
}

.balance-table :is(th,td):not(:first-child),.table .numeric { text-align:right; font-variant-numeric:tabular-nums; }
.form-control[type="number"] { text-align:right; font-variant-numeric:tabular-nums; }

.notification-host { position:fixed; top:1rem; right:1rem; z-index:1090; width:min(380px, calc(100vw - 2rem)); pointer-events:none; }
.notification-host .toast { width:100%; margin-bottom:.5rem; pointer-events:auto; background-color:var(--bs-alert-bg); color:var(--bs-alert-color); box-shadow:0 4px 16px #0002; }
.notification-host .toast-body { display:flex; align-items:flex-start; gap:1rem; }
.notification-host .toast-message { flex:1; overflow-wrap:anywhere; }
.notification-host .btn-close { flex-shrink:0; }
