:root { color-scheme: light; font-family: -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", sans-serif; color: #2b2528; background: #fff9fb; font-size: 16px; }
* { box-sizing: border-box; }
body { margin: 0; }
a { color: #a92f68; }
a:focus-visible, button:focus-visible, select:focus-visible, input:focus-visible { outline: 3px solid #a92f68; outline-offset: 2px; }
.site-header { display: flex; align-items: baseline; gap: 20px; padding: 12px 3%; background: #a92f68; color: white; }
.site-header a { font-size: 21px; font-weight: 750; color: white; text-decoration: none; }
.site-header span { font-size: 15px; }
main { max-width: 1560px; margin: 0 auto; padding: 0 3% 32px; }
.toolbar { position: sticky; top: 0; z-index: 2; display: flex; flex-wrap: wrap; align-items: end; gap: 6px 9px; padding: 8px 0; background: #fff9fb; border-bottom: 1px solid #ead8e0; }
.toolbar label { display: flex; flex-direction: column; gap: 2px; font-size: 15px; font-weight: 650; color: #62575c; }
.toolbar input, .toolbar select, .toolbar button { min-height: 38px; padding: 5px 9px; border: 1px solid #a6909a; border-radius: 5px; background: white; color: #2b2528; font: inherit; font-size: 16px; }
.toolbar .search-label { flex: 1 1 210px; }
.toolbar .search-label input { width: 100%; }
.toolbar select { max-width: 165px; }
.toolbar button { background: #a92f68; color: white; border-color: #a92f68; font-weight: 700; cursor: pointer; }
.toolbar button:hover { background: #8f2456; }
.reset { padding: 7px 0; white-space: nowrap; font-size: 16px; }
.results-summary { display: flex; justify-content: space-between; padding: 8px 0; font-size: 16px; color: #62575c; }
.results-summary strong { color: #2b2528; }
.grant-list { background: white; }
.grant-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 16px; padding: 8px 12px; border-top: 1px solid #ead8e0; min-height: 108px; }
.grant-row:last-child { border-bottom: 1px solid #ead8e0; }
.grant-row:hover { background: #fff6fa; }
.row-heading { display: flex; align-items: baseline; gap: 9px; min-width: 0; }
.category-badge { flex: none; padding: 1px 7px; border-radius: 5px; background: #f7d6e4; color: #772447; font-size: 15px; font-weight: 700; white-space: nowrap; }
.row-heading h2 { margin: 0; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 18px; line-height: 1.4; font-weight: 650; }
.row-heading h2 a { color: #2b2528; text-decoration: none; }
.row-heading h2 a:hover { color: #a92f68; text-decoration: underline; }
.row-meta { display: flex; align-items: baseline; justify-content: end; gap: 14px; min-width: 0; white-space: nowrap; font-size: 15px; }
.agency { max-width: 230px; overflow: hidden; text-overflow: ellipsis; color: #62575c; }
.official-link { flex: none; font-size: 16px; font-weight: 700; white-space: nowrap; }
.decision-grid, .optional-grid { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1.2fr) minmax(0, .85fr) minmax(0, 1fr); gap: 3px 14px; }
.target-field { grid-column: 1; }
.support-field { grid-column: 2; }
.amount-field { grid-column: 3; }
.period-field { grid-column: 4; }
.optional-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.decision-field { display: grid; grid-template-columns: 37px minmax(0, 1fr); gap: 5px; min-width: 0; font-size: 16px; line-height: 1.4; }
.field-label { font-weight: 700; color: #62575c; }
.field-value { display: -webkit-box; overflow: hidden; overflow-wrap: anywhere; -webkit-box-orient: vertical; -webkit-line-clamp: 1; line-clamp: 1; }
.target-field .field-value { -webkit-line-clamp: 2; line-clamp: 2; }
.emphasis .field-value { font-weight: 750; color: #a92f68; font-size: 17px; }
.pagination { display: flex; justify-content: center; align-items: center; gap: 16px; padding: 18px; font-size: 16px; }
.pagination a { padding: 8px 12px; border: 1px solid #c99bae; border-radius: 5px; text-decoration: none; background: white; }
.pagination a:hover { background: #fbe4ee; }
.empty { padding: 32px 12px; }
.back-link { display: inline-block; margin: 18px 0; }
.detail { max-width: 960px; }
.detail h1 { font-size: 28px; }
.detail h2 { font-size: 21px; margin-top: 30px; }
.detail-fields, .metadata { margin: 0; border-top: 2px solid #a92f68; }
.detail-fields div, .metadata div { display: grid; grid-template-columns: 130px 1fr; gap: 12px; padding: 9px 0; border-bottom: 1px solid #ead8e0; }
dt { font-weight: 700; }
dd { margin: 0; overflow-wrap: anywhere; }
.summary-text { white-space: pre-line; line-height: 1.5; }
.detail-official { display: inline-block; margin-top: 20px; font-weight: 700; }
@media (max-width: 900px) {
  .grant-row { display: flex; flex-direction: column; gap: 7px; padding: 12px; }
  .row-heading { order: 1; flex-wrap: wrap; }
  .row-heading h2 { flex: 1 1 100%; }
  .decision-grid { order: 2; grid-template-columns: 1fr; gap: 6px; }
  .decision-grid .decision-field { grid-column: 1; }
  .optional-grid { order: 3; grid-template-columns: 1fr; gap: 6px; }
  .row-meta { order: 4; justify-content: start; flex-wrap: wrap; }
  .field-value, .target-field .field-value { -webkit-line-clamp: unset; line-clamp: unset; }
}
@media (max-width: 760px) {
  .site-header { padding: 12px 4%; }
  main { padding: 0 4% 28px; }
  .toolbar { position: static; }
  .toolbar label { flex: 1 1 130px; }
  .toolbar .search-label { flex-basis: 100%; }
  .toolbar select { max-width: none; width: 100%; }
  .detail-fields div, .metadata div { grid-template-columns: 90px 1fr; }
}
.company-profile { margin: 12px 0 8px; padding: 10px 12px; background: #fcecf3; border: 1px solid #e4b5c9; border-radius: 5px; font-size: 16px; }
.company-profile summary { cursor: pointer; }
.match-note { color: #62575c; line-height: 1.5; font-size: 16px; }
.profile-form { display: flex; flex-wrap: wrap; gap: 12px; align-items: end; }
.profile-form > label { display: flex; flex-direction: column; gap: 5px; }
.profile-form input:not([type=checkbox]), .profile-form select, .profile-form button { font: inherit; min-height: 40px; border: 1px solid #a6909a; border-radius: 4px; padding: 6px 10px; background: white; max-width: 100%; }
.profile-form input[type=number] { width: 140px; }
.company-types { flex-basis: 100%; border: 1px solid #c99bae; display: flex; flex-wrap: wrap; gap: 8px 16px; }
.company-types label { display: inline-flex; align-items: center; gap: 5px; }
.company-types input { width: 18px; height: 18px; }
.profile-form button { cursor: pointer; }
.profile-form button:first-child { background: #a92f68; color: white; }
.profile-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.match-row { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: baseline; font-size: 16px; }
.match-row > span:not(.match-counts) { max-width: 440px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.match-status { padding: 2px 7px; border-radius: 4px; font-size: 16px; white-space: nowrap; }
.status-MATCH { background: #e4f2eb; color: #205b3f; }
.status-REVIEW { background: #fff0d5; color: #775311; }
.status-EXCLUDED { background: #f9dde6; color: #94274d; }
.match-counts { color: #62575c; margin-left: auto; }
.condition-list { list-style: none; margin: 0; padding: 0; }
.condition-list > li { padding: 10px 0; border-bottom: 1px solid #ead8e0; display: flex; flex-wrap: wrap; gap: 6px 12px; line-height: 1.5; }
.official-condition { flex-basis: 100%; }
.condition-evidence { width: 100%; color: #62575c; }
.condition-evidence summary { cursor: pointer; }
.condition-evidence p { margin: 6px 0; overflow-wrap: anywhere; }
@media (max-width: 900px) { .match-row { order: 2; } .match-counts { margin-left: 0; } }
/* Matching UX v2: stable columns, readable text, no clipped decision criteria. */
.grant-row { gap: 7px 14px; padding: 12px; }
.row-heading { align-items: baseline; }
.row-heading h2 { white-space: normal; overflow: visible; }
.row-meta { font-size: 16px; }
.category-badge { font-size: 16px; }
.core-grid { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px 18px; }
.core-axis { display: grid; grid-template-columns: 65px minmax(0, 1fr); gap: 6px; font-size: 16px; line-height: 1.45; overflow-wrap: anywhere; }
.axis-symbol { font-weight: 800; }
.eval-MATCH { color: #205b3f; }
.eval-MISMATCH, .exclusion-reason { color: #94274d; }
.company-value, .axis-empty, .review-hint { color: #62575c; }
.eligibility-review { grid-column: 1 / -1; display: flex; flex-direction: column; gap: 5px; }
.eligibility-review:empty { display: none; }
.inline-conditions summary, .inline-documents summary, .extended-profile summary { cursor: pointer; }
.inline-conditions summary strong { margin-right: 10px; }
.expand-label { color: #a92f68; margin-left: 10px; text-decoration: underline; }
.inline-conditions ul { margin: 8px 0; padding: 0; list-style: none; max-width: 1000px; }
.inline-conditions li { padding: 5px 0; display: flex; justify-content: space-between; gap: 16px; border-top: 1px solid #ead8e0; overflow-wrap: anywhere; }
.inline-conditions li a { flex: none; }
.decision-grid { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1.3fr) minmax(0, 1fr) minmax(0, .6fr); }
.support-field { grid-column: 1; }
.amount-field { grid-column: 2; }
.period-field { grid-column: 3; }
.channel-field { grid-column: 4; }
.decision-grid .field-value { display: block; overflow: visible; -webkit-line-clamp: unset; line-clamp: unset; }
.inline-documents { grid-column: 1 / -1; color: #62575c; }
.inline-documents p { margin: 5px 0; }
.extended-profile { flex-basis: 100%; }
.extended-profile > div { display: flex; flex-wrap: wrap; gap: 16px; margin: 8px 0; }
.extended-profile label { display: flex; flex-direction: column; gap: 5px; }
summary:focus-visible { outline: 3px solid #a92f68; outline-offset: 2px; }
@media (max-width: 1100px) {
  .grant-row { grid-template-columns: 1fr; }
  .row-meta { justify-content: start; }
  .core-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .decision-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .decision-grid .decision-field { grid-column: auto; }
}
@media (max-width: 900px) {
  .grant-row > * { order: initial; }
}
@media (max-width: 600px) {
  .core-grid, .decision-grid { grid-template-columns: 1fr; }
  .row-heading { flex-wrap: wrap; }
  .row-heading h2 { flex-basis: 100%; }
  .inline-conditions li { display: block; }
  .inline-conditions li a { margin-left: 8px; }
}

/* Matching UX v2.1: semantic benefits and explicit comparison labels. */
.decision-field { grid-template-columns: 80px minmax(0, 1fr); }
.benefit-list { list-style: none; margin: 0; padding: 0; }
.benefit-list li + li::before { content: "· "; }
.benefit-detail { font-size: 14px; font-weight: 400; }
.axis-state { font-size: 14px; white-space: nowrap; }
.qualification-note { margin: 7px 0; color: #62575c; }
.inline-conditions summary strong { margin-right: 0; }

/* Explicit native disclosure affordance; the entire summary toggles. */
summary { cursor: pointer; list-style: none; }
summary::-webkit-details-marker { display: none; }
.disclosure-action { color: #a92f68; white-space: nowrap; }
.disclosure-close { display: none; }
details[open] > summary .disclosure-open { display: none; }
details[open] > summary .disclosure-close { display: inline; }

/* Review choices share the existing metadata line; matching stays independent. */
.review-control { flex: none; max-width: 100%; height: 24px; padding: 1px 3px; border: 1px solid #c99bae; border-radius: 4px; background: white; color: #62575c; font: inherit; font-size: 13px; cursor: pointer; }
.review-control[data-saved="yes"] { background: #fce5ef; color: #84234f; border-color: #aa3970; }
.row-meta { gap: 5px; }
.row-meta .agency { max-width: 70px; }
.row-heading { gap: 6px; }
.review-workspace { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; padding: 7px 0; font-size: 14px; }
.review-workspace a { text-decoration: none; padding: 3px 5px; border-radius: 4px; }
.review-workspace a[aria-current="page"] { background: #a92f68; color: white; }
.review-workspace button { font: inherit; padding: 3px 7px; border: 1px solid #c99bae; border-radius: 4px; background: white; cursor: pointer; margin-left: auto; }
.review-storage-note { font-size: 12px; color: #62575c; }
.detail-review { display: flex; align-items: center; gap: 8px; margin-bottom: 18px; }
#review-message { position: sticky; top: 0; z-index: 3; margin: 5px 0; padding: 7px; background: #fcecf3; border: 1px solid #e4b5c9; font-size: 14px; }
#browse-workspace[aria-busy="true"] .results-summary { opacity: .55; }
#review-reset-confirm { padding: 8px; border: 1px solid #c99bae; background: #fcecf3; font-size: 14px; }
#review-reset-confirm button { margin-left: 8px; font: inherit; cursor: pointer; }

/* Readability bands: one shared right action column; four bands by default. */
.grant-row { --row-actions: 300px; display: flex; flex-direction: column; gap: 0; padding: 9px 12px; min-height: 0; font-size: 16px; line-height: 1.5; word-break: keep-all; }
.notice-header { display: grid; grid-template-columns: minmax(0, 1fr) var(--row-actions); gap: 18px; align-items: start; padding-bottom: 6px; }
.row-heading h2 { font-size: 18px; font-weight: 750; overflow-wrap: anywhere; }
.row-actions { display: flex; justify-content: flex-end; align-items: start; gap: 10px; min-width: 0; }
.row-meta { align-items: center; font-size: 14px; white-space: normal; }
.row-meta .agency { flex: 1; max-width: none; white-space: normal; overflow: visible; overflow-wrap: anywhere; text-align: right; }
.row-meta .official-link { color: #a92f68; font-size: 14px; font-weight: 500; }
.row-meta .review-control { color: #a92f68; }
.block-label { margin: 0; font-size: 14px; font-weight: 500; color: #756970; white-space: nowrap; padding-top: 2px; }
.eligibility-line, .support-block, .application-block { display: grid; grid-template-columns: 64px minmax(0, 1fr) var(--row-actions); gap: 12px 18px; align-items: start; min-width: 0; padding: 5px 0; }
.eligibility-line { border-block: 1px solid #f2e8ec; }
.core-grid { grid-column: auto; display: flex; flex-wrap: wrap; gap: 3px 20px; min-width: 0; }
.core-axis { display: block; line-height: 1.5; }
.core-axis .field-label { display: inline; margin-right: 6px; font-size: 14px; font-weight: 400; }
.core-axis > div, .axis-requirement { display: inline; }
.axis-requirement + .axis-requirement::before { content: ' · '; }
.company-value { font-size: 14px; }
.match-status { font-size: 14px; font-weight: 500; padding: 1px 5px; }
.decision-grid { display: grid; grid-template-columns: 1fr; gap: 0; }
.application-block { border-top: 1px solid #f5eff2; }
.support-content, .application-content { min-width: 0; overflow-wrap: anywhere; }
.benefit-list { display: inline; font-size: 17px; font-weight: 700; }
.benefit-list li { display: inline; }
.financial-summary { font-size: 16px; font-weight: 700; color: #92315e; }
.application-content { color: #2b2528; }
.application-content > span { display: inline; }
.application-content > span + span::before { content: ' · '; color: #95858d; }
.document-count { white-space: nowrap; font-size: 14px; color: #756970; }
.row-disclosure { border: 0; padding: 2px 0; background: transparent; color: #a92f68; font: inherit; font-size: 14px; line-height: 1.5; cursor: pointer; text-align: right; }
.row-disclosure:hover { text-decoration: underline; }
.row-disclosure[aria-expanded="true"] .disclosure-open { display: none; }
.row-disclosure[aria-expanded="true"] .disclosure-close { display: inline; }
.row-expansions:not(:has(> :not([hidden]))) { display: none; }
.expanded-panel { border-top: 1px solid #e4cbd6; padding: 12px 0 6px 82px; overflow-wrap: anywhere; }
.expanded-panel h3 { margin: 0 0 6px; font-size: 16px; }
.expanded-panel ul { list-style: none; margin: 0; padding: 0; }
.expanded-panel li { display: flex; justify-content: space-between; gap: 24px; padding: 5px 0; }
.expanded-panel li > span { max-width: 68ch; }
.expanded-panel li a { flex: none; font-size: 14px; margin-left: auto; }
.expanded-panel p { margin: 5px 0; max-width: 68ch; }
.panel-actions { display: flex; justify-content: end; font-size: 14px; }
.document-list { display: flex; flex-wrap: wrap; gap: 0 20px; }
/* Only short, complete benefit summaries may share a band with application.
   Benefit disclosures always keep their own band and right action column. */
@media (min-width: 1280px) {
  .decision-grid.compact-fit { align-items: start; grid-template-columns: 64px minmax(0, 1.25fr) 64px minmax(0, 1fr) var(--row-actions); gap: 0 18px; padding: 5px 0; }
  .compact-fit .support-block, .compact-fit .application-block { display: contents; }
  .compact-fit .support-block .block-label { grid-column: 1; grid-row: 1; }
  .compact-fit .support-content { grid-column: 2; grid-row: 1; }
  .compact-fit .support-block .row-actions { display: none; }
  .compact-fit .application-block .block-label { grid-column: 3; grid-row: 1; }
  .compact-fit .application-content { grid-column: 4; grid-row: 1; }
  .compact-fit .application-block .row-actions { grid-column: 5; grid-row: 1; }
}
@media (max-width: 1100px) {
  .grant-row { --row-actions: 230px; }
}
@media (max-width: 900px) {
  .notice-header { grid-template-columns: 1fr; gap: 6px; }
  .row-heading, .row-meta { order: initial; }
  .row-meta { justify-content: end; }
  .row-meta .agency { flex: 0 1 auto; }
  .eligibility-line, .support-block, .application-block { grid-template-columns: 64px minmax(0, 1fr); gap: 4px 12px; padding: 7px 0; }
  .eligibility-line > .row-actions, .support-block > .row-actions, .application-block > .row-actions { grid-column: 2; }
  .row-actions:empty { display: none; }
  .core-grid { flex-direction: column; gap: 4px; }
  .expanded-panel { padding-left: 0; }
  .expanded-panel li { gap: 12px; }
}
/* Mobile reading comes before the three optional expansion controls. */
@media (max-width: 900px) {
  .grant-row { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 7px 12px; padding-block: 12px; }
  .notice-header { grid-column: 1 / -1; grid-row: 1; border-bottom: 1px solid #f2e8ec; }
  .eligibility-line, .decision-grid, .support-block, .application-block { display: contents; }
  .eligibility-line > .block-label { grid-column: 1; grid-row: 2; }
  .core-grid { grid-column: 2; grid-row: 2; }
  .support-block > .block-label { grid-column: 1; grid-row: 3; }
  .support-content { grid-column: 2; grid-row: 3; }
  .application-block > .block-label { grid-column: 1; grid-row: 4; }
  .application-content { grid-column: 2; grid-row: 4; }
  .eligibility-line > .row-actions { grid-row: 5; }
  .support-block > .row-actions { grid-row: 6; }
  .application-block > .row-actions { grid-row: 7; }
  .row-expansions, .grant-row > noscript { grid-column: 1 / -1; grid-row: 8; }
}
