/* realtime.css —— 原 HTML 行 452-771 */

  /* ─────────── 创意页面 ─────────── */
  /* ─────────── 实时数据（一级菜单） ─────────── */
  .rt-page{padding:6px 2px 24px}
  .rt-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:18px;gap:16px;flex-wrap:wrap}
  .rt-title{font-size:22px;font-weight:600;color:var(--text);margin:0;line-height:1.2}
  .rt-sub{font-size:13px;color:var(--text-3);margin:6px 0 0;display:flex;align-items:center;gap:8px}
  .rt-pulse{display:inline-block;width:8px;height:8px;border-radius:50%;background:#00b42a;animation:rt-pulse 1.5s ease-in-out infinite;box-shadow:0 0 0 0 rgba(0,180,42,0.5)}
  @keyframes rt-pulse{0%{box-shadow:0 0 0 0 rgba(0,180,42,0.5)}70%{box-shadow:0 0 0 8px rgba(0,180,42,0)}100%{box-shadow:0 0 0 0 rgba(0,180,42,0)}}
  .rt-header-actions{display:flex;align-items:center;gap:10px}
  .rt-date-tabs{display:inline-flex;background:var(--bg-2);border-radius:6px;padding:2px;gap:1px}
  .rt-date-tabs button{padding:6px 14px;border:none;background:transparent;cursor:pointer;font-family:inherit;font-size:12.5px;color:var(--text-3);border-radius:5px;transition:all .15s;font-weight:400}
  .rt-date-tabs button:hover{color:var(--text)}
  .rt-date-tabs button.active{background:var(--panel);color:var(--primary);font-weight:500;box-shadow:0 1px 3px rgba(0,0,0,0.05)}
  .rt-refresh-btn{width:32px;height:32px;border:1px solid var(--line);background:var(--panel);border-radius:6px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:var(--text-3);transition:all .15s}
  .rt-refresh-btn:hover{color:var(--primary);border-color:var(--primary)}
  .rt-refresh-btn:active svg{transform:rotate(180deg);transition:transform .4s}

  /* KPI 卡片行 - 企业级简约风 */
  .rt-kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}
  .rt-kpi-card{
    position:relative;
    background:var(--panel);
    border:1px solid var(--line);
    border-radius:12px;
    padding:20px 22px 16px;
    transition:all .2s;
    overflow:hidden;
  }
  .rt-kpi-card:hover{box-shadow:0 6px 20px rgba(0,0,0,0.06);border-color:var(--line-mid);transform:translateY(-1px)}

  .rt-kpi-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}
  .rt-kpi-label{
    display:inline-flex;align-items:center;gap:7px;
    font-size:13px;color:var(--text-2);font-weight:400;
    position:relative;padding-bottom:8px;
  }
  /* 标签下面的短色条：放在标签下方，长度等于标签宽度 */
  .rt-kpi-label::after{
    content:'';
    position:absolute;left:13px;bottom:0;
    width:36px;height:2px;border-radius:1px;
    background:var(--rt-kpi-color, #1664ff);
  }
  .rt-kpi-card[data-kpi="uv"]{--rt-kpi-color:#1664ff}
  .rt-kpi-card[data-kpi="orders"]{--rt-kpi-color:#fe0338}
  .rt-kpi-card[data-kpi="conv"]{--rt-kpi-color:#00b42a}
  .rt-kpi-card[data-kpi="online"]{--rt-kpi-color:#ff7d00}
  .rt-kpi-dot{width:6px;height:6px;border-radius:50%;display:inline-block}
  .rt-kpi-dot-pulse{animation:rt-pulse 1.5s ease-in-out infinite}

  .rt-kpi-delta{
    display:inline-flex;align-items:center;gap:3px;
    font-size:12px;font-weight:500;font-family:"Inter";
    padding:3px 8px;border-radius:4px;
    background:var(--bg-2);color:var(--text-3);
  }
  .rt-kpi-delta.up{background:#fff0f0;color:#f53f3f}
  .rt-kpi-delta.down{background:#e8f8ed;color:#00b42a}
  .rt-kpi-live{
    background:linear-gradient(90deg,#ff7d00,#ffa047)!important;
    color:#fff!important;
    letter-spacing:0.5px;font-size:10.5px;font-weight:600;
    padding:3px 7px;
    box-shadow:0 1px 4px rgba(255,125,0,0.3);
  }

  .rt-kpi-value{
    font-family:"Inter",-apple-system,sans-serif;
    font-size:32px;font-weight:500;
    color:var(--text);
    line-height:1.1;letter-spacing:-0.5px;
    margin-bottom:14px;
    display:flex;align-items:baseline;gap:2px;
  }
  .rt-kpi-unit{font-size:18px;font-weight:400;color:var(--text-2);margin-left:2px}

  .rt-kpi-foot{
    display:flex;justify-content:space-between;align-items:flex-end;gap:10px;
    height:32px;
  }
  .rt-kpi-foot-label{
    font-size:11.5px;color:var(--text-4);line-height:1.2;
    display:flex;flex-direction:column;gap:2px;align-self:flex-end;
  }
  .rt-kpi-yest{font-family:"Inter";color:var(--text-3);font-weight:500}
  .rt-kpi-spark{
    flex:none;
    width:90px;height:32px;
    display:block;
  }
  @keyframes rt-pulse{
    0%{box-shadow:0 0 0 0 rgba(255,125,0,0.5)}
    70%{box-shadow:0 0 0 6px rgba(255,125,0,0)}
    100%{box-shadow:0 0 0 0 rgba(255,125,0,0)}
  }

  /* 最新访客 */
  .rt-latest-card{margin-bottom:18px}
  .rt-latest-list{display:flex;overflow-x:auto;gap:10px;padding:14px 18px;scrollbar-width:thin}
  .rt-latest-list::-webkit-scrollbar{height:4px}
  .rt-latest-list::-webkit-scrollbar-thumb{background:var(--line-mid);border-radius:2px}
  .rt-latest-item{flex:none;display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:var(--bg-2);min-width:280px;transition:all .15s}
  .rt-latest-item:hover{border-color:var(--primary);background:var(--panel)}
  .rt-latest-item.ordered{border-color:#00b42a40;background:#f0fff4}
  .rt-latest-icon{width:30px;height:30px;border-radius:50%;background:var(--panel);display:flex;align-items:center;justify-content:center;color:var(--text-3);flex:none}
  .rt-latest-item.ordered .rt-latest-icon{background:#00b42a;color:#fff}
  .rt-latest-text{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
  .rt-latest-line1{font-size:12.5px;color:var(--text);display:flex;align-items:center;gap:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .rt-latest-line1 .ip-mini{font-family:"Inter";font-size:11px;color:var(--text-3)}
  .rt-latest-line2{font-size:11px;color:var(--text-4);font-family:"Inter"}

  /* 中部 - 图表+省份 */
  .rt-mid-row{display:grid;grid-template-columns:1fr 360px;gap:14px;margin-bottom:18px}
  .rt-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden}
  .rt-card-head{padding:14px 18px;border-bottom:1px solid var(--line-soft);display:flex;justify-content:space-between;align-items:center}
  .rt-card-head h3{margin:0;font-size:14px;font-weight:500;color:var(--text)}
  .rt-card-hint{font-size:12px;color:var(--text-4)}
  .rt-legend{display:flex;gap:14px;font-size:12px;color:var(--text-3)}
  .rt-legend-item{display:inline-flex;align-items:center;gap:5px}
  .rt-legend-item .dot{width:8px;height:8px;border-radius:50%;display:inline-block}
  .rt-chart-card{padding-bottom:6px}
  .rt-chart-body{padding:14px 18px 8px}
  .rt-chart-body svg{display:block;max-width:100%}

  /* 省份列表 */
  .rt-prov-body{padding:8px 0}
  .rt-prov-item{display:flex;align-items:center;gap:10px;padding:8px 18px;font-size:12.5px;transition:background .12s}
  .rt-prov-item:hover{background:var(--bg-2)}
  .rt-prov-rank{width:18px;height:18px;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;font-family:"Inter";font-size:11px;font-weight:600;background:var(--bg-2);color:var(--text-3);flex:none}
  .rt-prov-rank.top1{background:#fe0338;color:#fff}
  .rt-prov-rank.top2{background:#ff7d00;color:#fff}
  .rt-prov-rank.top3{background:#ffb800;color:#fff}
  .rt-prov-name{flex:none;width:64px;color:var(--text)}
  .rt-prov-bar{flex:1;height:6px;background:var(--bg-2);border-radius:3px;position:relative;overflow:hidden}
  .rt-prov-bar-fill{position:absolute;left:0;top:0;height:100%;background:linear-gradient(90deg,#1664ff,#3b8bff);border-radius:3px;transition:width .3s}
  .rt-prov-val{font-family:"Inter";font-size:12px;font-weight:500;color:var(--text-2);width:48px;text-align:right;flex:none}

  /* Tab 切换 */
  .rt-tabs{display:flex;gap:0;border-bottom:1px solid var(--line);margin-bottom:14px}
  .rt-tabs button{padding:10px 18px;border:none;background:transparent;cursor:pointer;font-family:inherit;font-size:14px;color:var(--text-3);border-bottom:2px solid transparent;transition:all .15s;margin-bottom:-1px;font-weight:400}
  .rt-tabs button:hover{color:var(--text)}
  .rt-tabs button.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:400}

  /* Tab 内容工具栏 */
  .rt-table-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;gap:12px;flex-wrap:wrap}
  .rt-filter-group{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
  .rt-select{padding:7px 28px 7px 12px;border:1px solid var(--line);border-radius:6px;font-size:12.5px;color:var(--text-2);background:var(--panel);cursor:pointer;outline:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:10px}
  .rt-select:hover{border-color:var(--line-mid)}
  .rt-select:focus{border-color:var(--primary)}
  .rt-search{position:relative;display:inline-flex;align-items:center}
  .rt-search svg{position:absolute;left:10px;color:var(--text-4)}
  .rt-search input{padding:7px 12px 7px 30px;border:1px solid var(--line);border-radius:6px;font-size:12.5px;color:var(--text);background:var(--panel);outline:none;width:220px;transition:border-color .15s}
  .rt-search input:focus{border-color:var(--primary)}
  .rt-search input::placeholder{color:var(--text-4)}
  .rt-hint{font-size:12.5px;color:var(--text-3)}
  .rt-hint b{color:var(--text);font-weight:500;font-family:"Inter"}

  /* 表格 */
  .rt-table-wrap{background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow-x:auto}
  .rt-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;min-width:900px}
  .rt-table thead th{background:var(--bg-2);font-weight:400;font-size:12.5px;color:var(--text-3);text-align:center;padding:12px 16px;border-bottom:1px solid var(--line);white-space:nowrap}
  .rt-table tbody td{padding:12px 16px;font-size:13px;color:var(--text);border-bottom:1px solid var(--line-soft);text-align:center;transition:background .12s}
  .rt-table tbody tr:hover td{background:var(--bg-2)}
  .rt-table tbody tr:last-child td{border-bottom:none}
  .rt-th-sortable{cursor:pointer;user-select:none}
  .rt-th-sortable:hover{color:var(--text)}
  .rt-page-type-tag{display:inline-block;padding:2px 8px;border-radius:3px;font-size:11px;font-weight:500}
  .rt-page-type-tag.creative{background:#e6f3ff;color:#1664ff}
  .rt-page-type-tag.collection{background:#fff5e6;color:#ff7d00}
  .rt-page-type-tag.standalone{background:#f0f3f5;color:var(--text-2)}
  .rt-num{font-family:"Inter";color:var(--text)}
  .rt-percent{font-family:"Inter"}
  .rt-percent.high{color:#00b42a;font-weight:500}
  .rt-percent.low{color:var(--text-3)}
  .rt-empty-cell{padding:60px 20px;text-align:center;color:var(--text-4)}

  /* 访客行可点击 */
  .rt-visitor-row{cursor:pointer}
  .rt-visitor-row.expanded td{background:#f7faff}
  .rt-visitor-detail-row td{background:#fafbfc;padding:0!important;border-bottom:2px solid var(--line-soft)}
  .rt-visitor-detail{padding:16px 24px;display:grid;grid-template-columns:repeat(4,1fr);gap:14px 24px;font-size:12.5px}
  .rt-visitor-detail-item{display:flex;flex-direction:column;gap:3px}
  .rt-visitor-detail-item .lbl{font-size:11px;color:var(--text-4);text-transform:uppercase;letter-spacing:0.5px}
  .rt-visitor-detail-item .val{color:var(--text);font-family:"Inter"}
  .rt-visitor-detail-item .val.highlight{color:var(--primary);font-weight:500}
  .rt-history-ips{grid-column:1/-1;padding-top:10px;border-top:1px dashed var(--line)}
  .rt-history-ips .hist-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
  .rt-history-ips .hist-item{padding:2px 8px;background:var(--bg-2);border-radius:3px;font-family:"Inter";font-size:11.5px;color:var(--text-3)}

  /* 访客列表特定样式 */
  .rt-time{font-family:"Inter";font-size:12.5px;color:var(--text-2)}
  .rt-ip{font-family:"Inter","Menlo";font-size:11.5px;color:var(--text-2);background:#f7f8fa;padding:2px 6px;border-radius:3px}
  .rt-ordered-yes{display:inline-flex;align-items:center;gap:4px;color:var(--down);font-size:12px}
  .rt-ordered-no{color:var(--text-4);font-size:12px}
  .rt-ua-tag{display:inline-block;padding:1px 6px;border-radius:3px;font-size:11px;background:#f0f3f5;color:var(--text-3)}

  /* 趋势 grid */
  .rt-trend-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}

  /* 来源列表 */
  .rt-source-list{padding:14px 18px}
  .rt-source-item{display:flex;align-items:center;gap:10px;padding:8px 0;font-size:12.5px}
  .rt-source-name{flex:none;width:80px;color:var(--text)}
  .rt-source-bar{flex:1;height:8px;background:var(--bg-2);border-radius:4px;overflow:hidden}
  .rt-source-bar-fill{height:100%;border-radius:4px;transition:width .3s}
  .rt-source-val{font-family:"Inter";font-size:12px;color:var(--text-2);width:90px;text-align:right;flex:none}

  /* UP 主排行 */
  .rt-up-rank-list{padding:6px 0}
  .rt-up-item{display:flex;align-items:center;gap:12px;padding:10px 18px;transition:background .12s}
  .rt-up-item:hover{background:var(--bg-2)}
  .rt-up-info{flex:1;min-width:0}
  .rt-up-name{font-size:13px;color:var(--text);font-weight:500}
  .rt-up-meta{font-size:11.5px;color:var(--text-3);margin-top:3px;font-family:"Inter"}

  /* 漏斗 - 水平条形（Mixpanel / Amplitude 风格） */
  .rt-funnel-list{padding:20px 22px 14px}
  .rt-fn-rows{display:flex;flex-direction:column;gap:2px}
  .rt-fn-row{
    display:grid;
    grid-template-columns:180px 1fr 110px;
    gap:24px;
    align-items:center;
    padding:14px 0;
    border-bottom:1px solid var(--line-soft);
  }
  .rt-fn-row:last-child{border-bottom:none}

  .rt-fn-left{display:flex;align-items:center;gap:10px;min-width:0}
  .rt-fn-num{
    flex:none;
    width:24px;height:24px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    color:#fff;font-size:12px;font-weight:500;font-family:"Inter";
  }
  .rt-fn-info{min-width:0;flex:1}
  .rt-fn-label{font-size:13px;color:var(--text);font-weight:400;line-height:1.2}
  .rt-fn-desc{font-size:11.5px;color:var(--text-4);margin-top:3px;line-height:1.2}

  .rt-fn-mid{min-width:0}
  .rt-fn-bar-track{
    position:relative;
    height:22px;
    background:var(--bg-2);
    border-radius:4px;
    overflow:hidden;
  }
  .rt-fn-bar-fill{
    height:100%;
    border-radius:4px;
    transition:width .5s cubic-bezier(.4,0,.2,1);
  }
  .rt-fn-bar-count{
    position:absolute;left:10px;top:50%;transform:translateY(-50%);
    font-family:"Inter";font-size:12px;font-weight:500;
    color:#fff;
    z-index:2;
  }
  .rt-fn-drop{
    font-size:11.5px;color:var(--text-3);
    margin-top:6px;line-height:1.2;
  }
  .rt-fn-drop-start{color:var(--text-4)}

  .rt-fn-right{text-align:right}
  .rt-fn-pct{
    font-family:"Inter";
    font-size:20px;font-weight:500;
    line-height:1;
    display:inline-flex;align-items:baseline;
  }
  .rt-fn-pct-unit{font-size:12px;font-weight:400;margin-left:1px}
  .rt-fn-pct-label{
    font-size:11.5px;color:var(--text-4);
    margin-top:4px;
  }

  /* 洞察建议条 */
  .rt-funnel-insight{
    margin-top:16px;
    padding:12px 16px;
    background:linear-gradient(90deg,#f5f9ff,#fafbff);
    border:1px solid #e6f0ff;
    border-radius:8px;
    display:flex;align-items:center;gap:8px;
    font-size:12.5px;color:var(--text-2);
  }
  .rt-funnel-insight-icon{
    flex:none;width:24px;height:24px;border-radius:6px;
    background:rgba(22,100,255,0.1);
    display:flex;align-items:center;justify-content:center;
  }
  .rt-funnel-insight-label{
    flex:none;color:#1664ff;font-weight:500;font-size:12.5px;
  }
  .rt-funnel-insight-text{flex:1;line-height:1.5}

  /* 响应式：窄屏堆叠 */
  @media (max-width: 980px){
    .rt-fn-row{
      grid-template-columns:1fr;
      gap:10px;
    }
    .rt-fn-right{text-align:left}
  }

  /* 分页 */
  .rt-pagination{display:flex;justify-content:center;align-items:center;gap:6px;padding:18px 0 0}
  .rt-pagination button{min-width:30px;height:30px;padding:0 10px;border:1px solid var(--line);background:var(--panel);border-radius:5px;font-size:12px;color:var(--text-2);cursor:pointer;transition:all .12s}
  .rt-pagination button:hover{border-color:var(--primary);color:var(--primary)}
  .rt-pagination button.active{background:var(--primary);color:#fff;border-color:var(--primary)}
  .rt-pagination button:disabled{opacity:0.4;cursor:not-allowed}

  /* 响应式 */
  @media (max-width: 1280px){
    .rt-mid-row{grid-template-columns:1fr}
    .rt-kpi-row{grid-template-columns:repeat(2,1fr)}
    .rt-trend-grid{grid-template-columns:1fr}
  }
