:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0f141c;--panel:#171e2a;--panel-2:#1d2636;--line:#2a3548;--text:#e8edf5;--muted:#93a0b5;--accent:#3dbea5;--accent-2:#f0b429;--danger:#e36a6a;--ok:#6ecf8b;font-family:Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{background:var(--bg);min-height:100%;color:var(--text);margin:0;overflow-x:hidden}a{color:var(--accent);text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.skip-link{z-index:30;background:var(--accent);color:#06241e;border-radius:6px;padding:8px 12px;position:absolute;top:8px;left:8px;transform:translateY(-160%)}.skip-link:focus{transform:none}.app-shell{grid-template:"nav main"1fr"footer footer"/220px 1fr;min-width:0;min-height:100vh;display:grid;overflow-x:hidden}.mobile-bar{grid-area:bar;display:none}.nav-group{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:16px 12px 4px;font-size:11px}.admin-tabs{flex-wrap:wrap;gap:6px;margin:0 0 16px;display:flex}.admin-tabs a{border:1px solid var(--line);color:var(--text);background:var(--panel);border-radius:999px;padding:4px 10px}.admin-tabs a.active{border-color:var(--accent);color:var(--accent)}.nav-toggle,.nav-close{background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:8px 12px;font-weight:650}.nav-close{align-self:flex-end;display:none}.nav-backdrop{display:none}.nav-layer{display:contents}.nav{background:var(--panel);border-right:1px solid var(--line);flex-direction:column;grid-area:nav;gap:8px;min-width:0;padding:20px 14px;display:flex}.brand{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);align-items:center;gap:8px;margin-bottom:12px;font-size:13px;font-weight:700;display:flex}.brand img{border-radius:4px;display:block}.nav a,.nav button.link{color:var(--text);text-align:left;background:0 0;border:0;border-radius:6px;padding:8px 10px;display:block}.nav a.active,.nav a:hover{background:var(--panel-2)}.nav .spacer{flex:1}.nav .who{color:var(--muted);overflow-wrap:anywhere;padding:8px 10px;font-size:12px}.subnav{flex-direction:column;gap:2px;margin:0 0 4px 12px;display:flex}.subnav a{color:var(--muted);padding:6px 10px;font-size:13px}a.card{color:inherit;display:block}a.card:hover{border-color:var(--accent)}.tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:0;margin:0 0 20px;display:flex}.tab{color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;margin-bottom:-1px;padding:10px 16px;font-weight:600}.tab:hover{color:var(--text)}.tab.active{color:var(--text);border-bottom-color:var(--accent);background:0 0}.badge{background:var(--accent-2);color:#2a1d00;border-radius:99px;min-width:1.4em;margin-left:8px;padding:1px 6px;font-size:12px;font-weight:700;display:inline-block}.badge.danger{background:var(--danger);color:#fff}.badge.warn{color:#2a1d00;background:#e8a317;margin-left:0}.dash-error-bubble{border-color:var(--danger);margin-bottom:16px}.dash-error-bubble h3{color:var(--danger)}.email-stats-link{font-size:13px}tr.contact-target td,tr.import-target td{outline:2px solid var(--accent);outline-offset:-2px}#contacts,[id^=contacts-],[id^=import-]{scroll-margin-top:16px}.import-health-kinds{flex-wrap:wrap;gap:6px;margin:0 0 14px;display:flex}.kind-pill,.kind-chip{letter-spacing:.04em;text-transform:uppercase;background:var(--panel-2);color:var(--muted);border:1px solid var(--line);white-space:nowrap;border-radius:99px;padding:2px 7px;font-size:11px;font-weight:700;display:inline-block}.kind-chip{color:inherit}.kind-chip:hover{border-color:var(--accent);color:var(--text)}.kind-waf_403,.kind-parse_failure,.kind-timestamptz,.kind-unique_violation,.kind-too_many_clients,.kind-job_error,.kind-config_missing,.kind-has_not_run,.kind-chip.is-error{border-color:var(--danger);color:var(--danger)}.kind-zero_rows,.kind-official_empty,.kind-stale{border-color:var(--accent-2);color:var(--accent-2)}.import-error-cell{text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;max-width:22rem;display:inline-block;overflow:hidden}.page-head h1 .badge{vertical-align:middle}.update-block{border-bottom:1px solid var(--line);padding:12px 0}.update-block h3{margin:0 0 8px;font-size:15px}.update-block p{white-space:pre-wrap;margin:4px 0}.page{grid-area:main;min-width:0;max-width:100%;padding:28px 32px 48px;overflow-x:hidden}.site-footer{text-align:center;color:var(--muted);letter-spacing:.04em;border-top:1px solid var(--line);grid-area:footer;padding:10px 16px 12px;font-size:12px}h1{overflow-wrap:anywhere;margin:0 0 8px;font-size:26px}.lean-help{margin:8px 0 12px}.lean-help summary{cursor:pointer}.lean-help p,.lean-help-print p{margin:8px 0 0}.lean-help-print{display:none}.lead{color:var(--muted);margin:0 0 22px}.cards{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px}.card h3{margin:0 0 6px;font-size:16px}.muted{color:var(--muted)}.ok{color:var(--ok)}.warn{color:var(--accent-2)}.bad{color:var(--danger)}.filters{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.filter-bar{background:var(--panel);border:1px solid var(--line);border-radius:10px;margin-bottom:14px;padding:8px 10px}.filter-bar-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.filter-bar-row input,.filter-bar-row select{background:var(--panel-2);border:1px solid var(--line);border-radius:6px;min-width:0;min-height:36px;padding:7px 10px}.filter-bar-row input{flex:140px;max-width:260px}.filter-bar-row input[aria-label=Address]{flex:2 220px;max-width:420px}.filter-bar-row input[aria-label=ZIP\ code]{flex:0 110px;max-width:140px}.filter-bar-row input[aria-label=Last\ name]{flex:140px;max-width:220px}.filter-bar-row select{flex:0 180px}.filter-bar-row .btn{min-height:36px;padding:7px 12px}.state-chip-row{flex-wrap:wrap;gap:6px;width:100%;display:flex}.chip{border:1px solid var(--line);background:var(--panel-2);border-radius:999px;min-height:36px;padding:6px 12px;font-weight:650}.chip.active{background:var(--accent,#1d4ed8);color:#fff;border-color:#0000}.chip-count{font-variant-numeric:tabular-nums;opacity:.85;color:var(--muted);margin-left:6px;font-weight:500}.grant-toggles .chip-count,.grant-toggles .chip:hover .chip-count,.grant-toggles .chip.active .chip-count,.donors-state-counts .chip-count,.candidates-state-counts .chip-count,.candidates-state-counts .chip:hover .chip-count,.candidates-state-counts .chip.active .chip-count{color:#fff;opacity:1}.chip-count-pending{letter-spacing:.08em}.freshness-chrome{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 8px;font-size:13px;display:flex}.freshness-sort{flex-wrap:wrap;gap:8px;margin:0 0 8px;display:flex}.freshness-sort .chip{min-height:44px}.freshness-badge{border-radius:99px;padding:2px 8px;font-size:12px;font-weight:700;display:inline-block}.freshness-dot{vertical-align:middle;border-radius:99px;width:8px;height:8px;margin-left:6px;display:inline-block}.freshness-green{background:var(--ok);color:#102216}.freshness-yellow{background:var(--accent-2);color:#2a1d00}.freshness-red{background:var(--danger);color:#fff}.freshness-rollup{font-variant-numeric:tabular-nums}.candidate-import-health .btn,.candidate-import-health .btn.secondary,.candidate-import-health .btn.danger,.candidate-import-health .segment-chip.active,.candidate-import-health .chip.active,.candidate-import-health .chip.active .chip-count{color:#fff}.candidate-import-health .chip.active .chip-count,.candidate-year-filters .chip.active .chip-count{opacity:1}.candidate-year-filters .chip.active,.candidate-year-filters .chip.active .chip-count{color:#fff}.candidate-year-filters{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 12px;display:flex}.candidate-year-filters .giving-kicker{margin:0}.candidate-year-filters .state-chip-row{flex:1;width:auto}.imported-range{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:flex}.imported-range input[type=date]{max-width:160px}.donor-health .table-wrap{overflow-x:auto}.filter-bar-meta{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;padding-top:8px;display:flex}.filter-bar-meta a{font-size:13px;font-weight:650}.filter-chips{flex-wrap:wrap;flex:1;gap:6px;display:flex}.filter-chip{background:var(--panel-2);border:1px solid var(--line);color:var(--text);border-radius:99px;align-items:center;gap:6px;padding:3px 8px 3px 10px;font-size:12px;display:inline-flex}.filter-chip button{color:var(--muted);background:0 0;border:0;padding:0 2px;font-size:14px;line-height:1}.filter-clear{color:var(--accent);background:0 0;border:0;padding:0;font-size:13px;font-weight:650}.segment-chips{flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 12px;display:flex}.segment-chips .giving-kicker{margin:0 2px 0 4px}.segment-chip{border:1px solid var(--line);background:var(--panel-2);color:var(--text);border-radius:99px;padding:5px 10px;font-size:12px;font-weight:650}.segment-chip.active{background:var(--accent);color:#06241e;border-color:var(--accent)}.district-map{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;margin-bottom:14px;display:grid}.district-tile{text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:10px}.district-tile.active{border-color:var(--accent)}.district-tile strong{font-size:18px;display:block}.gift-timeline{align-items:flex-end;gap:6px;height:88px;margin:8px 0 12px;display:flex}.gift-bar{background:var(--accent);opacity:.85;border-radius:4px 4px 0 0;flex:1;min-width:18px}.gift-bar-label{color:var(--muted);text-align:center;margin-top:4px;font-size:10px}.field-card{margin-bottom:10px}.field-card textarea{width:100%;min-height:64px;margin:8px 0}.filters input,.filters select,.form input,.form select,.form textarea{background:var(--panel-2);border:1px solid var(--line);border-radius:6px;max-width:100%;padding:8px 10px}.form input,.form select,.form textarea{width:100%}.hard-pull-days{width:6.5rem}.btn{background:var(--accent);color:#06241e;border:0;border-radius:6px;padding:8px 14px;font-weight:650}.btn.secondary{background:var(--panel-2);color:var(--text);border:1px solid var(--line)}.btn.danger{background:var(--danger);color:#1a0808}.btn:disabled{opacity:.45;cursor:not-allowed}.row-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.row-actions .btn,button.btn.donation-received{border-radius:8px;min-width:44px;min-height:36px;padding:6px 12px;font-size:13px;line-height:1.2}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;border-bottom:1px solid var(--line);padding:8px 10px}th{color:var(--muted);font-weight:600}.charts{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;margin-bottom:20px;display:grid}.pager{color:var(--muted);align-items:center;gap:10px;margin-top:12px;display:flex}.table-wrap{-webkit-overflow-scrolling:touch;max-height:none;overflow:auto visible}.table-wrap table{min-width:480px}.donors-scroll{-webkit-overflow-scrolling:touch;width:100%;min-width:0;max-width:100%;height:auto;max-height:none;overflow:auto hidden}:is(.table-wrap.donors-scroll,.table-wrap.donors-scroll:has(.mail-table)){min-width:0;max-width:100%;height:auto;max-height:none;overflow:auto hidden}.donors-scroll table{width:max-content;min-width:100%}.donors-scroll th,.donors-scroll td{white-space:nowrap}.donors-scroll .col-filter{min-width:7.5rem}.donors-scroll th.donor-actions,.donors-scroll td.donor-actions{white-space:normal;vertical-align:top;width:1%;position:static}.donors-scroll .donor-actions .row-actions{flex-wrap:wrap;width:10.5rem;max-width:42vw}.donor-name-stack{white-space:normal;flex-direction:column;align-items:flex-start;gap:2px;display:flex}.preferred-name-line{max-width:18rem;font-size:12px;line-height:1.3}.preferred-name-prompt,.preferred-name-value{font:inherit;text-align:left;cursor:pointer;white-space:normal;background:0 0;border:0;padding:0}.preferred-name-prompt{color:var(--accent);text-decoration:underline}.preferred-name-value{color:var(--text)}.preferred-name-edit{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.preferred-name-label{color:var(--text);flex:1 0 100%;font-weight:650}.preferred-name-edit input{min-width:8rem}.dismiss-slot{flex-direction:column;align-items:stretch;gap:6px;width:100%;display:flex}.dismiss-drawer{border:1px solid var(--line);background:var(--panel-2);white-space:normal;border-radius:8px;flex-direction:column;gap:6px;padding:8px;display:flex}.dismiss-drawer-actions{flex-direction:column;gap:6px;display:flex}.dismiss-drawer .btn{white-space:normal;width:100%}.dismiss-drawer textarea{box-sizing:border-box;resize:vertical;width:100%;min-height:4.5rem;scroll-margin-top:30vh;scroll-margin-bottom:40vh;font-size:16px}.comment-history{max-height:11rem;margin:0 0 12px;padding-left:1.1rem;overflow-y:auto}.table-wrap thead th{z-index:2;background:var(--panel);position:sticky;top:0}.table-wrap thead tr:nth-child(2) th{z-index:1;top:2.4rem}.import-health.table-wrap,.import-health .table-wrap{max-height:none;overflow-y:visible}.page:has(.import-health){overflow:visible}tr.import-fail td{background:color-mix(in srgb, var(--danger) 12%, transparent)}tr.local-feed-nest>td{background:color-mix(in srgb, var(--panel) 88%, var(--ink) 4%);padding-top:0;padding-bottom:10px}.local-feed-nest table{width:100%;margin:0}.local-feed-nest td{font-size:.92rem}tr.gap-data td{background:color-mix(in srgb, var(--danger) 10%, transparent)}tr.gap-email td{background:#c9a22729}.col-input,.col-filter{box-sizing:border-box;width:100%;min-width:80px}.table-wrap:has(.mail-table){height:auto;max-height:none;overflow:auto hidden}.mail-bing{white-space:nowrap;margin-right:.45rem;font-size:12px;font-weight:600}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--panel-2)}.favorites-bar{flex-wrap:wrap;align-items:end;gap:12px;margin-bottom:14px;display:flex}.favorites-bar label,.check{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:flex}.favorites-bar select{background:var(--panel-2);border:1px solid var(--line);border-radius:6px;padding:8px 10px}.column-picker{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;display:grid}.column-picker h4{color:var(--accent);margin:0 0 8px;font-size:13px}.column-picker .check{margin-bottom:6px}.giving-summary{margin-bottom:16px}.giving-total{letter-spacing:-.02em;margin:0 0 6px;font-size:28px;font-weight:700}.giving-bars{align-items:flex-end;gap:8px;min-height:96px;margin:8px 0 12px;display:flex}.giving-bar-col{flex-direction:column;align-items:center;gap:4px;font-size:12px;display:flex}.giving-bar{background:var(--accent,#1d4e89);border-radius:2px 2px 0 0;width:18px}.giving-bar.pledged{background:repeating-linear-gradient(45deg, transparent, transparent 3px, var(--accent,#1d4e89) 3px, var(--accent,#1d4e89) 6px)}.profile-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px 18px;margin:0;display:grid}.profile-grid dt{color:var(--muted);font-size:12px}.profile-grid dd{word-break:break-word;margin:2px 0 0}.giving-kicker{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin:0 0 4px;font-size:12px;font-weight:650}.saved-view-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;display:grid}.saved-view-card h3{margin:0 0 6px}.saved-view-card .filters{margin-bottom:10px}.saved-view-actions{flex-wrap:wrap;gap:8px;display:flex}.inbox-wrap{position:relative}.inbox-toggle{text-align:left;width:100%;color:var(--text);background:0 0;border:0;border-radius:6px;padding:8px 10px;font-weight:600;display:block}.inbox-toggle:hover{background:var(--panel-2)}.inbox-panel{max-height:320px;margin:8px 0 12px;overflow:auto}.inbox-bar-btn{margin-left:auto}@media (width<=767px){.saved-view-grid{grid-template-columns:1fr}.saved-view-actions .btn{text-align:center;flex:auto}}.pill button.link{color:var(--danger);background:0 0;border:0;padding:0 0 0 4px}.login{background:radial-gradient(circle at 20% 10%, #1b3d38, transparent 40%), var(--bg);place-items:center;min-height:100vh;padding:16px;display:grid;overflow-x:hidden}.login-stack{flex-direction:column;gap:16px;width:min(28rem,100vw - 32px);max-width:100%;display:flex}.login-card{width:100%;max-width:100%}.demo-login-card h2{margin:0 0 4px;font-size:1.25rem}.demo-login-card .muted{margin:0 0 12px}.demo-login-actions{flex-direction:column;gap:8px;display:flex}.demo-login-actions .btn{width:100%;min-height:44px}.demo-banner{z-index:40;color:#fff8e0;text-align:center;background:#3d3416;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;padding:8px 16px;font-size:14px;display:flex;position:sticky;top:0}.demo-banner button{color:#fff8e0;min-height:44px;font:inherit;cursor:pointer;background:0 0;border:1px solid #fff8e0;border-radius:6px;padding:8px 12px}.warehouse-notice h1{font-size:clamp(1.15rem,6vw,26px)}.login-card h1{margin-bottom:4px}.form{flex-direction:column;gap:10px;display:flex}.field-label{font-size:13px;font-weight:650}.form input::placeholder{color:#e8edf5;opacity:1}.login-notice{min-height:4.5em;color:var(--danger);margin:0;font-size:13px;line-height:1.4}a.btn{text-align:center;display:inline-block}.error{color:var(--danger);font-size:13px}.pill{background:var(--panel-2);color:var(--muted);border-radius:99px;padding:2px 8px;font-size:12px;display:inline-block}button.pill{border:1px solid var(--line);cursor:pointer;font:inherit;color:var(--text)}button.pill.on{outline:2px solid var(--accent)}.state-chips{flex-wrap:wrap;gap:6px;margin:0 0 16px;display:flex}.state-chips .pill{max-width:100%}.state-chips .pill.ok{color:var(--ok)}.state-chips .pill.bad{color:var(--danger)}.state-chips .pill.off{color:var(--muted)}.sort-btn{color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;font-weight:600}.data-table .num,.data-table .num .sort-btn{text-align:right;font-variant-numeric:tabular-nums}.data-table.density-compact td,.data-table.density-compact th{padding-top:4px;padding-bottom:4px}.data-table-tools{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.column-chooser summary{cursor:pointer;color:var(--muted)}.column-chooser-list{flex-wrap:wrap;gap:8px 14px;margin:8px 0;display:flex}.data-table-foot{margin:8px 0 0;font-size:12px}.kpi-row{flex-wrap:wrap;gap:12px;margin:0 0 16px;display:flex}.kpi-card{background:var(--panel);border:1px solid var(--line);border-radius:8px;min-width:140px;padding:12px 16px}.kpi-label{color:var(--muted);margin:0;font-size:12px}.kpi-value{font-variant-numeric:tabular-nums;margin:4px 0 0;font-size:22px}.status-pill{border:1px solid var(--line);border-radius:999px;padding:0 8px;font-size:12px;display:inline-block}.status-pill.tone-warn{color:var(--accent-2)}.status-pill.tone-ok{color:var(--ok)}.state-panel{border:1px solid var(--line);background:var(--panel);border-radius:8px;margin:0 0 12px;padding:12px 14px}.state-title{margin:0 0 6px;font-weight:650}.state-body{color:var(--muted)}.state-skeleton{gap:8px;margin-bottom:10px;display:grid}.state-skeleton span{background:linear-gradient(90deg, var(--panel-2), var(--line), var(--panel-2));background-size:200% 100%;border-radius:6px;height:12px;animation:1.2s linear infinite state-shimmer;display:block}@keyframes state-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.filter-panel{flex-wrap:wrap;align-items:end;gap:10px;display:flex}.filter-panel .field{color:var(--muted);flex-direction:column;gap:4px;font-size:12px;display:flex}.grant-toggles{flex-wrap:wrap;gap:6px;margin:0 0 16px;display:flex}.table-toolbar{flex-wrap:wrap;justify-content:flex-start;align-items:flex-end;gap:12px;margin:0 0 8px;display:flex}.ms-auto{min-width:160px;position:relative}.ms-auto-label{color:var(--muted);margin-bottom:4px;font-size:12px;display:block}.ms-auto-chips{flex-wrap:wrap;gap:4px;margin-bottom:4px;display:flex}.ms-auto-input{background:var(--panel-2);border:1px solid var(--line);border-radius:6px;width:100%;padding:6px 8px}.ms-auto-list{z-index:20;background:var(--panel);border:1px solid var(--line);border-radius:6px;max-height:220px;margin:2px 0 0;padding:4px;list-style:none;position:absolute;left:0;right:0;overflow:auto}.ms-auto-list button{text-align:left;background:0 0;border:0;border-radius:4px;width:100%;padding:6px 8px}.ms-auto-list button:hover{background:var(--panel-2)}.header-filter{flex-direction:column;gap:4px;display:flex}.header-filter select{background:var(--panel-2);border:1px solid var(--line);border-radius:6px;padding:4px 6px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.page-head h1{margin-top:0}.col-filter{background:var(--panel-2);border:1px solid var(--line);border-radius:6px;width:100%;min-width:80px;padding:4px 6px}.multi-combo{flex:1;min-width:min(280px,100%);position:relative}.multi-combo-list{z-index:20;background:var(--panel);border:1px solid var(--line);border-radius:8px;max-height:320px;padding:8px;position:absolute;top:100%;left:0;right:0;overflow:auto;box-shadow:0 8px 24px #00000059}.calendar-wrap .fc{color:var(--text)}.calendar-wrap .fc-theme-standard td,.calendar-wrap .fc-theme-standard th,.calendar-wrap .fc-theme-standard .fc-scrollgrid{border-color:var(--line)}.calendar-wrap .fc-button{background:var(--panel-2);border-color:var(--line);color:var(--text)}.calendar-wrap .fc-button-primary:not(:disabled).fc-button-active{background:var(--accent);color:#0f141c}.calendar-wrap .fc-toolbar{flex-wrap:wrap;gap:8px}.calendar-wrap .fc-toolbar-title{font-size:1.1rem}.warehouse-notice .btn{display:inline-block}@media (width<=767px){.app-shell{grid-template:"bar""main"1fr"footer"/minmax(0,1fr)}.mobile-bar{background:var(--panel);border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:10px 12px;display:flex}.mobile-bar .brand{flex:1;margin:0}.nav-close{display:inline-flex}.nav-backdrop{z-index:30;background:#080c128c;border:0;padding:0;display:block;position:absolute;inset:0}.nav-layer{display:none}.nav-layer.open{z-index:40;pointer-events:auto;display:block;position:fixed;inset:0}.nav{z-index:41;pointer-events:auto;grid-area:unset;width:min(280px,86vw);max-width:100%;position:absolute;top:0;bottom:0;left:0;overflow-y:auto;transform:none}.nav>.brand{display:none}.page{padding:22px 20px 40px}.tabs{-webkit-overflow-scrolling:touch;scrollbar-width:thin;flex-wrap:nowrap;overflow-x:auto}.tab{white-space:nowrap;flex:none}}@media (width>=768px){.nav-backdrop{display:none}}@media (width<=1100px){.filter-bar-row input{flex:160px;max-width:none}.filter-bar-row select{flex:140px}}@media (width>=768px){.filter-drawer>summary{display:none}.filter-drawer>.filter-drawer-body,.filter-drawer>.filter-panel{display:flex}.data-table>.filter-drawer{display:none}.pinned-action{margin:0 0 12px}}@media (width<=767px){.page{padding:20px 16px 88px;overflow-x:hidden}.page,.card,.data-table,.stack-cards,.table-wrap{min-width:0;max-width:100%}.page a,.card,.data-table td,.stack-cards td{overflow-wrap:anywhere}.data-table,.data-table.donors-scroll,.table-wrap.donors-scroll,.stack-cards{overflow-x:hidden}.data-table table,.stack-cards table{min-width:0}.data-table thead,.stack-cards thead{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.data-table table,.data-table tbody,.data-table tr,.data-table td,.stack-cards table,.stack-cards tbody,.stack-cards tr,.stack-cards td{width:100%;display:block}.data-table tbody tr,.stack-cards tbody tr{border:1px solid var(--line);background:var(--panel);border-radius:8px;margin:0 0 10px;padding:8px 10px}.data-table td,.stack-cards td{text-align:right;border:0;justify-content:space-between;gap:12px;padding:4px 0;display:flex}.data-table td:before,.stack-cards td:before{content:attr(data-label);color:var(--muted);text-align:left;font-weight:650}.data-table.donors-scroll td{white-space:normal;flex-wrap:wrap;align-items:flex-start}.data-table td[colspan],.stack-cards td[colspan]{text-align:left;display:block}.data-table td[colspan]:before,.stack-cards td[colspan]:before{content:none}.filter-drawer>summary{cursor:pointer;color:var(--accent);margin:0 0 8px;font-weight:650}.filter-drawer[open]>.filter-drawer-body,.filter-drawer[open]>.filter-panel{z-index:48;background:var(--panel);flex-direction:column;gap:10px;width:min(360px,100%);padding:16px;display:flex;position:fixed;top:0;bottom:0;right:0;overflow:auto;box-shadow:-8px 0 24px #00000073}.pinned-action{z-index:24;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:var(--panel);border-top:1px solid var(--line);margin:0;position:fixed;bottom:0;left:0;right:0}.pinned-action .btn,a.pinned-action{text-align:center;width:100%;display:block}.filter-bar{padding:8px}.filter-bar-row input,.filter-bar-row select,.filter-bar-row .btn,.imported-range{flex:100%;max-width:100%}.imported-range input[type=date]{flex:1;max-width:none}.filter-bar-meta{align-items:flex-start}.filter-clear{margin-left:auto}.cards,.charts,.geo-grid,.column-picker,.profile-grid{grid-template-columns:1fr}.tab{padding:10px 12px;font-size:13px}.giving-total{font-size:24px}}.toast{z-index:60;background:var(--panel);border:1px solid var(--accent);color:var(--text);border-radius:8px;max-width:min(420px,100vw - 32px);padding:10px 14px;position:fixed;top:16px;right:16px;box-shadow:0 8px 24px #00000059}.toast-ok{border-color:var(--ok)}.toast-error{border-color:var(--danger)}.toast-progress{border-color:var(--accent-2)}.donor-modal-backdrop{z-index:45;background:#070a10b8;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.donor-modal{width:min(560px,100%);max-height:calc(100vh - 32px);margin:0;overflow:auto}.donor-modal-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.donor-modal-head h2{margin:0;font-size:18px}.donor-modal-body{margin-top:12px}.donor-modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.donor-modal-tools{margin-bottom:12px}.donor-modal.donor-modal-fit{max-height:none;overflow:visible}.donor-modal.donor-modal-fit .donor-modal-body{overflow:visible}.donor-modal.donor-modal-fit .mail-chip-menu{z-index:50;max-height:none;overflow:visible}.reminder-row{justify-content:space-between;align-items:center;gap:12px;margin-top:8px;display:flex}.reminder-row select{flex:auto;max-width:16rem}.reminder-x{color:var(--muted);background:0 0;border:0;margin-left:auto;padding:4px 8px;font-size:18px;line-height:1}.reminder-x:hover{color:var(--danger)}.inline-field{cursor:pointer;border-radius:4px;align-items:center;gap:6px;min-height:1.4em;padding:0 2px;display:inline-flex}.inline-field:hover{background:var(--panel-2)}.pencil{opacity:0;color:var(--accent);background:0 0;border:0;padding:0;font-size:13px}.inline-field:hover .pencil,.inline-field:focus-within .pencil{opacity:1}.inline-wrap{flex-wrap:wrap;align-items:center;gap:6px;min-height:1.4em;display:inline-flex}.inline-save-status{white-space:nowrap;font-size:12px;font-weight:650}.inline-save-status.saving{color:var(--muted)}.inline-save-status.saved{color:var(--ok)}.inline-save-status.error{color:var(--danger)}.inline-input{background:var(--panel-2);border:1px solid var(--accent);border-radius:4px;width:100%;padding:4px 8px}.multi-select{border:1px solid var(--line);background:var(--panel-2);border-radius:8px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:4px 12px;max-height:240px;padding:8px;display:grid;overflow:auto}.geo-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px;display:grid}.geo-panel .table-wrap{max-height:none;overflow:auto visible}.geo-panel .muted{margin:0 0 10px}.segmented{border:1px solid var(--line);border-radius:8px;margin:0 0 16px;display:inline-flex;overflow:hidden}.segmented button,.segmented a{background:var(--panel-2);color:var(--muted);border:0;padding:8px 16px;font-weight:650;text-decoration:none}.segmented button+button,.segmented a+a{border-left:1px solid var(--line)}.segmented button.active,.segmented a.active{background:var(--accent);color:#06241e}.donation-received{white-space:nowrap;font-weight:650}.donation-form{gap:10px;display:grid}.donation-form label{gap:4px;font-size:13px;font-weight:650;display:grid}.thank-you-print-backdrop{z-index:40;overflow:auto}.thank-you-letter{color:#111;background:#fff;max-width:720px;min-height:60vh;margin:4vh auto;padding:32px 40px;line-height:1.5}.thank-you-print-actions{gap:8px;margin-bottom:24px;display:flex}.thank-you-date{text-align:right}.mail-chips{flex-wrap:wrap;align-items:center;gap:6px;display:flex;position:relative}.mail-chip{background:var(--panel-2);border:1px solid var(--line);border-radius:999px;align-items:center;gap:4px;padding:3px 8px 3px 10px;font-size:12px;display:inline-flex}.mail-chip-x{color:var(--muted);background:0 0;border:0;padding:0 2px;line-height:1}.mail-chip-x:hover{color:var(--danger)}.mail-chip-add{min-width:120px;position:relative}.mail-chip-add input{width:140px;padding:4px 8px;font-size:12px}.mail-chip-menu{z-index:55;background:var(--panel);border:1px solid var(--line);border-radius:8px;min-width:240px;max-height:280px;margin:0;padding:4px;list-style:none;position:fixed;top:0;left:0;right:auto;overflow:auto;box-shadow:0 8px 24px #00000059}.mail-chip-menu button{text-align:left;background:0 0;border:0;border-radius:4px;width:100%;padding:6px 8px;display:block}.mail-chip-menu button:hover{background:var(--panel-2)}.mail-drawer-backdrop{z-index:50;background:#080c128c;position:fixed;inset:0}.mail-drawer{background:var(--panel);border-left:1px solid var(--line);width:min(100%,380px);padding:16px;position:absolute;top:0;bottom:0;right:0;overflow:auto}.mail-drawer-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.mail-drawer-head h2{margin:0;font-size:18px}.mail-drawer h3{margin:16px 0 8px;font-size:14px}.chart-note{margin-top:8px}.chart-note p{margin:0 0 4px}.chart-coverage{margin:0 0 16px}.chart-coverage h2{margin:0 0 8px;font-size:18px}.chart-coverage dl{grid-template-columns:minmax(140px,220px) 1fr;gap:6px 12px;margin:0;display:grid}.chart-coverage dt{font-weight:600}.chart-coverage dd{margin:0}.in-person-banner{border:1px solid var(--line);border-radius:8px;margin:12px 0 0;padding:8px 10px}.race-view{margin:0 0 16px}.race-view h2{margin:0 0 8px;font-size:18px}.race-view h3{margin:12px 0 6px;font-size:14px}.race-view dl{grid-template-columns:minmax(140px,220px) 1fr;gap:6px 12px;margin:0;display:grid}.race-view dt{font-weight:600}.race-view dd{margin:0}.coverage-meter{border:1px solid var(--line);background:var(--panel);border-radius:8px;margin:8px 0 12px;padding:8px 12px}.coverage-meter summary{cursor:pointer;font-size:14px;line-height:1.4}.coverage-meter-filters{flex-wrap:wrap;gap:6px;margin:8px 0;display:flex}.coverage-meter-filters .pill{border:1px solid var(--line);cursor:pointer;font:inherit;color:var(--text)}.coverage-meter-filters .pill.on{outline:2px solid var(--accent)}.coverage-meter-list{columns:3;max-height:160px;margin:0;padding-left:18px;overflow:auto}.coverage-band-full:before,.coverage-band-partial:before,.coverage-band-none:before{content:"";vertical-align:middle;border-radius:99px;width:8px;height:8px;margin-right:6px;display:inline-block}.coverage-band-full:before{background:var(--ok)}.coverage-band-partial:before{background:var(--accent-2)}.coverage-band-none:before{background:var(--muted)}@media (width<=1024px){.coverage-meter-list{columns:2}}.election-health{flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 16px;display:flex}.election-filters input,.election-filters select{flex:1;min-width:min(160px,100%)}.election-cards{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.election-card{color:inherit}.election-card-top{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.election-card h3{margin:0 0 6px;font-size:16px}.election-races{gap:12px;display:grid}.election-locality h4{margin:12px 0 6px;font-size:14px}tr.winner td{color:var(--ok);font-weight:650}.pill.warn{color:var(--accent-2)}@media (width<=1100px){.election-cards{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}}@media (width<=767px){.page-head{flex-direction:column;align-items:stretch}.election-cards{grid-template-columns:1fr}.election-filters{flex-direction:column}.election-filters input,.election-filters select{min-width:100%}}@media (width<=639px){.mail-chips-col{display:none}}.page-head-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.precinct-toggles{flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 14px;display:flex}.precinct-toggles .segmented{margin:0}.precinct-share-url{color:var(--muted);font-size:12px}.universe-truth{background:var(--panel);border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;align-items:center;gap:16px;margin:0 0 14px;padding:12px 14px;display:flex}.universe-truth h3{margin:0;font-size:28px}.universe-truth.ok-match{border-color:var(--accent)}.universe-truth.warn-match{border-color:var(--danger)}.precinct-compare{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:0 0 16px;display:grid}.precinct-map,.kpi-strip{margin-bottom:16px}.dash-tiles .card h3{margin-top:4px}.dash-precinct-list{margin:12px 0 0;padding-left:18px}.dash-precinct-list li{margin:4px 0}.field-tap{justify-content:center;align-items:center;min-height:44px;display:inline-flex}@media (width<=767px){.dash-hub .field-tap{width:100%;min-height:48px}.dash-hub .page-head-actions{width:100%}.kpi-strip .card h3{font-size:26px}}@media (width>=768px) and (width<=1100px){.precinct-toggles .segmented button,.page-head-actions .btn{min-height:40px}.filter-bar-row .multi-combo{flex:100%}}@media (width<=767px){.precinct-toggles{flex-direction:column;align-items:stretch}.precinct-toggles .segmented{width:100%;display:flex}.precinct-toggles .segmented button{flex:1;min-height:44px}.page-head-actions{width:100%}.page-head-actions .btn{text-align:center;flex:calc(50% - 8px);min-height:44px}.favorites-bar{align-items:stretch}.favorites-bar form.filters{width:100%}.favorites-bar input,.favorites-bar select,.favorites-bar .btn{min-height:44px}.multi-combo-list{max-height:min(60vh,360px)}.universe-truth h3{font-size:24px}}.precinct-print-brand,.precinct-print-disclaimer{display:none}.precinct-print-date{color:var(--muted);margin:0 0 8px}@media print{.mobile-bar,.nav,.nav-layer,.site-footer,.lean-help-print{display:block}.no-print,.filter-bar,.favorites-bar,.precinct-toggles,.toast{display:none!important}.app-shell{color:#111;background:#fff;display:block}.page{max-width:none;padding:0}.precinct-report h1,.precinct-report h2,.precinct-report h3,.precinct-print-date{color:#111}.precinct-print-brand{color:#111;align-items:center;gap:12px;margin:0 0 12px;display:flex}.precinct-print-brand img{object-fit:contain;max-width:160px;max-height:48px}.precinct-print-disclaimer{color:#333;margin-top:16px;font-size:11px;display:block}.card,.universe-truth,.district-tile{color:#111;break-inside:avoid;background:#fff;border-color:#ccc}.charts{break-inside:avoid}.thank-you-print-backdrop{background:#fff;position:static}.thank-you-letter{max-width:none;box-shadow:none;margin:0;padding:0}}.merge-check-col{text-align:center;vertical-align:middle;width:40px;min-width:40px}.merge-check-col input{width:18px;height:18px;margin:0}.merge-backdrop{z-index:40;background:#070a10b8;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0;overflow:hidden}.merge-dialog{width:min(1100px,100%);min-width:0;max-width:100%;max-height:calc(100vh - 32px);margin:0;overflow:hidden auto}.merge-dialog,.merge-dialog *{box-sizing:border-box}.merge-dialog-head{justify-content:space-between;align-items:flex-start;gap:12px;min-width:0;display:flex}.merge-dialog-head>div{flex:auto;min-width:0}.merge-keep-grid,.merge-field-values{grid-template-columns:minmax(0,1fr);gap:10px;min-width:0;margin:12px 0 18px;display:grid}.merge-field-values{gap:8px;margin:0}.merge-keep-card,.merge-value{border:1px solid var(--line);background:var(--panel-2);border-radius:8px;flex-direction:column;gap:4px;min-width:0;max-width:100%;min-height:44px;padding:10px 12px;display:flex;overflow:hidden}.merge-keep-card.selected,.merge-value.selected{border-color:var(--accent)}.merge-field{min-width:0;max-width:100%;margin:0 0 14px}.merge-field-label{overflow-wrap:anywhere;margin:0 0 6px;font-weight:650}.merge-clip{overflow-wrap:anywhere;word-break:break-word;-webkit-line-clamp:4;-webkit-box-orient:vertical;min-width:0;max-width:100%;display:-webkit-box;overflow:hidden}.merge-confirm{align-items:flex-start;gap:8px;min-width:0;max-width:100%;min-height:44px;margin:16px 0;display:flex}.merge-confirm .merge-clip{-webkit-line-clamp:unset}.merge-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;min-width:0;display:flex}@media (width>=768px){.merge-keep-grid,.merge-field-values{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1100px){.merge-keep-grid,.merge-field-values{grid-template-columns:repeat(3,minmax(0,1fr))}}.phone-live-actions{flex-direction:column;gap:8px;margin-top:12px;display:flex}.phone-live-actions .btn{width:100%}.provider-contact-list{margin:0;padding-left:1.1rem}.provider-contact-list li{margin:2px 0}.provider-contact-list.in-row{max-height:7.5rem;overflow:auto}.email-copy-row{align-items:center;gap:8px;margin-bottom:4px;display:flex}.copy-all-emails{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.email-copy-dismiss{align-items:flex-start;gap:8px;margin-top:12px;display:flex}.no-copy,.no-copy *{-webkit-user-select:none;user-select:none}@media (width<=767px){.merge-backdrop{padding:8px}.merge-dialog-head{flex-direction:column}.merge-dialog-head .btn{width:100%}.merge-actions{flex-direction:column-reverse}.merge-actions .btn{width:100%}}.export-rule,.merge-scan-row{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 8px;display:flex}.export-saved{margin:0 0 16px;padding:12px 16px}.export-saved h2,.export-saved h3{margin:0 0 8px}.export-options{margin:0 0 12px}.export-columns{flex-wrap:wrap;gap:8px 16px;margin:8px 0;display:flex}.export-rule select,.export-rule input,.merge-scan-row input,.merge-scan-row select{min-height:36px}.merge-set{border:1px solid var(--line);background:var(--panel);border-radius:8px;margin:0 0 10px;padding:12px}.merge-set-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.merge-set table{width:100%;margin-top:10px}.merge-suggest-nav{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.grant-board{grid-template-columns:repeat(5,minmax(180px,1fr));gap:10px;margin:12px 0 20px;display:grid;overflow-x:auto}.grant-board section{min-width:180px}.grant-board h2{font-size:15px}.grant-board article{margin:0 0 8px}.grant-board label{gap:4px;margin:8px 0;font-size:13px;display:grid}
