:root {
  --bg: #070708;
  --bg1: #0d0d0f;
  --bg2: #121214;
  --bg3: #1a1a1c;
  --line: rgba(232, 224, 210, 0.08);
  --line2: rgba(194, 163, 107, 0.28);
  --gold: #c2a36b;
  --gold-dim: rgba(194, 163, 107, 0.12);
  --red: #c45c58;
  --green: #5b9a7e;
  --text: #ece8e1;
  --text2: #9a948a;
  --text3: #6b665e;
  --radius: 8px;
  --page-x: 14px;
  --card-pad: 14px;
  --serif: "Songti SC", "STSong", "Noto Serif SC", "Source Han Serif SC", "Songti TC", serif;
  --sans: "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Microsoft YaHei", sans-serif;
  --mono: "SF Mono", "Menlo", "DIN Alternate", ui-monospace, monospace;
  --tabbar-h: 52px;
}

* { box-sizing: border-box; margin: 0; padding: 0; -webkit-tap-highlight-color: transparent; }
html, body { height: 100%; overflow: hidden; max-width: 100%; }
body {
  background: #050505;
  color: var(--text);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.6;
  font-weight: 400;
  overflow-x: hidden;
}

.frame {
  height: 100%;
  display: flex;
  justify-content: center;
  background: #050505;
  overflow-x: hidden;
  max-width: 100%;
}
.phone {
  width: 100%;
  max-width: 430px;
  height: 100%;
  background:
    radial-gradient(120% 42% at 50% -8%, rgba(194, 163, 107, 0.08), transparent 52%),
    var(--bg);
  position: relative;
  overflow: hidden;
  overflow-x: hidden;
  display: flex;
  flex-direction: column;
  border-left: 1px solid var(--line);
  border-right: 1px solid var(--line);
  min-width: 0;
}
.hair {
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
  opacity: 0.55;
  z-index: 30;
}

