/* =========================================================================
   Pleazz — Register business wizard (2026 design)

   Linked by application/views/2026/includes/headPublic.php as
   assets/home/2026/css/login/registerBusinessWizard.css with a ?s= . filesize()
   buster, after shell/public.css and auth/auth.css (the shared auth skin, which
   the head links for this view via its $sharedStylesheets map). Nothing is
   @imported.

   Rollback for this screen = point Login::registerbusiness() back at loadView().

   SCOPE
   <main> carries BOTH classes:
       .login-2026            the shared auth skin from auth/auth.css
       .registerbusiness-2026 the screen-only rules below
   Nothing here may match without .registerbusiness-2026 on the page — except
   section 7, which cannot: select2 appends its dropdown to <body>, outside <main>.
   That section is scoped by the container / dropdown classes registerBusiness.js
   stamps, which are unique to this screen.

   ---------------------------------------------------------------------------
   WHAT THE 2026 SHELL TAKES AWAY
   headPublic.php does not load customCss.php, so all four sheets this screen had
   under the 2024 shell are gone:
       materialdesignicons.min.css   only ever used by commented-out markup
       campton-font.css              .campton-* classes are inert now; Inter is used
       bd-wizard.css                 supplied .wizard/.steps/.actions layout
       login/registerBusinessWizard.css
                                     supplied the country pill, and leaked unscoped
                                     rules (input{padding:…!important}, section{…},
                                     .select2-dropdown{border:0!important}) into
                                     every element on the page
   So the wizard chrome and the phone/country controls are rebuilt here from
   scratch. Nothing below uses !important except where it must beat an inline
   style written by JavaScript — each of those is commented.

   WHAT jQUERY STEPS BUILDS AT RUNTIME
   .wizard.clearfix.vertical > .steps.d-none + .content + .actions
   The step list and the Previous/Next/Submit buttons exist in NO view file, so
   they are styled where they land. .vertical is on the container whatever the
   visual orientation is — it comes from generateWizard()'s default
   stepsOrientation and is not a layout instruction here.

   THEME NOTE
   updatePublicTheme() only adds/removes .public-light-mode client-side, so after
   a toggle without a reload <body> can carry both theme classes or neither. Dark
   is the base; light is keyed off .public-light-mode, never .public-dark-mode.
   ========================================================================= */


/* -------------------------------------------------------------------------
   1. Tokens + page frame

   auth.css sizes its card at 448px. The review step carries twelve fields, so
   this screen runs a wider card and a two-column field grid.
   ---------------------------------------------------------------------- */

.registerbusiness-2026 {
    --rb26-gap: 18px;

    /* read by section 7 so the select2 controls match these field metrics */
    --reg-field-h: 44px;
    --reg-field-r: 999px;   /* pill, same as the login fields (.l26-input) */
    --reg-field-fs: 15px;
}

/* Two equal halves: intro left, card right. The card fills its half rather
   than running a fixed width, so the split stays 50/50 at every desktop size. */
