/* 紧凑天梯仅作用于主表，断板及涨停详情保持独立。 */
.ladder-table-head { display:flex; align-items:baseline; flex-wrap:wrap; gap:6px 20px; padding:8px 2px; }
.ladder-table-head strong { font-size:15px; color:var(--ink); font-weight:750; }
.ladder-table-head span { color:var(--muted); font-size:12px; line-height:1.45; }
.ladder-table { border:1px solid var(--line); border-radius:8px; background:var(--card); margin-bottom:18px; }
.ladder-table .ladder-table-row { align-items:stretch; padding:0; gap:0; border-bottom:1px solid var(--line); }
.ladder-table .lad2-label { width:52px; display:flex; align-items:center; justify-content:center; background:var(--surface); border-right:1px solid var(--line); padding:6px 3px; margin:0; }
.ladder-table .lad2-label .hbadge { background:none; color:var(--ink); padding:0; font-size:12.5px; font-weight:700; }
.ladder-table .plain { color:var(--ink); }
.ladder-table .lad2-cards { display:grid; grid-template-columns:repeat(auto-fill,88px); align-items:start; justify-content:start; gap:4px; padding:6px; }
.ladder-table .ladder-cell { position:relative; min-width:0; width:auto; padding:2px; border:0; border-radius:4px; background:transparent; box-shadow:none; text-align:center; }
.ladder-table .ladder-cell.space { background:var(--up-bg); box-shadow:inset 0 2px var(--up); }
.ladder-table .ladder-seal { height:18px; font-size:11px; line-height:18px; color:var(--muted); font-variant-numeric:tabular-nums; }
.ladder-oneword { display:inline-block; background:var(--up); color:white; border-radius:4px; line-height:17px; padding:0 5px; font-size:10px; }
.ladder-table .ladder-cell .ladder-name { display:block; width:100%; min-height:24px; border:0; background:none; padding:0; font-size:12.5px; line-height:1.45; color:var(--ink); font-weight:700; white-space:normal; overflow-wrap:anywhere; }
.ladder-table .ladder-auction-star { display:inline-block; color:var(--warn); font-size:10px; line-height:1; margin-left:2px; white-space:nowrap; vertical-align:1px; }
.ladder-star-note { color:var(--muted); font-size:11px; line-height:1.6; padding:4px 2px; }
.ladder-star-note > span { display:block; font-size:10px; }
.ladder-auction-facts { margin-top:6px; padding-top:6px; border-top:1px solid var(--line); color:var(--muted); font-size:11px; line-height:1.6; overflow-wrap:anywhere; }
.ladder-auction-facts small { display:block; font-size:10px; }
.ladder-table .ladder-primary { display:block; width:100%; min-height:20px; border:0; background:none; padding:1px 0; color:var(--theme-neutral); font-size:11px; line-height:1.4; white-space:normal; overflow-wrap:anywhere; }
.ladder-table button:hover { text-decoration:underline; }
.ladder-table button:focus-visible,.ladder-detail summary:focus-visible { outline:2px solid var(--teal); outline-offset:2px; }
.ladder-detail summary { cursor:pointer; color:var(--muted); font-size:10px; list-style:none; line-height:18px; }
.ladder-detail summary::-webkit-details-marker { display:none; }
.ladder-detail summary::after { content:" ＋"; }
.ladder-detail[open] summary::after { content:" −"; }
.ladder-detail-collapse,.ladder-detail[open] > summary .ladder-detail-expand { display:none; }
.ladder-detail[open] > summary .ladder-detail-collapse { display:inline; }
.ladder-table .ladder-detail[open] > summary { position:absolute; top:1px; right:1px; min-width:54px; min-height:24px; padding:0 5px; line-height:24px; color:var(--teal); background:var(--surface); border:1px solid var(--line); border-radius:4px; font-size:11px; }
.ladder-table .ladder-detail-close { display:block; margin:8px 0 0 auto; min-height:28px; padding:3px 9px; font-size:11px; color:var(--teal); background:var(--surface); border:1px solid var(--line); border-radius:4px; cursor:pointer; }
.ladder-table .ladder-detail:not([open]) > summary { position:absolute; top:1px; right:1px; width:18px; height:20px; padding:0; font-size:0; line-height:20px; border-radius:3px; }
.ladder-table .ladder-detail:not([open]) > summary::after { content:"＋"; font-size:12px; }
.ladder-table .ladder-detail:not([open]) > summary:hover { color:var(--teal); background:var(--surface-2); }
.ladder-detail-body { padding:9px; border:1px solid var(--line); border-radius:6px; background:var(--card); text-align:left; }
.ladder-table .ladder-cell:has(.ladder-detail[open]) { grid-column:span 3; }
.ladder-table .ladder-detail-body .lu-reason { white-space:normal; display:block; overflow:visible; -webkit-line-clamp:unset; }
.ladder-table .lad2-more { grid-column:1 / -1; justify-self:start; }
.ladder-table .ladder-failed .ladder-name { color:var(--muted); font-weight:600; }
.ladder-cross-name { position:relative; display:inline-block; }
.ladder-fail-cross { position:absolute; inset:0; pointer-events:none; }
.ladder-fail-cross::before,.ladder-fail-cross::after { content:""; position:absolute; left:0; top:50%; width:100%; height:1px; background:var(--faint); opacity:.8; transform:rotate(13deg); }
.ladder-fail-cross::after { transform:rotate(-13deg); }
.ladder-fail-label { color:var(--muted); font-size:10px; line-height:20px; }
.ladder-outcome-count { display:block; margin-top:4px; color:var(--muted); font-size:10px; line-height:1.5; font-weight:400; }
.ladder-table .ladder-cell.ladder-recent { background:var(--teal-bg); box-shadow:inset 0 2px var(--teal); }
.ladder-recent-badge { display:inline-block; border:1px solid currentColor; border-radius:3px; padding:1px 4px; color:var(--teal); background:var(--card); font-size:10px; line-height:16px; }
.ladder-history-pending { display:block; color:var(--muted); font-size:10px; }
@media(max-width:720px) {
  .ladder-table-head { align-items:flex-start; flex-direction:column; gap:4px; }
  .ladder-table .lad2-cards { grid-template-columns:repeat(auto-fill,minmax(72px,88px)); gap:4px 2px; padding:5px 4px; }
  .ladder-table .lad2-label { width:44px; }
  .ladder-table .lad2-label .hbadge { min-width:0; }
  .ladder-table .ladder-cell .ladder-name { font-size:12px; }
  .ladder-table .ladder-cell:has(.ladder-detail[open]) { grid-column:1 / -1; }
  .ladder-table .ladder-detail:not([open]) > summary { position:static; width:auto; height:auto; min-height:22px; font-size:10px; line-height:22px; }
  .ladder-table .ladder-detail:not([open]) > summary::after { content:" ＋"; font-size:10px; }
}
@media(max-width:420px) { .ladder-table .lad2-cards { grid-template-columns:repeat(3,minmax(0,1fr)); } }

