/* ===== 金龙营销云平台 · 子页面通用样式 ===== */
:root{--bg:#f5f5f7;--surface:#fff;--text:#1d1d1f;--text2:#6e6e73;--text3:#aeaeb2;--blue:#0071e3;--blue-h:#0077ed;--green:#34c759;--orange:#ff9500;--red:#ff3b30}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:-apple-system,"Helvetica Neue","SF Pro SC","PingFang SC",sans-serif;background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased}

/* Container */
.container{max-width:1200px;margin:0 auto;padding:24px 28px}

/* Header */
.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding:0 0 16px;border-bottom:1px solid #e8e8ed;flex-wrap:wrap;gap:12px}
.page-header h1{font-size:22px;font-weight:700;letter-spacing:-.3px}
.page-header .sub{font-size:13px;color:var(--text2);margin-top:2px}
.page-header a,.hdr-btn{display:inline-flex;align-items:center;gap:4px;padding:6px 16px;background:var(--blue);color:#fff;border:none;border-radius:50px;font-size:12px;font-weight:500;font-family:inherit;cursor:pointer;text-decoration:none;transition:all .2s;white-space:nowrap}
.page-header a:hover,.hdr-btn:hover{background:var(--blue-h);box-shadow:0 3px 10px rgba(0,113,227,.25)}
.header-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:10px}
.header-bar h1{font-size:22px;font-weight:700;letter-spacing:-.3px}
.header-actions{display:flex;align-items:center;gap:8px}

/* Tabs */
.tab-nav{display:flex;gap:2px;margin-bottom:16px;overflow-x:auto}
.tab-btn{padding:8px 18px;border:1px solid transparent;background:var(--surface);color:var(--text2);font-size:13px;font-weight:500;cursor:pointer;border-radius:8px 8px 0 0;font-family:inherit;transition:all .2s}
.tab-btn:hover{background:#e8e8ed;color:var(--text)}
.tab-btn.active{background:var(--surface);color:var(--blue);font-weight:600;border-bottom:2px solid var(--blue);box-shadow:0 -1px 4px rgba(0,0,0,.04)}

/* Tab content */
.tab-content{display:none;background:var(--surface);border-radius:0 10px 10px;box-shadow:0 1px 4px rgba(0,0,0,.04);padding:20px}
.tab-content.active{display:block}

/* Dim bar */
.dim-bar{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap;align-items:center}
.dim-group{display:flex;align-items:center;gap:6px}
.dim-group label{font-size:13px;color:var(--text2);font-weight:500}
.dim-group select{padding:6px 10px;border:1.5px solid #d2d2d7;border-radius:8px;font-size:13px;background:#fff;color:var(--text);font-family:inherit;outline:none;min-width:90px}
.dim-group select:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,113,227,.12)}

/* Tables */
.table-wrap{overflow-x:auto;max-height:600px;overflow-y:auto;border-radius:8px;border:1px solid #e8e8ed}
.pivot-table{width:100%;border-collapse:collapse;font-size:13px}
.pivot-table th,.pivot-table td{border:1px solid #e8e8ed;padding:6px 10px;text-align:right;white-space:nowrap}
.pivot-table th{background:#f5f5f7;color:var(--text);font-weight:600;position:sticky;top:0;z-index:1;text-align:center;font-size:12px}
.pivot-table td{color:var(--text)}
.pivot-table .row-label{text-align:left;font-weight:500;background:#fafafa;position:sticky;left:0}
.pivot-table .total{background:#fff8e1;font-weight:600}
.pivot-table .num{font-variant-numeric:tabular-nums}
.pivot-table .highlight{background:#e8f0fe}

/* Charts */
.chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}
.chart-box{background:#fafbfc;border:1px solid #e8e8ed;border-radius:12px;padding:16px}
.chart-box h3{font-size:14px;color:var(--text2);margin-bottom:10px;text-align:center;font-weight:600}

/* Loading */
.loading{text-align:center;padding:60px;color:var(--text2);font-size:14px}
.loading .spinner{display:inline-block;width:24px;height:24px;border:3px solid #e8e8ed;border-top-color:var(--blue);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:12px}
@keyframes spin{to{transform:rotate(360deg)}}
.error-msg{text-align:center;padding:40px;color:var(--red)}

/* Filter tags */
.filter-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.filter-tag{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;background:#f5f5f7;border-radius:12px;font-size:12px;color:var(--text2);cursor:pointer}
.filter-tag:hover{background:#e8e8ed}
.filter-tag .x{font-weight:700;margin-left:2px}

/* Responsive */
@media(max-width:768px){
  .container{padding:14px 14px}
  .page-header{flex-direction:column;align-items:flex-start}
  .page-header h1{font-size:18px}
  .chart-grid{grid-template-columns:1fr}
  .tab-btn{font-size:12px;padding:6px 12px}
  .dim-bar{flex-direction:column;align-items:stretch}
}
/* v2 */
