.supporter-portal{max-width:1180px;margin:auto;padding:24px 16px 110px;line-height:1.8;color:#203b35}
.supporter-portal h1{font-size:clamp(26px,4vw,36px);margin:0 0 12px}.supporter-portal h2{font-size:23px;margin:0 0 16px}.supporter-portal h3{font-size:19px;margin:0 0 12px}
.supporter-intro{border-bottom:1px solid #cfded8;padding:12px 0 28px}.supporter-portal nav{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}.supporter-portal nav a{color:#126b54;padding:8px 12px;background:#eaf5ef;border-radius:8px}
.supporter-section{padding-top:36px;scroll-margin-top:100px}.supporter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:18px}
.supporter-card{padding:22px;background:#fff;border:1px solid #d8e3de;border-radius:14px}.supporter-card dl{display:grid;grid-template-columns:1fr 1fr;gap:8px}.supporter-card dd{margin:0;text-align:left;font-weight:600}.supporter-card dt{color:#52665f}
.supporter-card progress{width:100%;height:14px;accent-color:#126b54}.supporter-card p{overflow-wrap:anywhere;white-space:pre-wrap}.supporter-card a{display:block;color:#126b54;text-decoration:underline}
.supporter-historical-card{display:flex;flex-direction:column;gap:10px}.supporter-historical-card h3,.supporter-historical-card p{margin:0}.supporter-historical-target{font-weight:700}.supporter-historical-status{align-self:flex-start;padding:3px 10px;border-radius:999px;background:#e6f5ed;color:#125d43;font-weight:700}.supporter-historical-unknown{padding:12px;background:#f4f5f1;border-radius:8px;color:#465b52}.supporter-historical-card small{display:block}.supporter-report-link{margin-top:auto;padding:10px 14px;border:1px solid #126b54;border-radius:8px;text-align:center;font-weight:700}.supporter-historical-report{margin-bottom:16px;scroll-margin-top:110px}.supporter-historical-report video{display:block;width:100%;max-height:520px;background:#152c27;border-radius:8px}
.supporter-history-controls{display:flex;justify-content:flex-end;gap:8px;margin-bottom:12px}.supporter-history-controls button{width:44px;height:44px;border:1px solid #bfd7cb;border-radius:10px;background:#eaf5ef;color:#125d43;font:inherit;cursor:pointer}.supporter-history-controls button:focus-visible,.supporter-historical-track:focus-visible{outline:3px solid #69bba2;outline-offset:2px}.supporter-historical-track{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(270px,min(85vw,350px));gap:16px;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x mandatory;padding:4px 2px 16px;scrollbar-color:#8eb9a5 transparent}.supporter-historical-track>.supporter-card{scroll-snap-align:start}
.supporter-form,.supporter-editor{padding:24px;background:#fff;border:1px solid #d8e3de;border-radius:14px}.supporter-form{max-width:700px}.supporter-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:16px}
.supporter-field{display:grid;gap:6px;margin-bottom:14px}.supporter-field input:not([type=checkbox]),.supporter-field select,.supporter-field textarea{min-height:48px;width:100%;border:1px solid #bfcfc7;border-radius:8px;padding:9px 12px;font:inherit;color:inherit;background:#fff}
.supporter-field input[type=checkbox]{width:22px;height:22px;accent-color:#126b54}.supporter-field input:focus-visible,.supporter-button:focus-visible,.supporter-portal a:focus-visible{outline:3px solid #69bba2;outline-offset:3px}
.supporter-button{min-height:44px;padding:9px 18px;background:#126b54;color:white;border:1px solid #126b54;border-radius:8px;font:inherit;cursor:pointer;margin:8px 0 0 8px}.supporter-button.secondary{background:#edf6f1;color:#126b54;border-color:#c2d7cb}.supporter-button:disabled{opacity:.55;cursor:default}
.supporter-error,.supporter-notice{padding:14px;border-radius:9px}.supporter-error{background:#fff0ec;color:#9c3323}.supporter-notice{background:#e6f5ed;color:#125d43}.supporter-empty{padding:24px;background:#f3f7f4;border-radius:10px;color:#52665f}
.supporter-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:24px}.supporter-metrics>div{padding:16px;background:#edf6f1;border-radius:10px}.supporter-metrics b,.supporter-metrics small{display:block}.supporter-editor{margin:20px 0}
@media(max-width:600px){.supporter-portal{padding:16px 12px 120px}.supporter-card,.supporter-form,.supporter-editor{padding:16px}.supporter-portal nav{gap:8px}.supporter-metrics{grid-template-columns:1fr 1fr}.supporter-card dl{font-size:14px}}
