.register-section { width: min(1040px, calc(100% - 2rem)); }
.register-card { padding: clamp(1rem, 3vw, 2.5rem); border-radius: 24px; box-shadow: 0 20px 60px #15345512; }
.register-title { text-transform: none; letter-spacing: -.025em; }
.register-subtitle { line-height: 1.65; margin: .65rem auto 1.5rem; }
.wizard-progress-wrap { padding: 1.1rem; border-radius: 18px; background: #f2f8fe; margin-bottom: 1.5rem; }
.wizard-progress { overflow: visible; padding: .35rem 0 .75rem; }
.progress-item { flex: 1 1 0; min-width: 0; }
.progress-item:last-child { flex: 0 0 auto; }
.progress-circle { flex-shrink: 0; }
.progress-line { flex: 1; width: auto; min-width: 0; }
.wizard-step { padding: clamp(1rem, 3vw, 1.75rem); border-radius: 18px; }
.step-title { padding-bottom: 1rem; border-bottom: 1px solid #e6eef7; }
.register-card .grid-2, .register-card .grid-3, .register-card .grid-4 { gap: 1.1rem; align-items: start; }
.field-block { min-width: 0; gap: .5rem; }
.field-block label { color: #294768; font-weight: 700; }
.field-input, .field-select, .field-textarea, .day-hour { min-width: 0; max-width: 100%; min-height: 48px; border-radius: 12px; padding: .8rem .9rem; background: #fff; font-size: 1rem; box-shadow: 0 2px 4px #15345504; transition: border-color .18s, box-shadow .18s; }
.field-input:hover, .field-select:hover, .field-textarea:hover { border-color: #9bbbd8; }
.field-input:focus, .field-select:focus, .field-textarea:focus, .day-hour:focus { border-color: #0e5ea8; box-shadow: 0 0 0 4px #0e5ea818; }
.field-input:disabled, .field-input[readonly] { background: #f0f4f8; color: #5d7084; }
.field-input::placeholder, .field-textarea::placeholder { color: #77889a; }
.field-help { color: #62768d; line-height: 1.55; overflow-wrap: anywhere; }
.field-textarea { min-height: 150px; line-height: 1.65; }
.profile-upload { padding: 1rem; border: 1px dashed #adcbe7; border-radius: 16px; background: #f6faff; grid-template-columns: minmax(0, 1fr) 112px; margin-bottom: 1.25rem; }
.photo-preview { width: 104px; height: 104px; border-radius: 16px; background: white; }
.field-input[type=file] { padding: .5rem; font-size: .85rem; }
.field-input::file-selector-button { border: 0; border-radius: 8px; padding: .65rem .8rem; margin-right: .65rem; background: #e5f0fc; color: #08437f; font: inherit; font-weight: 700; cursor: pointer; }
.password-inline { grid-template-columns: minmax(0, 1fr) 48px; }
.password-toggle { width: 48px; height: 48px; border-radius: 12px; }
.password-rules { margin: .25rem 0 0; padding: .75rem .9rem .75rem 1.8rem; border-radius: 12px; background: #f6f9fc; font-size: .78rem; }
.password-rules li { color: #63778e; }
.policy-row { padding: 1rem 0; line-height: 1.6; align-items: flex-start; }
.policy-row input, .show-whats-row input, .day-row input[type=checkbox] { flex-shrink: 0; width: 20px; height: 20px; accent-color: #0e5ea8; }
.tipo-button { min-height: 50px; font: inherit; font-weight: 700; border-radius: 12px; }
.tipo-button.active { color: #08437f; background: #e3f1ff; border: 2px solid #0e5ea8; }
.tipo-button:disabled { opacity: .45; cursor: not-allowed; box-shadow: none; background: #f2f4f6; border-color: #d7e0e8; }
.wizard-actions { padding-top: .5rem; gap: .75rem; }
.wizard-actions button { min-height: 48px; border-radius: 12px; padding: .85rem 1.25rem; }
.wizard-actions .btn-primary { background: #0e5ea8; box-shadow: 0 6px 16px #0e5ea824; }
.wizard-actions .btn-primary:hover { background: #08437f; }
.register-card button:focus-visible, .register-card a:focus-visible { outline: 3px solid #0e5ea8; outline-offset: 3px; }
.day-row { padding: .85rem; border-radius: 12px; gap: 1rem; }
.day-hour { min-width: 0; }
@media (max-width: 680px) {
  .auth-main { padding: 1rem 0 2rem; }
  .register-section { width: calc(100% - 1rem); }
  .register-card { padding: .75rem; border-radius: 20px; }
  .wizard-progress-wrap { padding: .85rem .5rem; }
  .progress-circle { width: 26px; height: 26px; font-size: .75rem; }
  .progress-line { margin: 0 .15rem; }
  .wizard-step { padding: .85rem; }
  .profile-upload { grid-template-columns: minmax(0, 1fr); }
  .wizard-actions button { padding: .8rem; font-size: .88rem; }
}
@media (prefers-reduced-motion: reduce) {
  .wizard-step.active { animation: none; }
  .register-card * { transition: none; }
}
