/* lab-tribunal.css — ⚖️ 鑑定所樣式（tbn- 前綴，避開既有 tb-btn）
   台股慣例：紅漲綠跌 */

.tbn-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:48px 20px;text-align:center;color:var(--muted,#8b949e)}
.tbn-empty-icon{font-size:42px;margin-bottom:10px}
.tbn-empty-title{font-size:17px;font-weight:600;color:var(--fg,#c9d1d9);margin-bottom:6px}
.tbn-empty-sub{font-size:12px;line-height:1.7;margin-bottom:18px;max-width:420px}
.tbn-empty-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:center}

/* 策略清單選擇 */
.tbn-pick{display:flex;flex-direction:column;gap:12px;padding:4px 2px 14px}
.tbn-pick-group{}
.tbn-pick-cat{font-size:11px;font-weight:600;color:var(--muted,#8b949e);
  margin-bottom:6px;padding-left:7px;border-left:3px solid rgba(96,165,250,.5)}
.tbn-pick-chips{display:flex;flex-wrap:wrap;gap:6px}
.tbn-pick-chip{display:inline-flex;align-items:center;gap:5px;
  padding:6px 11px;font-size:12px;color:var(--fg,#c9d1d9);
  background:var(--card,#161b22);border:1px solid var(--line,#21262d);
  border-radius:16px;cursor:pointer;transition:border-color .18s,background .18s,transform .12s}
.tbn-pick-chip:hover{border-color:rgba(239,83,80,.55);background:rgba(239,83,80,.07);transform:translateY(-1px)}
.tbn-pick-ico{font-size:13px}
.tbn-pick-manual{display:flex;gap:8px;align-items:center;justify-content:center;
  padding:12px 0 4px;border-top:1px solid var(--line,#21262d);margin-top:4px}

.tbn-head{display:flex;justify-content:space-between;align-items:center;
  padding:6px 2px 4px;border-bottom:1px solid var(--line,#21262d);margin-bottom:8px}
.tbn-head-label{font-size:14px;font-weight:600;color:var(--fg,#c9d1d9);display:inline-flex;align-items:center;gap:8px}
.tbn-back{width:24px;height:24px;border-radius:6px;border:1px solid var(--line,#21262d);
  background:var(--card,#161b22);color:var(--fg,#c9d1d9);font-size:15px;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;transition:border-color .18s,background .18s}
.tbn-back:hover{border-color:rgba(239,83,80,.5);background:rgba(239,83,80,.08)}
.tbn-status{font-size:11.5px;color:var(--muted,#8b949e)}
.tbn-note{font-size:10.5px;color:var(--muted,#8b949e);background:rgba(96,165,250,.06);
  border-left:3px solid rgba(96,165,250,.35);padding:5px 9px;border-radius:0 5px 5px 0;margin-bottom:12px}

/* Stepper 四關 */
.tbn-stepper{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-bottom:16px}
.tbn-stage{display:flex;gap:9px;align-items:flex-start;padding:9px 11px;
  background:var(--card,#161b22);border:1px solid var(--line,#21262d);border-radius:7px;
  transition:border-color .25s,background .25s}
.tbn-stage-light{width:10px;height:10px;border-radius:50%;margin-top:3px;flex-shrink:0;
  background:#3a4250;transition:background .25s,box-shadow .25s}
.tbn-stage[data-state="pending"] .tbn-stage-light{background:#3a4250}
.tbn-stage[data-state="pass"]{border-color:rgba(239,83,80,.5)}
.tbn-stage[data-state="pass"] .tbn-stage-light{background:#ef5350;box-shadow:0 0 6px rgba(239,83,80,.6)}
.tbn-stage[data-state="fail"]{border-color:rgba(38,166,154,.5);background:rgba(38,166,154,.05)}
.tbn-stage[data-state="fail"] .tbn-stage-light{background:#26a69a;box-shadow:0 0 6px rgba(38,166,154,.6)}
.tbn-stage-title{font-size:12.5px;font-weight:600;color:var(--fg,#c9d1d9)}
.tbn-stage-desc{font-size:10.5px;color:var(--muted,#8b949e);margin-top:2px;line-height:1.5}

/* 判定橫幅 */
.tbn-verdict{padding:11px 14px;border-radius:8px;font-size:14px;font-weight:600;margin-bottom:14px}
.tbn-verdict.tbn-pass{background:rgba(239,83,80,.12);color:#ef5350;border:1px solid rgba(239,83,80,.4)}
.tbn-verdict.tbn-fail{background:rgba(38,166,154,.1);color:#26a69a;border:1px solid rgba(38,166,154,.35)}

.tbn-section-title{font-size:12.5px;font-weight:600;color:var(--fg,#c9d1d9);
  margin:16px 0 8px;padding-left:8px;border-left:3px solid rgba(96,165,250,.5)}

/* 八維風險網格 */
.tbn-risk-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px}
.tbn-risk-card{padding:9px 11px;border-radius:7px;background:var(--card,#161b22);
  border:1px solid var(--line,#21262d)}
.tbn-risk-card.tbn-warn{border-color:rgba(251,191,36,.4);background:rgba(251,191,36,.04)}
.tbn-risk-name{font-size:10.5px;color:var(--muted,#8b949e);margin-bottom:3px}
.tbn-risk-head{font-size:14px;font-weight:600;color:var(--fg,#c9d1d9);margin-bottom:4px}
.tbn-risk-desc{font-size:10.5px;color:var(--muted,#8b949e);line-height:1.55}

/* 圖表 */
.tbn-chart{width:100%;height:240px;background:var(--card,#161b22);
  border:1px solid var(--line,#21262d);border-radius:7px}
.tbn-canvas{width:100%;display:block;background:var(--card,#161b22);
  border:1px solid var(--line,#21262d);border-radius:7px}
.tbn-chart-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.tbn-chart-col{min-width:0}
@media(max-width:640px){.tbn-chart-row{grid-template-columns:1fr}}

/* 月熱力 */
.tbn-heatmap{display:grid;grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:3px}
.tbn-hm-cell{aspect-ratio:1;border-radius:4px;display:flex;flex-direction:column;
  align-items:center;justify-content:center;color:#c9d1d9}
.tbn-hm-m{font-size:8.5px;opacity:.7}
.tbn-hm-v{font-size:11px;font-weight:600}

.tbn-actions{display:flex;gap:8px;margin-top:18px;flex-wrap:wrap}
.tbn-promote{background:linear-gradient(135deg,#ef5350,#c0392b)!important}
.tbn-error{padding:20px;text-align:center;color:#26a69a;font-size:13px}
.tbn-muted{color:var(--muted,#8b949e);font-size:11px;padding:10px}

/* 妖股世代分析 */
.tbn-cohort-chip{border-color:rgba(167,139,250,.4)!important}
.tbn-cohort-chip:hover{border-color:rgba(167,139,250,.7)!important;background:rgba(167,139,250,.08)!important}
.tbn-cohort-table{width:100%;border-collapse:collapse;font-size:12px;margin-bottom:6px}
.tbn-cohort-table th{text-align:left;padding:7px 10px;color:var(--muted,#8b949e);
  font-weight:600;border-bottom:1px solid var(--line,#21262d);font-size:11px}
.tbn-cohort-table td{padding:8px 10px;border-bottom:1px solid rgba(33,38,45,.5);color:var(--fg,#c9d1d9)}
.tbn-cohort-gen2 td{background:rgba(167,139,250,.06)}
.tbn-cohort-sub-row td{color:var(--muted,#8b949e);font-size:11px}
.tbn-cohort-sub{font-size:10px;color:var(--muted,#8b949e);margin-left:3px}
.tbn-cohort-samples{display:flex;flex-direction:column;gap:3px;max-height:320px;overflow-y:auto}
.tbn-cohort-sample{display:flex;align-items:center;gap:10px;padding:6px 10px;
  background:var(--card,#161b22);border:1px solid var(--line,#21262d);border-radius:6px;font-size:12px}
.tbn-cohort-code{font-weight:600;color:var(--fg,#c9d1d9);min-width:48px}
.tbn-cohort-gen{font-size:10.5px;color:var(--muted,#8b949e);flex:1}
.tbn-cohort-gen.g2{color:#a78bfa}