.registerbusiness-2026 .rb26-grid {
    /* centred in the page like the login and password screens: the card keeps
       the same space above and below it. auth.css supplies align-items:center
       and the min-height; this screen used to cancel both and pin the card to
       the top, which left the leftover height as one gap under the card (208px
       at a 1200px-tall window). A wizard step taller than the screen still
       grows the page and scrolls, as before. */
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* The left column is the only thing that scrolls with the page on desktop, so
   pin it while the wizard is tall. */
.registerbusiness-2026 .rb26-intro {
    position: sticky;
    top: 32px;
}

.registerbusiness-2026 .l26-title {
    max-width: 12ch;
}

.registerbusiness-2026 .l26-lead {
    max-width: 400px;
}

.registerbusiness-2026 .rb26-signin {
    margin: 30px 0 0;
    color: var(--l26-text);
    font-size: 13.5px;
}

/* The same line is repeated at the foot of the card for the mobile layout,
   where the intro column is hidden. */
.registerbusiness-2026 .rb26-signin-card {
    display: none;
    margin: 22px 0 0;
    padding-top: 20px;
    border-top: 1px solid var(--l26-rule);
    text-align: center;
}

/* registerBusiness.js ADDS AND REMOVES bootstrap col-* classes on
   #newVendorWizardParent every time step 0 is entered or left
   (col-xs-12 col-sm-12 col-md-8 col-lg-6 col-xl-6, or col-md-12). Those would
   resize the card mid-flow, so the width is pinned here. (0,2,0) beats
   bootstrap's (0,1,0) .col-lg-6 regardless of source order. */
.registerbusiness-2026 .rb26-panel {
    flex: 0 0 auto;
    width: 100%;
    max-width: none;
    padding: 0;
}

.registerbusiness-2026 .rb26-card {
    max-width: none;
    padding: 30px 32px 32px;
}


/* -------------------------------------------------------------------------
   2. Progress bar

   progressbar.js injects an SVG into #newVendorProgressBar. Both stroke colours
   are SVG ATTRIBUTES (trail #eee, bar #4bbf73), which a CSS `stroke` overrides
   cleanly. The "N %" readout is an INLINE style — and it is misleading, because
   generateWizard() animates priorIndex/numberOfSteps, so it reads 0% on step 1
   and 80% on the review step and only completes after a successful submit. The
   stepper below says where you are, so the readout is hidden rather than
   corrected (correcting it would mean changing generateWizard()).
   ---------------------------------------------------------------------- */

/* Hidden: the line it drew across the top of the card read as a stray border,
   and the stepper below already says where you are. progressbar.js still
   renders into it, so nothing in generateWizard() notices. */
.registerbusiness-2026 .rb26-progress {
    display: none;
}

/* Inline style: position/right/top/color are all set on the element by
   generateProgressbar(), so this needs !important to win. */
.registerbusiness-2026 .rb26-progress .progressbar-text {
    display: none !important;
}


/* -------------------------------------------------------------------------
   3. The stepper

   generateWizard() adds .d-none to .steps whenever a progress bar is in use, and
   bootstrap's .d-none is display:none!important — so un-hiding it needs
   !important too. The <li> contain only <span class="number">N</span>; the label
   next to it is appended by 2026/js/login/registerWizard.js, which reads
   data-step-label off each <section>. If that script never runs the stepper still
   works, just with numbers.
   ---------------------------------------------------------------------- */

.registerbusiness-2026 .wizard .steps.d-none {
    display: block !important;
}

.registerbusiness-2026 .wizard .steps > ul {
    display: flex;
    gap: 6px;
    margin: 0 0 24px;
    padding: 0;
    list-style: none;
}

.registerbusiness-2026 .wizard .steps > ul > li {
    flex: 1 1 0;
    min-width: 0;
}

/* jQuery Steps keeps every step clickable; the plugin itself refuses a forward
   jump that fails validation, so the cursor is left as a pointer only on steps
   already visited. */
.registerbusiness-2026 .wizard .steps > ul > li > a {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 0;
    color: var(--l26-muted);
    font-size: 10.5px;
    font-weight: 600;
    line-height: 1.25;
    text-align: center;
    text-decoration: none;
    cursor: default;
}

.registerbusiness-2026 .wizard .steps > ul > li > a .number {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border: 1px solid var(--l26-chip-line);
    border-radius: 50%;
    background: var(--l26-chip);
    color: var(--l26-muted);
    font-size: 11.5px;
    font-weight: 700;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease;
}

.registerbusiness-2026 .wizard .steps > ul > li > a .rb26-step-label {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
}

.registerbusiness-2026 .wizard .steps > ul > li.done > a,
.registerbusiness-2026 .wizard .steps > ul > li.current > a {
    color: var(--l26-title);
}

.registerbusiness-2026 .wizard .steps > ul > li.done > a .number {
    border-color: var(--l26-primary-line);
    background: var(--l26-primary-soft);
    color: var(--l26-primary);
}

.registerbusiness-2026 .wizard .steps > ul > li.current > a .number {
    border-color: transparent;
    background: linear-gradient(90deg, var(--l26-primary-2) 0%, var(--l26-primary-deep) 100%);
    color: #FFFFFF;
}

/* The connector between the dots. Not drawn after the last step. */
.registerbusiness-2026 .wizard .steps > ul > li {
    position: relative;
}

.registerbusiness-2026 .wizard .steps > ul > li:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 13px;
    left: calc(50% + 18px);
    width: calc(100% - 36px);
    height: 1px;
    background: var(--l26-rule);
}

