/* A10_1R9_BRANDING_OPTION_B_START */
:root {
    --ad360-brand-primary: #2563EB;
    --ad360-brand-navy: #0F172A;
    --ad360-brand-slate: #64748B;
    --ad360-brand-soft: #E2E8F0;
    --ad360-brand-bg: #F8FAFC;
}

.ad360-brand-logo {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    max-width: 100%;
}

.ad360-brand-logo img {
    display: block;
    max-width: 100%;
    height: auto;
    object-fit: contain;
}

.ad360-brand-logo--sidebar {
    width: 100%;
    padding: 12px 10px 16px;
    margin: 0 0 10px;
    border-radius: 20px;
    background: rgba(248, 250, 252, 0.92);
    border: 1px solid rgba(226, 232, 240, 0.85);
    box-shadow: 0 14px 28px rgba(15, 23, 42, 0.10);
}

.ad360-brand-logo--sidebar img {
    max-height: 58px;
    margin: 0 auto;
}

.ad360-brand-logo__fallback {
    font-weight: 900;
    color: var(--ad360-brand-navy);
    letter-spacing: .02em;
}

.ad360-branding-sidebar-slot {
    padding: 8px 12px 4px;
}

.ad360-sidebar .ad360-sidebar-brand {
    display: none !important;
}

.ad360-branding-admin-link {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 8px 12px;
    padding: 12px 14px;
    border-radius: 16px;
    text-decoration: none;
    font-weight: 800;
    color: #334155;
    border: 1px solid rgba(226, 232, 240, .8);
    background: rgba(255, 255, 255, .72);
}

.ad360-branding-admin-link:hover,
.ad360-branding-admin-link.is-active {
    color: var(--ad360-brand-navy);
    background: rgba(37, 99, 235, .12);
    border-color: rgba(37, 99, 235, .28);
}

.ad360-branding-admin-link__icon {
    width: 28px;
    height: 28px;
    display: inline-grid;
    place-items: center;
    border-radius: 10px;
    background: rgba(37, 99, 235, .12);
    color: var(--ad360-brand-primary);
}

