/* ==========================================================================
   FinMinion login — same design language as the dashboard template.
   Scoped to .fm-login so nothing here leaks into other pages.
   ========================================================================== */

.fm-login {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
    min-height: 100vh;
    background: var(--fm-canvas, #f3f5f9);
    font-family: var(--fm-font-body, 'DM Sans', system-ui, sans-serif);
    color: var(--fm-ink, #16283b);
}

/* ---------- Left: brand / roles ---------- */
.fm-login__visual {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 2.6rem clamp(2rem, 5vw, 4.5rem);
    color: #16283b;
    background: radial-gradient(480px 300px at 95% -8%, rgba(227, 205, 148, .75), transparent 62%),
                radial-gradient(420px 260px at 0% 110%, rgba(243, 220, 154, .65), transparent 60%),
                linear-gradient(160deg, #fffaf0, #f8ecd0 55%, #efdcae);
}

.fm-login__wave { position: absolute; inset: auto 0 0 0; width: 100%; height: 50%; z-index: -1; pointer-events: none; }

.fm-login__orb {
    position: absolute; z-index: -1; width: 240px; height: 240px; right: -70px; top: 30%;
    border-radius: 50%; pointer-events: none;
    background: radial-gradient(circle, rgba(211, 169, 66, .30), transparent 70%);
}

.fm-login__brand { display: flex; align-items: center; gap: .8rem; }
.fm-login__brand b { display: block; font: 800 1.15rem var(--fm-font-head, 'Manrope', sans-serif); color: #0b1426; }
.fm-login__brand small { color: #8a5a00; font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 700; }

.fm-login__mark {
    width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center;
    font: 800 1.05rem var(--fm-font-head, 'Manrope', sans-serif); color: #0b1426;
    background: linear-gradient(135deg, #e3cd94, #b8973f);
    box-shadow: 0 0 0 2px rgba(227, 205, 148, .7), 0 12px 28px rgba(184, 151, 63, .35);
}
.fm-login__mark--sm { width: 46px; height: 46px; font-size: .95rem; margin-bottom: 1.1rem; }

.fm-login__pitch { max-width: 470px; }
.fm-login__tag {
    display: inline-flex; align-items: center; gap: .5rem; color: #8a5a00;
    font-size: .74rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
}
.fm-login__tag i { width: 7px; height: 7px; border-radius: 50%; background: #d3a942; box-shadow: 0 0 0 4px rgba(211, 169, 66, .25); }
.fm-login__pitch h1 {
    margin: .9rem 0 .8rem; color: #0b1426; font-weight: 800; line-height: 1.15;
    font-size: clamp(1.9rem, 3.2vw, 2.6rem); font-family: var(--fm-font-head, 'Manrope', sans-serif);
}
.fm-login__pitch h1 em {
    font-style: normal; color: transparent;
    background: linear-gradient(135deg, #b8801a, #d3a942); -webkit-background-clip: text; background-clip: text;
}
.fm-login__pitch p { margin: 0; color: #5c4f2e; font-size: .95rem; }

.fm-login__roles { display: grid; gap: .7rem; margin-top: 1.7rem; }
.fm-login__role {
    display: flex; align-items: center; gap: .8rem; padding: .7rem .9rem; border-radius: 14px;
    background: rgba(255, 255, 255, .72); border: 1px solid rgba(184, 151, 63, .28);
    box-shadow: 0 6px 18px rgba(138, 90, 0, .08);
}
.fm-login__role .ic {
    width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center;
    font-size: 1.1rem; color: #241a00; background: linear-gradient(135deg, #f3dc9a, #d3a942);
}
.fm-login__role strong { display: block; font: 700 .9rem var(--fm-font-head, 'Manrope', sans-serif); color: #0b1426; }
.fm-login__role small { color: #6b5a30; font-size: .76rem; }
.fm-login__foot { color: #6b5a30; font-size: .78rem; }

/* ---------- Right: form card ---------- */
.fm-login__side { display: flex; align-items: center; justify-content: center; padding: 2rem; }

.fm-login__card {
    width: 100%; max-width: 420px; padding: 2.2rem 2rem; border-radius: 22px;
    background: var(--fm-surface, #fff); border: 1px solid var(--fm-line-solid, #e1e7f0);
    box-shadow: 0 26px 50px rgba(11, 20, 50, .12);
}
.fm-login__card h2 { margin: 0; font: 800 1.55rem var(--fm-font-head, 'Manrope', sans-serif); letter-spacing: -.02em; }
.fm-login__sub { margin: .25rem 0 1.4rem; color: var(--fm-muted, #5c7186); }

.fm-login .fm-login__google.rz-button,
.fm-login .fm-login__google {
    width: 100%; display: flex; align-items: center; justify-content: center; gap: .4rem;
    padding: .7rem; border-radius: 12px; font-weight: 600; color: var(--fm-ink, #16283b);
    background: var(--fm-surface, #fff); border: 1px solid var(--fm-line-solid, #e1e7f0); box-shadow: none;
}
.fm-login .fm-login__google:hover { border-color: #d3a942; box-shadow: 0 4px 14px rgba(211, 169, 66, .2); }

.fm-login__or {
    display: flex; align-items: center; gap: .8rem; margin: 1.2rem 0;
    color: var(--fm-soft, #8697a8); font-size: .74rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
}
.fm-login__or::before, .fm-login__or::after { content: ""; flex: 1; height: 1px; background: var(--fm-line-solid, #e1e7f0); }

.fm-login .form-label { font-size: .8rem; font-weight: 700; margin-bottom: .35rem; padding-left: 0; }
.fm-login .form-control { border-radius: 12px; padding-top: .72rem; padding-bottom: .72rem; background: #f6f8fb; }
.fm-login .form-control:focus { border-color: #d3a942; box-shadow: 0 0 0 4px rgba(211, 169, 66, .2); background: #fff; }
.fm-login .form-check-input:checked { background-color: #b8973f; border-color: #b8973f; }
.fm-login__link { color: #8a5a00; }
.fm-login__link:hover { color: #6b4400; }

.fm-login .fm-login__submit.rz-button {
    padding: .8rem; border-radius: 12px; font-weight: 700; color: #fff; border: 1px solid #0b1426;
    background: linear-gradient(135deg, #1c2d52, #0b1426); box-shadow: 0 10px 22px rgba(11, 20, 38, .28);
}
.fm-login .fm-login__submit.rz-button:hover { transform: translateY(-1px); }
.fm-login .fm-login__submit .rzi { color: #f3dc9a; }

.fm-login__legal { margin: 1.2rem 0 0; text-align: center; font-size: .76rem; color: var(--fm-soft, #8697a8); }
.fm-login__legal a { color: inherit; }

/* ---------- Responsive ---------- */
@media (max-width: 991.98px) {
    .fm-login { grid-template-columns: 1fr; grid-auto-rows: min-content; align-content: start; }
    .fm-login__visual { padding: 1.4rem 1.25rem 2.4rem; gap: 1rem; justify-content: flex-start; }
    .fm-login__pitch p, .fm-login__roles, .fm-login__foot { display: none; }
    .fm-login__pitch h1 { font-size: 1.45rem; margin: .6rem 0 0; }
    .fm-login__side { padding: 1.25rem 1rem 2rem; margin-top: -1rem; }
    .fm-login__card { padding: 1.8rem 1.4rem; }
}

/* ---------- OAuth callback ---------- */
.fm-callback { background: var(--fm-canvas, #f3f5f9); padding: 1.5rem; }
.fm-callback .spinner-border { color: #b8973f !important; }
.fm-callback__card { border-radius: 16px; }
