@font-face { font-family: "LoliMeow"; src: url("../assets/fonts/alimama.woff2") format("woff2"); font-display: swap; }
:root { --bg:#f8f7ff; --surface:#fff; --ink:#272727; --muted:#6f7280; --line:rgba(39,39,39,.18); --primary:#d87cff; --accent:#ff4c60; --mint:#b5f4e2; --cream:#ffd6a5; --shadow:2px 2px 0 0 var(--ink); --radius:18px; }
[data-theme="dark"] { --bg:#0e0e0e; --surface:#171717; --ink:#f8f8fb; --muted:#b9b9c6; --line:rgba(255,255,255,.18); --shadow:2px 2px 0 0 #fff; }
*{box-sizing:border-box} body{margin:0;font-family:"LoliMeow","Microsoft YaHei",system-ui,sans-serif;background:var(--bg);color:var(--ink);line-height:1.6} a{text-decoration:none;color:inherit} button,input,select{font:inherit} button{cursor:pointer}
.auth-page{min-height:100vh;display:grid;grid-template-columns:1fr 520px;background:var(--bg)}
.auth-art{position:relative;overflow:hidden;background:#202026}.auth-art img{width:100%;height:100%;object-fit:cover;opacity:.88}.auth-art::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(216,124,255,.45),rgba(0,0,0,.5))}.auth-copy{position:absolute;left:8%;right:8%;bottom:8%;z-index:2;color:#fff}.auth-copy h1{font-size:clamp(2.4rem,5vw,5rem);line-height:1;margin:0 0 18px}.gradient-text{color:transparent;background:linear-gradient(90deg,#cbfdb1,#acbff1,#efa7ec,#ffd6a5,#ffadad,#b5f4e2);background-size:700% 100%;-webkit-background-clip:text;background-clip:text;animation:gradient 12s linear infinite}
.auth-panel{display:grid;place-items:center;padding:36px}.auth-card{width:min(100%,390px);padding:30px;border:1px solid var(--ink);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.brand{display:flex;align-items:center;gap:10px;font-weight:800;margin-bottom:26px}.brand-mark{width:38px;height:38px;display:grid;place-items:center;border:2px solid var(--ink);border-radius:12px;background:linear-gradient(135deg,var(--cream),var(--primary));box-shadow:var(--shadow)}.auth-card h2{font-size:2rem;margin:0 0 8px}.muted{color:var(--muted);font-size:.92rem}.form{display:grid;gap:15px;margin-top:22px}.field{display:grid;gap:7px}.field label{font-size:.86rem}.field input,.field select{width:100%;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);padding:11px 14px;outline:0}.field input:focus,.field select:focus{border-color:var(--ink);box-shadow:var(--shadow)}.inline-row{display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:.86rem}.primary-btn,.ghost-btn,.icon-btn,.small-btn{border:1px solid var(--ink);border-radius:999px;background:var(--surface);color:var(--ink);transition:.24s cubic-bezier(.5,2.5,.7,.7)}.primary-btn{padding:11px 18px;background:var(--primary);box-shadow:var(--shadow);width:100%}.ghost-btn,.small-btn{padding:8px 13px}.icon-btn{width:38px;height:38px;display:grid;place-items:center}.primary-btn:hover,.ghost-btn:hover,.small-btn:hover,.icon-btn:hover{transform:translate(2px,2px);box-shadow:none;background:var(--accent);color:#fff}.password-wrap{position:relative}.password-wrap button{position:absolute;right:7px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:var(--muted)}.strength{height:7px;border:1px solid var(--line);border-radius:999px;overflow:hidden}.strength span{display:block;height:100%;width:0;background:var(--accent);transition:.2s}.strength.good span{width:66%;background:var(--cream)}.strength.strong span{width:100%;background:var(--mint)}
.admin-layout{min-height:100vh;display:grid;grid-template-columns:260px 1fr}.sidebar{padding:22px;border-right:1px solid var(--line);background:var(--surface);position:sticky;top:0;height:100vh}.sidebar nav{display:grid;gap:8px;margin-top:24px}.sidebar a{padding:11px 13px;border-radius:14px;color:var(--muted)}.sidebar a.active,.sidebar a:hover{background:var(--primary);color:#fff}.admin-main{padding:24px;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:24px}.topbar h1{margin:0;font-size:2rem}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.stat-card{padding:18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.stat-card strong{display:block;font-size:1.7rem}.toolbar{display:flex;gap:12px;flex-wrap:wrap;padding:16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);margin-bottom:18px}.toolbar input{flex:1;min-width:220px;border:1px solid var(--line);border-radius:999px;padding:10px 14px;background:var(--surface);color:var(--ink)}.table-card{overflow:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}table{width:100%;border-collapse:collapse;min-width:860px}th,td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--line);font-size:.92rem}th{color:var(--muted);font-weight:500}.avatar{width:42px;height:42px;border-radius:50%;object-fit:cover;border:2px solid var(--line)}.user-cell{display:flex;align-items:center;gap:10px}.badge{display:inline-flex;padding:4px 10px;border-radius:999px;font-size:.78rem;border:1px solid var(--line)}.badge.ok{background:rgba(181,244,226,.35)}.badge.warn{background:rgba(255,214,165,.45)}.badge.off{background:rgba(255,76,96,.16)}.pagination{display:flex;gap:8px;justify-content:center;margin-top:18px}.page-btn{width:34px;height:34px;border:1px solid var(--ink);border-radius:10px;background:var(--surface)}.page-btn.active{background:var(--primary);color:#fff}.toast{position:fixed;right:22px;bottom:22px;max-width:320px;padding:12px 16px;border:1px solid var(--ink);border-radius:14px;background:var(--surface);box-shadow:var(--shadow);transform:translateX(120%);transition:.3s}.toast.show{transform:translateX(0)}
@keyframes gradient{to{background-position:100% 50%}}
@media(max-width:900px){.auth-page{grid-template-columns:1fr}.auth-art{min-height:36vh}.admin-layout{grid-template-columns:1fr}.sidebar{position:static;height:auto;border-right:0;border-bottom:1px solid var(--line)}.sidebar nav{grid-template-columns:repeat(3,1fr)}.stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.auth-panel{padding:18px}.admin-main{padding:16px}.topbar{align-items:flex-start;flex-direction:column}.stats{grid-template-columns:1fr}.sidebar nav{grid-template-columns:1fr}.toolbar{flex-direction:column}.toolbar input{min-width:0;width:100%}}
