.registration-intro { padding: 24px 0 26px; }
.breadcrumb { display: inline-flex; gap: 7px; align-items: center; color: var(--muted); font-size: 12px; margin-bottom: 22px; text-decoration: none; }
.breadcrumb .icon { width: 14px; height: 14px; }
.registration-intro h1 { color: var(--green-950); font-size: 37px; font-weight: 600; letter-spacing: -1.4px; margin-bottom: 11px; }
.registration-intro p { font-size: 14px; color: var(--muted); }
.demo-notice { display: flex; gap: 11px; align-items: center; padding: 13px 18px; border: 1px solid #e9ddc5; background: #faf5e9; border-radius: 9px; margin-bottom: 26px; font-size: 12px; color: #796039; }
.demo-notice .icon { width: 18px; }
.registration-layout { display: grid; grid-template-columns: 245px 1fr; gap: 40px; align-items: start; }
.form-sidebar { position: sticky; top: 24px; }
.step-list { list-style: none; margin: 0; padding: 0; }
.step-list li { display: flex; gap: 13px; padding-bottom: 26px; position: relative; align-items: center; color: var(--muted); }
.step-list li:not(:last-child)::after { content: ''; width: 1px; height: 26px; background: var(--line); position: absolute; left: 17px; bottom: 0; }
.step-index { width: 35px; height: 35px; display: grid; place-items: center; border: 1px solid var(--line); background: var(--paper); border-radius: 50%; font-size: 12px; flex-shrink: 0; }
.step-list li[aria-current="step"] { color: var(--green-950); }
.step-list li[aria-current="step"] .step-index { background: var(--green-950); border-color: var(--green-950); color: white; }
.step-list li.completed .step-index { background: var(--green-100); border-color: #cbd8c6; color: var(--green-800); }
.step-label strong { display: block; font-size: 13px; font-weight: 600; }
.step-label small { display: block; font-size: 10px; margin-top: 1px; }
.sidebar-help { padding: 20px; background: var(--green-50); border-radius: 12px; margin-top: 8px; }
.sidebar-help > .icon { color: var(--green-700); width: 25px; height: 25px; }
.sidebar-help h2 { font-size: 13px; margin: 9px 0; }
.sidebar-help p { font-size: 11px; color: var(--muted); }
.sidebar-help a { font-size: 11px; display: inline-block; margin-top: 13px; color: var(--green-800); }
.form-card { padding: 34px; background: white; border: 1px solid var(--line); border-radius: 17px; box-shadow: var(--shadow); min-width: 0; }
.step-meta { display: flex; justify-content: space-between; align-items: center; font-size: 10px; color: var(--muted); text-transform: uppercase; letter-spacing: 1.3px; margin-bottom: 25px; }
.progress-track { height: 4px; width: 115px; background: var(--green-100); border-radius: 4px; overflow: hidden; }
.progress-track span { display: block; height: 100%; background: var(--green-700); transition: width .2s; }
.form-panel h2 { font-size: 27px; letter-spacing: -.7px; font-weight: 600; margin-bottom: 10px; color: var(--green-950); }
.panel-description { font-size: 13px; color: var(--muted); margin-bottom: 28px; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 22px 20px; }
.span-2 { grid-column: 1 / -1; }
.field { display: flex; flex-direction: column; min-width: 0; }
.field > label, .field-label { display: block; font-size: 12px; font-weight: 650; margin-bottom: 7px; }
.required { color: var(--orange-700); }
.field input, .field select, .field textarea { width: 100%; min-height: 47px; border: 1px solid #dbe1d8; border-radius: 8px; background: #fff; color: var(--ink); padding: 11px 13px; font-size: 14px; }
.field input::placeholder, .field textarea::placeholder { color: #8a938c; font-size: 12px; }
.field input:focus, .field select:focus, .field textarea:focus { outline: 2px solid #52735a; outline-offset: 1px; }
.field input[aria-invalid="true"] { border-color: var(--danger); }
.field input[readonly] { background: var(--green-50); color: var(--muted); }
.field small, .field-help { font-size: 11px; color: var(--muted); margin-top: 6px; }
.field textarea { resize: vertical; min-height: 95px; }
.cpf-field { max-width: 390px; }
.cpf-field input { font-size: 21px; letter-spacing: 1.5px; min-height: 56px; }
.cpf-explainer { display: flex; gap: 13px; padding: 18px; background: var(--green-50); border-radius: 10px; margin-top: 28px; }
.cpf-explainer > .icon { width: 21px; color: var(--green-700); }
.cpf-explainer strong { display: block; font-size: 12px; margin-bottom: 4px; }
.cpf-explainer p { font-size: 12px; color: var(--muted); }
.demo-tools { margin-top: 20px; font-size: 11px; color: var(--muted); }
.demo-tools summary { cursor: pointer; text-decoration: underline; text-underline-offset: 4px; }
.demo-tools p { margin-block: 10px; }
.demo-tools button { border: 1px solid var(--line); background: white; color: var(--green-800); padding: 9px 12px; border-radius: 7px; margin: 4px 5px 0 0; font-size: 11px; min-height: 40px; }
.inline-message { margin-top: 16px; padding: 13px 15px; border-radius: 8px; font-size: 12px; background: #faeee9; color: var(--danger); }
.inline-message.success { background: var(--green-50); color: var(--green-800); }
.form-actions { display: flex; justify-content: space-between; align-items: center; gap: 18px; padding-top: 25px; margin-top: 30px; border-top: 1px solid var(--line); }
.form-actions .btn { min-width: 135px; }
.form-actions .action-note { font-size: 10px; color: var(--muted); max-width: 225px; }
.form-section { border: 0; padding: 0; margin: 0 0 26px; min-width: 0; }
.form-section legend { font-size: 14px; font-weight: 650; margin-bottom: 13px; padding: 0; }
.form-section > .field-help { margin-top: -5px; margin-bottom: 13px; }
.field-error { color: var(--danger); font-size: 12px; margin-top: 10px; }
#category-group[aria-invalid="true"] .choice-card { border-color: var(--danger); }
.condition-block { padding: 8px 20px 20px; border: 1px solid var(--line); border-radius: 12px; }
.condition-block legend { padding-inline: 7px; margin-left: -7px; margin-bottom: 0; }
.condition-caption { font-size: 11px; color: var(--muted); margin-bottom: 16px; }
.condition-pcd { background: #f7faf5; border-color: #dce5d7; }
.condition-bed { background: #fcf9f3; border-color: #e9e1d3; }
.condition-block .check-option { background: var(--white); }
.condition-block .check-option:has(input:checked) { background: var(--green-50); }
.category-options { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }
.choice-card { position: relative; padding: 17px 12px; border: 1px solid var(--line); border-radius: 10px; cursor: pointer; display: flex; flex-direction: column; gap: 10px; }
.choice-card > .icon { width: 23px; color: var(--green-700); }
.choice-card > span { font-size: 12px; font-weight: 600; }
.choice-card input { position: absolute; top: 15px; right: 12px; accent-color: var(--green-700); width: 17px; height: 17px; }
.choice-card:has(input:checked) { background: var(--green-50); border-color: var(--green-700); }
.choice-card:has(input:focus-visible) { outline: 2px solid var(--orange-500); outline-offset: 3px; }
.checkbox-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 11px; }
.check-option { display: flex; align-items: center; gap: 10px; border: 1px solid var(--line); border-radius: 8px; padding: 12px; cursor: pointer; font-size: 12px; }
.check-option:has(input:checked) { background: var(--green-50); border-color: #7c9c7d; }
.check-option input, .declaration input { width: 17px; height: 17px; flex-shrink: 0; accent-color: var(--green-700); margin: 0; }
.subsection-title { font-size: 14px; font-weight: 650; margin: 29px 0 16px; }
.repeat-item { padding: 17px; border: 1px solid var(--line); border-radius: 10px; margin-bottom: 12px; }
.repeat-heading { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 13px; }
.repeat-heading strong { font-size: 12px; }
.remove-item { background: none; border: 0; color: var(--orange-700); font-size: 11px; min-height: 32px; }
.add-button { padding: 8px 13px; min-height: 41px; font-size: 12px; }
.optional-note { color: var(--muted); font-size: 11px; padding: 14px; border: 1px dashed var(--line); border-radius: 8px; }
.review-section { border: 1px solid var(--line); border-radius: 10px; padding: 19px; margin-bottom: 14px; }
.review-heading { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; gap: 12px; }
.review-heading h3 { font-size: 14px; font-weight: 650; }
.review-heading button { display: flex; gap: 6px; align-items: center; background: none; border: 0; color: var(--green-700); font-size: 11px; min-height: 32px; }
.review-heading .icon { width: 14px; height: 14px; }
.review-data { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 15px; margin: 0; }
.review-data dt { font-size: 10px; color: var(--muted); margin-bottom: 3px; }
.review-data dd { margin: 0; font-size: 12px; overflow-wrap: anywhere; }
.declarations { background: var(--green-50); padding: 20px; border-radius: 10px; margin-top: 25px; }
.declarations h3 { font-size: 14px; margin-bottom: 8px; }
.declarations > p { font-size: 11px; color: var(--muted); margin-bottom: 18px; }
.declaration { display: flex; gap: 11px; align-items: flex-start; font-size: 12px; cursor: pointer; padding: 10px 0; }
.declaration input { margin-top: 3px; }
.form-footnote { display: flex; gap: 7px; align-items: center; justify-content: center; font-size: 10px; color: var(--muted); padding: 19px 0; }
.form-footnote .icon { width: 13px; }
.finished-icon { width: 60px; height: 60px; border-radius: 50%; display: grid; place-items: center; background: var(--green-100); color: var(--green-700); margin-bottom: 20px; }
.finished-icon .icon { width: 30px; height: 30px; }
@media (max-width: 950px) { .registration-layout { grid-template-columns: 200px 1fr; gap: 25px; } .form-card { padding: 26px; } }
@media (max-width: 760px) {
  .registration-intro { padding-top: 12px; }
  .registration-intro h1 { font-size: 30px; }
  .registration-layout { grid-template-columns: 1fr; gap: 19px; }
  .form-sidebar { position: static; }
  .step-list { display: flex; justify-content: space-between; }
  .step-list li { display: block; padding: 0; text-align: center; flex: 1; min-width: 0; }
  .step-index { margin-inline: auto; width: 29px; height: 29px; font-size: 10px; }
  .step-list li:not(:last-child)::after { width: calc(100% - 35px); height: 1px; left: calc(50% + 18px); top: 14px; }
  .step-label strong { font-size: 9px; margin-top: 7px; font-weight: 500; }
  .step-label small, .sidebar-help { display: none; }
  .form-card { padding: 23px 19px; }
  .condition-block { padding-inline: 14px; }
  .form-panel h2 { font-size: 24px; }
  .form-grid { gap: 18px; }
  .field input, .field select, .field textarea { font-size: 16px; }
  .category-options { gap: 7px; }
  .choice-card { padding: 15px 10px; }
  .choice-card > span { font-size: 11px; }
  .form-actions { gap: 10px; }
  .form-actions .btn { min-width: auto; padding-inline: 17px; font-size: 12px; }
  .form-actions .action-note { font-size: 9px; max-width: 135px; }
  .demo-notice { align-items: flex-start; font-size: 11px; }
}
@media (max-width: 480px) {
  .form-actions { flex-wrap: wrap; }
  .form-actions .btn { flex: 1; }
  .form-grid { grid-template-columns: 1fr; }
  .checkbox-grid { grid-template-columns: 1fr; }
  .form-actions .action-note { display: none; }
  .form-actions:has(.action-note:not([hidden])) { justify-content: flex-end; }
  .review-data { grid-template-columns: 1fr; }
}
