.rf { --rf-accent: #16655f; max-width: 860px; margin: 1.2em auto 2em; padding: 1.4em; background: #fff; border-radius: 1.2em; box-shadow: 0 .3em 1.2em #2529420d; }
.rf h1 { margin: 0 0 .4em; font-size: 1.7em; line-height: 1.3; }
.rf h2 { margin: 0 0 .5em; font-size: 1.2em; color: var(--rf-accent); }
.rf section { margin-top: 1.6em; padding-top: 1.2em; border-top: 1px solid var(--sm-line); }
.rf-lead, .rf-hint, .rf-help { color: var(--sm-muted); }
.rf-help { display: block; font-size: .88em; margin-top: .2em; }
.rf-phase { margin: .8em 0 0; padding: .6em .9em; border-radius: .7em; background: #eff8f2; color: var(--rf-accent); font-weight: 700; }
.rf-block { border: 1px solid var(--sm-line); border-radius: .9em; padding: .6em .9em .9em; margin: 0 0 1em; }
.rf-block legend, .rf-choice legend { font-weight: 700; padding: 0 .3em; }
.rf-course { display: flex; gap: .7em; align-items: flex-start; padding: .65em .3em; border-bottom: 1px dashed var(--sm-line); cursor: pointer; }
.rf-course:last-child { border-bottom: 0; }
.rf-course input { margin-top: .35em; width: 1.2em; height: 1.2em; accent-color: var(--rf-accent); flex: 0 0 auto; }
.rf-course strong { display: block; }
.rf-course small { display: block; color: var(--sm-muted); }
.rf-course a { font-size: .88em; color: var(--rf-accent); }
.rf-course:has(input:checked) { background: #f1f8f4; border-radius: .6em; }
.rf-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1em 1.2em; }
.rf-grid > label, .rf-grid > div, .rf-grid > fieldset { min-width: 0; }
.rf-grid > label > span:first-child { display: block; font-weight: 700; margin-bottom: .25em; }
.rf-wide { grid-column: 1 / -1; }
.rf-choice { border: 0; padding: 0; margin: 0; }
.rf input:not([type=checkbox]):not([type=radio]), .rf select, .rf textarea {
  width: 100%; min-height: 46px; padding: .5em .7em; border: 1px solid #b9c2bd; border-radius: .6em; font: inherit; font-size: 16px; background: #fff; color: inherit;
}
.rf textarea { min-height: 6em; resize: vertical; }
.rf input:focus-visible, .rf select:focus-visible, .rf textarea:focus-visible, .rf button:focus-visible { outline: 3px solid var(--sm-orange); outline-offset: 2px; }
.rf [aria-invalid="true"] { border-color: #b3261e !important; }
.rf-check { display: flex; gap: .5em; align-items: flex-start; min-height: 44px; padding: .5em 0; cursor: pointer; }
.rf-check input { width: 1.2em; height: 1.2em; margin-top: .25em; accent-color: var(--rf-accent); flex: 0 0 auto; }
.rf-check a { color: var(--rf-accent); }
.rf-note { padding: .7em .9em; background: #f6f7f4; border-radius: .6em; }
.rf-note strong { display: block; }
.rf-error { display: block; color: #b3261e; font-size: .9em; min-height: 0; }
.rf-error:empty { display: none; }
.rf-form-error { font-weight: 700; margin: .5em 0; white-space: pre-line; }
.rf-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.rf-submit { display: block; width: 100%; min-height: 52px; margin-top: .8em; border: 0; border-radius: 2em; background: var(--sm-orange); color: #fff; font: inherit; font-size: 1.1em; font-weight: 700; cursor: pointer; }
.rf-submit:hover { background: #85320f; }
.rf-submit:disabled { background: #9aa39f; cursor: not-allowed; }
.rf-done { text-align: center; padding: 2em 0; }
.rf-loading { color: var(--sm-muted); }
@media (max-width: 640px) {
  .rf { padding: 1em; border-radius: .9em; }
  .rf h1 { font-size: 1.35em; }
  .rf-grid { grid-template-columns: 1fr; }
}
