:root{
  --con-ink:#173348;
  --con-muted:#667783;
  --con-line:rgba(23,51,72,.14);
  --con-paper:#f7f5f0;
  --con-surface:#fffdfa;
  --con-sea:#3d7378;
  --con-accent:#9a5849;
  --con-soft:#e9eeeb;
  --con-focus:rgba(61,115,120,.16);
}
.contribute-page{min-height:72vh;background:var(--con-paper);color:var(--con-ink)}
.contribute-shell{width:min(960px,calc(100% - 40px));margin-inline:auto}
.contribute-head{padding:clamp(3.3rem,7vw,5.6rem) 0 clamp(2.2rem,4vw,3.2rem)}
.contribute-head-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2rem;align-items:end}
.page-overline{margin:0 0 .6rem;color:var(--con-sea);font-size:.76rem;font-weight:850;letter-spacing:.08em}
.contribute-heading h1{margin:0;font-family:var(--font-sans);font-size:clamp(2.2rem,5vw,3.55rem);font-weight:780;line-height:1.16;letter-spacing:-.045em}
.contribute-heading>p:last-child{max-width:660px;margin:1rem 0 0;color:var(--con-muted);font-size:.98rem;line-height:1.85}
.contribute-segment{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border:1px solid rgba(23,51,72,.1);border-radius:999px;background:#e7ebe8;box-shadow:inset 0 1px 2px rgba(23,51,72,.04)}
.contribute-segment a{min-width:108px;height:40px;display:grid;place-items:center;padding:0 1rem;border-radius:999px;color:#66737a;text-decoration:none;font-size:.84rem;font-weight:820;transition:background .2s ease,color .2s ease,box-shadow .2s ease,transform .2s ease}
.contribute-segment a:hover{color:var(--con-ink)}
.contribute-segment a[aria-current="page"]{background:#fff;color:var(--con-ink);box-shadow:0 2px 8px rgba(21,45,61,.11),0 1px 2px rgba(21,45,61,.08)}
.contribute-segment a:active{transform:scale(.985)}

.flow-shell{padding:0 0 clamp(5rem,9vw,8rem)}
.flow-progress{padding:1.7rem 0 2.4rem;border-top:1px solid var(--con-line)}
.flow-progress-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:1.35rem}
.flow-progress-head>span{color:var(--con-muted);font-size:.76rem;font-weight:760}
.flow-progress-head>strong{font-size:.92rem;font-weight:850}
.flow-progress ol{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:0;padding:0;list-style:none}
.flow-progress ol::before{content:"";position:absolute;left:16px;right:16px;top:16px;height:1px;background:var(--con-line)}
.flow-progress li{position:relative}
.flow-progress button{position:relative;width:100%;display:grid;justify-items:start;gap:.45rem;padding:0;border:0;background:transparent;color:var(--con-muted);font:inherit;text-align:left;cursor:pointer}
.flow-progress button:disabled{cursor:default;opacity:.55}
.flow-progress button i{width:32px;height:32px;display:grid;place-items:center;border:1px solid #c6cfcc;border-radius:50%;background:var(--con-paper);color:var(--con-muted);font-size:.72rem;font-style:normal;font-weight:850;transition:all .2s ease}
.flow-progress button span{font-size:.74rem;font-weight:780;white-space:nowrap}
.flow-progress li.is-active button,.flow-progress li.is-complete button{color:var(--con-ink)}
.flow-progress li.is-active button i{border-color:var(--con-ink);background:var(--con-ink);color:#fff;box-shadow:0 0 0 5px var(--con-paper)}
.flow-progress li.is-complete button i{border-color:#769398;background:#eef4f2;color:var(--con-sea)}

.form-loading{min-height:310px;display:grid;place-items:center;align-content:center;gap:.9rem;color:var(--con-muted)}
.form-loading span{width:26px;height:26px;border:2px solid #cdd6d2;border-top-color:var(--con-sea);border-radius:50%;animation:con-spin .8s linear infinite}.form-loading p{margin:0;font-size:.84rem}
@keyframes con-spin{to{transform:rotate(360deg)}}
.form-step{animation:step-in .28s cubic-bezier(.2,.7,.2,1)}
@keyframes step-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.step-heading{max-width:700px;margin-bottom:2.8rem}
.step-heading span{display:block;margin-bottom:.55rem;color:var(--con-sea);font-size:.72rem;font-weight:850;letter-spacing:.07em}
.step-heading h2{margin:0;font-size:clamp(1.55rem,3.2vw,2.15rem);font-weight:780;letter-spacing:-.035em}
.step-heading p{margin:.75rem 0 0;color:var(--con-muted);line-height:1.8}
.question-list{display:grid;gap:2rem}
.question{display:grid;gap:.68rem}
.question-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}
.question-head label,.question-head>span{font-size:.88rem;font-weight:850}
.required-mark{margin-left:.22rem;color:var(--con-accent)}
.question-help{margin:0;color:var(--con-muted);font-size:.78rem;line-height:1.65}
.contribution-form input:not([type="radio"]):not([type="checkbox"]):not([type="file"]),.contribution-form select,.contribution-form textarea{width:100%;box-sizing:border-box;border:1px solid #c5ceca;border-radius:10px;background:rgba(255,255,255,.8);color:var(--con-ink);font:inherit;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}
.contribution-form input:not([type="radio"]):not([type="checkbox"]):not([type="file"]),.contribution-form select{min-height:54px;padding:0 .95rem}
.contribution-form textarea{min-height:170px;padding:.9rem .95rem;line-height:1.75;resize:vertical}
.contribution-form input:focus,.contribution-form select:focus,.contribution-form textarea:focus{outline:0;border-color:var(--con-sea);background:#fff;box-shadow:0 0 0 4px var(--con-focus)}
.question-count{justify-self:end;color:var(--con-muted);font-size:.7rem}
.choice-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}
.choice-group label{position:relative;display:grid;grid-template-columns:auto 1fr;align-items:start;gap:.72rem;padding:1rem;border:1px solid #c8d0cd;border-radius:12px;background:rgba(255,255,255,.62);cursor:pointer;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease}
.choice-group label:has(input:checked){border-color:var(--con-sea);background:#f5faf8;box-shadow:0 0 0 2px rgba(61,115,120,.08)}
.choice-group input{width:17px;height:17px;margin:.15rem 0 0;accent-color:var(--con-sea)}
.choice-group strong{display:block;font-size:.84rem}.choice-group small{display:block;margin-top:.2rem;color:var(--con-muted);font-size:.73rem;line-height:1.55}
.upload-zone{position:relative;min-height:128px;display:grid;place-items:center;padding:1.5rem;border:1px dashed #9fadaa;border-radius:14px;background:rgba(255,255,255,.52);transition:border-color .18s ease,background .18s ease,box-shadow .18s ease}
.upload-zone:hover,.upload-zone.is-dragging{border-color:var(--con-sea);background:#fff;box-shadow:0 0 0 4px rgba(61,115,120,.07)}
.upload-zone input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.upload-zone label{display:grid;justify-items:center;gap:.28rem;text-align:center;cursor:pointer}
.upload-zone label strong{font-size:.91rem}.upload-zone label span{color:var(--con-muted);font-size:.75rem;line-height:1.55}
.upload-security{margin:.65rem 0 0;color:var(--con-muted);font-size:.72rem;line-height:1.6}
.file-list{display:grid;margin-top:.55rem}.file-chip{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;padding:.75rem .1rem;border-bottom:1px solid var(--con-line)}.file-chip strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem}.file-chip span{color:var(--con-muted);font-size:.7rem}

.step-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:3.2rem;padding-top:1.6rem;border-top:1px solid var(--con-line)}
.step-actions-note{margin:0;color:var(--con-muted);font-size:.74rem;line-height:1.6}
.step-actions-buttons{display:flex;gap:.65rem;margin-left:auto}
.flow-button{min-height:48px;padding:0 1.2rem;border:1px solid var(--con-ink);border-radius:10px;background:var(--con-ink);color:#fff;font-weight:820;cursor:pointer;transition:background .18s ease,transform .18s ease,box-shadow .18s ease}
.flow-button:hover{background:#23485d;box-shadow:0 7px 20px rgba(23,51,72,.12)}.flow-button:active{transform:translateY(1px)}.flow-button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}
.flow-button.is-secondary{border-color:#c5ceca;background:transparent;color:var(--con-ink);box-shadow:none}.flow-button.is-secondary:hover{background:#fff}
.review-summary{display:grid;gap:0;margin:0 0 2.7rem;border-top:1px solid var(--con-line)}
.review-summary-row{display:grid;grid-template-columns:150px minmax(0,1fr);gap:1.5rem;padding:1rem 0;border-bottom:1px solid var(--con-line)}
.review-summary-row span{color:var(--con-muted);font-size:.76rem}.review-summary-row strong{font-size:.84rem;font-weight:760;overflow-wrap:anywhere}
.legal-block{padding-top:.25rem}
.legal-block h3{margin:0 0 .65rem;font-size:1rem}.legal-block>p{max-width:760px;margin:0 0 1.2rem;color:var(--con-muted);font-size:.82rem;line-height:1.75}
.legal-links{display:flex;flex-wrap:wrap;gap:.5rem 1rem;margin-bottom:1.35rem}.legal-links a{font-size:.77rem;font-weight:760;text-underline-offset:3px}
.consent-line{display:grid;grid-template-columns:auto 1fr;gap:.7rem;align-items:start;padding:.72rem 0;color:var(--con-ink);font-size:.8rem;line-height:1.65}.consent-line input{width:18px;height:18px;margin:.1rem 0 0;accent-color:var(--con-sea)}
.submission-state{margin:0 0 2rem;padding:1rem 1.1rem;border-left:3px solid var(--con-sea);background:#edf5f3;color:var(--con-ink);font-size:.84rem;line-height:1.65}.submission-state.is-error{border-color:#a05345;background:#f8eeeb}.submission-state strong{display:block;margin-bottom:.18rem}
.trap-field{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}

@media(max-width:760px){
  .contribute-shell{width:calc(100% - 28px)}.contribute-head{padding-top:2.8rem}.contribute-head-inner{grid-template-columns:1fr;gap:1.6rem}.contribute-segment{width:100%}.contribute-segment a{min-width:0}
  .flow-progress{padding-top:1.35rem}.flow-progress-head{margin-bottom:1.1rem}.flow-progress button span{font-size:.68rem}.flow-progress ol::before{left:14px;right:14px;top:14px}.flow-progress button i{width:28px;height:28px}
  .step-heading{margin-bottom:2.2rem}.question-list{gap:1.65rem}.choice-group{grid-template-columns:1fr}.review-summary-row{grid-template-columns:1fr;gap:.25rem}.step-actions{align-items:stretch;flex-direction:column}.step-actions-buttons{width:100%;margin-left:0}.flow-button{flex:1}.step-actions-note{order:2}
}
@media(max-width:430px){.flow-progress button span{max-width:68px;white-space:normal;line-height:1.35}.step-actions-buttons{display:grid;grid-template-columns:1fr 1fr}.step-actions-buttons .flow-button:only-child{grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){.form-step,.form-loading span{animation:none!important}.contribute-segment a,.flow-progress button i,.flow-button,.upload-zone,.choice-group label,.contribution-form input,.contribution-form select,.contribution-form textarea{transition:none!important}}

/* v2.8.2 — single-path participation layout */
.contribute-shell{width:min(960px,calc(100% - 40px))}
.flow-shell{padding-top:clamp(1.4rem,3vw,2.2rem)}
.flow-progress{padding:2.15rem 0 2.75rem;border-top:0}
.flow-progress-head{margin-bottom:1.75rem}
.form-step{padding-top:.45rem}
.step-heading{margin-bottom:3.15rem}
.step-heading h2{line-height:1.3}
.step-heading p{margin-top:.9rem;line-height:1.9}
.question-list{gap:2.35rem}
.step-actions{margin-top:3.8rem;padding-top:2rem}
@media(max-width:760px){.contribute-shell{width:calc(100% - 28px)}.flow-shell{padding-top:.65rem}.flow-progress{padding-top:1.7rem}.step-heading{margin-bottom:2.3rem}.question-list{gap:1.8rem}.step-actions{margin-top:2.8rem}}
