:root{--violet:#8c4dff;--pink:#ff2de1;--cyan:#34d8ff;--panel:rgba(7,10,22,.80);--line:rgba(141,79,255,.42)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Arial,sans-serif;background:#040610;color:#fff}body{overflow-x:hidden}
.bat-bg{position:fixed;inset:0;background:linear-gradient(rgba(3,4,14,.24),rgba(3,4,14,.82)),url('/static/batmin-command-center.png') center/cover no-repeat;z-index:-3;transform:scale(1.025)}
.bat-bg:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 38%,transparent 0 18%,rgba(4,5,16,.18) 48%,rgba(4,5,16,.88) 100%)}
.bat{position:fixed;left:-12vw;font-size:clamp(20px,3vw,46px);filter:drop-shadow(0 0 10px var(--violet));opacity:.7;z-index:-1;animation:fly linear infinite;pointer-events:none}.b1{top:14%;animation-duration:13s}.b2{top:30%;animation-duration:17s;animation-delay:-8s;transform:scale(.7)}.b3{top:67%;animation-duration:20s;animation-delay:-4s;transform:scale(.5)}.b4{top:80%;animation-duration:15s;animation-delay:-11s;transform:scale(.8)}
@keyframes fly{0%{left:-12vw;translate:0 0;rotate:-8deg}45%{translate:0 -35px;rotate:8deg}100%{left:112vw;translate:0 15px;rotate:-5deg}}
.login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{width:min(440px,94vw);padding:32px;border:1px solid var(--line);border-radius:28px;background:rgba(5,8,20,.77);backdrop-filter:blur(15px);box-shadow:0 0 80px rgba(117,50,255,.28)}
.brand{text-align:center;text-shadow:0 0 22px rgba(146,74,255,.8)}.brand h1{font-size:clamp(34px,8vw,54px);margin:0;font-weight:950;letter-spacing:2px}.brand h2{margin:4px 0 25px;color:#e3d5ff;letter-spacing:5px;font-size:15px}.neon{background:linear-gradient(90deg,#fff,var(--cyan),var(--pink));-webkit-background-clip:text;color:transparent}
label{display:block;font-size:11px;letter-spacing:1.4px;color:#b8bdd2;margin:15px 0 7px}input{width:100%;padding:14px;border:1px solid #3d4160;border-radius:12px;background:rgba(3,5,15,.9);color:#fff;font-size:16px;outline:none}input:focus{border-color:var(--violet);box-shadow:0 0 18px rgba(140,77,255,.25)}button,.vbtn{display:inline-block;border:0;border-radius:12px;padding:13px 16px;background:linear-gradient(120deg,#6332dc,#a139ff);color:#fff;font-weight:900;text-decoration:none;cursor:pointer}.login-card button{width:100%;margin-top:22px}.error{padding:11px;border-radius:10px;background:#4d1528;color:#ff9bb1}
.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:15px 20px;background:rgba(5,7,17,.82);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}.topbar strong{font-size:20px;letter-spacing:1px}.shell{max-width:1250px;margin:auto;padding:24px}.hero{padding:34px 28px;border:1px solid var(--line);border-radius:26px;background:linear-gradient(110deg,rgba(16,10,40,.9),rgba(6,12,25,.76));box-shadow:0 0 50px rgba(113,47,255,.18)}.hero h1{font-size:clamp(31px,6vw,58px);margin:0}.hero p{color:#b7bed1}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin-top:18px}.card{padding:18px;border:1px solid #303650;border-radius:18px;background:var(--panel);backdrop-filter:blur(12px)}.card .k{font-size:11px;color:#8d95aa;text-transform:uppercase}.card .v{font-size:25px;font-weight:900;margin-top:8px}.ok{color:#31e6a0}.section-title{margin:30px 0 12px}.users{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:15px}.user{padding:20px;border:1px solid #303650;border-radius:20px;background:rgba(8,12,26,.87)}.chips{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0}.chip{padding:6px 9px;border-radius:20px;background:#241743;color:#c8b3ff;font-size:11px}.chip.awg{background:#0b3935;color:#4be9d1}.actions{display:flex;gap:8px;flex-wrap:wrap}.muted{color:#939bb0}.flash{padding:12px;border-radius:12px;margin:12px 0}.flash.success{background:#103a30;color:#4ce0aa}.flash.error{background:#461927;color:#ff91a5}@media(max-width:600px){.shell{padding:13px}.hero{padding:24px 18px}.topbar{padding:12px}}

/* === BATMIN LOGIN FULLSCREEN BACKGROUND v1 === */

body {
    min-height: 100vh !important;
    background:
        linear-gradient(rgba(2,0,12,.38), rgba(8,0,20,.58)),
        url('/static/batmin-login-bg.png') center center / cover fixed no-repeat !important;
}

.bat-bg {
    display: none !important;
}

.login {
    position: relative;
    z-index: 10;
}

.login-card {
    background: rgba(4, 3, 18, .78) !important;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(177, 50, 255, .75) !important;
    box-shadow:
        0 0 22px rgba(132, 0, 255, .65),
        0 0 55px rgba(0, 110, 255, .35) !important;
}

/* На телефоне картинка должна заполнять весь экран */
@media (max-width: 700px) {
    body {
        background-position: center top !important;
        background-size: cover !important;
    }
}

