/* Public firm registration */
.signup-page { background: #f6f5f1; padding: 3.5rem 1.25rem 4rem; color: #1f2937; }
.signup-container { max-width: 1120px; margin: 0 auto; }
.signup-heading { max-width: 680px; margin-bottom: 2rem; }
.signup-back { color: #555e61; font-size: .875rem; text-decoration: none; }
.signup-back:hover { color: #111827; text-decoration: underline; }
.signup-eyebrow { margin: 2rem 0 .65rem; font-size: .72rem; font-weight: 700; letter-spacing: .16em; color: #74603d; }
.signup-heading h1 { font-size: clamp(2rem, 4vw, 2.75rem); font-weight: 600; letter-spacing: -.04em; }
.signup-heading > p:last-child { color: #5b636a; font-size: 1rem; line-height: 1.7; margin-top: .8rem; }
.signup-grid { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 2rem; align-items: start; }
.signup-main { min-width: 0; }
.signup-required { color: #626a72; font-size: .8rem; margin-bottom: .85rem; }
.signup-section { min-width: 0; background: white; border: 1px solid #e1e3de; border-radius: 16px; padding: 1.75rem; margin-bottom: 1.25rem; }
.signup-section legend { float: none; width: auto; margin-bottom: .75rem; font-size: 1.2rem; font-weight: 600; display: flex; align-items: center; gap: .75rem; }
.signup-number { color: #75613e; background: #f8f1e2; border-radius: 9px; font-size: .75rem; padding: .5rem; }
.signup-section-description { color: #687078; font-size: .875rem; margin-bottom: 1.5rem; }
.signup-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.signup-full { grid-column: 1 / -1; }
.signup-field { min-width: 0; }
.signup-field .form-label { font-size: .85rem; font-weight: 600; }
.signup-optional { font-weight: 400; color: #6b737a; font-size: .8rem; }
.signup-field .form-control, .signup-field .form-select { min-height: 46px; border-radius: 8px; border-color: #d4d9da; font-size: .9rem; }
.signup-field .form-control:focus, .signup-field .form-select:focus { border-color: #9f804a; box-shadow: 0 0 0 .2rem #bd9a5d26; }
.signup-field .form-text { font-size: .76rem; line-height: 1.5; }
.signup-workspace { flex-wrap: nowrap; }
.signup-workspace .form-control { min-width: 0; }
.signup-workspace .input-group-text { border-color: #d4d9da; font-size: .85rem; background: #f6f7f7; border-radius: 0 8px 8px 0; }
.signup-sidebar { position: sticky; top: 1.5rem; padding-top: 2rem; }
.signup-plan-picker { min-width: 0; background: #fff; padding: 1.5rem; border: 1px solid #e1e3de; border-radius: 16px; }
.signup-plan-picker legend { float: none; width: auto; font-weight: 600; font-size: 1.2rem; }
.signup-plan-picker > p { color: #687078; font-size: .85rem; }
.signup-plan { cursor: pointer; display: flex; gap: .75rem; align-items: start; border: 1px solid #dce0df; padding: 1rem; border-radius: 12px; margin-top: .75rem; }
.signup-plan:has(input:checked) { border-color: #a5854d; background: #fcf8ef; box-shadow: 0 0 0 1px #a5854d; }
.signup-plan:focus-within { outline: 2px solid #a5854d; outline-offset: 3px; }
.signup-plan input { margin-top: .3rem; flex-shrink: 0; accent-color: #796032; }
.signup-plan-details { display: grid; gap: .4rem; min-width: 0; }
.signup-plan-name { font-size: .95rem; font-weight: 600; }
.signup-plan-price { font-size: 1.1rem; font-weight: 600; }
.signup-plan-price small { font-size: .75rem; font-weight: 400; color: #687078; }
.signup-plan-limit, .signup-plan-features { font-size: .75rem; color: #626b72; line-height: 1.5; overflow-wrap: anywhere; }
.signup-plan-trial { font-size: .75rem; color: #736039; }
.signup-next { margin: 1.75rem .5rem 0; }
.signup-next h2 { font-size: .95rem; font-weight: 600; margin-bottom: 1rem; }
.signup-next ol { padding-left: 1.25rem; margin: 0; }
.signup-next li { padding-left: .4rem; margin-bottom: 1rem; font-size: .8rem; color: #6a7176; }
.signup-next strong { display: block; color: #323c42; margin-bottom: .25rem; }
.signup-submit { background: #eceee7; border-radius: 14px; padding: 1.5rem; }
.signup-submit h2 { font-size: 1rem; font-weight: 600; }
.signup-submit p { color: #5f6868; font-size: .85rem; line-height: 1.6; }
.signup-submit-button { background: #1d2c29; color: #fff; width: 100%; padding: .85rem 1rem; display: flex; justify-content: space-between; align-items: center; border-radius: 9px; }
.signup-submit-button:hover, .signup-submit-button:focus-visible { background: #304740; color: #fff; }
.signup-errors { border-radius: 12px; }
.signup-errors li { font-size: .85rem; margin-top: .3rem; }
@media (max-width: 850px) {
    .signup-grid { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
    .signup-sidebar { position: static; padding-top: 0; grid-row: 1; }
    .signup-next { display: none; }
    .signup-plan-picker { padding: 1.25rem; }
}
@media (max-width: 480px) {
    .signup-fields { grid-template-columns: minmax(0, 1fr); }
    .signup-section { padding: 1.25rem; }
    .signup-section legend { font-size: 1.05rem; }
    .signup-workspace .input-group-text { font-size: .75rem; padding-inline: .5rem; }
}

.signup-page .signup-section legend, .signup-page .signup-plan-picker legend { float: left; width: 100%; }
.signup-section-description, .signup-plan-picker > p { clear: both; }
.signup-page .signup-field input { width: 100%; background: #fff; border: 1px solid #d4d9da; padding: .375rem .75rem; }
.signup-page .signup-field input.is-invalid { border-color: #dc3545; }
.signup-page .signup-plan input { width: auto; height: auto; appearance: auto; }
.signup-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.signup-password { position: relative; }
.signup-page .signup-password input { padding-right: 4rem; }
.signup-password-toggle { position: absolute; right: .6rem; top: 50%; transform: translateY(-50%); color: #52645e; font-size: .8rem; background: #fff; padding: .25rem; }
.signup-review { background: white; border: 1px solid #e1e3de; border-radius: 16px; padding: 1.75rem; margin-bottom: 1.25rem; scroll-margin-top: 2rem; }
.signup-review h2 { font-size: 1.5rem; margin-bottom: .75rem; }
.signup-review > p { font-size: .9rem; color: #5b636a; margin-bottom: 1rem; }
.signup-review dl > div { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 1rem; border-bottom: 1px solid #eef0ed; padding: .65rem 0; font-size: .85rem; }
.signup-review dt { font-weight: 500; color: #626a72; }
.signup-review dd { margin: 0; overflow-wrap: anywhere; }
.is-reviewing .signup-section, .is-reviewing .signup-required, .is-reviewing .signup-sidebar { display: none; }
.signup-grid.is-reviewing { grid-template-columns: minmax(0, 1fr); max-width: 800px; margin: 0 auto; }
@media(max-width: 480px) { .signup-review { padding: 1.25rem; } .signup-review dl > div { grid-template-columns: 1fr; gap: .25rem; } }
