:root { color-scheme:light; --ink:#222d28; --muted:#52605a; --line:#cfd7d2; --panel:#fff; --primary:#185743; }
body { margin:0; background:#f6f7f4; color:var(--ink); font:1rem/1.55 system-ui,sans-serif; }
.cp-shell { max-width:76rem; margin:auto; padding:clamp(1rem,4vw,3rem); }
.cp-top,.cp-nav,.cp-actions,.action-row,.page-header,.page-header-actions,.form-inline,.cp-steps {
    display:flex; gap:.8rem; flex-wrap:wrap; align-items:center;
}
.cp-top,.page-header { justify-content:space-between; }
.cp-top { padding:1rem clamp(1rem,4vw,3rem); border-bottom:1px solid var(--line); background:#fff; }
.cp-top > a { font-weight:750; }
.cp-nav { margin-bottom:1.5rem; padding:.7rem 0; border-bottom:1px solid var(--line); }
.cp-nav form { margin:0 0 0 auto; }
.cp-hero { max-width:55rem; padding-block:clamp(1.5rem,5vw,4rem); }
h1 { margin:.4rem 0 1rem; font-size:clamp(2rem,6vw,4rem); line-height:1.08; text-wrap:balance; }
h2,h3 { line-height:1.25; text-wrap:balance; }
p { max-width:70ch; overflow-wrap:anywhere; }
a { color:var(--primary); text-underline-offset:.2em; }
button,.button,.cp-button { display:inline-flex; align-items:center; justify-content:center; min-height:44px; box-sizing:border-box; padding:.45rem .85rem; border:1px solid var(--primary); border-radius:.35rem; background:var(--primary); color:#fff; font:inherit; text-decoration:none; cursor:pointer; }
.button-secondary,.cp-nav button { background:#fff; color:var(--primary); }
[hidden] { display:none !important; }
:focus-visible { outline:3px solid #a84b00; outline-offset:3px; }
.panel,.cp-share { padding:clamp(1rem,3vw,1.7rem); border:1px solid var(--line); background:#fff; margin-block:1rem; border-radius:.45rem; }
.panel-narrow,.form-stack,.campaign-form { max-width:42rem; }
.cp-plan-grid,.campaign-cases,.campaign-evidence,.settings-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr)); gap:1rem; }
.cp-steps { margin-block:1rem; }
.cp-steps a[aria-current] { font-weight:750; }
.form-stack,.campaign-form { display:grid; gap:.9rem; margin-block:1rem; }
label { display:grid; gap:.25rem; min-width:0; }
.checkbox-label,.campaign-check { display:flex; gap:.5rem; align-items:start; }
input:not([type=checkbox]),textarea,select { width:100%; max-width:100%; box-sizing:border-box; min-height:42px; padding:.45rem; border:1px solid #88968f; border-radius:.25rem; background:white; color:var(--ink); font:inherit; }
input[type=color] { width:4rem; }
form button { justify-self:start; }
.table-wrap { overflow:auto; }
.data-table { border-collapse:collapse; width:100%; }
.data-table th,.data-table td { padding:.6rem; border-bottom:1px solid var(--line); text-align:left; overflow-wrap:anywhere; }
.cp-logo { max-width:9rem; max-height:5rem; object-fit:contain; }
.cp-cover { display:block; max-width:100%; max-height:28rem; object-fit:cover; }
.campaign-intro { border-bottom:2px solid var(--campaign-accent,var(--primary)); margin-bottom:1.5rem; }
.campaign-evidence img { display:block; max-width:100%; height:auto; }
.campaign-evidence figure { margin:0; }
.campaign-cases article { border-top:1px solid var(--line); padding-top:.5rem; }
.cp-share details,.cp-share label { margin-top:.7rem; }
.cp-error,.alert-error,[role=alert] { color:#9f1c17; }
.cp-team li { padding:.55rem 0; }
