:root {
    --rrm-accent:#ff7033;
    --ink:#253443;
    --muted:#788694;
    --border:#e3e9ed
}

* {
    box-sizing:border-box
}

html,body {
    margin:0;
    min-height:100%;
    font-family:'DM Sans',sans-serif;
    color:var(--ink)
}

body {
    background:#fff
}

a {
    text-decoration:none
}

.auth-shell {
    min-height:100vh;
    display:grid;
    grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr)
}

.auth-story {
    position:relative;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    overflow:hidden;
    padding:43px clamp(36px,5vw,90px);
    background:linear-gradient(145deg,#223444f0,#172532f7),radial-gradient(circle at 90% 70%,#ed704c 0,transparent 50%);
    color:#fff
}

.auth-story:before {
    content:'';
    position:absolute;
    right:-170px;
    top:23%;
    width:550px;
    height:550px;
    border:1px solid #ffffff19;
    border-radius:50%;
    box-shadow:0 0 0 90px #ffffff08,0 0 0 180px #ffffff05;
    pointer-events:none
}

.auth-story:after {
    content:'';
    position:absolute;
    right:5%;
    bottom:-160px;
    width:370px;
    height:370px;
    border-radius:50%;
    background:radial-gradient(circle,#ff70332b,transparent 70%);
    pointer-events:none
}

.story-top,.story-bottom {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    position:relative;
    z-index:1
}

.story-brand {
    display:flex;
    align-items:center;
    gap:13px;
    color:#fff;
    font:800 1.22rem Manrope,sans-serif
}

.story-brand img {
    max-height:44px;
    max-width:130px;
    object-fit:contain
}

.brand-icon {
    display:grid;
    place-items:center;
    background:var(--rrm-accent);
    width:42px;
    height:42px;
    border-radius:11px
}

.story-top-tag {
    border:1px solid #ffffff38;
    padding:9px 13px;
    border-radius:50px;
    font-size:.64rem;
    letter-spacing:.13em;
    font-weight:800;
    color:#dce3e8
}

.story-center {
    position:relative;
    z-index:1;
    max-width:620px;
    padding:70px 0
}

.story-kicker {
    font-size:.72rem;
    letter-spacing:.18em;
    font-weight:800;
    color:#ffbd9e
}

.story-kicker span,.overline-dot {
    display:inline-block;
    width:7px;
    height:7px;
    background:var(--rrm-accent);
    border-radius:50%;
    margin-right:9px
}

.story-center h1 {
    font:800 clamp(2.6rem,4.25vw,4.7rem)/1.12 Manrope,sans-serif;
    letter-spacing:-.065em;
    margin:25px 0
}

.story-center h1 em {
    color:#ff986b;
    font-style:normal
}

.story-center p {
    font-size:1.15rem;
    line-height:1.75;
    color:#c6d1d9;
    max-width:470px
}

.story-rule {
    height:1px;
    background:#ffffff30;
    margin:35px 0 24px;
    max-width:430px
}

.story-points {
    display:flex;
    flex-wrap:wrap;
    gap:25px;
    font-size:.8rem;
    font-weight:700;
    color:#e0e8ec
}

.story-points i {
    color:#ff986b;
    margin-right:6px
}

.story-bottom {
    font-size:.75rem;
    color:#b3c0ca
}

.story-bottom i {
    margin-left:5px
}

.auth-panel {
    display:flex;
    align-items:center;
    justify-content:center;
    padding:50px 32px;
    background:radial-gradient(ellipse at 100% 0,#fff2ec 0,transparent 38%),#fff
}

.auth-panel-inner {
    width:100%;
    max-width:420px
}

.mobile-brand {
    display:none
}

.auth-overline {
    font-size:.7rem;
    letter-spacing:.17em;
    font-weight:800;
    color:var(--rrm-accent)
}

.auth-heading h2 {
    font:800 clamp(2.2rem,3vw,3.1rem)/1.2 Manrope,sans-serif;
    letter-spacing:-.055em;
    margin:14px 0
}

.auth-heading h2 span {
    color:var(--rrm-accent)
}

.auth-heading p {
    font-size:.94rem;
    line-height:1.7;
    color:var(--muted);
    margin:0 0 35px
}

.auth-form {
    display:flex;
    flex-direction:column;
    gap:22px
}

.field label {
    display:block;
    font-size:.83rem;
    font-weight:700;
    margin-bottom:10px
}

.field-control {
    display:flex;
    align-items:center;
    border:1px solid var(--border);
    background:#fafcfd;
    border-radius:10px;
    height:55px;
    padding:0 16px;
    gap:12px;
    transition:border-color .2s,box-shadow .2s
}

.field-control:focus-within {
    border-color:var(--rrm-accent);
    box-shadow:0 0 0 3px #ff70331c;
    background:#fff
}

.field-control>i {
    font-size:1.1rem;
    color:#93a0ac
}

.field-control input {
    min-width:0;
    width:100%;
    border:0;
    background:transparent;
    outline:0;
    color:var(--ink);
    font:500 .9rem 'DM Sans',sans-serif
}

.field-control input::placeholder {
    color:#a2acb5
}

.password-toggle {
    border:0;
    background:transparent;
    color:#8997a4;
    cursor:pointer;
    padding:7px;
    font-size:1.1rem
}

.password-toggle:hover {
    color:var(--rrm-accent)
}

.auth-options {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    margin:-2px 0 6px;
    font-size:.78rem
}

.remember-option {
    display:flex;
    gap:9px;
    align-items:center;
    cursor:pointer
}

.remember-option input {
    accent-color:var(--rrm-accent);
    width:15px;
    height:15px
}

.private-note {
    color:#91a0ad
}

.private-note i {
    margin-right:4px
}

.primary-action {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    width:100%;
    border:1px solid var(--rrm-accent);
    background:var(--rrm-accent);
    color:#fff;
    border-radius:9px;
    padding:17px 20px;
    font:800 .89rem 'DM Sans',sans-serif;
    cursor:pointer;
    transition:background .2s,transform .2s
}

.primary-action:hover {
    background:#e7602b;
    color:#fff;
    transform:translateY(-1px)
}

.primary-action i {
    font-size:1.15rem
}

.back-link {
    display:inline-flex;
    align-items:center;
    gap:10px;
    margin-top:39px;
    font-size:.82rem;
    font-weight:700;
    color:#748290
}

.back-link:hover {
    color:var(--rrm-accent)
}

.form-error {
    display:flex;
    align-items:start;
    gap:11px;
    padding:14px;
    border:1px solid #f6c8c4;
    border-radius:9px;
    background:#fff5f4;
    color:#ac3434;
    font-size:.83rem
}

.account-card {
    display:flex;
    align-items:center;
    gap:14px;
    border:1px solid var(--border);
    border-radius:12px;
    background:#f8fafb;
    padding:17px;
    margin-bottom:26px
}

.account-avatar {
    width:52px;
    height:52px;
    display:grid;
    place-items:center;
    flex-shrink:0;
    border-radius:12px;
    background:var(--rrm-accent);
    color:#fff;
    font:800 1.2rem Manrope,sans-serif
}

.account-details {
    display:flex;
    flex-direction:column;
    gap:3px;
    min-width:0;
    flex:1
}

.account-details small,.account-details span {
    color:var(--muted);
    font-size:.75rem
}

.account-details strong {
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    font-size:.95rem
}

.account-check {
    color:#32a87c;
    font-size:1.3rem
}

.auth-status {
    display:flex;
    gap:13px;
    align-items:center;
    margin-bottom:20px
}

.auth-status>div:last-child {
    display:flex;
    flex-direction:column;
    gap:4px
}

.auth-status strong {
    font-size:.88rem
}

.auth-status small {
    font-size:.78rem;
    color:var(--muted)
}

.auth-spinner {
    width:24px;
    height:24px;
    border:2px solid #e2e7eb;
    border-top-color:var(--rrm-accent);
    border-radius:50%;
    animation:spin .8s linear infinite
}

.auth-progress {
    height:4px;
    background:#e8edf0;
    border-radius:5px;
    overflow:hidden;
    margin-bottom:26px
}

.auth-progress>div {
    height:100%;
    width:0;
    background:var(--rrm-accent);
    animation:fill 2.8s ease forwards
}

.fallback-action {
    margin-top:10px
}

.switch-form {
    margin-top:12px
}

.secondary-action {
    width:100%;
    border:1px solid var(--border);
    border-radius:9px;
    padding:15px;
    background:#fff;
    font:700 .84rem 'DM Sans',sans-serif;
    color:var(--ink);
    cursor:pointer
}

.secondary-action:hover {
    border-color:var(--rrm-accent);
    color:var(--rrm-accent)
}

.mobile-copyright {
    display:none
}

@keyframes spin {
    to {
        transform:rotate(360deg)
    }
}

@keyframes fill {
    to {
        width:100%
    }
}

@media(max-width:980px) {
    .auth-shell {
        grid-template-columns:1fr
    }
    .auth-story {
        display:none
    }
    .auth-panel {
        min-height:100vh;
        padding:40px 22px
    }
    .mobile-brand {
        display:flex;
        align-items:center;
        gap:11px;
        color:var(--ink);
        font:800 1.05rem Manrope,sans-serif;
        margin-bottom:70px
    }
    .mobile-brand img {
        max-height:42px;
        max-width:100px;
        object-fit:contain
    }
    .mobile-brand i {
        color:var(--rrm-accent);
        font-size:1.8rem
    }
    .mobile-copyright {
        display:block;
        color:#9daab4;
        font-size:.72rem;
        margin-top:50px
    }
    .auth-panel-inner {
        max-width:450px
    }
}

@media(max-width:440px) {
    .auth-panel {
        align-items:flex-start
    }
    .mobile-brand {
        margin-bottom:65px
    }
    .auth-heading h2 {
        font-size:2.35rem
    }
    .private-note {
        display:none
    }
}

@media(prefers-reduced-motion:reduce) {
    *,*:before,*:after {
        animation-duration:.01ms!important;
        transition-duration:.01ms!important
    }
}
