/* 体验区工具页（/lab/profile/、/lab/chart/）——依赖 site.css 的 :root 变量 */
body.lab-body{margin:0;font:15px/1.7 -apple-system,"Segoe UI","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--bg)}
.lab-top{display:flex;align-items:center;gap:14px;padding:12px 20px;background:var(--card);border-bottom:1px solid var(--line)}
.lab-top .brand{font-weight:800;color:var(--ink);text-decoration:none}
.lab-top nav{display:flex;gap:14px;margin-left:auto}
.lab-top a{color:var(--ink2);text-decoration:none;font-size:13.5px}
.labwrap{max-width:1060px;margin:0 auto;padding:22px 16px 80px}
.labwrap h1{font-size:24px;margin:6px 0 4px}
.labsub{color:var(--ink2);margin:0 0 16px}
.lab-note{background:#eef5ff;border:1px solid #c9dcff;border-radius:10px;padding:10px 14px;color:#1d4ed8;font-size:13.5px;margin:0 0 14px}
.lu-zone{border:2px dashed var(--line);border-radius:14px;padding:34px 16px;text-align:center;cursor:pointer;background:var(--card);display:grid;gap:6px;transition:border-color .15s}
.lu-zone:hover,.lu-zone.over{border-color:var(--acc)}
.lu-zone b{font-size:16px}
.lu-zone span{color:var(--ink2);font-size:13px}
.lab-actions{display:flex;gap:10px;margin:12px 0;flex-wrap:wrap;align-items:center}
.lab-actions button,.lbtn{font:inherit;border:1px solid var(--line);background:var(--card);border-radius:8px;padding:6px 14px;cursor:pointer}
.lab-actions button.primary,.lbtn.primary{background:var(--ink);color:#fff;border-color:var(--ink)}
.sheetbar{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}
.sheetbar button{border-radius:999px;border:1px solid var(--line);background:var(--card);padding:3px 12px;font-size:12.5px;cursor:pointer}
.sheetbar button.on{background:var(--ink);color:#fff}
.sumcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:12px 0}
.sumcards .sc{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px 14px}
.sumcards .sc b{font-size:20px;display:block}
.sumcards .sc span{color:var(--ink2);font-size:12.5px}
table.ftab{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:10px;overflow:hidden;font-size:13.5px}
table.ftab th,table.ftab td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
table.ftab th{background:var(--bg);font-size:12.5px;color:var(--ink2)}
table.ftab tr.frow{cursor:pointer}
table.ftab tr.frow:hover{background:#f6f9ff}
.sug{display:inline-block;font-size:12px;border-radius:6px;padding:1px 8px;margin:1px 3px 1px 0;border:1px solid #d9c39a;background:#fdf6e3;color:#8a6d1a;white-space:nowrap}
.sug.warn{border-color:#e5b8b8;background:#fdeeee;color:#a33}
.sug.good{border-color:#b9dcc2;background:#eef8f0;color:#1d7a4f}
.dist{background:#fafbf5;border:1px solid var(--line);border-radius:8px;margin:6px 0 14px;padding:10px 12px}
.dist .drow{display:flex;gap:10px;align-items:baseline;padding:2px 0;font-size:13px}
.dist .drow .dv{min-width:200px;font-family:Consolas,monospace}
.dist .drow .dc{color:var(--ink2)}
.dist input{font:inherit;padding:4px 8px;border:1px solid var(--line);border-radius:6px;margin-bottom:6px}
/* 看板 */
.dash{display:grid;gap:14px}
.ccard{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.ccard .chead{display:flex;align-items:center;gap:8px;flex-wrap:wrap;cursor:grab}
.ccard .chead .ct{font-weight:700;font-size:15px;margin-right:auto}
.ccard select,.ccard input[type=text]{font:inherit;font-size:13px;border:1px solid var(--line);border-radius:6px;padding:4px 8px;max-width:170px;background:#fff}
.ccard .cttabs{display:flex;gap:4px;flex-wrap:wrap;margin:8px 0}
.ccard .cttabs button{border:1px solid var(--line);background:var(--bg);border-radius:6px;padding:3px 10px;font-size:12.5px;cursor:pointer}
.ccard .cttabs button.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.ccfg{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:8px}
.ccfg label{display:flex;gap:5px;align-items:center;font-size:12.5px;color:var(--ink2)}
.metrics-row{display:flex;gap:8px;flex-wrap:wrap}
.filters-box{margin:8px 0;border-top:1px dashed var(--line);padding-top:8px}
.frow2{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
.frow2 .fjoin{font-size:12px;color:var(--ink2);width:34px}
.chartbox{height:320px;margin-top:6px;overflow:hidden} /* 裁掉隐藏 tooltip 残留的绝对定位 div——否则窄屏下产生幽灵横向滚动 */
.kpir{display:flex;gap:12px;flex-wrap:wrap;padding:16px 0}
.kpir .kpi{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:12px 22px;text-align:center}
.kpir .kpi b{display:block;font-size:26px}
.kpir .kpi span{color:var(--ink2);font-size:12.5px}
.drillmask{position:fixed;inset:0;background:rgba(15,18,25,.45);display:flex;align-items:center;justify-content:center;padding:18px;z-index:50}
.drillbox{background:#fff;border-radius:14px;max-width:960px;width:100%;max-height:86vh;overflow:auto;padding:18px 20px}
.drillbox h3{margin:0 0 4px}
.drillcols{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}
.drillcols label{font-size:12.5px;color:var(--ink2);display:flex;gap:4px;align-items:center}
.tpmenu{position:relative;display:inline-block}
.tpmenu .tpd{display:none;position:absolute;right:0;top:110%;background:#fff;border:1px solid var(--line);border-radius:8px;padding:6px;min-width:150px;z-index:30;box-shadow:0 6px 18px rgba(20,24,40,.12)}
.tpmenu.open .tpd{display:block}
.tpmenu .tpd button{display:block;width:100%;text-align:left;border:0;background:none;padding:7px 10px;border-radius:6px;font:inherit;font-size:13px;cursor:pointer}
.tpmenu .tpd button:hover{background:var(--bg)}
@media(max-width:640px){.ccard .chead{cursor:default}.labwrap{padding:16px 12px 70px}#result{overflow-x:auto}table.ftab{min-width:560px}}
