:root{--blue:#33529d;--bg:#f0f2f7;--line:#e6e9f0}
*{box-sizing:border-box}
body{margin:0;font-family:"PingFang SC","Microsoft YaHei",sans-serif;background:var(--bg);color:#333;font-size:14px}
a{color:var(--blue);text-decoration:none}
.side{position:fixed;left:0;top:0;bottom:0;width:190px;background:#1f2b4d;color:#c8d2ea;overflow:auto}
.brand{padding:20px 18px 14px;font-size:18px;font-weight:700;color:#fff;border-bottom:1px solid rgba(255,255,255,.08)}
.brand small{display:block;font-size:11px;font-weight:400;color:#8fa0c9;margin-top:3px;letter-spacing:2px}
.side nav{padding:8px 0}
.side nav a{display:block;padding:11px 18px;color:#c8d2ea;font-size:13.5px;border-left:3px solid transparent}
.side nav a:hover{background:rgba(255,255,255,.05);color:#fff}
.side nav a.on{background:rgba(80,120,220,.22);color:#fff;border-left-color:#6f9bff}
.side-foot{position:sticky;bottom:0;padding:14px 18px;font-size:12px;color:#8fa0c9;background:#1f2b4d;border-top:1px solid rgba(255,255,255,.08)}
.side-foot a{color:#9db6ff}
.main{margin-left:190px;padding:0 26px 40px;min-height:100vh}
.top{display:flex;justify-content:space-between;align-items:center;padding:18px 2px;font-size:17px;font-weight:600}
.top-links a{font-size:13px;font-weight:400}
.flash{background:#e8f7ee;color:#1a9c46;border-radius:8px;padding:10px 14px;margin-bottom:14px;font-size:13px}
.flash.bad{background:#fdecec;color:#c0392b}
.card{background:#fff;border-radius:12px;padding:20px 22px;margin-bottom:18px;box-shadow:0 2px 10px rgba(40,70,140,.05)}
.card h3{margin:0 0 14px;font-size:15.5px;display:flex;justify-content:space-between;align-items:center}
.card h3.mt{margin-top:26px}
.card .add,.card .back{font-size:12.5px;font-weight:400}
.desc{color:#8a93a6;font-size:13px;line-height:1.7;margin:0 0 14px}
table.list{width:100%;border-collapse:collapse}
table.list th{text-align:left;color:#8a93a6;font-weight:500;font-size:12.5px;border-bottom:1px solid var(--line);padding:8px 6px}
table.list td{border-bottom:1px solid #f1f3f8;padding:10px 6px;font-size:13.5px;vertical-align:middle}
table.list .thumb{width:52px;height:38px;object-fit:cover;border-radius:5px;display:block}
table.list .empty{text-align:center;color:#a5adbd;padding:30px}
.badge{display:inline-block;background:#eef2fc;color:var(--blue);font-size:11px;border-radius:4px;padding:1px 6px;margin-left:6px}
.on{color:#1a9c46;font-size:12.5px}.off{color:#b0b6c3;font-size:12.5px}
.del{color:#d43c3c;margin-left:8px}
.frow{margin-bottom:16px}
.frow>label{display:block;font-size:13px;color:#5a6478;margin-bottom:6px}
.req{color:#d43c3c;font-weight:400}
.frow input[type=text],.frow input[type=number],.frow input[type=password],.frow textarea,.frow select{
  width:100%;max-width:640px;border:1px solid #dcdfe6;border-radius:8px;padding:9px 11px;font-size:13.5px;font-family:inherit;background:#fff}
.frow textarea{font-family:Consolas,Menlo,monospace;font-size:12.5px}
.tips{font-size:12px;color:#a5adbd;margin-top:4px}.tips a{margin-right:10px}
.rte-box{max-width:960px;border:1px solid #dcdfe6;border-radius:8px;overflow:hidden;background:#fff}
.rte-box .w-e-toolbar{border:0 !important;background:#f7f8fb}
.rte-box .w-e-text-container{border:0 !important}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 26px;max-width:920px}
.imgfield{display:flex;align-items:center;gap:10px;max-width:760px}
.imgfield input{flex:1}
.imgfield .preview img{width:64px;height:44px;object-fit:cover;border-radius:6px;border:1px solid var(--line)}
.upbtn{background:#eef2fc;color:var(--blue);border-radius:8px;padding:9px 14px;font-size:13px;cursor:pointer;white-space:nowrap}
.upbtn input{display:none}
.switch{display:flex;align-items:center;gap:8px;font-size:13.5px;color:#333}
.switch input{width:16px;height:16px}
.multibox{display:flex;flex-wrap:wrap;gap:6px 18px;border:1px solid #dcdfe6;border-radius:8px;padding:10px 12px;max-height:160px;overflow:auto}
.mopt{display:inline-flex;align-items:center;gap:5px;font-size:13.5px;color:#333;cursor:pointer}
.mopt input{width:15px;height:15px}
.btn{background:var(--blue);color:#fff;border:0;border-radius:8px;padding:10px 26px;font-size:14px;cursor:pointer}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px;margin-bottom:18px}
.stat{background:#fff;border-radius:12px;padding:18px;box-shadow:0 2px 10px rgba(40,70,140,.05)}
.stat b{display:block;font-size:24px;color:var(--blue)}
.stat span{font-size:12.5px;color:#8a93a6}
.pingout{background:#0f1a33;color:#9fe8b2;border-radius:8px;padding:12px 14px;font-size:12px;overflow:auto}
code{background:#f1f3f8;padding:1px 6px;border-radius:4px;font-size:12.5px}
@media (max-width:760px){.side{display:none}.main{margin-left:0}.grid2{grid-template-columns:1fr}}
