:root {
  --brand-50:#e5f6f4;
  --brand-100:#c7ebe7;
  --brand-500:#12827d;
  --brand-600:#0d6965;
  --sky-500:#127caf;
  --amber-500:#a56710;
  --violet-500:#6a49a5;
  --danger-500:#b42318;
  --gray-50:#f4f6f9;
  --gray-100:#eef1f5;
  --gray-200:#dde3ea;
  --gray-300:#c7d0da;
  --gray-500:#687586;
  --gray-600:#4b5565;
  --gray-700:#344054;
  --gray-800:#202b3a;
  --gray-900:#172033;
  --navy:#172033;
  --navy-700:#243247;
  --surface:#ffffff;
  --surface-muted:#f8fafc;
  --radius-sm:.5rem;
  --radius-md:.75rem;
  --radius-lg:1rem;
  --shadow-sm:0 1px 2px rgba(16,24,40,.05);
  --shadow-md:0 6px 18px rgba(16,24,40,.07);
  --shadow-lg:0 18px 40px rgba(16,24,40,.14);
  color:var(--gray-700);
  font-family:"Segoe UI",Arial,Helvetica,sans-serif;
  font-size:16px;
  line-height:1.5;
}

* { box-sizing:border-box; }
body { margin:0; min-width:320px; }
button,input,select,textarea { font:inherit; }
button,a { -webkit-tap-highlight-color:transparent; }
a { color:inherit; }
:focus-visible { outline:3px solid rgba(18,130,125,.48); outline-offset:3px; }
.sr-only { clip:rect(0,0,0,0); border:0; height:1px; margin:-1px; overflow:hidden; padding:0; position:absolute; white-space:nowrap; width:1px; }
.skip-link { background:var(--brand-500); color:#fff; left:1rem; padding:.75rem 1rem; position:fixed; top:-5rem; z-index:100; }
.skip-link:focus { top:1rem; }

.app-body { background:#f6f8fb; }
.app-shell { min-height:100vh; }
.sidebar {
  background:linear-gradient(180deg,#1b283b 0%,#152033 100%);
  color:#d8e1ec;
  display:flex;
  flex-direction:column;
  height:100vh;
  left:0;
  padding:1rem .7rem;
  position:fixed;
  top:0;
  transform:translateX(-100%);
  transition:transform .2s ease;
  width:17.5rem;
  z-index:30;
}
.app-shell.is-sidebar-open .sidebar { transform:translateX(0); }
.avatar { align-items:center; border-radius:.35rem; box-shadow:0 .2rem .5rem rgba(0,0,0,.18); display:inline-flex; height:2.25rem; justify-content:center; width:2.25rem; }
.avatar { background:var(--brand-500); color:#fff; font-size:.82rem; font-weight:800; letter-spacing:.02em; }
.sidebar-close { color:#d8e1ec; display:inline-flex; flex:0 0 2.75rem; }
.sidebar-nav { display:grid; gap:.2rem; }
.sidebar-nav-header { align-items:center; display:flex; justify-content:space-between; margin-bottom:.35rem; min-height:2.75rem; }
.nav-label,.dropdown-label { color:var(--gray-500); font-size:.7rem; font-weight:700; letter-spacing:.08em; margin:.65rem .75rem; text-transform:uppercase; }
.eyebrow { color:var(--gray-500); display:block; font-size:.7rem; font-weight:700; letter-spacing:.08em; margin:0 0 .25rem; text-transform:uppercase; }
.sidebar .nav-label { color:#8da0b7; }
.nav-link { align-items:center; border-left:3px solid transparent; border-radius:.25rem; color:#c5d0dc; display:flex; font-size:.9rem; font-weight:600; gap:.75rem; min-height:2.75rem; padding:.6rem .75rem; text-decoration:none; transition:background-color .18s ease,color .18s ease,border-color .18s ease; }
.nav-link svg,.icon-button svg,.user-menu summary svg,.empty-icon svg { fill:none; height:1.3rem; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.8; width:1.3rem; }
.nav-link:hover { background:rgba(255,255,255,.09); color:#fff; }
.nav-link.is-active { background:rgba(18,130,125,.28); border-left-color:#2ecb9b; color:#fff; }
.sidebar-logout-form { margin:0; }
button.sidebar-logout[type="submit"],button.sidebar-logout[type="submit"]:hover { background:transparent; border:0; border-left:3px solid transparent; border-radius:.25rem; box-shadow:none; color:#c5d0dc; justify-content:flex-start; min-height:2.75rem; padding:.6rem .75rem; text-align:left; width:100%; }
button.sidebar-logout[type="submit"]:hover { background:rgba(255,255,255,.09); color:#fff; }
.sidebar-footer { border-top:1px solid rgba(255,255,255,.12); color:#aab9ca; font-size:.78rem; margin-top:auto; padding:1.1rem .75rem .25rem; }
.status-dot { background:#2ecb9b; border-radius:50%; box-shadow:0 0 0 .16rem rgba(46,203,155,.14); display:inline-block; height:.5rem; margin-right:.45rem; width:.5rem; }
.sidebar-overlay { background:rgba(15,23,42,.58); border:0; inset:0; opacity:0; pointer-events:none; position:fixed; transition:opacity .2s ease; z-index:20; }
.app-shell.is-sidebar-open .sidebar-overlay { opacity:1; pointer-events:auto; }

.app-content { min-width:0; }
.topbar { align-items:center; background:rgba(255,255,255,.96); border-bottom:1px solid var(--gray-200); box-shadow:var(--shadow-sm); display:flex; gap:.8rem; min-height:4.5rem; padding:.75rem 1rem; position:sticky; top:0; z-index:10; }
.icon-button { align-items:center; background:transparent; border:0; border-radius:.3rem; color:var(--gray-600); cursor:pointer; display:inline-flex; height:2.75rem; justify-content:center; padding:0; width:2.75rem; }
.icon-button:hover { background:var(--gray-100); color:var(--brand-600); }
.topbar-title { display:grid; line-height:1.1; }
.topbar-title .eyebrow { margin:0 0 .25rem; }
.topbar-title strong { color:var(--navy); font-size:.95rem; }
.user-menu { margin-left:auto; position:relative; }
.user-menu summary { align-items:center; cursor:pointer; display:flex; gap:.55rem; list-style:none; }
.user-menu summary::-webkit-details-marker { display:none; }
.user-menu summary svg { height:1rem; width:1rem; }
.user-name { display:none; font-size:.85rem; font-weight:600; }
.user-dropdown { background:#fff; border:1px solid var(--gray-200); border-radius:.35rem; box-shadow:var(--shadow-lg); min-width:12rem; padding:.75rem; position:absolute; right:0; top:calc(100% + .7rem); }
.user-dropdown .dropdown-label { display:block; margin:.2rem .3rem .65rem; }
.user-dropdown button { background:transparent; border:0; border-radius:.25rem; color:var(--danger-500); cursor:pointer; font-size:.88rem; font-weight:700; padding:.65rem .55rem; text-align:left; width:100%; }
.user-dropdown button:hover { background:#fef3f2; }

.page-content { margin:0 auto; max-width:86rem; padding:1.5rem 1rem 2.5rem; }
.page-intro,.page-heading { align-items:flex-start; display:flex; flex-direction:column; gap:1rem; justify-content:space-between; margin-bottom:1.5rem; }
.page-intro h1,.page-heading h1 { color:var(--navy); font-size:clamp(1.65rem,2.2vw,2rem); letter-spacing:-.025em; line-height:1.15; margin:.1rem 0 .45rem; }
.page-intro p:not(.eyebrow),.page-heading p:not(.eyebrow) { color:var(--gray-600); margin:0; max-width:48rem; }
.page-actions,.inline-actions { display:flex; flex-wrap:wrap; gap:.6rem; }
.button-link,button[type="submit"] { align-items:center; background:#fff; border:1px solid var(--gray-300); border-radius:var(--radius-sm); box-shadow:var(--shadow-sm); color:var(--gray-700); cursor:pointer; display:inline-flex; font-size:.875rem; font-weight:700; justify-content:center; min-height:2.75rem; padding:.6rem 1rem; text-decoration:none; transition:background-color .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease; }
.button-link:hover,button[type="submit"]:hover { background:var(--gray-100); border-color:var(--gray-300); box-shadow:0 .25rem .6rem rgba(26,38,56,.12); }
.button-primary,.form-card button[type="submit"],.auth-card button[type="submit"] { background:var(--brand-500); border-color:var(--brand-500); color:#fff; }
.button-primary:hover,.form-card button[type="submit"]:hover,.auth-card button[type="submit"]:hover { background:var(--brand-600); border-color:var(--brand-600); }
.button-secondary { background:#e8f1f7; border-color:#bdd7e5; color:var(--sky-500); }
.button-secondary:hover,.button-secondary:focus-visible { background:#d8ebf5; border-color:#8fc2dc; color:#0d5f88; }
.button-link.button-danger { background:#fff7f6; border-color:#f0b8b2; color:var(--danger-500); }
.button-link.button-danger:hover,.button-link.button-danger:focus-visible { background:#fdecea; border-color:#d92d20; color:#8f1a12; }
.button-danger { background:var(--danger-500) !important; border-color:var(--danger-500) !important; color:#fff !important; }
.button-danger:hover,.button-danger:focus-visible { background:#8f1a12 !important; border-color:#8f1a12 !important; }
.text-link { align-self:center; color:var(--brand-600); font-size:.9rem; font-weight:700; }
.donation-table-scroll { border-radius:.3rem; max-width:100%; overflow-x:auto; }
.donation-table { display:table; width:100%; }
.donation-table td { padding-block:.3rem; }
.donation-table td a { align-items:center; display:inline-flex; min-height:2.75rem; }

.empty-dashboard,.form-card,.auth-card,.filter-card,.report-section {
  background:var(--surface);
  border:1px solid var(--gray-200);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-sm);
}
.empty-dashboard { align-items:flex-start; display:flex; flex-direction:column; gap:1rem; padding:1.25rem; }
.empty-dashboard h2 { color:var(--navy); font-size:1.2rem; margin:.2rem 0 .4rem; }
.empty-dashboard p:not(.eyebrow) { color:var(--gray-600); margin:0 0 1rem; }
.empty-icon { align-items:center; background:#e7f1f8; border-radius:.35rem; color:var(--sky-500); display:flex; height:3rem; justify-content:center; width:3rem; }

.filter-card,.report-section { margin-bottom:1.5rem; padding:1rem; }
.filter-card-header { align-items:flex-start; border-bottom:1px solid var(--gray-200); display:flex; flex-direction:column; gap:.4rem; justify-content:space-between; margin-bottom:1rem; padding-bottom:.8rem; }
.filter-card-header .eyebrow { margin:.1rem 0 .2rem; }
.filter-card-header h2 { color:var(--navy); font-size:1.125rem; margin:0; }
.filter-card-header > p,.filter-card-description { color:var(--gray-600); font-size:.875rem; margin:0; }
.filter-card-description { margin-top:.35rem; }
.collapsible-heading { align-items:flex-start; flex-direction:row; gap:1rem; }
.collapsible-heading > div { min-width:0; }
.section-toggle-button,.chart-toggle-button { background:#fff; border:1px solid var(--gray-300); box-shadow:var(--shadow-sm); flex:0 0 auto; height:2.5rem; width:2.5rem; }
.section-toggle-button:hover,.chart-toggle-button:hover,.section-toggle-button:focus-visible,.chart-toggle-button:focus-visible { background:var(--gray-100); border-color:var(--gray-300); color:var(--brand-600); }
.section-toggle-button svg,.chart-toggle-button svg { transition:transform .18s ease; }
.section-toggle-button[aria-expanded="false"] svg,.chart-toggle-button[aria-expanded="false"] svg { transform:rotate(180deg); }
[data-collapsible-panel][hidden] { display:none; }
.filter-grid,.summary-grid { display:grid; gap:.85rem; }
.filter-grid { padding:.15rem 0 .25rem; }
.donation-filter-grid { grid-template-columns:minmax(0,1fr); }
.filter-field label { color:var(--gray-700); display:block; font-size:.84rem; font-weight:700; margin-bottom:.35rem; }
.filter-field input,.filter-field select,.search-form input,.form-card input,.form-card select,.form-card textarea,.auth-card input {
  background:#fff;
  border:1px solid var(--gray-300);
  border-radius:.25rem;
  color:var(--gray-800);
  min-height:2.75rem;
  padding:.6rem .75rem;
  width:100%;
}
.filter-field input:focus,.filter-field select:focus,.search-form input:focus,.form-card input:focus,.form-card select:focus,.form-card textarea:focus,.auth-card input:focus { border-color:var(--brand-500); box-shadow:0 0 0 .18rem rgba(18,130,125,.14); outline:0; }
.filter-actions,.section-heading { align-items:flex-start; display:flex; flex-wrap:wrap; gap:.65rem; justify-content:space-between; margin-top:1rem; }
.filter-actions-right { justify-content:flex-end; }
.summary-context { align-items:center; background:#eef8f7; border:1px solid var(--brand-100); border-left:4px solid var(--brand-500); border-radius:var(--radius-sm); color:var(--gray-700); display:flex; flex-wrap:wrap; gap:.35rem .65rem; margin:0 0 1rem; padding:.75rem .9rem; }
.summary-context span { color:var(--gray-600); font-size:.76rem; font-weight:800; letter-spacing:.045em; text-transform:uppercase; }
.summary-context strong { color:var(--navy); font-size:.92rem; }
.summary-grid { grid-template-columns:repeat(2,minmax(0,1fr)); margin:0 0 1.5rem; }
.metric-card { background:var(--surface); border:1px solid var(--gray-200); border-radius:var(--radius-md); box-shadow:var(--shadow-sm); min-height:7.5rem; padding:1.1rem 1.15rem; position:relative; }
.metric-card::before { background:var(--brand-500); border-radius:999px; content:""; height:.22rem; left:1.15rem; position:absolute; right:1.15rem; top:0; }
.metric-card span { color:var(--gray-600); display:block; font-size:.78rem; font-weight:700; letter-spacing:.035em; margin-bottom:.55rem; text-transform:uppercase; }
.metric-card strong { color:var(--navy); display:block; font-size:clamp(1.2rem,1.8vw,1.55rem); font-variant-numeric:tabular-nums; line-height:1.2; overflow-wrap:anywhere; }
.metric-card small { color:var(--gray-500); display:block; font-size:.78rem; margin-top:.55rem; }
.section-heading { border-bottom:1px solid var(--gray-200); margin:0 0 1rem; padding-bottom:.8rem; }
.section-heading > div > .eyebrow { margin:0 0 .2rem; }
.section-heading h2 { color:var(--navy); font-size:1.15rem; margin:.15rem 0 0; }
.directory-heading { align-items:center; gap:1rem; }
.table-search-form { margin:0; width:100%; }
.table-search-control { align-items:center; border:1px solid var(--gray-300); border-radius:.25rem; display:flex; margin-left:auto; overflow:hidden; width:100%; }
.table-search-control > button { align-items:center; background:#fff; border:0; border-right:1px solid var(--gray-200); box-shadow:none; color:var(--sky-500); cursor:pointer; display:inline-flex; flex:0 0 2.65rem; height:2.65rem; justify-content:center; min-height:2.65rem; padding:0; width:2.65rem; }
.table-search-control > button:hover,.table-search-control > button:focus-visible { background:#e8f1f7; color:#0d5f88; }
.table-search-control > button svg { fill:none; height:1rem; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.9; width:1rem; }
.table-search-control input { border:0; color:var(--gray-800); min-height:2.65rem; min-width:0; padding:.55rem .75rem; width:100%; }
.table-search-control input:focus { outline:0; }
.table-search-control:focus-within { border-color:var(--brand-500); box-shadow:0 0 0 .18rem rgba(18,130,125,.14); }
.table-search-control.donor-filter-picker { overflow:visible; }
.section-total { color:var(--brand-600); font-size:1.1rem; font-variant-numeric:tabular-nums; }
.distribution-list { border:1px solid var(--gray-200); border-radius:var(--radius-sm); overflow:hidden; }
.distribution-row { align-items:center; display:flex; flex-wrap:wrap; font-size:.88rem; gap:.4rem 1rem; justify-content:space-between; padding:.75rem .9rem; }
.distribution-row:nth-child(odd) { background:var(--gray-50); }
.distribution-row + .distribution-row { border-top:1px solid var(--gray-200); }
.distribution-row > span:last-child { color:var(--gray-600); }
.empty-state { background:#eef8f7; border:1px solid var(--brand-100); border-radius:var(--radius-sm); color:var(--gray-700); margin:0; padding:.85rem 1rem; }

.pagination { align-items:center; display:grid; gap:.75rem; grid-template-columns:1fr auto 1fr; margin-top:1rem; }
.pagination span { color:var(--gray-600); font-size:.85rem; }
.pagination-summary { grid-column:2; text-align:center; }
.pagination-actions { align-items:center; display:flex; gap:.5rem; grid-column:3; justify-self:end; }
.pagination .button-link { border-color:var(--brand-500); color:var(--brand-600); }
.pagination .button-link:hover { background:var(--brand-500); color:#fff; }
.search-form { align-items:stretch; background:var(--surface); border:1px solid var(--gray-200); border-radius:var(--radius-md); box-shadow:var(--shadow-sm); display:grid; gap:.65rem; margin:0 0 1.5rem; max-width:none; padding:1rem; }
.search-form label { color:var(--gray-700); font-size:.85rem; font-weight:700; }
.search-form button { background:var(--brand-500); border-color:var(--brand-500); color:#fff; }
.search-form button:hover { background:var(--brand-600); border-color:var(--brand-600); color:#fff; }

.form-card { border-top:3px solid var(--brand-500); max-width:44rem; padding:1.25rem; }
.donation-form-card { max-width:48rem; }
.auth-body { background:#f5f6f8; }
.auth-layout { align-items:center; display:flex; justify-content:center; min-height:100vh; min-height:100svh; padding:1.5rem; }
.login-shell { width:min(100%,29rem); }
.login-form-panel { width:100%; }
.auth-card { background:#fff; border:1px solid #dfe4d9; border-radius:var(--radius-lg); box-shadow:0 1.5rem 3.5rem rgba(31,53,32,.12); padding:1.25rem; width:min(100%,29rem); }
.auth-card-header { border-bottom:1px solid #e5e9e1; margin-bottom:1rem; padding-bottom:.9rem; text-align:center; }
.auth-brand { align-items:center; display:flex; justify-content:center; margin:0 auto .75rem; min-height:0; }
.auth-brand-logo { display:block; height:auto; max-width:100%; object-fit:contain; width:15rem; }
.auth-card button svg { fill:none; height:1.2rem; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.8; width:1.2rem; }
.auth-card-header > p:last-child { color:var(--gray-600); margin:0; }
.auth-card form { display:grid; gap:.85rem; }
.auth-field { margin:0; }
.auth-card button[type="submit"] { background:#234d22; border-color:#234d22; gap:.75rem; justify-content:space-between; margin-top:.125rem; min-height:2.75rem; padding-inline:1rem; width:100%; }
.auth-card button[type="submit"]:hover { background:#173719; border-color:#173719; }
.auth-card button[type="submit"] svg { transition:transform .18s ease; }
.auth-card button[type="submit"]:hover svg { transform:translateX(.2rem); }
.auth-help { color:#687566; font-size:.78rem; margin:.9rem 0 0 !important; text-align:center; }
.auth-card h1,.form-card h1 { color:var(--navy); font-size:1.4rem; margin-top:0; }
.form-card p,.form-card .form-field,.auth-card p { margin:0 0 1rem; }
.form-card label,.auth-card label { color:var(--gray-700); display:block; font-size:.86rem; font-weight:700; margin-bottom:.35rem; }
.form-card textarea { min-height:7rem; resize:vertical; }
.form-card input[type="checkbox"] { height:1.25rem; min-height:0; vertical-align:middle; width:1.25rem; }
.errorlist,.form-error { color:var(--danger-500); font-size:.84rem; list-style:none; margin:.45rem 0 0; padding:0; }
.messages { display:grid; gap:.5rem; left:50%; list-style:none; margin:0; padding:0; position:fixed; top:5.25rem; transform:translateX(-50%); width:min(25rem,calc(100vw - 2rem)); z-index:40; }
.message { align-items:flex-start; border:1px solid var(--gray-200); border-left:4px solid var(--sky-500); border-radius:.3rem; box-shadow:var(--shadow-lg); color:var(--gray-700); display:flex; font-size:.875rem; gap:.75rem; justify-content:space-between; padding:.75rem 1rem; }
.message-success { background:#ecfdf3; border-color:#abefc6; border-left-color:#079455; color:#05603a; }
.message-error { background:#fef3f2; border-color:#fecdca; border-left-color:var(--danger-500); color:#912018; }
.message-close { appearance:none; background:transparent; border:0; color:currentColor; cursor:pointer; font-size:1.3rem; line-height:1; margin:-.1rem -.35rem -.1rem 0; min-height:1.5rem; min-width:1.5rem; padding:0; }

.data-table-scroll,.donation-table-scroll { border:1px solid var(--gray-200); border-radius:var(--radius-sm); max-width:100%; overflow-x:auto; }
table { background:var(--surface); border:0; border-collapse:separate; border-spacing:0; min-width:44rem; white-space:nowrap; width:100%; }
th,td { border-bottom:1px solid var(--gray-200); padding:.8rem 1rem; text-align:left; vertical-align:middle; }
th { background:var(--surface-muted); color:var(--gray-600); font-size:.75rem; font-weight:800; letter-spacing:.045em; text-transform:uppercase; }
td { color:var(--gray-700); font-size:.875rem; }
.donation-breakdown-table .amount-breakdown-column,.donation-breakdown-table .actions-column { text-align:center; }
.donation-breakdown-table .actions-column .action-button-group { justify-content:center; }
.sort-link { align-items:center; color:inherit; display:inline-flex; gap:.35rem; min-height:1.5rem; text-decoration:none; }
.sort-link:hover,.sort-link:focus-visible { color:var(--brand-600); }
.sort-icon { fill:none; height:.875rem; stroke:#9db2c5; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.8; width:.75rem; }
.sort-link.is-active .sort-icon { stroke:var(--brand-600); }
.sort-link.is-active:not(.is-descending) .sort-icon-down,.sort-link.is-descending .sort-icon-up { opacity:.35; }
.action-button-group { align-items:center; display:inline-flex; white-space:nowrap; }
.icon-action-button { align-items:center; background:#fff; border:1px solid var(--gray-300); box-shadow:none; color:var(--sky-500); cursor:pointer; display:inline-flex; height:2.25rem; justify-content:center; min-height:2.25rem; padding:0; text-decoration:none; width:2.45rem; }
.donation-table td a.icon-action-button { min-height:2.25rem; }
.icon-action-button + .icon-action-button { margin-left:-1px; }
.icon-action-button:first-child { border-radius:.25rem 0 0 .25rem; }
.icon-action-button:last-child { border-radius:0 .25rem .25rem 0; }
.icon-action-button:hover,.icon-action-button:focus-visible { background:#e8f1f7; border-color:#8fc2dc; color:#0d5f88; position:relative; z-index:1; }
.icon-action-button svg { fill:none; height:1rem; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.8; width:1rem; }
.icon-action-print { color:var(--brand-600); }
.icon-action-print:hover,.icon-action-print:focus-visible { background:#e8f4f3; border-color:var(--brand-100); color:var(--brand-600); }
.receipt-menu { display:inline-block; height:2.25rem; position:relative; width:2.45rem; }
.receipt-menu > summary.icon-action-button { -webkit-appearance:none; appearance:none; box-sizing:border-box; cursor:pointer; display:inline-flex; flex:0 0 2.45rem; font-size:0; height:2.25rem; line-height:1; list-style:none; min-height:2.25rem; padding:0; vertical-align:top; width:2.45rem; }
.receipt-menu > summary::marker,.receipt-menu > summary::-webkit-details-marker { content:""; display:none; }
.receipt-menu > summary.icon-action-button svg { display:block; flex:0 0 1rem; height:1rem; width:1rem; }
.action-button-group > .receipt-menu > .icon-action-button { border-radius:0 .25rem .25rem 0; margin-left:-1px; }
.receipt-menu-options { background:#fff; border:1px solid var(--gray-200); border-radius:.35rem; box-shadow:var(--shadow-lg); display:grid; gap:.35rem; min-width:15.5rem; padding:.45rem; position:fixed; visibility:hidden; z-index:50; }
.receipt-menu.is-positioned .receipt-menu-options { visibility:visible; }
.receipt-menu-header { align-items:center; color:var(--gray-700); display:flex; font-size:.78rem; font-weight:800; justify-content:space-between; min-height:2rem; padding-left:.35rem; }
.receipt-menu-close { align-items:center; background:transparent; border:0; border-radius:.25rem; color:var(--gray-500); cursor:pointer; display:inline-flex; height:2rem; justify-content:center; padding:0; width:2rem; }
.receipt-menu-close:hover,.receipt-menu-close:focus-visible { background:var(--gray-100); color:var(--gray-800); outline:2px solid var(--brand-100); outline-offset:-2px; }
.receipt-menu-close svg { fill:none; height:1rem; stroke:currentColor; stroke-linecap:round; stroke-width:2; width:1rem; }
.receipt-menu-option { align-items:center; background:#f4fbfa; border:1px solid var(--brand-100); border-radius:.25rem; color:var(--brand-700); display:flex; font-size:.82rem; font-weight:700; justify-content:center; min-height:2.25rem; padding:.45rem .65rem; text-align:center; text-decoration:none; white-space:nowrap; }
.receipt-menu-option:hover,.receipt-menu-option:focus-visible { background:var(--brand-600); border-color:var(--brand-600); color:#fff; outline:none; text-decoration:none; }
tbody tr { transition:background-color .16s ease; }
tbody tr[data-row-url],tbody tr[data-row-modal-open] { cursor:pointer; }
tbody tr[data-row-url]:focus-visible,tbody tr[data-row-modal-open]:focus-visible { outline:3px solid rgba(18,130,125,.32); outline-offset:-3px; }
tbody tr:nth-child(even) { background:#fbfcfd; }
tbody tr:hover { background:#edf7f6; }
tbody tr:last-child td { border-bottom:0; }
td a { color:var(--brand-600); font-weight:700; text-decoration:none; }
td a:hover { color:var(--brand-500); text-decoration:underline; }
.table-actions { align-items:center; display:flex; flex-wrap:wrap; gap:.5rem; }
.table-action { align-items:center; background:transparent; border:0; color:var(--brand-600); cursor:pointer; display:inline-flex; font-size:.86rem; font-weight:700; min-height:2.75rem; padding:.35rem .2rem; text-decoration:none; }
.table-action:hover,.table-action:focus-visible { color:var(--brand-500); text-decoration:underline; }
.table-action-danger { color:var(--danger-500); }
.table-action-danger:hover,.table-action-danger:focus-visible { color:#8f1a12; }
.status-badge { border-radius:999px; display:inline-flex; font-size:.72rem; font-weight:700; line-height:1; padding:.36rem .55rem; text-transform:uppercase; }
.status-badge.is-active { background:#dff5ea; color:#176b45; }
.status-badge.is-inactive,.status-badge.is-cancelled { background:#fce9e7; color:#a3342a; }
.status-badge.is-pending { background:#fff1d7; color:#81590e; }
.modal-field label { color:var(--gray-700); display:block; font-size:.86rem; font-weight:700; margin-bottom:.35rem; }
.modal-field input,.modal-field textarea { background:#fff; border:1px solid var(--gray-300); border-radius:.25rem; color:var(--gray-800); min-height:2.75rem; padding:.6rem .75rem; width:100%; }
.modal-field textarea { min-height:7rem; resize:vertical; }
.modal-field input:focus,.modal-field textarea:focus { border-color:var(--brand-500); box-shadow:0 0 0 .18rem rgba(18,130,125,.14); outline:0; }
.checkbox-field { align-items:center; color:var(--gray-700); display:flex; font-size:.9rem; font-weight:700; gap:.6rem; min-height:2.75rem; }
.checkbox-field input { height:1.25rem; width:1.25rem; }
.modal-warning { background:#fff7ed; border:1px solid #fed7aa; border-left:4px solid #f97316; border-radius:.3rem; color:#9a3412; margin:0; padding:.8rem 1rem; }
.delete-dialog { background:#fff; border:1px solid var(--gray-200); border-radius:var(--radius-md); box-shadow:0 1.5rem 3rem rgba(16,24,40,.24); color:var(--gray-800); max-width:calc(100% - 2rem); padding:0; width:min(100% - 2rem,32rem); }
.delete-dialog::backdrop { background:rgba(16,24,40,.56); }
.delete-dialog-content { display:grid; gap:1rem; padding:1.25rem; }
.delete-dialog-content h2,.delete-dialog-content p { margin:0; }
.delete-dialog-content h2 { color:var(--gray-900); font-size:1.25rem; }
.delete-dialog-actions { display:flex; flex-wrap:wrap; gap:.625rem; justify-content:flex-end; }
body.has-open-modal { overflow:hidden; }
.audit-entry { border:1px solid var(--gray-200); border-radius:var(--radius-sm); overflow:hidden; }
.audit-entry + .audit-entry { margin-top:.85rem; }
.audit-entry-header { background:var(--surface-muted); padding:.9rem 1rem; }
.audit-entry-header h3 { color:var(--navy); font-size:1rem; margin:0 0 .25rem; overflow-wrap:anywhere; }
.audit-entry-header p { color:var(--gray-600); font-size:.84rem; margin:0; }
.audit-entry-details { padding:.8rem 1rem 1rem; }
.audit-entry-details summary { color:var(--brand-600); cursor:pointer; font-size:.88rem; font-weight:700; min-height:2.75rem; padding:.6rem 0; }
.details { background:#fff; border:1px solid var(--gray-200); border-radius:var(--radius-md); display:grid; margin:0 0 1.5rem; overflow:hidden; }
.details dt,.details dd { margin:0; padding:.7rem .9rem; }
.details dt { background:#eef3f7; color:var(--gray-600); font-size:.8rem; font-weight:700; }
.details dd { border-top:1px solid var(--gray-200); color:var(--gray-800); }
.details dt:not(:first-of-type) { border-top:1px solid var(--gray-200); }
.details dd.detail-amount-row { padding-block:.3rem; }
.detail-value-action { align-items:center; display:inline-flex; gap:.6rem; }
.detail-print-action { align-items:center; background:#fff; border:1px solid var(--gray-300); border-radius:.3rem; color:var(--brand-600); cursor:pointer; display:inline-flex; height:2.75rem; justify-content:center; text-decoration:none; width:2.75rem; }
.detail-print-action:hover,.detail-print-action:focus-visible { background:#e8f4f3; border-color:var(--brand-100); color:var(--brand-600); }
.detail-print-action svg { fill:none; height:1rem; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.8; width:1rem; }

.donor-picker { margin-bottom:1rem; position:relative; }
.donor-picker > label { margin-bottom:.35rem; }
.donor-filter-picker { position:relative; }
.field-hint { color:var(--gray-500); font-size:.8rem; margin:.4rem 0 0 !important; }
.donor-suggestions { background:#fff; border:1px solid var(--gray-200); border-radius:.3rem; box-shadow:var(--shadow-lg); display:grid; left:0; max-height:15rem; overflow-y:auto; position:absolute; right:0; top:calc(100% + .25rem); z-index:20; }
.donor-suggestions[hidden] { display:none; }
.donor-option { align-items:center; background:#fff; border:0; color:var(--gray-800); cursor:pointer; display:flex; gap:.75rem; justify-content:space-between; min-height:2.75rem; padding:.65rem .75rem; text-align:left; width:100%; }
.donor-option + .donor-option { border-top:1px solid var(--gray-100); }
.donor-option:hover,.donor-option:focus-visible { background:#e8f4f3; }
.donor-option > span { flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.donation-form-card .amount-grid { align-items:start; display:grid; gap:.75rem; grid-template-columns:minmax(0,1fr) minmax(0,1fr); margin-bottom:1rem; }
.donation-form-card .amount-grid .form-field { margin-bottom:0; min-width:0; }
.donation-form-card .amount-grid .errorlist { white-space:normal; }
.total-preview { align-items:center; background:#e8f4f3; border:1px solid var(--brand-100); border-left:4px solid var(--brand-500); border-radius:.3rem; display:flex; justify-content:space-between; margin:1rem 0 !important; min-height:2.75rem; padding:.6rem .75rem; }
.total-preview span { color:var(--gray-700); font-size:.88rem; font-weight:700; }
.total-preview strong { color:var(--brand-600); font-size:1.05rem; }
.donation-form-card .amount-grid .total-preview { grid-column:1 / -1; margin:0 !important; min-width:0; }
.report-section h2 { overflow-wrap:anywhere; font-size:1.1rem; }
.report-section summary { cursor:pointer; min-height:2.75rem; padding:.6rem 0; }
.sidebar { overflow-y:auto; }

@media (min-width:720px) {
  .donation-form-card .amount-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .donation-form-card .amount-grid .total-preview { align-self:start; grid-column:auto; margin-top:1.55rem !important; }
}

@media (max-width:480px) {
  .donation-form-card .amount-grid { grid-template-columns:minmax(0,1fr); }
}

@media (min-width:960px) {
  html { scrollbar-gutter:stable; }
  .auth-card { padding:1.5rem; }
  .app-shell { display:flex; }
  .sidebar { position:sticky; transform:none; width:16.5rem; }
  .sidebar-close,.menu-button,.sidebar-overlay { display:none; }
  .app-content { flex:1; }
  .messages { left:calc(50% + 8.25rem); }
  .topbar { padding:.8rem 2rem; }
  .user-name { display:inline; }
  .page-content { padding:1.25rem 2rem 3rem; }
  .page-intro,.page-heading { align-items:center; flex-direction:row; }
  .empty-dashboard { align-items:center; flex-direction:row; gap:1.25rem; padding:1.75rem; }
  .filter-card,.report-section { padding:1.25rem; }
  .filter-card-header { align-items:center; flex-direction:row; }
  .filter-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .donation-filter-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .donation-filter-grid .filter-field-wide { grid-column:span 2; }
  .directory-heading { align-items:center; }
  .table-search-form { max-width:22rem; }
  .summary-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .search-form { align-items:end; grid-template-columns:1fr auto; }
  .search-form label { grid-column:1 / -1; }
  .search-form button { min-width:6rem; }
  .details { grid-template-columns:13rem 1fr; }
  .details dd,.details dt:not(:first-of-type) { border-top:1px solid var(--gray-200); }
  .details dt:first-of-type,.details dd:nth-of-type(1) { border-top:0; }
}

@media (min-width:720px) and (max-height:800px) {
  .auth-layout { padding:1rem; }
  .login-shell,.auth-card { width:min(100%,26rem); }
  .auth-card { padding:1.1rem; }
  .auth-card-header { margin-bottom:.75rem; padding-bottom:.7rem; }
  .auth-brand { margin-bottom:.45rem; }
  .auth-brand-logo { width:13rem; }
  .auth-card form { gap:.65rem; }
  .auth-card button[type="submit"] { margin-top:0; min-height:2.75rem; }
  .auth-help { margin-top:.65rem !important; }
}

@media (max-width:520px) {
  .pagination { grid-template-columns:1fr; }
  .pagination-summary { grid-column:1; grid-row:1; justify-self:center; }
  .pagination-actions { grid-column:1; grid-row:2; justify-self:end; }
  .auth-layout { align-items:flex-start; padding:1rem; }
  .auth-card { border-radius:var(--radius-md); padding:1rem; }
  .auth-brand { min-height:0; }
  .auth-brand-logo { width:min(100%,13rem); }
  .messages { top:5rem; width:calc(100vw - 1rem); }
  .delete-dialog-actions { flex-direction:column-reverse; }
  .delete-dialog-actions > * { width:100%; }
}

@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { scroll-behavior:auto !important; transition-duration:.01ms !important; }
}
