.account-page{
    align-items:flex-start;
    padding:30px 18px;
}

.account-shell{
    position:relative;
    z-index:2;
    width:min(1060px, 100%);
    padding:28px;
    color:#1f2933;
}

.account-heading{
    position:relative;
    z-index:1;
    margin-bottom:24px;
}

.back-link{
    display:inline-flex;
    align-items:center;
    gap:9px;
    color:var(--rosen-night-blue);
    text-decoration:none;
    font-size:14px;
    font-weight:700;
    margin-bottom:22px;
}

.back-link:hover{
    color:var(--rosen-petrol);
}

.account-title-row{
    display:flex;
    align-items:flex-start;
    gap:18px;
}

.account-title-row .login-badge-icon{
    flex:0 0 auto;
}

.account-title-row h1{
    font-size:34px;
    line-height:1.14;
    font-weight:800;
    color:#1f2933;
    margin:0 0 10px;
}

.account-stepper{
    display:flex;
    align-items:center;
    gap:12px;
    margin-top:24px;
    padding:12px;
    border:1px solid rgba(55,85,120,.16);
    border-radius:16px;
    background:rgba(255,255,255,.58);
}

.stepper-item{
    min-height:38px;
    padding:0 14px;
    border:1px solid rgba(55,85,120,.20);
    border-radius:12px;
    background:rgba(255,255,255,.70);
    color:#375578;
    cursor:pointer;
    font:inherit;
    font-size:13px;
    font-weight:800;
    transition:background .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease;
}

.stepper-item:hover,
.stepper-item.is-complete{
    color:var(--rosen-petrol);
    border-color:rgba(19,124,119,.28);
    background:rgba(255,255,255,.86);
}

.stepper-item.is-active{
    color:#fff;
    border-color:transparent;
    background:var(--rosen-login-gradient);
    box-shadow:0 10px 22px rgba(19,124,119,.18);
}

.stepper-line{
    height:2px;
    flex:1 1 46px;
    min-width:34px;
    border-radius:999px;
    background:linear-gradient(90deg, rgba(55,85,120,.24), rgba(19,124,119,.32));
}

.account-flashes{
    position:relative;
    z-index:1;
    margin-bottom:18px;
}

.account-form{
    position:relative;
    z-index:1;
    display:grid;
    gap:18px;
}

.form-section{
    border:1px solid var(--sys-border);
    border-radius:16px;
    background:rgba(255,255,255,.72);
    padding:20px;
    box-shadow:0 12px 28px rgba(55,85,120,.10);
}

.account-step{
    display:none;
}

.account-step.is-active{
    display:block;
}

.form-section h2{
    color:#263f5f;
    font-size:20px;
    line-height:1.25;
    margin:0 0 18px;
}

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

.form-field label,
.choice-panel legend{
    display:block;
    color:#375578;
    font-size:12px;
    font-weight:800;
    letter-spacing:.04em;
    text-transform:uppercase;
    margin-bottom:8px;
}

.form-field span,
.choice-panel span{
    color:var(--rosen-red);
}

.form-field input,
.form-field textarea{
    width:100%;
    border:1px solid rgba(55,85,120,.22);
    border-radius:12px;
    background:rgba(255,255,255,.86);
    color:#1f2933;
    font:inherit;
    font-size:14px;
    outline:none;
    transition:border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.form-field input{
    height:46px;
    padding:0 13px;
}

.form-field textarea{
    min-height:116px;
    resize:vertical;
    padding:12px 13px;
    line-height:1.55;
}

.form-field input:focus,
.form-field textarea:focus{
    border-color:rgba(19,124,119,.54);
    background:#fff;
    box-shadow:0 0 0 4px rgba(19,124,119,.12);
}

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

.choice-panel{
    border:1px solid rgba(55,85,120,.18);
    border-radius:14px;
    background:rgba(255,255,255,.62);
    padding:16px;
}

.choice-panel label,
.ack-list label{
    display:flex;
    align-items:flex-start;
    gap:10px;
    color:#324a68;
    font-size:14px;
    line-height:1.4;
    margin:10px 0;
}

.choice-panel input,
.ack-list input{
    width:16px;
    height:16px;
    margin-top:2px;
    accent-color:var(--rosen-petrol);
    flex:0 0 auto;
}

.ack-list{
    display:grid;
    gap:6px;
}

.form-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:14px;
    padding-top:18px;
}

.secondary-action{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:108px;
    height:48px;
    border-radius:14px;
    cursor:pointer;
    color:var(--rosen-night-blue);
    text-decoration:none;
    font:inherit;
    font-weight:800;
    border:1px solid rgba(55,85,120,.22);
    background:rgba(255,255,255,.58);
}

.secondary-action:hover{
    color:var(--rosen-petrol);
    background:rgba(255,255,255,.78);
}

.account-submit{
    width:auto;
    min-width:190px;
    height:48px;
    margin-top:0;
    font-size:16px;
}

.step-message{
    color:#b1162e;
    font-weight:700;
}

.account-success-modal{
    position:fixed;
    inset:0;
    z-index:40;
    display:none;
    align-items:center;
    justify-content:center;
    padding:22px;
    background:rgba(31,41,51,.42);
    backdrop-filter:blur(8px);
}

.account-success-modal.is-open{
    display:flex;
}

.account-success-dialog{
    position:relative;
    width:min(460px, 100%);
    border:1px solid rgba(255,255,255,.68);
    border-radius:16px;
    background:linear-gradient(145deg, rgba(255,255,255,.96), rgba(224,242,242,.94));
    box-shadow:0 24px 70px rgba(21,45,74,.28);
    padding:30px;
    text-align:center;
    color:#263f5f;
}

.account-success-close{
    position:absolute;
    top:14px;
    right:14px;
    width:34px;
    height:34px;
    border:1px solid rgba(55,85,120,.18);
    border-radius:10px;
    background:rgba(255,255,255,.72);
    color:#375578;
    cursor:pointer;
}

.account-success-close:hover{
    color:var(--rosen-petrol);
    background:#fff;
}

.account-success-icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:66px;
    height:66px;
    border-radius:18px;
    background:var(--rosen-login-gradient);
    color:#fff;
    font-size:30px;
    box-shadow:0 14px 30px rgba(19,124,119,.22);
    margin-bottom:18px;
}

.account-success-dialog h2{
    margin:0 0 10px;
    font-size:24px;
    line-height:1.2;
    color:#263f5f;
}

.account-success-dialog p{
    margin:0;
    color:#375578;
    font-size:15px;
    line-height:1.55;
}

.account-success-action{
    width:100%;
    height:46px;
    margin-top:24px;
}

@media (max-width: 760px){
    .account-shell{
        padding:20px;
    }

    .account-title-row{
        gap:14px;
    }

    .account-title-row h1{
        font-size:26px;
    }

    .account-stepper{
        align-items:stretch;
        flex-direction:column;
        gap:8px;
    }

    .stepper-line{
        display:none;
    }

    .stepper-item{
        width:100%;
    }

    .form-grid,
    .access-grid{
        grid-template-columns:1fr;
    }

    .form-section{
        padding:16px;
    }

    .form-actions{
        align-items:stretch;
        flex-direction:column-reverse;
    }

    .secondary-action,
    .account-submit{
        width:100%;
    }

    .account-success-dialog{
        padding:26px 20px 22px;
    }
}