.page {
  display: none;
  min-height: 0;
  min-width: 0;
  width: 100%;
  max-width: 100%;
  flex: 1;
  padding: calc(12px + env(safe-area-inset-top)) var(--page-x) calc(24px + env(safe-area-inset-bottom));
  flex-direction: column;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.page.active { display: flex; }
.page:not(.active) {
  display: none !important;
  pointer-events: none;
}
.phone.has-tabbar .page {
  padding-bottom: 20px;
}
.phone.has-tabbar .pf-bottom {
  padding-bottom: 10px;
}

.topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
  min-width: 0;
}
/* 左右等宽槽位，中间 title 相对整栏真正居中 */
.topbar:not(.home-topbar) {
  display: grid;
  grid-template-columns: minmax(64px, 1fr) minmax(0, auto) minmax(64px, 1fr);
  align-items: center;
  gap: 8px;
}
.topbar:not(.home-topbar) > .back {
  grid-column: 1;
  justify-self: start;
}
.topbar:not(.home-topbar) > .rep-head,
.topbar:not(.home-topbar) > .mark-en {
  grid-column: 2;
  justify-self: center;
  text-align: center;
  width: max-content;
  max-width: 100%;
  min-width: 0;
}
.topbar:not(.home-topbar) > .ghost,
.topbar:not(.home-topbar) > .top-entry,
.topbar:not(.home-topbar) > .pf-count,
.topbar:not(.home-topbar) > .live {
  grid-column: 3;
  justify-self: end;
}
.topbar:not(.home-topbar) > span:last-child:not([id]):not(.pf-count) {
  grid-column: 3;
}
.topbar .rep-head {
  min-width: 0;
  overflow: hidden;
}
.topbar .rep-head > div:first-child {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.topbar.sticky {
  position: sticky;
  top: calc(-12px - env(safe-area-inset-top, 0px));
  z-index: 8;
  margin: -6px calc(-1 * var(--page-x)) 10px;
  padding: 10px var(--page-x) 12px;
  background: linear-gradient(var(--bg) 72%, transparent);
}
.live {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  letter-spacing: 0.18em;
  color: var(--text3);
  text-transform: uppercase;
}
.live i {
  width: 5px; height: 5px;
  border-radius: 50%;
  background: var(--gold);
  box-shadow: 0 0 8px var(--gold);
}
.top-entry {
  border: 1px solid rgba(194, 163, 107, 0.38);
  background: rgba(194, 163, 107, 0.08);
  color: var(--gold);
  border-radius: 8px;
  padding: 6px 10px;
  font-size: 12px;
  letter-spacing: 0.04em;
  cursor: pointer;
  white-space: nowrap;
}
.top-entry:active { opacity: 0.85; }
.capital-verdict {
  font-family: var(--serif);
  font-size: 20px;
  letter-spacing: 0.08em;
  margin: 0;
  color: var(--text);
}
.cap-hero {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.cap-hero-top {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.cap-kicker {
  font-size: 11px;
  letter-spacing: 0.14em;
  color: var(--gold);
}
.cap-hero-top em {
  font-style: normal;
  font-size: 12px;
  color: var(--text3);
}
.cap-hero--bull {
  border-color: rgba(196, 92, 88, 0.28);
  background: linear-gradient(160deg, rgba(196, 92, 88, 0.08), transparent 42%);
}
.cap-hero--bear {
  border-color: rgba(91, 154, 126, 0.28);
  background: linear-gradient(160deg, rgba(91, 154, 126, 0.08), transparent 42%);
}
.cap-bullets {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.cap-bullets li {
  font-size: 12.5px;
  line-height: 1.45;
  color: var(--text2);
  padding-left: 10px;
  border-left: 2px solid rgba(194, 163, 107, 0.35);
}
.cap-metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
@media (min-width: 360px) {
  .cap-metrics {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.cap-metric {
  padding: 8px 8px 7px;
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.22);
  border: 1px solid rgba(255, 255, 255, 0.05);
  min-width: 0;
}
.cap-metric span {
  display: block;
  font-size: 10px;
  color: var(--text3);
  letter-spacing: 0.06em;
}
.cap-metric b {
  display: block;
  margin-top: 4px;
  font-size: 13px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  font-family: var(--mono);
  color: var(--text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cap-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  font-size: 11px;
  color: var(--text3);
}
.cap-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 6px;
  align-items: stretch;
}
.cap-chip-wrap {
  display: inline-flex;
  align-items: stretch;
  max-width: 100%;
}
.cap-chip {
  appearance: none;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.03);
  border-radius: 8px;
  padding: 6px 9px;
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  color: inherit;
  cursor: pointer;
  font: inherit;
}
.cap-chip-wrap .cap-chip {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.cap-chip-wrap:not(:has(.cap-chip-tm)) .cap-chip {
  border-radius: 8px;
}
.cap-chip-tm {
  appearance: none;
  border: 1px solid rgba(194, 163, 107, 0.28);
  border-left: 0;
  background: rgba(194, 163, 107, 0.1);
  border-radius: 0 8px 8px 0;
  padding: 6px 8px;
  color: var(--gold);
  font: inherit;
  font-size: 11px;
  letter-spacing: 0.02em;
  cursor: pointer;
  white-space: nowrap;
}
.cap-chip-tm:active {
  background: rgba(194, 163, 107, 0.18);
}
.cap-chip--main {
  border-color: rgba(194, 163, 107, 0.3);
  background: rgba(194, 163, 107, 0.08);
}
.cap-chip--hot {
  border-color: rgba(196, 92, 88, 0.28);
}
.cap-chip b {
  font-size: 12px;
  font-weight: 560;
  color: var(--text);
}
.cap-chip span {
  font-size: 11px;
  font-variant-numeric: tabular-nums;
}
.cap-watch {
  margin: 8px 0 0;
  font-size: 12px;
  line-height: 1.45;
  color: var(--text2);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 8px;
}
.cap-watch-chip {
  appearance: none;
  border: 1px solid rgba(194, 163, 107, 0.22);
  background: rgba(194, 163, 107, 0.06);
  border-radius: 6px;
  padding: 3px 8px;
  color: var(--gold);
  font: inherit;
  font-size: 12px;
  font-weight: 560;
  cursor: pointer;
}
.cap-watch-chip:active {
  background: rgba(194, 163, 107, 0.14);
}
.cap-watch-note {
  display: block;
  width: 100%;
  margin-top: 2px;
  font-size: 11px;
  color: var(--text3);
}
.cap-guide {
  padding: 10px 12px;
}
.cap-guide > summary {
  list-style: none;
  cursor: pointer;
  font-size: 12px;
  color: var(--gold);
  letter-spacing: 0.06em;
}
.cap-guide > summary::-webkit-details-marker { display: none; }
.cap-guide[open] > summary { margin-bottom: 8px; }
.capital-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}
.capital-tag {
  font-size: 11px;
  color: var(--text3);
  padding: 4px 8px;
  border: 1px solid var(--line);
  white-space: nowrap;
  line-height: 1.35;
}
.capital-line {
  margin-top: 4px;
}
.capital-line-lab {
  font-size: 11px;
  letter-spacing: 0.14em;
  color: var(--gold);
}
.capital-row .t-meta { line-height: 1.45; }
.capital-row .score-tag {
  font-size: 11px;
  color: var(--gold);
  margin-left: 6px;
}
.sig-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 6px;
}
.sig-tag {
  font-size: 10px;
  letter-spacing: 0.06em;
  padding: 2px 6px;
  border: 1px solid rgba(194, 163, 107, 0.25);
  color: var(--gold);
}
.capital-guide .hint {
  font-size: 12px;
  line-height: 1.65;
}
.verdict-hero {
  padding-top: 2px;
  padding-bottom: 2px;
}
.verdict-hero .vh-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}
.verdict-hero .vh-stance {
  font-family: var(--serif);
  font-size: 24px;
  letter-spacing: 0.12em;
  line-height: 1.25;
}
.verdict-hero .vh-stance.vh-bull { color: var(--up); }
.verdict-hero .vh-stance.vh-bear { color: var(--down); }
.verdict-hero .vh-stance.vh-neutral { color: var(--gold); }
.vh-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}
.vh-chips span {
  font-size: 11px;
  padding: 3px 8px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid var(--line);
  color: var(--text2);
  letter-spacing: 0.04em;
}
.verdict-hero .vh-main { min-width: 0; flex: 1; }
.verdict-hero .vh-meta {
  margin-top: 6px;
  font-size: 12px;
  color: var(--text3);
}
.verdict-hero .vh-conf {
  display: inline;
  letter-spacing: 0.04em;
}
.verdict-hero .vh-conf--high { color: var(--gold); }
.verdict-hero .vh-conf--mid { color: var(--text2); }
.verdict-hero .vh-conf--low { color: var(--text3); }
.verdict-hero--lowconf .vh-stance {
  opacity: 0.82;
}
.verdict-hero--lowconf .vh-decision {
  opacity: 0.92;
}
.verdict-hero .vh-why {
  margin-top: 10px;
  font-size: 14px;
  line-height: 1.6;
  color: var(--text2);
}
.verdict-hero .vh-rules {
  margin: 8px 0 0;
  padding: 7px 10px;
  font-size: 12px;
  line-height: 1.45;
  letter-spacing: 0.02em;
  color: var(--text2);
  background: rgba(0, 0, 0, 0.22);
  border-radius: 6px;
  border-left: 2px solid rgba(194, 163, 107, 0.55);
}
.verdict-hero .vh-risk {
  margin-top: 10px;
  padding: 8px 10px;
  border-left: 2px solid rgba(196, 92, 88, 0.45);
  font-size: 12px;
  line-height: 1.5;
  color: var(--text3);
  background: rgba(196, 92, 88, 0.05);
}
.verdict-hero .vh-layer {
  font-size: 10px;
  letter-spacing: 0.12em;
  margin-bottom: 4px;
}
.verdict-hero .vh-conflict {
  margin-top: 8px;
  padding: 8px 10px;
  border-radius: 6px;
  border: 1px solid rgba(194, 163, 107, 0.35);
  background: rgba(194, 163, 107, 0.08);
  font-size: 12px;
  line-height: 1.5;
  color: var(--gold);
}
.verdict-hero .vh-horizon {
  margin-top: 8px;
  padding: 8px 10px;
  border-radius: 6px;
  border: 1px solid rgba(160, 140, 100, 0.32);
  background: rgba(255, 255, 255, 0.03);
  font-size: 12px;
  line-height: 1.5;
  color: var(--text2);
}
.vh-brake {
  margin-top: 8px;
  padding: 8px 10px;
  border-radius: 6px;
  border: 1px solid rgba(200, 80, 80, 0.4);
  background: rgba(200, 80, 80, 0.1);
  font-size: 12px;
  line-height: 1.5;
  color: #e8a0a0;
}
.vh-chip-warn {
  border-color: rgba(200, 80, 80, 0.35) !important;
  color: #e8a0a0 !important;
  background: rgba(200, 80, 80, 0.08) !important;
}
.vh-auc {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px 8px;
  margin-top: 10px;
  padding: 8px 10px;
  border-radius: 6px;
  background: rgba(0, 0, 0, 0.22);
  border: 1px solid rgba(255, 255, 255, 0.06);
  font-size: 12px;
  color: var(--text2);
  line-height: 1.45;
}
.vh-auc-lab {
  letter-spacing: 0.14em;
  color: var(--gold);
  font-size: 11px;
}
.vh-auc b { color: var(--text); }
.vh-auc em {
  font-style: normal;
  color: var(--text3);
}
.vh-decision {
  margin-top: 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid rgba(194, 163, 107, 0.2);
  background: rgba(194, 163, 107, 0.05);
}
.vh-dec-row {
  display: grid;
  grid-template-columns: 52px 1fr;
  gap: 8px;
  align-items: start;
  padding: 8px 10px;
  border-radius: 6px;
  background: rgba(0, 0, 0, 0.18);
  border: 1px solid rgba(255, 255, 255, 0.05);
}
.vh-dec-row span {
  font-size: 11px;
  letter-spacing: 0.08em;
  padding-top: 2px;
}
.vh-dec-row p {
  margin: 0;
  font-size: 12px;
  line-height: 1.5;
  color: var(--text2);
}
.verdict-hero--decision .vh-why {
  margin-top: 8px;
}
.dp-res {
  display: inline-block;
  margin-left: 4px;
  padding: 1px 6px;
  border-radius: 4px;
  font-size: 10px;
  letter-spacing: 0.06em;
  color: var(--gold);
  border: 1px solid rgba(194, 163, 107, 0.35);
  background: rgba(194, 163, 107, 0.1);
  vertical-align: middle;
  font-weight: 500;
}
.dp-res--hold {
  color: #e8c48a;
  border-color: rgba(194, 163, 107, 0.5);
}
.dp-res-hint {
  margin: 0 0 10px;
  padding: 8px 10px;
  border-radius: 6px;
  border: 1px solid rgba(194, 163, 107, 0.28);
  background: rgba(194, 163, 107, 0.08);
  font-size: 12px;
  color: var(--text2);
  line-height: 1.45;
}
.dp-pick--res,
.dp-panel-row--res {
  border-color: rgba(194, 163, 107, 0.28);
}
.vh-share-btn {
  flex-shrink: 0;
  align-self: flex-start;
  margin-top: 2px;
  border: 1px solid rgba(194, 163, 107, 0.42);
  background: rgba(194, 163, 107, 0.1);
  color: var(--gold);
  font-size: 12px;
  letter-spacing: 0.1em;
  padding: 6px 11px;
  border-radius: 4px;
  cursor: pointer;
  font-family: var(--sans);
  white-space: nowrap;
  transition: background 0.15s, border-color 0.15s;
}
.vh-share-row {
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex-shrink: 0;
  align-self: flex-start;
}
.vh-share-row .vh-share-btn {
  margin-top: 0;
  align-self: stretch;
  text-align: center;
}
.vh-share-btn--ghost {
  background: transparent;
  border-color: rgba(255, 255, 255, 0.12);
  color: var(--text3);
  font-size: 11px;
  letter-spacing: 0.06em;
  padding: 5px 10px;
}
.vh-share-btn:active {
  background: rgba(194, 163, 107, 0.2);
  border-color: rgba(194, 163, 107, 0.55);
}
.follow-picks {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px dashed var(--line);
}
.follow-pick {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 6px 0;
  font-size: 13px;
}
.follow-pick .fp-name b { font-weight: 600; }
.follow-pick .fp-actions {
  display: flex;
  gap: 6px;
  flex-shrink: 0;
}
.fp-btn {
  border: 1px solid rgba(194, 163, 107, 0.42);
  background: rgba(194, 163, 107, 0.08);
  color: var(--gold);
  font-size: 11px;
  letter-spacing: 0.06em;
  padding: 5px 9px;
  border-radius: 4px;
  cursor: pointer;
  font-family: var(--sans);
  white-space: nowrap;
  flex-shrink: 0;
  transition: background 0.15s, border-color 0.15s;
}
.fp-btn:active {
  background: rgba(194, 163, 107, 0.16);
  border-color: rgba(194, 163, 107, 0.55);
}
.leader-row .lr-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
  flex-shrink: 0;
}
.leader-row .lr-actions .fp-btn {
  margin-top: 0;
}
.leader-row .lr-go {
  font-size: 11px;
  letter-spacing: 0.06em;
  color: var(--gold);
  opacity: 0.85;
}
.t-point .t-exec {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px 10px;
  margin-top: 4px;
  font-size: 12px;
  color: var(--text2);
}
.t-point .t-exec b { font-weight: 600; color: var(--text); }
.t-point .t-inv {
  grid-column: 1 / -1;
  font-size: 12px;
  color: var(--text3);
  line-height: 1.45;
}
.review-wall {
  margin-bottom: 18px;
}
.review-summary {
  font-size: 13px;
  line-height: 1.55;
  color: var(--text2);
  margin-bottom: 10px;
}
.review-item {
  appearance: none;
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 4px 12px;
  align-items: baseline;
  text-align: left;
  padding: 11px 12px;
  margin: 0;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.025);
  color: inherit;
  cursor: pointer;
  font: inherit;
}
.review-item + .review-item {
  margin-top: 8px;
}
.review-item .ri-name {
  font-size: 14px;
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 6px;
}
.review-item .ri-name b {
  font-weight: 560;
  color: var(--text);
}
.review-item .ri-name em {
  font-style: normal;
  font-size: 11px;
  color: var(--text3);
  font-variant-numeric: tabular-nums;
}
.review-item .ri-meta {
  font-size: 11.5px;
  color: var(--text3);
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
}
.review-item .ri-hit {
  font-size: 11px;
  letter-spacing: 0.04em;
  align-self: start;
  flex-shrink: 0;
}
.review-item .ri-hit i {
  display: inline-block;
  font-style: normal;
  font-weight: 600;
  padding: 2px 7px;
  border-radius: 6px;
  border: 1px solid transparent;
}
.review-item .ri-hit.ok i {
  color: var(--up, #c45c58);
  background: rgba(196, 92, 88, 0.12);
  border-color: rgba(196, 92, 88, 0.22);
}
.review-item .ri-hit.bad i {
  color: var(--down, #5b9a7e);
  background: rgba(91, 154, 126, 0.12);
  border-color: rgba(91, 154, 126, 0.22);
}
.review-item .ri-hit.mute i {
  color: #9a948a;
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.06);
}
.review-item .ri-hit.ok { color: var(--up, #c45c58); }
.review-item .ri-hit.bad { color: var(--down, #5b9a7e); }
.review-item .ri-hit.mute { color: #9a948a; }
.review-dp-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.review-dp-list .review-item + .review-item {
  margin-top: 0;
}
.cap-stance {
  margin: 6px 0 0;
  font-size: 12.5px;
  line-height: 1.4;
  color: var(--gold);
  font-weight: 520;
}
.cap-meta span {
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.06);
  font-size: 10.5px;
  color: var(--text3);
}
.review-wall-stack {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.review-one-hint {
  margin: 0 0 8px;
  font-size: 12px;
  line-height: 1.45;
  color: var(--text2);
}
.review-foot {
  margin: 0;
  font-size: 11px;
  line-height: 1.4;
}
.trust-strip--compact {
  padding: 8px 10px;
  margin: 6px 0 10px;
}
.trust-strip--compact .trust-strip-hint {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.review-dp-block .review-item--dp {
  margin-top: 8px;
}
.review-dp-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 4px;
}
.review-pool-title {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  font-size: 12px;
  letter-spacing: 0.08em;
  color: var(--gold);
  margin-bottom: 8px;
}
.bt-card {
  padding-top: 14px;
}
.bt-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
}
.bt-kicker {
  font-size: 11px;
  letter-spacing: 0.22em;
  color: var(--gold);
  margin-bottom: 6px;
}
.bt-hero {
  display: flex;
  align-items: baseline;
  gap: 12px;
  flex-wrap: wrap;
}
.bt-hit {
  font-size: 22px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--text2);
}
.bt-hit.ok { color: var(--red, #c45c58); }
.bt-hit.bad { color: var(--green, #5b9a7e); }
.bt-wr10 {
  font-size: 13px;
  color: var(--text3);
}
.bt-wr10 b {
  color: var(--gold);
  font-family: var(--mono);
  font-weight: 600;
  font-size: 15px;
}
.bt-score-side {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  flex-shrink: 0;
  min-width: 52px;
}
.bt-score-num {
  font-size: 24px;
  font-weight: 600;
  font-family: var(--mono);
  color: var(--gold);
  line-height: 1;
}
.bt-score-side .muted {
  font-size: 10px;
  letter-spacing: 0.04em;
  text-align: center;
}
.bt-compare {
  display: grid;
  grid-template-columns: 1fr auto 1fr 1fr;
  gap: 6px;
  align-items: center;
  margin-top: 12px;
  padding: 10px 8px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid var(--line);
}
.bt-cmp {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
  text-align: center;
}
.bt-cmp span {
  font-size: 10px;
  color: var(--text3);
  letter-spacing: 0.06em;
}
.bt-cmp b {
  font-size: 13px;
  font-family: var(--mono);
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.bt-arrow {
  color: var(--text3);
  font-size: 14px;
  opacity: 0.7;
}
.bt-metrics {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-top: 12px;
}
.bt-box {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 10px 8px;
  text-align: center;
}
.bt-box span {
  display: block;
  font-size: 11px;
  color: var(--text3);
  margin-bottom: 4px;
  letter-spacing: 0.04em;
}
.bt-box b {
  font-size: 18px;
  font-family: var(--mono);
  color: var(--gold);
  font-weight: 600;
}
.bt-box.bt-good b { color: var(--red, #c45c58); }
.bt-box.bt-mid b { color: var(--gold); }
.bt-box.bt-weak b { color: var(--text3); }
.bt-note {
  margin-top: 10px;
  font-size: 11px;
  line-height: 1.45;
}
.bt-gate {
  margin: 8px 0 10px;
  padding: 7px 10px;
  font-size: 12px;
  line-height: 1.45;
  border-radius: 6px;
  background: rgba(194, 163, 107, 0.1);
  color: var(--text2);
  border-left: 2px solid rgba(194, 163, 107, 0.5);
}
.bt-gate--weak {
  background: rgba(194, 163, 107, 0.08);
}
.bt-gate--fail {
  background: rgba(196, 92, 88, 0.1);
  border-left-color: rgba(196, 92, 88, 0.55);
  color: var(--text);
}
@media (max-width: 380px) {
  .bt-compare {
    grid-template-columns: 1fr 1fr;
    gap: 8px 10px;
  }
  .bt-arrow { display: none; }
  .bt-cmp--err { grid-column: 1 / -1; }
}
.tg-box { margin-top: 4px; }
.tg-row {
  display: grid;
  grid-template-columns: 1.2fr 0.7fr 0.8fr 1.2fr;
  gap: 6px;
  align-items: baseline;
  padding: 6px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
  font-size: 12px;
}
.tg-row:last-of-type { border-bottom: 0; }
.tg-row-compact { grid-template-columns: 1fr auto auto; }
.rp-box { margin-top: 4px; }
.rp-themes { margin-top: 8px; }
.rp-theme {
  display: grid;
  grid-template-columns: 1.4fr 0.7fr 0.9fr;
  gap: 6px;
  font-size: 12px;
  padding: 4px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}
.rp-theme:last-child { border-bottom: 0; }
.rp-bits {
  margin: 8px 0 0;
  padding-left: 18px;
  color: var(--text2, #c8c4bb);
  font-size: 12px;
  line-height: 1.55;
}
.strat-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
  padding: 10px 12px;
  margin: 8px 0 10px;
  border-radius: 8px;
  border: 1px solid var(--line);
  background: var(--bg2);
}
.strat-bar.strat-bull {
  border-color: rgba(196, 92, 88, 0.35);
  background: rgba(196, 92, 88, 0.08);
}
.strat-bar.strat-bear {
  border-color: rgba(91, 154, 126, 0.35);
  background: rgba(91, 154, 126, 0.08);
}
.strat-bar.strat-neutral {
  border-color: rgba(194, 163, 107, 0.35);
  background: rgba(194, 163, 107, 0.08);
}
.strat-stance {
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.08em;
  color: var(--text);
}
.strat-pos {
  font-size: 11px;
  color: var(--text2);
  letter-spacing: 0.04em;
}
.strat-focus {
  flex: 1 1 100%;
  font-size: 11px;
  color: var(--gold);
  letter-spacing: 0.04em;
}
.strat-focus b {
  font-weight: 600;
  margin: 0 2px;
}
.strat-focus i {
  font-style: normal;
  color: var(--text3);
  margin-left: 6px;
}
.db-triggers p {
  font-size: 12px;
  line-height: 1.55;
  margin-top: 8px;
  color: var(--text2);
}
.db-triggers p span {
  font-size: 11px;
  letter-spacing: 0.1em;
  margin-right: 4px;
}
.dp-triggers .hint {
  margin-top: 8px;
  font-size: 12px;
  line-height: 1.55;
}
.daily-brief {
  margin-bottom: 18px;
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 0;
}
.daily-brief--panel {
  padding: 0;
  border-radius: 0;
}
.daily-brief .db-head {
  margin-bottom: 12px;
}
.daily-brief .db-kicker {
  font-size: 13px;
  font-weight: 600;
  color: var(--gold, #c9a962);
  letter-spacing: 0.1em;
  margin-bottom: 4px;
}
.daily-brief .db-title {
  font-size: 15px;
  font-weight: 600;
  color: var(--gold, #c9a962);
  margin-bottom: 4px;
}
.daily-brief .db-asof {
  font-size: 11px;
  color: var(--text3);
  line-height: 1.4;
}
.daily-brief .strat-bar {
  margin: 0 0 12px;
  padding: 12px 14px;
}
.daily-brief .db-hero {
  margin: 0 0 14px;
  padding: 16px 14px 14px;
  border-radius: 12px;
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.03);
}
.daily-brief .db-hero.strat-bull {
  border-color: rgba(196, 92, 88, 0.4);
  background: linear-gradient(160deg, rgba(196, 92, 88, 0.14), rgba(255, 255, 255, 0.02) 55%);
}
.daily-brief .db-hero.strat-bear {
  border-color: rgba(194, 163, 107, 0.38);
  background: linear-gradient(160deg, rgba(194, 163, 107, 0.12), rgba(255, 255, 255, 0.02) 55%);
}
.daily-brief .db-hero.strat-neutral {
  border-color: rgba(194, 163, 107, 0.42);
  background: linear-gradient(160deg, rgba(194, 163, 107, 0.14), rgba(255, 255, 255, 0.02) 55%);
}
.daily-brief .db-hero-main {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
}
.daily-brief .db-hero-stance {
  font-family: var(--serif);
  font-size: 26px;
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.15;
  color: var(--text);
}
.daily-brief .db-hero-pos {
  flex-shrink: 0;
  font-size: 12px;
  color: var(--text2);
  letter-spacing: 0.04em;
  text-align: right;
  max-width: 42%;
}
.daily-brief .db-hero-focus {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}
.daily-brief .db-hero-focus em {
  flex-shrink: 0;
  font-style: normal;
  font-size: 11px;
  letter-spacing: 0.14em;
  color: var(--gold);
}
.daily-brief .db-hero-focus b {
  flex: 1;
  min-width: 0;
  font-size: 15px;
  font-weight: 600;
  color: var(--text);
}
.daily-brief .db-hero-focus i {
  flex-shrink: 0;
  font-style: normal;
  font-size: 11px;
  color: var(--text3);
}
.daily-brief .db-hero-peri {
  margin: 10px 0 0;
  padding-top: 8px;
  border-top: 1px solid rgba(255, 255, 255, 0.05);
  font-size: 11.5px;
  line-height: 1.45;
  color: var(--text3);
  letter-spacing: 0.01em;
}
.daily-brief .db-hero-news {
  margin: 6px 0 0;
  font-size: 11px;
  line-height: 1.4;
  color: var(--gold, #c9a227);
  letter-spacing: 0.01em;
}
.strat-peri {
  display: block;
  width: 100%;
  margin-top: 6px;
  font-size: 11px;
  line-height: 1.4;
  color: var(--text3);
}
.strat-news {
  display: block;
  width: 100%;
  margin-top: 4px;
  font-size: 11px;
  line-height: 1.35;
  color: var(--gold, #c9a227);
}
.daily-brief .db-lead {
  margin: 0 0 10px;
  font-size: 13px;
  line-height: 1.55;
  color: var(--text2);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}
.daily-brief .db-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
  margin: 0 0 14px;
}
.daily-brief .db-metric {
  padding: 8px 6px;
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.2);
  border: 1px solid rgba(255, 255, 255, 0.04);
  min-width: 0;
  text-align: center;
}
.daily-brief .db-metric span {
  display: block;
  font-size: 10px;
  letter-spacing: 0.06em;
  color: var(--text3);
}
.daily-brief .db-metric b {
  display: block;
  margin-top: 4px;
  font-size: 13px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  font-family: var(--mono);
  color: var(--text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.daily-brief .db-metric b.up { color: var(--up, #c45c58); }
.daily-brief .db-metric b.down { color: var(--down, #5b9a7e); }
.daily-brief .db-metric em {
  display: block;
  margin-top: 2px;
  font-style: normal;
  font-size: 9.5px;
  color: var(--text3);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
@media (max-width: 380px) {
  .daily-brief .db-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .daily-brief .db-hero-stance {
    font-size: 22px;
  }
}
.daily-brief .db-action {
  margin: 0 0 16px;
  padding: 10px 12px;
  border-radius: 10px;
  background: rgba(194, 163, 107, 0.08);
  border: 1px solid rgba(194, 163, 107, 0.22);
  font-size: 13px;
  line-height: 1.5;
  color: var(--text);
  font-weight: 520;
}
.daily-brief .db-block {
  margin: 0 0 16px;
}
.daily-brief .db-block h4 {
  margin: 0 0 8px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.16em;
  color: var(--text3);
}
.daily-brief .db-flow-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.daily-brief .db-flow-chip {
  appearance: none;
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  padding: 8px 10px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  min-width: 0;
  color: inherit;
  font: inherit;
  cursor: pointer;
  text-align: left;
}
.daily-brief .db-flow-chip:active {
  border-color: rgba(194, 163, 107, 0.28);
  background: rgba(194, 163, 107, 0.08);
}
.daily-brief .db-flow-chip b {
  font-size: 12.5px;
  font-weight: 560;
  color: var(--text);
}
.daily-brief .db-flow-chip span {
  font-size: 11px;
  font-variant-numeric: tabular-nums;
  font-family: var(--mono);
  color: var(--text3);
}
.daily-brief .db-flow-chip i {
  font-style: normal;
  margin-left: 2px;
  font-size: 11px;
  color: var(--gold);
}
.daily-brief .db-flow-chip span.up { color: var(--up, #c45c58); }
.daily-brief .db-flow-chip span.down { color: var(--down, #5b9a7e); }
.daily-brief .db-triggers-grid {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.daily-brief .db-tg {
  padding: 9px 11px;
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.18);
  border-left: 2px solid rgba(255, 255, 255, 0.12);
}
.daily-brief .db-tg--up {
  border-left-color: rgba(196, 92, 88, 0.55);
}
.daily-brief .db-tg--down {
  border-left-color: rgba(91, 154, 126, 0.55);
}
.daily-brief .db-tg span {
  display: block;
  font-size: 10.5px;
  letter-spacing: 0.12em;
  color: var(--gold);
  margin-bottom: 3px;
}
.daily-brief .db-tg p {
  margin: 0;
  font-size: 12px;
  line-height: 1.45;
  color: var(--text2);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.daily-brief .db-leader-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.daily-brief .db-leader {
  appearance: none;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px 12px;
  width: 100%;
  text-align: left;
  padding: 11px 12px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.03);
  color: inherit;
  cursor: pointer;
  font: inherit;
  transition: border-color 0.15s, background 0.15s;
}
.daily-brief .db-leader:active {
  border-color: rgba(194, 163, 107, 0.35);
  background: rgba(194, 163, 107, 0.08);
}
.daily-brief .db-leader:last-child { border-bottom: 1px solid rgba(255, 255, 255, 0.06); }
.daily-brief .db-leader-left {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.daily-brief .db-leader-left b {
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
  letter-spacing: 0.02em;
}
.daily-brief .db-leader-left em {
  font-style: normal;
  font-size: 11px;
  color: var(--text3);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.daily-brief .db-leader-pct {
  flex-shrink: 0;
  font-size: 15px;
  font-weight: 650;
  font-variant-numeric: tabular-nums;
  font-family: var(--mono);
  letter-spacing: -0.02em;
  color: var(--text2);
}
.daily-brief .db-leader-pct.up { color: var(--up, #c45c58); }
.daily-brief .db-leader-pct.down { color: var(--down, #5b9a7e); }
.daily-brief .db-disc {
  margin: 4px 0 0;
  font-size: 10px;
  line-height: 1.45;
  color: var(--text3);
  opacity: 0.75;
}
.daily-brief .db-page {
  display: flex;
  flex-direction: column;
}
.daily-brief .db-hot {
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--text2);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}
.daily-brief .db-sec {
  margin-top: 16px;
}
.daily-brief .db-sec h4 {
  font-size: 12px;
  color: var(--text3);
  margin: 0 0 6px;
  font-weight: 600;
  letter-spacing: 0.08em;
}
.daily-brief .db-sec p,
.daily-brief .db-sec li {
  font-size: 13px;
  line-height: 1.55;
  color: var(--text2);
  margin: 0;
}
.daily-brief .db-sec ol {
  margin: 0;
  padding-left: 18px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.daily-brief .db-tags {
  font-size: 11px;
  color: var(--text3);
  margin-top: 2px;
}
.daily-brief .db-watch {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0 0 10px;
}
.daily-brief .db-watch i {
  font-style: normal;
  font-size: 11.5px;
  padding: 5px 9px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.06);
  color: var(--text2);
  line-height: 1.3;
  max-width: 100%;
}
.daily-brief .db-watch i:first-child {
  background: rgba(201, 169, 98, 0.12);
  border-color: rgba(201, 169, 98, 0.28);
  color: var(--gold, #c9a962);
}
.daily-brief .db-mini-news {
  margin: 0 0 10px;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.daily-brief .db-mini-news li {
  font-size: 12px;
  line-height: 1.45;
  color: var(--text3);
  padding-left: 10px;
  border-left: 2px solid rgba(255, 255, 255, 0.08);
}
.daily-brief .db-expand,
.daily-brief .db-collapse {
  margin-top: 2px;
}
.daily-brief .db-disc {
  margin-top: 12px;
  font-size: 11px;
  color: var(--text3);
  line-height: 1.45;
}
.share-mask {
  position: fixed;
  inset: 0;
  z-index: 40;
  background: rgba(0, 0, 0, 0.78);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px 16px;
  animation: shareFadeIn 0.2s ease;
}
.share-mask[hidden] { display: none !important; }
@keyframes shareFadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}
.share-sheet {
  width: min(380px, 100%);
  background: var(--bg2);
  border: 1px solid var(--line2);
  border-radius: var(--radius);
  max-height: 90vh;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.55);
  animation: shareSlideUp 0.25s ease;
}
@keyframes shareSlideUp {
  from { opacity: 0; transform: translateY(12px) scale(0.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
.share-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px 12px;
  border-bottom: 1px solid var(--line);
  margin-bottom: 0;
}
.share-title {
  font-family: var(--serif);
  font-size: 15px;
  letter-spacing: 0.14em;
  color: var(--text);
}
.share-close-btn {
  width: 30px;
  height: 30px;
  border: none;
  background: rgba(255, 255, 255, 0.06);
  color: var(--text2);
  border-radius: 50%;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background 0.15s, color 0.15s;
}
.share-close-btn:active {
  background: rgba(255, 255, 255, 0.12);
  color: var(--text);
}
.share-preview {
  padding: 14px 16px 0;
  overflow: auto;
  flex: 1;
  min-height: 0;
  -webkit-overflow-scrolling: touch;
}
#share-canvas {
  display: none !important;
}
.share-img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 6px;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.45);
  border: 1px solid rgba(194, 163, 107, 0.18);
  -webkit-touch-callout: default;
  user-select: none;
  -webkit-user-select: none;
}
.share-img[hidden] {
  display: none !important;
}
.share-copy-fallback {
  display: block;
  width: calc(100% - 32px);
  margin: 0 16px 8px;
  min-height: 88px;
  padding: 10px 12px;
  border: 1px solid var(--line2);
  border-radius: 6px;
  background: rgba(0, 0, 0, 0.25);
  color: var(--text2);
  font-size: 12px;
  line-height: 1.55;
  font-family: var(--sans);
  resize: none;
}
.share-copy-fallback[hidden] { display: none !important; }
.share-tip {
  padding: 10px 16px 0;
  margin: 0;
  font-size: 12px;
  text-align: center;
  color: var(--text3);
  line-height: 1.5;
}
.share-actions {
  display: flex;
  gap: 10px;
  padding: 14px 16px 18px;
}
.share-btn-primary,
.share-btn-secondary {
  flex: 1;
  height: 42px;
  border-radius: 4px;
  font-size: 14px;
  letter-spacing: 0.12em;
  cursor: pointer;
  font-family: var(--sans);
  font-weight: 500;
  transition: opacity 0.15s, transform 0.1s;
}
.share-btn-secondary {
  border: 1px solid rgba(194, 163, 107, 0.35);
  background: transparent;
  color: var(--gold);
}
.share-btn-secondary:active {
  background: rgba(194, 163, 107, 0.08);
}
.share-btn-primary {
  border: 1px solid var(--gold);
  background: linear-gradient(180deg, #d4b57a 0%, #b89555 100%);
  color: #1a160e;
}
.share-btn-primary:active,
.share-btn-secondary:active {
  transform: scale(0.98);
}
.mark {
  font-family: var(--serif);
  font-size: 40px;
  font-weight: 600;
  letter-spacing: 0.36em;
  padding-left: 0.36em;
  line-height: 1.05;
  color: var(--text);
  text-shadow: 0 0 48px rgba(194, 163, 107, 0.16);
}
.mark-en {
  margin-top: 6px;
  font-size: 12px;
  letter-spacing: 0.4em;
  color: var(--gold);
  text-transform: uppercase;
}
.brand-sub, .muted { color: var(--text3); font-size: 12px; font-variant-numeric: tabular-nums; letter-spacing: 0.04em; }
.back, .ghost {
  border: 1px solid var(--line);
  background: transparent;
  color: var(--text2);
  border-radius: 8px;
  padding: 7px 12px;
  font-size: 13px;
  letter-spacing: 0.08em;
  cursor: pointer;
}
#page-report #btn-again.ghost,
#page-shiqi #shiqi-refresh.ghost {
  border: 1px solid rgba(194, 163, 107, 0.42);
  background: linear-gradient(165deg, rgba(194, 163, 107, 0.16) 0%, rgba(194, 163, 107, 0.05) 100%);
  color: #e8d6a8;
  border-radius: 8px;
  padding: 6px 10px;
  font-size: 12px;
  letter-spacing: 0.06em;
  font-weight: 550;
}
#page-report #btn-again.ghost:active,
#page-shiqi #shiqi-refresh.ghost:active {
  opacity: 0.88;
  background: linear-gradient(165deg, rgba(194, 163, 107, 0.24) 0%, rgba(194, 163, 107, 0.1) 100%);
}
.rep-head { text-align: center; }
.rep-head #r-name {
  font-family: var(--serif);
  font-weight: 600;
  font-size: 18px;
  letter-spacing: 0.12em;
}

.hero { margin: 0 0 22px; }
.hero h1 {
  font-family: var(--serif);
  font-size: 24px;
  line-height: 1.35;
  font-weight: 600;
  letter-spacing: 0.14em;
  margin-top: 14px;
}
.hero p {
  margin-top: 8px;
  color: var(--text2);
  font-size: 14px;
  line-height: 1.65;
  max-width: 34em;
}

/* —— 首页：品牌 · 搜索 · 任务 · 最近 —— */
.page-home {
  gap: 0;
  position: relative;
  background:
    radial-gradient(ellipse 130% 58% at 48% -12%, rgba(194, 163, 107, 0.1), transparent 58%),
    radial-gradient(ellipse 70% 36% at 100% 18%, rgba(194, 163, 107, 0.035), transparent 55%);
}
.home-hero {
  margin: 2px 0 10px;
  animation: homeFadeUp 0.45s cubic-bezier(0.22, 1, 0.36, 1) both;
}
@keyframes homeFadeUp {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: none; }
}
.home-brand {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 5px;
}
.home-brand-mark {
  font-family: var(--serif);
  font-size: 28px;
  font-weight: 600;
  letter-spacing: 0.26em;
  line-height: 1.05;
  color: var(--gold);
  text-indent: 0.06em;
  text-shadow: 0 0 18px rgba(194, 163, 107, 0.12);
}
.home-brand-line {
  display: block;
  width: 24px;
  height: 1px;
  background: linear-gradient(90deg, var(--gold), transparent);
  opacity: 0.65;
}
.home-tagline {
  font-size: 11px;
  color: var(--text3);
  letter-spacing: 0.2em;
  line-height: 1.3;
}

.home-topbar {
  margin-bottom: 12px;
  align-items: center;
  justify-content: flex-start;
}
.home-topbar .home-brand-inline {
  flex: 1;
}
.home-brand-inline {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.home-brand-inline .mark {
  font-family: var(--serif);
  font-size: 20px;
  letter-spacing: 0.22em;
  color: var(--gold);
  line-height: 1.2;
}

.home-search,
.home-search-card {
  margin-bottom: 10px;
  padding: 0;
  border: none;
  border-radius: 0;
  background: transparent;
  animation: homeFadeUp 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.05s both;
}
.home-search.is-guide .search-field,
.home-search-card.is-guide .search-field {
  animation: searchGuide 1.2s ease 2;
}
@keyframes searchGuide {
  0%, 100% { box-shadow: none; border-color: rgba(194, 163, 107, 0.28); }
  50% { box-shadow: 0 0 0 3px rgba(194, 163, 107, 0.12); border-color: rgba(194, 163, 107, 0.55); }
}

.search-steps { display: none; }
.search-box--hero { margin-bottom: 0; }
.search-field {
  display: flex;
  align-items: center;
  gap: 8px;
  height: 38px;
  padding: 0 11px;
  border: 1px solid rgba(194, 163, 107, 0.24);
  border-radius: 9px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.028), transparent 60%),
    rgba(0, 0, 0, 0.26);
  transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
  cursor: text;
  overflow: hidden;
}
.search-field.is-focus,
.search-field:focus-within {
  border-color: rgba(194, 163, 107, 0.6);
  box-shadow: 0 0 0 2px rgba(194, 163, 107, 0.08);
  background:
    linear-gradient(180deg, rgba(194, 163, 107, 0.05), transparent 70%),
    rgba(0, 0, 0, 0.35);
}
.search-field-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  color: var(--text3);
  flex-shrink: 0;
  transition: color 0.15s;
}
.search-field-icon svg {
  display: block;
  width: 16px;
  height: 16px;
}
.search-field.is-focus .search-field-icon,
.search-field:focus-within .search-field-icon {
  color: var(--gold);
}
.search-box--hero input,
.search-box--hero input:focus {
  height: 100%;
  font-size: 14px;
  border: none;
  border-bottom: none;
  outline: none;
  box-shadow: none;
  background: transparent;
  padding: 0;
  flex: 1;
  min-width: 0;
  border-radius: 0;
  color: var(--text);
}
.search-box--hero input::placeholder {
  color: var(--text3);
  opacity: 0.85;
  font-size: 13px;
}
.search-hint {
  margin-top: 5px;
  font-size: 10.5px;
  line-height: 1.35;
  color: var(--text3);
  min-height: 1.35em;
  letter-spacing: 0.02em;
  transition: color 0.2s;
}
.search-hint.is-ready { color: var(--text2); }
.search-hint.is-warn {
  color: #d4a574;
  animation: hintShake 0.45s ease;
}
.search-field.is-shake {
  animation: hintShake 0.45s ease;
}
@keyframes hintShake {
  0%, 100% { transform: translateX(0); }
  20% { transform: translateX(-4px); }
  40% { transform: translateX(4px); }
  60% { transform: translateX(-3px); }
  80% { transform: translateX(3px); }
}
.search-box--hero .action-row {
  margin-top: 8px;
  display: flex;
  align-items: stretch;
  gap: 8px;
  padding: 0;
  border: none;
  background: transparent;
  box-shadow: none;
}
.search-box--hero .action-row--prep {
  display: flex;
}
.search-box--hero .btn-main,
.search-box--hero .btn-side {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 0;
  min-width: 0;
  width: auto;
  height: 34px;
  min-height: 34px;
  max-height: 34px;
  padding: 0 12px;
  line-height: 1;
  cursor: pointer;
  border-radius: 9px;
  transition: transform 0.12s, box-shadow 0.12s, background 0.12s, color 0.12s, border-color 0.12s;
}
.search-box--hero .btn-main {
  flex: 1.15 1 0;
}
.search-box--hero .btn-side {
  flex: 0.85 1 0;
}
.search-box--hero .btn-text {
  font-size: 12.5px;
  letter-spacing: 0.08em;
  font-weight: 600;
}
.search-box--hero .btn-sub {
  display: none;
}
.search-box--hero .btn-main {
  border: none;
  background: linear-gradient(165deg, #d8bf88 0%, var(--gold) 55%, #b89255 100%);
  color: #1a160e;
  box-shadow:
    0 2px 8px rgba(194, 163, 107, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.22);
}
.search-box--hero .btn-main:active {
  transform: scale(0.985);
  box-shadow: 0 1px 4px rgba(194, 163, 107, 0.14);
}
.search-box--hero .btn-side {
  background: linear-gradient(165deg, #5a4a30 0%, #3d3424 55%, #2e281c 100%);
  border: 1px solid rgba(194, 163, 107, 0.58);
  color: #e8d6a8;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.1),
    0 1px 4px rgba(0, 0, 0, 0.25);
}
.search-box--hero .btn-side .btn-text {
  color: #e8d6a8;
  font-weight: 600;
  font-size: 12.5px;
  letter-spacing: 0.1em;
}
.search-box--hero .btn-side .btn-sub { display: none; }
.search-box--hero .btn-side:active {
  transform: scale(0.985);
  background: linear-gradient(165deg, #6a5838 0%, #4a3e2a 55%, #3a3224 100%);
  border-color: rgba(194, 163, 107, 0.75);
  color: #f2e4c0;
}
.search-box--hero .btn-side:active .btn-text {
  color: #f2e4c0;
}
.btn-portfolio {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  margin-top: 10px;
  padding: 11px 12px;
  border: 1px solid rgba(194, 163, 107, 0.38);
  border-radius: 10px;
  background: linear-gradient(135deg, rgba(194, 163, 107, 0.14) 0%, rgba(194, 163, 107, 0.06) 100%);
  color: var(--text);
  cursor: pointer;
  font-family: var(--sans);
  text-align: left;
  transition: transform 0.12s, background 0.12s, border-color 0.12s;
}
.btn-portfolio:active {
  transform: scale(0.99);
  background: rgba(194, 163, 107, 0.16);
}
.btn-portfolio-ico {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: rgba(194, 163, 107, 0.18);
  color: var(--gold);
  font-size: 15px;
}
.btn-portfolio-body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.btn-portfolio-body b {
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--text);
}
.btn-portfolio-body small {
  font-size: 11px;
  color: var(--text3);
  line-height: 1.3;
}
.btn-portfolio-meta {
  flex-shrink: 0;
  font-size: 10px;
  padding: 3px 8px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid var(--line);
  color: var(--gold);
  letter-spacing: 0.04em;
  white-space: nowrap;
}
.btn-portfolio-go {
  flex-shrink: 0;
  color: var(--gold);
  font-size: 22px;
  line-height: 1;
  font-weight: 300;
  opacity: 0.85;
}
.home-search-card .btn-portfolio {
  margin-top: 10px;
}

/* ── 首页 · 今日精选 Tab 面板 ── */
.daily-picks-panel {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.dp-panel {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.dp-panel .strat-bar {
  margin: 0;
}
.dp-panel-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  padding: 0 2px;
}
.panel-empty {
  padding: 14px 10px;
  text-align: left;
}
.panel-empty p {
  margin: 0 0 8px;
  font-size: 13px;
  color: var(--text2);
  line-height: 1.45;
}
.panel-empty-acts {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 14px;
}
.dp-meta-focus {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--gold);
  font-size: 12px;
  padding: 0;
  cursor: pointer;
  letter-spacing: 0.02em;
}
.dp-meta-filter {
  font-size: 11px;
  color: var(--text3);
  margin-left: auto;
}
.dp-panel-sec {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.dp-panel-sec-lab {
  font-size: 11px;
  letter-spacing: 0.12em;
  color: var(--text3);
  padding: 0 2px;
  display: flex;
  align-items: baseline;
  gap: 8px;
}
.dp-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.dp-chip {
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
  padding: 4px 8px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.06);
  font-variant-numeric: tabular-nums;
  font-size: 11px;
}
.dp-chip i {
  font-style: normal;
  color: var(--text3);
  font-size: 10px;
}
.dp-chip b {
  font-weight: 600;
  font-size: 11px;
}
.dp-backdrop-fold > summary {
  list-style: none;
  cursor: pointer;
  font-size: 11px;
  color: var(--gold);
  padding: 4px 0;
}
.dp-backdrop-fold > summary::-webkit-details-marker { display: none; }
.coil-panel {
  display: block;
  width: 100%;
  text-align: left;
  appearance: none;
  border: 1px solid rgba(194, 163, 107, 0.35);
  background: linear-gradient(135deg, rgba(194, 163, 107, 0.14), rgba(20, 24, 32, 0.4));
  border-radius: 10px;
  padding: 12px 12px 10px;
  color: inherit;
  cursor: pointer;
}
.coil-panel--empty {
  cursor: default;
  opacity: 0.85;
}
.coil-panel-lab {
  font-size: 11px;
  letter-spacing: 0.14em;
  color: var(--gold);
  margin-bottom: 6px;
}
.coil-panel-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
}
.coil-panel-row b {
  display: block;
  font-size: 16px;
}
.coil-panel-row small {
  display: block;
  margin-top: 2px;
  font-size: 12px;
  color: var(--text3);
}
.coil-panel-act {
  margin-top: 8px;
  font-size: 12px;
  color: var(--text2);
  line-height: 1.45;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.coil-card {
  border-color: rgba(194, 163, 107, 0.28);
  background: linear-gradient(160deg, rgba(194, 163, 107, 0.1), transparent 42%);
}
.coil-kicker {
  font-size: 11px;
  letter-spacing: 0.16em;
  color: var(--gold);
  margin-bottom: 8px;
}
.coil-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
}
.coil-name b {
  font-size: 18px;
}
.coil-theme {
  margin-top: 4px;
  font-size: 13px;
  color: var(--text2);
}
.coil-px {
  text-align: right;
}
.coil-setup {
  margin-top: 10px;
  font-size: 13px;
  color: var(--text);
}
.coil-why {
  margin: 8px 0 0;
  padding-left: 1.1em;
  font-size: 12px;
  line-height: 1.55;
  color: var(--text2);
}
.coil-watch {
  margin-top: 10px;
  padding: 8px 10px;
  font-size: 12px;
  line-height: 1.45;
  background: rgba(0, 0, 0, 0.22);
  border-radius: 6px;
  color: var(--text2);
}
.coil-act {
  margin-top: 8px;
  font-size: 13px;
  color: var(--gold);
}
.coil-hot {
  margin-top: 10px;
}
.coil-open {
  margin-top: 10px;
}
.dp-panel-backdrop {
  font-size: 12px;
  line-height: 1.55;
  color: var(--text2);
  padding: 10px 12px;
  border-radius: 8px;
  background: var(--bg2);
  border: 1px solid var(--line);
  font-family: var(--mono);
  letter-spacing: 0.02em;
}
.dp-panel-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.dp-panel-row {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--bg1);
  color: var(--text);
  cursor: pointer;
  font-family: var(--sans);
  text-align: left;
  transition: background 0.12s, border-color 0.12s;
}
.dp-panel-row:active {
  background: rgba(194, 163, 107, 0.08);
}
.dp-panel-rank {
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: rgba(194, 163, 107, 0.15);
  color: var(--gold);
  font-size: 12px;
  font-family: var(--mono);
}
.dp-panel-main {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.dp-panel-main b {
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.04em;
}
.dp-panel-main small {
  font-size: 11px;
  color: var(--text3);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.dp-panel-main > .stance-preview {
  margin-top: 2px;
}
.dp-panel-main > .stance-detail {
  max-width: 100%;
}
.dp-panel-row.has-stance {
  border-color: rgba(194, 163, 107, 0.2);
}
.dp-panel-pct {
  flex-shrink: 0;
  font-size: 14px;
  font-family: var(--mono);
  font-weight: 500;
}
.dp-panel-note {
  font-size: 11px;
  text-align: center;
  margin-top: 2px;
}
.dp-panel-filter {
  font-size: 11px;
  color: var(--gold);
  letter-spacing: 0.06em;
  padding: 0 2px;
  margin-bottom: 6px;
}
.dp-panel-focus {
  margin: 0 0 8px;
  padding: 6px 10px;
  font-size: 12px;
  color: var(--text2);
  background: rgba(194, 163, 107, 0.08);
  border-radius: 6px;
  border-left: 3px solid rgba(194, 163, 107, 0.45);
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 8px;
}
.dp-panel-focus b {
  color: var(--gold);
  margin-left: 2px;
}
.dp-panel-focus-note {
  flex: 1 1 100%;
  font-size: 11px;
  color: var(--text3);
}
.dp-panel-focus-go {
  margin-left: auto;
  font-size: 11px;
}
.dp-focus-line {
  margin: 0 0 10px;
  padding: 8px 10px;
  font-size: 12px;
  line-height: 1.45;
  color: var(--text2);
  background: rgba(194, 163, 107, 0.08);
  border-radius: 8px;
}
.dp-focus-line b {
  color: var(--gold);
  margin: 0 4px;
}
.dp-focus-line span {
  display: block;
  margin-top: 2px;
  font-size: 11px;
  color: var(--text3);
}
.pf-watch {
  margin: 0 0 12px;
  padding: 10px 12px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.07);
}
.pf-watch-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 8px;
  font-size: 12px;
  color: var(--gold);
  letter-spacing: 0.04em;
}
.pf-watch-head em {
  font-style: normal;
  font-size: 11px;
  color: var(--text3);
  letter-spacing: 0;
}
.pf-watch-alerts {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 8px;
}
.pf-watch-alert {
  appearance: none;
  width: 100%;
  text-align: left;
  border: 1px solid rgba(196, 92, 88, 0.28);
  background: rgba(196, 92, 88, 0.1);
  color: var(--text);
  border-radius: 8px;
  padding: 7px 10px;
  cursor: pointer;
  display: flex;
  flex-wrap: wrap;
  gap: 4px 8px;
  align-items: baseline;
  font-size: 12px;
  line-height: 1.4;
}
.pf-watch-alert em {
  font-style: normal;
  font-size: 10px;
  color: #f0c4c2;
  letter-spacing: 0.04em;
}
.pf-watch-alert b { font-weight: 600; }
.pf-watch-alert span {
  flex: 1 1 100%;
  color: var(--text2);
  font-size: 11px;
}
.pf-watch-list {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.pf-watch-row {
  appearance: none;
  width: 100%;
  display: grid;
  grid-template-columns: 1fr auto auto auto;
  gap: 8px;
  align-items: center;
  text-align: left;
  border: 0;
  background: transparent;
  color: var(--text);
  padding: 7px 4px;
  border-radius: 6px;
  cursor: pointer;
  font-size: 13px;
}
.pf-watch-row:active,
.pf-watch-row.is-alert {
  background: rgba(255, 255, 255, 0.03);
}
.pf-watch-row.is-alert {
  background: rgba(196, 92, 88, 0.06);
}
.pf-watch-name {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
}
.pf-watch-name b {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pf-watch-badge {
  flex-shrink: 0;
  font-style: normal;
  font-size: 10px;
  padding: 1px 5px;
  border-radius: 3px;
  background: rgba(255, 255, 255, 0.06);
  color: var(--text3);
}
.pf-watch-badge--cut,
.pf-watch-badge--auction,
.pf-watch-badge--reduce_rally,
.pf-watch-badge--deep_loss,
.pf-watch-badge--below_cost {
  background: rgba(196, 92, 88, 0.18);
  color: #f0c4c2;
}
.pf-watch-badge--focus,
.pf-watch-badge--check {
  background: rgba(194, 163, 107, 0.18);
  color: var(--gold);
}
.pf-watch-row .price,
.pf-watch-row .chg,
.pf-watch-row .pnl {
  font-variant-numeric: tabular-nums;
  font-size: 12px;
}
.pf-watch-row .pnl {
  min-width: 3.6em;
  text-align: right;
  opacity: 0.92;
}
.dp-panel-review {
  margin-top: 4px;
  padding-top: 8px;
  border-top: 1px solid var(--line);
}
.dp-panel-review .review-dp-block {
  margin: 0;
}
.dp-panel-review .review-summary {
  font-size: 11px;
  margin-bottom: 6px;
}
.dp-panel-actions {
  display: flex;
  justify-content: flex-end;
  gap: 14px;
  margin-top: 4px;
}
.dp-pass-badge {
  display: inline-block;
  font-size: 10px;
  padding: 1px 6px;
  border-radius: 4px;
  background: rgba(196, 92, 88, 0.12);
  color: var(--red);
  border: 1px solid rgba(196, 92, 88, 0.25);
  vertical-align: middle;
}
.dp-pass-badge--low {
  background: rgba(194, 163, 107, 0.1);
  color: var(--gold);
  border-color: rgba(194, 163, 107, 0.25);
}

.dp-body { gap: 10px; }
.dp-ctx-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}
.dp-ctx-asof {
  font-size: 11px;
}
.dp-ctx-oneline {
  margin-top: 10px;
  padding: 10px 12px;
  border-radius: 8px;
  background: var(--bg2);
  border: 1px solid var(--line);
  font-size: 12px;
  font-family: var(--mono);
  color: var(--text2);
  line-height: 1.5;
}
.dp-ctx-line {
  font-size: 13px;
  font-family: var(--mono);
  color: var(--text);
  line-height: 1.5;
}
.dp-logic--short {
  margin-top: 8px;
}
.dp-logic--short li {
  margin-bottom: 4px;
}
.dp-ctx-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  margin-top: 10px;
}
.dp-ctx-block {
  padding: 12px;
  border-radius: 8px;
  background: var(--bg2);
  border: 1px solid var(--line);
}
.dp-ctx-lab {
  font-size: 12px;
  letter-spacing: 0.08em;
  color: var(--text2);
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.dp-ctx-rows {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 12px;
  font-size: 13px;
  font-family: var(--mono);
}
.dp-ctx-rows span { color: var(--text); }
.dp-giants {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}
.dp-giant {
  font-size: 10px;
  padding: 3px 7px;
  border-radius: 4px;
  background: rgba(194, 163, 107, 0.12);
  color: var(--text2);
  letter-spacing: 0.04em;
}
.dp-ctx-note {
  margin-top: 8px;
  font-size: 11px;
  line-height: 1.5;
}
.dp-picks-title {
  font-size: 12px;
  letter-spacing: 0.16em;
  color: var(--gold);
  text-transform: uppercase;
  margin: 4px 0 2px;
}
.dp-pick-head {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}
.dp-rank {
  flex-shrink: 0;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: rgba(194, 163, 107, 0.18);
  color: var(--gold);
  font-size: 13px;
  font-weight: 600;
  font-family: var(--mono);
}
.dp-pick-main { flex: 1; min-width: 0; }
.dp-pick-name {
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.04em;
}
.dp-pick-meta {
  margin-top: 4px;
  font-size: 11px;
  color: var(--text3);
  letter-spacing: 0.04em;
}
.dp-pick-side {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
}
.dp-pick-pct {
  font-size: 16px;
  font-family: var(--mono);
  font-weight: 500;
}
.dp-pick-sum {
  margin-top: 10px;
  font-size: 12px;
  line-height: 1.55;
}
.dp-logic {
  margin-top: 10px;
  padding-left: 18px;
  color: var(--text2);
  font-size: 12px;
  line-height: 1.55;
}
.dp-logic li { margin-bottom: 6px; }
.dp-action {
  margin-top: 12px;
  padding: 10px 12px;
  border-radius: 8px;
  background: rgba(194, 163, 107, 0.08);
  border-left: 3px solid var(--gold);
  font-size: 12px;
  line-height: 1.55;
  color: var(--text);
}
.dp-action .lab {
  display: block;
  font-size: 10px;
  letter-spacing: 0.14em;
  color: var(--gold);
  margin-bottom: 4px;
}
.home-nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}
.search-box--hero .btn-side {
  background: linear-gradient(165deg, #5a4a30 0%, #3d3424 55%, #2e281c 100%);
  color: #e8d6a8;
  border: 1px solid rgba(194, 163, 107, 0.58);
}
.search-box--hero .btn-side .btn-sub { display: none; }
.search-box--hero .btn-side .btn-text {
  color: #e8d6a8;
}
.home-nav-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 10px 10px;
  border: 1px solid rgba(194, 163, 107, 0.22);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.04);
  color: var(--text);
  cursor: pointer;
  text-align: left;
  font-family: var(--sans);
  transition: border-color 0.15s, background 0.15s, transform 0.12s;
}
.home-nav-btn:active {
  transform: scale(0.98);
  background: rgba(194, 163, 107, 0.1);
  border-color: rgba(194, 163, 107, 0.45);
}
.home-nav-ico {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: rgba(194, 163, 107, 0.1);
  color: var(--gold);
  font-size: 14px;
}
.home-nav-body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.home-nav-body b {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.04em;
}
.home-nav-body small {
  font-size: 10px;
  color: var(--text3);
  line-height: 1.3;
}
.home-nav-go {
  flex-shrink: 0;
  color: var(--gold);
  font-size: 20px;
  line-height: 1;
  font-weight: 300;
}

/* 我的持仓 */
.page.page-portfolio {
  padding-left: 0;
  padding-right: 0;
  padding-bottom: 0;
  /* 禁止整页滚动，只让 .pf-body 滚，避免微信双滚动裁切/叠影 */
  overflow: hidden;
}
.page-portfolio {
  display: flex;
  flex-direction: column;
  flex: 1 1 0;
  min-height: 0; /* 覆盖 min-height:100%，否则 flex 子项无法收缩→裁切 */
  max-height: 100%;
  min-width: 0;
  width: 100%;
  overflow: hidden;
}
.page-portfolio > .topbar.sticky {
  position: relative; /* 微信内 sticky + 内层滚动易叠影 */
  top: auto;
  margin-left: 0;
  margin-right: 0;
  margin-bottom: 0;
  padding-left: var(--page-x);
  padding-right: var(--page-x);
  flex-shrink: 0;
  background: var(--bg);
}
.page-portfolio .pf-tabs {
  flex-shrink: 0;
}
.page-portfolio .pf-body {
  flex: 1 1 0;
  min-height: 0;
  min-width: 0;
  max-width: 100%;
  width: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: auto; /* touch 模式在微信易残影 */
  padding-left: var(--page-x);
  padding-right: var(--page-x);
  padding-bottom: 20px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  /* 建立独立层，减少滚动合成叠字 */
  transform: translateZ(0);
}
/* 子卡片禁止被 flex 压缩高度，否则 overflow:hidden 会裁掉持仓 */
.page-portfolio .pf-body > .card,
.page-portfolio .pf-body > .strat-bar,
.page-portfolio .pf-body > .pf-summary,
.page-portfolio .pf-body > .pf-guide-item,
.page-portfolio .pf-body > .pf-guide-empty-wrap,
.page-portfolio .pf-body > .pf-guide-loading,
.page-portfolio .pf-body > .pf-disc,
.page-portfolio .pf-body > .pf-foot-note,
.page-portfolio .pf-body > article {
  flex: 0 0 auto;
  flex-shrink: 0;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}
.page-portfolio .pf-body > .card,
.page-portfolio .pf-body > .pf-summary,
.page-portfolio .pf-body > .pf-guide-item {
  overflow: visible;
}
.pf-count {
  font-size: 12px;
  color: var(--gold);
  letter-spacing: 0.06em;
}
.pf-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  flex-shrink: 0;
  width: 100%;
  box-sizing: border-box;
  margin: 0 0 10px;
  padding: 0 var(--page-x) 12px;
  border-bottom: 1px solid var(--line);
}
.pf-tab {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  height: 40px;
  padding: 0 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: transparent;
  color: var(--text3);
  font-size: 13px;
  letter-spacing: 0.06em;
  text-align: center;
  white-space: nowrap;
  cursor: pointer;
  font-family: var(--sans);
  transition: color 0.15s, border-color 0.15s, background 0.15s;
}
.pf-tab.active {
  color: var(--gold);
  border-color: rgba(194, 163, 107, 0.45);
  background: rgba(194, 163, 107, 0.08);
}
.pf-bottom {
  flex-shrink: 0;
  z-index: 6;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  width: 100%;
  box-sizing: border-box;
  padding: 10px var(--page-x) calc(10px + env(safe-area-inset-bottom));
  margin-top: 0;
  border-top: 1px solid var(--line);
  /* 实色底，去掉 blur，避免微信滚动叠影 */
  background: #070708;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.pf-bottom.pf-bottom--single {
  grid-template-columns: minmax(0, 1fr);
}
.pf-bottom-btn {
  width: 100%;
  min-width: 0;
  height: 44px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.08em;
  cursor: pointer;
  font-family: var(--sans);
  border: 1px solid var(--line);
}
.pf-bottom-save {
  background: rgba(255, 255, 255, 0.04);
  color: var(--text);
}
.pf-bottom-guide {
  background: linear-gradient(180deg, #d4b87a 0%, var(--gold) 100%);
  border-color: var(--gold);
  color: #1a160e;
}
.pf-bottom-btn:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}
.pf-panel { margin-top: 0; }
.pf-panel-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 10px;
}
.pf-panel-hint {
  margin: 4px 0 0;
  font-size: 11px;
  color: var(--text3);
}
.pf-panel-count {
  font-size: 12px;
  color: var(--gold);
}
.pf-panel-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}
.pf-clear-all {
  border: 1px solid rgba(196, 92, 88, 0.35);
  background: rgba(196, 92, 88, 0.08);
  color: #e8b4b2;
  border-radius: 6px;
  padding: 4px 10px;
  font-size: 12px;
  letter-spacing: 0.06em;
  cursor: pointer;
  font-family: var(--sans);
}
.pf-clear-all:active {
  background: rgba(196, 92, 88, 0.16);
}
.pf-add-bar {
  position: relative;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
  align-items: start;
}
.pf-add-stack {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.pf-add-bar--full {
  display: block;
  padding: 10px 0;
  text-align: center;
}
.pf-ocr-btn {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 12px 14px;
  border: 1px solid rgba(194, 163, 107, 0.55);
  border-radius: 12px;
  background: linear-gradient(135deg, rgba(194, 163, 107, 0.22) 0%, rgba(194, 163, 107, 0.08) 100%);
  color: var(--text);
  cursor: pointer;
  font-family: var(--sans);
  text-align: left;
  box-shadow: 0 2px 12px rgba(194, 163, 107, 0.12);
  transition: transform 0.12s, background 0.15s, box-shadow 0.15s;
}
.pf-ocr-btn:active {
  transform: scale(0.99);
  background: rgba(194, 163, 107, 0.2);
}
.pf-ocr-btn.is-loading {
  opacity: 0.65;
  pointer-events: none;
}
.pf-ocr-ico {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: rgba(194, 163, 107, 0.2);
  color: var(--gold);
}
.pf-ocr-ico svg {
  width: 22px;
  height: 22px;
}
.pf-ocr-body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.pf-ocr-body b {
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--gold);
}
.pf-ocr-body small {
  font-size: 11px;
  color: var(--text3);
  line-height: 1.35;
}
.pf-ocr-go {
  flex-shrink: 0;
  color: var(--gold);
  font-size: 22px;
  font-weight: 300;
  opacity: 0.9;
}
.pf-ocr-wx-hint {
  margin: 0;
  padding: 0 4px;
  font-size: 11px;
  color: var(--text3);
  line-height: 1.45;
  text-align: center;
}
.pf-import-loading {
  text-align: center;
  padding: 32px 16px;
}
.pf-import-loading p {
  margin: 12px 0 0;
  font-size: 14px;
  color: var(--text2);
}
.pf-import-loading small {
  display: block;
  margin-top: 6px;
  font-size: 12px;
  color: var(--text3);
}
.pf-import-mask {
  position: fixed;
  inset: 0;
  z-index: 100;
  background: rgba(0, 0, 0, 0.72);
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: 0;
}
.pf-import-mask[hidden] { display: none !important; }
.app-confirm-mask {
  position: fixed;
  inset: 0;
  z-index: 130;
  background: rgba(0, 0, 0, 0.72);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px var(--page-x);
}
.app-confirm-mask[hidden] { display: none !important; }
.app-confirm-card {
  width: 100%;
  max-width: 340px;
  padding: 20px 18px 16px;
  border-radius: 14px;
  background: var(--bg1);
  border: 1px solid var(--line);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.45);
}
.app-confirm-title {
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.08em;
  color: var(--text);
}
.app-confirm-msg {
  margin: 10px 0 0;
  font-size: 13px;
  line-height: 1.6;
  color: var(--text2);
}
.app-confirm-actions {
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  gap: 8px;
  margin-top: 18px;
}
.app-confirm-actions .ghost,
.app-confirm-actions .primary {
  height: 42px;
  margin: 0;
  border-radius: 8px;
  font-size: 14px;
}
.app-confirm-ok--danger {
  background: rgba(196, 92, 88, 0.9) !important;
  border-color: rgba(196, 92, 88, 0.9) !important;
  color: #fff !important;
}
.pf-import-sheet {
  width: 100%;
  max-width: 520px;
  max-height: 88vh;
  overflow: auto;
  background: var(--bg1);
  border-radius: 16px 16px 0 0;
  border: 1px solid var(--line);
  padding: 16px var(--page-x) calc(16px + env(safe-area-inset-bottom));
}
.pf-import-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}
.pf-import-head b { font-size: 16px; letter-spacing: 0.08em; }
.pf-import-close {
  border: 0;
  background: transparent;
  color: var(--text3);
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
  padding: 4px 8px;
}
.pf-import-body { margin-bottom: 14px; min-height: 80px; }
.pf-import-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.pf-import-row {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 8px 10px;
  align-items: center;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.02);
  cursor: pointer;
}
.pf-import-row input { width: 18px; height: 18px; accent-color: var(--gold); }
.pf-import-main {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.pf-import-main b { font-size: 14px; }
.pf-import-held {
  display: inline-block;
  margin-left: 4px;
  padding: 1px 6px;
  border-radius: 4px;
  font-size: 10px;
  letter-spacing: 0.06em;
  color: var(--gold);
  background: rgba(194, 163, 107, 0.12);
  border: 1px solid rgba(194, 163, 107, 0.28);
  vertical-align: middle;
}
.pf-import-row.is-held {
  opacity: 0.92;
}
.pf-import-tip {
  margin: 10px 0 0;
  font-size: 11px;
  line-height: 1.45;
}
.pf-import-meta {
  font-size: 13px;
  color: var(--gold);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pf-import-empty p {
  font-size: 14px;
  color: var(--text2);
  line-height: 1.5;
  text-align: center;
  padding: 24px 8px;
}
.pf-import-actions {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 8px;
}
.pf-import-actions .ghost,
.pf-import-actions .primary {
  height: 44px;
  margin: 0;
  border-radius: 8px;
  font-size: 14px;
}
.pf-add-bar {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: start;
  max-width: 100%;
}
.pf-add-field {
  display: flex;
  align-items: center;
  min-width: 0;
  height: 42px;
  padding: 0 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.25);
  transition: border-color 0.15s, box-shadow 0.15s;
}
.pf-add-field:focus-within {
  border-color: rgba(194, 163, 107, 0.72);
  box-shadow: 0 0 0 2px rgba(194, 163, 107, 0.12);
}
.pf-add-field input {
  width: 100%;
  min-width: 0;
  height: 100%;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--text);
  font-size: 16px;
  font-family: var(--sans);
  outline: none;
  box-shadow: none;
  -webkit-appearance: none;
  appearance: none;
  -webkit-tap-highlight-color: transparent;
}
.pf-add-field input:focus {
  outline: none;
  border-color: transparent;
  box-shadow: none;
}
.pf-add-btn {
  height: 42px;
  padding: 0 16px;
  border: 1px solid var(--gold);
  border-radius: 8px;
  background: rgba(194, 163, 107, 0.12);
  color: var(--gold);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  font-family: var(--sans);
  white-space: nowrap;
}
.pf-suggest {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 4px);
  z-index: 8;
  max-height: 220px;
  overflow: auto;
}
.pf-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
  width: 100%;
}
.pf-empty {
  padding: 28px 12px;
  text-align: center;
  color: var(--text3);
}
.pf-empty b {
  display: block;
  color: var(--text2);
  font-size: 15px;
  margin-bottom: 6px;
}
.pf-empty p { margin: 0; font-size: 12px; line-height: 1.5; }
.pf-item {
  border: 1px solid var(--line);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.02);
  overflow: visible;
  flex-shrink: 0;
  width: 100%;
  min-width: 0;
}
.pf-item-main {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 12px;
  min-width: 0;
}
.pf-item-info {
  flex: 1;
  min-width: 0;
}
.pf-item-name {
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.04em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pf-item-code { font-size: 11px; color: var(--text3); margin-top: 2px; font-family: var(--mono); }
.pf-item-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 6px;
  font-size: 11px;
  color: var(--text2);
}
.pf-item-chips span {
  padding: 2px 6px;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--line);
}
.pf-item-actions { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
.pf-item-edit {
  border: 0;
  background: transparent;
  color: var(--gold);
  font-size: 12px;
  cursor: pointer;
  padding: 4px 6px;
  font-family: var(--sans);
}
.pf-item-del {
  width: 28px;
  height: 28px;
  border: 0;
  border-radius: 8px;
  background: rgba(196, 92, 88, 0.12);
  color: #c45c58;
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
}
.pf-item-detail {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 8px;
  padding: 0 12px 12px;
  border-top: 1px solid var(--line);
  background: rgba(0, 0, 0, 0.15);
  max-width: 100%;
}
.pf-item-detail label {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-top: 10px;
  font-size: 10px;
  color: var(--text3);
  min-width: 0;
}
.pf-item-detail input {
  width: 100%;
  min-width: 0;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.2);
  color: var(--text);
  font-size: 16px;
  font-family: var(--sans);
  outline: none;
  -webkit-appearance: none;
  appearance: none;
  -webkit-tap-highlight-color: transparent;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.pf-item-detail input:focus {
  border-color: rgba(194, 163, 107, 0.72);
  box-shadow: 0 0 0 2px rgba(194, 163, 107, 0.12);
}
.pf-item-detail input:-webkit-autofill,
.pf-add-field input:-webkit-autofill {
  -webkit-box-shadow: 0 0 0 1000px rgba(0, 0, 0, 0.28) inset;
  -webkit-text-fill-color: var(--text);
  caret-color: var(--text);
  transition: background-color 9999s ease-out 0s;
}
.pf-item-go {
  display: block;
  width: 100%;
  padding: 8px 12px;
  border: 0;
  border-top: 1px solid var(--line);
  background: rgba(194, 163, 107, 0.06);
  color: var(--gold);
  font-size: 12px;
  letter-spacing: 0.08em;
  cursor: pointer;
  font-family: var(--sans);
  text-align: center;
}
.pf-item-go:active {
  background: rgba(194, 163, 107, 0.12);
}
.pf-item-ctas {
  display: flex;
  align-items: stretch;
  border-top: 1px solid var(--line);
}
.pf-item-ctas .pf-item-go {
  flex: 1;
  border-top: 0;
}
.pf-item-go-sub {
  flex: 0 0 auto;
  padding: 8px 12px;
  border: 0;
  border-left: 1px solid var(--line);
  background: transparent;
  color: var(--text3);
  font-size: 11px;
  letter-spacing: 0.04em;
  cursor: pointer;
  font-family: var(--sans);
}
.pf-item-go-sub:active {
  color: var(--text2);
  background: rgba(255, 255, 255, 0.03);
}
.pf-foot-note {
  margin: 4px 2px 0;
  font-size: 11px;
  color: var(--text3);
  line-height: 1.5;
}
.pf-guide-empty-wrap {
  padding: 8px 0 16px;
}
.pf-guide-empty {
  text-align: center;
  padding: 28px 18px 24px;
  border: 1px solid rgba(194, 163, 107, 0.28);
  background: linear-gradient(180deg, rgba(194, 163, 107, 0.08) 0%, rgba(255, 255, 255, 0.02) 100%);
}
.pf-empty-hero { margin-bottom: 18px; }
.pf-empty-icon {
  display: inline-flex;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(194, 163, 107, 0.15);
  color: var(--gold);
  font-size: 20px;
  margin-bottom: 10px;
}
.pf-guide-empty h3 {
  margin: 0 0 8px;
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0.08em;
  color: var(--text);
}
.pf-empty-desc {
  margin: 0;
  font-size: 12px;
  color: var(--text3);
  line-height: 1.55;
}
.pf-empty-ready {
  padding-top: 4px;
}
.pf-empty-badge {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(194, 163, 107, 0.12);
  border: 1px solid rgba(194, 163, 107, 0.3);
  color: var(--gold);
  font-size: 12px;
  margin-bottom: 8px;
}
.pf-empty-ready p {
  margin: 0 0 14px;
  font-size: 12px;
  color: var(--text3);
}
.pf-empty-gen {
  width: 100%;
  max-width: 240px;
  height: 44px;
  margin: 0 auto;
  display: block;
}
.pf-guide-empty--compact {
  padding: 22px 18px 20px;
}
.pf-guide-empty--compact .pf-empty-ready h3 {
  margin: 0 0 6px;
}
.pf-guide-empty--compact .pf-empty-desc {
  margin: 0 0 14px;
}
.pf-guide-empty--compact .pf-go-holdings {
  width: 100%;
  max-width: 240px;
  height: 44px;
  margin: 0 auto;
  display: block;
}
.pf-empty-steps {
  list-style: none;
  margin: 0 0 16px;
  padding: 0;
  text-align: left;
}
.pf-empty-steps li {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 0;
  font-size: 13px;
  color: var(--text2);
  border-bottom: 1px solid var(--line);
}
.pf-empty-steps li:last-child { border-bottom: 0; }
.pf-empty-steps i {
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(194, 163, 107, 0.12);
  color: var(--gold);
  font-style: normal;
  font-size: 11px;
}
.pf-go-holdings {
  width: 100%;
  max-width: 200px;
  height: 40px;
  margin: 0 auto;
  display: block;
  border: 1px solid rgba(194, 163, 107, 0.45);
  border-radius: 8px;
  background: transparent;
  color: var(--gold);
  font-size: 13px;
  cursor: pointer;
  font-family: var(--sans);
}
.pf-guide-loading {
  text-align: center;
  padding: 48px 16px;
}
.pf-guide-loading p {
  display: block;
  font-size: 15px;
  margin-bottom: 6px;
  color: var(--text);
}
.pf-guide-loading small {
  color: var(--text3);
  font-size: 12px;
  line-height: 1.5;
}
.pf-spinner {
  width: 28px;
  height: 28px;
  margin: 0 auto 14px;
  border: 2px solid var(--line);
  border-top-color: var(--gold);
  border-radius: 50%;
  animation: pfSpin 0.8s linear infinite;
}
@keyframes pfSpin { to { transform: rotate(360deg); } }
.pf-toast {
  position: absolute;
  left: 50%;
  bottom: calc(var(--tabbar-h) + 14px + env(safe-area-inset-bottom, 0px));
  transform: translateX(-50%) translateY(12px);
  padding: 10px 16px;
  border-radius: 999px;
  background: rgba(20, 20, 22, 0.92);
  border: 1px solid var(--line);
  color: var(--text);
  font-size: 13px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s, transform 0.2s;
  z-index: 120;
  max-width: calc(100% - 32px);
  white-space: nowrap;
}
.pf-toast.pf-toast--pf {
  bottom: calc(var(--tabbar-h) + 56px + env(safe-area-inset-bottom, 0px));
}
.pf-toast.pf-toast--dock {
  bottom: calc(var(--tabbar-h) + 62px + env(safe-area-inset-bottom, 0px));
}
.pf-toast.show {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}
.pf-summary .pf-act-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}
.pf-summary,
.pf-guide-item {
  overflow: visible;
  padding-bottom: calc(var(--card-pad) + 2px);
}
.pf-sum-meta {
  margin-top: 2px;
  font-size: 12px;
  line-height: 1.45;
}
.pf-sum-tags {
  margin-top: 8px;
}
.pf-sum-periph {
  margin: 10px 0 0;
  padding-top: 10px;
  border-top: 1px solid var(--line);
  font-size: 12px;
  line-height: 1.55;
  color: var(--text2);
  word-break: break-word;
  overflow-wrap: anywhere;
}
.pf-sum-peri,
.pf-sum-peri--hero {
  margin: 8px 0 0;
  padding: 8px 10px;
  border-radius: 6px;
  border: 1px solid rgba(194, 163, 107, 0.18);
  background: rgba(194, 163, 107, 0.05);
  font-size: 11.5px;
  line-height: 1.45;
  color: var(--text2);
  word-break: break-word;
}
.tm-peri {
  margin: 6px 0 0;
  font-size: 11.5px;
  line-height: 1.45;
  color: var(--text3);
  letter-spacing: 0.01em;
}
.pf-act-chip {
  font-size: 11px;
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(194, 163, 107, 0.12);
  color: var(--gold);
  border: 1px solid rgba(194, 163, 107, 0.25);
  line-height: 1.35;
  max-width: 100%;
  white-space: normal;
}
.pf-warn {
  margin-top: 8px;
  padding: 8px 10px;
  border-radius: 8px;
  background: rgba(196, 92, 88, 0.08);
  color: #e8b4b2;
  font-size: 12px;
  line-height: 1.45;
  word-break: break-word;
}
.pf-guide-item { margin-top: 0; }
.pf-body.pf-body--guide,
.pf-body.pf-body--holdings {
  padding-bottom: calc(20px + env(safe-area-inset-bottom));
}
.pf-guide-item,
.pf-summary {
  overflow: visible;
  min-width: 0;
  width: 100%;
}
.pf-gi-head {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: flex-start;
  flex-wrap: wrap;
  min-width: 0;
}
.pf-gi-title {
  min-width: 0;
  flex: 1;
  line-height: 1.45;
  word-break: break-word;
}
.pf-gi-price {
  text-align: right;
  font-size: 13px;
  flex-shrink: 0;
  white-space: nowrap;
}
.pf-gi-price .price {
  font-size: 16px;
  font-weight: 600;
}
.pf-gi-price .price,
.pf-gi-price .chg {
  display: inline-block;
  font-variant-numeric: tabular-nums;
}
.pf-gi-stance {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  margin-top: 10px;
}
.pf-gi-stance .vh-stance { font-size: 15px; }
.pf-gi-stance .muted { font-size: 12px; line-height: 1.4; }
.pf-guide-item .exec-decision {
  margin-top: 10px;
}
.pf-exec-wrap {
  margin-top: 10px;
}
.pf-exec-wrap .exec-decision {
  margin-top: 0;
}
.pf-exec-more {
  margin-top: 6px;
}
.pf-exec-extra {
  margin: 6px 0 0;
  padding-left: 1.15em;
  font-size: 12px;
  color: var(--text3);
  line-height: 1.5;
}
.pf-guide-item .pf-open-tm {
  margin-top: 10px;
  font-size: 12px;
  color: var(--gold);
  opacity: 1;
}
.pf-guide-item--focus .exec-decision {
  border-color: rgba(194, 163, 107, 0.32);
  background: rgba(194, 163, 107, 0.07);
}
.pf-action { font-size: 12px; color: var(--gold); }
.pf-gi-trig { margin-top: 10px; }
.pf-guide-item .tm-warn { margin: 6px 0 8px; }
.pf-guide-item .tm-facts { margin-bottom: 8px; }
.pf-priority {
  display: inline-block;
  font-size: 10px;
  padding: 2px 6px;
  margin-right: 6px;
  border-radius: 4px;
  background: rgba(196, 92, 88, 0.15);
  color: #e8b4b2;
}
.pf-urg {
  display: inline-block;
  font-size: 10px;
  padding: 2px 7px;
  margin-right: 6px;
  border-radius: 4px;
  letter-spacing: 0.02em;
}
.pf-urg--critical {
  background: rgba(196, 92, 88, 0.22);
  color: #f0c4c2;
}
.pf-urg--high {
  background: rgba(194, 163, 107, 0.18);
  color: var(--gold);
}
.pf-urg--mid {
  background: rgba(255, 255, 255, 0.06);
  color: var(--text2);
}
.pf-urg--low {
  background: rgba(255, 255, 255, 0.04);
  color: var(--text3, #888);
}
.pf-watch-why {
  font-size: 12px;
  margin-top: 4px;
  line-height: 1.4;
}
.pf-cost-act {
  margin-top: 6px;
  padding: 6px 10px;
  font-size: 12px;
  line-height: 1.45;
  color: var(--gold);
  background: rgba(194, 163, 107, 0.1);
  border-left: 2px solid rgba(194, 163, 107, 0.55);
}
.pf-focus {
  margin: 10px 0 12px;
  padding: 10px 12px;
  border-radius: 8px;
  background: rgba(194, 163, 107, 0.08);
  border: 1px solid rgba(194, 163, 107, 0.22);
}
.pf-focus-lab {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  font-size: 11px;
  letter-spacing: 0.08em;
  color: var(--gold);
  margin-bottom: 8px;
}
.pf-focus-tip {
  font-style: normal;
  letter-spacing: 0.04em;
  color: var(--text3);
  font-size: 11px;
  font-weight: 400;
}
.pf-guide-item.is-flash,
.pf-focus.is-flash {
  animation: pfFlash 1.6s ease;
  border-color: rgba(194, 163, 107, 0.55);
}
@keyframes pfFlash {
  0%, 100% { box-shadow: none; }
  30% { box-shadow: 0 0 0 1px rgba(194, 163, 107, 0.45); }
}
.pf-focus-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.pf-focus-chip {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  width: 100%;
  text-align: left;
  padding: 10px 11px;
  border-radius: 8px;
  border: 1px solid var(--line);
  background: var(--bg2);
  color: var(--text);
  cursor: pointer;
  font: inherit;
}
.pf-focus-chip--hot {
  border-color: rgba(196, 92, 88, 0.35);
  background: rgba(196, 92, 88, 0.06);
}
.pf-focus-chip em {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  margin-top: 1px;
  border-radius: 5px;
  display: grid;
  place-items: center;
  font-style: normal;
  font-size: 11px;
  font-family: var(--mono);
  color: var(--gold);
  background: rgba(194, 163, 107, 0.14);
}
.pf-focus-chip--hot em {
  color: var(--red);
  background: rgba(196, 92, 88, 0.14);
}
.pf-focus-main {
  min-width: 0;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.pf-focus-name {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 6px 8px;
}
.pf-focus-chip b {
  font-size: 14px;
  font-weight: 600;
}
.pf-focus-name i {
  font-style: normal;
  font-size: 10.5px;
  letter-spacing: 0.06em;
  color: var(--red);
  padding: 1px 5px;
  border-radius: 3px;
  background: rgba(196, 92, 88, 0.12);
}
.pf-focus-chip span {
  font-size: 12px;
  color: var(--text2);
  line-height: 1.4;
}
.pf-guide-item--focus .pf-exec,
.pf-guide-item--focus .pf-exec-wrap {
  margin-top: 8px;
}
.pf-focus-hint {
  margin: 8px 0 0;
  font-size: 11px;
  line-height: 1.4;
}
.pf-avoid {
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px dashed rgba(196, 92, 88, 0.35);
}
.pf-avoid-lab {
  font-size: 11px;
  letter-spacing: 0.06em;
  color: #e8b4b2;
  margin-bottom: 6px;
}
.pf-avoid-chip {
  display: flex;
  align-items: baseline;
  gap: 8px;
  width: 100%;
  text-align: left;
  padding: 6px 8px;
  margin-bottom: 4px;
  border-radius: 6px;
  border: 1px solid rgba(196, 92, 88, 0.25);
  background: rgba(196, 92, 88, 0.08);
  color: var(--text);
  cursor: pointer;
  font: inherit;
}
.pf-avoid-chip b { font-size: 13px; }
.pf-avoid-chip span {
  flex: 1;
  font-size: 12px;
  color: #e8b4b2;
}
.pf-guide-item--critical {
  border-color: rgba(196, 92, 88, 0.35);
}
.pf-guide-item--focus {
  border-color: rgba(194, 163, 107, 0.42);
  box-shadow: inset 3px 0 0 var(--gold);
}
.pf-focus-mark {
  display: inline-block;
  font-size: 10px;
  padding: 2px 6px;
  margin-right: 6px;
  border-radius: 3px;
  letter-spacing: 0.04em;
  background: rgba(194, 163, 107, 0.22);
  color: var(--gold);
  vertical-align: middle;
}
.pf-guide-item--live-hot {
  border-color: rgba(196, 92, 88, 0.5);
}
.pf-guide-item--live-hot.pf-guide-item--focus {
  box-shadow: inset 3px 0 0 #c45c58;
}
.pf-live-cue {
  margin: 6px 0 2px;
  padding: 6px 10px;
  font-size: 12px;
  line-height: 1.4;
  color: #f0c4c2;
  background: rgba(196, 92, 88, 0.14);
  border-radius: 6px;
}
.tm-auc-check--ref {
  opacity: 0.85;
}
.tm-auc-check {
  margin: 8px 0 12px;
  padding: 10px 12px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--line);
}
.tm-auc-check--live {
  border-color: rgba(194, 163, 107, 0.4);
  background: rgba(194, 163, 107, 0.08);
}
.tm-auc-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 4px;
}
.tm-auc-lab {
  font-size: 11px;
  color: var(--text2);
  letter-spacing: 0.06em;
}
.tm-auc-live {
  margin-left: 6px;
  color: var(--gold);
  font-size: 10px;
}
.tm-auc-label { font-size: 14px; }
.tm-auc-line {
  font-size: 13px;
  line-height: 1.45;
  margin-top: 2px;
}
.tm-auc-act {
  font-size: 12px;
  margin-top: 6px;
  line-height: 1.4;
}
.trust-strip {
  margin: 8px 0 10px;
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.03);
}
.trust-strip--high {
  border-color: rgba(90, 160, 120, 0.35);
  background: rgba(90, 160, 120, 0.08);
}
.trust-strip--mid {
  border-color: rgba(194, 163, 107, 0.3);
  background: rgba(194, 163, 107, 0.07);
}
.trust-strip--low {
  border-color: rgba(196, 92, 88, 0.35);
  background: rgba(196, 92, 88, 0.08);
}
.trust-strip-main {
  display: flex;
  align-items: baseline;
  gap: 10px;
}
.trust-strip-main b { font-size: 13px; }
.trust-rate {
  font-size: 12px;
  color: var(--text2);
  font-variant-numeric: tabular-nums;
}
.trust-strip-hint {
  margin-top: 4px;
  font-size: 12px;
  color: var(--text2);
  line-height: 1.4;
}
.trust-strip-note {
  margin-top: 6px;
  font-size: 11px;
  line-height: 1.4;
}
.pf-fresh {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  margin: 8px 0 10px;
  padding: 8px 10px;
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.2);
  font-size: 12px;
  color: var(--text2);
}
.pf-fresh-hint {
  color: var(--gold);
}
.pf-fresh-btn {
  margin-left: auto;
}
.pf-auc {
  margin: 8px 0;
  padding: 8px 10px;
  border-radius: 8px;
  border: 1px solid rgba(194, 163, 107, 0.28);
  background: rgba(194, 163, 107, 0.06);
}
.pf-auc-top {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 4px;
}
.pf-auc-lab {
  font-size: 11px;
  letter-spacing: 0.12em;
  color: var(--gold);
}
.pf-auc-label {
  font-size: 14px;
}
.pf-auc-line {
  font-size: 12px;
  line-height: 1.45;
  color: var(--text2);
}
.pf-auc-act {
  margin-top: 4px;
  font-size: 11px;
}
.pf-anchor {
  font-size: 12px;
  color: var(--text2);
  margin-top: 8px;
  line-height: 1.5;
  word-break: break-word;
  overflow-wrap: anywhere;
}
.pf-schedule {
  margin-top: 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.pf-sched {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  gap: 8px 10px;
  align-items: start;
  padding: 8px 10px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid var(--line);
  font-size: 12px;
  line-height: 1.55;
}
.pf-sched-phase {
  color: var(--gold);
  font-size: 11px;
  letter-spacing: 0.08em;
  padding-top: 1px;
  flex-shrink: 0;
}
.pf-sched-text {
  margin: 0;
  color: var(--text2);
  word-break: break-word;
  overflow-wrap: anywhere;
  white-space: normal;
}
.pf-guide-item .pf-open-tm {
  display: block;
  width: 100%;
  margin-top: 12px;
  padding: 8px 0 2px;
  text-align: center;
  border-top: 1px solid var(--line);
}
.pf-disc {
  padding: 4px 2px 12px;
  font-size: 11px;
  line-height: 1.5;
}
.pf-guide-err { border-color: rgba(196, 92, 88, 0.25); }
.pf-guide-err .panel-empty-acts { margin-top: 8px; }

.today-mission {
  margin: 0 0 18px;
  padding: 14px 0 0;
  border-radius: 0;
  background: transparent;
  border: none;
  border-top: 1px solid rgba(232, 224, 210, 0.07);
}
.today-mission--lite {
  padding: 16px 0 0;
}
.tm-money {
  margin: 0 0 12px;
  padding: 10px 11px;
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.22);
  border: 1px solid rgba(255, 255, 255, 0.06);
}
.tm-money--bull {
  border-color: rgba(46, 160, 110, 0.35);
}
.tm-money--bear {
  border-color: rgba(200, 80, 80, 0.4);
}
.tm-money-top {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
}
.tm-money-lab {
  font-size: 11px;
  letter-spacing: 0.14em;
  color: var(--text3);
}
.tm-money-tag {
  font-size: 13px;
  font-weight: 650;
  color: var(--text);
}
.tm-money--bull .tm-money-tag {
  color: var(--up, #2ea06e);
}
.tm-money--bear .tm-money-tag {
  color: var(--down, #c85050);
}
.tm-money-metrics {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px 12px;
  font-size: 12px;
  color: var(--text3);
}
.tm-money-metrics b {
  color: var(--text);
  font-variant-numeric: tabular-nums;
  font-weight: 600;
}
.tm-money-plain {
  margin: 6px 0 0;
  font-size: 12px;
  color: var(--text2);
  line-height: 1.45;
}
.tm-ladder,
.tm-strength,
.tm-auc-pulse {
  margin: 0 0 12px;
  padding: 10px 11px;
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.18);
  border: 1px solid rgba(255, 255, 255, 0.06);
}
.tm-ladder--bull {
  border-color: rgba(46, 160, 110, 0.28);
}
.tm-ladder--bear {
  border-color: rgba(200, 80, 80, 0.22);
  background: rgba(200, 80, 80, 0.04);
}
.tm-ladder-max {
  margin-left: auto;
  font-size: 11px;
  color: var(--text3);
}
.tm-rungs {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 8px;
}
.tm-rung {
  display: grid;
  grid-template-columns: 40px 28px minmax(0, 1fr);
  gap: 8px;
  align-items: start;
  padding: 7px 8px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.05);
  font-size: 12px;
  color: var(--text3);
}
.tm-rung--gap {
  background: rgba(200, 80, 80, 0.05);
  border-style: dashed;
  border-color: rgba(200, 80, 80, 0.3);
  padding-top: 5px;
  padding-bottom: 5px;
}
.tm-rung--gap .tm-rung-h {
  color: rgba(200, 120, 110, 0.95);
  font-weight: 550;
}
.tm-rung-h {
  color: var(--gold, #c2a36b);
  letter-spacing: 0.04em;
  font-weight: 600;
  line-height: 22px;
}
.tm-rung-n,
.tm-rung b {
  color: var(--text);
  font-variant-numeric: tabular-nums;
  font-weight: 650;
  line-height: 22px;
  text-align: right;
}
.tm-rung--gap .tm-rung-n {
  color: var(--text3);
  font-weight: 500;
}
.tm-rung-stocks {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  min-width: 0;
  align-items: center;
}
.tm-rung-gap-lab {
  font-size: 11px;
  color: rgba(200, 120, 110, 0.9);
  letter-spacing: 0.08em;
  line-height: 22px;
}
.tm-rung-more {
  font-size: 11px;
  color: var(--text3);
  letter-spacing: 0.02em;
  line-height: 22px;
  padding: 0 2px;
}
.tm-rung-chip {
  font-size: 11px;
  color: var(--text2);
  line-height: 22px;
}
.shiqi-stock--rung {
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 8px;
  border-radius: 6px;
  background: rgba(194, 163, 107, 0.1);
  border: 1px solid rgba(194, 163, 107, 0.22);
  color: var(--gold);
  font-size: 11.5px;
  text-decoration: none;
  text-underline-offset: 0;
  letter-spacing: 0.02em;
  max-width: 7.5em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.shiqi-stock--rung:active {
  opacity: 0.8;
  background: rgba(194, 163, 107, 0.16);
}
.shiqi-stock--rung.has-stance.shiqi-stock--bull,
.shiqi-stock--rung.has-stance.shiqi-stock--range_bull {
  border-color: rgba(196, 92, 88, 0.45);
  background: rgba(196, 92, 88, 0.12);
  color: #e08a86;
}
.shiqi-stock--rung.has-stance.shiqi-stock--bear,
.shiqi-stock--rung.has-stance.shiqi-stock--range_bear {
  border-color: rgba(91, 154, 126, 0.45);
  background: rgba(91, 154, 126, 0.12);
  color: #7eb89a;
}
.shiqi-stock--rung.has-stance.shiqi-stock--neutral {
  border-color: rgba(194, 163, 107, 0.4);
}
.tm-board-list {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-top: 6px;
}
.tm-board-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  font-size: 12px;
  color: var(--text3);
  padding: 8px 8px;
  margin: 0 -4px;
  border-radius: 8px;
  border: 1px solid transparent;
  transition: border-color 0.25s ease, background 0.25s ease;
  cursor: pointer;
}
.tm-board-row:active {
  background: rgba(255, 255, 255, 0.04);
}
.tm-board-row.is-focus {
  border-color: rgba(194, 163, 107, 0.45);
  background: rgba(194, 163, 107, 0.12);
  animation: shiqi-board-pulse 1.2s ease 2;
}
@keyframes shiqi-board-pulse {
  0%, 100% { background: rgba(194, 163, 107, 0.12); }
  50% { background: rgba(194, 163, 107, 0.22); }
}
.tm-board-main {
  min-width: 0;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.tm-board-name {
  color: var(--text);
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.tm-board-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  font-size: 11px;
  color: var(--text3);
}
.tm-board-side {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
  max-width: 42%;
}
.tm-board-go {
  font-size: 10px;
  color: var(--gold);
  letter-spacing: 0.04em;
  white-space: nowrap;
}
.tm-board-row b,
.tm-board-row em,
.tm-board-row i,
.tm-board-row u {
  font-style: normal;
  font-variant-numeric: tabular-nums;
  text-decoration: none;
}
.tm-board-row u {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-align: right;
  color: var(--text2);
}
.tm-board-row .shiqi-stock {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 5.5em;
  text-align: right;
}
.shiqi-stock {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--gold);
  font-size: 12px;
  padding: 0;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-color: rgba(194, 163, 107, 0.35);
}
.shiqi-stock:active { opacity: 0.75; }
.shiqi-stock--pool {
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
  padding: 5px 8px;
  margin: 0 6px 6px 0;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  text-decoration: none;
  max-width: none;
}
.shiqi-stock--pool b { font-size: 12px; color: var(--text); }
.shiqi-stock--pool em {
  font-style: normal;
  font-size: 10px;
  color: var(--gold);
}
.shiqi-tap-hint {
  margin: 8px 0 0;
  font-size: 11px;
}
.shiqi-samples {
  grid-column: 1 / -1;
  margin-top: 4px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.shiqi-samples-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}
.shiqi-samples-row > span {
  font-size: 11px;
  color: var(--text3);
  margin-right: 2px;
}
.shiqi-sample {
  appearance: none;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(0, 0, 0, 0.2);
  border-radius: 6px;
  padding: 4px 8px;
  cursor: pointer;
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  font-size: 12px;
  color: var(--text);
}
.shiqi-sample--hot { border-color: rgba(194, 163, 107, 0.28); }
.shiqi-sample--cold { border-color: rgba(196, 92, 88, 0.28); }
.shiqi-sample b { font-weight: 600; }
.shiqi-pool-list {
  margin-top: 8px;
}
.pf-guide-review {
  margin: 0 0 12px;
  padding: 10px 12px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
}
.pf-rev-fold {
  margin: 0;
}
.pf-rev-fold > summary.pf-rev-head {
  cursor: pointer;
  list-style: none;
  margin-bottom: 0;
}
.pf-rev-fold > summary.pf-rev-head::-webkit-details-marker {
  display: none;
}
.pf-rev-fold[open] > summary.pf-rev-head {
  margin-bottom: 8px;
}
.pf-rev-head {
  font-size: 12px;
  color: var(--gold);
  letter-spacing: 0.04em;
  margin-bottom: 8px;
}
.pf-rev-head span {
  margin-left: 6px;
  color: var(--text3);
  font-size: 11px;
  letter-spacing: 0;
}
.pf-rev-day { margin-bottom: 8px; }
.pf-rev-lab {
  font-size: 11px;
  color: var(--text2);
  margin-bottom: 4px;
}
.pf-rev-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.pf-rev-chip {
  appearance: none;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(0, 0, 0, 0.18);
  border-radius: 6px;
  padding: 5px 8px;
  cursor: pointer;
  display: inline-flex;
  align-items: baseline;
  gap: 5px;
  font-size: 11px;
  color: var(--text2);
}
.pf-rev-chip--ok { border-color: rgba(90, 160, 120, 0.35); }
.pf-rev-chip--bad { border-color: rgba(196, 92, 88, 0.35); }
.pf-rev-chip.is-check {
  box-shadow: inset 0 0 0 1px rgba(194, 163, 107, 0.35);
}
.pf-rev-chip b { color: var(--text); }
.pf-rev-chip .pf-rev-pnl {
  font-style: normal;
  font-variant-numeric: tabular-nums;
  font-size: 10px;
}
.pf-rev-chip em {
  font-style: normal;
  font-size: 10px;
  color: var(--text3);
}
.pf-rev-chip--ok em { color: #8fc9a8; }
.pf-rev-chip--bad em { color: #e8b4b2; }
.pf-rev-note {
  margin: 4px 0 0;
  font-size: 11px;
}
.tm-auc-pulse {
  display: grid;
  grid-template-columns: auto auto 1fr;
  gap: 6px 10px;
  align-items: baseline;
}
.tm-auc-pulse .tm-money-plain {
  grid-column: 1 / -1;
}
.tm-auc-pulse b {
  color: var(--text);
}

/* —— 市气页 —— */
.shiqi-body {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-bottom: 8px;
}
.shiqi-headnote {
  margin: 0 0 2px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--text2);
}
.shiqi-card {
  margin: 0;
}
.shiqi-card.tm-money,
.shiqi-card.tm-ladder,
.shiqi-card.tm-strength,
.shiqi-card.tm-auc-pulse,
.shiqi-card.shiqi-pool {
  margin: 0;
}
.shiqi-links {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 4px;
}
.shiqi-links:has(> :nth-child(3)) {
  grid-template-columns: 1fr 1fr 1fr;
}
.shiqi-link {
  height: 40px;
  border-radius: 8px;
  border: 1px solid var(--line2);
  background: rgba(194, 163, 107, 0.08);
  color: var(--gold);
  font-size: 12px;
  letter-spacing: 0.04em;
  cursor: pointer;
  font-family: var(--sans);
  padding: 0 6px;
  white-space: nowrap;
}
.shiqi-link:active { opacity: 0.85; }
.shiqi-links--lite {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 14px;
  margin-top: 6px;
  padding: 0 2px;
}
.shiqi-links--lite .shiqi-link {
  height: auto;
  border: 0;
  background: transparent;
  padding: 0;
  font-size: 11.5px;
  letter-spacing: 0.02em;
  color: var(--text3);
}
.shiqi-links--lite .shiqi-link:active {
  color: var(--gold);
  opacity: 1;
}
.shiqi-discipline {
  margin: 0;
  padding: 12px 12px 10px;
  border-radius: 8px;
  background: rgba(194, 163, 107, 0.1);
  border: 1px solid rgba(194, 163, 107, 0.32);
}
.shiqi-discipline--tight {
  border-color: rgba(200, 80, 80, 0.4);
  background: rgba(200, 80, 80, 0.08);
}
.shiqi-discipline--loose {
  border-color: rgba(46, 160, 110, 0.35);
  background: rgba(46, 160, 110, 0.07);
}
.shiqi-disc-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 6px;
}
.shiqi-disc-cta {
  border: 0;
  background: transparent;
  color: var(--gold);
  font-size: 12px;
  letter-spacing: 0.06em;
  cursor: pointer;
  font-family: var(--sans);
  padding: 0;
  flex-shrink: 0;
}
.shiqi-disc-action {
  margin: 0;
  font-size: 13px;
  line-height: 1.55;
  color: var(--text);
}
.shiqi-foot {
  margin: 8px 0 0;
  font-size: 11px;
  line-height: 1.5;
}

/* 持仓执行核对清单 */
.pf-sum-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 6px;
}
.pf-sum-head .block-title {
  margin: 0;
}
.pf-sum-stance {
  flex: 1;
  min-width: 0;
  text-align: right;
  font-size: 12px;
  line-height: 1.4;
  color: var(--text2);
}
.pf-sum-stance.strat-bull { color: #c45c58; }
.pf-sum-stance.strat-bear { color: #5b9a7e; }
.pf-sum-stance.strat-neutral { color: var(--text3); }
.pf-guide-review {
  margin-top: 4px;
}
.pf-combo {
  margin: 8px 0 10px;
  padding: 10px 11px;
  border-radius: 8px;
  border: 1px solid rgba(194, 163, 107, 0.28);
  background: rgba(194, 163, 107, 0.08);
  font-size: 13px;
  line-height: 1.5;
  color: var(--text);
}
.pf-prep-check {
  margin: 0 0 12px;
}
.pf-prep-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
}
.pf-prep-tip {
  margin: 4px 0 10px;
  font-size: 11px;
}
.pf-prep-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.pf-prep-row {
  display: flex;
  align-items: stretch;
  gap: 0;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.22);
  color: var(--text);
  text-align: left;
  font-family: var(--sans);
  overflow: hidden;
}
.pf-prep-row.is-done {
  border-color: rgba(194, 163, 107, 0.28);
  background: rgba(194, 163, 107, 0.06);
}
.pf-prep-row.is-done .pf-prep-name b {
  text-decoration: line-through;
  color: var(--text3);
}
.pf-prep-tick {
  flex: 0 0 40px;
  border: 0;
  border-right: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(255, 255, 255, 0.03);
  color: var(--gold);
  font-size: 14px;
  cursor: pointer;
  font-family: var(--sans);
}
.pf-prep-tick:active {
  background: rgba(194, 163, 107, 0.15);
}
.pf-prep-body {
  flex: 1;
  min-width: 0;
  margin: 0;
  padding: 10px 11px;
  border: 0;
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
  font-family: inherit;
}
.pf-prep-body:active {
  background: rgba(194, 163, 107, 0.08);
}
.pf-prep-name {
  display: flex;
  align-items: baseline;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 6px;
}
.pf-prep-name b {
  font-size: 14px;
}
.pf-prep-name em {
  font-style: normal;
  font-size: 11px;
  color: var(--text3);
  font-family: var(--mono);
}
.pf-prep-name i {
  font-style: normal;
  font-size: 10px;
  color: var(--gold);
  letter-spacing: 0.04em;
}
.pf-prep-bits {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 12px;
  line-height: 1.45;
  color: var(--text2);
}
.pf-prep-bits i {
  font-style: normal;
  color: var(--text3);
  margin-right: 6px;
  font-size: 11px;
}
.pf-prep-bits .go i { color: #c45c58; }
.pf-prep-bits .cut i { color: #5b9a7e; }
.pf-exec {
  margin: 10px 0 4px;
  padding: 10px 11px;
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.22);
  border: 1px solid rgba(255, 255, 255, 0.06);
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.pf-exec-lab {
  font-size: 11px;
  letter-spacing: 0.14em;
  color: var(--gold);
  margin-bottom: 4px;
}
.pf-exec-lab--go { color: var(--up, #2ea06e); }
.pf-exec-lab--cut { color: var(--down, #c85050); }
.pf-exec-list {
  margin: 0;
  padding-left: 1.15em;
  font-size: 12px;
  line-height: 1.5;
  color: var(--text2);
}
.pf-exec-list li + li { margin-top: 3px; }

/* 首页精简任务 + 市气入口 */
.today-mission--lite {
  padding: 16px 0 0;
}
.tm-signals {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 0 0 10px;
}
.tm-pulse-link,
.tm-mainline,
.tm-signal {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  margin: 0;
  padding: 10px 0;
  border-radius: 0;
  border: none;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
  background: transparent;
  color: var(--text);
  text-align: left;
  cursor: pointer;
  font-family: var(--sans);
}
.tm-pulse-link:last-child,
.tm-mainline:last-child,
.tm-signal:last-child {
  border-bottom: none;
}
.tm-pulse-link span,
.tm-mainline span,
.tm-signal-lab {
  flex-shrink: 0;
  font-size: 11px;
  letter-spacing: 0.14em;
  color: var(--gold);
  min-width: 3.6em;
}
.tm-signal-main {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.tm-pulse-link b,
.tm-mainline b,
.tm-signal-main b {
  flex: 1;
  min-width: 0;
  font-size: 13px;
  font-weight: 560;
  color: var(--text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.tm-pulse-link em,
.tm-mainline em,
.tm-signal-main em {
  flex-shrink: 0;
  font-style: normal;
  font-size: 11px;
  color: var(--text3);
}
.tm-signal > .tm-signal-go {
  flex-shrink: 0;
  font-style: normal;
  font-size: 11px;
  color: var(--gold);
}
.tm-pulse-link:active,
.tm-mainline:active,
.tm-signal:active { opacity: 0.82; }

.home-feed--page {
  margin: 0;
  padding: 0;
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.home-feed--page .home-tabs {
  flex-shrink: 0;
  position: sticky;
  top: 0;
  z-index: 5;
  background: linear-gradient(var(--bg) 70%, transparent);
  padding-bottom: 4px;
}
.home-feed--page .home-panels {
  flex: 1;
  min-height: 0;
}

/* —— 底部 TabBar —— */
.app-tabbar {
  flex-shrink: 0;
  z-index: 25;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: stretch;
  height: calc(var(--tabbar-h) + env(safe-area-inset-bottom));
  padding: 4px 4px calc(4px + env(safe-area-inset-bottom));
  border-top: 1px solid var(--line);
  background: #070708;
}
.app-tabbar[hidden] {
  display: none !important;
}
.app-tab {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  min-width: 0;
  border: 0;
  background: transparent;
  color: var(--text3);
  cursor: pointer;
  font-family: var(--sans);
  -webkit-tap-highlight-color: transparent;
}
.app-tab-badge {
  position: absolute;
  top: 2px;
  right: calc(50% - 22px);
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border-radius: 999px;
  background: #c45c58;
  color: #fff;
  font-size: 10px;
  line-height: 16px;
  text-align: center;
  font-variant-numeric: tabular-nums;
  box-shadow: 0 0 0 2px #070708;
}
.app-tab-ico {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  line-height: 1;
  opacity: 0.85;
}
.app-tab-ico svg {
  display: block;
}
.app-tab-lab {
  font-size: 10px;
  letter-spacing: 0.12em;
  line-height: 1.2;
}
.app-tab.is-on {
  color: var(--gold);
}
.app-tab.is-on .app-tab-ico {
  opacity: 1;
}
.app-tab:active {
  opacity: 0.75;
}

/* 一级页顶栏 */
.root-topbar .rep-head > div:first-child {
  font-family: var(--serif);
  font-size: 17px;
  font-weight: 600;
  letter-spacing: 0.18em;
}
.root-topbar .rep-head .muted {
  margin-top: 2px;
  letter-spacing: 0.04em;
}

.tm-head {
  margin-bottom: 10px;
}
.tm-kicker {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
  font-size: 11px;
  letter-spacing: 0.12em;
  color: var(--text3);
}
.tm-phase {
  color: var(--gold);
  letter-spacing: 0.16em;
}
.tm-next {
  margin-left: 0;
  padding: 1px 6px;
  border-radius: 4px;
  border: 1px solid rgba(194, 163, 107, 0.22);
  background: rgba(194, 163, 107, 0.08);
  color: var(--gold);
  letter-spacing: 0.04em;
  font-variant-numeric: tabular-nums;
}
.tm-clock {
  margin-left: auto;
  letter-spacing: 0.06em;
  font-variant-numeric: tabular-nums;
}
.tm-title {
  margin: 0 0 6px;
  font-size: 17px;
  font-weight: 650;
  letter-spacing: 0.02em;
  line-height: 1.35;
  color: var(--text);
}
.tm-primary {
  margin: 0;
  font-size: 13px;
  line-height: 1.55;
  color: var(--text2);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.tm-steps {
  margin: 0 0 10px;
  padding: 0 0 0 1.15em;
  font-size: 12px;
  line-height: 1.65;
  color: var(--text2);
}
.tm-steps li {
  margin: 2px 0;
}
.tm-rules {
  margin: 0 0 12px;
  padding: 8px 10px;
  font-size: 12px;
  line-height: 1.45;
  color: var(--text2);
  background: rgba(0, 0, 0, 0.22);
  border-radius: 6px;
}
.tm-acts {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0;
}
.tm-act {
  appearance: none;
  border: none;
  background: transparent;
  color: var(--gold);
  font-size: 12px;
  letter-spacing: 0.04em;
  padding: 4px 0;
  border-radius: 0;
  cursor: pointer;
  font-family: var(--sans);
}
.tm-act:active {
  opacity: 0.75;
  transform: none;
  color: var(--gold);
  border-color: transparent;
}
.tm-act + .tm-act {
  margin-left: 14px;
  padding-left: 14px;
  border-left: 1px solid rgba(255, 255, 255, 0.08);
}
.today-mission--live {
  border-top-color: rgba(194, 163, 107, 0.35);
  box-shadow: none;
}
.today-mission--auction .tm-title,
.today-mission--live .tm-title {
  color: var(--gold);
}
.tm-extras {
  margin: 0;
}
.tm-mine,
.tm-hold-hint,
.tm-hold-alert,
.tm-discipline {
  appearance: none;
  display: flex;
  align-items: baseline;
  gap: 8px;
  width: 100%;
  margin: 0;
  padding: 9px 0;
  text-align: left;
  border: none;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 0;
  background: transparent;
  color: var(--text);
  cursor: pointer;
  font-family: var(--sans);
  font-size: 12px;
  line-height: 1.4;
}
.tm-row-lab,
.tm-discipline .tm-row-lab,
.tm-mine .tm-row-lab,
.tm-hold-hint .tm-row-lab,
.tm-hold-alert .tm-row-lab {
  flex-shrink: 0;
  min-width: 2.4em;
  font-size: 11px;
  letter-spacing: 0.12em;
  color: var(--gold);
}
.tm-hold-alert--soft .tm-row-lab {
  color: var(--text3);
}
.tm-hold-alert--mid .tm-row-lab {
  color: var(--gold);
}
.tm-hold-alert--hot {
  border-bottom-color: rgba(196, 92, 88, 0.28);
}
.tm-hold-alert--hot .tm-row-lab {
  color: var(--red);
}
.tm-hold-alert--hot b {
  color: var(--red);
}
.tm-row b,
.tm-mine b,
.tm-hold-hint b,
.tm-hold-alert b,
.tm-discipline b,
.tm-discipline .tm-discipline-body {
  flex: 1;
  min-width: 0;
  font-size: 12.5px;
  font-weight: 550;
  color: var(--text);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  overflow: hidden;
  font-style: normal;
}
.tm-discipline .tm-discipline-body {
  -webkit-line-clamp: 2;
}
.tm-row em,
.tm-mine em,
.tm-hold-hint em,
.tm-hold-alert em,
.tm-discipline em {
  flex-shrink: 0;
  max-width: 42%;
  font-style: normal;
  font-size: 11px;
  color: var(--text3);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.tm-hold-alert .tm-row-lab,
.tm-discipline--tight .tm-row-lab {
  color: #d48a86;
}
.tm-hold-alert b {
  color: #e8b4b1;
}
.tm-discipline {
  border-left: 0;
  padding-left: 0;
}
.tm-discipline--tight,
.tm-discipline--loose,
.tm-discipline--neutral {
  background: transparent;
}
.tm-discipline-top { display: flex; }
.tm-acts {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0;
  margin-top: 10px;
  padding-top: 2px;
}
.zeshi-alert-bar {
  position: fixed;
  left: 12px;
  right: 12px;
  z-index: 140;
  pointer-events: none;
  opacity: 0;
  transform: translateY(-12px) scale(0.98);
  transition: opacity 0.28s ease, transform 0.32s cubic-bezier(0.22, 1, 0.36, 1);
}
.zeshi-alert-bar.is-show {
  opacity: 1;
  transform: translateY(0) scale(1);
}
.zeshi-alert-bar.is-leave {
  opacity: 0;
  transform: translateY(-10px) scale(0.98);
  transition: opacity 0.26s ease, transform 0.28s ease;
}
.zeshi-alert-bar--top {
  top: calc(10px + env(safe-area-inset-top, 0px));
}
.zeshi-alert-bar--dock {
  /* 微信顶栏易遮挡：贴在底部 TabBar 上方 */
  top: auto;
  bottom: calc(var(--tabbar-h) + 10px + env(safe-area-inset-bottom, 0px));
  transform: translateY(12px) scale(0.98);
}
.zeshi-alert-bar--dock.is-show {
  transform: translateY(0) scale(1);
}
.zeshi-alert-bar--dock.is-leave {
  transform: translateY(10px) scale(0.98);
}
.zeshi-alert-bar .zeshi-alert-inner {
  position: relative;
  overflow: hidden;
  pointer-events: auto;
  display: flex;
  gap: 10px;
  align-items: flex-start;
  padding: 10px 12px;
  border-radius: 12px;
  background: rgba(28, 18, 18, 0.94);
  border: 1px solid rgba(196, 92, 88, 0.4);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.35);
}
.zeshi-alert-progress {
  position: absolute;
  left: 0;
  top: 0;
  height: 2px;
  width: 100%;
  transform-origin: left center;
  background: linear-gradient(90deg, rgba(240, 196, 194, 0.85), rgba(194, 163, 107, 0.7));
  animation: zeshi-alert-countdown 10s linear forwards;
}
@keyframes zeshi-alert-countdown {
  from { transform: scaleX(1); }
  to { transform: scaleX(0); }
}
@media (prefers-reduced-motion: reduce) {
  .zeshi-alert-bar,
  .zeshi-alert-bar.is-show,
  .zeshi-alert-bar.is-leave,
  .zeshi-alert-bar--dock,
  .zeshi-alert-bar--dock.is-show,
  .zeshi-alert-bar--dock.is-leave {
    transition: none;
    transform: none;
  }
  .zeshi-alert-progress {
    animation: none;
    opacity: 0.5;
  }
}
.zeshi-alert-copy {
  flex: 1;
  min-width: 0;
}
.zeshi-alert-kicker {
  display: block;
  font-size: 11px;
  letter-spacing: 0.06em;
  color: #f0c4c2;
  margin-bottom: 4px;
}
.zeshi-alert-copy p {
  margin: 0 0 4px;
  font-size: 12px;
  line-height: 1.4;
  color: var(--text2);
}
.zeshi-alert-copy p:last-child { margin-bottom: 0; }
.zeshi-alert-copy em {
  font-style: normal;
  margin-right: 6px;
  color: #f0c4c2;
  font-size: 11px;
}
.zeshi-alert-copy b {
  color: var(--text);
  margin-right: 4px;
}
.zeshi-alert-acts {
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex-shrink: 0;
}
.zeshi-alert-acts button {
  appearance: none;
  border: 1px solid rgba(194, 163, 107, 0.35);
  background: rgba(194, 163, 107, 0.16);
  color: var(--gold);
  border-radius: 6px;
  padding: 5px 10px;
  font-size: 12px;
  cursor: pointer;
}
.zeshi-alert-acts button.ghost {
  border-color: rgba(255, 255, 255, 0.12);
  background: transparent;
  color: var(--text3);
}
.tm-rules-inline,
.pf-rules {
  margin: 8px 0 10px;
  padding: 7px 10px;
  font-size: 12px;
  line-height: 1.45;
  color: var(--text2);
  background: rgba(0, 0, 0, 0.22);
  border-radius: 6px;
}
.ri-mine-tag {
  display: inline-block;
  margin-right: 6px;
  padding: 1px 6px;
  font-size: 10px;
  letter-spacing: 0.08em;
  color: var(--gold);
  border: 1px solid rgba(194, 163, 107, 0.35);
  border-radius: 4px;
  vertical-align: middle;
}
.review-item--mine {
  border-color: rgba(194, 163, 107, 0.18);
}
.review-mine-block {
  margin-bottom: 16px;
}

.home-history {
  margin-bottom: 16px;
}
.hist-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 10px;
}
.hist-head-lab {
  font-size: 11px;
  letter-spacing: 0.2em;
  color: var(--text3);
  text-transform: none;
}
.hist-head-hint {
  font-size: 11px;
  color: var(--text3);
  white-space: nowrap;
  opacity: 0.75;
}
.hist-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.hist-tags.empty {
  font-size: 12px;
  color: var(--text3);
  padding: 2px 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}
.hist-empty-tip {
  color: var(--text3);
}
.hist-empty-cta {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--gold);
  font-size: 12px;
  letter-spacing: 0.04em;
  padding: 0;
  cursor: pointer;
  font-family: var(--sans);
}
.hist-tag {
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.03);
  color: var(--text2);
  font-size: 12px;
  letter-spacing: 0.04em;
  padding: 6px 10px;
  border-radius: 7px;
  cursor: pointer;
  font-family: var(--sans);
  line-height: 1.2;
  white-space: nowrap;
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  max-width: 100%;
  transition: border-color 0.15s, color 0.15s, background 0.15s;
}
.hist-tag .hist-name {
  font-size: 12px;
  color: var(--text2);
  letter-spacing: 0.04em;
  overflow: hidden;
  text-overflow: ellipsis;
}
.hist-tag .stance-preview {
  flex-shrink: 0;
  font-size: 10.5px;
  opacity: 0.95;
}
.hist-tag.has-stance {
  border-color: rgba(194, 163, 107, 0.2);
  background: rgba(0, 0, 0, 0.22);
}
.hist-tag:active {
  opacity: 0.9;
  color: var(--gold);
  border-color: rgba(194, 163, 107, 0.35);
}
.hist-tag--hold {
  border-color: rgba(194, 163, 107, 0.32);
  background: rgba(194, 163, 107, 0.08);
}
.hist-tag--hold .hist-name {
  color: var(--text);
}
.hist-hold-mark {
  font-style: normal;
  font-size: 10px;
  letter-spacing: 0.08em;
  color: var(--gold);
  opacity: 0.9;
  flex-shrink: 0;
}

.stance-preview {
  font-style: normal;
  font-size: 10.5px;
  letter-spacing: 0.06em;
  line-height: 1.3;
  color: var(--gold);
  font-weight: 500;
}
.stance-preview--bull,
.stance-preview--range_bull {
  color: var(--red);
}
.stance-preview--bear,
.stance-preview--range_bear {
  color: var(--green);
}
.stance-preview--neutral {
  color: var(--gold);
}
.stance-detail {
  display: block;
  font-size: 10px;
  color: var(--text3);
  line-height: 1.35;
  letter-spacing: 0.02em;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.stance-detail[hidden] {
  display: none;
}

.home-feed {
  margin-bottom: 12px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}
.home-tabs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 5px;
  margin-bottom: 10px;
}
.feed-session {
  margin: -2px 0 10px;
}
.feed-session-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 10px;
  padding: 6px 10px;
  border-radius: 8px;
  border: 1px solid rgba(194, 163, 107, 0.16);
  background: rgba(194, 163, 107, 0.05);
  font-size: 11.5px;
  line-height: 1.35;
  color: var(--text3);
}
.feed-session-inner b {
  color: var(--gold);
  font-weight: 600;
  letter-spacing: 0.04em;
}
.feed-session-inner span {
  font-variant-numeric: tabular-nums;
  opacity: 0.85;
}
.cap-to-shiqi {
  display: inline-block;
  margin-top: 8px;
  font-size: 12px;
}
.home-tab {
  border: 1px solid var(--line);
  background: transparent;
  color: var(--text3);
  font-size: 11px;
  letter-spacing: 0.06em;
  padding: 8px 2px;
  border-radius: 8px;
  cursor: pointer;
  white-space: nowrap;
  min-width: 0;
  transition: color 0.15s, border-color 0.15s, background 0.15s;
}
.home-tab.active {
  color: var(--gold);
  border-color: rgba(194, 163, 107, 0.45);
  background: rgba(194, 163, 107, 0.08);
}
.home-panel {
  animation: homePanelIn 0.2s ease;
}
@keyframes homePanelIn {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: none; }
}
.panel-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}
.panel-hint {
  flex: 1;
  min-width: 0;
  font-size: 11px;
  color: var(--text3);
  line-height: 1.4;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.panel-hint b {
  color: var(--gold);
  font-weight: 600;
}
.panel-bar .linkish {
  flex-shrink: 0;
  white-space: nowrap;
}
/* 从首页任务点进精选：收掉时段条与 panel hint，少占一屏壳 */
#page-feed.feed--from-mission .feed-session {
  display: none !important;
}
#page-feed.feed--from-mission .panel-bar .panel-hint {
  display: none;
}
#page-feed.feed--from-mission .panel-bar {
  margin-bottom: 6px;
  justify-content: flex-end;
}
.daily-brief--panel,
.review-wall--panel {
  margin-bottom: 0;
}
.theme-list--panel {
  gap: 8px;
}

.daily-brief--compact .db-lead {
  margin: 0 0 10px;
}
.daily-brief--compact .db-mini-news {
  margin: 0 0 10px;
  padding: 0;
}
.daily-brief .db-expand {
  display: inline-block;
  margin-top: 4px;
  font-size: 12px;
}
.daily-brief.is-expanded .db-compact { display: none; }
.daily-brief:not(.is-expanded) .db-full { display: none; }

.review-wall--panel .review-item:nth-child(n+7) { display: none; }
.review-wall--panel .review-more {
  display: block;
  margin-top: 6px;
  font-size: 11px;
  color: var(--text3);
  text-align: center;
}
.review-dp-wrap {
  margin-bottom: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
}
.review-dp-block .review-dp-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 6px;
}
.review-dp-title {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.08em;
  color: var(--gold);
}
.review-pool-title {
  font-size: 12px;
  color: var(--text3);
  letter-spacing: 0.1em;
  margin-bottom: 6px;
}
.review-item--dp .dp-rank-sm {
  display: inline-flex;
  width: 16px;
  height: 16px;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
  background: rgba(194, 163, 107, 0.15);
  color: var(--gold);
  font-size: 10px;
  margin-right: 4px;
}
.dp-review-card {
  padding-top: 12px;
}
.review-dp-empty {
  font-size: 12px;
  padding: 4px 0;
}
.tm-chg-anchor {
  display: inline-block;
  margin-left: 6px;
  font-size: 11px;
  font-weight: 400;
  opacity: 0.75;
}
.dp-stats-mini {
  margin-bottom: 10px;
}
.dp-stats-mini-head {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  font-size: 12px;
  margin-bottom: 4px;
}
.dp-stats-mini-head .linkish {
  margin-left: auto;
}
.dp-stats-mini-chart {
  height: 88px;
  width: 100%;
  min-width: 120px;
}
.dp-stats-mini-sub {
  font-size: 11px;
  margin: 0 0 6px;
}
.dp-stats-mini-empty {
  font-size: 12px;
  margin-bottom: 8px;
}
.dp-stats-body {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.dp-stat-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 12px;
}
.dp-stat-card {
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.02);
}
.dp-stat-lab {
  font-size: 11px;
  color: var(--text3);
  letter-spacing: 0.08em;
}
.dp-stat-val {
  font-size: 22px;
  font-weight: 600;
  color: var(--gold);
  margin-top: 4px;
  font-family: var(--mono);
}
.dp-stat-sub {
  font-size: 11px;
  color: var(--text3);
  margin-top: 2px;
}
.dp-stats-chart {
  height: 260px;
  width: 100%;
  margin-top: 4px;
  overflow: visible;
}
.dp-stats-chart-note {
  font-size: 11px;
  margin-top: 4px;
  color: var(--text3);
}
.dp-hist-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.dp-hist-day {
  padding: 10px 0;
  border-bottom: 1px solid var(--line);
}
.dp-hist-day:last-child {
  border-bottom: 0;
}
.dp-hist-head {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  font-size: 13px;
  margin-bottom: 6px;
}
.dp-hist-picks {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.dp-hist-pick {
  font-size: 11px;
  padding: 4px 8px;
  border-radius: 6px;
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.03);
  cursor: pointer;
}
.dp-hist-pick.ok {
  border-color: rgba(196, 92, 88, 0.35);
  color: var(--red);
}
.dp-hist-pick.bad {
  border-color: rgba(91, 154, 126, 0.35);
  color: var(--green);
}
.dp-stats-link-card {
  text-align: center;
  padding: 12px;
}
.dp-open-stats {
  font-size: 13px;
  letter-spacing: 0.06em;
}
.dp-stats-empty {
  text-align: center;
  padding: 28px 18px;
}
.dp-stats-empty-ico {
  display: inline-flex;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(194, 163, 107, 0.12);
  color: var(--gold);
  font-size: 20px;
  margin-bottom: 10px;
}
.dp-stats-empty h3 {
  margin: 0 0 12px;
  font-size: 16px;
  letter-spacing: 0.08em;
}
.dp-stats-empty-steps {
  list-style: none;
  margin: 0 0 14px;
  padding: 0;
  text-align: left;
  font-size: 12px;
  color: var(--text2);
}
.dp-stats-empty-steps li {
  padding: 6px 0 6px 22px;
  position: relative;
}
.dp-stats-empty-steps li::before {
  content: "·";
  position: absolute;
  left: 6px;
  color: var(--gold);
}
.dp-stats-empty-refresh {
  margin-top: 8px;
}
.dp-stats-mini-empty {
  display: block;
  width: 100%;
  text-align: left;
  font-size: 12px;
  margin-bottom: 8px;
  padding: 0;
  background: none;
  border: 0;
  color: var(--text3);
  cursor: pointer;
}
.dp-stats-mini-empty:hover {
  color: var(--gold);
}
.dp-theme-table {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.dp-theme-row {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 10px;
  align-items: center;
  font-size: 13px;
  padding: 8px 0;
  border-bottom: 1px solid var(--line);
}
.dp-theme-row:last-child {
  border-bottom: 0;
}
.dp-theme-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.dp-theme-meta {
  font-size: 12px;
  color: var(--text3);
  font-family: var(--mono);
}
.dp-theme-rate {
  font-size: 13px;
  color: var(--gold);
  font-family: var(--mono);
  min-width: 42px;
  text-align: right;
}

.field-lab {
  display: block;
  font-size: 11px;
  letter-spacing: 0.32em;
  color: var(--gold);
  margin-bottom: 8px;
  text-transform: uppercase;
}
.search-box { position: relative; display: flex; flex-direction: column; }
.search-box input {
  width: 100%;
  height: 50px;
  border-radius: 0;
  border: 0;
  border-bottom: 1px solid var(--line2);
  background: transparent;
  color: var(--text);
  padding: 0 2px;
  font-size: 16px;
  outline: none;
  font-family: var(--sans);
}
.search-box input:focus { border-bottom-color: var(--gold); }
.search-box button, .primary {
  margin-top: 18px;
  height: 46px;
  border: 1px solid var(--gold);
  border-radius: 4px;
  background: var(--gold);
  color: #1a160e;
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 0.18em;
  cursor: pointer;
  font-family: var(--sans);
}
.action-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 18px;
}
.action-row .btn-main,
.action-row .btn-side {
  margin-top: 0;
  height: 46px;
  border-radius: 4px;
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 0.1em;
  cursor: pointer;
  font-family: var(--sans);
  white-space: nowrap;
  border: 1px solid var(--gold);
  background: var(--gold);
  color: #1a160e;
}
.search-box--hero .action-row .btn-main,
.search-box--hero .action-row .btn-side {
  height: 34px;
  min-height: 34px;
  max-height: 34px;
  border-radius: 9px;
  white-space: nowrap;
  letter-spacing: 0.06em;
  min-width: 0;
  width: auto;
}
.search-box--hero .action-row .btn-main {
  flex: 1.15 1 0;
  border: none;
  background: linear-gradient(165deg, #d8bf88 0%, var(--gold) 55%, #b89255 100%);
  color: #1a160e;
  box-shadow:
    0 2px 8px rgba(194, 163, 107, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.22);
}
.search-box--hero .action-row .btn-side {
  flex: 0.85 1 0;
  background: linear-gradient(165deg, #5a4a30 0%, #3d3424 55%, #2e281c 100%);
  border: 1px solid rgba(194, 163, 107, 0.58);
  color: #e8d6a8;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.1),
    0 1px 4px rgba(0, 0, 0, 0.25);
}
.search-box--hero .action-row .btn-side .btn-text {
  color: #e8d6a8;
  font-weight: 600;
}
.search-box--hero .action-row .btn-side .btn-sub {
  display: none;
}
.action-row.pulse .btn-main,
.action-row.pulse .btn-side {
  animation: actionPulse 0.9s ease 2;
}
@keyframes actionPulse {
  0%, 100% { box-shadow: none; }
  50% { box-shadow: 0 0 0 1px var(--gold); }
}
.sec-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin: 22px 0 10px;
}
.sec-row .sec { margin: 0; }
.sec {
  margin: 22px 0 10px;
  color: var(--text3);
  font-size: 11px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
}
.linkish {
  border: 0;
  background: transparent;
  color: var(--gold);
  font-size: 13px;
  letter-spacing: 0.16em;
  cursor: pointer;
}
.theme-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.theme-panel-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 4px;
  font-size: 12px;
  color: var(--text3);
  letter-spacing: 0.04em;
}
.theme-panel-head-l {
  min-width: 0;
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 4px 6px;
}
.theme-panel-head b {
  color: var(--gold);
  font-weight: 600;
}
.theme-panel-head > span {
  flex-shrink: 0;
  font-variant-numeric: tabular-nums;
  opacity: 0.8;
}
.theme-read {
  margin: 0 0 8px;
  padding: 9px 11px;
  border-radius: 8px;
  border: 1px solid rgba(194, 163, 107, 0.18);
  background: rgba(194, 163, 107, 0.06);
  color: var(--text2);
  font-size: 12px;
  line-height: 1.45;
  letter-spacing: 0.02em;
}
.theme-headnote {
  margin: 0 0 12px;
  font-size: 12px;
  line-height: 1.5;
  color: var(--text2);
}
.themes-stack {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.themes-stack .block-title {
  margin-top: 14px;
  margin-bottom: 6px;
}
.themes-stack .theme-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.theme-detail {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.theme-detail-lab {
  margin: 4px 0 0;
  font-size: 11px;
  letter-spacing: 0.16em;
  color: var(--text3);
}
.theme-detail-list {
  display: flex;
  flex-direction: column;
}
.theme-detail-list .leader-row:last-child {
  border-bottom: 0;
}
.theme-detail-note {
  margin: 4px 0 0;
  font-size: 11px;
  line-height: 1.5;
  color: var(--text3);
}
.theme-item {
  appearance: none;
  width: 100%;
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr) auto;
  gap: 8px 10px;
  align-items: center;
  text-align: left;
  padding: 11px 12px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.03);
  color: inherit;
  cursor: pointer;
  font: inherit;
  transition: border-color 0.15s, background 0.15s;
}
.theme-item:not(:has(.t-rank)) {
  grid-template-columns: minmax(0, 1fr) auto;
}
.theme-item:active {
  background: rgba(194, 163, 107, 0.08);
  border-color: rgba(194, 163, 107, 0.3);
}
.theme-item--hot {
  border-color: rgba(194, 163, 107, 0.42);
  background: linear-gradient(135deg, rgba(194, 163, 107, 0.16), rgba(255, 255, 255, 0.02));
}
.theme-item--focus {
  border-color: rgba(194, 163, 107, 0.45);
  box-shadow: inset 2px 0 0 var(--gold);
}
.theme-item .t-rank {
  width: 22px;
  height: 22px;
  border-radius: 6px;
  display: grid;
  place-items: center;
  font-size: 11px;
  font-family: var(--mono);
  font-variant-numeric: tabular-nums;
  color: var(--text3);
  background: rgba(255, 255, 255, 0.04);
}
.theme-item--hot .t-rank,
.theme-item--focus .t-rank {
  color: var(--gold);
  background: rgba(194, 163, 107, 0.16);
}
.theme-item .t-main {
  min-width: 0;
}
.theme-item .t-name {
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1.35;
  color: var(--text);
  display: flex;
  align-items: center;
  gap: 5px;
  min-width: 0;
  flex-wrap: wrap;
}
.theme-item .t-name-text {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 100%;
}
.theme-item .t-focus-tag,
.theme-item .t-top-tag,
.theme-item .t-breadth {
  flex-shrink: 0;
  font-style: normal;
  font-size: 10px;
  font-weight: 560;
  letter-spacing: 0.06em;
  padding: 1px 5px;
  border-radius: 4px;
  line-height: 1.35;
}
.theme-item .t-focus-tag {
  color: var(--gold);
  border: 1px solid rgba(194, 163, 107, 0.35);
  background: rgba(194, 163, 107, 0.1);
}
.theme-item .t-top-tag {
  color: #f0d9a8;
  border: 1px solid rgba(240, 217, 168, 0.28);
  background: rgba(240, 217, 168, 0.08);
}
.theme-item .t-breadth {
  color: var(--text3);
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(0, 0, 0, 0.18);
}
.theme-item .t-breadth--wide {
  color: var(--red);
  border-color: rgba(232, 93, 93, 0.28);
  background: rgba(232, 93, 93, 0.08);
}
.theme-item .t-breadth--ok {
  color: var(--text2);
}
.theme-item .t-breadth--narrow {
  color: var(--text3);
  opacity: 0.9;
}
.theme-item .t-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 8px;
  margin-top: 6px;
}
.theme-item .t-leader-btn {
  appearance: none;
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
  max-width: 100%;
  padding: 2px 0;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  font: inherit;
  line-height: 1.3;
}
.theme-item .t-leader-btn span {
  font-size: 10.5px;
  letter-spacing: 0.08em;
  color: var(--text3);
}
.theme-item .t-leader-btn b {
  font-size: 12px;
  font-weight: 560;
  color: var(--text2);
  max-width: 7.5em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.theme-item .t-leader-btn i {
  font-style: normal;
  font-size: 11px;
  font-family: var(--mono);
  font-variant-numeric: tabular-nums;
  margin-left: 2px;
}
.theme-item .t-leader-btn i.t-lheight {
  font-family: inherit;
  font-size: 10px;
  letter-spacing: 0.06em;
  color: var(--red);
  padding: 1px 4px;
  border-radius: 3px;
  background: rgba(232, 93, 93, 0.12);
}
.theme-item .t-leader-btn:active b {
  color: var(--gold);
}
.theme-item .t-leader-muted {
  font-size: 11px;
  color: var(--text3);
}
.theme-item .t-ud {
  display: inline-flex;
  align-items: baseline;
  gap: 2px;
  font-variant-numeric: tabular-nums;
  padding: 2px 6px;
  border-radius: 4px;
  background: rgba(0, 0, 0, 0.22);
  font-size: 11px;
}
.theme-item .t-ud span {
  color: var(--text3);
  opacity: 0.7;
}
.theme-item .t-ud i {
  font-style: normal;
}
.theme-item .t-ud i.up { color: var(--red); }
.theme-item .t-ud i.down { color: var(--green); }
.theme-item .t-flow {
  font-size: 10.5px;
  letter-spacing: 0.02em;
  font-variant-numeric: tabular-nums;
  color: var(--text3);
}
.theme-item .t-flow.up { color: var(--red); }
.theme-item .t-flow.down { color: var(--green); }
.theme-item .t-pct {
  font-family: var(--mono);
  font-size: 16px;
  font-weight: 650;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
  align-self: center;
  min-width: 4.4em;
  text-align: right;
}
.theme-list--panel {
  gap: 8px;
}
.theme-list--panel .theme-panel-head {
  margin-bottom: 2px;
  padding: 0 2px;
}
.theme-list--panel .theme-read {
  margin-bottom: 10px;
}
.theme-item.capital-row {
  display: block;
  grid-template-columns: unset;
  padding: 12px;
}
.cap-row-inner {
  width: 100%;
}
.cap-row-top {
  display: flex;
  justify-content: space-between;
  gap: 10px;
}
.cap-row-main {
  min-width: 0;
}
.cap-score {
  font-size: 10px;
  text-align: right;
  margin-top: 4px;
}
.capital-row .fold-cap-reason,
.capital-row .fold-follow-more {
  margin-top: 8px;
}
.capital-row .cap-reasons {
  margin: 0;
  font-size: 12px;
  line-height: 1.45;
  color: var(--text2);
}
.fold-cap-sec {
  margin: 0 0 10px;
}
.fold-cap-sec.card,
.fold-dp-ctx.card,
.fold-dp-triggers.card {
  padding: 0;
  overflow: hidden;
}
.dp-full-meta {
  margin: 0 0 8px;
  padding: 0 2px;
  font-size: 11px;
}
.dp-logic-one {
  margin: 8px 0 0;
  font-size: 12.5px;
  line-height: 1.45;
  color: var(--text2);
}
.fold-dp-logic {
  margin-top: 6px;
}
.fold-shiqi-pool {
  margin: 0 0 10px;
}
.fold-shiqi-pool .shiqi-pool-list {
  margin-top: 8px;
}
.bk-card { padding-bottom: 14px; }
.bk-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}
.bk-sub { font-size: 11px; letter-spacing: 0.04em; }
.bk-body {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 4px;
}
.bk-note { font-size: 12px; line-height: 1.55; }
.bk-block-label {
  font-size: 11px;
  letter-spacing: 0.14em;
  color: var(--text3);
  margin-bottom: 6px;
  text-transform: uppercase;
}
.bk-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.bk-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  font-size: 13px;
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s;
}
.bk-chip:hover {
  border-color: rgba(194, 163, 107, 0.45);
  background: rgba(194, 163, 107, 0.06);
}
.bk-chip.bk-primary { border-color: rgba(194, 163, 107, 0.45); }
.bk-chip.bk-hype {
  border-color: rgba(196, 92, 88, 0.4);
  background: rgba(196, 92, 88, 0.08);
}
.bk-chip.bk-hype .bk-chip-lab { color: var(--red); }
.bk-evidence {
  margin: 8px 0 0;
  font-size: 11px;
  line-height: 1.45;
}
.bk-chip-lab {
  font-size: 10px;
  letter-spacing: 0.12em;
  color: var(--text3);
  text-transform: uppercase;
}
.bk-chip em {
  font-style: normal;
  font-family: var(--mono);
  font-size: 12px;
}
.bk-leader-wrap { margin-top: 2px; }
.bk-leader {
  font-size: 13px;
  line-height: 1.6;
  padding: 10px 12px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid var(--line);
}
.bk-leader--run {
  cursor: pointer;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 2px 6px;
  border-color: rgba(194, 163, 107, 0.22);
  background: rgba(194, 163, 107, 0.05);
}
.bk-leader--run:active {
  background: rgba(194, 163, 107, 0.12);
}
.bk-leader-go {
  font-style: normal;
  margin-left: auto;
  font-size: 12px;
  color: var(--gold);
  letter-spacing: 0.02em;
}
.bk-rows,
.bk-peers {
  display: flex;
  flex-direction: column;
}
.bk-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  padding: 10px 2px;
  border-bottom: 1px solid var(--line);
  cursor: pointer;
  transition: background 0.15s;
  min-width: 0;
}
.bk-row:hover { background: rgba(194, 163, 107, 0.06); }
.bk-row-name {
  font-size: 13px;
  min-width: 0;
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.bk-row-pct { font-family: var(--mono); font-size: 13px; flex-shrink: 0; }
.bk-peer {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 9px 2px;
  border-bottom: 1px solid var(--line);
  font-size: 13px;
  cursor: pointer;
  transition: background 0.15s;
}
.bk-peer:hover { background: rgba(194, 163, 107, 0.06); }
.tag-sm {
  margin-left: 6px;
  font-size: 10px;
  padding: 1px 5px;
  vertical-align: middle;
}
.fold-panel {
  margin-top: 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.025);
  overflow: hidden;
  transition: border-color 0.2s, background 0.2s;
}
.fold-panel[open] {
  border-color: rgba(194, 163, 107, 0.35);
  background: rgba(194, 163, 107, 0.04);
}
.fold-head {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 54px;
  padding: 12px 14px;
  cursor: pointer;
  list-style: none;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  transition: background 0.15s;
}
.fold-head:hover { background: rgba(194, 163, 107, 0.07); }
.fold-head:active { background: rgba(194, 163, 107, 0.14); }
.fold-panel[open] > .fold-head { background: rgba(194, 163, 107, 0.06); }
.fold-head::-webkit-details-marker { display: none; }
.fold-chevron-wrap {
  flex-shrink: 0;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.04);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: border-color 0.2s, background 0.2s;
}
.fold-panel[open] .fold-chevron-wrap {
  border-color: rgba(194, 163, 107, 0.55);
  background: rgba(194, 163, 107, 0.14);
}
.fold-chevron {
  width: 10px;
  height: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text3);
  transition: color 0.2s;
}
.fold-chevron::before {
  content: "";
  width: 7px;
  height: 7px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(-45deg);
  margin-top: -2px;
  transition: transform 0.22s ease, border-color 0.2s;
}
.fold-panel[open] .fold-chevron {
  color: var(--gold);
}
.fold-panel[open] .fold-chevron::before {
  transform: rotate(45deg);
  margin-top: 2px;
}
.fold-text {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.fold-label {
  font-size: 14px;
  color: var(--text);
  letter-spacing: 0.02em;
  font-weight: 500;
}
.fold-panel[open] > .fold-head .fold-label { color: var(--gold); }
.fold-hint {
  font-size: 12px;
  color: var(--text3);
  line-height: 1.45;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.fold-action {
  flex-shrink: 0;
  font-size: 11px;
  letter-spacing: 0.06em;
  color: var(--gold);
  padding: 5px 10px;
  border-radius: 999px;
  border: 1px solid rgba(194, 163, 107, 0.35);
  background: rgba(194, 163, 107, 0.06);
}
.fold-panel:not([open]) .fold-action::before { content: "展开"; }
.fold-panel[open] .fold-action::before { content: "收起"; }
.fold-content {
  padding: 0 14px 14px;
  border-top: 1px solid var(--line);
}
.fold-panel[open] .fold-content {
  animation: foldIn 0.18s ease;
}
@keyframes foldIn {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 520px) {
  .fold-head {
    min-height: 58px;
    padding: 14px 12px;
    gap: 10px;
  }
  .fold-chevron-wrap {
    width: 34px;
    height: 34px;
  }
  .fold-action {
    font-size: 12px;
    padding: 6px 12px;
  }
  .fold-label { font-size: 15px; }
  .t-node-top { font-size: 14px; }
}
.mod-section {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}
.mod-section:first-child { margin-top: 12px; padding-top: 0; border-top: 0; }
.mod-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 8px;
}
.mod-title {
  font-size: 13px;
  letter-spacing: 0.12em;
  color: var(--text);
  text-transform: uppercase;
}
.mod-sub {
  font-size: 13px;
  margin-top: 10px;
}
.mod-lead {
  margin-top: 8px;
  font-size: 15px;
  line-height: 1.5;
}
.mod-note {
  margin-top: 8px;
  font-size: 12px;
  line-height: 1.6;
}
.mod-metrics {
  margin-top: 10px;
}
.mod-badge {
  font-size: 11px;
  padding: 3px 8px;
  border-radius: 999px;
  border: 1px solid rgba(194, 163, 107, 0.45);
  color: var(--gold);
  letter-spacing: 0.08em;
}
.mod-tpoints { margin-top: 14px; }
.mod-tpoints .mod-head { margin-bottom: 10px; }
.t-path-line {
  font-size: 14px;
  line-height: 1.55;
  color: var(--gold);
  letter-spacing: 0.02em;
  margin-bottom: 12px;
}
.t-timeline {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.t-node {
  display: grid;
  grid-template-columns: 22px 1fr;
  gap: 10px;
  padding: 10px 0;
}
.t-node + .t-node {
  border-top: 1px dashed rgba(255, 255, 255, 0.06);
}
.t-node-rail {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-top: 4px;
}
.t-node-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 2px solid var(--line);
  background: var(--bg1);
}
.t-node.buy .t-node-dot { border-color: var(--red); background: rgba(196, 92, 88, 0.15); }
.t-node.sell .t-node-dot { border-color: var(--green); background: rgba(91, 154, 126, 0.15); }
.t-node-top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 8px;
  font-size: 13px;
}
.t-node-step {
  font-size: 10px;
  color: var(--text3);
  letter-spacing: 0.08em;
}
.t-node-act {
  font-weight: 500;
  letter-spacing: 0.06em;
}
.t-node.buy .t-node-act { color: var(--red); }
.t-node.sell .t-node-act { color: var(--green); }
.t-node-time {
  font-family: var(--mono);
  color: var(--text2);
}
.t-node-px {
  font-family: var(--mono);
  font-size: 13px;
}
.t-node-conf {
  margin-left: auto;
  font-size: 11px;
  color: var(--text3);
  padding: 2px 6px;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.04);
}
.t-node-reason {
  margin: 6px 0 0;
  font-size: 12px;
  color: var(--text3);
  line-height: 1.5;
}
.t-exec-block {
  padding: 10px 0;
  border-bottom: 1px solid var(--line);
}
.t-exec-block:last-child { border-bottom: 0; padding-bottom: 0; }
.t-exec-title {
  font-size: 12px;
  color: var(--text2);
  letter-spacing: 0.04em;
  margin-bottom: 8px;
}
.t-exec-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px 12px;
  font-size: 12px;
}
.t-exec-grid span {
  display: block;
  color: var(--text3);
  font-size: 11px;
  margin-bottom: 3px;
}
.t-exec-grid b {
  font-family: var(--mono);
  font-size: 13px;
  font-weight: 500;
}
.t-exec-inv,
.t-exec-tip {
  margin: 8px 0 0;
  font-size: 11px;
  line-height: 1.55;
  color: var(--text3);
}
.t-exec-tip { color: var(--text2); }
.t1-hint {
  margin-top: 10px !important;
  font-size: 11px !important;
}
.mod-tpoints .t-points { margin-top: 10px; }
.t-point-head {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 6px;
}
.t-step {
  font-size: 10px;
  letter-spacing: 0.1em;
  color: var(--gold);
  border: 1px solid rgba(194, 163, 107, 0.35);
  padding: 2px 6px;
  border-radius: 4px;
}
.t-conf {
  margin-left: auto;
  font-size: 11px;
  color: var(--text3);
}
.t-tip {
  margin-top: 6px;
  font-size: 12px;
  color: var(--text2);
  line-height: 1.55;
}
.leader-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 11px 0;
  border-bottom: 1px solid var(--line);
  gap: 10px;
}
.leader-row:not(:has(.fp-btn)) {
  cursor: pointer;
}
.leader-row .tag {
  margin-left: 6px;
}
.theme-leader-cta {
  appearance: none;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 8px;
  width: 100%;
  margin-top: 0;
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid rgba(194, 163, 107, 0.28);
  background: linear-gradient(135deg, rgba(194, 163, 107, 0.12), rgba(194, 163, 107, 0.04));
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.theme-leader-cta-lab {
  width: 100%;
  font-size: 10.5px;
  letter-spacing: 0.1em;
  color: var(--text3);
}
.theme-leader-cta b {
  font-size: 15px;
  font-weight: 620;
  color: var(--text);
}
.theme-leader-cta em {
  font-style: normal;
  font-size: 13px;
  font-variant-numeric: tabular-nums;
}
.theme-leader-cta i {
  font-style: normal;
  margin-left: auto;
  font-size: 12px;
  color: var(--gold);
  letter-spacing: 0.02em;
}
.theme-leader-cta:active {
  background: rgba(194, 163, 107, 0.16);
}
.spark {
  display: flex;
  align-items: flex-end;
  gap: 2px;
  height: 36px;
  margin-top: 10px;
}
.spark i {
  flex: 1;
  min-height: 2px;
  background: rgba(194, 163, 107, 0.45);
}
.driver-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 12px;
}
.driver {
  padding: 10px 0;
  border-bottom: 1px solid var(--line);
}
.driver b {
  display: block;
  font-family: var(--mono);
  font-size: 18px;
  font-weight: 500;
  margin-top: 4px;
}
.advice-block {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}
.advice-h {
  font-size: 13px;
  letter-spacing: 0.12em;
  color: var(--gold);
}
.metric-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px 12px;
  margin-top: 10px;
}
.metric {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 2px 8px;
  padding: 8px 0;
  border-bottom: 1px solid var(--line);
  font-size: 13px;
}
.metric b {
  grid-column: 1;
  font-family: var(--mono);
  font-weight: 500;
  font-size: 15px;
}
.metric .msig {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
  font-style: normal;
  font-size: 12px;
  color: var(--text2);
}
.metric .msig.up { color: var(--up); }
.metric .msig.down { color: var(--down); }
.peer-list {
  margin-top: 10px;
  display: grid;
  gap: 6px;
}
.triggers {
  margin-top: 8px;
  display: grid;
  gap: 10px;
  font-size: 13px;
  color: var(--text2);
  line-height: 1.65;
}
.triggers span {
  display: inline-block;
  min-width: 2.5em;
  margin-right: 8px;
  font-family: var(--serif);
  letter-spacing: 0.08em;
}
.triggers-compact {
  font-size: 12px;
  gap: 8px;
}
.tm-plan {
  margin-top: 12px;
  display: grid;
  gap: 10px;
}
.tm-step {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  padding: 10px 12px;
  border-radius: 8px;
  background: rgba(194, 163, 107, 0.06);
  border: 1px solid rgba(194, 163, 107, 0.14);
}
.tm-step-n {
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 600;
  color: var(--gold);
  background: rgba(194, 163, 107, 0.15);
}
.tm-step p {
  margin: 0;
  font-size: 13px;
  line-height: 1.55;
  color: var(--text2);
}
.advice-details {
  margin-top: 14px;
}
.advice-details .fold-head {
  padding-left: 0;
  padding-right: 0;
}
.tm-drivers-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}
.tm-dim-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  padding: 4px 8px;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--line);
  color: var(--text2);
}
.tm-dim-chip i {
  display: inline-block;
  height: 3px;
  max-width: 36px;
  background: var(--gold);
  border-radius: 2px;
  opacity: 0.7;
}
.tm-dim-chip em {
  font-style: normal;
  font-family: var(--mono);
  color: var(--text3);
}
.tm-sentiment {
  padding-top: 12px;
}
.tm-sent-top {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 10px;
}
.tm-sent-pill {
  padding: 10px 12px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid var(--line);
}
.tm-sent-pill-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  margin-bottom: 4px;
}
.tm-sent-pill-lab {
  font-size: 11px;
  letter-spacing: 0.1em;
  color: var(--text3);
}
.tm-sent-pill-val {
  font-size: 26px;
  font-weight: 600;
  color: var(--gold);
  font-family: var(--mono);
  line-height: 1.1;
}
.tm-sent-oneline {
  font-size: 12px;
  line-height: 1.5;
  margin: 10px 0 0;
}
.tm-sent-tags {
  margin-top: 8px;
}
.tm-dim-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
  margin-top: 12px;
}
.tm-dim-bars {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 14px;
}
.tm-dim-bar-row {
  display: grid;
  grid-template-columns: 52px 1fr 28px 28px;
  align-items: center;
  gap: 8px;
}
.tm-dim-track {
  height: 6px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  overflow: hidden;
}
.tm-dim-fill {
  display: block;
  height: 100%;
  border-radius: 999px;
  background: var(--gold);
}
.tm-dim-fill--hi { background: var(--up); }
.tm-dim-fill--mid { background: var(--gold); }
.tm-dim-fill--lo { background: rgba(154, 148, 138, 0.65); }
.tm-dim-w {
  font-size: 10px;
  color: var(--text3);
  font-family: var(--mono);
  text-align: right;
}
.tm-exec .triggers-compact {
  margin-top: 12px;
}
.tm-sim-layer {
  margin: 6px 0 0;
  font-size: 10px;
  letter-spacing: 0.08em;
}
.tm-sim--secondary {
  opacity: 0.92;
  border-style: dashed;
}
.tm-live-primary {
  box-shadow: inset 0 0 0 1px rgba(194, 163, 107, 0.22);
}
.report-tomorrow--scan > .verdict-hero {
  margin-top: 0;
}
.report-tomorrow--scan .fold-tm-sim {
  margin-top: 0;
}
.report-tomorrow--scan .fold-tm-sim > .fold-head {
  border-style: solid;
  border-color: rgba(194, 163, 107, 0.22);
  background: rgba(194, 163, 107, 0.06);
  border-radius: 8px;
  padding: 10px 12px;
}
.report-tomorrow--scan .tm-market--scan .bk-body {
  margin-top: 8px;
}
.report-tomorrow--scan .tm-exec .fold-tm-plan {
  margin-top: 8px;
}
.report-tomorrow--scan .tm-exec--scan {
  padding-top: 12px;
  padding-bottom: 12px;
}
.report-tomorrow--scan .tm-exec--scan .block-title {
  margin-bottom: 8px;
}
.report-tomorrow--scan .tm-live-primary .block-title {
  letter-spacing: 0.06em;
}
.report-tomorrow--scan .tm-live-proj {
  margin: 8px 0 0;
  font-size: 11px;
  letter-spacing: 0.02em;
}
.t-cycle-bar--lite {
  gap: 8px;
}
.tm-dim-cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  padding: 8px 4px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid var(--line);
}
.tm-dim-name {
  font-size: 10px;
  color: var(--text3);
  letter-spacing: 0.06em;
}
.tm-dim-val {
  font-size: 15px;
  font-family: var(--mono);
  color: var(--gold);
  font-weight: 600;
}
.tm-hm-tag--more {
  background: rgba(255, 255, 255, 0.06);
  color: var(--text3);
  border-color: var(--line);
}
.tm-sent-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 8px;
}
.tm-sent-col {
  padding: 10px 12px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid var(--line);
}
.tm-sent-lab {
  font-size: 11px;
  letter-spacing: 0.08em;
  color: var(--text3);
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.tm-sent-score {
  font-size: 28px;
  font-weight: 600;
  color: var(--gold);
  font-family: var(--mono);
  margin: 6px 0 4px;
}
.tm-sent-meta {
  font-size: 11px;
  margin-top: 4px;
}
.tm-hm-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 6px;
}
.tm-hm-tag {
  font-size: 10px;
  padding: 2px 6px;
  border-radius: 4px;
  background: rgba(196, 92, 88, 0.1);
  color: var(--red);
  border: 1px solid rgba(196, 92, 88, 0.2);
}
.tm-hm-traces {
  margin: 8px 0 0;
  padding-left: 16px;
  font-size: 11px;
  color: var(--text2);
}
.tm-hm-traces li {
  margin: 4px 0;
}
.lhb-card {
  padding-top: 12px;
}
.lhb-reason {
  margin-bottom: 6px;
}
.lhb-tags {
  margin-bottom: 4px;
}
.fold-lhb {
  margin-top: 6px;
}
.lhb-head {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  font-size: 12px;
  margin-bottom: 6px;
}
.lhb-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  margin-top: 10px;
}
@media (min-width: 520px) {
  .lhb-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.lhb-side-title {
  font-size: 11px;
  letter-spacing: 0.1em;
  color: var(--gold);
  margin-bottom: 6px;
}
.lhb-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 11px;
}
.lhb-table th,
.lhb-table td {
  padding: 6px 4px;
  border-bottom: 1px solid var(--line);
  text-align: left;
  vertical-align: top;
}
.lhb-table th:last-child,
.lhb-table td:last-child {
  text-align: right;
}
.lhb-kind {
  display: inline-block;
  font-size: 9px;
  padding: 1px 4px;
  border-radius: 3px;
  margin-right: 4px;
  vertical-align: middle;
}
.lhb-kind--hot {
  background: rgba(196, 92, 88, 0.15);
  color: var(--red);
}
.lhb-kind--inst {
  background: rgba(194, 163, 107, 0.15);
  color: var(--gold);
}
.lhb-kind--north {
  background: rgba(91, 154, 126, 0.15);
  color: var(--green);
}
.lhb-kind--oth {
  background: rgba(255, 255, 255, 0.06);
  color: var(--text3);
}
.t-cycle-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin: 8px 0 6px;
  padding: 8px 10px;
  border-radius: 8px;
  background: rgba(194, 163, 107, 0.08);
  border: 1px solid rgba(194, 163, 107, 0.2);
  font-size: 12px;
}
.t-cycle-prefer {
  color: var(--gold);
  letter-spacing: 0.06em;
}
.t-cycle-detail {
  margin-top: 4px;
  margin-bottom: 8px;
}
.scenarios-compact .sc {
  padding: 8px 0;
}
.scenarios-compact .prob {
  font-size: 13px;
}
.clue-list {
  margin: 8px 0 0;
  padding-left: 16px;
  color: var(--text2);
  font-size: 13px;
  line-height: 1.75;
}
.tactic {
  padding: 10px 0 10px 12px;
  border-left: 1px solid var(--gold);
  margin-top: 10px;
}
.tactic .tn {
  font-size: 14px;
  letter-spacing: 0.08em;
  color: var(--text);
}
.tactic .tb {
  margin-top: 4px;
  color: var(--text2);
  font-size: 13px;
  line-height: 1.7;
}
.suggest {
  list-style: none;
  background: var(--bg2);
  border: 1px solid var(--line);
  margin-top: 8px;
}
.suggest li {
  padding: 12px 12px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  border-bottom: 1px solid var(--line);
  cursor: pointer;
}
.suggest li .stance-preview {
  margin-left: 6px;
  vertical-align: middle;
}
.suggest li:last-child { border-bottom: 0; }
.suggest li.suggest-empty {
  cursor: default;
  color: var(--text3);
  font-size: 12px;
  justify-content: flex-start;
}
.suggest-go {
  margin-left: auto;
  color: var(--gold);
  font-size: 12px;
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.suggest .code { color: var(--gold); font-family: var(--mono); font-size: 13px; min-width: 4.2em; text-align: right; }

.block-title {
  margin: 0 0 14px;
  color: var(--gold);
  font-size: 12px;
  letter-spacing: 0.28em;
}
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip {
  border: 1px solid var(--line);
  background: transparent;
  color: var(--text);
  border-radius: 2px;
  padding: 8px 11px;
  font-size: 13px;
  cursor: pointer;
  letter-spacing: 0.04em;
}
.chip b { color: var(--text3); font-weight: 400; margin-left: 8px; font-family: var(--mono); font-size: 12px; }
.history { display: flex; flex-direction: column; gap: 1px; background: var(--line); }
.history.empty { color: var(--text3); font-size: 14px; background: transparent; }
.hist-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: var(--bg);
  padding: 13px 2px;
  cursor: pointer;
  border-bottom: 1px solid var(--line);
}
.home-foot {
  margin-top: auto;
  padding-top: 28px;
  color: var(--text3);
  font-size: 10px;
  letter-spacing: 0.1em;
  line-height: 1.6;
  text-align: center;
  opacity: 0.72;
}