.registerbusiness-2026 .wizard .steps > ul > li.done::after {
    background: var(--l26-primary-line);
}

/* jQuery Steps emits screen-reader-only text and relies on the host stylesheet to
   hide it — bd-wizard.css had a .wizard .audible rule, and the 2026 shell does not
   load that file. Without this, "current step:" prints inside the active step.
   Hidden the accessible way, not with display:none. */
.registerbusiness-2026 .wizard .audible {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

/* The plugin moves focus to the step anchor on EVERY step change, and Chrome then
   matches :focus-visible on it -- so a ring would permanently box whichever step
   is current. The current step is already unmistakable from its filled number, so
   the ring is kept only for steps the user tabs to themselves. */
.registerbusiness-2026 .wizard .steps > ul > li > a:focus {
    outline: none;
}

.registerbusiness-2026 .wizard .steps > ul > li:not(.current) > a:focus-visible {
    outline: 2px solid var(--l26-primary);
    outline-offset: 3px;
    border-radius: 6px;
}

/* jQuery Steps renders a screen-reader-only heading per step; auth.css has no
   rule for it and it would otherwise print as a stray line. */
.registerbusiness-2026 .wizard .content > .title {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}


/* -------------------------------------------------------------------------
   4. Step body
   ---------------------------------------------------------------------- */

.registerbusiness-2026 .wizard .content {
    overflow: visible;
}

.registerbusiness-2026 .rb26-step {
    margin: 0 0 22px;
}

.registerbusiness-2026 .rb26-step-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    margin: 0 0 16px;
    border: 1px solid var(--l26-primary-line);
    border-radius: 16px;
    background: var(--l26-primary-soft);
    color: var(--l26-primary);
    font-size: 19px;
}

.registerbusiness-2026 .rb26-step-title {
    margin: 0;
    color: var(--l26-title);
    font-size: 20px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: -.01em;
}

/* The copy comes from config/wizardMessages.php and contains <br>, so line
   breaks are the author's. */
.registerbusiness-2026 .rb26-step-lead {
    margin: 8px 0 0;
    color: var(--l26-text);
    font-size: 13.5px;
    line-height: 1.6;
}

.registerbusiness-2026 .rb26-perks {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin: 22px 0 0;
    padding: 0;
    list-style: none;
}

.registerbusiness-2026 .rb26-perk {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 9px 14px;
    border: 1px solid var(--l26-chip-line);
    border-radius: 999px;
    background: var(--l26-chip);
    color: var(--l26-chip-text);
    font-size: 12.5px;
    font-weight: 500;
}

.registerbusiness-2026 .rb26-perk i {
    color: var(--l26-primary);
    font-size: 13px;
}


/* -------------------------------------------------------------------------
   5. Fields

   Two columns on the card's natural width; .rb26-field-wide spans both. Inputs
   keep .form-control so any bootstrap wiring survives; these selectors are
   (0,2,0) and beat it regardless of source order.
   ---------------------------------------------------------------------- */

.registerbusiness-2026 .rb26-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--rb26-gap);
}

.registerbusiness-2026 .rb26-field {
    display: flex;
    flex-direction: column;
    min-width: 0;
    margin: 0;
}

.registerbusiness-2026 .rb26-field-wide {
    grid-column: 1 / -1;
}

.registerbusiness-2026 .rb26-label {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0 0 8px;
    color: var(--l26-label, var(--l26-title));
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: .075em;
    line-height: 1.2;
    text-transform: uppercase;
}

.registerbusiness-2026 .rb26-req {
    color: var(--l26-primary);
    font-size: 12px;
}

