:root {
  --bg:#05070d;
  --panel:#111827;
  --panel2:#172033;
  --line:#34405f;
  --text:#eef3ff;
  --muted:#9da9c3;
  --gold:#d8ac4f;
  --gold2:#fff1a8;
  --blue:#3aa7ff;
  --green:#38d07f;
  --red:#ff5b6b;
}
*{box-sizing:border-box}
body{margin:0;font-family:Arial,"Microsoft YaHei",sans-serif;background:var(--bg);color:var(--text)}
a{color:inherit;text-decoration:none}
.topbar{height:62px;display:flex;align-items:center;justify-content:space-between;padding:0 28px;background:#11182a;border-bottom:1px solid var(--line)}
.brand{font-weight:800;color:var(--gold);letter-spacing:1px}
.nav{display:flex;gap:12px;align-items:center}
.nav a,.btn{border:1px solid var(--line);background:var(--panel2);color:var(--text);padding:9px 14px;border-radius:8px;cursor:pointer}
.nav a.active,.btn.primary{background:var(--gold);color:#101010;border-color:var(--gold);font-weight:700}
.btn.green{background:var(--green);border-color:var(--green);color:#07120b}
.btn.red{background:var(--red);border-color:var(--red)}
.wrap{max-width:1280px;margin:0 auto;padding:24px}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:20px;box-shadow:0 18px 50px rgba(0,0,0,.25)}
.narrow{max-width:460px}
.page-center{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
h1,h2{margin:0 0 18px}
.muted{color:var(--muted);font-size:13px}
.grid{display:grid;gap:16px}
.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.form-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;align-items:end}
label{display:block;color:var(--muted);font-size:12px;margin-bottom:6px}
input,textarea,select{width:100%;background:#0d1424;border:1px solid var(--line);border-radius:8px;color:var(--text);padding:10px}
textarea{min-height:42px;resize:vertical}
table{width:100%;border-collapse:collapse;margin-top:16px}
th,td{border-bottom:1px solid var(--line);padding:10px;text-align:left;vertical-align:top}
th{color:var(--muted);font-size:13px;background:#101827}
.code{font-family:Consolas,monospace;font-size:12px;word-break:break-all;color:#d8e7ff}
.status{display:inline-block;padding:4px 8px;border-radius:999px;font-size:12px}
.active{background:rgba(56,208,127,.15);color:var(--green)}
.warning{background:rgba(216,172,79,.18);color:var(--gold)}
.expired,.unpaid{background:rgba(255,91,107,.15);color:var(--red)}
.alert{padding:10px 12px;border-radius:8px;margin:10px 0}
.alert.ok{background:rgba(56,208,127,.14);color:var(--green)}
.alert.danger{background:rgba(255,91,107,.14);color:var(--red)}
.kpi{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:16px}
.kpi .num{font-size:28px;font-weight:800;margin-top:6px}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.68);display:none;align-items:center;justify-content:center;padding:20px}
.modal.show{display:flex}
.modal-card{width:420px;max-width:100%;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:20px}
#qrBox{display:flex;justify-content:center;align-items:center;min-height:230px;background:white;border-radius:8px;margin:14px 0;padding:12px}
.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:end;margin-bottom:14px}
.chart{height:320px;background:var(--panel2);border:1px solid var(--line);border-radius:10px}
.chart-large{height:380px}
.renew-wrap{max-width:820px}
.renew-search{margin-top:18px}
.search-line{display:grid;grid-template-columns:1fr auto;gap:10px}
.empty-state{margin-top:18px;padding:18px;border:1px dashed var(--line);border-radius:10px;color:var(--muted);background:#101827}
.renew-results{display:grid;gap:12px;margin-top:18px}
.renew-card{display:grid;grid-template-columns:1fr auto auto;gap:14px;align-items:center;background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:14px}
.renew-user{font-weight:800;font-size:17px}
.renew-account{color:var(--muted);font-family:Consolas,monospace;margin-top:4px}
.renew-meta{display:flex;gap:10px;align-items:center;color:var(--muted);font-size:13px;white-space:nowrap}
@media(max-width:900px){.grid.cols-4,.form-grid{grid-template-columns:1fr}.topbar{padding:0 14px}.wrap{padding:14px}table{font-size:13px}}
@media(max-width:640px){
  .topbar{height:auto;min-height:56px}
  .brand{font-size:15px}
  .nav a{padding:7px 10px;font-size:13px}
  .panel{padding:16px;border-radius:8px}
  .search-line{grid-template-columns:1fr}
  .search-line .btn{width:100%;padding:12px}
  input,textarea,select{font-size:16px}
  .renew-card{grid-template-columns:1fr;gap:10px}
  .renew-card .btn{width:100%;padding:12px}
  .renew-meta{justify-content:space-between;white-space:normal}
  .modal-card{width:100%;border-radius:10px}
}

/* ===== Dashboard 重构 v2 · 金貔貅盈亏大屏 ===== */
.dashboard-page{
  min-height:100vh;
  color:var(--text);
  background:
    radial-gradient(1200px 600px at 85% -10%, rgba(216,172,79,.16), transparent 60%),
    radial-gradient(900px 500px at -10% 110%, rgba(66,140,255,.10), transparent 60%),
    linear-gradient(180deg, #0a1020 0%, #070a14 100%);
  background-attachment:fixed;
}
.dashboard-topbar{
  position:sticky; top:0; z-index:20;
  height:68px;
  padding:0 32px;
  background:linear-gradient(90deg, rgba(10,14,26,.92), rgba(18,24,42,.88));
  border-bottom:1px solid rgba(216,172,79,.32);
  box-shadow:0 6px 24px rgba(0,0,0,.45);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.brand-with-logo{display:flex;align-items:center;gap:14px}
.brand-with-logo img{
  width:42px;height:42px;
  object-fit:contain;
  border-radius:50%;
  background:radial-gradient(circle at 30% 30%, #2a2010, #0d0a05);
  border:1px solid rgba(255,225,138,.55);
  box-shadow:0 0 0 3px rgba(216,172,79,.10), 0 0 18px rgba(216,172,79,.35);
  padding:3px;
}
.brand-with-logo span{display:flex;flex-direction:column;line-height:1.15}
.brand-with-logo b{
  font-size:19px;letter-spacing:2px;
  background:linear-gradient(90deg,#ffe9a8,#d8ac4f 60%,#ffe9a8);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}
.brand-with-logo small{color:#7d8bab;font-size:10px;letter-spacing:3px;margin-top:3px}
.dashboard-page .nav{gap:6px}
.dashboard-page .nav a{
  background:transparent;
  border:1px solid transparent;
  color:#aab4cc;
  padding:8px 14px;
  border-radius:6px;
  font-size:14px;
  transition:all .2s ease;
}
.dashboard-page .nav a:hover{
  color:#fff1a8;
  background:rgba(216,172,79,.08);
  border-color:rgba(216,172,79,.22);
}
.dashboard-page .nav a.active{
  background:linear-gradient(135deg,#ffe18a,#d8ac4f);
  color:#1a1208;
  border-color:#ffe18a;
  font-weight:700;
  box-shadow:0 4px 14px rgba(216,172,79,.32);
}
.dashboard-page .btn.primary{
  background:linear-gradient(135deg,#ffe18a,#d8ac4f);
  color:#1a1208;
  border:1px solid #ffe18a;
  font-weight:700;
  height:42px;
  padding:0 22px;
  border-radius:8px;
  letter-spacing:1px;
  cursor:pointer;
  transition:all .2s;
}
.dashboard-page .btn.primary:hover{
  transform:translateY(-1px);
  box-shadow:0 8px 22px rgba(216,172,79,.35);
}

/* 布局 */
.dashboard-page .wrap{max-width:1500px;padding:24px 28px 40px}
.dashboard-page .panel{
  position:relative;
  background:linear-gradient(180deg, #141b2e 0%, #0e1422 100%);
  border:1px solid rgba(216,172,79,.18);
  border-radius:12px;
  box-shadow:0 12px 32px rgba(0,0,0,.4);
  overflow:hidden;
}
.dashboard-page .panel::before{
  content:"";
  position:absolute; left:0; top:0; right:0; height:2px;
  background:linear-gradient(90deg, transparent, rgba(216,172,79,.7), transparent);
}
.dashboard-hero{padding:22px 24px}

/* 筛选栏 */
.dashboard-page .toolbar{
  display:grid;
  grid-template-columns:repeat(4, minmax(140px,1fr)) auto;
  gap:14px;
  align-items:end;
  margin:0 0 22px;
  padding-bottom:20px;
  border-bottom:1px dashed rgba(216,172,79,.18);
}
.dashboard-page label{color:#8b95b0;font-size:12px;letter-spacing:.5px;margin-bottom:6px}
.dashboard-page input,.dashboard-page select{
  height:40px;
  background:#0a1020;
  border:1px solid rgba(255,255,255,.08);
  color:#eef3ff;
  border-radius:8px;
  padding:0 12px;
  font-size:14px;
  transition:border-color .2s, box-shadow .2s;
}
.dashboard-page input:focus,.dashboard-page select:focus{
  outline:none;
  border-color:#d8ac4f;
  box-shadow:0 0 0 3px rgba(216,172,79,.15);
}

/* KPI 卡片 */
.dashboard-page .grid.cols-4{gap:16px}
.dashboard-page .metric-card{
  position:relative;
  min-height:124px;
  padding:20px 22px;
  border-radius:12px;
  background:linear-gradient(160deg, #1a2238 0%, #0e1422 100%);
  border:1px solid rgba(216,172,79,.20);
  overflow:hidden;
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.dashboard-page .metric-card::before{
  content:"";
  position:absolute; left:0; top:14px; bottom:14px; width:3px;
  background:linear-gradient(180deg, #ffe18a, #d8ac4f);
  border-radius:2px;
}
.dashboard-page .metric-card::after{
  content:"";
  position:absolute; right:-40px; top:-40px;
  width:140px; height:140px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(216,172,79,.10), transparent 70%);
  pointer-events:none;
}
.dashboard-page .metric-card:hover{
  transform:translateY(-3px);
  border-color:rgba(255,225,138,.45);
  box-shadow:0 14px 34px rgba(0,0,0,.5), 0 0 0 1px rgba(255,225,138,.08);
}
.dashboard-page .metric-card .muted{
  color:#8b95b0;
  font-size:13px;
  letter-spacing:.5px;
  margin-bottom:10px;
}
.dashboard-page .metric-card .num{
  font-size:32px;
  font-weight:800;
  font-family:"DIN Alternate","Segoe UI",-apple-system,sans-serif;
  letter-spacing:.5px;
  line-height:1.1;
  color:#f4f8ff;
  text-shadow:0 2px 8px rgba(0,0,0,.4);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.dashboard-page .metric-card .metric-note{
  margin-top:8px;
  color:#5d6781;
  font-size:11.5px;
  letter-spacing:.3px;
}
.dashboard-page .metric-card.pos .num{color:#3ddc97;text-shadow:0 0 16px rgba(61,220,151,.25)}
.dashboard-page .metric-card.neg .num{color:#ff6d7c;text-shadow:0 0 16px rgba(255,109,124,.25)}
.dashboard-page .metric-card.balance .num{color:#fff1a8;text-shadow:0 0 16px rgba(255,241,168,.25)}

/* 四卡主题色 · 差异化 */
/* 1. 账号数 · 紫蓝 */
.dashboard-page .metric-card.k-accounts{
  background:linear-gradient(160deg, rgba(124,92,255,.18) 0%, #141b2e 55%, #0e1422 100%);
  border-color:rgba(155,124,255,.35);
}
.dashboard-page .metric-card.k-accounts::before{background:linear-gradient(180deg,#b29bff,#7c5cff)}
.dashboard-page .metric-card.k-accounts::after{background:radial-gradient(circle, rgba(124,92,255,.22), transparent 70%)}
.dashboard-page .metric-card.k-accounts:hover{border-color:rgba(178,155,255,.65);box-shadow:0 14px 34px rgba(0,0,0,.5),0 0 0 1px rgba(178,155,255,.18)}
.dashboard-page .metric-card.k-accounts .num{color:#cdb8ff;text-shadow:0 0 16px rgba(124,92,255,.35)}

/* 2. 已实现盈亏 · 翠绿 */
.dashboard-page .metric-card.k-realized{
  background:linear-gradient(160deg, rgba(57,217,138,.16) 0%, #121e22 55%, #0e1422 100%);
  border-color:rgba(57,217,138,.32);
}
.dashboard-page .metric-card.k-realized::before{background:linear-gradient(180deg,#7af0b5,#39d98a)}
.dashboard-page .metric-card.k-realized::after{background:radial-gradient(circle, rgba(57,217,138,.22), transparent 70%)}
.dashboard-page .metric-card.k-realized:hover{border-color:rgba(122,240,181,.65);box-shadow:0 14px 34px rgba(0,0,0,.5),0 0 0 1px rgba(122,240,181,.18)}

/* 3. 浮动盈亏 · 青蓝 */
.dashboard-page .metric-card.k-floating{
  background:linear-gradient(160deg, rgba(66,184,255,.16) 0%, #121e2a 55%, #0e1422 100%);
  border-color:rgba(66,184,255,.32);
}
.dashboard-page .metric-card.k-floating::before{background:linear-gradient(180deg,#9bdcff,#42b8ff)}
.dashboard-page .metric-card.k-floating::after{background:radial-gradient(circle, rgba(66,184,255,.22), transparent 70%)}
.dashboard-page .metric-card.k-floating:hover{border-color:rgba(155,220,255,.65);box-shadow:0 14px 34px rgba(0,0,0,.5),0 0 0 1px rgba(155,220,255,.18)}

/* 4. 真实余额 · 黄金 */
.dashboard-page .metric-card.k-balance{
  background:linear-gradient(160deg, rgba(255,225,138,.18) 0%, #1c1a16 55%, #0e1422 100%);
  border-color:rgba(255,225,138,.45);
}
.dashboard-page .metric-card.k-balance::before{background:linear-gradient(180deg,#ffe18a,#d8ac4f)}
.dashboard-page .metric-card.k-balance::after{background:radial-gradient(circle, rgba(255,225,138,.26), transparent 70%)}
.dashboard-page .metric-card.k-balance:hover{border-color:rgba(255,225,138,.85);box-shadow:0 14px 34px rgba(0,0,0,.5),0 0 0 1px rgba(255,225,138,.22)}

/* 图表面板 */
.dashboard-page .chart-panel{
  margin-top:20px;
  padding:20px 22px 22px;
}
.dashboard-page .main-chart-panel h2,
.dashboard-page .table-panel h2{
  font-size:16px;
  font-weight:700;
  letter-spacing:1px;
  color:#fff1a8;
  margin:0 0 14px;
  padding-left:12px;
  border-left:3px solid #d8ac4f;
}
.dashboard-page .chart-large{height:380px;background:transparent;border:none}
.dashboard-page .chart{
  background:transparent;
  border:none;
  border-radius:10px;
  height:320px;
}
.dashboard-chart-grid{margin-top:20px;grid-template-columns:1fr 1fr;gap:18px}
.dashboard-chart-grid .chart-panel{
  position:relative;
  margin-top:0;
  padding:18px 18px 16px;
  background:linear-gradient(180deg, #141b2e 0%, #0e1422 100%);
  border:1px solid rgba(216,172,79,.18);
  border-radius:12px;
  box-shadow:0 12px 32px rgba(0,0,0,.4);
  overflow:hidden;
}
.dashboard-chart-grid .chart-panel::before{
  content:"";
  position:absolute; left:0; top:0; right:0; height:2px;
  background:linear-gradient(90deg, transparent, rgba(216,172,79,.7), transparent);
}
.dashboard-chart-grid .chart-panel.chart{height:340px}
.dashboard-chart-grid .chart-panel#dailyChart::after,
.dashboard-chart-grid .chart-panel#floatingChart::after{
  content:"";
  position:absolute; right:-40px; top:-40px;
  width:140px; height:140px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(216,172,79,.06), transparent 70%);
  pointer-events:none;
}
/* 表格 */
.dashboard-page .table-panel{margin-top:20px;padding:22px 24px 24px}
.dashboard-page .data-table{
  margin-top:0;
  border-collapse:separate;
  border-spacing:0;
  font-size:13.5px;
}
.dashboard-page .data-table th{
  background:linear-gradient(90deg, rgba(216,172,79,.14), rgba(216,172,79,.04));
  color:#fff1a8;
  font-size:12.5px;
  font-weight:600;
  letter-spacing:.5px;
  padding:12px 14px;
  border-bottom:1px solid rgba(216,172,79,.28);
  text-align:left;
  white-space:nowrap;
}
.dashboard-page .data-table td{
  background:transparent;
  padding:12px 14px;
  border-bottom:1px solid rgba(255,255,255,.04);
  color:#d8e0f0;
}
.dashboard-page .data-table tbody tr:nth-child(even) td{background:rgba(255,255,255,.015)}
.dashboard-page .data-table tbody tr:hover td{
  background:rgba(216,172,79,.07);
  color:#fff;
}
.dashboard-page .data-table .pos{color:#3ddc97;font-weight:600}
.dashboard-page .data-table .neg{color:#ff6d7c;font-weight:600}
.dashboard-page .data-table .flat{color:#aab4cc}
.ea-status{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-width:104px;
  padding:5px 10px;
  border-radius:999px;
  border:1px solid transparent;
  font-size:12px;
  white-space:nowrap;
}
.ea-status::before{
  content:"";
  width:8px;height:8px;
  border-radius:50%;
  flex:0 0 auto;
}
.ea-status b{font-size:13px}
.ea-status small{font-size:11px;color:rgba(238,243,255,.72)}
.ea-status.online{
  color:#3ddc97;
  background:rgba(61,220,151,.12);
  border-color:rgba(61,220,151,.35);
}
.ea-status.online::before{
  background:#3ddc97;
  box-shadow:0 0 10px #3ddc97;
}
.ea-status.offline{
  color:#ff6d7c;
  background:rgba(255,109,124,.12);
  border-color:rgba(255,109,124,.36);
}
.ea-status.offline::before{
  background:#ff6d7c;
  box-shadow:0 0 10px #ff6d7c;
}

/* 响应式 */
@media(max-width:1100px){
  .dashboard-page .toolbar{grid-template-columns:repeat(2, 1fr) auto}
  .dashboard-page .grid.cols-4{grid-template-columns:repeat(2, 1fr)}
  .dashboard-chart-grid{grid-template-columns:1fr}
}
@media(max-width:640px){
  .dashboard-topbar{height:auto;padding:12px 16px;flex-wrap:wrap;gap:10px}
  .brand-with-logo img{width:36px;height:36px}
  .brand-with-logo b{font-size:16px;letter-spacing:1px}
  .brand-with-logo small{font-size:9px;letter-spacing:2px}
  .dashboard-page .nav a{padding:6px 10px;font-size:12px}
  .dashboard-page .wrap{padding:16px 14px}
  .dashboard-hero{padding:16px}
  .dashboard-page .toolbar{grid-template-columns:1fr;gap:10px}
  .dashboard-page .btn.primary{width:100%}
  .dashboard-page .grid.cols-4{grid-template-columns:1fr 1fr;gap:10px}
  .dashboard-page .metric-card{min-height:104px;padding:14px 16px}
  .dashboard-page .metric-card .num{font-size:24px}
  .dashboard-page .chart-large{height:320px}
  .dashboard-page .chart{height:280px}
  .dashboard-page .data-table{font-size:12px}
  .dashboard-page .data-table th,.dashboard-page .data-table td{padding:8px 6px}
}

/* ===== 账号管理表格优化 ===== */
.readonly-input{
  background:transparent !important;
  border-color:transparent !important;
  color:var(--gold2) !important;
  font-family:Consolas,"Courier New",monospace;
  font-weight:600;
  cursor:default;
  padding-left:4px;
  letter-spacing:.5px;
}
.readonly-input:focus{outline:none;box-shadow:none}
.edit-note{
  min-height:auto !important;
  height:38px;
  padding:8px 10px;
  font-size:13px;
}
.cell-time{
  font-family:Consolas,"Courier New",monospace;
  font-size:13px;
  color:var(--muted);
  white-space:nowrap;
  vertical-align:middle;
}
.cell-heartbeat{color:#9ec5ff}
.cell-action{
  text-align:center;
  vertical-align:middle;
  white-space:nowrap;
  width:84px;
}
.btn-sm{
  padding:7px 14px;
  font-size:13px;
  border-radius:6px;
}
.cell-action .btn-sm{
  background:linear-gradient(135deg, rgba(216,172,79,.18), rgba(216,172,79,.06));
  border-color:rgba(216,172,79,.45);
  color:var(--gold2);
  transition:all .15s ease;
}
.cell-action .btn-sm:hover{
  background:linear-gradient(135deg, rgba(216,172,79,.32), rgba(216,172,79,.16));
  border-color:var(--gold);
  color:#fff;
}
.cell-action .btn-sm:disabled{opacity:.5;cursor:not-allowed}

/* ===== 微信内置浏览器引导遮罩 ===== */
.wechat-guide{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.85);
  display:none;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  padding:60px 24px 0;
  z-index:9999;
  text-align:center;
  color:#fff;
}
.wechat-guide.show{display:flex}
.wechat-guide-arrow{
  font-size:90px;
  color:#5cd97f;
  font-weight:900;
  align-self:flex-end;
  margin-right:8px;
  margin-bottom:6px;
  animation:wxArrowBounce 1s ease-in-out infinite;
  line-height:1;
}
@keyframes wxArrowBounce{
  0%,100%{transform:translate(0,0)}
  50%{transform:translate(-8px,-8px)}
}
.wechat-guide-tip{
  font-size:22px;
  line-height:1.7;
  margin-top:20px;
  font-weight:600;
}
.wechat-guide-tip b{color:#5cd97f;font-size:24px}
.wechat-guide-sub{
  margin-top:24px;
  font-size:14px;
  color:rgba(255,255,255,.7);
  line-height:1.6;
  max-width:320px;
}

/* ===== 大屏自动刷新徽标 ===== */
.refresh-badge{
  display:inline-flex;
  align-items:center;
  gap:4px;
  margin-left:14px;
  padding:3px 10px;
  font-size:12px;
  font-weight:500;
  color:#5cd97f;
  background:rgba(56,208,127,.12);
  border:1px solid rgba(56,208,127,.32);
  border-radius:999px;
  vertical-align:middle;
  letter-spacing:.5px;
}
.refresh-badge::before{
  content:"";
  display:inline-block;
  width:6px;height:6px;
  border-radius:50%;
  background:#5cd97f;
  box-shadow:0 0 6px #5cd97f;
  margin-right:2px;
  animation:refreshPulse 1.4s ease-in-out infinite;
}
@keyframes refreshPulse{
  0%,100%{opacity:1;transform:scale(1)}
  50%{opacity:.4;transform:scale(.7)}
}
#refreshCountdown{font-weight:700;color:#fff1a8}

/* ===== Dashboard 一体化大屏 v3 ===== */
.dashboard-fullscreen{height:100vh;overflow:hidden}
.dashboard-fullscreen .dashboard-main-wrap{
  height:calc(100vh - 68px);
  display:grid;grid-template-rows:auto 1fr;
  gap:12px;padding:12px 16px 14px;
  max-width:none;margin:0;min-height:0;
}
.dashboard-fullscreen .dashboard-toolbar-row{
  display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:14px;padding:12px 18px;margin:0;
}
.dashboard-fullscreen .dashboard-toolbar-row .dashboard-toolbar{
  margin:0;padding:0;border:none;flex:1 1 auto;min-width:0;
  display:grid;grid-template-columns:repeat(4,minmax(120px,1fr)) auto;gap:12px;align-items:end;
}
.dashboard-fullscreen .dashboard-toolbar-row .refresh-badge{margin-left:0;flex:0 0 auto}
.dashboard-fullscreen .dashboard-body{
  display:grid;grid-template-columns:240px minmax(0,1fr) 320px;
  gap:12px;min-height:0;
}
.dashboard-fullscreen .dashboard-side-left,
.dashboard-fullscreen .dashboard-side-right,
.dashboard-fullscreen .dashboard-center{display:grid;gap:12px;min-height:0}
.dashboard-fullscreen .dashboard-side-left{grid-template-rows:repeat(4,minmax(0,1fr))}
.dashboard-fullscreen .dashboard-side-right{grid-template-rows:1fr 0.85fr 1.15fr}
.dashboard-fullscreen .dashboard-center{grid-template-rows:minmax(0,1.05fr) minmax(0,1fr)}
.dashboard-fullscreen .panel{margin:0!important;display:flex;flex-direction:column;min-height:0}
.dashboard-fullscreen .metric-card{margin:0;min-height:0;padding:14px 18px;justify-content:center}
.dashboard-fullscreen .metric-card .num{font-size:30px}
.dashboard-fullscreen .metric-card .muted{margin-bottom:8px;font-size:14px;letter-spacing:.5px}
.dashboard-fullscreen .metric-card .metric-note{margin-top:6px;font-size:12.5px;letter-spacing:.3px}
.dashboard-fullscreen .chart-card-double{
  display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:12px 14px;min-height:0;
}
.dashboard-fullscreen .chart-half{display:flex;flex-direction:column;min-width:0;min-height:0}
.dashboard-fullscreen .chart-h3{
  margin:0 0 8px;font-size:15px;font-weight:700;letter-spacing:.8px;color:#fff1a8;
  padding-left:9px;border-left:3px solid #d8ac4f;line-height:1.2;
}
.dashboard-fullscreen .chart-fill{flex:1 1 auto;min-height:0;height:auto!important;width:100%;background:transparent;border:none}
.dashboard-fullscreen .table-panel-fill{padding:12px 16px 14px;min-height:0;overflow:hidden}
.dashboard-fullscreen .table-panel-fill h2{margin:0 0 8px;font-size:14px;letter-spacing:.5px;padding-left:10px;border-left:3px solid #d8ac4f}
.dashboard-fullscreen .refresh-badge-inline{margin-left:14px;font-size:12px;color:#8b95b0;font-weight:400;letter-spacing:.5px}
.dashboard-fullscreen .refresh-badge-inline b{font-weight:700}
.dashboard-fullscreen .refresh-badge-inline b:first-of-type{color:#3ddc97}
.dashboard-fullscreen .refresh-badge-inline b:last-of-type{color:#ff6d7c}
.dashboard-fullscreen .table-scroll{flex:1 1 auto;min-height:0;overflow:auto;border-radius:6px}
.dashboard-fullscreen .table-scroll::-webkit-scrollbar{width:6px;height:6px}
.dashboard-fullscreen .table-scroll::-webkit-scrollbar-thumb{background:rgba(216,172,79,.28);border-radius:3px}
.dashboard-fullscreen .data-table{font-size:12.5px;margin-top:0}
.dashboard-fullscreen .data-table th,.dashboard-fullscreen .data-table td{padding:9px 10px}
.dashboard-fullscreen .data-table thead th{position:sticky;top:0;z-index:1}
.dashboard-fullscreen .side-card{padding:12px 14px}
.dashboard-fullscreen .rank-card{padding:12px 14px}
.dashboard-fullscreen .rank-cols{display:grid;grid-template-columns:1fr 1fr;gap:10px;flex:1 1 auto;min-height:0;overflow:auto;margin-top:6px}
.dashboard-fullscreen .rank-col{display:flex;flex-direction:column;min-width:0}
.dashboard-fullscreen .rank-head{
  font-size:13px;font-weight:700;letter-spacing:.8px;
  padding:6px 10px;border-radius:6px;margin-bottom:8px;text-align:center;
}
.dashboard-fullscreen .rank-head.pos{background:rgba(57,217,138,.12);color:#39d98a;border:1px solid rgba(57,217,138,.32)}
.dashboard-fullscreen .rank-head.neg{background:rgba(255,109,124,.12);color:#ff6d7c;border:1px solid rgba(255,109,124,.32)}
.dashboard-fullscreen .rank-list{list-style:none;padding:0;margin:0}
.dashboard-fullscreen .rank-list li{
  display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:8px;
  padding:6px 4px;font-size:13.5px;border-bottom:1px dashed rgba(255,255,255,.05);
}
.dashboard-fullscreen .rank-list li:last-child{border-bottom:none}
.dashboard-fullscreen .rank-no{
  display:inline-flex;align-items:center;justify-content:center;
  width:22px;height:22px;border-radius:50%;
  background:rgba(216,172,79,.18);color:#fff1a8;font-size:12px;font-weight:700;
}
.dashboard-fullscreen .rank-acc{
  font-family:Consolas,"Courier New",monospace;color:#d8e0f0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;font-size:13px;
}
.dashboard-fullscreen .rank-val{font-family:Consolas,monospace;font-size:13px;font-weight:700;white-space:nowrap}
.dashboard-fullscreen .rank-val.pos{color:#3ddc97}
.dashboard-fullscreen .rank-val.neg{color:#ff6d7c}
.dashboard-fullscreen .rank-val.flat{color:#aab4cc}
.dashboard-fullscreen .rank-empty{padding:8px;text-align:center;color:#5d6781;font-size:12.5px;list-style:none}
.dashboard-fullscreen .ea-status{min-width:auto;padding:3px 8px;font-size:11px}
.dashboard-fullscreen .ea-status b{font-size:11.5px}
.dashboard-fullscreen .ea-status small{font-size:10px}

/* 适配较小屏：下 1280 限转为可滚动布局 */
@media(max-width:1280px){
  .dashboard-fullscreen{height:auto;overflow:auto}
  .dashboard-fullscreen .dashboard-main-wrap{height:auto}
  .dashboard-fullscreen .dashboard-body{grid-template-columns:1fr}
  .dashboard-fullscreen .dashboard-side-left{grid-template-columns:repeat(4,1fr);grid-template-rows:auto}
  .dashboard-fullscreen .dashboard-side-right{grid-template-rows:auto auto auto}
  .dashboard-fullscreen .dashboard-center{grid-template-rows:auto auto}
  .dashboard-fullscreen .chart-card-double{grid-template-columns:1fr}
  .dashboard-fullscreen .chart-fill{height:280px!important}
  .dashboard-fullscreen .side-card .chart-fill{height:240px!important}
  .dashboard-fullscreen .table-scroll{max-height:60vh}
}
@media(max-width:640px){
  .dashboard-fullscreen .dashboard-side-left{grid-template-columns:1fr 1fr}
  .dashboard-fullscreen .rank-cols{grid-template-columns:1fr}
  .dashboard-fullscreen .dashboard-toolbar-row .dashboard-toolbar{grid-template-columns:1fr 1fr}
}

/* ===== Dashboard 一体化大屏 v4 顶栏合并 ===== */
body.dashboard-fullscreen{display:flex;flex-direction:column}
.dashboard-fullscreen .nav{display:none!important}
.dashboard-fullscreen .dashboard-topbar-flat{
  flex:0 0 auto;
  display:flex;align-items:center;gap:18px;
  padding:8px 18px;
  flex-wrap:nowrap;height:auto;
}
.dashboard-fullscreen .dashboard-topbar-flat .brand-with-logo{flex:0 0 auto}
.dashboard-fullscreen .dashboard-topbar-flat .brand-with-logo img{width:38px;height:38px}
.dashboard-fullscreen .dashboard-topbar-flat .brand-with-logo b{font-size:18px;letter-spacing:1.5px}
.dashboard-fullscreen .dashboard-topbar-flat .brand-with-logo small{font-size:10px;letter-spacing:2.5px;margin-top:2px}
.dashboard-fullscreen .dashboard-toolbar-inline{
  flex:1 1 auto;min-width:0;margin:0;padding:0;border:none;background:transparent;
  display:grid;grid-template-columns:repeat(4,minmax(180px,1fr)) auto;gap:18px;align-items:center;justify-content:start;
}
.dashboard-fullscreen .dashboard-toolbar-inline > div{
  margin:0;display:flex;flex-direction:row;align-items:center;gap:12px;
  background:linear-gradient(135deg,rgba(216,172,79,.06),rgba(216,172,79,.02));
  border:1px solid rgba(216,172,79,.22);border-radius:10px;
  padding:6px 12px 6px 14px;min-width:0;
  transition:border-color .2s,box-shadow .2s;
}
.dashboard-fullscreen .dashboard-toolbar-inline > div:hover{
  border-color:rgba(216,172,79,.45);box-shadow:0 0 0 2px rgba(216,172,79,.08);
}
.dashboard-fullscreen .dashboard-toolbar-inline label{
  font-size:15px;font-weight:600;color:#fff1a8;letter-spacing:2px;
  margin:0;flex:0 0 auto;white-space:nowrap;line-height:1;
}
.dashboard-fullscreen .dashboard-toolbar-inline select,
.dashboard-fullscreen .dashboard-toolbar-inline input[type=date]{
  height:38px;padding:0 12px;font-size:14px;flex:1 1 auto;min-width:0;width:100%;
  background:rgba(12,16,28,.55);border:1px solid rgba(216,172,79,.18);
  color:#eef3ff;border-radius:7px;outline:none;
  transition:border-color .2s,background .2s;
}
.dashboard-fullscreen .dashboard-toolbar-inline select:focus,
.dashboard-fullscreen .dashboard-toolbar-inline input[type=date]:focus{
  border-color:#d8ac4f;background:rgba(12,16,28,.78);
}
.dashboard-fullscreen .dashboard-toolbar-inline .btn{
  height:48px;padding:0 26px;align-self:center;font-size:15px;font-weight:700;letter-spacing:4px;
}
.dashboard-fullscreen .dashboard-topbar-flat .refresh-badge{
  flex:0 0 auto;margin:0;align-self:center;
  font-size:14.5px;font-weight:600;letter-spacing:1px;
  padding:9px 18px;gap:8px;
  border-width:1px;border-radius:999px;
  box-shadow:0 0 0 1px rgba(56,208,127,.10) inset, 0 4px 12px rgba(56,208,127,.12);
}
.dashboard-fullscreen .dashboard-topbar-flat .refresh-badge::before{
  width:9px;height:9px;box-shadow:0 0 10px #5cd97f;margin-right:4px;
}
.dashboard-fullscreen .dashboard-topbar-flat #refreshCountdown{
  font-size:16px;font-weight:800;color:#fff1a8;letter-spacing:.5px;margin:0 1px;
}
.dashboard-fullscreen .dashboard-main-wrap{
  flex:1 1 auto;height:auto!important;min-height:0;
  grid-template-rows:1fr!important;
  padding:10px 16px 12px;
}
@media(max-width:1280px){
  .dashboard-fullscreen .dashboard-topbar-flat{flex-wrap:wrap;gap:10px}
  .dashboard-fullscreen .dashboard-toolbar-inline{grid-template-columns:repeat(2,minmax(160px,1fr)) auto;width:100%;gap:12px}
  .dashboard-fullscreen .dashboard-topbar-flat .refresh-badge{order:3;width:100%;text-align:right}
}
@media(max-width:640px){
  .dashboard-fullscreen .dashboard-toolbar-inline{grid-template-columns:1fr 1fr;gap:8px}
  .dashboard-fullscreen .dashboard-toolbar-inline .btn{grid-column:1 / -1}
}
