/* ============ 全局 ============ */
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:-apple-system,'PingFang SC','Microsoft YaHei',sans-serif;background:#f2f3f7;color:#333;font-size:14px}
a{color:inherit;text-decoration:none}

/* ============ 导航 ============ */
.nav{background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.06);margin-bottom:20px}
.nav-inner{max-width:1100px;margin:0 auto;display:flex;align-items:center;height:52px;padding:0 16px;gap:8px}
.logo{font-weight:700;font-size:15px;margin-right:20px;white-space:nowrap}
.menu{display:flex;gap:4px;flex:1;overflow-x:auto}
.menu a{padding:6px 12px;border-radius:6px;font-size:13px;color:#555;white-space:nowrap}
.menu a:hover{background:#f0f2f5}
.menu a.on{background:#1677ff;color:#fff}
.out{font-size:13px;color:#e74c3c;white-space:nowrap}
.main{max-width:1100px;margin:0 auto;padding:0 16px 40px}
.page-title{font-size:20px;font-weight:700;margin-bottom:16px}

/* ============ 面板/卡片 ============ */
.panel{background:#fff;border-radius:10px;box-shadow:0 1px 4px rgba(0,0,0,.05);padding:18px;margin-bottom:16px;overflow-x:auto}
.panel-h{font-weight:700;font-size:15px;margin-bottom:14px;display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px}
.stat{background:#fff;border-radius:10px;box-shadow:0 1px 4px rgba(0,0,0,.05);padding:18px;text-align:center}
.stat .num{font-size:22px;font-weight:700;color:#1677ff;word-break:break-all}
.stat .lbl{color:#999;font-size:12px;margin-top:6px}

/* ============ 表格 ============ */
.tbl{width:100%;border-collapse:collapse;font-size:13px}
.tbl th{background:#fafafa;color:#666;font-weight:600;text-align:left;padding:10px 10px;border-bottom:1px solid #eee;white-space:nowrap}
.tbl td{padding:10px;border-bottom:1px solid #f2f2f2;vertical-align:middle}
.tbl tr:hover td{background:#fafcff}
.empty{text-align:center;color:#bbb;padding:30px 0!important}
.cut{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ops{white-space:nowrap}
.ops .lnk{margin-right:8px}
.lnk{color:#1677ff;font-size:13px}
.lnk:hover{text-decoration:underline}
.lnk.red{color:#e74c3c}
.lnk.on{font-weight:700}
code.key{background:#f4f5f7;padding:2px 6px;border-radius:4px;font-size:12px;word-break:break-all;color:#c0392b}

.tag{display:inline-block;padding:2px 8px;border-radius:10px;font-size:12px;white-space:nowrap}
.tag.s0{background:#fdeaea;color:#e74c3c}
.tag.s1{background:#e8f7ee;color:#27ae60}
.tag.s2{background:#f2f3f5;color:#999}

.pager{margin-top:14px;display:flex;gap:6px;flex-wrap:wrap}
.pager a,.pager b{padding:5px 10px;border:1px solid #e5e6eb;border-radius:6px;font-size:13px}
.pager b{background:#1677ff;color:#fff;border-color:#1677ff}
.pager a:hover{border-color:#1677ff;color:#1677ff}

/* ============ 表单 ============ */
.frm .frow{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}
.frm label{color:#555;font-size:13px;min-width:110px}
.ipt,select{padding:9px 12px;border:1px solid #dcdfe6;border-radius:6px;font-size:14px;outline:none;background:#fff}
.ipt:focus,select:focus{border-color:#1677ff}
small{color:#999}
.btn{display:inline-block;padding:9px 20px;background:#1677ff;color:#fff;border:0;border-radius:6px;font-size:14px;cursor:pointer}
.btn:hover{opacity:.9}
.btn.sm{padding:5px 12px;font-size:13px}
.btn.gray{background:#909399}
.btn.warn{background:#e6a23c}
.btn.danger{background:#e74c3c}
.search{margin-bottom:14px;display:flex;gap:8px;flex-wrap:wrap}
.tip{color:#999;font-size:12px;margin-top:12px;line-height:1.8}
.tip-inline{font-weight:400;font-size:12px;color:#999;margin-left:8px}
.tip code{background:#f4f5f7;padding:2px 6px;border-radius:4px}

.alert{padding:10px 14px;border-radius:6px;margin-bottom:14px;font-size:13px}
.alert.err{background:#fdeaea;color:#c0392b}
.alert.ok{background:#e8f7ee;color:#27ae60}

/* ============ 登录页 ============ */
.login-page{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2)}
.login-box{background:#fff;border-radius:14px;padding:36px 32px;width:360px;box-shadow:0 10px 40px rgba(0,0,0,.2)}
.login-box h2{font-size:18px;text-align:center;margin-bottom:22px;color:#333}
.login-box .ipt{width:100%;margin-bottom:14px}
.login-box .btn{width:100%}
.login-tip{color:#999;font-size:12px;text-align:center;margin-top:14px}
