:root{
    --samco-otp-bg:#E9EBF4;
    --samco-otp-stroke:#D7D7D7;
    --samco-ink:#1C1A40;
    --samco-cta:#1C1A40;
    --samco-blue:#2669E0;
    --samco-green:#04D0AA;
    --samco-danger:#E5484D;
    --samco-html-bg:
    radial-gradient(600px 500px at 50% 10%, rgba(46, 102, 255, .35), transparent 60%),
    linear-gradient(180deg, #050A23 0%, #18358D 55%, #6885cd 100%);
}

*{ box-sizing:border-box; }
html,body{ height:100%; }
html{ background: var(--samco-html-bg); background-attachment: fixed; }
body{
    margin:0;
    font-family:"Heebo",system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
    color:#111;
    background: transparent;
}

.samco-wealth-partners-mobile-page{
    min-height:100%;
    display:flex;
    align-items:flex-start;
    justify-content:center;
    padding: 30px 18px;
}
.samco-wealth-partners-mobile-wrap{
    width: min(1200px, 100%);
    display:flex;
    flex-direction:column;
    align-items:center;
    gap: 28px;
}

.samco-wealth-partners-mobile-logo{
    width:170px;
    height:auto;
    display:block;
    margin: 0 auto;
    user-select:none;
    -webkit-user-drag:none;
}

.samco-wealth-partners-mobile-card{
    width: min(440px, 100%);
    border-radius: 30px;
    background: var(--samco-otp-bg);
    border: 1px solid var(--samco-otp-stroke);
    box-shadow: 14px 22px 52px rgba(0,0,0,.18);
    padding: 26px 22px 26px;
    text-align:center;
}

.samco-wealth-partners-mobile-ico{
    width: 100px;
    height: 100px;
    margin: 0px auto 10px;
    display:block;
    user-select:none;
    -webkit-user-drag:none;
}

.samco-wealth-partners-mobile-title{
    margin: 6px 0 14px;
    color: var(--samco-ink);
    font-size: 22px;
    font-weight: 700;
    line-height: 1.2;
}

.samco-wealth-partners-mobile-fieldrow{
    width:100%;
    display:flex;
    align-items:center;
    gap:10px;
    height: 50px;
    border-radius: 14px;
    border: 1px solid rgba(28,26,64,.12);
    background: rgba(255,255,255,.55);
    padding: 0 14px;
    transition: border-color .12s ease, background .12s ease, box-shadow .12s ease;
}
.samco-wealth-partners-mobile-fieldrow:focus-within{
    background: rgba(255,255,255,.85);
    border-color: rgba(38,105,224,.35);
    box-shadow: 0 10px 20px rgba(38,105,224,.12);
}
.samco-wealth-partners-mobile-prefix{
    color: rgba(28,26,64,.85);
    font-weight: 700;
    font-size: 16px;
    flex: 0 0 auto;
    padding-right: 10px;
    border-right: 1px solid rgba(28,26,64,.14);
    line-height: 1;
}
.samco-wealth-partners-mobile-input{
    width:100%;
    height: 48px;
    border:0;
    outline:none;
    background: transparent;
    font-size: 16px;
    font-weight: 600;
    color: var(--samco-ink);
    letter-spacing: .2px;
    font-family:"Heebo",system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
}
.samco-wealth-partners-mobile-input::placeholder{
    color: rgba(28,26,64,.45);
    font-weight: 500;
    letter-spacing: 0;
}

.samco-wealth-partners-mobile-fieldrow.samco-wealth-partners-mobile-error{
    border-color: rgba(229,72,77,.95);
    box-shadow: 0 12px 22px rgba(229,72,77,.14);
    background: rgba(255,255,255,.78);
}
.samco-wealth-partners-mobile-error-text{
    display:none;
    text-align:left;
    margin: 8px 2px 0;
    color: var(--samco-danger);
    font-weight: 700;
    font-size: 13px;
    line-height: 1.3;
}
.samco-wealth-partners-mobile-error-text.is-visible{ display:block; }

.samco-wealth-partners-mobile-consent{
    margin-top: 16px;
    display:flex;
    align-items:flex-start;
    gap: 12px;
    cursor:pointer;
    user-select:none;
    text-align:left;
}
.samco-wealth-partners-mobile-consent-input{
    position:absolute;
    opacity:0;
    width:1px;
    height:1px;
    pointer-events:none;
}
.samco-wealth-partners-mobile-consent-box{
    width: 22px;
    height: 22px;
    border-radius: 6px;
    border: 1px solid rgba(28,26,64,.22);
    background: rgba(255,255,255,.72);
    box-shadow: 0 10px 18px rgba(0,0,0,.06);
    display:grid;
    place-items:center;
    flex: 0 0 auto;
    margin-top: 1px;
    position:relative;
}
.samco-wealth-partners-mobile-consent-box::after{
    content:"";
    width: 8px;
    height: 6px;
    top:4px;
    border-left: 3px solid #2D5BFF;
    border-bottom: 3px solid #2D5BFF;
    transform: rotate(-45deg);
    opacity: 1;
    position:absolute;
}
.samco-wealth-partners-mobile-consent-text{
    color: rgba(28,26,64,.85);
    font-size: 14px;
    line-height: 1.45;
    font-weight: 600;
}
.samco-wealth-partners-mobile-consent-text a{
    color:#2D5BFF;
    text-decoration:none;
    font-weight: 800;
}
.samco-wealth-partners-mobile-consent-text a:hover{ text-decoration: underline; }

.samco-wealth-partners-mobile-consent-input:not(:checked) + .samco-wealth-partners-mobile-consent-box::after{
    opacity: 0;
}
.samco-wealth-partners-mobile-consent:focus-within .samco-wealth-partners-mobile-consent-box{
    outline: 3px solid rgba(45,91,255,.18);
    outline-offset: 3px;
}

.samco-wealth-partners-mobile-cta{
    width: 100%;
    height: 52px;
    margin-top: 18px;
    border-radius: 16px;
    border: 0;
    background: var(--samco-cta);
    color:#fff;
    font-weight: 600;
    font-size: 16px;
    cursor:pointer;
    transition: transform .12s ease, opacity .12s ease, box-shadow .12s ease;
    box-shadow: 0 14px 28px rgba(28,26,64,.18);
    font-family:"Heebo",system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
}
.samco-wealth-partners-mobile-cta:hover{ transform: translateY(-1px); box-shadow: 0 18px 34px rgba(28,26,64,.22); }
.samco-wealth-partners-mobile-cta:active{ transform: translateY(0) scale(.99); }
.samco-wealth-partners-mobile-cta:disabled{
    opacity: .45;
    cursor: not-allowed;
    transform:none;
    box-shadow:none;
}

.samco-wealth-partners-mobile-login{
    margin-top: 14px;
    color: rgba(28,26,64,.75);
    font-size: 14px;
    font-weight: 600;
    text-align:center;
}
.samco-wealth-partners-mobile-login a{
    color: #2D5BFF;
    text-decoration: none;
    font-weight: 800;
}
.samco-wealth-partners-mobile-login a:hover{ text-decoration: underline; }

/* =========================
    Modal
    ========================= */
body.samco-wealth-partners-modal-open{
    overflow:hidden;
    height:100%;
}

.samco-wealth-partners-modal{
    position: fixed;
    inset: 0;
    z-index: 9999;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .22s ease, visibility 0s linear .22s;
}

.samco-wealth-partners-modal[aria-hidden="false"]{
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition: opacity .22s ease, visibility 0s;
}

.samco-wealth-partners-otp-card{
    opacity: 0;
    transform: translateY(18px) scale(.985);
    transition: transform .26s cubic-bezier(.22,.8,.2,1), opacity .22s ease;
    will-change: transform, opacity;
}
.samco-wealth-partners-modal[aria-hidden="false"] .samco-wealth-partners-otp-card{
    opacity: 1;
    transform: translateY(0) scale(1);
}

.samco-wealth-partners-modal-backdrop{
    position:absolute;
    inset:0;
    background:#030c1780;
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
    opacity:0;
    transition:opacity .22s ease;
}
.samco-wealth-partners-modal[aria-hidden="false"] .samco-wealth-partners-modal-backdrop{ opacity:1; }

.samco-wealth-partners-modal-center{
    position:relative;
    z-index:1;
    width:100%;
    height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:18px;
}

.samco-wealth-partners-otp-card{
    position:relative;
    width:min(450px, 100%);
    border-radius:30px;
    background:var(--samco-otp-bg);
    border:1px solid var(--samco-otp-stroke);
    box-shadow:14px 22px 52px rgba(0,0,0,.18);
    padding:44px 26px 22px;

    opacity:0;
    transform:translateY(18px) scale(.985);
    transition:transform .26s cubic-bezier(.22,.8,.2,1), opacity .22s ease;
    will-change:transform, opacity;
}
.samco-wealth-partners-modal[aria-hidden="false"] .samco-wealth-partners-otp-card{
    opacity:1;
    transform:translateY(0) scale(1);
}

.samco-wealth-partners-otp-badge{
    position:absolute;
    left:50%;
    top:0;
    transform:translate(-50%, -50%);
    width:78px;
    height:78px;
    border-radius:999px;
    background:var(--samco-green);
    display:grid;
    place-items:center;
    box-shadow:0 14px 28px rgba(4,208,170,.35);
}

.samco-wealth-partners-otp-close{
    position:absolute;
    top:18px;
    right:18px;
    width:40px;
    height:40px;
    border-radius:999px;
    border:1px solid rgba(28,26,64,.12);
    background:rgba(255,255,255,.55);
    cursor:pointer;
    display:grid;
    place-items:center;
    transition:transform .12s ease, background .12s ease, border-color .12s ease;
}
.samco-wealth-partners-otp-close:hover{
    background:rgba(255,255,255,.75);
    border-color:rgba(28,26,64,.18);
    transform:scale(1.03);
}
.samco-wealth-partners-otp-close:active{ transform:scale(.98); }
.samco-wealth-partners-otp-close:focus-visible{
    outline:3px solid rgba(28,26,64,.15);
    outline-offset:3px;
}

.samco-wealth-partners-otp-title{
    margin:12px 0 16px;
    text-align:center;
    color:var(--samco-ink);
    font-size:22px;
    line-height:1.2;
    font-weight:700;
}

.samco-wealth-partners-otp-subrow{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:14px;
    flex-wrap:wrap;
    margin-bottom:16px;
    text-align:center;
}

.samco-wealth-partners-otp-subtext{
    color:rgba(28,26,64,.85);
    font-size:16px;
    font-weight:500;
}

.samco-wealth-partners-otp-edit{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:8px 10px;
    border-radius:12px;
    border:1px solid rgba(255,255,255,.9);
    background:rgba(255,255,255,.45);
    cursor:pointer;
    color:var(--samco-ink);
    font-weight:600;
    font-size:13px;
    transition:transform .12s ease, background .12s ease;
    font-family:"Heebo",system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
}
.samco-wealth-partners-otp-edit:hover{ background:rgba(255,255,255,.7); transform:translateY(-1px); }
.samco-wealth-partners-otp-edit:active{ transform:translateY(0) scale(.99); }

.samco-wealth-partners-otp-inputs{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:14px;
    margin:8px 0 18px;
}

.samco-wealth-partners-otp-input{
    width:58px;
    height:58px;
    border-radius:14px;
    border:1px solid rgba(28,26,64,.12);
    background:rgba(255,255,255,.55);
    text-align:center;
    font-size:22px;
    font-weight:600;
    color:var(--samco-ink);
    outline:none;
    transition:border-color .12s ease, background .12s ease, transform .12s ease, box-shadow .12s ease;
    caret-color:var(--samco-ink);
    font-family: "Heebo",system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
}
.samco-wealth-partners-otp-input::placeholder{
    color:rgba(28,26,64,.35);
    font-weight:700;
}
.samco-wealth-partners-otp-input:focus{
    background:rgba(255,255,255,.85);
    border-color:rgba(38,105,224,.35);
    box-shadow:0 10px 20px rgba(38,105,224,.12);
    transform:translateY(-1px);
}

.samco-wealth-partners-otp-card.samco-wealth-partners-otp-error .samco-wealth-partners-otp-input{
    border-color:rgba(229,72,77,.9);
    box-shadow:0 10px 18px rgba(229,72,77,.14);
    background:rgba(255,255,255,.78);
}
.samco-wealth-partners-otp-error-text{
    display:none;
    text-align:center;
    margin:8px 0 6px;
    color:var(--samco-danger);
    font-weight:600;
    font-size:13px;
}
.samco-wealth-partners-otp-card.samco-wealth-partners-otp-error .samco-wealth-partners-otp-error-text{ display:block; }

.samco-wealth-partners-otp-resend{
    text-align:center;
    margin:10px 0 20px;
    color:rgba(28,26,64,.78);
    font-weight:500;
    font-size:16px;
}

.samco-wealth-partners-otp-resend-actions{
    display:none;
    align-items:center;
    justify-content:center;
    gap:10px;
    flex-wrap:wrap;
    margin-top:10px;
    margin-bottom:20px;
    color:rgba(28,26,64,.78);
    font-weight:500;
    font-size:16px;
    text-align:center;
}

.samco-wealth-partners-otp-resend-actions button{
    appearance:none;
    border:0;
    background:rgba(255,255,255,.55);
    color:var(--samco-ink);
    font-weight:600;
    font-size: 16px;
    cursor:pointer;
    border: 1px solid #aeb0c9;
    padding:6px 10px;
    border-radius:10px;
    transition:background .12s ease, transform .12s ease;
    font-family: "Heebo",system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
}
.samco-wealth-partners-otp-resend-actions button:hover{ background:rgba(255,255,255,.8); transform:translateY(-1px); }
.samco-wealth-partners-otp-resend-sep{ color:rgba(28,26,64,.35); font-weight:900; display:none; }

.samco-wealth-partners-otp-cta{
    width:100%;
    height:52px;
    border-radius:16px;
    border:0;
    background:var(--samco-cta);
    color:#fff;
    font-weight:600;
    font-size:16px;
    cursor:pointer;
    transition:transform .12s ease, opacity .12s ease, box-shadow .12s ease;
    box-shadow:0 14px 28px rgba(28,26,64,.18);
    font-family:"Heebo",system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
}
.samco-wealth-partners-otp-cta:hover{ transform:translateY(-1px); box-shadow:0 18px 34px rgba(28,26,64,.22); }
.samco-wealth-partners-otp-cta:disabled{ opacity:.45; cursor:not-allowed; transform:none; box-shadow:none; }

@media (max-width:600px){
    .samco-wealth-partners-mobile-page{ padding: 28px 14px; }
    .samco-wealth-partners-modal-center{ align-items:flex-end; justify-content:center; padding:0; }
    .samco-wealth-partners-otp-card{
    width:100%;
    border-radius:28px 28px 0 0;
    padding:44px 12px 18px;
    margin:0;
    }
    .samco-wealth-partners-otp-close{ top:14px; right:14px; }
    .samco-wealth-partners-otp-input{ width:52px; height:52px; font-size:20px; }
    .samco-wealth-partners-otp-inputs{ gap:10px; }
    .samco-wealth-partners-otp-title{ font-size:20px; }
}

@media (prefers-reduced-motion: reduce){
    .samco-wealth-partners-modal,
    .samco-wealth-partners-modal-backdrop,
    .samco-wealth-partners-otp-card{
    transition:none !important;
    }
}
