/* 字灵阁 · 运营后台（v1.0.0） */
:root{
  --bg:#0d0f1a; --bg2:#14182b; --card:#1b2138; --line:#2a3152;
  --ink:#e9e6da; --gold:#ffce6b; --jade:#5fe0c0; --muted:#8a90a8; --red:#ff6b81;
}
*{box-sizing:border-box;}
[hidden]{display:none!important;}   /* 必须：否则 .login{display:flex} 会覆盖 hidden 导致遮罩拦截点击 */
html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);
  font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased;}
body{background:radial-gradient(120% 60% at 50% -10%,#1c2140 0%,#0d0f1a 60%) fixed;min-height:100vh;}
button,input,select,textarea{font-family:inherit;}
a{color:var(--jade);}

/* 登录 */
.login{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:50;background:#0d0f1ae8;}
.login-card{width:min(400px,90vw);background:var(--card);border:1px solid var(--line);border-radius:20px;
  padding:34px 28px;text-align:center;box-shadow:0 20px 60px #0008;}
.login-logo{width:64px;height:64px;margin:0 auto 14px;border-radius:18px;display:flex;align-items:center;
  justify-content:center;font-size:34px;color:var(--gold);background:linear-gradient(160deg,#2a3160,#161b33);
  border:1px solid var(--gold);}
.login-card h1{font-size:20px;margin:0 0 8px;}
.login-card p{font-size:12px;color:var(--muted);line-height:1.7;margin:0 0 20px;}
.login-card p small{font-size:11px;opacity:.8;}
.login-card input{width:100%;background:var(--bg2);border:1px solid var(--line);border-radius:10px;
  padding:12px;color:var(--ink);font-size:14px;outline:none;}
.login-card button{width:100%;margin-top:12px;border:none;border-radius:10px;padding:12px;font-weight:800;
  background:linear-gradient(135deg,var(--gold),#ff9d4d);color:#0d0f1a;cursor:pointer;font-size:14px;}
.login-msg{margin-top:12px;font-size:12px;color:var(--red);min-height:18px;}

/* 布局 */
.wrap{max-width:1180px;margin:0 auto;padding:0 18px 40px;}
.top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 0 16px;flex-wrap:wrap;}
.brand{font-size:21px;font-weight:800;color:var(--gold);letter-spacing:1px;}
.brand small{font-size:11px;color:var(--muted);font-weight:400;margin-left:8px;letter-spacing:0;}
.meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.pill{font-size:11px;color:var(--muted);background:var(--card);border:1px solid var(--line);
  border-radius:20px;padding:5px 10px;}
.ghost{background:transparent;border:1px solid var(--line);color:var(--muted);border-radius:9px;
  padding:6px 12px;font-size:11px;cursor:pointer;}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px;}
.tabs button{background:var(--card);border:1px solid var(--line);color:var(--muted);border-radius:10px;
  padding:10px 16px;font-size:13px;cursor:pointer;}
.tabs button.active{background:linear-gradient(135deg,#ffce6b22,#5fe0c012);border-color:var(--gold);
  color:var(--gold);font-weight:800;}
.pane{display:none;}
.pane.active{display:block;}
.foot{text-align:center;color:#5b6280;font-size:11px;margin-top:30px;line-height:1.8;}

/* 通用块 */
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:14px;}
.card h2{font-size:14px;margin:0 0 12px;color:var(--gold);display:flex;align-items:center;gap:8px;}
.card h2 small{font-weight:400;color:var(--muted);font-size:11px;}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;}
.kpi{background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:12px;}
.kpi .n{font-size:22px;font-weight:800;color:var(--ink);}
.kpi .l{font-size:11px;color:var(--muted);margin-top:4px;}
.bar-row{display:flex;align-items:center;gap:10px;margin-bottom:7px;font-size:12px;}
.bar-row .name{width:130px;color:var(--muted);flex:none;}
.bar-row .bar{flex:1;height:8px;background:var(--bg2);border-radius:6px;overflow:hidden;}
.bar-row .bar i{display:block;height:100%;background:linear-gradient(90deg,var(--jade),var(--gold));}
.bar-row .num{width:52px;text-align:right;color:var(--ink);}

/* 配置 */
.cfg-group{margin-bottom:16px;}
.cfg-group .gh{font-size:13px;font-weight:800;color:var(--jade);margin:0 0 10px;
  display:flex;align-items:center;justify-content:space-between;}
.cfg-row{display:grid;grid-template-columns:minmax(180px,1.1fr) minmax(180px,1fr) 2fr;gap:10px;
  align-items:center;padding:9px 0;border-top:1px solid #ffffff08;}
.cfg-row:first-of-type{border-top:none;}
.cfg-key{font-size:12px;color:var(--ink);}
.cfg-key.custom::after{content:"已改";margin-left:6px;font-size:10px;color:var(--gold);
  background:#ffce6b18;border:1px solid #ffce6b55;border-radius:5px;padding:1px 5px;}
.cfg-input,.cfg-row select,.cfg-row input,.cfg-row textarea{width:100%;background:var(--bg2);
  border:1px solid var(--line);border-radius:9px;padding:8px 10px;color:var(--ink);font-size:12px;outline:none;}
.cfg-row textarea{min-height:76px;font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1.5;resize:vertical;}
.cfg-desc{font-size:11px;color:var(--muted);line-height:1.6;}
.cfg-desc em{font-style:normal;color:var(--jade);}
.btn{border:none;border-radius:9px;padding:9px 16px;font-size:12px;font-weight:800;cursor:pointer;
  background:linear-gradient(135deg,var(--gold),#ff9d4d);color:#0d0f1a;}
.btn.sec{background:var(--bg2);border:1px solid var(--line);color:var(--muted);}
.btn.jade{background:linear-gradient(135deg,var(--jade),#3fb0a0);}
.btn:disabled{opacity:.5;cursor:default;}
.btn-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;}
.msg{font-size:12px;margin-top:10px;line-height:1.6;}
.msg.ok{color:var(--jade);} .msg.err{color:var(--red);}

/* 表单 */
.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;}
.form-grid label{font-size:11px;color:var(--muted);display:block;margin-bottom:5px;}
.form-grid input,.form-grid select,.form-grid textarea{width:100%;background:var(--bg2);border:1px solid var(--line);
  border-radius:9px;padding:9px 10px;color:var(--ink);font-size:12px;outline:none;}
.form-grid .full{grid-column:1/-1;}
table{width:100%;border-collapse:collapse;font-size:12px;}
th,td{text-align:left;padding:9px 8px;border-bottom:1px solid #ffffff0d;}
th{color:var(--muted);font-weight:600;font-size:11px;}
td{color:var(--ink);}
.tag{display:inline-block;font-size:10px;padding:2px 7px;border-radius:6px;background:#5fe0c018;
  color:var(--jade);border:1px solid #5fe0c040;}
.tag.off{background:#ffffff08;color:var(--muted);border-color:var(--line);}
.code-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;}
.code-list span{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;background:var(--bg2);
  border:1px solid var(--line);border-radius:7px;padding:5px 8px;color:var(--gold);cursor:pointer;}
.code-list span:hover{border-color:var(--gold);}

/* AI 运营 */
.ops-status{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.ops-status .dot{width:9px;height:9px;border-radius:50%;background:var(--jade);box-shadow:0 0 10px var(--jade);}
.ops-status .dot.off{background:var(--muted);box-shadow:none;}
.decision{background:var(--bg2);border:1px solid var(--line);border-left:3px solid var(--gold);
  border-radius:10px;padding:12px;margin-bottom:10px;}
.decision .dh{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:var(--muted);margin-bottom:7px;}
.decision .diag{font-size:13px;line-height:1.7;color:var(--ink);}
.decision .push{margin-top:7px;font-size:12px;color:var(--gold);}
.decision .chg{margin-top:8px;font-size:11px;color:var(--jade);line-height:1.7;}
.hl{font-size:11px;color:var(--muted);line-height:1.7;margin-top:6px;}

.log-row{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid #ffffff08;font-size:12px;}
.log-row .t{color:var(--muted);width:140px;flex:none;font-size:11px;}
.log-row .a{color:var(--gold);width:130px;flex:none;}
.log-row .d{color:var(--muted);word-break:break-all;}

.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#000e;color:#fff;
  padding:10px 18px;border-radius:20px;font-size:12px;opacity:0;pointer-events:none;transition:.25s;z-index:99;}
.toast.show{opacity:1;}

@media(max-width:720px){
  .cfg-row{grid-template-columns:1fr;gap:5px;}
  .cfg-desc{display:none;}
  .wrap{padding:0 12px 30px;}
  .brand{font-size:17px;}
}
