/* GFT toolkit resources. Scoped, progressively enhanced and free to use without email. */
.gft-toolkit { color: #102A36; margin-block: 1.5rem 2.5rem; }
.gft-toolkit [hidden], .gft-signup-preview [hidden] { display: none !important; }
.gft-toolkit-intro { background: #0B202A; color: #FFFFFF; border-radius: 16px; padding: clamp(1.25rem, 4vw, 2.25rem); margin-bottom: 1.75rem; }
.gft-toolkit-intro .eyebrow { color: #B4F5CF; }
.gft-toolkit-intro h2 { color: #FFFFFF; margin: .65rem 0 1rem; font-size: clamp(1.65rem, 3.5vw, 2.25rem); line-height: 1.2; }
.gft-toolkit-intro p { max-width: 62ch; }
.gft-toolkit-intro .gft-toolkit-access { color: #B4F5CF; font-size: 1rem; font-weight: 600; }
.gft-toolkit-actions { display: flex; flex-wrap: wrap; gap: .65rem; margin: 1.25rem 0 .25rem; align-items: stretch; }
.gft-toolkit-actions .button { max-width: 100%; min-height: 44px; white-space: normal; overflow-wrap: anywhere; }
.gft-toolkit-intro .button.dark { background: #B4F5CF; color: #102A36; border: 1px solid #B4F5CF; }
.gft-toolkit-intro .button.plain { background: transparent; border: 1px solid #A5B6BB; color: #FFFFFF; }
.gft-toolkit-intro a, .gft-toolkit-intro button { text-decoration: none; }
.gft-toolkit a:focus-visible, .gft-toolkit button:focus-visible, .gft-toolkit-offer a:focus-visible, .gft-toolkit-compact a:focus-visible { outline: 3px solid #216647; outline-offset: 4px; }
.gft-toolkit-intro a:focus-visible, .gft-toolkit-intro button:focus-visible { outline-color: #B4F5CF; }
.gft-toolkit-contents { border: 1px solid #DCE2DD; border-radius: 12px; padding: 1rem 1.25rem; margin: 1.5rem 0; background: #FFFFFF; }
.gft-toolkit-contents ol { margin: 0; padding-left: 0; list-style: none; }
.gft-toolkit-contents a { display: inline-block; padding-block: .65rem; min-height: 44px; color: #216647; text-underline-offset: .18em; }
.gft-worksheet { min-width: 0; margin-block: 1.5rem; padding: clamp(1rem, 3vw, 1.65rem); border: 1px solid #DCE2DD; border-radius: 12px; background: #FFFFFF; }
.gft-worksheet h3 { margin: 0 0 .75rem; font-size: 1.3rem; line-height: 1.35; scroll-margin-top: 7rem; }
.gft-worksheet-text { padding: 1rem; border-left: 3px solid #216647; background: #F5F5F0; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: .9rem; line-height: 1.75; white-space: pre-wrap; overflow-wrap: anywhere; tab-size: 4; }
.gft-worksheet .button { min-height: 44px; margin-top: .9rem; color: #216647; border: 1px solid #DCE2DD; }
.gft-toolkit-feedback { min-height: 1.4em; margin: .55rem 0 0; font-size: .95rem; line-height: 1.5; }
.gft-toolkit-feedback:empty { min-height: 0; margin: 0; }
.gft-toolkit-scope, .gft-toolkit-small { font-size: .95rem; line-height: 1.65; color: #394D54; }
.gft-toolkit-guides a, .gft-toolkit-next a { display: inline-block; padding-block: .5rem; color: #216647; text-decoration: underline; text-underline-offset: .18em; }
.gft-toolkit-email-closed { padding: 1.25rem; border-radius: 10px; background: #ECEFE9; margin-top: 1.5rem; }
.gft-toolkit-email-closed h3 { margin: 0 0 .4rem; font-size: 1.1rem; }
.gft-toolkit-email-closed p { margin: 0; font-size: 1rem; line-height: 1.65; }
.gft-toolkit-offer { margin: 2.25rem 0; padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid #DCE2DD; border-radius: 14px; background: #ECEFE9; }
.gft-toolkit-offer h2 { max-width: 30ch; margin: .5rem 0 .9rem; font-size: clamp(1.4rem, 2.5vw, 1.8rem); line-height: 1.3; }
.gft-toolkit-offer p { max-width: 65ch; line-height: 1.7; }
.gft-toolkit-offer .button { min-height: 44px; margin-top: .35rem; }
.gft-toolkit-offer .gft-toolkit-small { margin: .6rem 0 0; }
.gft-toolkit-compact { border-top: 1px solid #DCE2DD; padding-block: 1rem; font-size: 1rem; line-height: 1.7; }
.gft-toolkit-compact a { color: #216647; text-decoration: underline; text-underline-offset: .18em; }
/* Administrator-only email-state previews. These are never a public submission form. */
.gft-signup-preview { box-sizing: border-box; max-width: 44rem; padding: clamp(1rem, 3vw, 2rem); margin: 1.5rem 0; background: #FFFFFF; color: #102A36; border: 1px solid #DCE2DD; border-radius: 14px; font: 1rem/1.65 system-ui, sans-serif; }
.gft-signup-preview * { box-sizing: border-box; }
.gft-signup-preview h2 { margin: .8rem 0; font-size: 1.65rem; line-height: 1.25; }
.gft-preview-banner { background: #ECEFE9; border-left: 4px solid #216647; padding: .85rem 1rem; margin: 0 0 1rem; font-size: .95rem; }
.gft-signup-preview fieldset { min-width: 0; padding: 0; border: 0; }
.gft-signup-preview legend { font-weight: 700; margin-bottom: .9rem; }
.gft-signup-preview label:not(.gft-signup-choice) { display: block; font-weight: 600; margin: .75rem 0 .35rem; }
.gft-signup-preview label span { font-weight: 400; }
.gft-signup-preview input[type=email], .gft-signup-preview input[type=text] { display: block; width: 100%; min-height: 46px; padding: .65rem .75rem; border: 1px solid #7D8B90; border-radius: 6px; background: #F5F5F0; color: #102A36; font-size: 1rem; }
.gft-signup-preview input[aria-invalid=true] { border: 2px solid #9F2525; }
.gft-signup-choice { display: grid; grid-template-columns: 1.25rem minmax(0, 1fr); align-items: start; gap: .7rem; margin: 1rem 0; }
.gft-signup-choice input { width: 1.1rem; height: 1.1rem; margin: .25rem 0 0; }
.gft-signup-preview .button { display: inline-flex; align-items: center; padding: .7rem 1rem; min-height: 44px; height: auto; white-space: normal; background: #102A36; color: #FFFFFF; border: 0; border-radius: 6px; }
.gft-signup-preview button:disabled { opacity: .65; cursor: not-allowed; }
.gft-toolkit-admin > form { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; }
.gft-toolkit-admin select { max-width: 100%; }
@media (max-width: 480px) { .gft-toolkit-actions { flex-direction: column; } .gft-worksheet-text { padding: .75rem; } }
@media print {
  .gft-toolkit-intro { background: none; color: #000000; border: 1px solid #999999; }
  .gft-toolkit-intro h2, .gft-toolkit-intro .eyebrow, .gft-toolkit-intro .gft-toolkit-access { color: #000000; }
  .gft-toolkit-actions, .gft-worksheet button, .gft-toolkit-feedback, .gft-toolkit-email-closed, .gft-toolkit-contents { display: none !important; }
  .gft-worksheet { border: 0; padding: 0; }
  .gft-worksheet h3 { break-after: avoid; }
  .gft-worksheet-text { color: #000000; background: none; border: 0; padding: 0; font-size: 10pt; }
  .gft-toolkit a { color: #000000; }
}