.load-wrap { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.load-mark {
  font-family: var(--serif);
  font-size: 36px;
  letter-spacing: 0.4em;
  padding-left: 0.4em;
}
.load-line {
  width: 72px;
  height: 1px;
  margin: 18px 0 22px;
  background: var(--gold);
  animation: pulse 1.4s ease-in-out infinite;
}
@keyframes pulse { 50% { opacity: 0.2; width: 28px; } }
.load-name { font-family: var(--serif); font-size: 20px; letter-spacing: 0.12em; }
.load-code { color: var(--gold); margin: 6px 0 28px; font-family: var(--mono); font-size: 13px; letter-spacing: 0.12em; }
.steps { list-style: none; width: 100%; max-width: 220px; color: var(--text3); font-size: 13px; letter-spacing: 0.12em; }
.steps li { padding: 7px 0 7px 18px; position: relative; }
.steps li::before {
  content: "";
  position: absolute; left: 0; top: 14px;
  width: 5px; height: 5px;
  background: var(--bg3);
}
.steps li.on { color: var(--text); }
.steps li.on::before { background: var(--gold); }

.report-body {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
  max-width: 100%;
}
.card {
  background: var(--bg1);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: var(--card-pad);
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
}
.quote-row { display: flex; justify-content: space-between; align-items: flex-end; }
.tm-market {
  padding: 0;
  overflow: visible;
}
.tm-market-bar {
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto auto;
  gap: 8px 16px;
  align-items: end;
  padding: var(--card-pad);
  border-bottom: 1px solid var(--line);
}
.tm-market-price {
  min-width: 0;
  grid-column: 1;
  grid-row: 1;
}
.tm-market-meta {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  font-size: 11px;
  line-height: 1.45;
  letter-spacing: 0.04em;
  text-align: right;
  grid-column: 2;
  grid-row: 1;
}
.tm-market-score {
  grid-column: 1 / -1;
  grid-row: 2;
  display: flex;
  align-items: center;
  gap: 12px;
  padding-top: 10px;
  margin-top: 2px;
  border-top: 1px solid var(--line);
}
.tm-market-verdict {
  display: flex;
  flex-direction: column;
  gap: 3px;
  font-size: 13px;
  letter-spacing: 0.06em;
  min-width: 0;
}
.tm-score-layer {
  font-size: 10px;
  letter-spacing: 0.1em;
  color: var(--text3);
}
.tm-verdict-text {
  color: var(--text);
  font-weight: 500;
}
.tm-market .bk-head {
  padding: 14px var(--card-pad) 0;
}
.tm-market .bk-body {
  padding: 4px var(--card-pad) var(--card-pad);
  margin-top: 0;
}
.price {
  font-size: 38px;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.6px;
  font-family: var(--mono);
}
.chg { font-size: 14px; font-variant-numeric: tabular-nums; font-family: var(--mono); margin-top: 4px; }
.up { color: var(--red); }
.down { color: var(--green); }
.flat { color: var(--text2); }
.kv {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 12px 10px;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}
.kv div { color: var(--text3); font-size: 11px; letter-spacing: 0.12em; }
.kv b { display: block; color: var(--text); font-size: 14px; font-weight: 500; margin-top: 4px; font-variant-numeric: tabular-nums; font-family: var(--mono); letter-spacing: 0; }

.score-wrap { display: flex; gap: 16px; align-items: center; }
.ring {
  width: 82px; height: 82px; flex-shrink: 0;
  border-radius: 50%;
  display: grid; place-items: center;
  background: conic-gradient(var(--gold) calc(var(--p) * 1%), var(--bg3) 0);
}
.ring span {
  width: 64px; height: 64px; border-radius: 50%;
  background: var(--bg1);
  display: grid; place-items: center;
  font-size: 22px; font-weight: 500;
  font-family: var(--mono);
}
.ring-sm {
  width: 52px;
  height: 52px;
}
.ring-sm span {
  width: 40px;
  height: 40px;
  font-size: 16px;
}
.tm-score-head {
  display: flex;
  gap: 12px;
  align-items: center;
}
.tm-score-main {
  min-width: 0;
  flex: 1;
}
.tm-score .verdict {
  font-size: 20px;
  letter-spacing: 0.1em;
  line-height: 1.35;
}
.tm-meta {
  margin-top: 4px;
  color: var(--text3);
  font-size: 12px;
  letter-spacing: 0.04em;
  line-height: 1.5;
}
.tm-hint {
  margin-top: 12px;
}
.tm-adj {
  margin-top: 10px;
}
.tm-drivers {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}
.tm-dim {
  display: grid;
  grid-template-columns: 36px 1fr 28px 28px;
  gap: 8px;
  align-items: center;
  font-size: 12px;
  color: var(--text2);
  letter-spacing: 0.06em;
}
.tm-dim span:nth-child(3) {
  font-family: var(--mono);
  text-align: right;
  color: var(--text);
}
.tm-dim em {
  font-style: normal;
  font-family: var(--mono);
  font-size: 11px;
  color: var(--text3);
  text-align: right;
}
.tm-extra {
  margin-top: 10px;
  font-size: 12px;
  line-height: 1.5;
}
.tm-sim-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
}
.tm-sim-top-l {
  min-width: 0;
  flex: 1;
}
.tm-sim-kicker {
  font-size: 11px;
  letter-spacing: 0.22em;
  color: var(--gold);
  margin-bottom: 6px;
}
.tm-sim-hero {
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
}
.tm-sim-pct {
  font-size: 28px;
  font-weight: 600;
  font-family: var(--mono);
  letter-spacing: -0.02em;
  line-height: 1;
}
.tm-sim-lab {
  font-size: 14px;
  color: var(--text2);
  letter-spacing: 0.04em;
}
.tm-sim-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}
.sim-pill {
  font-size: 10px;
  letter-spacing: 0.04em;
  padding: 3px 8px;
  border-radius: 999px;
  border: 1px solid rgba(194, 163, 107, 0.35);
  color: var(--gold);
  background: rgba(194, 163, 107, 0.1);
}
.sim-pill--mute {
  border-color: var(--line);
  color: var(--text3);
  background: rgba(255, 255, 255, 0.03);
}
.sim-pill--gold {
  border-color: rgba(194, 163, 107, 0.45);
  color: var(--gold);
}
.sim-pill--quant {
  border-color: rgba(90, 158, 184, 0.4);
  color: #7eb8cc;
  background: rgba(90, 158, 184, 0.1);
}
.sim-pill--board {
  border-color: rgba(194, 163, 107, 0.45);
  color: #d4b87a;
  background: rgba(194, 163, 107, 0.12);
}
.sim-pill--conf.ok {
  border-color: rgba(196, 92, 88, 0.35);
  color: var(--red);
  background: rgba(196, 92, 88, 0.08);
}
.sim-pill--conf.bad {
  border-color: rgba(154, 148, 138, 0.35);
  color: var(--text3);
  background: rgba(255, 255, 255, 0.03);
}
.tm-sim-score {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
}
.tm-sim-score .muted {
  font-size: 10px;
  letter-spacing: 0.08em;
}
.sim-chart {
  height: 248px;
  margin-top: 12px;
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.18);
  padding: 4px 0 0;
}
.sim-metric-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
  margin-top: 12px;
}
.sim-metric-row--3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.tm-sim-tline {
  margin: 10px 0 0;
  font-size: 12px;
  line-height: 1.45;
}
.tm-plan .tm-step {
  padding-left: 0;
}
.tm-plan .tm-step p {
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
}
.tm-warn {
  margin: 0 0 10px;
  padding: 8px 10px;
  border-radius: 8px;
  border: 1px solid rgba(196, 92, 88, 0.35);
  background: rgba(196, 92, 88, 0.1);
  color: var(--red);
  font-size: 12px;
  line-height: 1.4;
}
.tm-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  margin-bottom: 10px;
}
.tm-fact {
  display: flex;
  align-items: baseline;
  gap: 6px;
  font-size: 12px;
  min-width: 0;
}
.tm-fact span {
  color: var(--text3);
  flex-shrink: 0;
}
.tm-fact b {
  font-weight: 600;
}
.tm-fact em {
  font-style: normal;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 12em;
}
.fold-more-ref {
  margin-top: 12px;
}
.fold-more-ref .card {
  margin-top: 10px;
  box-shadow: none;
}
.tm-sentiment--compact .fold-sent-bars {
  margin-top: 8px;
}
.lhb-card--compact .lhb-head--compact {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 6px 10px;
  margin-bottom: 6px;
}
.lhb-card--compact .lhb-reason {
  margin: 0 0 6px;
}
.fold-bt-metrics {
  margin-top: 8px;
}
.fold-bt-metrics .bt-metrics {
  margin-top: 0;
}
.fold-bt-metrics .bt-note {
  margin-top: 8px;
}
.sim-metric-row > div {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  padding: 9px 4px 8px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid var(--line);
  text-align: center;
  min-width: 0;
}
.sim-metric-row span {
  font-size: 10px;
  color: var(--text3);
  letter-spacing: 0.08em;
}
.sim-metric-row b {
  font-size: 13px;
  font-family: var(--mono);
  font-weight: 600;
  line-height: 1.2;
}
.sim-metric-row small {
  font-size: 9px;
  line-height: 1.2;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--text3);
}
.sim-quant {
  margin-top: 12px;
  padding: 10px 10px 8px;
  border-radius: 10px;
  border: 1px solid rgba(90, 158, 184, 0.22);
  background: linear-gradient(180deg, rgba(90, 158, 184, 0.08), rgba(255, 255, 255, 0.02));
}
.sim-board-pattern {
  border-color: rgba(194, 163, 107, 0.28);
  background: linear-gradient(180deg, rgba(194, 163, 107, 0.1), rgba(255, 255, 255, 0.02));
}
.sim-board-pattern .sim-quant-title {
  color: #d4b87a;
}
.sim-quant-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
}
.sim-quant-title {
  font-size: 11px;
  letter-spacing: 0.12em;
  color: #7eb8cc;
  font-weight: 600;
}
.sim-quant-bias {
  font-size: 12px;
  font-weight: 600;
}
.sim-q-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
}
.sim-q-cell {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  padding: 7px 8px;
  border-radius: 8px;
  border: 1px solid var(--line);
  background: rgba(0, 0, 0, 0.16);
}
.sim-q-cell--bull {
  border-color: rgba(196, 92, 88, 0.22);
}
.sim-q-cell--bear {
  border-color: rgba(62, 168, 120, 0.22);
}
.sim-q-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 4px;
}
.sim-q-cell em {
  font-style: normal;
  font-size: 10px;
  color: var(--text3);
  letter-spacing: 0.04em;
}
.sim-q-sig {
  font-size: 9px;
  letter-spacing: 0.04em;
  flex-shrink: 0;
}
.sim-q-cell b {
  font-size: 12px;
  font-family: var(--mono);
  font-weight: 600;
  line-height: 1.25;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.sim-q-cell small {
  font-size: 9px;
  color: var(--text3);
  line-height: 1.25;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.sim-quant-tone {
  margin: 8px 0 0;
  font-size: 11px;
  line-height: 1.4;
}
.sim-q-kv {
  margin-bottom: 8px;
}
.live-quant-strip {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  margin-top: 10px;
  padding: 8px 10px;
  border-radius: 8px;
  border: 1px solid rgba(90, 158, 184, 0.2);
  background: rgba(90, 158, 184, 0.06);
  font-size: 11px;
}
.live-quant-strip b {
  font-weight: 600;
}
.sim-chips {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
  margin-top: 10px;
}
.sim-chip {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 8px 10px;
  border-radius: 8px;
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.02);
  min-width: 0;
}
.sim-chip em {
  font-style: normal;
  font-size: 10px;
  color: var(--text3);
  letter-spacing: 0.06em;
}
.sim-chip b {
  font-size: 12px;
  font-weight: 500;
  color: var(--text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.sim-logic-list {
  margin: 8px 0 0;
  padding-left: 16px;
  font-size: 12px;
  color: var(--text2);
}
.sim-logic-list li {
  margin: 4px 0;
}
.sim-disc {
  margin-top: 10px;
  font-size: 11px;
}
@media (max-width: 380px) {
  .tm-sim-pct { font-size: 24px; }
  .sim-metric-row b { font-size: 12px; }
  .sim-chips { grid-template-columns: 1fr; }
  .sim-q-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.t-points {
  margin-top: 4px;
}
.t-point {
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 2px 10px;
  padding: 8px 0;
  border-bottom: 1px solid var(--line);
  font-size: 13px;
}
.t-point .t-side {
  font-weight: 600;
  letter-spacing: 0.04em;
}
.t-point.buy .t-side { color: var(--up, #c45c58); }
.t-point.sell .t-side { color: var(--down, #5b9a7e); }
.t-point .t-px {
  font-family: var(--mono);
  text-align: right;
}
.t-point .t-why {
  grid-column: 1 / -1;
  font-size: 12px;
  line-height: 1.45;
}
.session-tag {
  color: var(--gold);
  font-size: 12px;
}
.live-now {
  text-align: right;
}
.live-now b {
  display: block;
  font-family: var(--mono);
  font-size: 20px;
  font-weight: 500;
  margin-top: 2px;
}
.live-actions {
  margin: 10px 0 0;
}
.session-hint {
  margin: 0 0 10px;
  font-size: 13px;
  color: var(--gold);
  opacity: 0.85;
}
.verdict { font-family: var(--serif); font-size: 24px; font-weight: 600; letter-spacing: 0.14em; }
.hint { color: var(--text2); font-size: 14px; margin-top: 6px; line-height: 1.7; }
.dims { display: flex; flex-direction: column; gap: 9px; margin-top: 16px; }
.dim { display: grid; grid-template-columns: 52px 1fr 28px; gap: 8px; align-items: center; font-size: 12px; color: var(--text2); letter-spacing: 0.08em; }
.dim span:last-child { font-family: var(--mono); text-align: right; }
.bar { height: 2px; background: var(--bg3); overflow: hidden; }
.bar i { display: block; height: 100%; background: var(--gold); }

.scenarios { display: grid; grid-template-columns: 1fr; gap: 1px; background: var(--line); }
.sc {
  display: grid;
  grid-template-columns: 64px 1fr auto;
  gap: 8px;
  align-items: center;
  padding: 12px 0;
  background: var(--bg1);
}
.sc .lab { font-size: 14px; font-weight: 600; letter-spacing: 0.08em; }
.sc .note { color: var(--text3); font-size: 12px; }
.prob { color: var(--gold); font-family: var(--mono); font-size: 14px; }

.tabs { display: flex; gap: 0; margin-bottom: 12px; border-bottom: 1px solid var(--line); }
.tab {
  flex: 1; height: 38px;
  border: 0;
  background: transparent;
  color: var(--text3);
  cursor: pointer;
  letter-spacing: 0.18em;
  font-size: 13px;
}
.tab.on { color: var(--gold); box-shadow: inset 0 -1px 0 var(--gold); }
.chart {
  width: 100%;
  max-width: 100%;
  height: 280px;
  overflow: hidden;
}
.chart.pred { height: 240px; }

.signals { display: flex; flex-direction: column; gap: 8px; }
.sig {
  font-size: 14px; padding: 10px 0 10px 12px;
  border-left: 1px solid var(--text3);
  color: var(--text2);
  line-height: 1.65;
}
.sig.bull { border-left-color: var(--red); }
.sig.bear { border-left-color: var(--green); }
.sig.warn { border-left-color: var(--gold); }

.levels { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.lv-item { font-size: 14px; padding: 8px 0; border-bottom: 1px solid var(--line); font-family: var(--mono); }
.lv-item span { display: block; color: var(--text3); font-size: 11px; letter-spacing: 0.12em; font-family: var(--sans); margin-bottom: 3px; }

.article h3 {
  font-family: var(--serif);
  font-size: 16px;
  margin: 18px 0 8px;
  color: var(--text);
  letter-spacing: 0.12em;
  font-weight: 600;
}
.article p { color: var(--text2); font-size: 14px; text-align: justify; line-height: 1.85; }
.article .lead {
  font-family: var(--serif);
  color: var(--text);
  font-size: 16px;
  letter-spacing: 0.06em;
  line-height: 1.7;
  margin-bottom: 10px;
}

.risks { color: var(--text2); font-size: 13px; padding-left: 16px; line-height: 1.75; }
.risks li { margin: 6px 0; }
.disc { color: var(--text3); font-size: 12px; line-height: 1.8; letter-spacing: 0.04em; }

.emo-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 8px; }
.emo-lab { font-family: var(--serif); font-size: 20px; font-weight: 600; letter-spacing: 0.14em; }
.emo-track {
  height: 2px;
  background: var(--bg3);
  position: relative;
  margin: 14px 0 12px;
}
.emo-track i {
  display: block;
  height: 100%;
  background: var(--gold);
}
.tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.tag {
  font-size: 11px;
  padding: 3px 8px;
  letter-spacing: 0.12em;
  border: 1px solid var(--line);
  color: var(--text2);
}
.factors { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--line); }
.factor { background: var(--bg1); padding: 12px 10px; }
.factor span { color: var(--text3); font-size: 11px; letter-spacing: 0.14em; }
.factor b { display: block; margin: 6px 0 4px; font-size: 14px; font-weight: 500; font-family: var(--mono); }
.factor small { color: var(--text3); font-size: 12px; }
.news-item {
  padding: 12px 0 12px 10px;
  border-bottom: 1px solid var(--line);
  font-size: 14px;
  line-height: 1.6;
  cursor: pointer;
}
.news-item:last-child { border-bottom: 0; }
.news-item time { display: block; color: var(--text3); font-size: 12px; margin-top: 5px; letter-spacing: 0.06em; }
.news-item .news-top {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 6px;
  flex-wrap: wrap;
}
.news-item .news-sum {
  margin-top: 6px;
  color: var(--text2);
  font-size: 13px;
  line-height: 1.65;
}
.news-item .news-logic {
  margin-top: 8px;
  padding: 10px 10px;
  background: var(--bg2);
  border: 1px solid var(--line);
  color: var(--text2);
  font-size: 13px;
  line-height: 1.75;
}
.news-item .news-logic b { color: var(--text); font-weight: 500; }
.news-item .news-hint {
  margin-top: 4px;
  color: var(--text3);
  font-size: 12px;
  letter-spacing: 0.06em;
}
.pol-badge {
  display: inline-block;
  font-size: 12px;
  letter-spacing: 0.12em;
  padding: 2px 8px;
  border: 1px solid var(--line);
  font-weight: 600;
}
.pol-badge.pos { color: #1a1008; background: var(--red); border-color: var(--red); }
.pol-badge.soft_pos { color: var(--red); border-color: rgba(196, 92, 88, 0.55); background: rgba(196, 92, 88, 0.12); }
.pol-badge.neu { color: var(--text2); border-color: var(--line2); }
.pol-badge.soft_neg { color: var(--green); border-color: rgba(91, 154, 126, 0.55); background: rgba(91, 154, 126, 0.12); }
.pol-badge.neg { color: #07140f; background: var(--green); border-color: var(--green); }
.news-item.pos { border-left: 2px solid var(--red); }
.news-item.soft_pos { border-left: 2px solid rgba(196, 92, 88, 0.7); }
.news-item.neg { border-left: 2px solid var(--green); }
.news-item.soft_neg { border-left: 2px solid rgba(91, 154, 126, 0.7); }
.news-item.neu { border-left: 2px solid var(--text3); }
.news-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 10px;
}
.flow-row { display: flex; justify-content: space-between; gap: 1px; background: var(--line); margin: 8px 0; }
.flow-box { flex: 1; background: var(--bg1); padding: 12px; }
.flow-box span { color: var(--text3); font-size: 11px; letter-spacing: 0.16em; }
.flow-box b { display: block; margin-top: 6px; font-size: 18px; font-weight: 500; font-family: var(--mono); }
.mini { display: flex; gap: 3px; align-items: flex-end; height: 42px; margin-top: 12px; }
.mini i { flex: 1; min-height: 2px; }

.err-wrap { flex: 1; display: flex; flex-direction: column; justify-content: center; gap: 10px; }
.err-title { font-family: var(--serif); font-size: 22px; letter-spacing: 0.16em; margin-top: 12px; }
.err-wrap p { color: var(--text2); }
.err-wrap .primary { width: 100%; margin-top: 12px; }
.err-alts {
  margin-top: 4px;
  justify-content: center;
}

/* ── 移动端：防止横向撑出 ── */
@media (max-width: 767px) {
  .quote-row {
    flex-wrap: wrap;
    gap: 8px;
    min-width: 0;
  }
  .price {
    font-size: clamp(28px, 8vw, 38px);
    max-width: 100%;
  }
  .kv {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .levels {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }
  .news-item .news-top,
  .news-item .news-sum,
  .article h3,
  .article p,
  .capital-line,
  .theme-item .t-name,
  .fold-label {
    overflow-wrap: anywhere;
    word-break: break-word;
  }
  .flow-row {
    flex-wrap: wrap;
  }
  .flow-box {
    min-width: calc(50% - 1px);
  }
  .pf-tabs,
  .pf-bottom {
    width: 100%;
    box-sizing: border-box;
  }
}

@media (min-width: 480px) {
  .phone {
    margin: 18px 0;
    height: calc(100% - 36px);
    border: 1px solid #1c1c1e;
  }
}

/* ── PC / 平板适配 ── */
@media (min-width: 768px) {
  :root {
    --page-x: 20px;
    --card-pad: 18px;
  }

  html, body {
    overflow: auto;
    height: auto;
    min-height: 100%;
  }

  .frame {
    min-height: 100vh;
    height: auto;
    padding: 24px 20px;
    align-items: flex-start;
  }

  .phone {
    max-width: 680px;
    width: 100%;
    height: auto;
    min-height: calc(100vh - 48px);
    margin: 0 auto;
    border-radius: 14px;
    box-shadow:
      0 0 0 1px rgba(194, 163, 107, 0.08),
      0 24px 80px rgba(0, 0, 0, 0.55);
    overflow: visible;
  }

  .page {
    min-height: calc(100vh - 48px);
  }

  .chart { height: 320px; }
  .chart.pred { height: 280px; }
  .sim-chart { height: 280px; }

  .back:hover,
  .ghost:hover,
  .top-entry:hover,
  .linkish:hover,
  .chip:hover,
  .hist-tag:hover,
  .vh-share-btn:hover,
  .fp-btn:hover,
  .share-btn-primary:hover,
  .share-btn-secondary:hover {
    filter: brightness(1.08);
  }

  .theme-item:hover,
  .leader-row:hover,
  .hist-item:hover,
  .review-item:hover,
  .suggest li:hover,
  .news-item:hover,
  .home-nav-btn:hover,
  .btn-portfolio:hover {
    background: rgba(194, 163, 107, 0.08);
    border-color: rgba(194, 163, 107, 0.4);
  }
}

@media (min-width: 1100px) {
  :root {
    --page-x: 28px;
    --card-pad: 20px;
  }

  .frame {
    padding: 32px 24px;
  }

  .phone {
    max-width: 860px;
  }

  #page-report .report-body.report-tomorrow,
  #page-report .report-body.report-midterm,
  #page-capital .report-body,
  #page-themes .report-body,
  #page-theme .report-body,
  #page-news .report-body {
    display: grid;
    gap: 12px;
    align-items: start;
  }

  #page-report .report-body.report-tomorrow {
    grid-template-columns: 1fr;
    grid-auto-flow: row;
  }

  #page-report .report-body.report-tomorrow .tm-market-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px 28px;
  }

  #page-report .report-body.report-tomorrow .tm-market-price {
    flex: 0 0 auto;
  }

  #page-report .report-body.report-tomorrow .tm-market-score {
    flex: 0 1 auto;
    grid-column: unset;
    margin-top: 0;
    padding-top: 0;
    border-top: none;
    border-left: 1px solid var(--line);
    padding-left: 24px;
  }

  #page-report .report-body.report-tomorrow .tm-market-meta {
    flex: 0 0 auto;
    margin-left: auto;
  }

  #page-report .report-body.report-midterm {
    grid-template-columns: 1fr;
  }

  #page-capital .report-body,
  #page-themes .report-body,
  #page-theme .report-body,
  #page-news .report-body {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-flow: dense;
  }

  /* 持仓页保持单列纵向流，避免作战指南空态/策略条被挤到左半屏 */
  #page-portfolio .pf-body {
    display: flex;
    flex-direction: column;
    gap: 10px;
  }
  #page-portfolio .pf-body > .strat-bar,
  #page-portfolio .pf-body > .pf-summary,
  #page-portfolio .pf-body > .pf-guide-empty-wrap,
  #page-portfolio .pf-body > .pf-guide-loading,
  #page-portfolio .pf-body > .card,
  #page-portfolio .pf-body > .pf-disc,
  #page-portfolio .pf-body > .pf-foot-note {
    width: 100%;
    max-width: 100%;
  }
  #page-portfolio .pf-body.pf-body--guide-empty {
    align-items: center;
    justify-content: flex-start;
    padding-top: 8px;
  }
  #page-portfolio .pf-body.pf-body--guide-empty .pf-guide-empty-wrap {
    width: 100%;
    max-width: 520px;
  }
  #page-portfolio .pf-body.pf-body--guide-empty .pf-guide-empty {
    width: 100%;
  }
  #page-portfolio .pf-body.pf-body--guide-empty .pf-empty-gen {
    max-width: none;
  }

  #page-report .report-body > .card,
  #page-capital .report-body > .card,
  #page-themes .report-body > .card,
  #page-theme .report-body > .card,
  #page-news .report-body > .card {
    margin: 0;
  }

  #page-report .report-body.report-tomorrow > :not(.card-half) {
    grid-column: 1 / -1;
  }

  #page-report .report-body.report-midterm > .card,
  #page-report .report-body.report-midterm > .verdict-hero {
    grid-column: 1 / -1;
  }

  #page-report .report-body.report-midterm .bk-body {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 20px;
    align-items: start;
  }

  #page-report .report-body.report-midterm .bk-note,
  #page-report .report-body.report-midterm .bk-chips,
  #page-report .report-body.report-midterm .bk-leader-wrap,
  #page-report .report-body.report-midterm .fold-panel,
  #page-report .report-body.report-midterm .bk-block {
    grid-column: 1 / -1;
  }

  #page-report .report-body.report-midterm .bk-chips {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, max-content));
    gap: 8px;
  }

  #page-report .report-body.report-midterm .bk-rows,
  #page-report .report-body.report-midterm .bk-peers {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 20px;
  }

  #page-report .report-body.report-tomorrow .tm-market .bk-body {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 20px;
    align-items: start;
  }

  #page-report .report-body.report-tomorrow .tm-market .bk-note,
  #page-report .report-body.report-tomorrow .tm-market .bk-chips,
  #page-report .report-body.report-tomorrow .tm-market .bk-leader-wrap,
  #page-report .report-body.report-tomorrow .tm-market .fold-panel,
  #page-report .report-body.report-tomorrow .tm-market .bk-block {
    grid-column: 1 / -1;
  }

  #page-report .report-body.report-tomorrow .tm-market .bk-chips {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, max-content));
    gap: 8px;
  }

  #page-report .report-body.report-tomorrow .tm-market .bk-rows,
  #page-report .report-body.report-tomorrow .tm-market .bk-peers {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 20px;
  }

  #page-capital .report-body > .card:first-child,
  #page-capital .report-body > .card.capital-guide,
  #page-capital .report-body > .card:last-child,
  #page-themes .report-body > .card:first-child,
  #page-themes .report-body > .card:last-child,
  #page-theme .report-body > .card:first-child,
  #page-theme .report-body > .card:last-child,
  #page-news .report-body > .card {
    grid-column: 1 / -1;
  }

  .fold-head:hover,
  .bk-chip:hover,
  .bk-row:hover,
  .bk-peer:hover {
    background: rgba(194, 163, 107, 0.08);
  }

  .daily-picks-panel .dp-panel-row:hover {
    background: rgba(194, 163, 107, 0.08);
    border-color: rgba(194, 163, 107, 0.35);
  }

  .dp-ctx-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .chart { height: 360px; }
  .sim-chart { height: 320px; }
}

