:root {
  --navy: #132144;
  --blue: #0d4b89;
  --royal: #3567d8;
  --red: #e51f26;
  --ink: #14213d;
  --muted: #5d6980;
  --border: #dce2ec;
  --surface: #f3f5fa;
  --blue-tint: #edf3fc;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--surface); color: var(--ink); font: 15px/1.55 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
header { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 17px 5%; background: #fff; border-top: 4px solid var(--navy); border-bottom: 1px solid var(--border); }
a { color: var(--blue); }
.brand { text-decoration: none; display: flex; gap: 25px; align-items: center; color: var(--navy); }
.brand-logo { display: block; width: 160px; height: auto; flex-shrink: 0; }
.brand-caption { display: block; padding: 8px 0 8px 25px; border-left: 1px solid var(--border); font-size: 11px; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }
.brand-caption small { display: block; font-size: 11px; font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--muted); margin-top: 5px; }
.environment { padding: 11px 5%; background: var(--navy); color: #fff; font-size: 10px; font-weight: 750; letter-spacing: .12em; border-bottom: 3px solid var(--blue); }
.environment span { font-size: 11px; font-weight: 400; letter-spacing: 0; margin-left: 15px; color: #dbe5fb; }
main { max-width: 1400px; margin: auto; padding: 32px 5% 64px; }
.login-panel { display: grid; grid-template-columns: 1.35fr 1fr; gap: 80px; align-items: center; min-height: 65vh; }
.eyebrow { font-size: 10px; font-weight: 800; letter-spacing: .16em; color: var(--blue); margin: 0 0 14px; }
h1 { font: 750 clamp(32px, 4vw, 52px)/1.13 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; letter-spacing: -.035em; margin: 12px 0 24px; color: var(--navy); }
h2 { font: 700 23px/1.25 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; letter-spacing: -.025em; margin: 0 0 18px; color: var(--navy); }
.intro { font-size: 17px; max-width: 440px; color: var(--muted); }
.steps { display: flex; gap: 28px; margin-top: 40px; font-size: 12px; font-weight: 700; color: var(--blue); }
.steps span { border-top: 3px solid var(--blue); padding-top: 12px; }
.steps span:nth-child(2) { border-color: var(--red); }
.steps span:nth-child(3) { border-color: var(--navy); }
.card { background: #fff; border: 1px solid var(--border); border-radius: 10px; padding: 26px; margin: 0 0 24px; box-shadow: 0 4px 16px #13214405; }
.login-panel .card { padding: 34px; border-top: 4px solid var(--blue); }
.muted { color: var(--muted); font-size: 12px; }
label { display: block; font-size: 12px; font-weight: 600; margin: 0 0 18px; }
input, textarea, select { font: inherit; background: #fff; color: var(--ink); border: 1px solid #c9d3e3; border-radius: 5px; padding: 11px; width: 100%; display: block; margin-top: 7px; }
input[type=checkbox] { display: inline-block; width: auto; margin-right: 8px; accent-color: var(--blue); }
textarea { min-height: 85px; resize: vertical; }
button { border: 1px solid var(--blue); background: linear-gradient(115deg, #164f9a, var(--royal)); color: #fff; border-radius: 5px; font: 650 12px/1.5 system-ui; padding: 11px 17px; cursor: pointer; transition: background-color .15s, box-shadow .15s; }
button:hover { filter: brightness(.94); box-shadow: 0 3px 10px #13214412; }
button:disabled { opacity: .5; cursor: wait; }
button span { float: right; margin-left: 20px; }
button:focus-visible, a:focus-visible { outline: 3px solid #668be0; outline-offset: 4px; }
input:focus-visible, textarea:focus-visible, select:focus-visible { outline: 2px solid var(--royal); outline-offset: 2px; }
.secondary { background: #fff; color: var(--blue); border-color: #ccd7e9; }
.secondary:hover { background: var(--blue-tint); }
.page-heading { display: flex; justify-content: space-between; align-items: center; gap: 15px; }
.page-heading h1 { font-size: 36px; margin-bottom: 28px; }
nav { display: flex; gap: 8px; border-bottom: 1px solid var(--border); padding-bottom: 16px; margin-bottom: 24px; }
nav button { background: transparent; border-color: transparent; color: var(--muted); }
nav button.active, nav button.active:hover { background: var(--navy); border-color: var(--navy); color: #fff; box-shadow: inset 0 -3px 0 var(--royal); }
.columns { display: grid; grid-template-columns: 1.15fr 1fr; gap: 24px; }
.metrics { display: grid; grid-template-columns: repeat(4, 1fr); gap: 15px; margin-bottom: 24px; }
.metric { background: #fff; padding: 18px 20px; border: 1px solid var(--border); border-top: 3px solid var(--blue); border-radius: 7px; box-shadow: 0 3px 12px #13214403; }
.metric:nth-child(2) { border-top-color: var(--royal); }
.metric:nth-child(3) { border-top-color: var(--navy); }
.metric:nth-child(4) { border-top-color: var(--red); }
.metric span { display: block; font-size: 11px; color: var(--muted); }
.metric strong { display: block; font-size: 36px; line-height: 1.2; font-weight: 700; letter-spacing: -.04em; margin-top: 9px; color: var(--navy); }
.selector { max-width: 550px; }
.total-row { display: grid; grid-template-columns: 1fr auto; gap: 20px; align-items: center; margin: 20px 0; }
.total-row strong { font-size: 30px; font-weight: 700; letter-spacing: -.03em; color: var(--navy); }
.bar { grid-column: 1/-1; height: 7px; border-radius: 5px; background: #e9eef7; overflow: hidden; margin-top: -12px; }
.bar i { display: block; height: 100%; background: var(--blue); }
.actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 22px; }
.locked { background: var(--blue-tint); padding: 15px; border-left: 3px solid var(--blue); font-size: 13px; margin-bottom: 20px; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: 12px; }
th { text-align: left; color: var(--muted); font-size: 10px; letter-spacing: .05em; text-transform: uppercase; background: #f6f8fc; }
td, th { padding: 13px 10px; border-bottom: 1px solid #e8edf5; vertical-align: top; }
.badge { display: inline-block; padding: 4px 7px; border-radius: 4px; background: var(--blue-tint); color: var(--blue); font-size: 10px; white-space: nowrap; }
.badge.warning { background: #fff0f1; color: #a51c25; }
.receipt, .proposal { padding: 16px 0; border-bottom: 1px solid var(--border); font-size: 12px; }
.receipt p { overflow-wrap: anywhere; margin: 6px 0; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
.evidence-image { display: block; width: 100%; max-height: 600px; object-fit: contain; background: #f3f5fa; border: 1px solid var(--border); margin: 16px 0; }
#message { position: fixed; bottom: 25px; right: 25px; max-width: 500px; background: var(--navy); color: #fff; padding: 16px 22px; box-shadow: 0 8px 25px #13214422; border-radius: 6px; z-index: 10; }
#message.error { background: #a51c25; }
dialog { border: 1px solid var(--border); border-top: 4px solid var(--blue); border-radius: 10px; max-width: 1100px; width: 94vw; max-height: 90vh; padding: 28px; color: var(--ink); }
dialog::backdrop { background: #13214488; }
.dialog-heading { display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.reading { background: #f3f6fc; padding: 16px; font-size: 12px; white-space: pre-wrap; overflow-wrap: anywhere; }
footer { padding: 24px 5%; border-top: 1px solid var(--border); font-size: 11px; color: var(--muted); background: #fff; }
footer span { float: right; }
#identity { font-size: 12px; display: flex; align-items: center; gap: 14px; }
#identity small { color: var(--muted); }
[hidden] { display: none !important; }
.empty { padding: 20px 0; color: var(--muted); font-size: 13px; }
pre { white-space: pre-wrap; overflow-wrap: anywhere; }
@media (max-width: 800px) {
  .login-panel, .columns { grid-template-columns: 1fr; gap: 18px; }
  .login-panel { padding-top: 25px; }
  .metrics { grid-template-columns: 1fr 1fr; }
  .page-heading { align-items: flex-start; }
  .environment span { display: block; margin: 4px 0 0; }
  header { padding: 14px 5%; gap: 15px; }
  .brand-logo { width: 133px; }
  .brand-caption { display: none; }
  footer span { float: none; display: block; margin-top: 8px; }
  main { padding-top: 24px; }
  .form-grid { grid-template-columns: 1fr; }
  nav { flex-wrap: wrap; }
  #identity { font-size: 10px; gap: 8px; }
}
@media (max-width: 420px) {
  .brand-logo { width: 112px; }
  #identity { align-items: flex-end; flex-direction: column; gap: 5px; }
  #identity button { padding: 5px 10px; }
  .page-heading h1 { font-size: 29px; }
  .card { padding: 20px; }
  .metric { padding: 15px; }
}

/* Mobile field workspace: large controls, explicit transfer state, and no hidden drafts. */
button, input, select, summary { touch-action: manipulation; }
button { min-height: 48px; }
input, select { min-height: 48px; }
input, select, textarea { font-size: 16px; }
input[type=checkbox] { min-height: 24px; width: 24px; height: 24px; flex: 0 0 24px; }
.check-label { display: flex; gap: 10px; align-items: flex-start; font-weight: 450; line-height: 1.6; }
.check-label input { margin: 2px 0 0; }
.columns > *, .capture-layout > *, .capture-step > *, .form-grid > *, .page-heading > * { min-width: 0; }
.connection-banner { padding: 15px 18px; margin-bottom: 20px; background: #fff3dc; border: 1px solid #e4c681; border-radius: 8px; color: #65490b; font-size: 14px; }
.capture-layout { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, .8fr); gap: 24px; align-items: start; }
.capture-intro { color: var(--muted); margin-top: -6px; }
.capture-step { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 14px; padding: 22px 0; border-top: 1px solid var(--border); }
.step-number { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--blue-tint); color: var(--blue); font-size: 13px; font-weight: 750; }
.capture-step h3 { font-size: 16px; margin: 0 0 8px; }
.capture-step label { margin-bottom: 8px; font-size: 14px; }
.capture-step select { margin-bottom: 14px; }
.capture-step .locked { margin: 12px 0 0; border-radius: 5px; }
.locked small, .locked strong, .locked span { display: block; }
.locked small { font-size: 10px; color: var(--blue); letter-spacing: .08em; }
.locked strong { margin: 4px 0; font-size: 16px; overflow-wrap: anywhere; }
.locked span { color: var(--muted); }
.photo-actions { display: flex; gap: 12px; }
.photo-actions button { flex: 1; font-size: 14px; }
#photo-preview { margin-top: 18px; }
#selected-photo { display: block; width: 100%; height: 250px; object-fit: contain; border: 1px solid var(--border); border-radius: 6px; background: var(--surface); }
#photo-description { overflow-wrap: anywhere; }
#remove-photo { min-height: 44px; }
.capture-submit { margin-top: 16px; }
#upload-submit { width: 100%; font-size: 16px; font-weight: 700; }
.upload-status { color: var(--muted); font-size: 13px; margin: 14px 0 8px; }
.upload-error, .inline-error { color: #a51c25; background: #fff0f1; padding: 13px; border-radius: 5px; }
progress { width: 100%; height: 12px; accent-color: var(--blue); }
.receipt-success { border: 1px solid #b4cdb0; border-left: 4px solid #4f773f; background: #f3f9f0; border-radius: 6px; padding: 18px; overflow-wrap: anywhere; }
.receipt-success h3 { margin-top: 0; }
.capture-help li { margin: 12px 0; }
.capture-help ul { padding-left: 20px; }
details { margin-top: 12px; }
summary { min-height: 44px; display: list-item; padding: 10px 0; cursor: pointer; color: var(--blue); font-size: 13px; font-weight: 650; }
.receipt h3 { font-size: 16px; margin: 0 0 12px; }
.receipt .badge { margin-bottom: 6px; }
.image-link { display: inline-flex; align-items: center; min-height: 48px; padding: 8px 0; font-size: 14px; font-weight: 650; }
.reading-field { padding-bottom: 15px; }
.reading-field label { margin-bottom: 4px; }
.unreadable-button { min-height: 44px; margin-top: 2px; padding: 7px 12px; font-size: 12px; }
@media (max-width: 800px) {
  .capture-layout { grid-template-columns: minmax(0, 1fr); }
  .capture-help { order: 2; }
  .brand-logo { width: 114px; }
  #identity { font-size: 11px; }
  #identity button { min-height: 44px; }
  .page-heading { align-items: center; }
  .page-heading h1 { font-size: 29px; }
  main { padding: 24px 16px 40px; }
  .card { padding: 20px; }
  h2 { font-size: 22px; }
  label { font-size: 14px; }
  .muted { font-size: 13px; }
  .environment { padding: 9px 16px; }
  .environment span { font-size: 10px; line-height: 1.45; }
  .metrics { gap: 10px; }
  .metric { padding: 16px 14px; }
  .metric span { font-size: 12px; }
  .page-heading .secondary { flex: 0 0 86px; padding: 10px; }
  .actions { display: grid; grid-template-columns: 1fr; }
  .actions button { width: 100%; }
  nav:not(.field-navigation) { display: flex; position: sticky; top: 0; z-index: 3; padding: 10px 0; margin: 0 0 20px; background: var(--surface); flex-wrap: nowrap; }
  nav:not(.field-navigation) button { flex: 1; padding: 10px; font-size: 13px; }
  .field-navigation { position: fixed; bottom: 0; left: 0; right: 0; z-index: 5; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 0; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid var(--border); border-bottom: 0; box-shadow: 0 -4px 20px #1321440b; }
  .field-navigation button { min-height: 50px; font-size: 14px; }
  .field-mode { padding-bottom: calc(80px + env(safe-area-inset-bottom)); }
  .field-mode .page-heading { margin-bottom: 8px; }
  .field-mode .page-heading h1 { margin-bottom: 16px; }
  .field-mode #workspace-role { margin-bottom: 7px; }
  .capture-card { padding: 20px 16px; }
  .capture-step { gap: 10px; grid-template-columns: 28px minmax(0, 1fr); }
  .photo-actions { flex-direction: column; gap: 10px; }
  .photo-actions button { width: 100%; min-height: 52px; }
  .capture-submit { position: sticky; bottom: calc(85px + env(safe-area-inset-bottom)); z-index: 2; background: #fff; padding: 8px 0; }
  .capture-help { font-size: 14px; }
  .submission-table, .submission-table tbody { display: block; width: 100%; }
  .submission-table thead { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .submission-table tr { display: block; padding: 12px; margin-bottom: 14px; border: 1px solid var(--border); border-radius: 7px; }
  .submission-table td { display: grid; grid-template-columns: 82px minmax(0, 1fr); gap: 12px; border: 0; padding: 7px 0; font-size: 13px; overflow-wrap: anywhere; }
  .submission-table td::before { content: attr(data-label); color: var(--muted); font-size: 12px; }
  .submission-table td:last-child { display: block; padding-top: 12px; }
  .submission-table td:last-child::before { display: none; }
  .submission-table td button { width: 100%; }
  .badge { white-space: normal; overflow-wrap: anywhere; font-size: 11px; width: fit-content; }
  .receipt { padding: 18px 0; font-size: 14px; }
  .receipt details p { font-size: 12px; }
  dialog { width: 100%; height: 100dvh; max-width: none; max-height: 100dvh; margin: 0; padding: 0 18px calc(24px + env(safe-area-inset-bottom)); border: 0; border-radius: 0; overflow-y: auto; }
  .dialog-heading { position: sticky; top: 0; z-index: 4; background: #fff; padding: calc(12px + env(safe-area-inset-top)) 0 12px; border-bottom: 1px solid var(--border); }
  .dialog-heading h2 { font-size: 19px; margin: 0; }
  .evidence-image { max-height: 55dvh; }
  #message { bottom: calc(90px + env(safe-area-inset-bottom)); left: 16px; right: 16px; max-width: none; font-size: 14px; }
  .login-panel { display: flex; flex-direction: column; gap: 20px; align-items: stretch; padding-top: 5px; min-height: auto; }
  .login-panel > div { order: 2; }
  .login-panel .card { order: 1; padding: 24px; }
  .login-panel h1 { font-size: 32px; }
  .login-panel .steps { margin-top: 22px; }
}
@media (max-width: 420px) {
  header { padding: 10px 16px; }
  .brand-logo { width: 102px; }
  #identity { font-size: 11px; }
  #identity button { min-height: 44px; padding: 8px 14px; }
  .page-heading h1 { font-size: 27px; }
  .page-heading .secondary { font-size: 12px; }
  .capture-step { grid-template-columns: 23px minmax(0, 1fr); gap: 8px; }
  .step-number { width: 23px; height: 23px; font-size: 12px; }
}
@media (max-width: 800px) {
  header { padding-top: calc(10px + env(safe-area-inset-top)); }
  footer { padding-bottom: calc(24px + env(safe-area-inset-bottom)); }
}
@media (max-width: 800px) {
  .capture-card > .eyebrow { margin-bottom: 8px; }
  .capture-card > h2 { margin-bottom: 10px; }
  .capture-intro { font-size: 14px; line-height: 1.5; }
  .capture-step { padding: 17px 0; }
  .capture-step select { margin: 0 0 10px; }
  .capture-step .locked { padding: 12px; margin-top: 10px; }
}
@media (max-width: 800px) {
  .capture-submit { position: static; }
}

/* Private profiles, enrollment, and field evidence controls. */
fieldset { min-width: 0; border: 0; padding: 0; margin: 24px 0 0; }
legend { font-weight: 700; margin-bottom: 18px; }
fieldset:disabled { opacity: .55; }
.registration-layout { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.4fr); gap: 28px; align-items: start; }
.registration-guide { background: var(--navy); color: #e5edff; border: 0; padding: 32px; }
.registration-guide h2 { color: #fff; font-size: 29px; }
.registration-guide .muted { color: #c6d3ed; }
.registration-guide ol { padding-left: 20px; }
.registration-guide li { margin: 18px 0; }
.profile-hero { display: flex; align-items: center; gap: 25px; border-top: 4px solid var(--blue); padding: 30px; background: linear-gradient(110deg,#fff 50%,#f0f5ff); }
.profile-avatar { width: 128px; height: 128px; border-radius: 50%; flex: 0 0 128px; display: grid; place-items: center; background: var(--navy); color: #fff; font-size: 32px; font-weight: 750; overflow: hidden; border: 4px solid #fff; box-shadow: 0 0 0 1px var(--border); }
.profile-avatar img { width: 100%; height: 100%; object-fit: cover; }
.profile-heading { min-width: 0; }
.profile-heading h2 { font-size: 30px; margin-bottom: 8px; }
.profile-heading .eyebrow { margin-bottom: 8px; }
.profile-contact-summary, #profile-contact-summary { overflow-wrap: anywhere; }
.profile-privacy { margin-left: auto; max-width: 190px; color: var(--muted); }
.profile-privacy span { display: block; font-size: 10px; letter-spacing: .1em; font-weight: 750; color: var(--blue); }
.profile-privacy small { display: block; font-size: 12px; margin-top: 7px; }
.profile-layout { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.3fr); gap: 24px; align-items: start; }
.profile-assignment { padding: 15px 0; border-bottom: 1px solid var(--border); font-size: 13px; }
.profile-assignment p { margin: 6px 0; overflow-wrap: anywhere; }
.profile-assignment:last-child { border-bottom: 0; }
.privacy-notice { border: 1px solid var(--border); border-radius: 7px; background: #f5f7fc; padding: 16px; margin: 20px 0; font-size: 12px; color: var(--muted); }
label small { display: block; color: var(--muted); font-size: 12px; font-weight: 400; line-height: 1.5; margin-top: 7px; }
.enrollment-summary { padding: 16px 0; border-bottom: 1px solid var(--border); }
.enrollment-summary p { margin: 6px 0; color: var(--muted); font-size: 13px; }
.enrollment-summary button { display: block; margin-top: 12px; }
.identity-photo { width: 128px; height: 128px; object-fit: cover; border-radius: 12px; margin: 20px 0; }
.identity-details { display: grid; grid-template-columns: 140px minmax(0,1fr); font-size: 14px; }
.identity-details dt, .identity-details dd { padding: 12px 0; border-bottom: 1px solid var(--border); margin: 0; overflow-wrap: anywhere; }
.identity-details dt { color: var(--muted); }
.corner-stage { position: relative; margin: 16px auto; max-width: 500px; }
.corner-stage #selected-photo { display: block; width: 100%; height: auto; max-height: none; border-radius: 0; }
#corner-outline { display: none; position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; overflow: visible; }
#corner-polygon { fill: #165bc025; stroke: #4d97ff; stroke-width: .6; vector-effect: non-scaling-stroke; }
.editing-corners #corner-outline, .corners-confirmed #corner-outline { display: block; }
.corner-handle { position: absolute; width: 44px; height: 44px; min-height: 44px; padding: 0; border-radius: 50%; transform: translate(-50%,-50%); background: var(--blue); border: 3px solid #fff; color: #fff; font-size: 15px; font-weight: 750; box-shadow: 0 2px 10px #13214455; touch-action: none; z-index: 2; cursor: grab; }
.corners-confirmed #corner-handles { display: none; }
.corner-tools { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 12px; }
.geo-check { background: #f4f7fd; padding: 16px; border: 1px solid var(--border); border-radius: 7px; margin-top: 20px; }
.assigned-map { background: #fff; border: 1px solid var(--border); border-left: 4px solid var(--blue); border-radius: 5px; padding: 13px; margin: 12px 0; font-size: 12px; }
.assigned-map a { display: inline-block; padding: 10px 0; min-height: 44px; }
#geo-status { font-size: 13px; overflow-wrap: anywhere; }
@media(max-width:800px) {
  .registration-layout, .profile-layout { grid-template-columns: minmax(0,1fr); }
  .registration-layout > form { order: 1; }
  .registration-guide { order: 2; }
  .profile-hero { flex-wrap: wrap; gap: 18px; padding: 22px 18px; }
  .profile-avatar { flex-basis: 96px; width: 96px; height: 96px; }
  .profile-heading { flex: 1; }
  .profile-heading h2 { font-size: 24px; }
  .profile-privacy { margin: 0; max-width: none; width: 100%; border-top: 1px solid var(--border); padding-top: 14px; }
  .profile-privacy small { margin-top: 4px; }
  .profile-layout > aside { order: 2; }
  .profile-layout > form { order: 1; }
  .field-navigation { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; }
  .field-navigation button { padding: 8px 6px; font-size: 12px; }
  nav:not(.field-navigation) { overflow-x: auto; }
  nav:not(.field-navigation) button { min-width: 90px; }
  .identity-details { grid-template-columns: 95px minmax(0,1fr); font-size: 13px; }
  .corner-tools { flex-direction: column; }
  .corner-tools button { width: 100%; }
}
.identity-profile { background: transparent; border: 0; color: var(--navy); max-width: 230px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#corner-polygon { stroke-width: 2; }
@media(max-width:800px) { .identity-profile { font-size: 11px; padding: 5px; max-width: 175px; } }
@media(max-width:420px) { .identity-profile { max-width: 170px; } }
/* Coverage and funding */
.coverage-donut { width: 180px; height: 180px; border-radius: 50%; display: grid; place-items: center; margin: 20px auto; }
.coverage-donut strong { display: grid; place-items: center; width: 122px; height: 122px; background: #fff; border-radius: 50%; font-size: 30px; color: var(--navy); }
.funding-total { display: block; font-size: 40px; color: var(--navy); margin: 25px 0; }
#coverage-funding progress { width: 100%; height: 20px; accent-color: var(--blue); }
.coverage-bar-row { margin: 18px 0; }
.coverage-bar-row button { text-align: left; max-width: 100%; white-space: normal; }
.coverage-stack { height: 15px; border-radius: 4px; overflow: hidden; background: #e7ebf2; margin-top: 8px; }
.coverage-stack i { display: block; height: 100%; background: var(--blue); }
#coverage-bars { max-height: 530px; overflow-y: auto; padding-right: 8px; }
#coverage-rows button { text-align: left; min-width: 140px; white-space: normal; }
.tier-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(140px,1fr)); gap: 12px; }
.tier-choice { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; border: 1px solid var(--border); border-radius: 9px; padding: 16px; cursor: pointer; }
.tier-choice:has(input:checked) { outline: 2px solid var(--blue); background: #f1f5ff; }
.tier-choice input { width: 20px; min-height: 24px; margin: 0; }
.tier-choice strong { font-size: 23px; color: var(--navy); }
.tier-choice span { width: 100%; font-size: 13px; }
.tier-editor-row { display: grid; grid-template-columns: 2fr 1fr auto; gap: 10px; margin-bottom: 14px; align-items: start; }
.donor-record { border: 1px solid var(--border); border-radius: 9px; padding: 22px; margin-top: 20px; overflow-wrap: anywhere; }
#funding-form h2 { margin-top: 26px; }
@media(max-width:700px) { .field-navigation { grid-template-columns: repeat(var(--tab-count,3),minmax(0,1fr)); } .tier-editor-row { grid-template-columns: 1fr 1fr; } .tier-editor-row button { grid-column: 1/-1; } }
/* Fundraising insights */
.fundraising-heading { display: flex; justify-content: space-between; gap: 24px; align-items: start; margin: 18px 0; }
.fundraising-heading h2 { font-size: clamp(26px,3vw,36px); }
.fundraising-shortcuts { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 24px; }
.fr-filters { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; align-items: end; }
.fr-filters label { margin: 0; }
.fr-filters .check-label { align-self: center; }
.fundraising-chart-grid { display: grid; grid-template-columns: minmax(0,1.7fr) minmax(0,1fr); gap: 24px; }
.chart-heading { display: flex; align-items: start; justify-content: space-between; gap: 18px; }
.chart-total { font-size: 28px; font-weight: 750; color: var(--navy); }
.chart-legend { color: var(--muted); font-size: 12px; line-height: 1.7; }
.metric-change { display: block; color: var(--muted); font-size: 11px; margin-top: 12px; }
#fr-trend-chart svg, #fr-frequency-chart svg { width: 100%; height: auto; margin-top: 18px; overflow: visible; }
.chart-axis { fill: #67738b; font: 10px system-ui,sans-serif; }
.chart-empty { color: var(--muted); text-align: center; padding: 20px 8px; }
.payment-legend { display: flex; align-items: center; gap: 10px; margin: 12px 0; font-size: 13px; }
.payment-legend i { width: 10px; height: 10px; border-radius: 50%; }
.payment-legend strong { margin-left: auto; }
.giving-heatmap { display: grid; grid-template-columns: 45px repeat(24,minmax(15px,1fr)); gap: 4px; min-width: 600px; padding: 12px 3px; }
.heat-cell { display: block; min-height: 22px; border-radius: 3px; }
.heat-cell:focus-visible { outline: 2px solid var(--blue); outline-offset: 1px; }
.heat-day,.heat-hour { color: var(--muted); font-size: 10px; align-self: center; }
.retention-row { display: flex; justify-content: space-between; border-bottom: 1px solid var(--border); padding: 16px 0; }
.retention-row strong { font-size: 23px; color: var(--navy); }
.supporter-row { display: grid; grid-template-columns: 30px 1fr auto; gap: 10px; padding: 16px 0; border-bottom: 1px solid var(--border); }
.supporter-row small { grid-column: 2/-1; color: var(--muted); }
.supporter-rank { color: var(--muted); }
.connection-card { border: 1px solid var(--border); border-radius: 10px; padding: 22px; min-width: 0; }
.connection-card strong { display: block; color: var(--navy); font-size: 22px; margin-bottom: 14px; }
.connection-card p { color: var(--muted); font-size: 13px; }
#fr-campaigns button { text-align: left; white-space: normal; min-width: 160px; }
@media(max-width:850px) { .fundraising-chart-grid { grid-template-columns: 1fr; } .fr-filters { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width:550px) { .fundraising-heading { display: block; } .fundraising-heading button { margin-bottom: 14px; } .fr-filters { grid-template-columns: 1fr; } .chart-heading { flex-wrap: wrap; } .chart-total { font-size: 24px; } .supporter-row { grid-template-columns: 20px 1fr; } .supporter-row>span:not(.supporter-rank) { grid-column: 2; } }
/* Standalone donor form */
.frequency-options { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0 20px; }
.frequency-choice { display: flex; align-items: center; justify-content: center; gap: 8px; flex: 1; padding: 12px 14px; min-height: 48px; border: 1px solid var(--border); border-radius: 7px; cursor: pointer; margin: 0; }
.frequency-choice input { width: 18px; min-height: 18px; margin: 0; flex: 0 0 18px; }
.frequency-choice:has(input:checked) { border-color: var(--blue); background: #eef3fc; color: var(--navy); outline: 1px solid var(--blue); }
.donor-header { justify-content: space-between; max-width: 1200px; margin: auto; border-bottom: 0; }
.donor-header img { width: 150px; height: auto; }
.donor-header span { color: var(--muted); font-size: 12px; }
.donor-main { max-width: 1150px; margin: 45px auto; display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.2fr); gap: 55px; padding: 0 25px; align-items: start; }
.donor-story { position: sticky; top: 35px; padding-top: 30px; }
.donor-story h1 { font-size: clamp(34px,4vw,48px); }
.donor-story>p:not(.eyebrow) { line-height: 1.8; color: var(--muted); }
.donor-campaign { padding: 22px; border-left: 3px solid var(--blue); background: #eaf0fa; border-radius: 0 8px 8px 0; margin: 28px 0; }
.donor-campaign strong { color: var(--navy); }
.donor-campaign p { font-size: 13px; }
.donor-form-panel { padding: 30px; border-top: 4px solid var(--blue); }
.donor-form-panel .tier-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.donor-form-panel .tier-choice { padding: 14px 10px; }
.donor-form-panel .tier-choice strong { font-size: 21px; }
.donor-form-panel .tier-choice small { width: 100%; font-size: 11px; }
.donor-mode { font-size: 12px; color: var(--muted); padding: 12px; background: #f3f5fa; border-radius: 6px; }
.donation-summary { padding: 14px; background: #edf2fa; border-radius: 6px; color: var(--navy); font-weight: 650; }
.donor-details { margin: 24px 0; }
.donor-details summary { color: var(--navy); font-size: 20px; font-weight: 700; cursor: pointer; min-height: 44px; }
#donation-submit { width: 100%; min-height: 52px; margin-top: 10px; }
.donor-receipts { margin-top: 30px; padding-top: 25px; border-top: 1px solid var(--border); }
#donation-message { color: #9c2838; }
@media(max-width:760px) { .donor-main { grid-template-columns: 1fr; gap: 15px; margin: 20px auto; padding: 0 16px; } .donor-story { position: static; padding-top: 0; } .donor-story h1 { font-size: 32px; margin: 12px 0; } .donor-campaign { margin: 18px 0; } .donor-story>p.muted { display: none; } .donor-form-panel { padding: 22px 18px; } .donor-header span { display: none; } .donor-form-panel .tier-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } .frequency-choice { padding: 12px 6px; font-size: 13px; } }

@media(max-width:760px) { .donor-story { order: 2; } .donor-form-panel { order: 1; } }
@media(max-width:550px) { .donor-form-panel .frequency-choice { min-width: 0; font-size: 12px; gap: 5px; } .donor-form-panel .frequency-choice input { width: 14px; flex-basis: 14px; } }
/* Private profile-photo cropper */
button.profile-avatar { padding: 0; min-height: 0; position: relative; cursor: pointer; font-size: 40px; line-height: 1; text-align: center; transition: border-color .18s ease, box-shadow .18s ease; }
button.profile-avatar:hover, button.profile-avatar:active { background: var(--navy); border-color: #ff2b81; box-shadow: 0 0 0 1px #ff2b81; }
button.profile-avatar:focus-visible { border-color: #ff2b81; outline: 2px solid #ff2b81; outline-offset: 3px; }
.photo-crop-dialog { width: min(480px,calc(100vw - 28px)); height: auto; margin: auto; max-height: calc(100dvh - 28px); padding: 24px; overflow-y: auto; border: 1px solid var(--border); border-top: 4px solid var(--blue); border-radius: 10px; }
.photo-crop-dialog h2 { font-size: 23px; }
.photo-crop-dialog .dialog-heading { align-items: start; }
.photo-crop-dialog>p { font-size: 13px; line-height: 1.6; }
.photo-crop-stage { width: min(100%,340px); aspect-ratio: 1; position: relative; overflow: hidden; border-radius: 8px; margin: 20px auto; background: #e7ebf3; }
#photo-crop-canvas { display: block; width: 100%; height: 100%; touch-action: none; cursor: grab; }
#photo-crop-canvas:active { cursor: grabbing; }
.photo-crop-mask { pointer-events: none; position: absolute; inset: 0; border: 2px solid #fff; border-radius: 50%; box-shadow: 0 0 0 100px #13214488; }
.photo-crop-dialog input[type=range] { width: 100%; min-height: 44px; padding: 0; accent-color: var(--blue); }
.photo-crop-dialog label { margin: 12px 0; }
.photo-crop-dialog summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; color: var(--blue); font-size: 13px; }
.photo-crop-dialog .actions { margin-top: 18px; }
@media(max-width:550px) { .photo-crop-dialog { padding: 18px; } .photo-crop-dialog .dialog-heading h2 { font-size: 20px; } }

button.profile-avatar > span { float: none; margin: 0; line-height: 1; }
@media(max-width:760px) { button.profile-avatar { font-size: 32px; } }

/* Public-site inspired sticky header; same footprint in both states. */
.app-header { position: sticky; top: 0; z-index: 20; background-color: #0a2046; border-bottom-color: transparent; box-shadow: 0 7px 20px -6px #13214424; transition: background-color 1s ease, border-color 1s ease, box-shadow 1s ease; }
.app-header .brand-mark { position: relative; display: block; flex-shrink: 0; }
.app-header .brand-mark > .brand-logo-light { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; opacity: 1; }
.app-header .brand-mark picture img { opacity: 0; }
.app-header .brand-logo { transition: opacity 1s ease; }
.app-header .brand-caption, .app-header .identity-profile { color: #fff; transition: color 1s ease; }
.app-header .brand-caption small, .app-header #identity small { color: #dbe5fb; transition: color 1s ease; }
.app-header .brand-caption { border-left-color: #ffffff44; }
.app-header.is-scrolled { background-color: #fff; border-bottom-color: var(--border); box-shadow: 0 7px 20px -6px #13214424; }
.app-header.is-scrolled .brand-mark > .brand-logo-light { opacity: 0; }
.app-header.is-scrolled .brand-mark picture img { opacity: 1; }
.app-header.is-scrolled .brand-caption, .app-header.is-scrolled .identity-profile { color: var(--navy); }
.app-header.is-scrolled .brand-caption small, .app-header.is-scrolled #identity small { color: var(--muted); }
.app-header.is-scrolled .brand-caption { border-left-color: var(--border); }
@media(prefers-reduced-motion:reduce) { .app-header, .app-header .brand-logo, .app-header .brand-caption, .app-header .identity-profile, .app-header .brand-caption small, .app-header #identity small { transition: none; } }

.identity-profile { text-align: right; white-space: normal; line-height: 1.35; }
.identity-profile strong { display: block; font-size: 13px; font-weight: 700; overflow-wrap: anywhere; }
.identity-profile small { display: block; font-size: 10px; font-weight: 500; margin-top: 3px; }
@media(max-width:420px) { .identity-profile strong { font-size: 12px; } }

.registration-complete > :not(#registration-result) { display: none; }
#registration-result { scroll-margin-top: 150px; }
#registration-result:focus { outline: 2px solid var(--royal); outline-offset: 6px; }

/* Supporter invitations: contact details stay in the browser. */
.crowd-sharing { border-top: 3px solid var(--royal); }
.crowd-sharing h2 { font-size: 22px; }
.crowd-sharing summary { font-size: 15px; }
.crowd-sharing textarea { font-size: 16px; resize: vertical; }
.crowd-sharing input { font-size: 14px; }
.share-unit { color: var(--blue); font-weight: 650; overflow-wrap: anywhere; }
.share-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
.share-link { display: inline-flex; align-items: center; min-height: 46px; padding: 10px 14px; border: 1px solid #ccd7e9; border-radius: 5px; text-decoration: none; font-size: 13px; font-weight: 650; overflow-wrap: anywhere; max-width: 100%; }
.share-link[aria-disabled=true] { color: var(--muted); opacity: .7; cursor: default; }
.crowd-sharing fieldset { margin-top: 22px; min-width: 0; }
.crowd-sharing fieldset button { margin: 0 8px 8px 0; }
.share-draft { margin-top: 8px; }
.share-status { font-size: 13px; line-height: 1.6; }
#donation-sharing { margin-top: 28px; padding-top: 22px; }
@media(max-width:550px) { .share-actions { flex-direction: column; } .share-actions button, .crowd-sharing fieldset button { width: 100%; } }
/* The expanded invitation editor must scroll naturally with the donation form. */
.donor-story { position: static; }
.share-channel-choices { margin: 18px 0; }
.share-channel-choices button { flex: 1; min-height: 50px; font-size: 15px; font-weight: 700; }
.share-channel-choices button[aria-pressed=true] { background: var(--blue); border-color: var(--blue); color: #fff; }
.share-copy-fallback { font-size: 14px; }
/* People-led moments: welcome, joining, and adopting a polling unit. */
.photo-story { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 0; padding: 0; overflow: hidden; background: #faf6ef; border: 1px solid #e6dfd4; }
.story-copy { padding: 30px 34px; align-self: center; }
.story-copy h2 { font-size: clamp(27px,3vw,37px); line-height: 1.14; margin: 12px 0 18px; }
.story-copy>p:not(.eyebrow) { line-height: 1.75; }
.story-copy .locked { font-size: 12px; margin-bottom: 0; }
.story-photo { margin: 0; min-width: 0; }
.story-photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 57% 45%; }
.community-photo { margin: 26px 0 0; overflow: hidden; border-radius: 9px; }
.community-photo img { display: block; width: 100%; height: auto; }
.photo-note { color: var(--muted); font-size: 12px; margin-top: 9px; }
.login-panel { gap: 55px; align-items: start; padding-top: 12px; }
.login-panel .community-photo { max-width: 520px; }
.registration-guide .community-photo { margin: -32px -32px 28px; border-radius: 10px 10px 0 0; }
.donation-hero { max-width: 1150px; margin: 28px auto 0; border-radius: 12px; }
.donation-hero h1 { font-size: clamp(32px,3.4vw,46px); margin: 12px 0 18px; }
.donation-hero .story-photo img { max-height: 340px; }
.donor-main { margin-top: 30px; }
.donor-story { padding-top: 5px; }
.donor-story h2 { font-size: 26px; }
@media(max-width:1200px) { .donation-hero { margin-left: 25px; margin-right: 25px; } }
@media(max-width:760px) {
 .photo-story { grid-template-columns: minmax(0,1fr); }
 .story-photo { order: -1; }
 .story-photo img { width: 100%; height: auto; max-height: 230px; aspect-ratio: 3 / 2; object-fit: cover; }
 .story-copy { padding: 24px; }
 .story-copy h2 { font-size: 29px; }
 .donation-hero { margin: 18px 16px 0; }
 .donation-hero .story-photo img { height: auto; max-height: none; aspect-ratio: 3 / 2; }
 .donation-hero .story-copy { padding: 20px 22px; }
 .donation-hero h1 { font-size: 31px; margin: 8px 0 12px; }
 .donation-hero .story-copy>p:not(.eyebrow) { font-size: 14px; line-height: 1.6; margin-bottom: 0; }
 .login-panel { gap: 20px; }
 .login-panel .community-photo { display: none; }
 .login-panel .photo-note { display: none; }
 .registration-guide .community-photo { margin: -20px -20px 24px; }
}
.site-image-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,330px),1fr)); gap: 22px; align-items: start; }
.site-image-card h3 { margin-top: 0; }
.site-image-preview { display: block; width: 100%; aspect-ratio: 3 / 2; height: auto; object-fit: cover; border-radius: 8px; background: #faf6ef; }
.site-image-card .actions { flex-wrap: wrap; }
.site-image-card .check-label { align-items: flex-start; }

.payment-setup-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:20px}.payment-setup-grid article{min-width:0;overflow-wrap:anywhere}.payment-setup-grid ul{padding-left:20px}.donor-receipts article a{display:inline-block;padding:12px 0}

/* Branded payment preference tiles; authorization stays at the payment provider. */
.payment-choices { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:10px 0; }
.payment-choice { position:relative; display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:8px; min-height:104px; padding:18px 12px; margin:0; border:1px solid var(--border); border-radius:10px; background:#fff; cursor:pointer; }
.payment-choice img { display:block; object-fit:contain; width:80px; height:32px; max-width:100%; }
.payment-choice img[src$="google-pay.svg"] { width:104px; height:56px; }
.payment-choice img[src$="card.svg"] { width:38px; height:26px; }
.payment-choice span { font-size:13px; color:var(--navy); font-weight:600; }
.payment-choice input { position:absolute; width:1px; height:1px; min-height:0; padding:0; margin:0; opacity:0; }
.payment-choice:has(input:checked) { border-color:var(--blue); outline:2px solid var(--blue); outline-offset:1px; }
.payment-choice:has(input:checked)::after { content:'✓'; position:absolute; top:3px; right:5px; color:var(--blue); font-size:12px; font-weight:700; }
.payment-choice:has(input:focus-visible) { outline:3px solid #e9348c; outline-offset:3px; }
.payment-choice:has(input:disabled) { cursor:not-allowed; background:#f8f9fc; }
.payment-choice small { flex-basis:100%; font-size:11px; color:#59647b; text-align:center; }
.payment-choice-help { font-size:13px; line-height:1.5; margin:10px 0 16px; }
@media(max-width:760px) { .payment-choices { grid-template-columns:repeat(2,minmax(0,1fr)); } .payment-choice { min-height:104px; padding:17px 12px; } }
#registration-discard-dialog { width:min(480px,calc(100vw - 32px)); height:auto; max-height:calc(100dvh - 32px); margin:auto; padding:24px; border:1px solid var(--border); border-top:4px solid var(--blue); border-radius:10px; }
#registration-discard-dialog h2 { font-size:23px; }
.recruitment-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:22px 0; }
.recruitment-metric { display:flex; flex-direction:column; align-items:flex-start; gap:8px; min-height:100px; padding:18px; color:var(--navy); background:#f4f7fc; border:1px solid var(--border); text-align:left; }
.recruitment-metric strong { font-size:30px; line-height:1; }
.recruitment-metric[aria-pressed=true] { border-color:var(--blue); outline:1px solid var(--blue); background:#eaf1ff; }
.recruitment-metric:hover { color:var(--navy); background:#eaf1ff; }
.recruitment-filters { display:grid; grid-template-columns:1fr 1fr 1.5fr auto; align-items:end; gap:12px; }
.recruitment-filters label { min-width:0; margin:0; }
.recruitment-filters input,.recruitment-filters select { width:100%; }
.recruitment-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:18px 0; }
.recruitment-person { border:1px solid var(--border); border-radius:10px; padding:18px; overflow-wrap:anywhere; }
.recruitment-person h3 { font-size:18px; margin:0 0 5px; }
.recruitment-person p { margin:8px 0; }
.recruitment-person>strong { display:block; margin-top:16px; font-size:14px; }
.recruitment-person button { margin-top:10px; }
.recruitment-attention { color:#8d3f17; font-size:13px; }
@media(max-width:760px) { .recruitment-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; } .recruitment-metric { padding:14px; font-size:13px; } .recruitment-filters,.recruitment-list { grid-template-columns:1fr; } .recruitment-metric strong { font-size:28px; } }

/* Administrator reference review stays distinct from election readiness. */
.directory-status{padding:12px 16px;border-left:4px solid #cc8c22;background:#fff8e9;border-radius:6px;color:#62420c;font-weight:650}
.directory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.directory-unit{padding:20px;border:1px solid var(--line,#d9deea);border-radius:12px;min-width:0}
.directory-unit h3{font-size:1.08rem;line-height:1.45;overflow-wrap:anywhere}
.directory-unit p{overflow-wrap:anywhere}.directory-revision{font-size:.85rem;overflow-wrap:anywhere}
#directory-results-note{min-height:24px}#directory details summary{cursor:pointer;min-height:44px;padding:12px 0;font-weight:650}
@media(max-width:700px){.directory-grid{grid-template-columns:1fr}#directory-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
.directory-editor{width:min(760px,calc(100vw - 24px));max-height:calc(100dvh - 32px);overflow:auto;border:0;border-radius:16px;padding:26px;color:var(--ink,#172442)}
.directory-editor::backdrop{background:rgba(12,23,48,.6)}.directory-editor form{margin-bottom:24px}.directory-editor input[readonly]{background:#edf0f6}.directory-editor li{overflow-wrap:anywhere;margin:10px 0}#directory-history-rows{display:grid;gap:12px;padding:12px 0}
@media(max-width:600px){.directory-editor{padding:18px}.directory-editor .chart-heading{align-items:flex-start}.directory-editor h2{font-size:1.35rem}}
.coverage-view-buttons{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.coverage-view-buttons button[aria-pressed=true]{background:var(--navy,#172442);color:#fff;border-color:var(--navy,#172442)}
.coverage-legend{max-width:420px;margin:18px auto}.coverage-legend p{display:flex;align-items:center;gap:12px}.coverage-legend i{display:inline-block;width:15px;height:15px;border-radius:4px;flex:none}.coverage-legend strong{margin-left:auto}
.coverage-registration{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:24px}.coverage-role-card{border:1px solid #dce1ec;border-radius:12px;padding:16px;min-width:0}.coverage-role-card h3{font-size:1rem}.coverage-stack{display:flex}.coverage-stack i{display:block;flex:none;transition:width .4s ease}
@media(max-width:600px){.coverage-registration{grid-template-columns:1fr}.coverage-view-buttons button{flex:1;min-width:0;padding-left:12px;padding-right:12px}}
@media(min-width:1000px){#coverage-metrics{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:999px){#coverage-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}#coverage-metrics>.metric:last-child{grid-column:span 2}}
@media(max-width:600px){.coverage-view-buttons button{flex:1 1 auto;padding-left:8px;padding-right:8px;font-size:12px}}

.setup-unit-list{display:grid;gap:10px;margin:16px 0;max-height:480px;overflow:auto;overscroll-behavior:contain}.setup-unit-row{border:1px solid #dce2ec;border-radius:10px;padding:12px;display:flex;gap:12px;align-items:flex-start}.setup-unit-row input{width:20px;min-width:20px;height:24px;margin:0}.setup-unit-row p{margin:4px 0}.setup-saved-list{display:grid;gap:12px;margin:20px 0}.setup-saved-list article{border:1px solid #dce2ec;border-radius:12px;padding:16px}.setup-unit-row strong{overflow-wrap:anywhere}#setup-preview-sample{max-height:240px;overflow:auto;margin:16px 0}#setup-form textarea{min-height:90px}#setup-preview .metrics{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:600px){#setup-preview .metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.setup-unit-list{max-height:360px}.setup-unit-row{font-size:14px}.setup-saved-list .actions{flex-direction:column}}

/* Keep in-page targets and the mobile admin menu below the sticky brand header. */
html{scroll-padding-top:calc(var(--app-header-height,140px) + 16px)}
@media(max-width:760px){nav:not(.field-navigation){top:var(--app-header-height,140px)}}

/* Keep the scanner matte outside the image geometry used by corner handles. */
.document-scan-surface{background:#080a0e;padding:28px;border-radius:12px;margin:16px 0;overflow:visible}
.document-scan-surface .corner-stage{margin:0 auto}
#corner-polygon{fill:none;stroke:#7fb6ff}
#submission-help{font-weight:600;line-height:1.5}

.ai-suggestions{margin:24px 0;padding:20px;border:1px solid #cfd8e7;border-radius:12px;background:#f7f9fd}.ai-discrepancy{background:#fff0d4}.ai-suggestions td{vertical-align:top}.ai-suggestions details p{overflow-wrap:anywhere}#ai-settings-content form{max-width:700px}

/* Spreadsheet-like scoped audits; keep the source beside the review on wide screens. */
.audit-grid{width:100%;border-collapse:collapse}.audit-grid th{background:#eef2f8;position:sticky;top:0}.audit-grid th,.audit-grid td{border:1px solid #dce2ed;padding:.75rem;text-align:left}.audit-grid tbody tr:nth-child(even){background:#f7f9fc}.audit-grid tbody tr:hover{background:#edf4ff}.audit-sheet{width:min(1400px,96vw);max-width:96vw}.audit-comparison{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:1.5rem}.audit-comparison>section{min-width:0}.audit-source{width:100%;max-height:70vh;object-fit:contain;background:#111827}.audit-comparison table{width:100%}.audit-comparison th,.audit-comparison td{text-align:left;padding:.5rem;border-bottom:1px solid #dce2ed}.audit-comparison label{display:block;margin:.85rem 0}.audit-comparison input[type=checkbox]{width:auto;margin-right:.5rem}#audit-sheet-error{color:#a01230}
@media(max-width:760px){.audit-comparison{grid-template-columns:1fr}.audit-source{max-height:55vh}.audit-grid th,.audit-grid td{padding:.55rem;min-width:7rem}.audit-sheet{padding:1rem}.audit-comparison .actions{flex-direction:column}.audit-comparison .actions button{width:100%}}
.audit-image-viewport{max-height:70vh;overflow:auto;background:#111827}.audit-image-viewport .audit-source{display:block;max-width:none}.audit-clickable{cursor:pointer}.audit-review-actions{background:#fff;padding:.75rem 0;border-top:1px solid #dce2ed}.audit-review-actions button{flex:1;min-width:10rem}

.audit-review-actions button[value=DISCREPANCY]{border-color:#d12858;color:#a01230}.audit-sheet #audit-sheet-content>p{margin:.5rem 0}.audit-sheet #audit-sheet-content>h3{margin:.75rem 0}

.campaign-admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:20px}.campaign-card-photo{width:100%;height:180px;object-fit:cover;border-radius:8px}.campaign-editor-photo{display:block;width:100%;max-width:700px;max-height:360px;object-fit:contain;background:#f0f3f8}#campaign-editor-host textarea{white-space:pre-wrap}#donation-hero-message{white-space:pre-line}#donation-location-picker select,#donation-location-picker input{width:100%;min-width:0}#donation-location-picker .form-grid{grid-template-columns:1fr}#donation-campaign-choice{display:block;margin:1rem 0}.donor-page footer a{display:inline-block;margin:10px}.campaign-admin-grid .card{min-width:0}

.donation-compliance{white-space:pre-wrap;font-size:.85rem;line-height:1.6;color:#526079;border-top:1px solid #dbe2ec;padding-top:16px;margin-top:20px}.donation-thank-you{white-space:pre-wrap;font-size:1.05rem;color:#174a7c}

.invitation-photo,.share-invitation-image{display:block;width:100%;max-width:600px;max-height:360px;object-fit:contain;border-radius:10px;margin:16px 0;background:#f1f4f8}.share-image-help{font-size:.85rem;line-height:1.6}.share-image-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}

.launch-intro{max-width:760px;margin:48px auto;padding:36px;line-height:1.7}@media(max-width:760px){.launch-intro{margin:24px 16px;padding:24px}}

.account-recovery-card{max-width:480px;margin:40px auto;padding:24px}.account-recovery-card input{font-size:16px}.account-recovery-card button{min-height:44px}@media(max-width:540px){.account-recovery-card{margin:20px 12px}}
