/* ==========================================================================
   DataPulseX — telas de conta (cadastro, login, senha, checkout)
   --------------------------------------------------------------------------
   Mesma linguagem do painel (assets/css/dpx-ui.css): Geist, violeta como único
   acento, neutros levemente violáceos, claro e escuro com a mesma qualidade.
   Página pública: não depende de style.css nem das folhas legadas.
   ========================================================================== */

:root {
    --a-brand: #7C3AED;
    --a-brand-fill: color-mix(in oklab, var(--a-brand) 88%, #000);
    --a-brand-fill-h: color-mix(in oklab, var(--a-brand) 76%, #000);
    --a-brand-ink: color-mix(in oklab, var(--a-brand) 82%, #000);
    --a-brand-soft: color-mix(in oklab, var(--a-brand) 9%, transparent);
    --a-brand-line: color-mix(in oklab, var(--a-brand) 40%, transparent);
    --a-focus: color-mix(in oklab, var(--a-brand) 22%, transparent);

    --a-page: #FFFFFF;
    --a-surface: #FFFFFF;
    --a-surface-2: #FAF9FC;
    --a-surface-3: #F3F2F7;
    --a-border: #E8E6EF;
    --a-border-2: #DAD7E4;
    --a-text: #15131C;
    --a-text-2: #4A4658;
    --a-text-3: #6D6980;
    --a-text-4: #9C98AA;

    --a-success: #15803D;
    --a-success-soft: rgba(22, 163, 74, 0.08);
    --a-warning: #B45309;
    --a-warning-soft: rgba(217, 119, 6, 0.09);
    --a-danger: #C2261D;
    --a-danger-soft: rgba(220, 38, 38, 0.07);

    /* painel da marca: sempre escuro */
    --a-side: #0C0A13;
    --a-side-2: #15121F;
    --a-side-line: #231F30;
    --a-side-text: #F1F0F5;
    --a-side-text-2: #B4AFC3;
    --a-side-text-3: #8E89A1;

    --a-font: 'Geist', 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --a-mono: 'Geist Mono', ui-monospace, 'SFMono-Regular', monospace;
    --a-ease: cubic-bezier(0.23, 1, 0.32, 1);
    --a-r: 8px;
    --a-r-lg: 12px;
    color-scheme: light;
}

html[data-theme="dark"] {
    --a-brand-ink: color-mix(in oklab, var(--a-brand) 50%, #fff);
    --a-brand-soft: color-mix(in oklab, var(--a-brand) 15%, transparent);
    --a-brand-line: color-mix(in oklab, var(--a-brand) 55%, transparent);
    --a-focus: color-mix(in oklab, var(--a-brand) 35%, transparent);
    --a-page: #08070E;
    --a-surface: #110F18;
    --a-surface-2: #15131D;
    --a-surface-3: #1B1825;
    --a-border: #221F2D;
    --a-border-2: #2F2B3D;
    --a-text: #F1F0F5;
    --a-text-2: #B4AFC3;
    --a-text-3: #8E89A1;
    --a-text-4: #5E596F;
    --a-success: #4ADE80;
    --a-success-soft: rgba(74, 222, 128, 0.10);
    --a-warning: #FBBF24;
    --a-warning-soft: rgba(251, 191, 36, 0.10);
    --a-danger: #F87171;
    --a-danger-soft: rgba(248, 113, 113, 0.10);
    color-scheme: dark;
}

*, *::before, *::after { box-sizing: border-box; }

html, body { margin: 0; min-height: 100%; }

body.dpx-auth {
    min-height: 100vh;
    min-height: 100dvh;
    background: var(--a-page);
    color: var(--a-text);
    font: 400 14px/1.5 var(--a-font);
    letter-spacing: -0.003em;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

.dpx-auth a { color: var(--a-brand-ink); text-decoration: none; text-underline-offset: 3px; }
.dpx-auth a:hover { text-decoration: underline; }
.dpx-auth :focus-visible { outline: 2px solid var(--a-brand); outline-offset: 2px; border-radius: 4px; }
.dpx-auth i.bx { line-height: 1; }
.dpx-auth [hidden] { display: none !important; }

.a-skip {
    position: absolute;
    left: 16px;
    top: -48px;
    z-index: 10;
    padding: 8px 12px;
    border-radius: var(--a-r);
    background: var(--a-text);
    color: var(--a-page) !important;
    font-weight: 500;
}
.a-skip:focus { top: 16px; }

/* Estrutura --------------------------------------------------------------- */
.a-shell {
    display: grid;
    grid-template-columns: minmax(380px, 5fr) 7fr;
    min-height: 100vh;
    min-height: 100dvh;
}

.a-side {
    position: sticky;
    top: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 40px;
    height: 100vh;
    height: 100dvh;
    padding: 40px 48px;
    background: var(--a-side);
    color: var(--a-side-text);
    overflow: hidden;
    isolation: isolate;
}
.a-side::before {
    /* luz única e discreta: ancora a marca sem virar efeito */
    content: '';
    position: absolute;
    z-index: -1;
    top: -30%;
    left: -20%;
    width: 90%;
    height: 70%;
    background: radial-gradient(closest-side, color-mix(in oklab, var(--a-brand) 22%, transparent), transparent);
    opacity: 0.55;
    pointer-events: none;
}
.a-side::after {
    content: '';
    position: absolute;
    z-index: -1;
    inset: 0;
    background-image:
        linear-gradient(var(--a-side-line) 1px, transparent 1px),
        linear-gradient(90deg, var(--a-side-line) 1px, transparent 1px);
    background-size: 48px 48px;
    mask-image: linear-gradient(180deg, transparent, #000 35%, #000 65%, transparent);
    opacity: 0.35;
    pointer-events: none;
}

.a-logo { display: inline-flex; align-items: center; }
.a-logo img { height: 26px; width: auto; display: block; }
.a-side .a-logo:hover { text-decoration: none; }

.a-side__body { max-width: 440px; }
.a-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 18px;
    color: var(--a-side-text-3);
    font: 500 12px/1 var(--a-mono);
    letter-spacing: 0.02em;
}
.a-eyebrow::before { content: ''; width: 18px; height: 1px; background: currentColor; opacity: 0.7; }
.a-side h2 {
    margin: 0 0 14px;
    color: var(--a-side-text);
    font: 600 34px/1.12 var(--a-font);
    letter-spacing: -0.03em;
    text-wrap: balance;
}
.a-side h2 em { font-style: normal; color: color-mix(in oklab, var(--a-brand) 55%, #fff); }
.a-side__lead {
    margin: 0 0 32px;
    color: var(--a-side-text-2);
    font-size: 15px;
    line-height: 1.6;
    text-wrap: pretty;
}

.a-facts { list-style: none; margin: 0; padding: 0; display: grid; gap: 18px; }
.a-facts li { display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 12px; align-items: start; }
.a-facts__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border: 1px solid var(--a-side-line);
    border-radius: var(--a-r);
    background: var(--a-side-2);
    color: color-mix(in oklab, var(--a-brand) 50%, #fff);
    font-size: 16px;
}
.a-facts strong { display: block; margin: 1px 0 2px; color: var(--a-side-text); font-weight: 500; font-size: 14px; }
.a-facts li > div > span { display: block; color: var(--a-side-text-3); font-size: 13px; line-height: 1.5; }

.a-side__note {
    margin: 0;
    padding: 14px 16px;
    border: 1px solid var(--a-side-line);
    border-radius: var(--a-r-lg);
    background: color-mix(in oklab, var(--a-side-2) 80%, transparent);
    color: var(--a-side-text-2);
    font-size: 13px;
    line-height: 1.55;
}
.a-side__note strong { color: var(--a-side-text); font-weight: 500; }

.a-side__foot { display: flex; gap: 16px; color: var(--a-side-text-3); font-size: 12px; }
.a-side__foot a { color: var(--a-side-text-3); }
.a-side__foot a:hover { color: var(--a-side-text); }

/* Área do formulário ------------------------------------------------------ */
.a-main {
    display: flex;
    flex-direction: column;
    min-width: 0;
    background: var(--a-surface);
}
.a-top {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 16px;
    padding: 20px 32px;
    color: var(--a-text-3);
    font-size: 13px;
}
.a-top__mobile-logo { display: none; margin-right: auto; }
.a-top__mobile-logo img { height: 22px; width: auto; display: block; }
html:not([data-theme="dark"]) .a-top__mobile-logo img { filter: invert(1) hue-rotate(180deg); }

.a-lang { display: inline-flex; align-items: center; gap: 2px; padding: 2px; border: 1px solid var(--a-border); border-radius: var(--a-r); }
.a-lang a {
    padding: 3px 8px;
    border-radius: 6px;
    color: var(--a-text-3);
    font: 500 12px/1.4 var(--a-mono);
    text-decoration: none !important;
}
.a-lang a[aria-current="true"] { background: var(--a-surface-3); color: var(--a-text); }

.a-content {
    flex: 1;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 24px 24px 56px;
}
.a-content--center { align-items: center; }
.a-form-wrap { width: 100%; max-width: 440px; }

.a-steps {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 24px;
    padding: 0;
    list-style: none;
    color: var(--a-text-4);
    font: 500 12px/1 var(--a-font);
}
.a-steps li { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.a-steps li + li::before { content: ''; width: 18px; height: 1px; margin-right: 4px; background: var(--a-border-2); }
.a-steps b {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 1px solid var(--a-border-2);
    font: 500 11px/1 var(--a-mono);
}
.a-steps .is-current { color: var(--a-text); }
.a-steps .is-current b { border-color: var(--a-brand); background: var(--a-brand); color: #fff; }

.a-title { margin: 0 0 6px; color: var(--a-text); font: 600 26px/1.2 var(--a-font); letter-spacing: -0.025em; text-wrap: balance; }
.a-sub { margin: 0 0 28px; color: var(--a-text-3); font-size: 14px; line-height: 1.55; text-wrap: pretty; }

/* Alertas */
.a-alert {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 0 0 20px;
    padding: 12px 14px;
    border: 1px solid var(--a-border);
    border-radius: var(--a-r);
    background: var(--a-surface-2);
    color: var(--a-text);
    font-size: 13px;
    line-height: 1.5;
}
.a-alert i.bx { flex-shrink: 0; margin-top: 1px; font-size: 18px; color: var(--a-text-3); }
.a-alert--danger { border-color: color-mix(in oklab, var(--a-danger) 28%, transparent); background: var(--a-danger-soft); }
.a-alert--danger i.bx { color: var(--a-danger); }
.a-alert--success { border-color: color-mix(in oklab, var(--a-success) 28%, transparent); background: var(--a-success-soft); }
.a-alert--success i.bx { color: var(--a-success); }
.a-alert--warning { border-color: color-mix(in oklab, var(--a-warning) 30%, transparent); background: var(--a-warning-soft); }
.a-alert--warning i.bx { color: var(--a-warning); }
.a-alert strong { font-weight: 600; }
.a-alert p { margin: 2px 0 0; color: var(--a-text-2); }

/* Campos */
.a-form { display: grid; gap: 18px; }
.a-group { display: grid; gap: 18px; padding-top: 4px; }
.a-group + .a-group { padding-top: 22px; border-top: 1px solid var(--a-border); }
.a-group__title { margin: 0; color: var(--a-text-3); font: 500 12px/1 var(--a-font); }

.a-field { display: grid; gap: 6px; min-width: 0; }
.a-field__row { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.a-label { color: var(--a-text-2); font: 500 13px/1.3 var(--a-font); }
.a-input-wrap { position: relative; }
.a-input,
.a-select {
    width: 100%;
    height: 42px;
    padding: 0 12px;
    border: 1px solid var(--a-border-2);
    border-radius: var(--a-r);
    background: var(--a-surface);
    color: var(--a-text);
    font: 400 14px/1 var(--a-font);
    transition: border-color 140ms ease, box-shadow 140ms ease;
    -webkit-appearance: none;
    appearance: none;
}
.a-input::placeholder { color: var(--a-text-4); }
.a-input:hover { border-color: color-mix(in oklab, var(--a-border-2) 50%, var(--a-text-4)); }
.a-input:focus,
.a-select:focus {
    outline: none;
    border-color: var(--a-brand);
    box-shadow: 0 0 0 3px var(--a-focus);
}
.a-input[aria-invalid="true"] { border-color: var(--a-danger); }
.a-input--pass { padding-right: 44px; }
.a-input:-webkit-autofill { -webkit-box-shadow: 0 0 0 40px var(--a-surface) inset; -webkit-text-fill-color: var(--a-text); }

.a-reveal {
    position: absolute;
    top: 50%;
    right: 4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: var(--a-text-3);
    cursor: pointer;
    transform: translateY(-50%);
}
.a-reveal:hover { background: var(--a-surface-3); color: var(--a-text); }
.a-reveal i.bx { font-size: 18px; }

.a-hint { margin: 0; color: var(--a-text-3); font-size: 12px; line-height: 1.45; }
.a-hint.is-ok { color: var(--a-success); }
.a-meter { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; margin-top: 2px; }
.a-meter span { height: 3px; border-radius: 2px; background: var(--a-surface-3); transition: background-color 160ms ease; }
.a-meter[data-level="1"] span:nth-child(-n+1) { background: var(--a-danger); }
.a-meter[data-level="2"] span:nth-child(-n+2) { background: var(--a-warning); }
.a-meter[data-level="3"] span:nth-child(-n+3) { background: var(--a-success); }
.a-meter[data-level="4"] span { background: var(--a-success); }

.a-link-sm { font-size: 12px; font-weight: 500; }

/* Escolhas em cartão (tipo de site, plano) */
.a-choices { display: grid; gap: 8px; margin: 0; padding: 0; border: 0; min-width: 0; }
.a-choices--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.a-choices legend { padding: 0; margin: 0 0 6px; color: var(--a-text-2); font: 500 13px/1.3 var(--a-font); }
.a-choice { position: relative; display: block; min-width: 0; cursor: pointer; }
.a-choice input { position: absolute; opacity: 0; pointer-events: none; }
.a-choice__box {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    height: 100%;
    padding: 12px 14px;
    border: 1px solid var(--a-border-2);
    border-radius: var(--a-r);
    background: var(--a-surface);
    transition: border-color 140ms ease, background-color 140ms ease, box-shadow 140ms ease;
}
.a-choices--3 .a-choice__box { flex-direction: column; gap: 8px; padding: 12px; }
.a-choice:hover .a-choice__box { border-color: color-mix(in oklab, var(--a-border-2) 40%, var(--a-text-4)); }
.a-choice input:checked + .a-choice__box {
    border-color: var(--a-brand);
    background: var(--a-brand-soft);
    box-shadow: inset 0 0 0 1px var(--a-brand);
}
.a-choice input:focus-visible + .a-choice__box { box-shadow: 0 0 0 3px var(--a-focus), inset 0 0 0 1px var(--a-brand); }
.a-choice__radio {
    flex-shrink: 0;
    width: 16px;
    height: 16px;
    margin-top: 2px;
    border: 1.5px solid var(--a-border-2);
    border-radius: 50%;
    background: var(--a-surface);
    transition: border-color 140ms ease, border-width 140ms var(--a-ease);
}
.a-choice input:checked + .a-choice__box .a-choice__radio { border: 5px solid var(--a-brand); }
.a-choice__icon { color: var(--a-text-3); font-size: 18px; }
.a-choice input:checked + .a-choice__box .a-choice__icon { color: var(--a-brand-ink); }
.a-choice__main { flex: 1; min-width: 0; }
.a-choice__title { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; color: var(--a-text); font: 500 14px/1.35 var(--a-font); }
.a-choices--3 .a-choice__title { font-size: 13px; }
.a-choice__desc { display: block; margin-top: 2px; color: var(--a-text-3); font-size: 12px; line-height: 1.45; }
.a-choice__price { flex-shrink: 0; color: var(--a-text); font: 500 13px/1.35 var(--a-mono); white-space: nowrap; }
.a-choice__price small { color: var(--a-text-4); font-size: 11px; }
.a-tag {
    display: inline-flex;
    align-items: center;
    height: 18px;
    padding: 0 6px;
    border-radius: 4px;
    background: var(--a-brand-soft);
    color: var(--a-brand-ink);
    font: 600 11px/1 var(--a-font);
}

/* Termos */
.a-check { display: flex; align-items: flex-start; gap: 10px; color: var(--a-text-2); font-size: 13px; line-height: 1.5; cursor: pointer; }
.a-check input {
    flex-shrink: 0;
    width: 16px;
    height: 16px;
    margin: 2px 0 0;
    accent-color: var(--a-brand);
}

/* Botões */
.a-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    height: 44px;
    padding: 0 18px;
    border: 1px solid transparent;
    border-radius: var(--a-r);
    background: var(--a-brand-fill);
    color: #fff;
    font: 500 14px/1 var(--a-font);
    text-decoration: none !important;
    cursor: pointer;
    box-shadow: 0 1px 2px rgba(23, 18, 43, 0.14), inset 0 1px 0 rgba(255, 255, 255, 0.10);
    transition: background-color 140ms ease, transform 120ms var(--a-ease), opacity 140ms ease;
}
.a-btn:hover { background: var(--a-brand-fill-h); color: #fff; }
.dpx-auth a.a-btn { color: #fff; text-decoration: none; }
.dpx-auth a.a-btn--ghost, .dpx-auth a.a-btn--ghost:hover { color: var(--a-text); }
.a-btn:active:not(:disabled) { transform: scale(0.985); }
.a-btn:disabled { opacity: 0.7; cursor: progress; }
.a-btn i.bx { font-size: 18px; }
.a-btn--ghost {
    background: var(--a-surface);
    border-color: var(--a-border-2);
    color: var(--a-text);
    box-shadow: 0 1px 2px rgba(23, 18, 43, 0.04);
}
.a-btn--ghost:hover { background: var(--a-surface-3); color: var(--a-text); }
.a-btn--auto { width: auto; }
.bx-spin { animation: a-spin 0.9s linear infinite; }
@keyframes a-spin { to { transform: rotate(360deg); } }

.a-alt {
    margin: 24px 0 0;
    padding-top: 20px;
    border-top: 1px solid var(--a-border);
    color: var(--a-text-3);
    font-size: 13px;
    text-align: center;
}
.a-alt a { font-weight: 500; }
.a-fine { margin: 16px 0 0; color: var(--a-text-4); font-size: 12px; line-height: 1.5; text-align: center; }
.a-fine a { color: var(--a-text-3); }

/* Página de mensagem (checkout, estados) */
.a-msg { width: 100%; max-width: 460px; text-align: left; }
.a-msg__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin-bottom: 20px;
    border-radius: var(--a-r-lg);
    background: var(--a-brand-soft);
    color: var(--a-brand-ink);
    font-size: 22px;
}
.a-msg--danger .a-msg__icon { background: var(--a-danger-soft); color: var(--a-danger); }
.a-msg--success .a-msg__icon { background: var(--a-success-soft); color: var(--a-success); }
.a-msg--warning .a-msg__icon { background: var(--a-warning-soft); color: var(--a-warning); }
.a-msg__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.a-msg__actions .a-btn { width: auto; }
.a-msg__detail { margin: 16px 0 0; color: var(--a-text-4); font: 400 12px/1.5 var(--a-mono); }
.a-progress { position: relative; height: 2px; margin: 4px 0 0; overflow: hidden; border-radius: 2px; background: var(--a-surface-3); }
.a-progress span { position: absolute; inset: 0 auto 0 0; width: 35%; background: var(--a-brand); animation: a-indet 1.1s var(--a-ease) infinite; }
@keyframes a-indet { from { transform: translateX(-100%); } to { transform: translateX(290%); } }

/* Barra superior: ações ---------------------------------------------------- */
.a-top__actions { display: inline-flex; align-items: center; gap: 8px; }
.a-icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    padding: 0;
    border: 1px solid var(--a-border);
    border-radius: var(--a-r);
    background: transparent;
    color: var(--a-text-3);
    cursor: pointer;
    transition: background-color 140ms ease, color 140ms ease, transform 140ms var(--a-ease);
}
.a-icon-btn:hover { background: var(--a-surface-3); color: var(--a-text); }
.a-icon-btn:active { transform: scale(0.96); }
.a-icon-btn i.bx { font-size: 16px; }
.a-icon-btn .a-ico-sun { display: none; }
html[data-theme="dark"] .a-icon-btn .a-ico-sun { display: inline-block; }
html[data-theme="dark"] .a-icon-btn .a-ico-moon { display: none; }

/* Campo com prefixo (domínio) --------------------------------------------- */
.a-affix {
    display: flex;
    align-items: stretch;
    border: 1px solid var(--a-border-2);
    border-radius: var(--a-r);
    background: var(--a-surface);
    transition: border-color 140ms ease, box-shadow 140ms ease;
}
.a-affix:hover { border-color: color-mix(in oklab, var(--a-border-2) 50%, var(--a-text-4)); }
.a-affix:focus-within { border-color: var(--a-brand); box-shadow: 0 0 0 3px var(--a-focus); }
.a-affix__pre {
    display: inline-flex;
    align-items: center;
    padding: 0 0 0 12px;
    color: var(--a-text-4);
    font: 400 13px/1 var(--a-mono);
    user-select: none;
}
.a-affix .a-input { border: 0; box-shadow: none !important; background: transparent; padding-left: 2px; }
.a-affix:has(.a-input[aria-invalid="true"]) { border-color: var(--a-danger); }

/* Resumo do plano (passagem para o pagamento) ----------------------------- */
.a-summary {
    margin: 0 0 20px;
    padding: 0;
    border: 1px solid var(--a-border);
    border-radius: var(--a-r-lg);
    background: var(--a-surface-2);
}
.a-summary__row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 16px;
    font-size: 13px;
}
.a-summary__row + .a-summary__row { border-top: 1px solid var(--a-border); }
.a-summary dt { margin: 0; color: var(--a-text-3); }
.a-summary dd { margin: 0; color: var(--a-text); font-weight: 500; text-align: right; }
.a-summary dd.is-num { font-family: var(--a-mono); font-variant-numeric: tabular-nums; }
.a-msg__body { margin: 0; color: var(--a-text-2); font-size: 14px; line-height: 1.6; text-wrap: pretty; }
.a-msg__body + .a-msg__body { margin-top: 8px; }
.a-msg .a-title { margin-bottom: 10px; }
.a-msg .a-progress { margin: 20px 0 0; }
.a-msg__hint { margin: 12px 0 0; color: var(--a-text-4); font-size: 12px; }

.a-side__note + .a-side__foot { margin-top: 20px; }
.a-main--solo { min-height: 100vh; min-height: 100dvh; }
.a-top--solo { justify-content: space-between; }
.a-top--solo .a-top__mobile-logo { display: inline-flex; }
.a-msg .a-summary { margin-top: 20px; margin-bottom: 0; }

/* Responsivo --------------------------------------------------------------- */
@media (max-width: 1080px) {
    .a-shell { grid-template-columns: minmax(0, 1fr); }
    .a-side { display: none; }
    .a-top__mobile-logo { display: inline-flex; }
}
@media (max-width: 520px) {
    .a-top { padding: 16px 20px; }
    .a-content { padding: 8px 20px 40px; }
    .a-title { font-size: 23px; }
    .a-choices--3 { grid-template-columns: minmax(0, 1fr); }
    .a-choices--3 .a-choice__box { flex-direction: row; align-items: center; }
    .a-steps { gap: 6px; }
    .a-steps li + li::before { width: 10px; }
    .a-input, .a-select { font-size: 16px; } /* evita zoom no iOS */
}

@media (prefers-reduced-motion: reduce) {
    .dpx-auth *, .dpx-auth *::before, .dpx-auth *::after { transition: none !important; animation: none !important; }
}
