*{box-sizing:border-box}
body{margin:0;background:#0c1117;color:#f5f8fa;font-family:Segoe UI,Arial,sans-serif;-webkit-font-smoothing:antialiased}
.login-shell{min-height:100svh;display:grid;place-items:center;padding:32px 20px;background:radial-gradient(ellipse at 50% 40%,#17352e45,transparent 65%)}
.login-card{width:100%;max-width:420px;padding:38px 36px 36px;border:1px solid #293a40;border-radius:18px;background:#10191ef2;box-shadow:0 24px 80px #0003}
.brand{display:block;width:230px;max-width:100%;height:110px;object-fit:contain;margin:0 auto 30px}
label{display:block;font-size:12px;font-weight:600;margin:22px 0 10px}
input{width:100%;height:50px;background:#131d25;border:1px solid #34414b;border-radius:8px;padding:0 15px;color:#fff;font:inherit;font-size:14px;outline:none}
input::placeholder{color:#82909c}
input:focus{border-color:#89cfb6;box-shadow:0 0 0 3px #80ceb51a}
.password-field{position:relative}
.password-field input{padding-right:52px}
button{cursor:pointer;font:inherit}
.password-field button{position:absolute;right:5px;top:5px;width:40px;height:40px;border:0;background:transparent;color:#b0c1ca;display:grid;place-items:center;border-radius:6px}
.password-field svg{width:21px;fill:none;stroke:currentColor;stroke-width:1.5}
.submit{margin-top:28px;width:100%;height:50px;border:1px solid #9edbc4;background:#a0dec6;color:#10251c;border-radius:8px;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:18px}
.submit:hover{background:#b9edd8}
.submit:disabled{opacity:.6;cursor:wait}
.submit span{font-size:20px}
button:focus-visible{outline:2px solid #b9edd8;outline-offset:4px}
#loginError{font-size:12px;line-height:1.6;background:#382126;color:#ffc0c0;padding:12px;border:1px solid #693640;border-radius:8px}
@media(max-width:480px){.login-shell{padding:24px 18px}.login-card{padding:28px 24px}.brand{width:210px;height:100px;margin-bottom:26px}}
