:root {
    --black: #03050a;
    --panel: #080d15;
    --panel-strong: #0b1421;
    --line: rgba(154, 185, 224, 0.18);
    --line-strong: rgba(61, 156, 255, 0.38);
    --white: #f8fbff;
    --muted: #8f9aaa;
    --blue: #0a74ff;
    --blue-dark: #0047bf;
    --blue-light: #76baff;
}

* { box-sizing: border-box; }
html { color-scheme: dark; }
body {
    min-width: 300px;
    min-height: 100vh;
    margin: 0;
    background:
        radial-gradient(circle at 14% 22%, rgba(10, 116, 255, 0.18), transparent 28rem),
        radial-gradient(circle at 90% 6%, rgba(61, 156, 255, 0.11), transparent 24rem),
        var(--black);
    color: var(--white);
    font-family: Inter, "Segoe UI", Arial, sans-serif;
}
body::before {
    position: fixed;
    inset: 0;
    z-index: -1;
    opacity: .2;
    background-image: linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
    background-size: 68px 68px;
    content: "";
    mask-image: linear-gradient(90deg, black, transparent 80%);
}
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
.login-shell { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
.login-header { border-bottom: 1px solid var(--line); background: rgba(3,5,10,.74); backdrop-filter: blur(16px); }
.login-nav { position: relative; display: flex; min-height: 86px; align-items: center; justify-content: space-between; gap: 24px; }
.login-brand { position: absolute; left: 50%; transform: translateX(-50%); }
.login-brand img { display: block; width: 185px; height: auto; }
.login-back, .login-secure { display: inline-flex; align-items: center; gap: 9px; color: #b8c6d8; font-size: .76rem; font-weight: 750; }
.login-back { padding: 10px 13px; border: 1px solid var(--line); border-radius: 999px; }
.login-back:hover { border-color: var(--line-strong); color: white; }
.login-secure i { width: 7px; height: 7px; border-radius: 50%; background: var(--blue-light); box-shadow: 0 0 12px var(--blue-light); }
.login-main { display: grid; min-height: calc(100vh - 152px); align-items: center; padding: 64px 0; }
.login-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(380px, 470px); align-items: center; gap: clamp(58px, 10vw, 150px); }
.login-presentation { max-width: 610px; }
.login-eyebrow { display: flex; align-items: center; gap: 11px; margin: 0 0 25px; color: var(--blue-light); font-size: .72rem; font-weight: 820; letter-spacing: .16em; text-transform: uppercase; }
.login-eyebrow span { width: 37px; height: 2px; background: var(--blue-light); }
.login-presentation h1 { margin: 0; font-size: clamp(3.2rem, 6vw, 6.2rem); line-height: .96; letter-spacing: -.065em; }
.login-presentation h1 strong { background: linear-gradient(96deg, #fff, var(--blue-light) 50%, var(--blue)); background-clip: text; color: transparent; -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
.login-presentation > p:not(.login-eyebrow) { max-width: 550px; margin: 30px 0; color: #9caabd; font-size: 1.02rem; line-height: 1.7; }
.login-presentation ul { display: flex; flex-wrap: wrap; gap: 12px 24px; margin: 0; padding: 0; list-style: none; color: #c5d0de; font-size: .78rem; font-weight: 700; }
.login-presentation li { display: flex; align-items: center; gap: 8px; }
.login-presentation li span { display: grid; width: 19px; height: 19px; border: 1px solid var(--line-strong); border-radius: 50%; color: var(--blue-light); font-size: .66rem; place-items: center; }
.login-access { width: 100%; }
.login-card { position: relative; padding: 42px; overflow: hidden; border: 1px solid var(--line); border-radius: 28px; background: linear-gradient(160deg, rgba(11,20,33,.98), rgba(5,9,15,.98)); box-shadow: 0 35px 110px rgba(0,0,0,.48), 0 0 70px rgba(0,73,190,.08); }
.login-card::before { position: absolute; top: -180px; right: -170px; width: 360px; height: 360px; border-radius: 50%; background: rgba(10,116,255,.15); filter: blur(30px); content: ""; }
.login-card-icon { position: relative; display: grid; width: 56px; height: 56px; margin-bottom: 26px; border: 1px solid var(--line-strong); border-radius: 17px; background: rgba(10,116,255,.1); place-items: center; }
.login-card-icon svg { width: 26px; fill: none; stroke: var(--blue-light); stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.6; }
.login-card-kicker { margin: 0 0 8px; color: var(--blue-light); font-size: .68rem; font-weight: 820; letter-spacing: .12em; text-transform: uppercase; }
.login-card h2 { margin: 0; font-size: 2rem; letter-spacing: -.045em; }
.login-card-description { margin: 10px 0 28px; color: var(--muted); font-size: .84rem; line-height: 1.6; }
.login-security-message { margin: 16px 0 0; padding: 11px 13px; border: 1px solid rgba(255,118,118,.38); border-radius: 11px; background: rgba(184,34,50,.12); color: #ffc2c8; font-size: .72rem; line-height: 1.5; }
.login-security-message.success { border-color: rgba(75,222,167,.34); background: rgba(20,135,93,.12); color: #9af0cf; }
.login-form { display: grid; gap: 18px; }
.login-admin-recovery { display: block; margin-top: 16px; color: #63b5ff; font-size: .68rem; font-weight: 750; text-align: center; text-decoration: none; }
.login-admin-recovery:hover { color: #fff; }
.login-form > label { display: grid; gap: 8px; color: #c2cedd; font-size: .72rem; font-weight: 750; }
.login-input { display: grid; min-height: 52px; grid-template-columns: auto 1fr; align-items: center; gap: 10px; padding: 0 15px; border: 1px solid var(--line); border-radius: 14px; background: rgba(2,5,9,.64); transition: border-color 180ms ease, box-shadow 180ms ease; }
.login-input:focus-within { border-color: var(--blue-light); box-shadow: 0 0 0 3px rgba(10,116,255,.12); }
.login-input svg { width: 19px; fill: none; stroke: #718096; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.5; }
.login-input input { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; color: white; }
.login-input input::placeholder { color: #566273; }
.login-options { display: flex; align-items: center; justify-content: space-between; gap: 15px; color: var(--muted); font-size: .69rem; }
.login-remember { display: flex; align-items: center; gap: 7px; cursor: pointer; }
.login-remember input { accent-color: var(--blue); }
.login-options > a { color: var(--blue-light); }
.login-submit { display: flex; min-height: 54px; align-items: center; justify-content: space-between; margin-top: 3px; padding: 0 20px; border: 0; border-radius: 14px; background: linear-gradient(110deg, var(--blue), var(--blue-dark)); color: white; cursor: pointer; font-weight: 820; box-shadow: 0 17px 38px rgba(0,71,191,.32); transition: filter 180ms ease, transform 180ms ease; }
.login-submit:hover { filter: brightness(1.12); transform: translateY(-1px); }
.login-submit span { font-size: 1.2rem; }
.login-help-links { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 12px; }
.login-help-links > a { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 11px; min-height: 74px; padding: 13px; border: 1px solid var(--line); border-radius: 16px; background: rgba(8,13,21,.72); transition: border-color 180ms ease, transform 180ms ease; }
.login-help-links > a:hover { border-color: var(--line-strong); transform: translateY(-2px); }
.login-help-links > a > span:first-child { display: grid; width: 32px; height: 32px; border-radius: 10px; background: rgba(10,116,255,.1); color: var(--blue-light); font-weight: 850; place-items: center; }
.login-help-links small, .login-help-links strong { display: block; }
.login-help-links small { margin-bottom: 3px; color: var(--muted); font-size: .61rem; }
.login-help-links strong { font-size: .72rem; }
.login-help-links b { color: var(--blue-light); font-size: .85rem; }
.login-footer { border-top: 1px solid var(--line); color: #657286; font-size: .67rem; }
.login-footer > div { display: flex; min-height: 66px; align-items: center; justify-content: space-between; gap: 20px; }

@media (max-width: 900px) {
    .login-main { align-items: start; }
    .login-layout { grid-template-columns: 1fr; gap: 50px; }
    .login-presentation { max-width: 700px; }
    .login-presentation h1 { font-size: clamp(3.2rem, 10vw, 5.6rem); }
    .login-access { max-width: 520px; }
}

@media (max-width: 600px) {
    .login-shell { width: min(100% - 24px, 1180px); }
    .login-nav { min-height: 72px; }
    .login-brand img { width: 138px; }
    .login-back { width: 38px; height: 38px; padding: 0; justify-content: center; }
    .login-back { font-size: 0; }
    .login-back span { font-size: 1rem; }
    .login-secure { font-size: 0; }
    .login-main { padding: 44px 0; }
    .login-presentation h1 { font-size: clamp(2.8rem, 14vw, 4rem); }
    .login-presentation > p:not(.login-eyebrow) { font-size: .92rem; }
    .login-presentation ul { display: grid; }
    .login-card { padding: 28px 20px; border-radius: 22px; }
    .login-help-links { grid-template-columns: 1fr; }
    .login-footer > div { align-items: flex-start; flex-direction: column; justify-content: center; }
}

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