/* ========== 疏密节奏：减文字墙，保留决策信息 ========== */
:root {
  --card-pad: 12px;
  --page-x: 14px;
}

.clamp-2 {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

.today-mission {
  margin: 0 0 12px;
  padding: 11px 10px 9px;
  border-radius: 11px;
  background:
    linear-gradient(160deg, rgba(194, 163, 107, 0.05) 0%, transparent 44%),
    rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(232, 224, 210, 0.07);
  animation: homeFadeUp 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.1s both;
}
.today-mission--lite {
  padding: 11px 10px 9px;
}
.tm-head {
  margin-bottom: 8px;
}
.tm-title {
  font-family: var(--serif);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.05em;
  margin: 0 0 5px;
  line-height: 1.3;
  color: var(--text);
}
.tm-primary {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  margin: 0;
  padding-left: 8px;
  border-left: 2px solid rgba(194, 163, 107, 0.38);
  font-size: 12px;
  line-height: 1.45;
  color: var(--text2);
}
.tm-peri-block {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 5px;
  margin: 0 0 8px;
  padding: 0 0 8px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}
.tm-peri-bias {
  flex-shrink: 0;
  font-size: 10px;
  letter-spacing: 0.1em;
  padding: 2px 6px;
  border-radius: 4px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: var(--text3);
  background: rgba(255, 255, 255, 0.03);
}
.tm-peri-block--bull .tm-peri-bias {
  color: var(--green);
  border-color: rgba(91, 154, 126, 0.35);
  background: rgba(91, 154, 126, 0.08);
}
.tm-peri-block--bear .tm-peri-bias {
  color: var(--red);
  border-color: rgba(196, 92, 88, 0.35);
  background: rgba(196, 92, 88, 0.08);
}
.tm-peri-block .dp-chips {
  flex: 1;
  min-width: 0;
  gap: 5px;
}
.tm-peri-block .dp-chip {
  padding: 3px 7px;
  border-radius: 5px;
  background: rgba(0, 0, 0, 0.22);
}
.tm-news-pulse {
  margin: -4px 0 10px;
  font-size: 11px;
  letter-spacing: 0.04em;
  color: var(--gold);
  line-height: 1.4;
}
.tm-signals .tm-mainline,
.tm-signals .tm-pulse-link,
.tm-signals .tm-signal {
  padding: 6px 0 8px;
  margin: 0 0 6px;
  border-radius: 0;
  border: none;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  background: transparent;
}
.tm-signal-main b {
  font-family: var(--serif);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.12em;
  color: var(--gold);
}
.tm-signal-main em {
  display: none;
}
.tm-signal-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 3px;
}
.tm-badge {
  display: inline-block;
  font-style: normal;
  font-size: 10px;
  letter-spacing: 0.04em;
  padding: 1px 6px;
  border-radius: 4px;
  color: var(--text3);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.06);
}
.tm-signal-go {
  flex-shrink: 0;
  font-style: normal;
  font-size: 11px;
  color: var(--gold);
  opacity: 0.9;
}
.err-sub {
  margin: 0;
  font-size: 12px;
  color: var(--text3);
  letter-spacing: 0.04em;
}
.report-midterm--scan .fold-mt-charts.fold-panel {
  margin: 0 0 12px;
}
.report-midterm--scan .fold-mt-charts .fold-content {
  padding-top: 8px;
}
.tm-sim-teaser {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px 10px;
  margin: 0 0 8px;
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid rgba(194, 163, 107, 0.22);
  background: rgba(194, 163, 107, 0.06);
}
.tm-sim-teaser-lab {
  font-size: 11px;
  letter-spacing: 0.12em;
  color: var(--gold);
}
.tm-sim-teaser b {
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--text);
}
.tm-sim-teaser em {
  font-style: normal;
  font-family: var(--mono);
  font-size: 13px;
}
.tm-sim-teaser-note {
  margin-left: auto;
  font-size: 11px;
  color: var(--text3);
}
.tm-sim-teaser--empty {
  opacity: 0.75;
}
.dp-triggers-card {
  margin-bottom: 10px;
  padding: 10px 12px;
}
.dp-triggers-card .exec-decision {
  margin: 0;
}
.dp-triggers-inline {
  margin: 0 0 10px;
}
.dp-triggers-inline .exec-decision {
  margin: 0;
}
.cap-sec-card .fold-cap-more {
  margin-top: 8px;
  border: 0;
  background: transparent;
}
.mt-board-block {
  margin: 10px 0;
}
.report-midterm--scan .fold-mt-board {
  margin: 0 0 12px;
}
.mt-emo-line {
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 8px;
}
.mt-emo-line b {
  font-size: 14px;
  font-weight: 600;
}
.mt-emo-line em {
  font-style: normal;
  font-size: 12px;
  color: var(--text3);
}
.fold-mt-outlook.fold-panel {
  margin: 0 0 12px;
}
.fold-mt-outlook .scenarios {
  margin-top: 4px;
}
.tm-priority-slot:not([hidden]) {
  margin: 0 0 8px;
}
.tm-extras {
  margin: 0;
}
.tm-mine,
.tm-hold-hint,
.tm-hold-alert {
  padding: 9px 0;
  border-radius: 0;
  background: transparent;
}
.tm-discipline {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 4px;
  margin: 0 0 10px;
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(0, 0, 0, 0.16);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
.tm-discipline--tight {
  border-color: rgba(196, 92, 88, 0.22);
  background: rgba(196, 92, 88, 0.06);
}
.tm-discipline--loose {
  border-color: rgba(91, 154, 126, 0.22);
  background: rgba(91, 154, 126, 0.06);
}
.tm-discipline-top {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 2px;
  width: 100%;
}
.tm-discipline-top .tm-row-lab {
  color: var(--text3);
  letter-spacing: 0.16em;
}
.tm-discipline--tight .tm-discipline-top .tm-row-lab {
  color: #c88a86;
}
.tm-discipline-top em {
  display: inline;
  margin: 0;
  font-style: normal;
  font-size: 11px;
  color: var(--gold);
  flex-shrink: 0;
}
.tm-discipline-body {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  width: 100%;
  font-style: normal;
  font-size: 12px;
  line-height: 1.45;
  font-weight: 500;
  color: var(--text2);
}
.tm-discipline--tight .tm-discipline-body {
  color: #d4b0ad;
}
.tm-discipline em:not(.tm-discipline-top em) {
  display: none;
}
.tm-acts {
  margin-top: 2px;
  gap: 6px;
}
.tm-act {
  appearance: none;
  border: none;
  border-radius: 0;
  padding: 4px 0;
  font-size: 12px;
  letter-spacing: 0.04em;
  background: transparent;
  color: var(--gold);
  border-bottom: 1px solid transparent;
}
.tm-act--primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 34px;
  padding: 0 14px;
  margin-top: 4px;
  border-radius: 8px;
  border: none;
  background: linear-gradient(165deg, #d8bf88 0%, var(--gold) 55%, #b89255 100%);
  color: #1a160e;
  font-size: 12.5px;
  font-weight: 650;
  letter-spacing: 0.08em;
  border-bottom: none;
  box-shadow:
    0 2px 8px rgba(194, 163, 107, 0.16),
    inset 0 1px 0 rgba(255, 255, 255, 0.2);
}
.tm-act--primary:active {
  opacity: 0.92;
  transform: scale(0.985);
  color: #1a160e;
}
/* 休市有仓：仅金点提示，不改图标/文案色，避免误读成「已选中」 */
.app-tab.is-suggest .app-tab-lab,
.app-tab.is-suggest .app-tab-ico {
  color: inherit;
  opacity: inherit;
}
.app-tab.is-suggest::after {
  content: "";
  position: absolute;
  top: 8px;
  right: calc(50% - 18px);
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--gold);
  box-shadow: 0 0 0 2px rgba(194, 163, 107, 0.16);
}
.app-tab {
  position: relative;
}
#page-load.soft-load .steps li:nth-child(1),
#page-load.soft-load .steps li:nth-child(2) {
  display: none;
}
.tm-more {
  margin-top: 8px;
  border-top: 1px solid rgba(255, 255, 255, 0.05);
  padding-top: 6px;
}
.tm-more > summary {
  list-style: none;
  cursor: pointer;
  font-size: 11px;
  color: var(--text3);
  letter-spacing: 0.04em;
  user-select: none;
  padding: 2px 0;
}
.tm-more > summary::-webkit-details-marker { display: none; }
.tm-more > summary::after {
  content: " ›";
  color: var(--gold);
  opacity: 0.7;
}
.tm-more[open] > summary::after { content: " ˄"; }
.tm-more-body {
  margin-top: 8px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.pf-empty-hero {
  margin: 0 0 12px;
  padding: 18px 14px 16px;
  border-radius: 10px;
  border: 1px solid rgba(194, 163, 107, 0.28);
  background: linear-gradient(165deg, rgba(194, 163, 107, 0.1) 0%, rgba(0, 0, 0, 0.18) 100%);
}
.pf-empty-hero-copy h3 {
  margin: 0 0 6px;
  font-size: 16px;
  font-weight: 650;
  letter-spacing: 0.06em;
  color: var(--text);
}
.pf-empty-hero-copy p {
  margin: 0 0 14px;
  font-size: 12px;
  line-height: 1.5;
  color: var(--text3);
}
.pf-empty-hero-note {
  margin: 12px 0 0;
  font-size: 11px;
  color: var(--text3);
  line-height: 1.45;
}
.home-history {
  margin: 0 0 12px;
  padding-top: 10px;
  border-top: 1px solid rgba(232, 224, 210, 0.06);
  animation: homeFadeUp 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.14s both;
}
.hist-tag {
  border-radius: 7px;
  padding: 5px 9px;
  font-size: 12px;
  background: rgba(0, 0, 0, 0.2);
}
.hist-tag .hist-name {
  font-size: 12px;
}

.shiqi-body {
  gap: 8px;
}
.shiqi-headnote {
  font-size: 12px;
  color: var(--text3);
  line-height: 1.45;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.shiqi-disc-action {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  font-size: 12px;
  line-height: 1.45;
}
.tm-money-plain {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.shiqi-tap-hint {
  font-size: 10px;
  opacity: 0.7;
  margin-top: 4px;
}
.shiqi-fold {
  margin-top: 6px;
}
.shiqi-fold > summary,
.pf-gi-more > summary,
.pf-sum-more > summary {
  list-style: none;
  cursor: pointer;
  font-size: 11px;
  color: var(--gold);
  letter-spacing: 0.04em;
  padding: 6px 0 2px;
  user-select: none;
}
.shiqi-fold > summary::-webkit-details-marker,
.pf-gi-more > summary::-webkit-details-marker,
.pf-sum-more > summary::-webkit-details-marker {
  display: none;
}
.shiqi-fold > summary::after,
.pf-gi-more > summary::after,
.pf-sum-more > summary::after {
  content: " ›";
  opacity: 0.7;
}
.shiqi-fold[open] > summary::after,
.pf-gi-more[open] > summary::after,
.pf-sum-more[open] > summary::after {
  content: " ˄";
}

.page-portfolio .pf-body {
  gap: 12px;
}
.pf-combo {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  font-size: 12.5px;
  padding: 8px 10px;
  margin: 6px 0 8px;
}
.pf-focus-chip span {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  overflow: hidden;
  font-size: 11px;
}
.pf-watch-why {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  font-size: 11.5px;
  color: var(--text3);
}
.pf-cost-act {
  padding: 5px 8px;
  font-size: 11.5px;
}
.pf-exec {
  gap: 8px;
  padding: 8px 10px;
  margin: 8px 0 2px;
}
.pf-exec-list {
  font-size: 11.5px;
  line-height: 1.45;
}
.pf-gi-more,
.pf-sum-more {
  margin-top: 6px;
  border-top: 1px solid var(--line);
  padding-top: 2px;
}
.pf-gi-more-body,
.pf-sum-more-body {
  padding: 6px 0 2px;
}
.pf-schedule--now {
  margin-top: 6px;
}
.pf-sched {
  padding: 6px 0;
}
.pf-sched-text {
  font-size: 11.5px;
  line-height: 1.45;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.pf-open-tm {
  margin-top: 6px;
  font-size: 12px;
}
.pf-watch-alert span {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  overflow: hidden;
}
.pf-watch-list {
  gap: 6px;
}

.daily-brief .db-watch i:nth-child(n + 5) {
  display: none;
}
.strat-focus i {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  overflow: hidden;
}
.dp-panel-backdrop {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  padding: 8px 10px;
  font-size: 11.5px;
}
.dp-panel-list {
  gap: 8px;
}
.dp-panel-row {
  padding: 11px 12px;
}
.panel-hint {
  /* panel-bar 已处理省略；此处不再二次 clamp 折行 */
  display: block;
  -webkit-line-clamp: unset;
}
.home-search .search-hint,
.home-search-card .search-hint {
  font-size: 11px;
  color: var(--text3);
  line-height: 1.35;
}
.home-history {
  margin-top: 4px;
}
.hist-head-hint {
  font-size: 11px;
  opacity: 0.75;
}
.home-foot {
  font-size: 10px;
  letter-spacing: 0.08em;
  color: var(--text3);
  opacity: 0.7;
  margin-top: 8px;
  padding-bottom: 4px;
  text-align: center;
}

.tm-facts {
  gap: 6px;
  margin-top: 6px;
}
.tm-fact b {
  max-width: 11em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  display: inline-block;
  vertical-align: bottom;
}
