:root{--bg:#f5f6fb;--panel:#fff;--ink:#171925;--muted:#7b8094;--primary:#6d4aff;--primary2:#a35cff;--line:#e9eaf2;--success:#20b486;--danger:#eb5757}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif;background:var(--bg);color:var(--ink)}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
.hidden{display:none!important}
.login-shell{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 10%,#a797ff 0,transparent 35%),linear-gradient(135deg,#151429,#28204d)}
.login-card{width:min(390px,calc(100% - 36px));padding:42px;background:rgba(255,255,255,.98);border-radius:24px;box-shadow:0 25px 80px #0d092a80;text-align:center}
.brand-mark,.logo span{display:grid;place-items:center;color:#fff;font-weight:900;background:linear-gradient(135deg,var(--primary),var(--primary2))}
.brand-mark{width:64px;height:64px;margin:auto;border-radius:20px;font-size:30px}
.login-card h1{margin:18px 0 4px}.login-card p{margin:0 0 26px;color:var(--muted)}
.login-card input{width:100%;height:48px;border:1px solid var(--line);border-radius:12px;padding:0 14px}
.login-card button,.primary{border:0;background:linear-gradient(135deg,var(--primary),var(--primary2));color:#fff;border-radius:12px;padding:12px 20px;font-weight:700}
.login-card button{width:100%;margin-top:14px}.login-card small{display:block;color:var(--muted);margin-top:14px}
.app-shell{min-height:100vh;display:grid;grid-template-columns:230px 1fr}
.sidebar{position:sticky;top:0;height:100vh;background:#171526;color:#fff;padding:26px 18px;display:flex;flex-direction:column}
.logo{display:flex;align-items:center;gap:12px;padding:0 8px 28px}.logo span{width:42px;height:42px;border-radius:13px}.logo b,.logo small{display:block}.logo small{font-size:10px;letter-spacing:3px;color:#8e8aa6;margin-top:3px}
nav{display:grid;gap:8px}.nav,.logout{border:0;color:#aaa7bb;background:transparent;text-align:left;padding:13px 14px;border-radius:11px}.nav:hover,.nav.active{color:#fff;background:linear-gradient(90deg,#6d4aff55,transparent)}.logout{margin-top:auto}
main{min-width:0;padding:0 34px 40px}header{height:102px;display:flex;justify-content:space-between;align-items:center}header small{color:var(--muted)}header h2{margin:4px 0 0}.admin-pill{background:#fff;border:1px solid var(--line);padding:10px 16px;border-radius:999px}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.stat,.panel{background:var(--panel);border:1px solid var(--line);border-radius:18px;box-shadow:0 8px 30px #25204b0a}.stat{padding:22px}.stat small{color:var(--muted)}.stat strong{display:block;font-size:30px;margin-top:10px}.panel{padding:22px;margin-top:20px}
.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.panel-head h3{margin:0}.panel-head p{margin:4px 0 0;color:var(--muted);font-size:13px}
table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:13px 10px;border-bottom:1px solid var(--line);font-size:14px}th{color:var(--muted);font-weight:600}
.tag{display:inline-flex;padding:5px 9px;border-radius:999px;background:#eeeafd;color:var(--primary);font-size:12px}.tag.ok{background:#e9fbf5;color:#138562}.tag.off{background:#f1f1f5;color:#777}
.ghost,.danger{border:1px solid var(--line);background:#fff;border-radius:9px;padding:7px 11px;margin-right:6px}.danger{color:var(--danger)}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field{display:grid;gap:7px}.field.full{grid-column:1/-1}.field label{font-size:13px;color:var(--muted)}.field input,.field textarea,.field select{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fff}.field textarea{min-height:90px;resize:vertical}
.prize-row{display:grid;grid-template-columns:1.5fr .7fr .55fr .65fr .7fr 38px;gap:8px;margin:8px 0}.prize-row input,.prize-row select{min-width:0;border:1px solid var(--line);border-radius:9px;padding:9px}.remove{border:0;border-radius:9px;color:var(--danger);background:#fff0f0}
.modal-backdrop{position:fixed;inset:0;background:#1113258c;display:grid;place-items:center;padding:24px;z-index:5}.modal{background:#fff;width:min(860px,100%);max-height:90vh;overflow:auto;border-radius:20px;padding:24px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}
#toast{position:fixed;right:24px;bottom:24px;background:#171925;color:#fff;padding:12px 18px;border-radius:10px;opacity:0;transform:translateY(12px);transition:.2s;pointer-events:none}#toast.show{opacity:1;transform:none}
.empty{padding:50px;text-align:center;color:var(--muted)}
@media(max-width:900px){.app-shell{grid-template-columns:76px 1fr}.sidebar{padding:20px 10px}.logo div,.nav{font-size:0}.nav::first-letter{font-size:20px}.logo{padding-left:7px}.stats{grid-template-columns:repeat(2,1fr)}main{padding:0 16px 30px}}
@media(max-width:600px){.stats{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.prize-row{grid-template-columns:1fr 1fr}.sidebar{display:none}.app-shell{grid-template-columns:1fr}}
