/* Administrator account setup form.

   The wizard's wide canvas suits the steps that show template grids; this step
   asks for four fields, and stretched across that canvas it read as three
   unrelated white slabs with a form adrift in the middle. Everything below
   narrows the step to a single column and takes the panel chrome off anything
   that is not the form itself. No palette values change here. */
/* The card keeps the wizard's full width so its edges line up with the brand
   bar above, and earns that width by splitting in two: what this step is on the
   left, what it asks for on the right, a hairline between them. A four-field
   form has no business being stretched across 1180px, and a narrow column
   floating in the middle of an empty panel looked misplaced. */
.setup-account-shell {
    width: 100%;
}

/* Top aligned with the first label rather than centred in the column: it makes
   the two halves read as one composition instead of two floating blocks. */
.setup-account-intro {
    align-self: start;
    padding-top: 4px;
    padding-right: 60px;
}

.setup-account-intro h1 {
    margin: 0 0 12px;
    font-size: clamp(28px, 2.5vw, 38px);
    line-height: 1.1;
    letter-spacing: -.035em;
}

.setup-account-intro p {
    margin: 0;
    max-width: 34ch;
    font-size: 15px;
    line-height: 1.55;
}

.setup-account-points {
    display: grid;
    gap: 15px;
    margin: 30px 0 0;
    padding: 0;
    list-style: none;
}