/* Right-aligned to the field's edge, centred on the label line (it used to sit
   on the baseline, which dropped the small lowercase word below the caps). */
.registerbusiness-2026 .rb26-opt {
    margin-left: auto;
    color: var(--l26-muted);
    font-size: 10.5px;
    font-weight: 500;
    letter-spacing: .02em;
    line-height: 1;
    text-transform: none;
}

.registerbusiness-2026 .rb26-input {
    display: block;
    width: 100%;
    height: var(--reg-field-h);
    padding: 0 18px;
    border: 1px solid var(--l26-input-line);
    border-radius: var(--reg-field-r);
    background: var(--l26-input);
    color: var(--l26-input-text);
    font-size: var(--reg-field-fs);
    line-height: 42px;
    outline: none;
    box-shadow: none;
    transition: border-color .18s ease, box-shadow .18s ease;
}

.registerbusiness-2026 .rb26-input::placeholder {
    color: var(--l26-placeholder);
    opacity: 1;
}

.registerbusiness-2026 .rb26-input:focus {
    border-color: var(--l26-input-line);
    background: var(--l26-input);
    color: var(--l26-input-text);
    box-shadow: 0 0 0 3px rgba(243, 114, 32, .2);
}

/* alertifyErrMessage() marks a failed field by writing
   style="border:1px solid #f00" straight onto the element, and clears it with
   'initial'. Both are inline, so nothing here can or should fight them — this
   only softens the corner the browser would otherwise square off. */
.registerbusiness-2026 .rb26-error {
    margin: 7px 0 0;
    color: #FCA5A5;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.45;
}

.registerbusiness-2026 .rb26-error:empty {
    display: none;
}

body.public-light-mode .registerbusiness-2026 .rb26-error {
    color: #B91C1C;
}


/* -------------------------------------------------------------------------
   6. Phone + country pill

   select2PhoneNumberWidth() measures .mobilePhoneNumberGroup(Final) and injects a
   <style> element sizing the open dropdown to it, so the wrapper must keep its
   real width. Inside the closed control only the flag and the dial code show; the
   country name shows in the dropdown list. That split is done with .countryName /
   .countryArrow, which are baked into each <option>'s htmlentities-encoded markup
   and re-rendered by select2's escapeMarkup: m => m.
   ---------------------------------------------------------------------- */

.registerbusiness-2026 .rb26-phone {
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    width: 100%;
    height: var(--reg-field-h);
    border: 1px solid var(--l26-input-line);
    border-radius: var(--reg-field-r);
    background: var(--l26-input);
    overflow: hidden;
}

/* same focus mark as the login fields: ring only, the edge holds still */
.registerbusiness-2026 .rb26-phone:focus-within {
    border-color: var(--l26-input-line);
    box-shadow: 0 0 0 3px rgba(243, 114, 32, .2);
}

.registerbusiness-2026 .rb26-phone-code {
    display: flex;
    align-items: center;
    flex: 0 0 auto;
    width: 116px;
    padding: 0 0 0 16px;
    border: 0;
    border-right: 1px solid var(--l26-input-line);
    border-radius: 0;
    background: transparent;
}