/* 连板天梯 */
.lad2-row {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  margin-bottom: 0;
  padding: 8px 0;
  border-bottom: 1px solid var(--line-2);
}
.lad2-row:last-child { border-bottom: 0; }
.lad2-label {
  width: 58px;
  flex: none;
  margin-top: 0;
  text-align: center;
}
.lad2-label .hbadge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 48px;
  min-height: 38px;
  padding: 7px 9px;
  border-radius: 6px;
  background: var(--accent);
  color: #fff;
  font-size: 16px;
  font-weight: 750;
  letter-spacing: .4px;
}
.lad2-label .plain {
  color: #526174;
  font-size: 12.5px;
  font-weight: 650;
  line-height: 1.45;
}
.lad2-cards {
  display: flex;
  align-items: stretch;
  min-width: 0;
  flex: 1;
  gap: 6px;
  flex-wrap: wrap;
}
.lstk2 {
  min-width: 228px;
  flex: 0 1 284px;
  padding: 9px 10px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
}
.lstk2.space {
  border-color: #f0c2c5;
  background: linear-gradient(90deg, #fff5f5, #fff 38%);
  box-shadow: inset 2px 0 var(--up);
}
.lstk2 .l1 {
  display: flex;
  align-items: center;
  gap: 5px;
  flex-wrap: wrap;
}
.lstk2 .nm {
  color: #273547;
  font-size: 14px;
  font-weight: 700;
}
.lstk2 .code { color: #75869a; font-size: 10.5px; letter-spacing: .05em; }
.lstk2 .l2 {
  display: flex;
  align-items: center;
  gap: 4px 7px;
  margin-top: 5px;
  color: var(--muted);
  font-size: 11.5px;
  line-height: 1.55;
  flex-wrap: wrap;
}
.lstk2 .theme-tags { display: inline-flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.lstk2 .theme-t,
.lstk2 .theme-more {
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  padding: 1px 6px;
  border: 1px solid #b9dcdf;
  border-radius: 4px;
  background: var(--teal-bg);
  color: var(--teal);
  font-size: 10.5px;
  font-weight: 700;
}
.lstk2 .theme-t.secondary {
  border-color: #d3dde6;
  background: #f0f4f7;
  color: #526579;
}
.lstk2 .theme-more {
  border-color: #d4dde6;
  background: #fff;
  color: #66778a;
  font-weight: 650;
}
.lstk2 button.theme-more:hover {
  border-color: #91a8ba;
  background: #eef3f6;
  color: #263d54;
}
.lstk2 .stock-facts { color: #66778a; }
.ladder-signal {
  display: inline-flex;
  min-height: 20px;
  align-items: center;
  padding: 1px 6px;
  border: 1px solid var(--line);
  border-radius: 4px;
  font-size: 10px;
  font-weight: 750;
}
.ladder-signal.is-new { color: var(--warn); border-color: #e8c894; background: var(--warn-bg); }
.ladder-signal.is-spreading { color: var(--breakout); border-color: #d1c8ec; background: var(--breakout-bg); }
.ladder-signal.is-confirmed { color: var(--teal); border-color: #badbde; background: var(--teal-bg); }
.lad2-more {
  align-self: center;
  padding: 5px 3px;
  color: var(--teal);
  font-size: 11px;
  white-space: nowrap;
  cursor: pointer;
}
.lad2-more:hover { text-decoration: underline; }

/* 涨停归类：扶摇涨停原因原文 + 可审计的复盘题材分组 */
.fu-hot-panel {
  min-width: 0;
  margin: 2px 0 12px 67px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfcfd;
}
.fu-hot-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 54px;
  padding: 9px 12px;
  border-bottom: 1px solid var(--line);
  background: #fff;
}
.fu-hot-head > div:first-child {
  display: flex;
  align-items: baseline;
  gap: 9px;
  min-width: 0;
}
.fu-hot-kicker {
  color: var(--teal);
  font-size: 10.5px;
  font-weight: 750;
  letter-spacing: .08em;
}
.fu-hot-head h3 {
  margin: 0;
  color: var(--ink);
  font-size: 15px;
  font-weight: 750;
}
.fu-hot-meta {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 7px;
  color: var(--muted);
  font-size: 10.5px;
  white-space: nowrap;
}
.fu-hot-source {
  padding: 2px 7px;
  border: 1px solid #b9dcdf;
  border-radius: 999px;
  background: var(--teal-bg);
  color: var(--teal);
  font-weight: 700;
}
.fu-hot-layout {
  display: grid;
  grid-template-columns: 176px minmax(0, 1fr);
  min-width: 0;
}
.fu-hot-categories {
  min-width: 0;
  padding: 7px;
  border-right: 1px solid var(--line);
  background: var(--surface);
}
.fu-hot-cat-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 3px 7px 7px;
  color: var(--muted);
  font-size: 10.5px;
  font-weight: 650;
}
.fu-hot-cat-list {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
button.fu-hot-cat {
  width: 100%;
  min-height: 34px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 6px 8px;
  border: 1px solid transparent;
  border-radius: 5px;
  background: transparent;
  color: var(--ink-2);
  font-size: 11.5px;
  font-weight: 600;
  text-align: left;
}
button.fu-hot-cat b {
  color: var(--up);
  font-size: 11.5px;
  font-weight: 750;
}
button.fu-hot-cat:hover {
  border-color: var(--line);
  background: #fff;
}
button.fu-hot-cat.is-active {
  border-color: var(--accent);
  background: var(--accent);
  color: #fff;
  box-shadow: 0 1px 2px rgba(24, 38, 56, .13);
}
button.fu-hot-cat.is-active b { color: #ffd5d8; }
.fu-hot-table {
  max-height: 494px;
  min-width: 0;
  overflow: auto;
  overscroll-behavior: contain;
  background: #fff;
}
.fu-hot-table table {
  min-width: 900px;
  margin: 0;
  font-size: 12px;
}
.fu-hot-table th {
  height: 34px;
  padding-top: 7px;
  padding-bottom: 7px;
  background: var(--surface);
  font-size: 10.5px;
}
.fu-hot-table th.fu-hot-sortable {
  padding: 0;
}
.fu-hot-table .fu-hot-sortable .sort-head {
  min-height: 34px;
  justify-content: flex-end;
  padding: 6px 8px;
}
.fu-hot-table td {
  height: 39px;
  padding-top: 7px;
  padding-bottom: 7px;
}
.fu-hot-table .metric {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.fu-hot-table th:nth-child(3),
.fu-hot-table th:nth-child(4),
.fu-hot-table th:nth-child(6),
.fu-hot-table th:nth-child(7),
.fu-hot-table th:nth-child(8) { text-align: right; }
.fu-hot-rank {
  width: 34px;
  color: var(--faint);
  text-align: center;
}
.fu-hot-stock { min-width: 128px; }
.fu-hot-stock .stock-link-btn {
  display: inline;
  min-height: 0;
  padding: 0;
  color: var(--ink);
  font-size: 12.5px;
  font-weight: 700;
  vertical-align: baseline;
}
.fu-hot-stock .code {
  margin-left: 5px;
  color: var(--faint);
  font-size: 9.5px;
  letter-spacing: .04em;
}
.fu-hot-reason {
  width: 42%;
  min-width: 260px;
  max-width: 480px;
  overflow: hidden;
  color: var(--ink-2);
  text-overflow: ellipsis;
}
.fu-hot-panel > .empty {
  margin: 0;
  padding: 24px 12px;
}
/* 独立归类试验，沿用整站颜色和紧凑字号，不改变正式表格。 */
.category-trial { margin-top:12px; font-size:12.5px; }
.category-trial > summary { cursor:pointer; font-size:14px; font-weight:700; }
.category-trial > summary span { font-size:12px; color:var(--muted); font-weight:400; margin-left:10px; }
.category-trial .ct-body { margin-top:12px; min-width:0; }
.category-trial .ct-toolbar { display:flex; align-items:center; justify-content:space-between; gap:8px; flex-wrap:wrap; color:var(--muted); }
.category-trial button,.category-trial input,.category-trial select { font:inherit; }
.category-trial button { cursor:pointer; border:1px solid var(--line); background:var(--card); color:var(--ink); padding:4px 9px; border-radius:5px; }
.category-trial button:disabled { opacity:.55; cursor:wait; }
.category-trial .ct-notice,.category-trial .ct-note { color:var(--muted); line-height:1.6; margin:8px 0; }
.category-trial .ct-stats { padding:8px 0; font-weight:600; }
.category-trial .ct-stats span { display:block; font-weight:400; color:var(--muted); margin-top:4px; }
.category-trial .ct-filters { display:flex; flex-wrap:wrap; gap:5px; margin:8px 0; }
.category-trial button[aria-pressed="true"] { background:var(--teal-bg); border-color:var(--teal); color:var(--teal); }
.category-trial .ct-table { max-width:100%; overflow-x:auto; }
.category-trial table { width:100%; min-width:720px; border-collapse:collapse; }
.category-trial td,.category-trial th { text-align:left; vertical-align:top; border-bottom:1px solid var(--line); padding:8px 6px; }
.category-trial th { background:var(--surface); }
.category-trial td small { display:block; color:var(--muted); margin-top:4px; }
.category-trial .ct-evidence { width:48%; min-width:240px; max-width:650px; overflow-wrap:anywhere; line-height:1.6; }
.category-trial .ct-evidence summary { cursor:pointer; color:var(--teal); margin-top:4px; }
.category-trial blockquote { margin:6px 0; padding:6px 10px; border-left:2px solid var(--teal); background:var(--surface); }
.category-trial .ct-status { font-size:11px; color:var(--muted); white-space:nowrap; }
.category-trial .ct-edit { margin:12px 0; padding:12px; background:var(--surface); border:1px solid var(--line); border-radius:6px; }
.category-trial .ct-selection { margin-bottom:8px; }
.category-trial .ct-fields { display:flex; gap:8px; flex-wrap:wrap; align-items:end; }
.category-trial .ct-fields label { display:flex; flex-direction:column; gap:4px; flex:1 1 130px; min-width:0; }
.category-trial .ct-fields .ct-note-field { flex:3 1 220px; }
.category-trial input:not([type="checkbox"]),.category-trial select { width:100%; box-sizing:border-box; background:var(--card); color:var(--ink); border:1px solid var(--line); border-radius:4px; padding:6px; }
.category-trial .ct-edit small { display:block; color:var(--muted); margin-top:8px; }
.category-trial .ct-error { color:var(--up); margin:6px 0 0; }
.category-trial .ct-audit { color:var(--muted); overflow-wrap:anywhere; }
@media(max-width:600px) { .category-trial > summary span { display:block; margin:6px 0 0; } .category-trial .ct-edit { padding:8px; } }