.ad-public-pricing,
.ad360-auth-shell,
.auth-page,
.login-page,
.register-page {
    background-image:
        linear-gradient(90deg, rgba(248,250,252,.96), rgba(248,250,252,.74)),
        url('/brand/current/bg-public.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.ad360-main,
.ad-page {
    background-image:
        radial-gradient(circle at top right, rgba(37, 99, 235, .08), transparent 34%),
        radial-gradient(circle at bottom left, rgba(15, 23, 42, .04), transparent 30%);
}

.ad360-app-shell .ad360-main::before {
    content: "";
    position: fixed;
    inset: auto 0 0 auto;
    width: min(760px, 70vw);
    height: min(420px, 42vh);
    pointer-events: none;
    background-image: url('/brand/current/bg-app.png');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: right bottom;
    opacity: .16;
    z-index: 0;
}

.ad360-main > *,
.ad-page > * {
    position: relative;
    z-index: 1;
}

.ad360-branding-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.ad360-branding-card {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 18px;
    padding: 18px;
    border: 1px solid rgba(226, 232, 240, .95);
    border-radius: 24px;
    background: rgba(255, 255, 255, .88);
    box-shadow: 0 18px 40px rgba(15, 23, 42, .06);
}

.ad360-branding-card__preview {
    min-height: 150px;
    display: grid;
    place-items: center;
    border-radius: 18px;
    background:
        linear-gradient(135deg, rgba(248, 250, 252, .95), rgba(226, 232, 240, .45));
    border: 1px dashed rgba(100, 116, 139, .35);
    overflow: hidden;
}

.ad360-branding-card__preview img {
    max-width: 100%;
    max-height: 170px;
    object-fit: contain;
}

.ad360-branding-card__body h2 {
    margin: 0 0 8px;
    color: var(--ad360-brand-navy);
    font-size: 18px;
}

.ad360-branding-card__body p {
    margin: 0 0 10px;
    color: var(--ad360-brand-slate);
}

.ad360-branding-path {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 12px;
    color: #475569;
    background: rgba(226, 232, 240, .55);
    padding: 8px 10px;
    border-radius: 12px;
    word-break: break-all;
}

.ad360-branding-upload {
    display: grid;
    gap: 8px;
    font-weight: 800;
    color: var(--ad360-brand-navy);
}

.ad360-branding-upload input {
    width: 100%;
    padding: 10px;
    border: 1px solid rgba(203, 213, 225, .95);
    border-radius: 14px;
    background: #fff;
}

.ad360-branding-reset {
    margin-top: 18px;
}

@media (max-width: 900px) {
    .ad360-branding-grid {
        grid-template-columns: 1fr;
    }

    .ad360-branding-card {
        grid-template-columns: 1fr;
    }

    .ad360-brand-logo--sidebar {
        display: none;
    }
}
/* A10_1R9_BRANDING_OPTION_B_END */

/* A10_1R9R3_VISUAL_POLISH_START */

/* Header publico: logo oficial manteniendo colores actuales */
.ad360-public-header-logo {
    display: inline-flex;
    align-items: center;
    max-width: 260px;
    line-height: 1;
}

.ad360-public-header-logo img {
    display: block;
    max-width: 100%;
    max-height: 54px;
    object-fit: contain;
}

/* Evita duplicidad del bloque antiguo bajo el nuevo logo del sidebar */
.ad360-sidebar .ad360-sidebar-brand,
.ad360-sidebar .ad-sidebar-brand,
.ad360-sidebar .sidebar-brand,
.ad360-sidebar .brand-card,
.ad360-sidebar .brand-section,
.ad360-sidebar .app-brand,
.ad360-sidebar .logo-card {
    display: none !important;
}

.ad360-sidebar .ad360-branding-sidebar-slot,
.ad360-sidebar .ad360-branding-sidebar-slot .ad360-brand-logo,
.ad360-sidebar .ad360-branding-sidebar-slot img {
    display: flex !important;
}

/* QR impreso/sticker: render seguro de SVG/imagen */
.ad360-qr-print-render {
    width: 100%;
    min-height: 280px;
    display: grid;
    place-items: center;
    padding: 18px;
    border-radius: 28px;
    background:
        radial-gradient(circle at top left, rgba(37, 99, 235, .08), transparent 32%),
        rgba(248, 250, 252, .94);
}

.ad360-qr-print-render svg {
    width: min(100%, 420px);
    height: auto;
    display: block;
    background: #ffffff;
    border-radius: 18px;
    padding: 10px;
    box-shadow: 0 16px 40px rgba(15, 23, 42, .10);
}

.ad360-qr-print-render img {
    max-width: min(100%, 420px);
    height: auto;
    display: block;
    background: #ffffff;
    border-radius: 18px;
    padding: 10px;
    box-shadow: 0 16px 40px rgba(15, 23, 42, .10);
}

.ad360-qr-print-fallback {
    width: min(100%, 420px);
    min-height: 260px;
    display: grid;
    place-items: center;
    text-align: center;
    padding: 24px;
    border-radius: 22px;
    border: 2px dashed rgba(37, 99, 235, .28);
    background: rgba(255, 255, 255, .86);
    color: #0F172A;
    font-weight: 800;
}

.ad360-qr-print-fallback small {
    display: block;
    margin-top: 8px;
    color: #64748B;
    font-size: 12px;
    line-height: 1.45;
    word-break: break-all;
}

@media print {
    .ad360-qr-print-render {
        background: #ffffff !important;
        padding: 10px !important;
    }

    .ad360-qr-print-render svg,
    .ad360-qr-print-render img {
        box-shadow: none !important;
        padding: 0 !important;
    }
}

/* A10_1R9R3_VISUAL_POLISH_END */

/* A10_1R9R6R1_REAL_ROUTE_RENDER_START */

.ad360-public-brand--logo {
    display: inline-flex;
    align-items: center;
    max-width: 290px;
    line-height: 1;
}

.ad360-public-brand--logo img {
    display: block;
    max-width: 100%;
    max-height: 58px;
    object-fit: contain;
}

.ad360-qr-print-render--storage {
    width: 100%;
    min-height: 280px;
    display: grid;
    place-items: center;
    padding: 18px;
    border-radius: 28px;
    background:
        radial-gradient(circle at top left, rgba(37, 99, 235, .08), transparent 32%),
        rgba(248, 250, 252, .94);
}

.ad360-qr-print-render--storage svg {
    width: min(100%, 420px);
    height: auto;
    display: block;
    background: #ffffff;
    border-radius: 18px;
    padding: 10px;
    box-shadow: 0 16px 40px rgba(15, 23, 42, .10);
}

.ad360-qr-print-render--storage img {
    max-width: min(100%, 420px);
    height: auto;
    display: block;
    background: #ffffff;
    border-radius: 18px;
    padding: 10px;
    box-shadow: 0 16px 40px rgba(15, 23, 42, .10);
}

@media print {
    .ad360-public-brand--logo img,
    .ad360-qr-print-render--storage,
    .ad360-qr-print-render--storage svg,
    .ad360-qr-print-render--storage img {
        box-shadow: none !important;
        background: #ffffff !important;
    }
}

/* A10_1R9R6R1_REAL_ROUTE_RENDER_END */

/* A10_1R9R6R2_BACKGROUNDS_ADMIN_BANNER_START */

/* Fondo publico: login, registro, precios, legales y landing publica */
body.ad360-route-login,
body.ad360-route-register,
body.ad360-route-pricing,
body.ad360-route-terms,
body.ad360-route-privacy,
body.ad360-route-legal-terms,
body.ad360-route-legal-privacy {
    background-image:
        linear-gradient(90deg, rgba(248, 250, 252, .97), rgba(248, 250, 252, .82)),
        url('/brand/current/bg-public.png') !important;
    background-size: cover !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    background-attachment: fixed;
}

body.ad360-route-login main,
body.ad360-route-register main,
body.ad360-route-pricing main,
body.ad360-route-terms main,
body.ad360-route-privacy main,
body.ad360-route-legal-terms main,
body.ad360-route-legal-privacy main,
.public-topbar + main {
    background-image:
        linear-gradient(90deg, rgba(248, 250, 252, .92), rgba(248, 250, 252, .76)),
        url('/brand/current/bg-public.png') !important;
    background-size: cover !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
}

/* Fondo interno app: panel operativo/admin sin cambiar paleta */
.ad360-app-shell .ad360-main {
    background-image:
        linear-gradient(90deg, rgba(248, 250, 252, .94), rgba(239, 246, 255, .78)),
        url('/brand/current/bg-app.png') !important;
    background-size: cover !important;
    background-position: right bottom !important;
    background-repeat: no-repeat !important;
    background-attachment: fixed;
}

/* Admin dashboard: banner configurable desde /admin/branding */
body.ad360-route-app-admin-dashboard .ad360-hero.admin,
body.ad360-route-admin-dashboard .ad360-hero.admin,
.ad360-hero.admin {
    background-image:
        linear-gradient(135deg, rgba(15, 23, 42, .92), rgba(49, 46, 129, .84), rgba(37, 99, 235, .72)),
        url('/brand/current/admin-banner.png') !important;
    background-size: cover !important;
    background-position: center right !important;
    background-repeat: no-repeat !important;
}

/* Boton directo en hero admin */
.ad360-admin-branding-shortcut {
    border-color: rgba(255, 255, 255, .32) !important;
}

/* Panel Branding: destacar banner nuevo */
.ad360-branding-card:has(input[name="admin_banner"]) {
    border-color: rgba(37, 99, 235, .34);
    background:
        linear-gradient(135deg, rgba(239, 246, 255, .92), rgba(255, 255, 255, .96));
}

.ad360-branding-card:has(input[name="admin_banner"]) .ad360-branding-card__preview {
    min-height: 190px;
}

/* Enlace de branding dentro de Administracion */
.ad360-sidebar-nav a[href*="/admin/branding"] span {
    background: rgba(37, 99, 235, .22);
}

@media (max-width: 900px) {
    body.ad360-route-login,
    body.ad360-route-register,
    body.ad360-route-pricing,
    body.ad360-route-terms,
    body.ad360-route-privacy,
    body.ad360-route-legal-terms,
    body.ad360-route-legal-privacy,
    .ad360-app-shell .ad360-main {
        background-attachment: scroll;
    }

    .ad360-hero.admin {
        background-position: center !important;
    }
}

/* A10_1R9R6R2_BACKGROUNDS_ADMIN_BANNER_END */

/* R10_PUBLIC_POLISH_PRICING_HELP_LOGIN_V100_START */
:root{--r10p-navy:#0b1b3a;--r10p-blue:#1478ff;--r10p-green:#0aa57f;--r10p-teal:#0f8e80;--r10p-text:#10203d;--r10p-muted:#5c6f8e;--r10p-line:#dce6f2;--r10p-soft:#f5f9fd}
.ad360-public-topbar .ad360-public-brand--logo,.ad360-public-topbar .ad360-public-header-logo{max-width:none}
.ad360-public-topbar .ad360-public-brand--logo img,.ad360-public-topbar .ad360-public-header-logo img{width:176px;max-width:176px;max-height:60px;height:auto;object-fit:contain}
.ad360-public-topbar{min-height:78px}
.r10-polish-page,.r10-auth-page{color:var(--r10p-text)}
.r10-polish-kicker{margin:0 0 10px;color:var(--r10p-teal);font-size:.76rem;font-weight:950;letter-spacing:.12em;text-transform:uppercase}
.r10-polish-hero{display:grid;grid-template-columns:minmax(0,.9fr) minmax(380px,1.1fr);align-items:center;gap:44px;margin:6px 0 26px;padding:36px 40px;overflow:hidden;border:1px solid var(--r10p-line);border-radius:30px;background:linear-gradient(120deg,#fff 0%,#f7fbff 50%,#edf9ff 100%);box-shadow:0 18px 44px rgba(11,27,58,.07)}
.r10-polish-hero-copy h1{margin:0;color:var(--r10p-navy);font-size:clamp(2.35rem,4vw,4.25rem);line-height:1;letter-spacing:-.045em}
.r10-polish-hero-copy>p:not(.r10-polish-kicker){max-width:700px;margin:15px 0 0;color:var(--r10p-muted);font-size:1.05rem;line-height:1.62}
.r10-polish-hero>img{display:block;width:100%;max-height:370px;aspect-ratio:4/3;object-fit:cover;border:1px solid rgba(20,120,255,.09);border-radius:24px;box-shadow:0 18px 36px rgba(11,27,58,.11)}
.r10-polish-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.r10-polish-chips span{display:inline-flex;align-items:center;min-height:34px;padding:6px 11px;border:1px solid #d8e8f7;border-radius:999px;background:rgba(255,255,255,.88);color:#3f587a;font-size:.83rem;font-weight:800}
.r10-polish-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.r10-polish-btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 18px;border:0;border-radius:14px;text-decoration:none;font-weight:900;cursor:pointer}
.r10-polish-btn-primary{color:#fff;background:linear-gradient(135deg,#0d9e79,#10ad87);box-shadow:0 10px 22px rgba(10,165,127,.16)}
.r10-pricing-page{max-width:1240px}.r10-pricing-hero{background:linear-gradient(120deg,#fff 0%,#f6fbff 48%,#eaf9f5 100%)}
.r10-promo-strip{display:flex;align-items:center;gap:8px;margin:0 0 18px;padding:13px 16px;border:1px solid #bee7dc;border-radius:16px;background:#effbf7;color:#245f54}.r10-promo-strip strong{color:#08775d}
.r10-pricing-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.r10-plan-card{position:relative;display:flex;flex-direction:column;min-width:0;min-height:500px;padding:22px;overflow:hidden;border:1px solid var(--r10p-line);border-radius:24px;background:#fff;box-shadow:0 14px 32px rgba(11,27,58,.06)}
.r10-plan-card::before{content:"";position:absolute;inset:0 0 auto;height:5px;background:var(--r10p-blue)}.r10-plan-card--plus::before{background:linear-gradient(90deg,var(--r10p-blue),var(--r10p-teal))}.r10-plan-card--pyme::before{background:var(--r10p-green)}.r10-plan-card--empresa::before{background:var(--r10p-navy)}
.r10-plan-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:2px 0 18px}.r10-plan-head h2{margin:0;color:var(--r10p-navy);font-size:1.45rem}
.r10-plan-badge{order:2;display:inline-flex;min-height:29px;align-items:center;padding:4px 9px;border-radius:999px;background:#edf6ff;color:#0967dc;font-size:.72rem;font-weight:900}
.r10-plan-price-block{display:grid;gap:4px;padding:14px 0 16px;border-bottom:1px solid #edf2f7}.r10-plan-price-block span{color:var(--r10p-muted);font-size:.88rem}.r10-plan-price-block strong{color:var(--r10p-navy);font-size:1.55rem;line-height:1.15}
.r10-plan-promo{margin:15px 0 0;color:#08775d;font-weight:900;line-height:1.45}.r10-plan-note{margin:15px 0;color:var(--r10p-muted);line-height:1.55}
.r10-plan-features{display:grid;gap:0;margin-top:16px}.r10-plan-features div,.r10-enterprise-tiers div{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid #edf2f7}.r10-plan-features span,.r10-enterprise-tiers span{color:#536b8b}.r10-plan-features strong,.r10-enterprise-tiers strong{color:var(--r10p-navy);text-align:right}.r10-enterprise-tiers{display:grid}
.r10-plan-action{margin-top:auto;padding-top:20px}.r10-plan-action .r10-polish-btn{width:100%}
.r10-polish-bottom-cta{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:24px;padding:24px 28px;border-radius:24px;color:#fff;background:linear-gradient(110deg,#081631,#10284e)}.r10-polish-bottom-cta .r10-polish-kicker{color:#35d1a6}.r10-polish-bottom-cta h2{max-width:760px;margin:0;font-size:clamp(1.45rem,2.4vw,2.2rem);line-height:1.15}
.r10-auth-page{width:min(1080px,calc(100% - 32px));margin:0 auto;padding:36px 0 48px;display:grid;grid-template-columns:1.08fr .92fr;gap:22px;align-items:stretch}
.r10-auth-visual,.r10-auth-card{border:1px solid var(--r10p-line);border-radius:28px;box-shadow:0 16px 38px rgba(11,27,58,.07)}
.r10-auth-visual{display:flex;min-width:0;flex-direction:column;justify-content:space-between;padding:32px;overflow:hidden;background:linear-gradient(145deg,#f8fcff 0%,#eef9ff 48%,#effbf7 100%)}
.r10-auth-visual-copy h1{max-width:640px;margin:0;color:var(--r10p-navy);font-size:clamp(2rem,3.5vw,3.55rem);line-height:1.02;letter-spacing:-.04em}.r10-auth-visual-copy>p:not(.r10-polish-kicker){margin:12px 0 0;color:var(--r10p-muted);line-height:1.6}
.r10-auth-visual img{display:block;width:min(100%,520px);max-height:315px;margin:18px auto 6px;aspect-ratio:4/3;object-fit:cover;border-radius:22px;box-shadow:0 16px 36px rgba(11,27,58,.10)}
.r10-auth-trust{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.r10-auth-trust span{padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.85);color:#45617e;font-size:.8rem;font-weight:800}
.r10-auth-card{align-self:center;padding:32px;background:#fff}.r10-auth-card h2{margin:0;color:var(--r10p-navy);font-size:2rem}.r10-auth-muted{margin:8px 0 0;color:var(--r10p-muted)}
.r10-auth-error{margin-top:16px;padding:12px 14px;border:1px solid #fecaca;border-radius:12px;background:#fef2f2;color:#991b1b}
.r10-auth-form{display:grid;gap:16px;margin-top:22px}.r10-auth-field{display:grid;gap:7px}.r10-auth-field label{color:var(--r10p-navy);font-weight:800}
.r10-auth-input{width:100%;min-height:48px;box-sizing:border-box;border:1px solid #c8d7e7;border-radius:13px;padding:10px 13px;background:#f9fbfd;color:var(--r10p-text);outline:none}.r10-auth-input:focus{border-color:var(--r10p-blue);box-shadow:0 0 0 3px rgba(20,120,255,.12);background:#fff}
.r10-auth-remember{display:inline-flex;align-items:center;gap:8px;color:#4d6380;font-weight:700}.r10-auth-submit{min-height:50px;border:0;border-radius:14px;background:var(--r10p-navy);color:#fff;font-weight:900;cursor:pointer}
.r10-auth-links{display:grid;gap:12px;margin-top:18px;color:var(--r10p-muted)}.r10-auth-links a{color:var(--r10p-navy);font-weight:900}.r10-auth-links p{margin:0}
.r10-help-hero{grid-template-columns:minmax(0,1fr) minmax(320px,.75fr);background:linear-gradient(120deg,#fff 0%,#f7fbff 50%,#f5f1ff 100%)}.r10-help-hero>img{max-height:320px}
.r10-help-search{margin:0 0 24px;padding:14px;border:1px solid var(--r10p-line);border-radius:18px;background:#fff;box-shadow:0 10px 26px rgba(11,27,58,.05)}
.r10-help-section-heading h2{margin:0;color:var(--r10p-navy)}.r10-help-article{border-radius:20px;box-shadow:0 10px 25px rgba(11,27,58,.05)}
.r10-help-empty{grid-column:1/-1;display:grid;grid-template-columns:minmax(260px,.72fr) minmax(0,1fr);align-items:center;gap:28px;min-height:300px;padding:22px;border:1px solid var(--r10p-line);border-radius:26px;background:linear-gradient(120deg,#fff 0%,#f6fbff 100%)}
.r10-help-empty img{width:100%;max-height:250px;aspect-ratio:4/3;object-fit:cover;border-radius:20px}.r10-help-empty h2{margin:0 0 8px;color:var(--r10p-navy);font-size:1.75rem}.r10-help-empty p{margin:0;color:var(--r10p-muted);line-height:1.55}.r10-help-empty span{display:block;margin-top:10px;color:#71839d;font-size:.9rem}
@media(max-width:980px){.r10-pricing-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.r10-polish-hero{grid-template-columns:1fr;gap:22px}.r10-polish-hero>img{max-height:360px}.r10-auth-page{grid-template-columns:1fr}.r10-auth-visual img{max-height:280px}}
@media(max-width:640px){.ad360-public-topbar .ad360-public-brand--logo img,.ad360-public-topbar .ad360-public-header-logo img{width:154px;max-width:154px;max-height:54px}.r10-polish-hero{padding:24px 20px;border-radius:22px}.r10-polish-hero-copy h1{font-size:clamp(2rem,11vw,3rem)}.r10-polish-hero>img{max-height:260px;border-radius:18px}.r10-polish-chips{gap:6px}.r10-pricing-grid{grid-template-columns:1fr}.r10-plan-card{min-height:0}.r10-promo-strip{align-items:flex-start;flex-direction:column}.r10-polish-bottom-cta{align-items:stretch;flex-direction:column}.r10-polish-bottom-cta .r10-polish-btn{width:100%}.r10-auth-page{width:min(100% - 20px,1080px);padding-top:22px}.r10-auth-visual,.r10-auth-card{padding:22px;border-radius:22px}.r10-auth-visual img{max-height:230px}.r10-help-empty{grid-template-columns:1fr;padding:18px}.r10-help-empty img{max-height:220px}}
/* R10_PUBLIC_POLISH_PRICING_HELP_LOGIN_V100_END */

/* R10_PUBLIC_SHELL_NAVIGATION_RESPONSIVE_V100_START */
.ad360-public-topbar--marketing,
.public-topbar--marketing{
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    align-items:center;
    gap:20px;
    min-height:86px;
    padding:12px clamp(18px,3vw,42px);
    background:#fff;
    border-bottom:1px solid #dce6f2;
}
.public-topbar--marketing{flex-direction:row}
.ad360-public-logo-link{display:inline-flex;align-items:center;text-decoration:none}
.ad360-public-marketing-nav{
    min-width:0;display:flex;align-items:center;justify-content:center;
    flex-wrap:nowrap;gap:6px
}
.ad360-public-marketing-nav a{
    display:inline-flex;min-height:44px;align-items:center;justify-content:center;
    padding:0 14px;border-radius:13px;color:#0b1b3a;text-decoration:none;
    white-space:nowrap;font-size:.91rem;font-weight:900;
    transition:background .16s ease,color .16s ease,transform .16s ease
}
.ad360-public-marketing-nav a:hover,
.ad360-public-marketing-nav a:focus-visible,
.ad360-public-marketing-nav a.is-active{
    background:#eef6ff;color:#0967dc;outline:none
}
.ad360-public-marketing-nav a:hover{transform:translateY(-1px)}
.ad360-public-marketing-nav .ad360-public-marketing-login{
    margin-left:4px;padding-inline:20px;background:#0b1b3a;color:#fff
}
.ad360-public-marketing-nav .ad360-public-marketing-login:hover,
.ad360-public-marketing-nav .ad360-public-marketing-login:focus-visible,
.ad360-public-marketing-nav .ad360-public-marketing-login.is-active{
    background:#132c55;color:#fff
}
.ad360-public-context-pill,
.public-topbar--marketing .public-pill{
    display:inline-flex;min-height:34px;align-items:center;justify-content:center;
    padding:7px 12px;border-radius:999px;background:#eef3f8;color:#334b68;
    white-space:nowrap;font-size:.76rem;font-weight:900
}
.public-topbar--marketing .public-brand{display:flex;align-items:center}
.public-topbar--marketing .ad360-public-header-logo img,
.ad360-public-topbar--marketing .ad360-public-brand--logo img{
    width:176px;max-width:176px;max-height:60px;height:auto;object-fit:contain
}
.r10-home-nav{display:none}

@media(max-width:980px){
    .ad360-public-topbar--marketing,.public-topbar--marketing{gap:14px;padding-inline:18px}
    .ad360-public-marketing-nav a{padding-inline:10px;font-size:.86rem}
    .ad360-public-marketing-nav .ad360-public-marketing-login{padding-inline:15px}
}
@media(max-width:820px){
    .ad360-public-topbar--marketing,.public-topbar--marketing{
        grid-template-columns:minmax(0,1fr) auto;align-items:center;
        row-gap:10px;min-height:0;padding:12px 16px 10px
    }
    .ad360-public-marketing-nav{
        grid-column:1 / -1;grid-row:2;width:100%;padding-top:9px;
        border-top:1px solid #edf2f7;justify-content:center;flex-wrap:wrap
    }
    .ad360-public-marketing-nav a{min-height:42px;padding-inline:12px}
    .public-topbar--marketing .ad360-public-header-logo img,
    .ad360-public-topbar--marketing .ad360-public-brand--logo img{
        width:158px;max-width:158px;max-height:55px
    }
}
@media(max-width:520px){
    .ad360-public-topbar--marketing,.public-topbar--marketing{
        padding:10px 12px 9px;column-gap:8px
    }
    .public-topbar--marketing .ad360-public-header-logo img,
    .ad360-public-topbar--marketing .ad360-public-brand--logo img{
        width:142px;max-width:142px;max-height:50px
    }
    .ad360-public-context-pill,.public-topbar--marketing .public-pill{
        min-height:30px;padding:5px 9px;font-size:.69rem
    }
    .ad360-public-marketing-nav{gap:5px;padding-top:8px}
    .ad360-public-marketing-nav a{
        flex:1 1 auto;min-width:max-content;min-height:40px;
        padding:0 9px;border-radius:11px;font-size:.79rem
    }
    .ad360-public-marketing-nav .ad360-public-marketing-login{
        margin-left:0;padding-inline:13px
    }
}
/* R10_PUBLIC_SHELL_NAVIGATION_RESPONSIVE_V100_END */

/* R10_LOGIN_MOBILE_SCROLL_HOTFIX_V100_START */
@media(max-width:640px){
    html{
        height:auto!important;
        min-height:100%!important;
        overflow-y:auto!important;
    }

    body.ad360-route-login{
        height:auto!important;
        min-height:100vh!important;
        max-height:none!important;
        overflow-x:hidden!important;
        overflow-y:auto!important;
        -webkit-overflow-scrolling:touch;
    }

    body.ad360-route-login > main{
        display:block!important;
        width:100%!important;
        height:auto!important;
        min-height:0!important;
        max-height:none!important;
        overflow:visible!important;
        position:static!important;
    }

    body.ad360-route-login .r10-auth-page{
        display:grid!important;
        grid-template-columns:minmax(0,1fr)!important;
        width:calc(100% - 20px)!important;
        height:auto!important;
        min-height:0!important;
        max-height:none!important;
        margin:0 auto!important;
        padding:18px 0 28px!important;
        align-items:start!important;
        overflow:visible!important;
    }

    body.ad360-route-login .r10-auth-visual,
    body.ad360-route-login .r10-auth-card{
        width:100%!important;
        min-width:0!important;
        max-width:100%!important;
        height:auto!important;
        max-height:none!important;
    }

    body.ad360-route-login .r10-auth-card{
        align-self:stretch!important;
    }

    body.ad360-route-login .ad360-footer{
        position:static!important;
        width:100%!important;
    }
}
/* R10_LOGIN_MOBILE_SCROLL_HOTFIX_V100_END */

/* R10_LOGIN_MOBILE_SCROLL_HOTFIX_V101_SPECIFICITY_START */
@media(max-width:640px){
    /*
     * The global mobile shell uses:
     * html.ad360-mobile-shell body { height:100dvh; overflow:hidden; display:grid }
     * with !important declarations and higher specificity than the v1.0.0 login rule.
     * Override that exact shell state only for /login.
     */
    html.ad360-mobile-shell{
        height:auto!important;
        min-height:100%!important;
        max-height:none!important;
        overflow-x:hidden!important;
        overflow-y:auto!important;
    }

    html.ad360-mobile-shell body.ad360-route-login{
        display:block!important;
        grid-template-rows:none!important;
        height:auto!important;
        min-height:100dvh!important;
        max-height:none!important;
        overflow-x:hidden!important;
        overflow-y:visible!important;
    }

    html.ad360-mobile-shell body.ad360-route-login > main{
        display:block!important;
        width:100%!important;
        height:auto!important;
        min-height:0!important;
        max-height:none!important;
        overflow:visible!important;
        position:static!important;
    }

    html.ad360-mobile-shell body.ad360-route-login .r10-auth-page{
        display:grid!important;
        grid-template-columns:minmax(0,1fr)!important;
        grid-template-rows:auto auto!important;
        height:auto!important;
        min-height:0!important;
        max-height:none!important;
        overflow:visible!important;
    }

    html.ad360-mobile-shell body.ad360-route-login .ad360-footer{
        position:static!important;
        inset:auto!important;
        height:auto!important;
        min-height:0!important;
        max-height:none!important;
    }
}
/* R10_LOGIN_MOBILE_SCROLL_HOTFIX_V101_SPECIFICITY_END */

/* R10_GUEST_AUTH_FLOW_RESPONSIVE_V100_START */
/*
 * Guest authentication lifecycle:
 * - login already uses the unified marketing shell.
 * - register / password.request / password.reset now share that shell.
 * - mobile pages must stay in normal document flow instead of the
 *   global 100dvh + overflow:hidden mobile shell.
 */

body.ad360-route-password-request,
body.ad360-route-password-reset{
    background-image:
        linear-gradient(90deg,rgba(248,250,252,.97),rgba(248,250,252,.84)),
        url('/brand/current/bg-public.png')!important;
    background-size:cover!important;
    background-position:center!important;
    background-repeat:no-repeat!important;
    background-attachment:fixed
}

body.ad360-route-password-request > main,
body.ad360-route-password-reset > main{
    box-sizing:border-box;
    width:min(620px,calc(100% - 32px));
    margin:34px auto 46px;
    padding:30px;
    border:1px solid #dce6f2;
    border-radius:26px;
    background:#fff;
    color:#10203d;
    box-shadow:0 16px 38px rgba(11,27,58,.07)
}

body.ad360-route-password-request > main h1,
body.ad360-route-password-reset > main h1{
    margin:0 0 12px;
    color:#0b1b3a;
    font-size:clamp(1.9rem,4vw,2.5rem);
    line-height:1.08;
    letter-spacing:-.035em
}

body.ad360-route-password-request > main p,
body.ad360-route-password-reset > main p{
    color:#5c6f8e;
    line-height:1.55
}

body.ad360-route-password-request > main form,
body.ad360-route-password-reset > main form{
    display:grid;
    gap:12px;
    margin-top:22px
}

body.ad360-route-password-request > main input,
body.ad360-route-password-reset > main input{
    width:100%;
    min-height:48px;
    box-sizing:border-box;
    border:1px solid #c8d7e7;
    border-radius:13px;
    padding:10px 13px;
    background:#f9fbfd;
    color:#10203d;
    outline:none
}

body.ad360-route-password-request > main input:focus,
body.ad360-route-password-reset > main input:focus{
    border-color:#1478ff;
    box-shadow:0 0 0 3px rgba(20,120,255,.12);
    background:#fff
}

body.ad360-route-password-request > main button,
body.ad360-route-password-reset > main button{
    min-height:48px;
    border:0;
    border-radius:13px;
    padding:0 16px;
    background:#0b1b3a;
    color:#fff;
    font-weight:900;
    cursor:pointer
}

body.ad360-route-password-request > main a,
body.ad360-route-password-reset > main a{
    color:#0b1b3a;
    font-weight:850
}

@media(max-width:900px){
    body.ad360-route-password-request,
    body.ad360-route-password-reset{
        background-attachment:scroll
    }
}

@media(max-width:640px){
    html.ad360-mobile-shell body.ad360-route-register,
    html.ad360-mobile-shell body.ad360-route-password-request,
    html.ad360-mobile-shell body.ad360-route-password-reset{
        display:block!important;
        grid-template-rows:none!important;
        height:auto!important;
        min-height:100dvh!important;
        max-height:none!important;
        overflow-x:hidden!important;
        overflow-y:visible!important
    }

    html.ad360-mobile-shell body.ad360-route-register > main,
    html.ad360-mobile-shell body.ad360-route-password-request > main,
    html.ad360-mobile-shell body.ad360-route-password-reset > main{
        display:block!important;
        width:auto!important;
        height:auto!important;
        min-height:0!important;
        max-height:none!important;
        overflow:visible!important;
        position:static!important
    }

    html.ad360-mobile-shell body.ad360-route-register .ad360-footer,
    html.ad360-mobile-shell body.ad360-route-password-request .ad360-footer,
    html.ad360-mobile-shell body.ad360-route-password-reset .ad360-footer{
        position:static!important;
        inset:auto!important;
        width:100%!important;
        height:auto!important;
        min-height:0!important;
        max-height:none!important
    }

    body.ad360-route-password-request > main,
    body.ad360-route-password-reset > main{
        width:calc(100% - 20px)!important;
        margin:18px auto 28px!important;
        padding:22px!important;
        border-radius:22px
    }

    body.ad360-route-register > main{
        box-sizing:border-box!important;
        padding-top:18px!important;
        padding-bottom:28px!important
    }
}
/* R10_GUEST_AUTH_FLOW_RESPONSIVE_V100_END */