.registerbusiness-2026 .rb26-phone-input {
    flex: 1 1 auto;
    width: auto;
    min-width: 0;
    height: 100%;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.registerbusiness-2026 .rb26-phone-input:focus {
    border: 0;
    box-shadow: none;
}

/* The two error paragraphs are children of the input-group in the 2024 markup —
   kept there, so they are pulled out of the flex row. */
.registerbusiness-2026 .rb26-phone > .rb26-error {
    display: none;
}


/* -------------------------------------------------------------------------
   7. select2

   Two rules of engagement here:
     - on the PUBLIC shell select2 initialises with its own theme, so the live
       class is .select2-container--default. (The 2026 VENDOR shell sets theme
       bootstrap4 in app.js, where these selectors would be dead -- a different
       page set.)
     - the dropdown is appended to <body>, outside <main>, so
       .registerbusiness-2026 cannot reach it. The container classes
       registerBusiness.js stamps (.countryContainer / .countryFinalContainer /
       .countryCodeContainer / .countryCodeFinalContainer) and the dropdownCssClass
       values it passes are the scope. Those names are unique to this screen, so
       these rules cannot leak to another page.

   The closed controls read --reg-field-h / --reg-field-r / --reg-field-fs from the
   page class above, so a select2 pill always matches the plain inputs beside it.

   NOTES THAT COST A ROUND TRIP IF FORGOTTEN
   - Every <option>'s text is htmlentities-encoded HTML that select2 re-renders as
     markup because it is initialised with escapeMarkup: m => m. That markup carries
     bootstrap's .text-white on the country name and the dial code -- written when
     these controls sat on a dark field. On a white field the dial code rendered
     white-on-white and disappeared. .text-white is color:#fff!important, so only
     !important takes it back.
   - .countryName / .countryArrow are baked into that same option markup and are
     what let the CLOSED pill show just flag + caret + dial code while the DROPDOWN
     shows the country name.
   - select2SearchInputField() stamps .search-with-icon on the search row about a
     tick after open, and sets the placeholder from tiqsTranslations['Search'].
   ---------------------------------------------------------------------- */


/* -------------------------------------------------------------------------
   The two full-width country selects
   ---------------------------------------------------------------------- */

.countryContainer.select2-container--default .select2-selection--single,
.countryFinalContainer.select2-container--default .select2-selection--single {
    display: flex;
    align-items: center;
    height: var(--reg-field-h, 44px);
    padding: 0 18px;
    border: 1px solid var(--l26-input-line, #E7E5E4);
    border-radius: var(--reg-field-r, 10px);
    background: var(--l26-input, #FFFFFF);
    outline: none;
}

.countryContainer.select2-container--default .select2-selection--single .select2-selection__rendered,
.countryFinalContainer.select2-container--default .select2-selection--single .select2-selection__rendered {
    display: flex;
    align-items: center;
    padding: 0;
    color: var(--l26-input-text, #1C1917);
    font-size: var(--reg-field-fs, 14.5px);
    line-height: 1.2;
}

.countryContainer.select2-container--default .select2-selection--single .select2-selection__arrow,
.countryFinalContainer.select2-container--default .select2-selection--single .select2-selection__arrow {
    top: 0;
    right: 14px;
    height: 100%;
}

.countryContainer.select2-container--open .select2-selection--single,
.countryFinalContainer.select2-container--open .select2-selection--single {
    border-color: var(--l26-input-line, #E7E5E4);
    box-shadow: 0 0 0 3px rgba(243, 114, 32, .2);
}

/* select2 squares the edge that touches the open dropdown (0,4,0); on a pill
   that reads as a broken shape, so the pill stays whole and the panel floats
   a few px clear of it instead. */
.countryContainer.select2-container--default.select2-container--open .select2-selection--single,
.countryFinalContainer.select2-container--default.select2-container--open .select2-selection--single {
    border-radius: var(--reg-field-r, 999px);
}

/* the two country selects pass no dropdownCssClass, so the panel is found by
   its country rows (.countryName is baked into every option's markup) */
.select2-dropdown--below:has(.countryName) { margin-top: 6px; }
.select2-dropdown--above:has(.countryName) { margin-top: -6px; }


/* -------------------------------------------------------------------------
   The dial-code select inside the phone pill
   ---------------------------------------------------------------------- */

.countryCodeContainer.select2-container--default .select2-selection--single,
.countryCodeFinalContainer.select2-container--default .select2-selection--single {
    display: flex;
    align-items: center;
    height: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    outline: none;
}

.countryCodeContainer.select2-container--default .select2-selection__rendered,
.countryCodeFinalContainer.select2-container--default .select2-selection__rendered {
    display: flex;
    align-items: center;
    gap: 2px;
    padding: 0 !important;   /* select2 writes padding-right inline on this node */
    color: var(--l26-input-text, #1C1917);
    font-size: var(--reg-field-fs, 14.5px);
    line-height: 1.2;
}

/* select2's own caret is replaced by the .countryArrow baked into the option
   markup, so it sits next to the flag instead of at the far right. */
.countryCodeContainer.select2-container--default .select2-selection__arrow,
.countryCodeFinalContainer.select2-container--default .select2-selection__arrow {
    display: none;
}

.countryCodeContainer .select2-selection--single img,
.countryCodeFinalContainer .select2-selection--single img {
    border-radius: 2px;
}


/* -------------------------------------------------------------------------
   Reclaiming .text-white from the option markup
   ---------------------------------------------------------------------- */

.countryCodeContainer .select2-selection--single .text-white,
.countryCodeFinalContainer .select2-selection--single .text-white,
.countryContainer .select2-selection--single .text-white,
.countryFinalContainer .select2-selection--single .text-white {
    color: var(--l26-input-text, #1C1917) !important;
}

.select2-results__option .text-white {
    color: #1C1917 !important;
}

body:not(.public-light-mode) .select2-results__option .text-white {
    color: #E7E5E4 !important;
}


/* -------------------------------------------------------------------------
   Closed control vs dropdown
   ---------------------------------------------------------------------- */

.select2-selection--single .countryName {
    display: none;
}

.select2-selection--single .countryArrow {
    display: inline-block !important;   /* the <option> markup ships style="display:none" */
    color: #A8A29E;
    font-size: 11px;
}

.select2-results__option .countryArrow {
    display: none !important;
}


/* -------------------------------------------------------------------------
   The dropdown panel
   ---------------------------------------------------------------------- */

.select2-container--open .select2-dropdown {
    border: 1px solid rgba(0, 0, 0, .08);
    border-radius: 12px;
    background: #FFFFFF;
    box-shadow: 0 18px 44px rgba(0, 0, 0, .18);
    overflow: hidden;
}

.select2-container--open .select2-results__option {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 9px 12px;
    font-size: 14px;
}

.select2-container--default .select2-results__option--highlighted[aria-selected] {
    background: rgba(243, 114, 32, .12);
    color: #1C1917;
}

.select2-container--default .select2-results__option[aria-selected="true"] {
    background: rgba(243, 114, 32, .18);
    color: #1C1917;
}

.select2-search--dropdown {
    padding: 10px;
}

.select2-search--dropdown .select2-search__field {
    height: 38px;
    padding: 0 12px;
    border: 1px solid #E7E5E4;
    border-radius: 8px;
    outline: none;
    font-size: 14px;
}

.select2-search--dropdown .select2-search__field:focus {
    border-color: #F37220;
}

.search-with-icon {
    position: relative;
}

.search-with-icon::before {
    content: "\f002";
    position: absolute;
    top: 50%;
    left: 22px;
    transform: translateY(-50%);
    color: #A8A29E;
    font-family: "Font Awesome 6 Free";
    font-size: 13px;
    font-weight: 900;
    pointer-events: none;
}

/* Icon starts 12px into the field and is 13px wide; 38px leaves a 13px gap
   before the placeholder. public.css resets the padding at (0,3,0), so this
   needs the extra class to win. */
.select2-container--open .select2-search--dropdown.search-with-icon .select2-search__field {
    padding-left: 38px;
}

/* Dark theme for the body-level dropdown. It sits outside <main>, so the theme
   class on <body> is the only handle. */
body:not(.public-light-mode) .select2-container--open .select2-dropdown {
    border-color: rgba(255, 255, 255, .10);
    background: #241E1A;
    box-shadow: 0 22px 54px rgba(0, 0, 0, .55);
}

body:not(.public-light-mode) .select2-container--open .select2-results__option {
    color: #E7E5E4;
}

body:not(.public-light-mode) .select2-container--default .select2-results__option--highlighted[aria-selected],
body:not(.public-light-mode) .select2-container--default .select2-results__option[aria-selected="true"] {
    background: rgba(243, 114, 32, .22);
    color: #FFFFFF;
}

body:not(.public-light-mode) .select2-search--dropdown .select2-search__field {
    border-color: rgba(255, 255, 255, .12);
    background: #16110F;
    color: #FFFFFF;
}


/* -------------------------------------------------------------------------
   8. Review step
   ---------------------------------------------------------------------- */

/* populateFinalForm() sets display:initial INLINE on this container, which
   computes to `inline`. !important is the only way to keep it a block. */
.registerbusiness-2026 #registerAccountWizardFormContainer {
    display: block !important;
}

.registerbusiness-2026 .rb26-review-group {
    margin: 0 0 22px;
    padding: 0;
    border: 0;
}

.registerbusiness-2026 .rb26-review-group:last-child {
    margin-bottom: 0;
}

.registerbusiness-2026 .rb26-legend {
    float: none;   /* bootstrap reboot makes <legend> full-width and floated */
    width: auto;
    margin: 0 0 14px;
    padding: 0 0 10px;
    border-bottom: 1px solid var(--l26-rule);
    color: var(--l26-title);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .09em;
    line-height: 1.2;
    text-transform: uppercase;
}


/* -------------------------------------------------------------------------
   9. Actions — Previous / Next / Submit

   Generated by jQuery Steps as .actions > ul > li > a[href="#previous|#next|
   #finish"]. The plugin marks the unavailable one with li.disabled (Previous on
   step 1) or aria-hidden="true" (Next on the last step, Submit everywhere else);
   both are hidden here so the row never shows a dead control. Labels come from
   tiqsTranslations.
   ---------------------------------------------------------------------- */

.registerbusiness-2026 .wizard .actions {
    margin: 26px 0 0;
    padding-top: 22px;
    border-top: 1px solid var(--l26-rule);
}

.registerbusiness-2026 .wizard .actions > ul {
    display: flex;
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.registerbusiness-2026 .wizard .actions > ul > li {
    flex: 0 0 auto;
}

/* #next and #finish are the primary; whichever is live sits on the right and
   takes the remaining width. */
.registerbusiness-2026 .wizard .actions > ul > li:has(a[href="#next"]),
.registerbusiness-2026 .wizard .actions > ul > li:has(a[href="#finish"]) {
    flex: 1 1 auto;
    margin-left: auto;
}

.registerbusiness-2026 .wizard .actions > ul > li.disabled,
.registerbusiness-2026 .wizard .actions > ul > li[aria-hidden="true"] {
    display: none;
}

.registerbusiness-2026 .wizard .actions li a {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    width: 100%;
    height: 48px;
    padding: 0 26px;
    border: 0;
    border-radius: 999px; /* pill, same as the login submit (.l26-submit) */
    font-size: 14.5px;
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
    transition: filter .18s ease, background-color .18s ease, transform .12s ease;
}

.registerbusiness-2026 .wizard .actions li a:active {
    transform: translateY(1px);
}

.registerbusiness-2026 .wizard .actions li a[href="#next"],
.registerbusiness-2026 .wizard .actions li a[href="#finish"] {
    background: linear-gradient(90deg, var(--l26-primary-2) 0%, var(--l26-primary-deep) 100%);
    color: #FFFFFF;
}

.registerbusiness-2026 .wizard .actions li a[href="#next"]:hover,
.registerbusiness-2026 .wizard .actions li a[href="#finish"]:hover {
    filter: brightness(1.06);
    color: #FFFFFF;
}

.registerbusiness-2026 .wizard .actions li a[href="#previous"] {
    min-width: 120px;
    border: 1px solid var(--l26-chip-line);
    background: var(--l26-chip);
    color: var(--l26-title);
}

.registerbusiness-2026 .wizard .actions li a[href="#previous"]:hover {
    border-color: var(--l26-primary-line);
    color: var(--l26-title);
}

.registerbusiness-2026 .wizard .actions li a:focus-visible {
    outline: 2px solid var(--l26-primary);
    outline-offset: 3px;
}


/* -------------------------------------------------------------------------
   10. Response messages
   auth.css styles #responseMessages already; this screen's container starts
   genuinely empty (no placeholder .alert), so only spacing is set.
   ---------------------------------------------------------------------- */

.registerbusiness-2026 #responseMessages:not(:empty) {
    margin: 0 0 18px;
}


/* =========================================================================
   Responsive

   Same rule as the login and password-reset screens: the moment the two columns
   stop sitting side by side, the intro column goes and the card stands alone —
   otherwise a phone shows a screen of copy before the first field. The
   "Already have an account?" line moves into the card so it is not lost with it.
   ========================================================================= */

@media (max-width: 1199.98px) {
    /* The card is half the page here (455px at 1024), too narrow for
       "Start registration" on one line -- wrap instead of cutting it off. */
    .registerbusiness-2026 .wizard .steps > ul > li > a .rb26-step-label {
        white-space: normal;
        overflow-wrap: anywhere;
    }
}

@media (max-width: 991.98px) {
    .registerbusiness-2026 .rb26-intro {
        display: none;
    }

    /* no padding-top: the 8px it used to add landed on top of the equal pair
       auth.css sets on .l26 below 992px, so the signup card sat 8px lower than
       it should and the gap above it came out 32 against 24 below. */
    .registerbusiness-2026 .rb26-grid {
        grid-template-columns: minmax(0, 1fr);
        justify-items: center;
        padding-top: 0;
    }

    .registerbusiness-2026 .l26-panel {
        justify-content: center;
    }

    .registerbusiness-2026 .rb26-panel {
        max-width: 588px;
    }

    .registerbusiness-2026 .rb26-signin-card {
        display: block;
    }
}

@media (max-width: 575.98px) {
    .registerbusiness-2026 .rb26-card {
        padding: 22px 18px 24px;
    }

    /* One column, and the stepper drops its labels — five names do not fit on a
       phone. The numbers and the connector stay. */
    .registerbusiness-2026 .rb26-fields {
        grid-template-columns: minmax(0, 1fr);
    }

    .registerbusiness-2026 .wizard .steps > ul > li > a .rb26-step-label {
        display: none;
    }

    .registerbusiness-2026 .rb26-step-icon {
        width: 46px;
        height: 46px;
        font-size: 17px;
    }

    .registerbusiness-2026 .rb26-step-title {
        font-size: 18px;
    }

    .registerbusiness-2026 .wizard .actions li a[href="#previous"] {
        min-width: 0;
        padding: 0 18px;
    }

    .registerbusiness-2026 .rb26-phone-code {
        width: 100px;
    }
}

/* -------------------------------------------------------------------------
   Registration closed
   Ante switched new-vendor signup off in commit e26b1f417 ("no registration
   message"): the three wizard scripts are commented out of customJs.php and
   the 2024 view now carries an explanatory message instead of the steps. This
   is that message in the 2026 skin -- same two strings, same tLine keys, so
   the stored translations apply to both screens.

   The wizard markup in the view is commented out, not deleted, so uncommenting
   it and the three script lines brings the five steps back and these rules
   simply stop matching. Deliberately borrows the recovery screen's icon/title
   proportions (.fp26-icon is 54px, 16px radius) so the two "there is nothing
   to fill in here" cards read as one family. The sentence itself is the page
   heading, exactly as in Ante's 2024 view -- printing it again inside the card
   only said the same thing twice.
   ---------------------------------------------------------------------- */

.registerbusiness-2026 .rb26-closed {
    padding: 8px 0 4px;
    text-align: center;
}

.registerbusiness-2026 .rb26-closed-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 54px;
    height: 54px;
    margin: 0 0 16px;
    border: 1px solid var(--l26-primary-line);
    border-radius: 16px;
    background: var(--l26-primary-soft);
    color: var(--l26-primary);
    font-size: 20px;
}

.registerbusiness-2026 .rb26-closed p {
    margin: 0 0 10px;
    color: var(--l26-text);
    font-size: 14px;
    line-height: 1.6;
}

.registerbusiness-2026 .rb26-closed p:last-child {
    margin-bottom: 0;
}

@media (max-width: 575.98px) {
    .registerbusiness-2026 .rb26-closed-icon {
        width: 48px;
        height: 48px;
        font-size: 18px;
    }
}
