:root{
  /* 墩墩全系统一视觉规范 */
  --bg:#0A1429;            /* 主底色：深科技蓝（全站统一全局背景） */
  --bg-deep:#081020;       /* 深一档科技蓝：顶栏/输入框/卡片内底 */
  --panel:#0e1d36;         /* 面板底色（深科技蓝系） */
  --line:#E6C26E;          /* 分割线/卡片边框：鎏金 */
  --gold:#E6C26E;          /* 主品牌色：哑光高级鎏金 */
  --gold-soft:rgba(230,194,110,.15); /* 鎏金淡底 */
  --text:#FFFFFF;          /* 正文：纯白 */
  --muted:#FFFFFF;         /* 次要说明也用纯白（规范：不用灰替代正文） */
}
*{margin:0;padding:0;box-sizing:border-box}
body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:var(--bg-deep);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}
.brand{display:flex;align-items:center;gap:8px;font-weight:700;font-size:16px;color:var(--gold)}
.brand-logo{height:38px;width:38px;border-radius:8px;object-fit:contain;display:block}
.ver{background:var(--gold);color:#04101f;padding:1px 6px;border-radius:6px;font-size:11px;margin-left:4px}
nav{display:flex;gap:4px;flex-wrap:wrap}
nav a{padding:6px 10px;color:var(--text);cursor:pointer;border-radius:6px;font-size:13px}
nav a:hover{color:var(--gold)}
nav a.active{background:var(--gold);color:#04101f;font-weight:600}
main{padding:18px;max-width:1100px;margin:0 auto}
.tab{display:none}.tab.active{display:block}
.panel{background:var(--panel);border:1px solid var(--gold);border-radius:14px;padding:16px;margin-bottom:16px}
.panel h3{margin-bottom:10px;font-size:15px;color:var(--gold)}
.panel h4{margin:14px 0 8px;font-size:13px;color:var(--gold)}
.hint{color:var(--text);font-size:12px;margin-bottom:10px;opacity:.85}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px}
.card{background:var(--panel);border:1px solid var(--gold);border-radius:14px;padding:14px;text-align:center}
.card .n{font-size:26px;font-weight:700;color:var(--gold)}
.card .l{font-size:11px;color:var(--text);margin-top:4px;opacity:.85}
.btn{background:var(--bg-deep);color:var(--text);border:1px solid var(--gold);padding:8px 14px;border-radius:8px;cursor:pointer;font-size:13px;margin:4px 2px}
.btn:hover{filter:brightness(1.15)}
.btn.primary{background:var(--gold);color:#04101f;font-weight:600;border-color:var(--gold)}
.btn.danger{background:#5a1f00;border:1px solid #ff8a5c;color:#ff8a5c}
input,textarea,select{width:100%;background:var(--bg-deep);border:1px solid var(--gold);color:var(--text);border-radius:8px;padding:8px;margin:4px 0;font-size:13px}
textarea{min-height:70px;resize:vertical}
pre{background:var(--bg-deep);border:1px solid var(--gold);border-radius:8px;padding:10px;font-size:12px;white-space:pre-wrap;color:var(--text)}
.list{display:flex;flex-direction:column;gap:6px}
.list .item{background:var(--bg-deep);border:1px solid var(--gold);border-radius:8px;padding:8px;font-size:12px}
.report{margin-top:12px;background:var(--bg-deep);border:1px solid var(--gold);border-radius:8px;padding:10px;font-size:12px;line-height:1.7}
.kv{display:flex;flex-direction:column;gap:6px;font-size:13px}
.kv b{color:var(--gold)}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:50}
.modal.hidden{display:none}
.modal-box{background:var(--panel);border:1px solid var(--gold);border-top:3px solid var(--gold);border-radius:14px;padding:20px;max-width:380px}
.modal-actions{margin-top:14px;display:flex;gap:8px;justify-content:flex-end}
.badge{display:inline-block;padding:1px 6px;border-radius:6px;font-size:11px}
.badge.normal{background:var(--gold-soft);color:var(--gold);border:1px solid var(--gold)}
.badge.warning{background:#3a2f00;color:var(--gold);border:1px solid var(--gold)}
.badge.critical{background:#5a1f00;color:#ff8a5c;border:1px solid #ff8a5c}

/* ===== 数据看板新版分层布局 ===== */
.block-title{display:flex;align-items:baseline;justify-content:space-between;margin:24px 2px 12px;color:var(--gold);font-size:15px;font-weight:700;border-left:3px solid var(--gold);padding-left:10px}
.block-title em{font-style:normal;font-size:12px;color:var(--text);opacity:.7;font-weight:400}

/* 第2层 轮播 */
.carousel{position:relative;width:100%;height:220px;overflow:hidden;border:1px solid var(--gold);border-radius:14px;margin-bottom:18px;box-shadow:0 0 0 1px rgba(230,194,110,.15) inset}
.carousel-track{display:flex;height:100%;transition:transform .5s ease}
.slide{min-width:100%;height:100%;position:relative;display:flex;align-items:flex-end;padding:24px;box-sizing:border-box}
.slide-1{background:linear-gradient(120deg,#0a1628,#1b3a6b 60%,rgba(230,194,110,.15))}
.slide-2{background:linear-gradient(120deg,#0f172a,#16406e 55%,rgba(230,194,110,.12))}
.slide-3{background:linear-gradient(120deg,#0a1628,#2a2350 60%,rgba(230,194,110,.15))}
.slide-4{background:linear-gradient(120deg,#0f172a,#0e3a4a 60%,rgba(230,194,110,.12))}
.slide-tag{position:absolute;top:16px;left:16px;background:var(--gold);color:#04101f;font-size:11px;font-weight:700;padding:3px 10px;border-radius:20px}
.slide-cap h3{font-size:22px;color:#fff;margin-bottom:6px;text-shadow:0 2px 8px rgba(0,0,0,.5)}
.slide-cap p{font-size:13px;color:#eaf2ff;opacity:.92;max-width:72%}
.car-arrow{position:absolute;top:50%;transform:translateY(-50%);width:34px;height:34px;border-radius:50%;border:1px solid var(--gold);background:rgba(10,22,40,.6);color:var(--gold);font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.car-arrow.left{left:10px}.car-arrow.right{right:10px}
.car-arrow:hover{background:var(--gold);color:#04101f}
.car-dots{position:absolute;bottom:12px;right:16px;display:flex;gap:6px}
.car-dots .dot{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.4);cursor:pointer;border:1px solid var(--gold)}
.car-dots .dot.active{background:var(--gold);width:22px;border-radius:6px}

/* 第3层 6宫格 KPI */
.kpi-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:6px}
@media(max-width:900px){.kpi-grid{grid-template-columns:repeat(3,1fr)}}
.kpi-card{background-image:linear-gradient(160deg,#0f172a,#13203a);border:1px solid var(--gold);border-radius:14px;padding:16px 10px;text-align:center}
.kpi-card .l{font-size:12px;color:#cdd9ee;opacity:.9;margin-bottom:8px}
.kpi-card .n{font-size:28px;font-weight:800;color:var(--gold);line-height:1}
.kpi-card .u{font-size:12px;color:#9fb3d1;margin-top:4px}

/* 第4层 12宫格 */
.quick-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}
@media(max-width:900px){.quick-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){.quick-grid{grid-template-columns:repeat(2,1fr)}}
.quick-cell{background-image:linear-gradient(160deg,#0f172a,#13203a);border:1px solid var(--gold);border-radius:14px;padding:14px 10px;text-align:center;cursor:pointer;transition:.2s}
.quick-cell:hover{transform:translateY(-3px);box-shadow:0 6px 18px rgba(230,194,110,.25);border-color:#fff}
.quick-name{font-size:13px;color:#fff;font-weight:600;margin-bottom:4px}
.quick-desc{font-size:11px;color:#9fb3d1;margin-top:4px;line-height:1.4}

/* 第5层 ROI 图表 */
.charts{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:760px){.charts{grid-template-columns:1fr}}
.chart-box{background:#0f172a;border:1px solid rgba(230,194,110,.5);border-radius:12px;padding:12px}
.chart-h{font-size:12px;color:var(--gold);margin-bottom:8px}
.chart-svg svg{width:100%;height:auto;display:block}
.roi-summary{margin-top:12px;background:#0f172a;border:1px solid rgba(230,194,110,.5);border-left:3px solid var(--gold);border-radius:10px;padding:12px;font-size:13px;color:#eaf2ff;line-height:1.7}
.roi-summary b{color:var(--gold)}

/* 第6层 告警分栏 */
.alert-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:760px){.alert-cols{grid-template-columns:1fr}}
.alert-col{background:#0f172a;border:1px solid rgba(230,194,110,.5);border-radius:12px;padding:12px}
.col-head{font-size:13px;font-weight:700;padding:6px 10px;border-radius:8px;margin-bottom:10px}
.col-head.warn{background:#3a2f00;color:var(--gold);border:1px solid var(--gold)}
.col-head.crit{background:#5a1f00;color:#ff8a5c;border:1px solid #ff8a5c}
.alert-item{background:#0a1628;border:1px solid rgba(230,194,110,.35);border-radius:8px;padding:8px 10px;margin-bottom:8px;font-size:12px;color:#eaf2ff}
.alert-item .at{color:#9fb3d1;font-size:11px}
.alert-item .acts{margin-top:6px;display:flex;gap:6px}
.alert-item .acts button{font-size:11px;padding:4px 10px;border-radius:6px;cursor:pointer;border:1px solid var(--gold);background:transparent;color:var(--gold)}
.alert-item .acts button.ok{background:var(--gold);color:#04101f}
.alert-item.done{opacity:.5}

/* ===== 12 大模块四级深层页面 ===== */
.module-layer{display:none;position:fixed;inset:0;background:var(--bg);z-index:100;overflow:auto}
.mod-shell{max-width:1280px;margin:0 auto;padding:18px 22px 40px}
.mod-loading{padding:60px;text-align:center;color:var(--gold);font-size:15px}
.mod-top{display:flex;align-items:center;justify-content:space-between;padding-bottom:12px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--bg);z-index:5}
.mod-title{display:flex;align-items:baseline;gap:12px}
.mod-name{font-size:20px;font-weight:800;color:var(--gold)}
.mod-desc{font-size:12px;color:var(--text);opacity:.7}
.mod-tools{display:flex;align-items:center;gap:14px}
.role-switch{display:flex;align-items:center;gap:6px;font-size:12px}
.rs-label{opacity:.7}
.rs-btn{border:1px solid var(--gold);background:transparent;color:var(--gold);padding:4px 12px;border-radius:6px;cursor:pointer;font-size:12px}
.rs-btn.on{background:var(--gold);color:#04101f;font-weight:700}
.mod-close{border:1px solid var(--gold);background:transparent;color:var(--gold);padding:6px 14px;border-radius:6px;cursor:pointer;font-size:13px}
.mod-close:hover{background:var(--gold);color:#04101f}
.mod-back{border:1.5px solid var(--gold);background:rgba(230,194,110,.08);color:var(--gold);padding:8px 18px;border-radius:8px;cursor:pointer;font-size:14px;font-weight:700;display:flex;align-items:center;gap:6px;transition:.2s}
.mod-back:hover{background:var(--gold);color:#04101f;box-shadow:0 0 16px rgba(230,194,110,.5);transform:translateX(-2px)}
.mod-back::before{content:'←';font-size:16px;font-weight:900}
.mod-title{flex:1}
.mod-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:16px 0}
@media(max-width:760px){.mod-kpis{grid-template-columns:repeat(2,1fr)}}
.mod-kpi{background:linear-gradient(160deg,#0f172a,#13203a);border:1px solid var(--gold);border-radius:14px;padding:14px 16px}
.mod-kpi .mk-n{font-size:26px;font-weight:800;color:var(--gold);line-height:1}
.mod-kpi .mk-n small{font-size:12px;margin-left:3px}
.mod-kpi .mk-l{font-size:12px;color:var(--text);opacity:.85;margin-top:6px}
.mod-body{display:grid;grid-template-columns:200px 1fr;gap:18px;align-items:start}
@media(max-width:760px){.mod-body{grid-template-columns:1fr}}
.mod-side{background:var(--panel);border:1px solid var(--gold);border-radius:14px;padding:10px;position:sticky;top:64px}
.mod-group{font-size:11px;color:var(--gold);opacity:.8;margin:10px 6px 4px;border-top:1px dashed rgba(230,194,110,.3);padding-top:8px}
.mod-group:first-child{border-top:none;margin-top:2px}
.mod-menu{padding:7px 10px;border-radius:8px;font-size:13px;color:var(--text);cursor:pointer;margin-bottom:2px}
.mod-menu:hover{background:var(--gold-soft)}
.mod-menu.active{background:var(--gold);color:#04101f;font-weight:700}
.mod-content{min-height:420px}
.pg-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.pg-head h3{font-size:16px;color:var(--gold);font-weight:700}
.tbl-wrap{background:var(--panel);border:1px solid var(--gold);border-radius:14px;overflow:auto}
.tbl{width:100%;border-collapse:collapse;font-size:13px}
.tbl th{text-align:left;padding:10px 12px;background:var(--bg-deep);color:var(--gold);font-weight:600;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:9px 12px;border-bottom:1px solid rgba(230,194,110,.18);color:var(--text)}
.tbl tbody tr{cursor:pointer}
.tbl tbody tr:hover{background:var(--gold-soft)}
.tbl .empty{text-align:center;opacity:.6;padding:24px}
.form-wrap{background:var(--panel);border:1px solid var(--gold);border-radius:14px;padding:16px;max-width:560px}
.fld{display:flex;flex-direction:column;gap:5px;margin-bottom:14px;font-size:13px}
.fld span{color:var(--gold);font-size:12px}
.fld input,.fld select{background:var(--bg-deep);border:1px solid var(--line);border-radius:8px;padding:9px 10px;color:var(--text);font-size:13px;outline:none}
.fld input:focus,.fld select:focus{border-color:var(--gold)}
.mod-forbidden{padding:40px;text-align:center;color:#ff8a5c;background:#5a1f00;border:1px solid #ff8a5c;border-radius:12px;font-size:14px}
/* 弹窗 */
.modal-mask{position:fixed;inset:0;background:rgba(4,10,25,.7);z-index:200;display:flex;align-items:center;justify-content:center}
.modal{width:min(480px,92vw);background:var(--panel);border:1px solid var(--gold);border-radius:16px;overflow:hidden;box-shadow:0 10px 40px rgba(0,0,0,.5)}
.modal-h{padding:14px 18px;font-size:15px;font-weight:700;color:var(--gold);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px}
.modal-t{flex:1}
.modal-back{border:1.5px solid var(--gold);background:rgba(230,194,110,.08);color:var(--gold);padding:7px 14px;border-radius:8px;cursor:pointer;font-size:13px;font-weight:700;display:flex;align-items:center;gap:5px;transition:.2s}
.modal-back:hover{background:var(--gold);color:#04101f;box-shadow:0 0 12px rgba(230,194,110,.45)}
.modal-back::before{content:'←';font-size:15px;font-weight:900}
.modal-b{padding:16px 18px;max-height:60vh;overflow:auto}
.modal-f{padding:12px 18px;display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line)}
.btn{border:1px solid var(--gold);background:transparent;color:var(--gold);padding:7px 16px;border-radius:8px;cursor:pointer;font-size:13px}
.btn:hover{background:var(--gold-soft)}
.btn.primary{background:var(--gold);color:#04101f;font-weight:700;border-color:var(--gold)}
.btn.primary:hover{opacity:.9}
.toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:var(--gold);color:#04101f;padding:10px 20px;border-radius:10px;font-size:13px;font-weight:700;z-index:300;box-shadow:0 6px 20px rgba(0,0,0,.4)}

/* ===== 顶部导航悬浮下拉二级菜单（PC） ===== */
.hamburger{display:none;background:transparent;border:1px solid var(--gold);color:var(--gold);font-size:18px;width:40px;height:40px;border-radius:8px;cursor:pointer}
nav.pc{display:flex;gap:4px;flex-wrap:wrap}
nav:not(.pc){display:none}
.nav-item{position:relative}
.nav-link{padding:8px 16px;color:var(--text);cursor:pointer;border-radius:8px;font-size:13px;display:block;white-space:nowrap;transition:.2s;border:1px solid transparent}
.nav-item:hover .nav-link{color:var(--gold)}
.nav-item.active .nav-link{background:var(--gold);color:#04101f;font-weight:700;border-color:var(--gold)}
.nav-link:hover{filter:brightness(1.1);border-color:rgba(230,194,110,.6);box-shadow:0 0 10px rgba(230,194,110,.35)}
.dropdown{position:absolute;top:100%;left:0;min-width:340px;background:var(--bg-deep);border:1px solid var(--gold);border-radius:12px;box-shadow:0 8px 30px rgba(0,0,0,.55);padding:10px;opacity:0;visibility:hidden;transform:translateY(-6px);transition:.18s;z-index:60}
.dropdown.show{opacity:1;visibility:visible;transform:translateY(0)}
.dd-title{font-size:12px;color:var(--gold);opacity:.85;padding:4px 8px 8px;border-bottom:1px dashed rgba(230,194,110,.3);margin-bottom:8px}
.dd-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.dd-item{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:8px;cursor:pointer;border:1px solid transparent;transition:.18s}
.dd-item:hover{background:var(--gold-soft);border-color:rgba(230,194,110,.5);transform:translateY(-1px)}
.dd-label{font-size:13px;color:var(--text);font-weight:600}
.dd-item:hover .dd-label{color:var(--gold)}
.dd-desc{font-size:11px;color:#9fb3d1;line-height:1.3}

/* ===== 移动端汉堡折叠侧边导航 ===== */
.mobile-nav{position:fixed;top:0;right:0;width:82%;max-width:340px;height:100%;background:var(--bg-deep);border-left:1px solid var(--gold);z-index:120;transform:translateX(100%);transition:.25s;display:flex;flex-direction:column}
.mobile-nav.open{transform:translateX(0)}
.mobile-nav-head{display:flex;justify-content:space-between;align-items:center;padding:16px;font-size:15px;color:var(--gold);border-bottom:1px solid var(--gold)}
.mn-close{background:transparent;border:1px solid var(--gold);color:var(--gold);width:34px;height:34px;border-radius:8px;font-size:16px;cursor:pointer}
.mobile-nav-body{padding:10px;overflow:auto;flex:1}
.mn-item{border-bottom:1px solid rgba(230,194,110,.18)}
.mn-link{display:flex;justify-content:space-between;align-items:center;padding:14px 8px;font-size:15px;color:var(--text);cursor:pointer;font-weight:600}
.mn-item.open .mn-link{color:var(--gold)}
.mn-arrow{transition:.2s;opacity:.7}
.mn-item.open .mn-arrow{transform:rotate(90deg)}
.mn-subs{max-height:0;overflow:hidden;transition:.25s}
.mn-item.open .mn-subs{max-height:600px}
.mn-sub{display:flex;flex-direction:column;gap:2px;padding:12px 18px;font-size:14px;color:var(--text);cursor:pointer;border-left:2px solid transparent}
.mn-sub em{font-size:11px;color:#9fb3d1;font-style:normal}
.mn-sub:hover{background:var(--gold-soft);border-left-color:var(--gold);color:var(--gold)}
.mn-item.open .mn-sub{margin-bottom:4px}
.nav-scrim{position:fixed;inset:0;background:rgba(4,10,25,.6);z-index:110;opacity:0;visibility:hidden;transition:.2s}
.nav-scrim.show{opacity:1;visibility:visible}

/* ===== 响应式：移动端隐藏 PC 导航、显示汉堡 ===== */
@media(max-width:760px){
  .hamburger{display:block}
  nav.pc{display:none}
  /* 模块层/弹窗移动端全屏优化 */
  .module-layer .mod-shell{padding:14px}
  .mod-kpis{grid-template-columns:repeat(2,1fr)}
  .modal-mask{align-items:flex-end}
  .modal{width:100vw;border-radius:16px 16px 0 0;max-height:92vh}
  .modal-f .btn{min-height:44px;padding:12px 18px}
  .mod-menu,.btn,.dd-item,.mn-sub,.mod-back,.modal-back{min-height:44px;display:flex;align-items:center}
  .tbl,.chart-box{font-size:12px}
}

/* ===================== Hub 卡片首页（8 个一级页通用样式） ===================== */
.hub-hero{display:flex;gap:18px;align-items:stretch;background:linear-gradient(120deg,#0f172a,#13203a);border:1px solid var(--gold);border-radius:14px;padding:20px;margin-bottom:16px}
.hub-hero-l{flex:1;display:flex;flex-direction:column;justify-content:center;gap:10px}
.hub-tag{display:inline-block;background:var(--gold);color:#04101f;font-size:11px;font-weight:700;padding:2px 10px;border-radius:20px;width:max-content;letter-spacing:1px}
.hub-hero-l h2{font-size:24px;color:var(--gold);font-weight:800;margin:0}
.hub-hero-l p{font-size:13px;color:#eaf2ff;opacity:.9;line-height:1.6;margin:0}
.hub-hero-acts{display:flex;gap:8px;margin-top:4px;flex-wrap:wrap}
.hub-hero-r{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;min-width:280px}
.hub-kpi{background:rgba(10,22,40,.5);border:1px solid rgba(230,194,110,.5);border-radius:12px;padding:12px;text-align:center}
.hub-kpi .n{font-size:20px;font-weight:800;color:var(--gold);line-height:1}
.hub-kpi .l{font-size:11px;color:#9fb3d1;margin-top:4px}
.hub-entries{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}
@media(max-width:900px){.hub-entries{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.hub-entries{grid-template-columns:1fr}}
.hub-entry{background:linear-gradient(160deg,#0f172a,#13203a);border:1px solid var(--gold);border-radius:14px;padding:16px;cursor:pointer;transition:.2s;position:relative}
.hub-entry:hover{transform:translateY(-3px);box-shadow:0 8px 22px rgba(230,194,110,.25);border-color:#fff}
.he-icon{font-size:24px;margin-bottom:6px}
.he-name{font-size:14px;color:#fff;font-weight:700;margin-bottom:4px}
.he-desc{font-size:12px;color:#9fb3d1;line-height:1.4}
.he-tag{position:absolute;top:10px;right:10px;background:var(--gold-soft);color:var(--gold);font-size:10px;padding:1px 6px;border-radius:6px;border:1px solid var(--gold)}

/* ===================== 详情页通用工具栏/汇总条/徽章/行内操作 ===================== */
.pg-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--panel);border:1px solid var(--gold);border-radius:12px;padding:10px 14px;margin-bottom:12px;flex-wrap:wrap}
.pg-crumb{font-size:13px;color:#9fb3d1;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.pg-crumb em{font-style:normal;color:var(--gold);font-weight:700}
.pg-crumb .sep{opacity:.5}
.pg-crumb b{color:#fff;font-weight:600}
.pg-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pg-search{background:var(--bg-deep);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:6px 10px;font-size:12px;width:200px;outline:none}
.pg-search:focus{border-color:var(--gold)}
.pg-btn{background:transparent;border:1px solid var(--gold);color:var(--gold);padding:6px 12px;border-radius:8px;cursor:pointer;font-size:12px;font-weight:600}
.pg-btn:hover{background:var(--gold-soft)}
.pg-btn.primary{background:var(--gold);color:#04101f}
.pg-newbtn{margin-bottom:10px;display:inline-block}
.pg-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:12px}
.pg-stat{background:linear-gradient(160deg,#0f172a,#13203a);border:1px solid rgba(230,194,110,.5);border-radius:12px;padding:12px;text-align:center}
.pg-stat .n{font-size:20px;font-weight:800;color:var(--gold);line-height:1}
.pg-stat .l{font-size:11px;color:#9fb3d1;margin-top:4px}
.badge.on{background:rgba(52,211,153,.18);color:#34d399;border:1px solid #34d399}
.badge.warn{background:#3a2f00;color:var(--gold);border:1px solid var(--gold)}
.badge.off{background:rgba(255,138,92,.12);color:#ff8a5c;border:1px solid #ff8a5c}
.cell-money{color:var(--gold);font-weight:700}
.cell-pct{color:#34d399;font-weight:600}
.cell-date{color:#9fb3d1;font-size:12px}
.act-col{text-align:right;white-space:nowrap;width:150px}
.act-btn{display:inline-block;padding:3px 10px;border:1px solid var(--gold);border-radius:6px;color:var(--gold);font-size:11px;cursor:pointer;margin-left:4px;background:transparent;text-decoration:none}
.act-btn:hover{background:var(--gold);color:#04101f}
.act-btn.danger{border-color:#ff8a5c;color:#ff8a5c}
.act-btn.danger:hover{background:#ff8a5c;color:#fff}
.act-mute{color:#5a6890}
.form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:8px;border-top:1px dashed rgba(230,194,110,.3);padding-top:14px}
.fld-hint{display:block;color:#9fb3d1;font-size:11px;margin-top:2px;font-style:normal}
.chart-table{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin-top:14px}
.cdt-block{background:var(--panel);border:1px solid rgba(230,194,110,.5);border-radius:12px;padding:10px}
.cdt-h{font-size:12px;color:var(--gold);margin-bottom:6px;font-weight:600}
.tbl.cdt{font-size:12px}
.tbl.cdt th,.tbl.cdt td{padding:6px 10px}
@media(max-width:760px){
  .hub-hero{flex-direction:column}
  .hub-hero-r{grid-template-columns:repeat(3,1fr);min-width:auto}
  .pg-toolbar{flex-direction:column;align-items:stretch}
  .pg-search{width:100%}
  .act-col{width:auto}
}

/* ===== 首页轮播：商家店铺广告位（占位 slide） ===== */
.carousel{position:relative;overflow:hidden;border-radius:14px;background:#090E1A;margin:0 0 18px}
.carousel-track{display:flex;transition:transform .5s ease}
.slide{position:relative;min-width:100%;height:180px;display:flex;align-items:flex-end;color:#fff;overflow:hidden}
.slide .slide-cap{position:relative;z-index:2;padding:16px 18px;background:linear-gradient(0deg,rgba(9,14,26,.85),transparent)}
.slide .slide-cap h3{margin:0;font-size:18px;font-weight:700;color:#fff}
.slide .slide-cap p{margin:4px 0 0;font-size:14px;color:#9CA3AF}
.slide.ph{background:#111827;align-items:center;justify-content:center;flex-direction:column;text-align:center}
.slide.ph .ph-ico{font-size:54px;line-height:1;filter:drop-shadow(0 0 14px rgba(230,194,110,.5))}
.slide.ph .ph-cap{margin-top:12px;padding:0 18px}
.slide.ph .ph-cap h3{font-size:18px;font-weight:700;color:#fff;margin:0}
.slide.ph .ph-cap p{font-size:14px;color:#9CA3AF;margin:6px 0 0}
.slide.ph .ph-tip{position:absolute;right:14px;bottom:10px;font-size:12px;color:#9CA3AF}
.car-arrow{position:absolute;top:50%;transform:translateY(-50%);width:36px;height:36px;border-radius:50%;border:none;background:rgba(230,194,110,.18);color:#E6C26E;font-size:22px;cursor:pointer;z-index:3}
.car-arrow.left{left:8px}.car-arrow.right{right:8px}
.car-dots{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);display:flex;gap:7px;z-index:3}
.car-dots .dot{width:8px;height:8px;border-radius:50%;background:#6B7280;cursor:pointer;transition:.2s}
.car-dots .dot.active{background:#E6C26E}

@media(max-width:760px){
  .slide{height:140px}
  .slide.ph .ph-ico{font-size:42px}
}

/* ===== 设置 → 门店信息：店铺广告上传 ===== */
.ad-list{display:flex;flex-direction:column;gap:14px;margin:6px 0}
.ad-row{border:1px solid var(--line);border-radius:12px;padding:12px;background:linear-gradient(160deg,var(--card),var(--card2))}
.ad-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.ad-idx{font-weight:700;color:var(--gold)}
.ad-upload{cursor:pointer;margin:0}
.ad-prev{width:100%;height:120px;border-radius:8px;background:#111827;display:flex;align-items:center;justify-content:center;overflow:hidden;margin-bottom:10px}
.ad-prev img{width:100%;height:100%;object-fit:cover}
.ad-prev .ad-ph{color:var(--muted2);font-size:13px}
.ad-fields{display:flex;flex-direction:column;gap:8px}
.ad-fields input{width:100%}
.mb{margin-bottom:10px}
.mt2{margin-top:18px}
