h1:focus { outline: none; }
.valid.modified:not([type=checkbox]) { outline: 1px solid #26b050; }
.invalid { outline: 1px solid #e50000; }
.validation-message { color: #e50000; }
.blazor-error-boundary { background: #b32121; padding: 1rem 1rem 1rem 3.7rem; color: white; }
.blazor-error-boundary::after { content: "An error has occurred." }
.darker-border-checkbox.form-check-input { border-color: #929292; }
.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder { color: var(--bs-secondary-color); text-align: end; }
.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder { text-align: start; }
body { font-family: "Segoe UI", Arial, sans-serif; background: linear-gradient(180deg, #eef2ff 0%, #f8fafc 18%, #f3f4f6 100%); color: #111827; }
h1 { margin-top: 0; margin-bottom: 1rem; font-size: 2.2rem; line-height: 1.1; }
h3 { margin-top: 0; }
.form-control { width: 100%; min-height: 40px; padding: 0.6rem 0.75rem; border: 1px solid #d1d5db; border-radius: 12px; box-sizing: border-box; font: inherit; background: white; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.form-control:focus { outline: none; border-color: #2563eb; box-shadow: 0 0 0 3px rgba(37,99,235,0.12); transform: translateY(-1px); }
.btn { display: inline-block; border: none; border-radius: 12px; padding: 0.72rem 1rem; font: inherit; cursor: pointer; transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, opacity .18s ease; }
.btn:hover { transform: translateY(-1px); box-shadow: 0 10px 24px rgba(15,23,42,.08); }
.btn:disabled { opacity: .6; cursor: not-allowed; box-shadow: none; transform: none; }
.btn-primary { background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%); color: white; }
.btn-primary:hover { background: linear-gradient(135deg, #1d4ed8 0%, #1e40af 100%); }
.btn-secondary { background: white; color: #1f2937; border: 1px solid #d1d5db; }
.btn-secondary:hover { background: #f8fafc; }
.message-error, .message-success { border-radius: 14px; padding: 0.85rem 1rem; margin-bottom: 1rem; box-shadow: 0 8px 22px rgba(15,23,42,.05); }
.message-error { color: #b91c1c; background: #fef2f2; border: 1px solid #fecaca; }
.message-success { color: #166534; background: #f0fdf4; border: 1px solid #bbf7d0; }
.data-table { width: 100%; border-collapse: collapse; }
.data-table th, .data-table td { text-align: left; padding: 0.78rem 0.65rem; border-bottom: 1px solid #e5e7eb; vertical-align: top; }
.data-table th { color: #374151; font-weight: 700; background: #f8fafc; }
.data-table tbody tr { transition: background-color .16s ease, transform .16s ease; }
.data-table tbody tr:hover { background: #f9fafb; }
.compact-table th, .compact-table td { font-size: .92rem; padding: .55rem .5rem; }
.grid-2 { display: grid; grid-template-columns: repeat(2, minmax(240px, 1fr)); gap: 1rem; }
.grid-3 { display: grid; grid-template-columns: repeat(3, minmax(220px, 1fr)); gap: 1rem; }
.grid-4 { display: grid; grid-template-columns: repeat(4, minmax(180px, 1fr)); gap: 1rem; }
@media (max-width: 1100px) { .grid-4, .grid-3, .grid-2 { grid-template-columns: 1fr; } }
.badge { display: inline-block; padding: 0.35rem 0.65rem; border-radius: 999px; font-size: 0.82rem; font-weight: 600; }
.badge-blue { background: #dbeafe; color: #1d4ed8; }
.badge-green { background: #dcfce7; color: #15803d; }
.badge-red { background: #fee2e2; color: #b91c1c; }
.badge-yellow { background: #fef3c7; color: #b45309; }
.badge-gray { background: #e5e7eb; color: #374151; }
.page-hero { display:flex; justify-content:space-between; gap:1.5rem; align-items:flex-end; margin-bottom:1.5rem; padding:1.35rem 1.5rem; border-radius:24px; background: radial-gradient(circle at top left, rgba(37,99,235,.12), transparent 45%), linear-gradient(180deg, rgba(255,255,255,.95), rgba(255,255,255,.82)); border: 1px solid rgba(148,163,184,.18); box-shadow: 0 18px 45px rgba(15,23,42,.08); }
.page-subtitle { margin:0; color:#475569; max-width:780px; line-height:1.55; }
.eyebrow { display:inline-block; margin-bottom:.55rem; font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; font-weight:700; color:#2563eb; }
.hero-actions { display:flex; flex-wrap:wrap; gap:.75rem; align-items:center; }
.quick-access-grid { gap: 1rem; }
.quick-link-card { text-align:left; border:1px solid #e5e7eb; background: linear-gradient(180deg,#ffffff,#f8fafc); border-radius:18px; padding:1rem 1.1rem; cursor:pointer; box-shadow:0 8px 24px rgba(15,23,42,.05); transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.quick-link-card:hover { transform: translateY(-2px); box-shadow: 0 16px 30px rgba(15,23,42,.08); border-color:#bfdbfe; }
.quick-link-card strong { display:block; margin-bottom:.35rem; }
.quick-link-card span { color:#64748b; }
.dashboard-stack { margin-bottom:1.25rem; }
.dashboard-context-grid { display:grid; gap:.5rem; }
.print-page-shell { max-width: 980px; margin: 0 auto; padding: 1rem; }
.print-toolbar { display:flex; gap:.75rem; justify-content:flex-end; margin-bottom:1rem; }
.receipt-print-card, .report-print-card { background:#fff; border-radius:20px; border:1px solid #e5e7eb; box-shadow: 0 18px 45px rgba(15,23,42,.08); padding:1.5rem; }
.receipt-header { display:flex; justify-content:space-between; gap:1rem; align-items:flex-start; margin-bottom:1.25rem; border-bottom:1px solid #e5e7eb; padding-bottom:1rem; }
.receipt-number { color:#475569; font-weight:600; }
.receipt-amount { font-size:2rem; font-weight:800; color:#1d4ed8; white-space:nowrap; }
.receipt-grid, .report-print-stats { display:grid; grid-template-columns: repeat(2, minmax(240px, 1fr)); gap:.9rem 1.2rem; margin-bottom:1rem; }
.receipt-grid div, .report-print-stats div { display:flex; flex-direction:column; gap:.2rem; padding:.8rem .9rem; border-radius:14px; background:#f8fafc; }
.receipt-purpose { border-radius:16px; background:#f8fafc; padding:1rem; margin-bottom:1rem; }
.receipt-purpose p { margin:.5rem 0 0 0; white-space:pre-wrap; }
.receipt-footer { display:flex; justify-content:space-between; gap:1rem; color:#64748b; font-size:.92rem; border-top:1px solid #e5e7eb; padding-top:1rem; }
.animate-in { animation: fadeSlideIn .45s ease both; }
.delay-1 { animation-delay: .05s; }
.delay-2 { animation-delay: .12s; }
.delay-3 { animation-delay: .18s; }
@keyframes fadeSlideIn { from { opacity:0; transform: translateY(10px); } to { opacity:1; transform: translateY(0); } }
@media (max-width: 900px) { .page-hero, .receipt-header, .receipt-footer { flex-direction:column; align-items:flex-start; } .receipt-grid, .report-print-stats { grid-template-columns:1fr; } }
@media print { body { background:#fff !important; } .no-print, .sidebar, #blazor-error-ui { display:none !important; } .main-content { padding:0 !important; } .page-hero { display:none !important; } .receipt-print-card, .report-print-card { box-shadow:none; border:none; padding:0; } }
.field-help-text { margin-top:.35rem; color:#64748b; font-size:.9rem; }

#blazor-error-ui { display:none; position:fixed; bottom:1rem; left:50%; transform:translateX(-50%); background:#fff1f2; color:#991b1b; border:1px solid #fecdd3; padding:.85rem 1rem; border-radius:14px; box-shadow:0 16px 35px rgba(15,23,42,.12); z-index:5000; }
#blazor-error-ui .dismiss { cursor:pointer; margin-left:.5rem; }
.member-lookup-field { position:relative; }
.lookup-suggestions { position:absolute; z-index:60; left:0; right:0; margin-top:.35rem; background:#fff; border:1px solid #d1d5db; border-radius:14px; box-shadow:0 14px 30px rgba(15,23,42,.12); max-height:280px; overflow:auto; padding:.35rem; }
.lookup-suggestion-item { width:100%; text-align:left; border:none; background:transparent; border-radius:10px; padding:.7rem .75rem; cursor:pointer; display:flex; flex-direction:column; gap:.1rem; }
.lookup-suggestion-item:hover { background:#f8fafc; }
.lookup-suggestion-item span { color:#64748b; font-size:.9rem; }
.inline-checkbox-label { display:flex; align-items:center; gap:.6rem; font-weight:600; }


.section-intro { display:flex; flex-direction:column; gap:.28rem; margin-bottom:1rem; color:#475569; }
.section-intro strong { color:#111827; }
.section-actions { margin-top:1rem; display:flex; gap:.75rem; flex-wrap:wrap; }
.filter-shell { padding:1rem; border-radius:18px; background: linear-gradient(180deg, #f8fafc, #ffffff); border:1px solid #e5e7eb; box-shadow: inset 0 1px 0 rgba(255,255,255,.55); }
.empty-state-block { display:flex; flex-direction:column; gap:.35rem; padding:1rem 1.1rem; border-radius:18px; background:#f8fafc; border:1px dashed #cbd5e1; color:#475569; }
.modern-table { border-spacing:0; overflow:hidden; border-radius:18px; }
.modern-table th:first-child { border-top-left-radius:16px; }
.modern-table th:last-child { border-top-right-radius:16px; }
.record-title { font-weight:700; color:#0f172a; }
.record-subtitle { color:#64748b; font-size:.92rem; }
.inline-action-link { color:#1d4ed8; text-decoration:none; font-weight:600; }
.inline-action-link:hover { text-decoration:underline; }
.record-grid { display:grid; grid-template-columns: repeat(2, minmax(280px, 1fr)); gap:1rem; }
.record-list-card { display:flex; flex-direction:column; gap:.8rem; padding:1rem 1.05rem; border-radius:20px; background:linear-gradient(180deg,#ffffff,#f8fafc); border:1px solid rgba(148,163,184,.18); box-shadow:0 10px 28px rgba(15,23,42,.06); transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.record-list-card:hover { transform:translateY(-2px); box-shadow:0 18px 36px rgba(15,23,42,.08); border-color:#bfdbfe; }
.record-card-top { display:flex; justify-content:space-between; gap:.75rem; align-items:center; }
.record-meta-stack { display:flex; flex-direction:column; gap:.45rem; color:#475569; }
.record-card-actions { display:flex; gap:.75rem; flex-wrap:wrap; margin-top:auto; }
.detail-grid { display:grid; grid-template-columns: repeat(2, minmax(220px, 1fr)); gap:1rem; }
.detail-pill { display:flex; flex-direction:column; gap:.25rem; padding:1rem; border-radius:18px; background:linear-gradient(180deg,#ffffff,#f8fafc); border:1px solid #e5e7eb; }
.detail-pill strong { color:#475569; font-size:.88rem; }
.detail-pill span { color:#111827; font-weight:600; }
.detail-pill-wide { grid-column:1 / -1; }
.event-list-card .record-title, .document-card .record-title { font-size:1.08rem; }
.hero-actions .btn { white-space:nowrap; }
@media (max-width: 1100px) { .record-grid, .detail-grid { grid-template-columns:1fr; } }

.sidebar-link,
.sidebar-link:link,
.sidebar-link:visited,
.sidebar-link:hover,
.sidebar-link:focus,
.sidebar-link:active {
    text-decoration: none !important;
}
