/* 大屏样式限制在 dc-board 内，避免改动原有策略和会员管理页面。 */
#dashboard-view { max-width: 1720px; }
#dashboard-root:fullscreen { overflow: auto; background: #0e1b25; padding: 28px; }
.dc-board { --dc-text:#e5eef2; --dc-muted:#8b9faa; --dc-border:#2a3e4b; padding:26px; color:var(--dc-text); background:#0e1b25; border:1px solid #223744; border-radius:20px; font-variant-numeric:tabular-nums; }
.dc-board * { box-sizing:border-box; }
.dc-board button { border:1px solid #354b58; border-radius:8px; padding:9px 12px; color:#dce8ed; background:#1c303e; cursor:pointer; font:inherit; font-size:12px; }
.dc-board button:hover { background:#294453; }
.dc-board button:disabled { opacity:.5; cursor:wait; }
.dc-board button:focus-visible,.dc-board input:focus-visible { outline:2px solid #6ddac4; outline-offset:3px; }
.dc-head { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:25px; }
.dc-kicker { margin:0 0 9px; color:#71cbbd; letter-spacing:.15em; font-size:10px; font-weight:700; }
.dc-head h1 { margin:0 0 9px; font-size:29px; letter-spacing:.01em; color:#eef6fa; }
.dc-head p:not(.dc-kicker) { margin:0; color:var(--dc-muted); font-size:12px; }
.dc-environment,.dc-tag { display:inline-block; padding:4px 8px; border:1px solid #3d5c63; border-radius:5px; color:#99d8ca; font-size:10px; white-space:nowrap; }
.dc-environment { margin-left:9px; }
.dc-tools { display:flex; gap:9px; align-items:center; flex-wrap:wrap; justify-content:flex-end; }
.dc-tools label { display:flex; align-items:center; gap:5px; color:var(--dc-muted); font-size:11px; }
.dc-tools input { accent-color:#6ddac4; }
.dc-updated { margin-right:8px; color:var(--dc-muted); line-height:1.8; font-size:10px; }
.dc-updated b { color:#cedbe1; font-weight:500; }
.dc-metrics { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; margin-bottom:16px; }
.dc-metric { min-width:0; padding:20px 16px 16px; background:#172935; border:1px solid var(--dc-border); border-radius:12px; }
.dc-metric>span { color:#a2b4be; font-size:11px; }
.dc-metric strong { display:block; margin:13px 0 12px; color:#f0f5f7; font-size:clamp(19px,1.7vw,30px); font-weight:650; overflow-wrap:anywhere; letter-spacing:-.025em; }
.dc-metric small { display:block; color:var(--dc-muted); font-size:10px; line-height:1.8; }.dc-metric small span { margin-right:8px; }
.dc-positive,.dc-metric.dc-positive strong { color:#72ddc3; }.dc-negative,.dc-metric.dc-negative strong { color:#f58793; }
.dc-main-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.65fr) minmax(0,.8fr); gap:16px; }
.dc-panel { min-width:0; padding:20px; background:#14242f; border:1px solid var(--dc-border); border-radius:12px; }
.dc-panel-head { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; margin-bottom:17px; }
.dc-panel-head h2 { margin:0; color:#e3eef3; font-size:14px; font-weight:650; }
.dc-panel-head p { margin:6px 0 0; color:var(--dc-muted); font-size:10px; }
.dc-trends { grid-column:span 2; }.dc-trends svg { display:block; width:100%; max-height:270px; overflow:visible; }.dc-trends svg text { fill:#8fa7b4; font:10px sans-serif; }.dc-trends svg .dc-chart-value { fill:#ccdee6; font-size:10px; }
.dc-segments { display:flex; gap:4px; padding:3px; background:#0e1c26; border-radius:7px; }.dc-segments button { border:0; padding:6px 9px; background:transparent; color:#8ca6b5; font-size:10px; }.dc-segments button.selected { background:#29424d; color:#85e0cc; }
.dc-chart-foot { display:flex; justify-content:space-between; gap:10px; margin-top:6px; padding-top:13px; border-top:1px solid #253a47; color:var(--dc-muted); font-size:10px; }.dc-chart-foot b { color:#c6d9e3; font-weight:500; }.dc-chart-empty { margin:0 0 8px; text-align:center; font-size:11px; color:var(--dc-muted); }
.dc-distribution { display:flex; align-items:center; justify-content:center; gap:20px; min-height:208px; }.dc-donut { display:grid; place-items:center; flex:0 0 auto; width:148px; height:148px; border-radius:50%; background:conic-gradient(#6ddac4 0 var(--long-share),var(--empty) var(--long-share) 100%); }.dc-donut>div { display:grid; place-content:center; gap:5px; width:123px; height:123px; border-radius:50%; background:#14242f; text-align:center; }.dc-donut strong { font-size:32px; color:#eef5f8; }.dc-donut small { color:var(--dc-muted); font-size:10px; }.dc-legend { min-width:73px; }.dc-legend p { display:flex; align-items:center; gap:6px; font-size:11px; color:#a6bbc7; }.dc-legend b { margin-left:auto; color:#e6f0f5; }.dc-legend i { width:6px; height:6px; border-radius:50%; background:#6ddac4; }.dc-legend i.short { background:#f58793; }
.dc-note { color:#7f99a7; font-size:10px; line-height:1.8; margin:14px 0 0; }
.dc-rank { display:grid; grid-template-columns:20px minmax(0,1fr) auto; align-items:center; gap:8px; padding:10px 0; border-bottom:1px solid #243844; }.dc-rank:last-child { border-bottom:0; }.dc-rank>span { color:#639f9c; font-size:11px; }.dc-rank strong { display:block; color:#dce9ee; font-size:11px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.dc-rank small { color:#7e97a5; font-size:9px; }.dc-rank>b { color:#c5d9e2; font-size:12px; font-weight:500; }
.dc-activity { grid-column:span 2; }.dc-board .dc-link { padding:0; background:transparent; border:0; color:#7dd6c4; font-size:11px; white-space:nowrap; }
.dc-table-wrap { overflow-x:auto; }.dc-board table { width:100%; border-collapse:collapse; background:transparent; white-space:nowrap; }.dc-board th { color:#7f9aa9; background:transparent; padding:9px 8px; text-align:left; border-bottom:1px solid #2d414e; font-size:10px; font-weight:500; }.dc-board td { color:#b5c9d5; padding:12px 8px; border-bottom:1px solid #233944; font-size:10px; }.dc-board tr:last-child td { border:0; }.dc-board td strong { font-weight:500; color:#e3edf2; }.dc-board td small { display:inline-block; margin-left:8px; font-size:9px; }.dc-board tbody tr:hover { background:#192f3b; }.dc-state { display:inline-block; padding:3px 6px; background:#243c47; color:#a1cfc3; border-radius:4px; font-size:9px; }.dc-state-warning { color:#e9bb84; background:#3b342f; }
.dc-bottom-grid { display:grid; grid-template-columns:1.2fr 1fr; gap:16px; margin-top:16px; }.dc-queue { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; padding:5px 0 17px; border-bottom:1px solid #293e4a; }.dc-queue strong { display:block; margin-bottom:7px; font-size:23px; font-weight:500; color:#e6eef4; }.dc-queue span { font-size:10px; color:#8da7b6; }.dc-switches { display:flex; flex-wrap:wrap; gap:12px 18px; margin-top:17px; }.dc-switches span { display:flex; align-items:center; gap:5px; font-size:10px; color:#a3bac8; }.dc-switches b { font-size:9px; font-weight:400; color:#78929e; }.dc-switches i { width:5px; height:5px; border-radius:50%; background:#617585; }.dc-switches i.on { background:#6ddac4; }
.dc-spot-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }.dc-spot-grid span { display:block; color:#93acba; font-size:10px; margin-bottom:9px; }.dc-spot-grid strong { font-size:20px; font-weight:550; overflow-wrap:anywhere; }.dc-spot-grid strong small { font-size:12px; color:#829aa7; }
.dc-foot { margin-top:18px; color:#6f8c9d; font-size:10px; line-height:1.9; }.dc-foot span { display:block; color:#728a98; }.dc-error { padding:14px; margin:0 0 16px; border:1px solid #866849; border-radius:8px; background:#382e28; color:#f1c18a; font-size:12px; }.dc-error[hidden] { display:none; }.dc-loading,.dc-empty { color:#8fa9b7; padding:20px 0; text-align:center; font-size:12px; }
@media(min-width:1800px) { .dc-metric strong { font-size:32px; }.dc-distribution { gap:30px; } }
/* 大屏压缩留白和图表高度，保留完整数据；较矮屏幕仍允许滚动查看。 */
@media(min-width:1400px) {
    #dashboard-root:fullscreen { padding:14px; }
    #dashboard-root:fullscreen .dc-board { padding:20px; }
    #dashboard-root:fullscreen .dc-head { margin-bottom:16px; }
    #dashboard-root:fullscreen .dc-head h1 { font-size:25px; }
    #dashboard-root:fullscreen .dc-metric { padding:14px; }
    #dashboard-root:fullscreen .dc-metric strong { margin:8px 0; font-size:27px; }
    #dashboard-root:fullscreen .dc-main-grid,#dashboard-root:fullscreen .dc-bottom-grid { gap:12px; }
    #dashboard-root:fullscreen .dc-panel { padding:14px; }
    #dashboard-root:fullscreen .dc-panel-head { margin-bottom:10px; }
    #dashboard-root:fullscreen .dc-trends svg { max-height:165px; }
    #dashboard-root:fullscreen .dc-distribution { min-height:174px; }
    #dashboard-root:fullscreen .dc-rank { padding:4px 0; }
    #dashboard-root:fullscreen td { padding:9px 8px; }
    #dashboard-root:fullscreen .dc-queue { padding-bottom:10px; }
    #dashboard-root:fullscreen .dc-spot-grid { gap:13px; }
    #dashboard-root:fullscreen .dc-note { margin-top:10px; }
    #dashboard-root:fullscreen .dc-foot { margin-top:12px; }
}
@media(max-width:1250px) { .dc-head { align-items:flex-start; }.dc-tools { max-width:310px; }.dc-metrics { grid-template-columns:repeat(3,minmax(0,1fr)); }.dc-main-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.dc-trends { grid-column:span 2; }.dc-activity { grid-column:span 2; }.dc-bottom-grid { grid-template-columns:1fr; }.dc-distribution { min-height:190px; } }
@media(max-width:700px) { .dc-board { padding:15px; border-radius:12px; }.dc-head { display:block; }.dc-head h1 { font-size:25px; }.dc-tools { max-width:none; justify-content:flex-start; margin-top:20px; }.dc-updated { width:100%; }.dc-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }.dc-metric { padding:14px 11px; }.dc-metric:last-child { grid-column:span 2; }.dc-main-grid { grid-template-columns:1fr; }.dc-main-grid>* { grid-column:span 1; }.dc-panel { padding:16px; }.dc-panel-head { flex-wrap:wrap; }.dc-chart-foot { flex-direction:column; }.dc-board td { padding:12px 8px; }.dc-queue { gap:5px; }.dc-queue span { font-size:9px; }#dashboard-root:fullscreen { padding:10px; } }
