:root{color-scheme:dark;--bg:#070b10;--panel:#101923;--panel2:#0d1621;--line:#26384c;--text:#f4f8ff;--muted:#9db0c8;--blue:#2f80ed;--link:#8fc1ff;--warn:#ffcf5a;--bad:#ff6b78;--ok:#20c985}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-family:Segoe UI,Microsoft YaHei,sans-serif}a{color:var(--link);text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.center{min-height:100vh;display:grid;place-items:center;padding:16px}.box{width:min(430px,100%);background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:28px;box-shadow:0 20px 60px #0006}h1{margin:0 0 12px}.sub,.muted{color:var(--muted);line-height:1.6}label{display:block;margin:16px 0 7px;color:#c4d5e8}input,select,textarea{width:100%;border:1px solid #2b3b51;background:#071019;color:#fff;border-radius:7px;padding:10px 12px}.primary{width:100%;margin-top:20px;border:0;border-radius:7px;background:var(--blue);color:#fff;padding:11px;font-weight:800}.msg{min-height:22px;margin-top:12px;color:var(--warn)}.links{display:flex;justify-content:space-between;margin-top:14px}.wrap{padding:22px;max-width:1800px;margin:auto}.top{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:16px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:9px;overflow:auto}.head{padding:13px 15px;border-bottom:1px solid var(--line);font-weight:900}.stats{display:grid;grid-template-columns:repeat(3,minmax(150px,220px));gap:10px;margin-bottom:14px}.stat{padding:14px;background:var(--panel);border:1px solid var(--line);border-radius:9px}.stat b{display:block;font-size:25px;margin-top:4px}.grid{display:grid;grid-template-columns:minmax(700px,1.2fr) minmax(440px,.8fr);gap:14px}table{width:100%;border-collapse:collapse}th,td{padding:9px;border-bottom:1px solid #1d2a3c;text-align:left;white-space:nowrap}th{color:var(--muted);background:var(--panel2)}td button{border:1px solid #38506b;background:#142235;color:#fff;border-radius:5px;padding:5px 7px;margin:2px}.create{display:grid;grid-template-columns:1fr 1fr 90px 90px 70px;gap:8px;padding:12px;background:var(--panel2)}.plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.plan{border:1px solid var(--line);background:var(--panel);border-radius:10px;padding:20px}.price{font-size:28px;color:#f2b43c;margin:12px 0}.ok{color:var(--ok)}.bad{color:var(--bad)}@media(max-width:900px){.grid{grid-template-columns:1fr}.stats{grid-template-columns:1fr}.create{grid-template-columns:1fr}.plans{grid-template-columns:1fr}.top{align-items:flex-start;flex-direction:column}}

/* Public login: scoped so the admin and member tools retain their layout. */
.login-page{background:#0a1018}
.login-shell{min-height:100dvh;max-width:1440px;margin:auto;display:grid;grid-template-columns:1.08fr 1fr}
.login-intro{padding:56px 64px;display:flex;flex-direction:column;border-right:1px solid #25303e;background:#101b28}
.login-brand{display:flex;align-items:center;gap:12px;font-size:24px;letter-spacing:1px;font-weight:750;color:#f4f8ff;width:fit-content}
.brand-symbol{width:38px;height:38px;background:#8fbeed;color:#102133;border-radius:9px;display:grid;place-items:center;font-size:22px}
.intro-copy{margin:auto 0;padding:70px 0}.intro-label{font-size:14px;color:#92bce4;letter-spacing:3px;margin:0 0 26px}
.intro-copy h1{font-size:clamp(36px,3.6vw,52px);line-height:1.35;letter-spacing:1px;font-weight:650;margin:0 0 24px}
.intro-description{font-size:17px;color:#a9b8cb;line-height:1.9;margin:0}
.intro-features{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:40px;padding-top:24px;border-top:1px solid #2a394b;color:#c6d4e4;font-size:14px}
.intro-foot{font-size:13px;color:#7f94aa;margin:0}
.login-form-area{display:grid;place-items:center;padding:54px 48px}
.login-card{width:100%;max-width:380px}.login-heading>p{color:#8299b4;font-size:13px;letter-spacing:1px;margin:0 0 12px}.login-heading h2{font-size:30px;line-height:1.3;margin:0 0 12px;letter-spacing:1px}.login-heading{margin-bottom:32px}
.login-card label{font-size:14px;margin:20px 0 9px}.login-card input{height:50px;border-radius:8px;border:1px solid #324153;background:#0e1824;padding:0 14px;outline:none;transition:border-color .15s;min-width:0}.login-card input::placeholder{color:#6f839b}.login-card input:focus{border-color:#8fbeed;box-shadow:0 0 0 3px #8fbeed18}
.password-field{position:relative}.password-field input{padding-right:66px}.password-field button{position:absolute;right:8px;top:8px;height:34px;border:0;border-radius:5px;background:transparent;color:#a7c7e6;font-size:13px;padding:0 10px}.password-field button:hover{background:#203246}
.login-card .primary{height:50px;margin-top:28px;background:#9bc8f3;color:#0e2033;border-radius:8px;font-size:16px;font-weight:750}.login-card .primary:hover{background:#b0d6fa}.login-card .primary:disabled{opacity:.65;cursor:wait}.login-card .msg{font-size:13px;line-height:1.5;min-height:20px;margin:12px 0 0;color:#f5b47e}
.login-register{font-size:14px;color:#91a4bb;text-align:center;margin-top:14px}.login-register a{font-weight:600}.login-risk{border-top:1px solid #2a3645;padding-top:20px;margin-top:34px}.login-risk strong{display:block;font-size:13px;color:#d2b998;font-weight:600}.login-risk p{font-size:13px;line-height:1.85;color:#aebdd0;margin:7px 0 0}
.login-page button:focus-visible,.login-page a:focus-visible{outline:2px solid #9bc8f3;outline-offset:4px}
@media(max-width:800px){.login-shell{grid-template-columns:1fr;min-height:100dvh}.login-intro{padding:24px;border:0;background:transparent}.login-brand{font-size:22px}.intro-copy,.intro-foot{display:none}.login-form-area{padding:18px 24px 38px;align-items:start}.login-card{max-width:420px}.login-heading{margin-bottom:26px}.login-heading h2{font-size:28px}.login-risk{margin-top:28px}}
