:root{
  --font:'Yekan Bakh',Tahoma,sans-serif;
  --bg:#090e19;
  --panel:#121c2b;
  --panel2:#172336;
  --text:#edf3fb;
  --muted:#93a4bc;
  --line:#253348;
  --accent:#8177ff;
  --accent2:#a59cff;
  --radius:20px;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:var(--font);background:radial-gradient(900px 500px at 60% -200px,#30275044,transparent 75%),var(--bg);color:var(--text);font-size:14px;line-height:1.7}
.wrap{min-height:100vh;display:grid;place-items:center;padding:24px}
.card{width:min(420px,100%);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:28px 26px;box-shadow:0 20px 65px #0003}
.brand{display:flex;align-items:center;gap:12px;margin-bottom:22px}
.logo{width:42px;height:42px;border-radius:12px;background:linear-gradient(130deg,#9b85ff,#5c53e8);display:grid;place-items:center;color:#fff;font-size:22px}
.brand b{display:block;font-size:20px;letter-spacing:-.5px}
.brand small{color:var(--muted);font-size:11px}
h1{margin:0 0 8px;font-size:18px;font-weight:800}
p{margin:0 0 18px;color:var(--muted);font-size:12px}
label{display:block;font-size:11px;color:var(--muted);margin:0 0 6px}
input[type=password]{width:100%;background:var(--panel2);border:1px solid var(--line);border-radius:11px;padding:12px 13px;color:var(--text);outline:none;font-size:14px}
input:focus{border-color:var(--accent)}
button.primary{margin-top:18px;width:100%;border:0;border-radius:11px;padding:12px;font-weight:700;color:#fff;background:linear-gradient(135deg,#8c7dff,#685be8);cursor:pointer}
button.primary:disabled{opacity:.55;cursor:not-allowed}
.msg{margin-top:14px;font-size:11px;min-height:18px;color:#f0a5ab}
.msg.ok{color:#80d1b8}
.hint{margin-top:16px;font-size:10px;color:var(--muted);text-align:center}
.config-warn{background:#a36d1b33;border:1px solid #a36d1b88;border-radius:10px;padding:10px 12px;font-size:11px;color:#f5bd6e;margin-bottom:14px}
