/* C端：清晰文字、紧凑信息、明确交易日期。颜色统一由主题变量管理。 */
:root {
  color-scheme:light;
  --wash:#f5f7fa; --paper:#fff; --surface:#eef2f7; --ink:#202631; --text:#343e4c;
  --muted:#596575; --line:#e5e7eb; --divider:#eff0f3; --control-line:#cdd1d8; --wine:#c62840; --wine-dark:#a91f35;
  --accent-soft:#fff0f2; --accent-line:#efd7dd; --blue:#275a91; --blue-soft:#edf4fc;
  --warning:#815015; --warning-soft:#fff6e8; --success:#216345; --success-soft:#eaf6ef;
  --shadow-card:0 2px 8px #24354b06; --focus:#b63249;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC",sans-serif;
  --ease:cubic-bezier(.2,.8,.25,1);
}
@media(prefers-color-scheme:dark) {
  :root:not([data-theme=light]) {
  color-scheme:dark;
  --wash:#111720; --paper:#1a2330; --surface:#243142; --ink:#f1f5fa; --text:#dce4ed;
  --muted:#b2c0d0; --line:#38414f; --divider:#2d3542; --control-line:#5c6675; --wine:#ffafbd; --wine-dark:#ffd1d9;
  --accent-soft:#402736; --accent-line:#684554; --blue:#afd1ff; --blue-soft:#223b56;
  --warning:#f1cc94; --warning-soft:#3a3023; --success:#a0ddba; --success-soft:#203b31;
  --shadow-card:none; --focus:#ffafbd;
  }
}
:root[data-theme=dark] {
  color-scheme:dark;
  --wash:#111720; --paper:#1a2330; --surface:#243142; --ink:#f1f5fa; --text:#dce4ed;
  --muted:#b2c0d0; --line:#38414f; --divider:#2d3542; --control-line:#5c6675; --wine:#ffafbd; --wine-dark:#ffd1d9;
  --accent-soft:#402736; --accent-line:#684554; --blue:#afd1ff; --blue-soft:#223b56;
  --warning:#f1cc94; --warning-soft:#3a3023; --success:#a0ddba; --success-soft:#203b31;
  --shadow-card:none; --focus:#ffafbd;
}
* { box-sizing:border-box }
body { margin:0; background:var(--wash); color:var(--text); font-size:15px; line-height:1.75 }
button,input,select,textarea { font:inherit; color:inherit }
button,a,input,select,textarea { -webkit-tap-highlight-color:transparent }
button { cursor:pointer }
button:disabled { cursor:wait; opacity:.6 }
a { color:inherit; text-decoration:none }
button,a { touch-action:manipulation }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible {
  outline:3px solid var(--focus); outline-offset:3px
}
[hidden] { display:none!important }
.sr-only,.skip-link { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap }
.skip-link:focus { position:fixed; top:8px; left:12px; z-index:200; width:auto; height:auto; clip-path:none; padding:10px 20px; background:var(--paper); color:var(--ink); border:2px solid var(--focus) }
h1,h2,h3,strong { color:var(--ink) }
::selection { background:#b9d7ff; color:#162238 }
.muted,.field-help,.no-script-note { color:var(--muted); font-size:13px }
html { container-type:scroll-state }
:target { scroll-margin-top:4rem }
.community-header { min-height:58px; height:auto; display:flex; align-items:center; gap:16px; padding:8px 24px; background:color-mix(in srgb, var(--paper) 94%, transparent); backdrop-filter:blur(12px); border-bottom:1px solid var(--divider); position:sticky; top:0; z-index:60; transition:transform .22s var(--ease) }
@container scroll-state((scrolled: bottom) and (scrollable: top)) {
  .community-header { transform:translateY(-100%) }
}
.community-header.is-hidden:not(:focus-within) { transform:translateY(-100%) }
.community-header:focus-within,.community-header:has(#site-feature-map:is(:popover-open,.\:popover-open)) { transform:none }
.community-brand { display:flex; align-items:center; gap:8px; font-size:19px; font-weight:750; white-space:nowrap; color:var(--ink) }
.community-logo { display:block; width:30px; height:30px }
.header-label { display:none }
.community-nav { display:flex; align-items:center; gap:4px; margin-left:auto; color:var(--muted); font-size:14px }
.community-nav a,.community-nav .site-map-trigger { display:inline-flex; align-items:center; padding:0 13px; border-radius:999px; white-space:nowrap; height:36px; border:0; background:transparent; transition:background .15s ease, color .15s ease }
.community-nav a:hover,.community-nav .site-map-trigger:hover { background:var(--surface); color:var(--ink) }
.community-nav a[aria-current=page] { color:var(--ink); font-weight:700; background:var(--surface) }
.community-nav .site-map-trigger { border:1px solid var(--line); background:var(--paper); color:var(--ink); font-weight:600; font-size:13px; gap:4px }
.community-nav .site-map-trigger:hover { border-color:var(--wine); color:var(--wine) }
.community-nav .nav-upload { margin-left:4px; border:1px solid var(--accent-line); background:var(--accent-soft); color:var(--wine); font-weight:600; font-size:13px }
.community-nav .nav-upload:hover { border-color:var(--wine); background:var(--accent-soft); color:var(--wine-dark) }
.community-nav .nav-create { margin-left:4px; background:#ff2442; color:#fff; font-weight:600; box-shadow:0 2px 8px rgba(255,36,66,.24) }
.community-nav .nav-create::before { content:'＋'; margin-right:3px }
.community-nav .nav-create:hover,.community-nav .nav-create[aria-current=page] { background:#e01e3a; color:#fff }
.site-map-popover { width:min(1080px,calc(100vw - 28px)); max-height:calc(100vh - 84px); margin:66px auto 0; padding:20px 22px; border:1px solid var(--line); border-radius:18px; background:var(--paper); color:var(--text); box-shadow:0 24px 64px rgba(15,23,42,.22); overflow:auto }
@supports (position-area: block-end) {
  .site-map-popover { position-area:block-end span-inline-start; position-try-fallbacks:flip-block, flip-inline, flip-block flip-inline; inset:auto; margin:8px 0 0 }
}
[popover]:is(:popover-open,.\:popover-open) { display:block }
.site-map-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding-bottom:14px; margin-bottom:16px; border-bottom:1px solid var(--divider) }
.site-map-head strong { display:block; font-size:16px; color:var(--ink) }
.site-map-head span { font-size:12.5px; color:var(--muted) }
.site-map-close { width:32px; height:32px; border-radius:50%; border:1px solid var(--line); background:var(--surface); color:var(--muted); display:inline-grid; place-items:center; font-size:14px; flex-shrink:0 }
.site-map-close:hover { color:var(--ink); border-color:var(--control-line) }
.site-map-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px }
.site-map-col { display:flex; flex-direction:column; gap:8px; padding:12px; border-radius:12px; background:var(--wash); border:1px solid var(--divider) }
.site-map-col h3 { margin:0 0 4px; font-size:12px; font-weight:700; color:var(--wine); letter-spacing:.03em; text-transform:uppercase }
.site-map-item { display:flex; flex-direction:column; gap:2px; padding:9px 10px; border-radius:10px; background:var(--paper); border:1px solid transparent; transition:border-color .15s ease, transform .15s ease, box-shadow .15s ease }
.site-map-item:hover { border-color:var(--accent-line); transform:translateY(-1px); box-shadow:0 4px 12px rgba(15,23,42,.06) }
.site-map-item strong { font-size:13.5px; font-weight:650; color:var(--ink) }
.site-map-item span { font-size:11.5px; line-height:1.45; color:var(--muted) }
@media(max-width:960px) { .site-map-grid { grid-template-columns:repeat(2,minmax(0,1fr)) } }
@media(max-width:560px) { .site-map-grid { grid-template-columns:1fr } }
.appearance-control { margin:0; flex-shrink:0 }
.appearance-control select { width:92px; height:36px; padding:0 8px; background:var(--paper); border:1px solid var(--line); border-radius:999px; font-size:12.5px; color:var(--muted); cursor:pointer }
.community-account { display:flex; align-items:center; gap:8px; white-space:nowrap; color:var(--muted); font-size:13px }
.community-account button { border:1px solid var(--line); height:36px; border-radius:999px; padding:0 15px; background:var(--paper); color:var(--ink); font-size:13px; font-weight:600; transition:all .15s ease }
.community-account button:hover { background:var(--surface) }
.community-account .logout-button { padding:0 8px; border:0; background:transparent; color:var(--muted); font-weight:400; font-size:12.5px }
.member-name { color:var(--wine); max-width:100px; overflow:hidden; text-overflow:ellipsis; font-weight:600 }
.member-name:has(span:not(:empty)) { max-width:190px }
.member-name span { font-size:12px; margin-left:4px }
.consumer-main { max-width:1400px; margin:14px auto 36px; padding:0 18px; min-height:70vh }
.saved-banner { padding:14px 18px; background:var(--accent-soft); border:1px solid var(--accent-line); border-radius:12px; margin-bottom:14px }
.saved-banner h1 { margin:0 0 2px; font-size:18px; color:var(--wine) }
.saved-banner p { margin:0; font-size:13px; color:var(--muted) }
.consumer-intro { display:none }
.discovery-bar { display:flex; align-items:center; justify-content:space-between; gap:14px; margin:4px 0 16px; padding:0 }
.tabs-scroll-wrap { flex:1; min-width:0; overflow:hidden }
.channel-tabs,.type-filters,.channel-filters { display:flex; align-items:center; gap:6px; overflow-x:auto; scrollbar-width:none; padding:2px 0 }
.channel-tabs::-webkit-scrollbar,.type-filters::-webkit-scrollbar,.channel-filters::-webkit-scrollbar { display:none }
.tab-pill,.type-filters button,.channel-filters button { border:0; background:transparent; color:var(--muted); border-radius:999px; height:36px; padding:0 15px; font-size:14.5px; font-weight:500; cursor:pointer; white-space:nowrap; transition:all .16s ease; display:inline-flex; align-items:center; justify-content:center }
.tab-pill:hover,.type-filters button:hover,.channel-filters button:hover { background:var(--surface); color:var(--ink) }
.tab-pill[aria-pressed=true],.type-filters button[aria-pressed=true],.channel-filters button[aria-pressed=true] { background:var(--paper); color:var(--ink); font-weight:700; box-shadow:0 2px 8px rgba(15,23,42,.08) }
.bar-actions { display:flex; align-items:center; gap:8px; flex-shrink:0 }
.quick-ladder-pill { display:inline-flex; align-items:center; gap:6px; height:36px; padding:0 13px; border-radius:999px; background:var(--accent-soft); border:1px solid var(--accent-line); color:#ff2442; font-size:12.5px; font-weight:600; white-space:nowrap; text-decoration:none; transition:all .15s ease }
.quick-ladder-pill:hover { border-color:#ff2442; box-shadow:0 2px 8px rgba(255,36,66,.14) }
.pulse-dot { width:7px; height:7px; border-radius:50%; background:#ff2442; animation:pulseDot 1.8s ease infinite }
@keyframes pulseDot { 0%,100% { opacity:1; transform:scale(1) } 50% { opacity:.4; transform:scale(.7) } }
.search-pill-form { position:relative; display:flex; align-items:center; background:var(--paper); border:1px solid var(--line); border-radius:999px; height:36px; padding:0 4px 0 12px; transition:all .2s ease; width:220px; box-shadow:0 1px 3px rgba(15,23,42,.03) }
.search-pill-form:focus-within { border-color:#ff2442; width:260px; box-shadow:0 2px 10px rgba(255,36,66,.14) }
.search-ico { color:var(--muted); margin-right:6px; flex-shrink:0 }
#search-query { border:0; background:transparent; color:var(--ink); font-size:13px; width:100%; outline:none; padding:4px 0 }
#search-query::placeholder { color:var(--muted); opacity:1 }
.search-submit { border:0; background:#ff2442; color:#fff; font-size:12px; font-weight:600; height:28px; padding:0 12px; border-radius:999px; cursor:pointer; white-space:nowrap; transition:background .15s ease }
.search-submit:hover { background:#e01e3a }
.sort-pill-wrap { position:relative; flex-shrink:0 }
#feed-sort { background:var(--paper); border:1px solid var(--line); border-radius:999px; height:36px; padding:0 12px; font-size:12.5px; font-weight:500; color:var(--muted); cursor:pointer; outline:none; box-shadow:0 1px 3px rgba(15,23,42,.03) }
#feed-sort:hover,#feed-sort:focus { border-color:var(--control-line); color:var(--ink) }
.archive-toggle-pill { display:inline-flex; align-items:center; gap:6px; height:36px; padding:0 13px; border-radius:999px; background:var(--paper); border:1px solid var(--line); color:var(--ink); font-size:12.5px; font-weight:600; white-space:nowrap; transition:all .16s ease; box-shadow:0 1px 3px rgba(15,23,42,.03) }
.archive-toggle-pill:hover,.archive-toggle-pill[aria-expanded=true] { border-color:var(--wine); background:var(--accent-soft); color:var(--wine) }
.archive-badge { padding:1px 6px; border-radius:999px; background:var(--surface); color:var(--muted); font-size:11px; font-weight:600 }
.archive-toggle-pill[aria-expanded=true] .archive-badge { background:var(--wine); color:#fff }
.archive-drawer { margin:0 0 18px; padding:16px 18px; border-radius:16px; background:var(--paper); border:1px solid var(--line); box-shadow:0 6px 24px rgba(15,23,42,.06) }
.archive-drawer-head { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-bottom:12px; margin-bottom:14px; border-bottom:1px solid var(--divider); flex-wrap:wrap }
.archive-drawer-title { display:flex; align-items:baseline; gap:10px; flex-wrap:wrap }
.archive-drawer-title strong { font-size:15.5px; color:var(--ink) }
.archive-grid-top { display:grid; grid-template-columns:1.15fr 1fr; gap:12px; margin-bottom:12px }
.archive-card { padding:12px 14px; border-radius:12px; background:var(--wash); border:1px solid var(--divider) }
.archive-sec-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:9px; flex-wrap:wrap }
.archive-sec-head strong { font-size:13.5px; color:var(--ink) }
.archive-inline-search { height:28px; width:170px; padding:0 10px; border:1px solid var(--line); border-radius:999px; background:var(--paper); color:var(--ink); font-size:12px; outline:none }
.archive-inline-search:focus { border-color:#ff2442 }
.archive-chip-cloud,.archive-months-bar,.archive-dates-bar { display:flex; flex-wrap:wrap; gap:6px; max-height:142px; overflow-y:auto; padding:1px }
.archive-months-bar { margin-bottom:8px }
.archive-chip,.archive-month-chip,.archive-date-chip { display:inline-flex; align-items:center; gap:5px; border:1px solid var(--line); border-radius:999px; background:var(--paper); color:var(--text); padding:3px 10px; font-size:12px; line-height:1.4; transition:all .14s ease }
.archive-chip code,.archive-group-head code,.involved-stock-chip code { font:11px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace; color:var(--muted) }
.archive-chip span,.archive-month-chip span,.archive-date-chip span { font-size:11px; color:var(--muted) }
.archive-chip .streak-tag,.involved-stock-chip em { font-style:normal; font-size:10.5px; font-weight:700; padding:0 5px; border-radius:99px; background:var(--accent-soft); color:#ff2442 }
.archive-chip:hover,.archive-month-chip:hover,.archive-date-chip:hover { border-color:var(--wine); color:var(--wine) }
.archive-chip.is-active,.archive-month-chip.is-active,.archive-date-chip.is-active { background:#ff2442; border-color:#ff2442; color:#fff; font-weight:600 }
.archive-chip.is-active strong,.archive-chip.is-active code,.archive-chip.is-active span,.archive-month-chip.is-active span,.archive-date-chip.is-active span { color:#fff }
.archive-chip.is-active .streak-tag { background:#fff; color:#ff2442 }
.ladder-dot { font-style:normal; font-size:10px; font-weight:700; padding:0 4px; border-radius:4px; background:var(--accent-soft); color:#ff2442 }
.archive-date-chip.is-active .ladder-dot { background:#fff; color:#ff2442 }
.archive-tree-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px; flex-wrap:wrap }
.archive-mode-tabs { display:inline-flex; gap:4px; padding:3px; border-radius:999px; background:var(--paper); border:1px solid var(--line) }
.archive-mode-tab { border:0; border-radius:999px; background:transparent; color:var(--muted); padding:5px 13px; font-size:12.5px; font-weight:600; transition:all .15s ease }
.archive-mode-tab[aria-pressed=true] { background:var(--ink); color:var(--paper) }
.archive-tree-pane { display:flex; flex-direction:column; gap:8px; max-height:380px; overflow-y:auto; padding-right:2px }
.archive-group { border:1px solid var(--line); border-radius:10px; background:var(--paper); overflow:hidden }
.archive-group.is-selected { border-color:var(--wine); box-shadow:0 0 0 1px var(--accent-line) }
.archive-group-head { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:9px 12px; cursor:pointer; user-select:none; list-style:none; flex-wrap:wrap }
.archive-group-head::-webkit-details-marker { display:none }
.archive-group-head:hover { background:var(--surface) }
.group-title { display:inline-flex; align-items:center; gap:6px; flex-wrap:wrap; font-size:13.5px }
.theme-pill,.stat-pill { font-size:11px; padding:1px 6px; border-radius:6px; background:var(--surface); color:var(--muted); border:1px solid var(--divider) }
.stat-ladder { background:var(--blue-soft); color:var(--blue) }
.stat-streak { background:var(--accent-soft); color:var(--wine); font-weight:600 }
.group-stats { display:inline-flex; align-items:center; gap:6px; font-size:12px; color:var(--muted) }
.archive-group-body { padding:8px 12px 11px; border-top:1px solid var(--divider); background:var(--wash) }
.archive-group-bar { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:8px; font-size:12px; flex-wrap:wrap }
.archive-drill-btn { border:1px solid var(--accent-line); border-radius:999px; background:var(--accent-soft); color:var(--wine); padding:2px 10px; font-size:11.5px; font-weight:600 }
.archive-drill-btn:hover { border-color:var(--wine); background:var(--wine); color:#fff }
.date-involved-stocks { display:flex; flex-wrap:wrap; gap:5px; margin-bottom:8px }
.involved-stock-chip { display:inline-flex; align-items:center; gap:4px; border:1px solid var(--line); border-radius:6px; background:var(--paper); color:var(--ink); padding:2px 8px; font-size:11.5px }
.involved-stock-chip:hover,.involved-stock-chip.is-active { border-color:#ff2442; color:#ff2442; background:var(--accent-soft) }
.archive-timeline { list-style:none; margin:0; padding:0 0 0 10px; border-left:2px solid var(--accent-line); display:flex; flex-direction:column; gap:6px }
.archive-timeline-item { display:flex; align-items:baseline; gap:7px; flex-wrap:wrap; font-size:12.5px; line-height:1.5; padding:3px 6px; border-radius:6px; background:var(--paper); border:1px solid var(--divider) }
.timeline-date { border:0; border-radius:5px; background:var(--surface); color:var(--ink); font:600 11.5px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace; padding:1px 6px }
.timeline-date:hover,.timeline-date.is-active { background:#ff2442; color:#fff }
.timeline-role { font-size:11px; font-weight:600; padding:1px 6px; border-radius:5px }
.timeline-role.is-ladder { background:var(--accent-soft); color:var(--wine) }
.timeline-role.is-note { background:var(--blue-soft); color:var(--blue) }
.timeline-link { font-weight:600; color:var(--ink); text-decoration:none }
.timeline-link:hover { color:#ff2442; text-decoration:underline }
.timeline-note { font-size:11.5px; color:var(--muted) }
.timeline-stocks { display:inline-flex; flex-wrap:wrap; gap:4px; margin-left:auto }
.mini-stock-link { border:1px solid var(--divider); border-radius:4px; background:var(--surface); color:var(--muted); font-size:11px; padding:0 5px }
.mini-stock-link:hover { border-color:#ff2442; color:#ff2442 }
.archive-empty-note { margin:8px 0; font-size:12.5px; color:var(--muted) }
@media(max-width:960px) { .archive-grid-top { grid-template-columns:1fr } }
.discovery-status { display:flex; align-items:center; gap:10px; padding:6px 12px; margin:0 0 14px; border-radius:999px; background:var(--paper); border:1px solid var(--line); font-size:12.5px; color:var(--muted); width:fit-content }
.feed-count-badge { font-weight:600; color:var(--ink) }
.consumer-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:16px; align-items:start; align-content:start }
.consumer-card { width:100%; min-width:0; display:flex; flex-direction:column; overflow:hidden; border:0; border-radius:14px; background:var(--paper); box-shadow:0 4px 16px rgba(30,40,90,.08); transition:transform .18s ease, box-shadow .18s ease; cursor:pointer; user-select:none }
.consumer-card:hover { transform:translateY(-5px); box-shadow:0 16px 40px rgba(30,40,90,.18) }
.consumer-card:active { transform:scale(.985) }
.consumer-card-link { display:block }
.xhs-cover { position:relative; display:block; height:auto; aspect-ratio:3/4; background:linear-gradient(160deg,#0b1026,#1b2450 48%,#3a2a6b); overflow:hidden }
.xhs-cover img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; display:block; transition:transform .35s ease; color:transparent; font-size:0 }
.consumer-card:hover .xhs-cover img { transform:scale(1.02) }
.xhs-body { padding:10px 11px 12px; display:flex; flex-direction:column }
.xhs-title { display:-webkit-box; -webkit-line-clamp:2; line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; font-size:13.5px; font-weight:600; line-height:1.4; color:var(--ink); text-decoration:none }
.xhs-title:hover { color:#ff2442 }
.timing-chip,.search-match { margin:4px 0 0; font-size:11.5px; color:var(--wine) }
.timing-chip[data-state=unknown],.timing-chip[data-state=unverified] { color:var(--warning) }
.consumer-card .post-tags { display:flex; flex-wrap:wrap; gap:4px; padding:4px 0 0 }
.market-chip,.topic-chip { display:inline-block; font-size:11px; color:var(--muted); border:1px solid var(--line); background:var(--surface); border-radius:6px; padding:1px 6px; line-height:1.5; overflow-wrap:anywhere }
a.market-chip:hover { border-color:#ff2442; color:#ff2442; text-decoration:none }
.ai-badge,.interactive-badge { display:inline-flex; align-items:center; gap:3px; font-size:11px; font-weight:600; border-radius:6px; padding:1px 6px; line-height:1.5; background:#eef2ff; color:#4338ca; border:1px solid #c7d2fe }
.interactive-badge { background:#ecfeff; color:#0e7490; border-color:#a5f3fc }
.xhs-meta { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:9px; font-size:11.5px; color:var(--muted) }
.xhs-author { display:flex; align-items:center; gap:6px; min-width:0; flex:1 }
.xhs-av { width:22px; height:22px; border-radius:50%; flex:none; display:inline-block }
.xhs-nm { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#999; font-size:11.5px }
.xhs-actions { display:flex; align-items:center; gap:6px; flex:none }
.card-discussion,.card-static-link,.card-interactive-link { white-space:nowrap; color:var(--muted); font-weight:500; display:inline-flex; align-items:center; gap:3px; font-size:11.5px; padding:2px 5px; border-radius:6px; transition:color .15s, background .15s }
.card-static-link,.card-interactive-link { font-size:10.5px; border:1px solid var(--divider); background:var(--surface) }
.card-interactive-link { color:#0e7490; border-color:#a5f3fc; background:#ecfeff }
.card-discussion:hover,.card-static-link:hover,.card-interactive-link:hover { color:#ff2442; background:var(--surface); border-color:var(--accent-line); text-decoration:none }
.save-card { position:static; border:0; border-radius:50%; background:transparent; color:var(--muted); width:24px; height:24px; min-height:24px; padding:0; font-size:14px; line-height:1; display:inline-flex; align-items:center; justify-content:center; transition:color .15s, background .15s, transform .12s }
.save-card:hover { color:#ff2442; background:var(--surface) }
.save-card[aria-pressed=true] { color:#ff2442; font-weight:700 }
.consumer-empty,.saved-unavailable { padding:36px 24px; background:var(--paper); border:1px solid var(--line); border-radius:14px; color:var(--muted) }
.consumer-empty { text-align:center }
.consumer-empty strong { font-size:22px; color:var(--ink) }
.consumer-empty p { font-size:15px }
.saved-unavailable { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:14px 0; font-size:14px }
#saved-extras>button { margin:0 0 14px }
.text-link { color:var(--wine); border:0; background:transparent; font-size:14px; cursor:pointer; padding:6px 0 }
.text-link:hover { text-decoration:underline }
.feed-more { display:flex; justify-content:center; gap:15px; margin:26px 0 }
.primary-button,.outline-button { display:inline-flex; justify-content:center; align-items:center; gap:6px; min-height:42px; border:1px solid #c62840; background:#c62840; color:#fff; border-radius:9px; padding:9px 18px; font-size:14px; font-weight:600 }
.primary-button:hover { background:#a91f35 }
.outline-button { background:var(--paper); color:var(--text); border-color:var(--line); font-weight:500 }
.outline-button:hover { background:var(--surface); border-color:var(--muted) }
.consumer-footer { display:flex; flex-wrap:wrap; align-items:center; gap:16px; max-width:1240px; margin:32px auto 0; padding:22px 28px; border-top:1px solid var(--line); font-size:13px; color:var(--muted) }
.consumer-footer>a:first-child { font-size:18px; font-weight:700; color:var(--ink) }
.consumer-footer span { margin-right:auto }
.consumer-footer a:hover { color:var(--wine) }
.quick-fab { position:fixed; right:22px; bottom:24px; z-index:48; display:flex; flex-direction:column; gap:8px; align-items:flex-end }
.fab-btn { display:inline-flex; align-items:center; gap:5px; height:38px; padding:0 14px; border-radius:999px; border:1px solid var(--line); background:color-mix(in srgb, var(--paper) 95%, transparent); backdrop-filter:blur(10px); color:var(--ink); font-size:12.5px; font-weight:650; box-shadow:0 6px 20px rgba(15,23,42,.12); transition:transform .15s ease, border-color .15s ease, color .15s ease }
.fab-btn:hover { transform:translateY(-2px); border-color:var(--wine); color:var(--wine) }
.fab-upload { border-color:var(--accent-line); background:var(--accent-soft); color:var(--wine) }
.v-pager { display:inline-flex; align-items:center; gap:4px; padding:2px 4px; border-radius:999px; background:var(--surface); border:1px solid var(--divider) }
.v-pager .v-ico { width:28px; height:28px; font-size:11px; border:0; background:transparent }
.v-pager .v-ico:disabled { opacity:.35; cursor:not-allowed }
.v-progress { font-size:11.5px; color:var(--muted); padding:0 4px; font-variant-numeric:tabular-nums }
/* 阅读外壳和独立正文分开：外壳以日期、时效与回访路径为主。 */
.reader-context { max-width:1360px; margin:20px auto 0; padding:0 24px; display:flex; flex-wrap:wrap; align-items:center; gap:10px 18px }
.reader-back { font-size:13px }
.reader-context h1 { font-size:23px; line-height:1.5; margin:0; flex:1; color:var(--ink) }
.reader-context>p { display:none }
.market-timing { display:flex; flex-wrap:wrap; gap:4px 18px; flex-basis:100%; border:1px solid var(--line); background:var(--paper); border-radius:10px; padding:10px 14px; margin:0; font-size:13px; color:var(--muted) }
.market-timing strong { color:var(--wine) }
.market-timing[data-state=unknown],.market-timing[data-state=unverified] { background:var(--warning-soft) }
.market-timing[data-state=unknown] strong,.market-timing[data-state=unverified] strong { color:var(--warning) }
.market-timing span { overflow-wrap:anywhere }
.ladder-navigation { display:flex; align-items:center; flex-wrap:wrap; gap:8px 14px; font-size:13px; color:var(--muted) }
.ladder-navigation a { color:var(--wine); padding:6px 0 }
.ladder-navigation label { display:flex; align-items:center; gap:8px; white-space:nowrap }
.ladder-navigation select { border:1px solid var(--control-line); border-radius:7px; padding:7px; background:var(--paper); color:var(--ink); font-size:14px; min-height:38px }
.version-details,.related-stocks { font-size:13px; color:var(--muted); margin:0 }
.version-details { margin-left:auto }
.version-details summary,.related-stocks summary { cursor:pointer; min-height:34px; padding:6px 0 }
.version-details p { max-width:470px; margin:8px 0 }
.related-stocks>div,.related-topics { display:flex; flex-wrap:wrap; gap:7px }
.related-topics:empty { display:none }
.detail-layout { display:grid; grid-template-columns:minmax(0,1fr) 370px; max-width:1360px; padding:0 24px; margin:16px auto 24px; gap:16px; align-items:start }
.visual-pane { display:flex; flex-direction:column; min-width:0; background:var(--paper); border:1px solid var(--line); border-radius:14px; overflow:hidden }
.canvas-toolbar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; background:var(--paper); padding:10px 14px; border-bottom:1px solid var(--divider) }
.canvas-toolbar strong { font-size:14px; color:var(--ink) }
.zoom-controls { display:flex; align-items:center; gap:4px }
.zoom-controls label { border:1px solid var(--line); border-radius:7px; background:var(--paper); color:var(--text); font-size:12px; min-height:36px; padding:6px 9px; cursor:pointer }
.zoom-controls input:checked+label { border-color:#c62840; background:#c62840; color:#fff }
.zoom-controls input:focus-visible+label { outline:3px solid var(--focus); outline-offset:2px }
.canvas-viewport { position:relative; flex:none; height:calc(var(--reader-height, 640px) * var(--reader-scale, 1)); min-height:0; overflow:hidden; background:var(--paper) }
.html-canvas { position:absolute; top:0; left:0; width:calc(100% / var(--reader-scale, 1)); height:var(--reader-height, 640px); transform:scale(var(--reader-scale, 1)); transform-origin:0 0; background:var(--paper); border:0; display:block }
.visual-pane:has(#expand-html:checked) { position:fixed; inset:12px; z-index:100; display:flex; flex-direction:column; border-radius:14px; box-shadow:0 0 0 30px #0009 }
.visual-pane:has(#expand-html:checked) { display:block; overflow:auto; overscroll-behavior:contain }
.visual-pane:has(#expand-html:checked) .canvas-toolbar { position:sticky; top:0; z-index:2 }
.visual-pane:has(#expand-html:checked) .canvas-viewport { height:calc(var(--reader-height, 640px) * var(--reader-scale, 1)); min-height:0; flex:none; touch-action:auto }
html.reader-expanded,html:has(dialog[open]) { overflow:hidden }
.discussion-pane { display:flex; flex-direction:column; min-width:0; background:var(--paper); border:1px solid var(--line); border-radius:14px; height:auto; max-height:none; min-height:0; overflow:visible; position:static }
.discussion-label,.author-header,.comment-heading-row,.comment-composer { flex-shrink:0; background:var(--paper) }
.discussion-label { display:flex; align-items:center; gap:8px; padding:12px 16px; border-bottom:1px solid var(--divider) }
.discussion-label>span { display:none }
.discussion-label>strong { font-size:15px; margin-right:auto; color:var(--ink) }
.discussion-tools { display:flex; gap:8px; align-items:center }
.discussion-tools button { border:0; border-radius:7px; background:var(--surface); color:var(--text); min-height:36px; padding:5px 9px; font-size:13px; white-space:nowrap }
.discussion-tools button[aria-pressed=true] { color:var(--wine); background:var(--accent-soft) }
.author-header { display:flex; align-items:center; gap:10px; padding:14px 16px; border-bottom:1px solid var(--divider) }
.avatar,.comment .avatar { display:inline-grid; place-items:center; width:34px; height:34px; border:0; border-radius:50%; color:var(--wine); background:var(--accent-soft); flex-shrink:0 }
.author-name { font-size:14px; color:var(--ink); font-weight:600 }
.author-header .muted { font-size:12px; color:var(--muted) }
.post-caption,.discussion-context,.discussion-footer { display:none }
.comment-heading-row { display:flex; align-items:center; gap:10px; padding:8px 16px }
.comment-heading { margin-right:auto; padding:0; border:0; font-size:13px; color:var(--muted) }
.write-comment-link { border:0; background:none; min-height:38px; padding:6px 0; color:var(--wine); font-size:13px; white-space:nowrap }
.comment-list { flex:none; min-height:90px; overflow:visible; padding:0 16px 16px }
.comment-node { border-color:var(--line) }
.comment-node .comment { display:flex; align-items:flex-start; gap:9px; padding:14px 0 5px; border:0 }
.comment .avatar { width:28px; height:28px; font-size:12px }
.comment-body { min-width:0; flex:1 }
.comment-body strong { font-size:13px; color:var(--ink); font-weight:600 }
.comment-body p { font-size:15px; line-height:1.85; color:var(--text); white-space:pre-wrap; overflow-wrap:anywhere; margin:5px 0 }
.comment-body time,.comment-context { font-size:12px; color:var(--muted) }
.comment-actions { display:flex; flex-wrap:wrap; gap:12px; padding:0 0 8px 37px; border-bottom:1px solid var(--divider) }
.comment-actions button,.load-replies { font-size:13px; color:var(--blue); min-height:36px; padding:5px 0; border:0; background:transparent }
.comment-actions button:hover,.write-comment-link:hover { text-decoration:underline }
.comment-children { border-left:1px solid var(--line); margin-left:9px; padding-left:10px }
.comment-composer { position:static; padding:12px 16px 16px; border-top:1px solid var(--line) }
.comment-composer textarea { width:100%; font-size:15px; line-height:1.8; color:var(--ink); background:var(--wash); border:1px solid var(--control-line); border-radius:9px; padding:10px 12px; min-height:85px; max-height:180px; resize:vertical }
.comment-composer textarea::placeholder { color:var(--muted); opacity:1 }
.comment-composer p { font-size:13px; color:var(--muted); margin:4px 0 }
.comment-composer #reply-target:empty,.comment-composer #viewer-message:empty { display:none }
.comment-composer #viewer-message { color:var(--wine) }
.account-buttons { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-bottom:8px; font-size:12px; color:var(--muted) }
.account-buttons button,.composer-actions button { background:#c62840; color:#fff; border:1px solid #c62840; border-radius:8px; min-height:40px; padding:7px 13px; font-size:14px; font-weight:600 }
.account-buttons .quiet { border-color:var(--accent-line); background:var(--accent-soft); color:var(--wine) }
.composer-actions { display:flex; justify-content:flex-end; align-items:center; gap:10px; margin-top:8px }
.composer-actions #clear-reply { background:var(--paper); color:var(--muted); border-color:var(--line) }
.draft-indicator { margin-right:auto; font-size:12px; color:var(--muted) }
.reply-preview { border-left:3px solid var(--wine); background:var(--accent-soft); padding:8px 10px; margin-bottom:8px!important }
.reply-preview span { display:block; font-size:12px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
.comment-highlight { background:var(--accent-soft); outline:2px solid var(--accent-line); border-radius:8px; scroll-margin-top:90px }
.discussion-pane[aria-busy=true] .comment-list { opacity:.6 }
.mobile-reader-nav { display:none }
.community-footer { max-width:1360px; margin:auto; padding:0 24px 24px; color:var(--muted); font-size:13px }
.consumer-toast { position:fixed; bottom:24px; left:50%; transform:translateX(-50%); z-index:200; max-width:calc(100vw - 32px); width:max-content; padding:12px 20px; background:#202631; color:#fff; border:1px solid #738296; border-radius:10px; font-size:14px; box-shadow:0 5px 25px #0002 }
/* 登录、分享、微弹窗使用同一套表面与文字色。 */
.consumer-dialog { width:min(540px,calc(100vw - 24px)); max-width:calc(100vw - 24px); max-height:calc(100svh - 24px); overflow:auto; border:1px solid var(--line); border-radius:16px; padding:28px 32px; background:var(--paper); color:var(--text); box-shadow:0 20px 80px #0004 }
.auth-phone-box { margin-top:4px; padding:0; border:0; background:transparent }
.auth-phone-box .phone-number-field,.auth-phone-box input { background:var(--wash) }
.consumer-dialog::backdrop,.micro-dialog::backdrop { background:#14203288; backdrop-filter:blur(2px) }
.dialog-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:8px; position:sticky; top:-26px; z-index:3; padding:8px 0; background:var(--paper) }
.consumer-dialog h2 { color:var(--ink); font-size:24px; line-height:1.5; margin:0 }
.dialog-close { width:40px; height:40px; border:0; background:transparent; color:var(--muted); font-size:25px; flex-shrink:0 }
.consumer-dialog label { display:block; font-size:14px; margin:16px 0 6px; color:var(--text) }
.consumer-dialog input { width:100%; min-height:46px; border:1px solid var(--control-line); border-radius:9px; background:var(--wash); padding:10px 12px; color:var(--ink); font-size:16px }
.consumer-dialog input::placeholder { color:var(--muted); opacity:1 }
.consumer-dialog .field-help { font-size:13px; color:var(--muted); margin:5px 0 }
.password-field { display:flex; border:1px solid var(--line); border-radius:9px; background:var(--wash); align-items:center; overflow:hidden }
.password-field input { border:0; min-width:0 }
.password-field button { border:0; background:transparent; color:var(--blue); min-width:56px; min-height:44px; font-size:13px }
.auth-error,.form-error { color:var(--wine); font-size:14px; min-height:1.5em; margin:10px 0 }
.auth-submit,.share-copy { width:100% }
.auth-switch { margin:16px 0 0; text-align:center; font-size:14px; color:var(--muted) }
.auth-switch button { color:var(--wine); border:0; background:transparent; min-height:40px; padding:0 6px; font-size:14px }
.consumer-dialog .login-intro { font-size:14px; color:var(--muted); margin:0 0 14px }
.share-copy { margin-top:15px }
.recovery-code { display:block; width:100%; border:1px solid var(--line); border-radius:9px; padding:13px; font:14px/1.8 monospace; overflow-wrap:anywhere; user-select:all; background:var(--wash); color:var(--ink); margin:15px 0 }
.forgot-password { min-height:40px; margin-top:8px }
.phone-dialog { width:min(540px,calc(100vw - 24px)) }
.phone-dialog h2 { font-size:22px }
.phone-dialog label { display:block; font-size:14px; margin:14px 0 7px }
.phone-number-field { display:flex; align-items:center; gap:10px; padding-left:12px; border:1px solid var(--line); border-radius:9px; background:var(--wash) }
.phone-number-field input { border:0; min-width:0; padding-left:0 }
.phone-number-field>span { color:var(--muted); font-size:14px }
.sms-code-row { display:flex; align-items:stretch; gap:10px }
.sms-code-row input { flex:1; min-width:0 }
.sms-send-btn { flex-shrink:0; min-width:118px; min-height:46px; padding:0 16px; border-radius:9px; font-weight:600; white-space:nowrap }
.captcha-modal { width:min(410px,calc(100vw - 24px)); padding:0; border:1px solid var(--line); border-radius:16px; background:var(--paper); color:var(--text); box-shadow:0 28px 80px rgba(0,0,0,.45); overflow:hidden }
.captcha-modal::backdrop { background:rgba(15,23,42,.52); backdrop-filter:blur(3px) }
.captcha-popover-card { padding:18px 20px }
.captcha-popover-head { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:12px }
.captcha-popover-head .captcha-prompt { margin:0; font-size:15px }
.captcha-popover-tools { display:flex; align-items:center; gap:10px; flex-shrink:0 }
.captcha-popover-close { border:0; background:transparent; color:var(--muted); font-size:20px; line-height:1; padding:4px; cursor:pointer }
.captcha-popover-foot { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:10px }
.phone-send { margin:12px 0; width:100% }
.phone-demo { padding:12px; border:1px solid var(--accent-line); border-radius:9px; background:var(--accent-soft); font-size:13px; margin:8px 0 14px }
.phone-demo-head { display:flex; align-items:center; justify-content:space-between; gap:8px; flex-wrap:wrap }
.phone-demo p { margin:5px 0 }
.phone-demo code { font-size:21px; font-weight:700; color:var(--wine); letter-spacing:3px }
.phone-dialog #phone-confirm { width:100% }
.phone-dialog #phone-message { color:var(--muted); font-size:13px }
.phone-dialog #phone-message.is-error { color:var(--wine) }
.captcha-actions { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-top:14px }
.captcha-actions .outline-button { min-height:38px; padding:7px 10px; font-size:13px }
.captcha-prompt { margin:12px 0 8px; color:var(--ink); font-weight:650; font-size:17px }
.captcha-prompt:empty { display:none }
.captcha-board { position:relative; width:100%; max-width:380px; margin:0 auto; aspect-ratio:32/19; border:1px solid var(--line); border-radius:9px; overflow:hidden; cursor:crosshair; touch-action:manipulation; user-select:none }
.captcha-board img { display:block; width:100%; height:100%; object-fit:fill; pointer-events:none }
.captcha-marker { position:absolute; transform:translate(-50%,-50%); display:grid; place-items:center; width:25px; height:25px; border:2px solid #fff; border-radius:50%; background:#c62840; color:#fff; font:700 13px/1 sans-serif; pointer-events:none; box-shadow:0 1px 4px #0005 }
.captcha-cursor { display:none; position:absolute; top:50%; left:50%; width:20px; height:20px; border:2px solid #202631; outline:2px solid #fff; transform:translate(-50%,-50%); pointer-events:none }
.captcha-feedback { position:absolute; top:12px; left:50%; z-index:2; max-width:86%; padding:7px 16px; border-radius:999px; font-weight:700; font-size:14px; line-height:1.45; text-align:center; box-shadow:0 2px 12px #0005; pointer-events:none; animation:captcha-feedback-in .18s ease-out; transform:translateX(-50%) }
.captcha-feedback.is-ok { background:#15823e; color:#fff }
.captcha-feedback.is-err { background:#c62840; color:#fff }
@keyframes captcha-feedback-in { from { opacity:0; transform:translate(-50%,-6px) } to { opacity:1; transform:translate(-50%,0) } }
.captcha-board:focus-visible { outline:3px solid var(--focus); outline-offset:3px }
.captcha-board:focus-visible .captcha-cursor { display:block }
.micro-dialog { width:min(440px,calc(100vw - 24px)); padding:0; border:1px solid var(--line); border-radius:14px; background:var(--paper); color:var(--text); box-shadow:0 24px 80px #0005 }
.micro-dialog-card { margin:0 }
.micro-dialog-head { display:flex; align-items:center; justify-content:space-between; padding:18px 20px 0 }
.micro-dialog-head h3 { margin:0; font-size:18px; color:var(--ink) }
.micro-dialog-close { border:0; background:transparent; font-size:24px; min-width:40px; min-height:40px; color:var(--muted) }
.micro-dialog-body { padding:10px 20px 2px; font-size:15px; line-height:1.75; color:var(--text) }
.micro-dialog-message { margin:0 }
.micro-dialog-label { margin:10px 0 2px; font-size:14px; color:var(--muted) }
.micro-dialog-body input,.micro-dialog-body textarea { width:100%; margin-top:8px; font:inherit; font-size:16px; color:var(--ink); border:1px solid var(--line); border-radius:9px; background:var(--wash); padding:10px 12px }
.micro-dialog-body textarea { resize:vertical; min-height:96px }
.micro-dialog-actions { display:flex; justify-content:flex-end; gap:10px; padding:16px 20px 20px }
.micro-dialog-btn { min-height:42px; padding:8px 16px; border-radius:9px; font:inherit; font-size:14px; cursor:pointer; border:1px solid var(--line) }
.micro-dialog-ok { background:#c62840; border-color:#c62840; color:#fff; font-weight:600 }
.micro-dialog-cancel,.micro-dialog-copy { background:var(--paper); color:var(--text) }
.micro-dialog-copy { margin-top:8px; color:var(--wine); border-color:var(--accent-line) }
.micro-danger .micro-dialog-ok { background:#b02c3b; border-color:#b02c3b }
/* ai_xhs 全屏与浮窗快览详情层 */
.viewer { position:fixed; inset:0; z-index:1000; display:none; align-items:center; justify-content:center; padding:0 }
.viewer.open { display:flex }
.v-mask { position:fixed; inset:0; background:rgba(0,0,0,.55); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); animation:vFadeIn .22s ease }
.v-sheet { position:relative; z-index:1; width:100%; height:100%; background:#0a0f1f; border-radius:0; overflow:hidden; display:flex; flex-direction:column; box-shadow:none; border:0; animation:vPopIn .28s cubic-bezier(.22,1,.36,1) }
.viewer.restore { padding:24px }
.viewer.restore .v-sheet { width:min(880px,100%); height:min(92vh,900px); border-radius:18px; box-shadow:0 30px 80px rgba(0,0,0,.6) }
@keyframes vFadeIn { from { opacity:0 } to { opacity:1 } }
@keyframes vPopIn { from { opacity:0; transform:scale(.985) } to { opacity:1; transform:none } }
.v-bar { flex:none; height:56px; display:flex; align-items:center; gap:10px; padding:0 14px; background:var(--paper); border-bottom:1px solid var(--divider); color:var(--ink) }
.v-ico { width:32px; height:32px; flex:none; border:0; border-radius:50%; background:var(--surface); color:var(--text); display:inline-flex; align-items:center; justify-content:center; cursor:pointer; transition:background .18s, transform .12s; padding:0 }
.v-ico:hover { background:var(--line); color:var(--ink) }
.v-ico:active { transform:scale(.94) }
#vMax .ico-min { display:none }
.viewer.restore #vMax .ico-max { display:none }
.viewer.restore #vMax .ico-min { display:block }
.v-open { flex:none; border:1px solid #ff2442; color:#ff2442; background:var(--paper); font-size:12px; font-weight:600; padding:5px 12px; border-radius:999px; cursor:pointer; text-decoration:none; transition:all .18s }
.v-open:hover { background:#fff0f2 }
.v-author { display:flex; align-items:center; gap:9px; min-width:0; flex:1 }
.v-av { width:30px; height:30px; border-radius:50%; flex:none; background:linear-gradient(135deg,#ff7eb3,#ff2442) }
.v-who { display:flex; align-items:baseline; gap:8px; min-width:0; overflow:hidden }
.v-name { font-size:14px; font-weight:600; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
.v-sub { font-size:11.5px; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
.v-actions { display:flex; align-items:center; gap:8px; flex:none }
.v-stage { position:relative; flex:1; min-height:0; background:#05070f; display:flex; overflow:hidden }
#vFrame { flex:1; min-width:0; width:100%; height:100%; border:0; display:block; background:#05070f }
.v-drawer { width:360px; max-width:42vw; height:100%; background:var(--paper); color:var(--text); border-left:1px solid var(--divider); display:flex; flex-direction:column; z-index:3; box-shadow:-8px 0 28px rgba(0,0,0,.22) }
.v-drawer-head { flex:none; height:48px; padding:0 14px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--divider); font-size:14px; color:var(--ink) }
.v-drawer-list { flex:1; min-height:0; overflow-y:auto; padding:12px 14px }
.v-drawer-empty { margin:32px 0; text-align:center; color:var(--muted); font-size:13px }
.v-comment-item { display:flex; gap:10px; padding:11px 0; border-bottom:1px solid var(--divider) }
.v-comment-item:last-child { border-bottom:0 }
.v-comment-av { width:28px; height:28px; border-radius:50%; background:var(--accent-soft); color:#ff2442; font-size:12px; font-weight:700; display:inline-grid; place-items:center; flex:none }
.v-comment-body { flex:1; min-width:0 }
.v-comment-meta { display:flex; align-items:center; justify-content:space-between; gap:8px; font-size:12px }
.v-comment-meta strong { color:var(--ink); font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap }
.v-comment-meta time { color:var(--muted); font-size:11px; flex:none }
.v-comment-body p { margin:4px 0 6px; font-size:13.5px; line-height:1.65; color:var(--text); white-space:pre-wrap; overflow-wrap:anywhere }
.v-comment-acts button { border:0; background:transparent; color:var(--muted); font-size:11.5px; padding:2px 0; cursor:pointer }
.v-comment-acts button:hover { color:#ff2442 }
.v-comment-children { margin-top:8px; padding-left:12px; border-left:2px solid var(--divider) }
.v-comment-children .v-comment-item { padding:7px 0; border-bottom:0 }
.v-comment-children .v-comment-av { width:22px; height:22px; font-size:10.5px }
.v-drawer-more { display:block; margin-top:10px; padding:8px; text-align:center; font-size:12px; color:#ff2442; background:var(--accent-soft); border-radius:8px }
.v-drawer-form { flex:none; padding:10px 12px; border-top:1px solid var(--divider); background:var(--paper) }
.v-reply-hint { display:flex; align-items:center; justify-content:space-between; font-size:12px; color:#ff2442; background:var(--accent-soft); padding:4px 10px; border-radius:6px; margin-bottom:8px }
.v-reply-hint button { border:0; background:transparent; color:var(--muted); font-size:11.5px; cursor:pointer }
.v-drawer-input-row { display:flex; align-items:center; gap:8px }
.v-drawer-input-row input { flex:1; min-width:0; height:36px; border:1px solid var(--line); border-radius:18px; background:var(--wash); color:var(--ink); padding:0 14px; font-size:13px; outline:none }
.v-drawer-input-row input:focus { border-color:#ff2442 }
.v-send-btn { flex:none; height:36px; padding:0 14px; border:0; border-radius:18px; background:#ff2442; color:#fff; font-size:13px; font-weight:600; cursor:pointer }
.v-send-btn:hover { background:#e01e3a }
.v-loading { position:absolute; inset:0; z-index:2; display:flex; align-items:center; justify-content:center; gap:10px; color:#9fb0d0; font-size:14px; background:#05070f; pointer-events:none; transition:opacity .2s ease }
.v-loading.hide { display:none }
.v-loading .spin { width:20px; height:20px; border-radius:50%; border:2px solid rgba(25,230,255,.3); border-top-color:#19e6ff; animation:vSpin .8s linear infinite }
@keyframes vSpin { to { transform:rotate(360deg) } }
.v-foot { flex:none; display:flex; align-items:center; gap:12px; padding:9px 14px; padding-bottom:calc(9px + env(safe-area-inset-bottom)); background:var(--paper); color:var(--text); border-top:1px solid var(--divider) }
.v-input { flex:1; min-width:0; height:36px; border-radius:18px; background:var(--surface); color:var(--muted); font-size:13px; display:flex; align-items:center; padding:0 14px; text-decoration:none; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; transition:background .18s }
.v-input:hover { background:var(--line); color:var(--ink) }
.v-acts { display:flex; align-items:center; gap:12px; flex:none }
.v-act { border:0; background:var(--surface); color:var(--text); padding:6px 12px; border-radius:999px; font-size:12.5px; cursor:pointer; display:inline-flex; align-items:center; gap:4px; text-decoration:none; transition:all .16s }
.v-act:hover { background:var(--line); color:var(--ink) }
.v-act.active,.v-act[aria-pressed=true] { color:#ff2442; background:var(--accent-soft); font-weight:600 }
@media(max-width:1100px) {
  .community-header { gap:10px; padding:12px 20px }
  .community-nav a { padding:9px }
  .consumer-grid { grid-template-columns:repeat(4,minmax(0,1fr)) }
  .intro-create { display:none }
  .detail-layout { grid-template-columns:minmax(0,1fr) 340px; padding:0 16px; gap:12px }
}
@media(max-width:880px) {
  .consumer-grid { grid-template-columns:repeat(3,minmax(0,1fr)) }
}
@media(max-width:760px) {
  .dialog-heading { top:-22px }
  .community-header { padding:12px 16px 8px; flex-wrap:wrap; gap:8px; min-height:0 }
  .community-brand { font-size:21px; margin-right:auto }
  .community-logo { width:32px; height:32px; font-size:22px }
  .appearance-control select { width:82px; min-height:36px; font-size:12px }
  .community-account { gap:5px }
  .community-account button { min-height:38px; padding:7px 10px; font-size:13px }
  .community-account .logout-button { font-size:12px; padding:4px }
  .member-name { display:inline-flex; align-items:center; max-width:66px; font-size:12px }
  .member-name:has(span:not(:empty)) { max-width:96px }
  .member-name span:empty { display:none }
  .member-name span:not(:empty) { display:inline-block; font-size:0; margin-left:4px; flex-shrink:0 }
  .member-name span:not(:empty)::after { content:attr(data-count); display:inline-block; padding:1px 5px; border-radius:99px; background:var(--wine); color:#fff; font-size:11px; font-weight:700; line-height:1.3 }
  .community-nav { order:3; flex-basis:100%; margin:0; justify-content:flex-start; gap:4px; font-size:13px; overflow-x:auto; scrollbar-width:none; -webkit-overflow-scrolling:touch; max-width:100% }
  .community-nav::-webkit-scrollbar { display:none }
  .community-nav a, .community-nav .site-map-trigger { min-height:36px; padding:0 10px; font-size:12.5px; flex-shrink:0 }
  .consumer-main { padding:0 16px; margin:18px auto }
  .consumer-intro { padding:18px; flex-wrap:wrap; gap:14px; margin-bottom:18px; border-radius:12px }
  .consumer-intro h1 { font-size:24px }
  .consumer-intro p { font-size:14px }
  .latest-ladder { width:100%; grid-template-columns:1fr auto; padding:10px 12px }
  .latest-ladder strong { grid-column:1; font-size:14px }
  .latest-ladder time { grid-column:2; grid-row:1; font-size:16px }
  .latest-ladder small { grid-column:1/3; grid-row:2 }
  .latest-ladder .ladder-overview { grid-row:2 }
  .latest-ladder small[data-timing-root] { grid-row:3 }
  .latest-ladder>span:last-child { display:none }
  .discovery-bar { flex-wrap:wrap; gap:10px; margin:4px 0 14px }
  .tabs-scroll-wrap { flex-basis:100%; order:1 }
  .bar-actions { flex-basis:100%; order:2; justify-content:space-between; gap:8px }
  .search-pill-form { flex:1; width:auto }
  .search-pill-form:focus-within { width:auto }
  .create-post-btn { padding:0 12px; font-size:13px }
  .results-heading h2 { font-size:17px }
  .consumer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px }
  .xhs-body { padding:9px 10px 11px }
  .xhs-title { font-size:13.5px }
  .save-card,.card-discussion { min-height:28px; font-size:12px }
  .viewer.restore { padding:0 }
  .viewer.restore .v-sheet { width:100vw; height:100vh; border-radius:0 }
  .v-max { display:none }
  .v-drawer { position:absolute; inset:auto 0 0 0; width:100%; max-width:100%; height:64vh; border-left:0; border-top:1px solid var(--divider); border-radius:16px 16px 0 0; box-shadow:0 -12px 36px rgba(0,0,0,.35) }
  .consumer-footer { padding:20px 16px; gap:12px; margin-top:24px }
  .consumer-footer span { flex-basis:100%; order:3 }
  .reader-context { padding:0 14px; margin:12px auto 0; gap:6px 12px }
  .reader-context h1 { flex-basis:100%; font-size:21px; margin:0 }
  .reader-context>.reader-back { font-size:13px }
  .market-timing { padding:8px 10px; font-size:12px; gap:2px 12px }
  .market-timing strong { flex-basis:100% }
  .ladder-navigation { font-size:12px; gap:12px; flex-basis:100% }
  .ladder-navigation label { gap:5px }
  .ladder-navigation select { font-size:13px; padding:6px; min-height:36px; max-width:130px }
  .ladder-boundary { display:none }
  .version-details { margin-left:0; font-size:12px }
  .version-details summary { font-size:12px }
  .related-stocks { flex-basis:100%; font-size:12px }
  .related-stocks summary { min-height:30px; padding:3px 0 }
  .reader-context>.related-topics { flex-basis:100% }
  .detail-layout { display:block; padding:0 10px; margin:10px auto 86px }
  .visual-pane { border-radius:10px }
  .canvas-toolbar { padding:8px 10px; gap:5px }
  .canvas-toolbar strong { font-size:13px }
  .zoom-controls { gap:3px }
  .zoom-controls label { font-size:12px; padding:7px 6px; min-height:36px }
  .canvas-viewport { min-height:0; height:calc(var(--reader-height, 640px) * var(--reader-scale, 1)); flex:none }
  .discussion-pane { position:static; height:auto; max-height:none; min-height:0; border-radius:12px; margin-top:12px; overflow:visible }
  .discussion-tools { display:none }
  .discussion-context { display:flex; flex-direction:column; gap:4px; padding:12px 16px; border-bottom:1px solid var(--line); background:var(--paper) }
  .discussion-context strong { font-size:16px; color:var(--ink) }
  .discussion-context span { font-size:12px; color:var(--muted) }
  .discussion-context button { align-self:flex-start; border:0; background:transparent; color:var(--wine); font-size:13px; min-height:38px; padding:5px 0 }
  .comment-list { overflow:visible; padding:0 16px 14px; min-height:100px }
  .comment-body p { font-size:15px; color:var(--text) }
  .comment-actions button { min-height:40px }
  .comment-composer textarea { font-size:16px; min-height:95px }
  .comment-composer { border-radius:0 0 12px 12px }
  .composer-actions button { min-height:44px }
  .reader-enhanced .detail-layout[data-mobile-view=read] .discussion-pane { display:none }
  .reader-enhanced .detail-layout[data-mobile-view=discussion] .visual-pane { display:none }
  .reader-enhanced .detail-layout[data-mobile-view=discussion] .discussion-pane { margin-top:0 }
  .reader-context:has(+.detail-layout[data-mobile-view=discussion])>:not(.reader-back) { display:none }
  .mobile-reader-nav { position:fixed; bottom:0; left:0; right:0; z-index:70; display:flex; background:var(--paper); border-top:1px solid var(--line); padding:6px 8px max(6px,env(safe-area-inset-bottom)) }
  .mobile-reader-nav button { flex:1; min-height:44px; border:0; border-radius:8px; background:transparent; color:var(--text); font-size:14px; padding:6px }
  .mobile-reader-nav button[aria-pressed=true] { color:var(--wine); background:var(--accent-soft); font-weight:650 }
  .mobile-reader-nav span { font-size:12px }
  .community-footer { padding:0 16px 88px; font-size:12px }
  .consumer-toast { bottom:82px }
  .visual-pane:has(#expand-html:checked) { inset:0; border-radius:0 }
  .consumer-dialog { padding:22px; border-radius:14px }
  .micro-dialog-actions { padding:14px 16px 16px }
}
@media(max-width:360px) {
  .community-header { padding-left:10px; padding-right:10px }
  .community-brand { font-size:19px; gap:6px }
  .appearance-control select { width:70px }
  .community-account button { padding:6px 8px; font-size:12px }
  .community-nav a { padding:8px 6px }
  .type-filters button { padding:8px 7px; font-size:12px }
  .sort-label select { max-width:92px }
  .consumer-main { padding:0 12px }
  .canvas-toolbar strong { width:100% }
}
.visual-pane:has(#expand-html:checked) iframe.html-canvas { pointer-events:auto }
@media(prefers-reduced-motion:reduce) {
  * { scroll-behavior:auto!important; transition:none!important; animation:none!important }
}