.setup-account-points li {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start;
    gap: 12px;
    color: var(--setup-ink, #061a35);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.45;
}

.setup-account-point-icon {
    display: grid;
    place-items: center;
    width: 22px;
    height: 22px;
    margin-top: 1px;
    border-radius: 50%;
    color: var(--setup-accent-strong, #0ea5aa);
    background: var(--color-primary-soft, #e6fbfc);
}

.setup-account-point-icon svg {
    width: 13px;
    height: 13px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.setup-account-fields {
    width: 100%;
    padding-left: 60px;
    border-left: 1px solid var(--setup-line, #dbe7ee);
}

/* The title stands on the page rather than in a panel of its own, so the card
   below it is the only object competing for attention. */
.setup-account-shell .setup-header {
    margin: 26px 0 22px;
    padding: 0;
    border: 0;
    background: none;
    box-shadow: none;
    backdrop-filter: none;
    text-align: center;
}

.setup-account-shell .setup-header h1 {
    margin-bottom: 10px;
    font-size: clamp(27px, 3.2vw, 33px);
    line-height: 1.14;
}

.setup-account-shell .setup-header p {
    font-size: 15px;
    line-height: 1.5;
}

.setup-account-card {
    --setup-account-field: #ffffff;
    --setup-account-field-focus: #ffffff;
    --setup-account-border: #cbdbe5;
    --setup-account-text: var(--setup-ink, #061a35);
    --setup-account-placeholder: #8191a5;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 580px);
    align-content: start;
    justify-items: stretch;
    padding: 52px 56px;
    text-align: left;
    color-scheme: light;
}

.setup-account-card .form-row,
.setup-account-card .setup-form-alert,
.setup-account-card .setup-actions,
.setup-account-card .setup-turnstile,
.setup-account-card .setup-separator {
    width: 100%;
}

.setup-account-card .setup-turnstile {
    margin-top: 20px;
    text-align: left;
}

.setup-account-card .form-row {
    justify-items: stretch;
    margin-bottom: 0;
    text-align: left;
}

/* General sibling and not adjacent: the honeypot is a div between two of these
   rows, and with `+` it silently killed the spacing above the Email label. */
.setup-account-card .form-row ~ .form-row {
    margin-top: 22px;
}

.setup-account-card .form-row label {
    color: var(--setup-ink, #061a35);
    font-size: 12px;
    font-weight: 700;
}

.setup-account-card input,
.setup-account-card input:hover,
.setup-account-card input:active {
    min-height: 54px;
    padding: 0 16px;
    border: 1px solid var(--setup-account-border);
    color: var(--setup-account-text);
    caret-color: var(--setup-accent-strong, #0ea5aa);
    background: var(--setup-account-field);
    box-shadow: 0 1px 2px rgba(6, 26, 53, 0.04);
    -webkit-text-fill-color: var(--setup-account-text);
}

.setup-account-card input::placeholder {
    color: var(--setup-account-placeholder);
    opacity: 1;
    -webkit-text-fill-color: var(--setup-account-placeholder);
}

.setup-account-card input:focus,
.setup-account-card input:focus-visible {
    border-color: var(--setup-accent-strong, #0ea5aa);
    outline: none;
    color: var(--setup-account-text);
    background: var(--setup-account-field-focus);
    box-shadow: 0 0 0 4px rgba(18, 201, 206, 0.16), 0 8px 24px rgba(6, 26, 53, 0.08);
    -webkit-text-fill-color: var(--setup-account-text);
}

.setup-account-card input:-webkit-autofill,
.setup-account-card input:-webkit-autofill:hover,
.setup-account-card input:-webkit-autofill:focus,
.setup-account-card input:autofill {
    border-color: var(--setup-account-border);
    color: var(--setup-account-text);
    caret-color: var(--setup-accent-strong, #0ea5aa);
    background: var(--setup-account-field);
    box-shadow: 0 0 0 1000px var(--setup-account-field) inset, 0 1px 2px rgba(6, 26, 53, 0.04);
    -webkit-text-fill-color: var(--setup-account-text);
}

.setup-password-control {
    position: relative;
    width: 100%;
}

.setup-account-card .setup-password-control input {
    padding-right: 92px;
}

.setup-password-toggle {
    position: absolute;
    top: 50%;
    right: 42px;
    display: grid;
    width: 36px;
    height: 36px;
    padding: 0;
    border: 1px solid #d8e4eb;
    border-radius: 10px;
    color: #60738a;
    background: #f4f8fa;
    cursor: pointer;
    place-items: center;
    transform: translateY(-50%);
}

.setup-password-toggle:hover,
.setup-password-toggle:focus-visible {
    border-color: var(--setup-accent-strong, #0ea5aa);
    outline: none;
    color: var(--setup-accent-strong, #0ea5aa);
    background: #eafafb;
    box-shadow: 0 0 0 3px rgba(18, 201, 206, 0.14);
}

.setup-password-toggle svg {
    display: none;
    width: 19px;
    height: 19px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.setup-password-toggle svg.is-visible {
    display: block;
}

.setup-password-requirement {
    color: var(--setup-muted, #64748b);
    font-size: 12px;
    line-height: 1.45;
}

.setup-account-card .setup-field-feedback {
    min-height: 18px;
    padding-left: 2px;
    text-align: left;
}

/* Keeps its reserved min-height while empty. Collapsing it meant the "email
   available" line appearing mid-entry pushed the password fields down under the
   cursor, and what was being typed went to the wrong field. */
.setup-account-card .setup-field-feedback:empty {
    visibility: hidden;
}

.setup-account-card .password-policy-meter {
    margin-top: 4px;
}

/* The base states for these messages were written for the wizard's original
   dark surfaces, and on the light card they land as pale text on white: the
   muted one is close to unreadable and the error one is a washed-out pink.
   These repoint them at values the light setup theme already uses elsewhere
   rather than introducing anything new. */
.setup-account-card .setup-field-feedback,
.setup-account-card .setup-field-feedback.is-muted {
    color: var(--setup-muted, #64748b);
}

.setup-account-card .setup-field-feedback.is-ok {
    color: #0f8f76;
}

.setup-account-card .setup-field-feedback.is-error {
    color: #991b1b;
}

/* .alert-danger has no styling anywhere in the stylesheet, so the validation
   summary was rendering as loose text at the top of the card. */
.setup-account-card .setup-form-alert {
    display: grid;
    gap: 4px;
    margin-bottom: 20px;
    padding: 14px 16px;
    border: 1px solid #f0d3d3;
    border-radius: 14px;
    color: #991b1b;
    background: #fff5f5;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.45;
    text-align: left;
}

.setup-account-card .auth-social {
    margin: 0;
}

.setup-account-card .auth-social-btn {
    min-height: 52px;
    border: 1px solid var(--setup-account-border);
    border-radius: 14px;
    color: var(--setup-account-text);
    background: #fff;
    box-shadow: 0 6px 18px rgba(6, 26, 53, .05);
}

.setup-account-card .auth-social-btn:hover,
.setup-account-card .auth-social-btn:focus-visible {
    border-color: #9edfe1;
    outline: none;
    color: var(--setup-account-text);
    background: #f4fcfc;
    box-shadow: 0 10px 24px rgba(6, 26, 53, .08);
}

.setup-account-choice {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 20px 0;
    color: var(--setup-account-placeholder);
    font-size: 13px;
}

.setup-account-choice::before,
.setup-account-choice::after {
    content: "";
    height: 1px;
    flex: 1;
    background: var(--setup-account-border);
}

.setup-account-card .setup-separator {
    margin-top: 24px;
    margin-bottom: 20px;
}

/* The wizard floats its actions in a sticky bar, which on a form this short
   looked like a second empty field with a button parked in it. Here the button
   is simply the last thing in the card, at full width. */
.setup-account-card .setup-actions {
    position: static;
    display: flex;
    gap: 12px;
    padding: 0;
    border: 0;
    background: none;
    box-shadow: none;
    backdrop-filter: none;
}

.setup-account-card .setup-actions .btn {
    flex: 1 1 auto;
    min-height: 52px;
    font-size: 15px;
}

/* Consent row. The whole line is the label, so the text is a click target too
   and nobody has to hit a 16px box. */
.setup-consent {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start;
    gap: 10px;
    margin-top: 22px;
    color: var(--setup-muted, #64748b);
    font-size: 13px;
    line-height: 1.5;
    cursor: pointer;
}

.setup-account-card .setup-consent input[type="checkbox"] {
    width: 18px;
    height: 18px;
    min-height: 0;
    margin: 1px 0 0;
    padding: 0;
    flex: none;
    accent-color: var(--setup-accent-strong, #0ea5aa);
    cursor: pointer;
}

.setup-consent a {
    color: var(--setup-accent-strong, #0ea5aa);
    font-weight: 700;
    text-decoration: none;
}

.setup-consent a:hover,
.setup-consent a:focus-visible {
    text-decoration: underline;
}

.setup-account-card .setup-actions .btn-light {
    flex: 0 0 auto;
    padding-right: 22px;
    padding-left: 22px;
}

@media (max-width: 1000px) {
    .setup-account-card {
        grid-template-columns: minmax(0, 1fr);
        justify-items: center;
        padding: 36px 28px 32px;
    }

    .setup-account-intro {
        margin-bottom: 26px;
        padding-right: 0;
        text-align: center;
    }

    .setup-account-intro p {
        max-width: none;
    }

    /* Stacked above the form the list is no longer filling a column, so it
       stays left aligned inside a centred block rather than centring each
       line's icon and text separately. */
    .setup-account-points {
        width: fit-content;
        margin: 22px auto 0;
        text-align: left;
    }

    .setup-account-fields {
        width: min(100%, 520px);
        padding-left: 0;
        border-left: 0;
    }
}

@media (max-width: 760px) {
    .setup-account-shell {
        width: 100%;
    }

    .setup-account-shell .setup-header {
        margin-bottom: 18px;
    }

    .setup-account-card {
        padding: 22px 18px 20px;
    }

    .setup-account-card .form-row ~ .form-row {
        margin-top: 18px;
    }

    .setup-account-card input {
        min-height: 52px;
        font-size: 16px;
    }

    .setup-account-card .setup-actions {
        flex-direction: column-reverse;
    }

    .setup-account-card .setup-actions .btn,
    .setup-account-card .setup-actions .btn-light {
        width: 100%;
    }
}

/* What the draft already holds, shown inside the picker. */
.resource-picker-draft {
    margin: 4px 0 0;
    font-size: 13px;
    color: var(--status-success-ink, #15803d);
}
