/* 运营后台样式 */
:root{
  --brand:#3B6EF6; --brand2:#7C5CFC; --ink:#1A1F2E; --sub:#6B7280; --mute:#9CA3AF;
  --line:#ECEEF3; --bg:#EDEFF4; --ok:#16A34A; --warn:#F59E0B; --danger:#EF4444;
  --card:#fff; --r:12px; --sh:0 6px 20px rgba(17,24,39,.08);
}
*{box-sizing:border-box;}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;background:var(--bg);color:var(--ink);}
.hidden{display:none!important;}
button{font-family:inherit;cursor:pointer;}

/* 登录 */
.login{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--brand),var(--brand2));}
.login-card{width:340px;background:#fff;border-radius:18px;padding:36px 30px;box-shadow:var(--sh);text-align:center;}
.login-logo{font-size:24px;font-weight:800;background:linear-gradient(135deg,var(--brand),var(--brand2));-webkit-background-clip:text;background-clip:text;color:transparent;}
.login-sub{color:var(--mute);font-size:13px;margin:6px 0 24px;}
.login-card input{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:10px;font-size:14px;margin-bottom:14px;outline:none;}
.login-card input:focus{border-color:var(--brand);}
.login-card button{width:100%;padding:12px;border:none;border-radius:10px;background:linear-gradient(135deg,var(--brand),var(--brand2));color:#fff;font-size:15px;font-weight:700;}
.lg-err{color:var(--danger);font-size:13px;min-height:18px;margin-top:8px;}
.login-tip{color:var(--mute);font-size:12px;margin-top:14px;}

/* 框架 */
.app{display:flex;min-height:100vh;}
.side{width:200px;background:#141824;color:#fff;display:flex;flex-direction:column;flex:none;}
.side-title{font-size:16px;font-weight:800;padding:22px 20px 14px;}
.side nav{flex:1;}
.nav-item{padding:14px 20px;font-size:14px;color:#aeb4c4;cursor:pointer;border-left:3px solid transparent;}
.nav-item:hover{background:#1d2333;color:#fff;}
.nav-item.active{background:#1d2333;color:#fff;border-left-color:var(--brand);}
.side-foot{padding:16px 20px;font-size:12px;color:#7e859b;}
.side-foot a{color:#9db4ff;cursor:pointer;}
.main{flex:1;display:flex;flex-direction:column;min-width:0;}
.topbar{height:56px;display:flex;align-items:center;padding:0 26px;background:#fff;border-bottom:1px solid var(--line);font-size:16px;font-weight:700;}
.content{padding:24px 26px;overflow:auto;}

/* 卡片/统计 */
.stats{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:20px;}
.stat{background:var(--card);border-radius:var(--r);padding:18px 22px;box-shadow:var(--sh);min-width:150px;flex:1;}
.stat .num{font-size:30px;font-weight:800;color:var(--brand);}
.stat .lab{font-size:13px;color:var(--sub);margin-top:4px;}
.panel{background:var(--card);border-radius:var(--r);box-shadow:var(--sh);padding:18px;}
.panel h3{margin:0 0 14px;font-size:15px;}

/* 工具栏 */
.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px;}
.toolbar select,.toolbar input{padding:8px 12px;border:1px solid var(--line);border-radius:8px;font-size:13px;outline:none;}
.toolbar input[type=text]{min-width:200px;}
.btn{padding:8px 16px;border:none;border-radius:8px;background:var(--brand);color:#fff;font-size:13px;font-weight:600;}
.btn.ghost{background:#EEF3FF;color:var(--brand);}
.btn.danger{background:#FDECEC;color:var(--danger);}
.btn.warn{background:#FFF4E0;color:var(--warn);}
.btn.ok{background:#E7F8EE;color:var(--ok);}

/* 表格 */
table{width:100%;border-collapse:collapse;font-size:13px;}
th,td{padding:11px 12px;text-align:left;border-bottom:1px solid var(--line);}
th{background:#F4F6FB;color:var(--sub);font-weight:700;}
tr:hover td{background:#FAFBFE;}
.tag{display:inline-block;padding:2px 9px;border-radius:10px;font-size:12px;}
.tag.on{background:#E7F8EE;color:var(--ok);}
.tag.off{background:#FDECEC;color:var(--danger);}
.ops a{margin-right:10px;color:var(--brand);cursor:pointer;font-size:13px;}
.ops a.del{color:var(--danger);}
.ops a.pause{color:var(--warn);}
.stars{color:var(--warn);letter-spacing:1px;}
.selected-bar{background:#EEF3FF;border:1px solid #cfe0ff;border-radius:8px;padding:8px 14px;font-size:13px;color:#2d4a9e;margin-bottom:12px;display:flex;gap:14px;align-items:center;}
.pager{margin-top:14px;font-size:13px;color:var(--sub);display:flex;gap:10px;align-items:center;}

/* Banner 网格 */
.bgrid{display:flex;gap:16px;flex-wrap:wrap;}
.bcard{width:300px;border-radius:14px;overflow:hidden;box-shadow:var(--sh);background:#fff;}
.bcard .bhead{height:120px;padding:16px;color:#fff;display:flex;flex-direction:column;justify-content:space-between;}
.bcard .bt{font-size:16px;font-weight:700;}
.bcard .bj{font-size:12px;opacity:.9;}
.bcard .bbody{padding:12px 14px;display:flex;gap:12px;align-items:center;font-size:13px;}
.bcard .bops{margin-left:auto;}
.bcard .bops a{margin-left:10px;color:var(--brand);cursor:pointer;}
.bcard .bops a.del{color:var(--danger);}

/* 弹窗 */
.modal{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;z-index:100;}
.modal-box{width:440px;max-width:92vw;background:#fff;border-radius:16px;padding:24px;box-shadow:var(--sh);max-height:88vh;overflow:auto;}
.modal-box h3{margin:0 0 16px;font-size:17px;}
.field{margin-bottom:14px;}
.field label{display:block;font-size:13px;color:var(--sub);margin-bottom:6px;}
.field input,.field select{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:8px;font-size:14px;outline:none;}
.field input:focus,.field select:focus{border-color:var(--brand);}
.field .err{color:var(--danger);font-size:12px;margin-top:4px;min-height:14px;}
.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:8px;}

/* toast */
.toast{position:fixed;left:50%;top:30px;transform:translateX(-50%);background:#1A1F2E;color:#fff;padding:10px 20px;border-radius:10px;font-size:14px;z-index:200;box-shadow:var(--sh);}
.toast.ok{background:var(--ok);}
.toast.err{background:var(--danger);}
.empty{padding:40px;text-align:center;color:var(--mute);}
