/* xiaonan-chat-panel.css — 问小南 inside the 小南 panel (operator 2026-10-27: one panel). The left rail picks the topic,
   the right pane shows the item's detail and, under it, this dock: AI label line, the material 小南 reads, the
   conversation (grows, then scrolls inside), starter prompts and the input. Phones: tapping a row opens a full-screen
   sheet holding the same reader + dock. Tokens follow design-principles.md (radius ≤4, 15–16 px reading text, --muted
   #57534e, accent only on 问小南 / 发送, no market red/green). */
.xnc{--x-ink:#1c1917;--x-body:#44403c;--x-muted:#57534e;--x-faint:#a8a29e;--x-hair:#e7e5e4;--x-hair2:#d6d3d1;
  --x-paper:#faf9f6;--x-rail:#f5f5f4;--x-accent:#c2410c;--x-accent-soft:#fef3e9;--x-quote:#e4d8c6;
  font:14px/1.6 var(--sans,'Noto Sans SC',sans-serif);color:var(--x-ink)}
.xnc *,.xnc *::before,.xnc *::after{box-sizing:border-box}
.xnc [hidden],.xnc[hidden]{display:none!important}
.xnc button{font:inherit;color:inherit;cursor:pointer}
.xnc .mono{font-family:var(--mono,'JetBrains Mono',monospace);font-variant-numeric:tabular-nums}
.xnc :focus-visible,.xnc-psheet :focus-visible{outline:2px solid var(--x-accent);outline-offset:2px}

/* ── the reader pane with a dock: the detail keeps at least a short readable band; the dock takes what it needs ── */
.wb7-reader.has-xnc .wb7-rd-body{flex:1 3 auto;min-height:72px}   /* detail first; it gives way before the chat does, and takes the spare height so 问小南 sits at the pane's foot */
.wb7-reader.has-xnc:has(.xnc-dock.has-turns) .wb7-rd-body{flex-shrink:8}   /* once there is a conversation it gets most of the pane */
.wb7-reader.has-xnc .xnc-entry{display:none}          /* the chat is right here on desktop */
.xnc-dock{flex:0 1 auto;min-height:0;display:flex;flex-direction:column;border-top:1px solid var(--x-hair);background:#fffefa;padding:10px 22px 12px}
/* The topic summary stays compact until the reader opens the original detail. */
.xnc-brief{flex:none;padding:0 22px 8px;background:var(--w7-read,#fffefa)}
.xnc-brief[hidden]{display:none}
.xnc-brief-t{margin:0 0 2px;max-width:var(--w7-measure,620px);font:14px/1.7 var(--sans,'Noto Sans SC',sans-serif);color:#44403c;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}
.xnc-brief-tg{display:inline-flex;align-items:center;min-height:32px;padding:0;border:0;background:none;font:500 12.5px var(--sans,'Noto Sans SC',sans-serif);color:#57534e;cursor:pointer}
.xnc-brief-tg:hover{color:#1c1917;text-decoration:underline;text-underline-offset:3px}
.xnc-brief-tg:focus-visible{outline:2px solid #c2410c;outline-offset:2px}
.wb7-reader.xnc-collapsed .wb7-rd-body{display:none}
.wb7-reader.has-xnc.xnc-expanded:has(.xnc-dock.has-turns) .wb7-rd-body{flex:1 1 0;min-height:40%}
/* desktop pane (2026-10-27 composer fit): the dock's rows join the reader's own flex column (display:contents), so the
   only parts that can give way are the detail (scrolls), the material (scrolls) and the conversation (scrolls); the
   问小南 bar, starters and composer are flex:none and always whole. Before, the dock was one shrinkable box: with a long
   real note flex shrank it below its fixed rows and #wb7's overflow:hidden cut the input off (live 2026-10-27: reader
   bottom 871, composer bottom 886.83 at 1440×900). The dock's padding and top rule move onto its rows. */
@media (min-width:861px){
  .wb7-reader.has-xnc>.xnc-dock{display:contents}
  .wb7-reader.has-xnc>.xnc-dock>*{flex:none;margin-left:22px;margin-right:22px}
  .wb7-reader.has-xnc>.xnc-dock>.xnc-bar{margin:0;padding:10px 22px 6px;border-top:1px solid var(--x-hair)}
  .wb7-reader.has-xnc>.xnc-dock>.xnc-mat:has(.xnc-more[open]){flex:0 1 auto;min-height:0;max-height:40vh}   /* opened material scrolls; closed it is one whole line */
  .wb7-reader.has-xnc>.xnc-dock>.xnc-log{flex:0 1 auto;min-height:0;max-height:70vh}
  .wb7-reader.has-xnc>.xnc-dock>.xnc-na{margin:0}
  .wb7-reader.has-xnc:has(>.xnc-dock:not([hidden]):not([data-state=not-askable])){padding-bottom:12px}
}
@media (min-width:861px) and (min-height:860px){   /* tall screens keep a readable floor for a started conversation */
  .wb7-reader.has-xnc>.xnc-dock.has-turns>.xnc-log{min-height:min(150px,20vh)}
}
.xnc-bar{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.xnc-title{font-size:14px;font-weight:700;letter-spacing:.5px;color:var(--x-accent)}
.xnc-label{font-size:12px;color:var(--x-muted)}
.xnc-left{margin-left:auto;font-size:12px;color:var(--x-muted);white-space:nowrap}
.xnc-left b{color:var(--x-ink);font-weight:600}
.xnc-sample-badge{display:inline-block;font-size:11.5px;font-weight:600;color:#92400e;background:#fef3c7;border:1px solid #fcd34d;border-radius:3px;padding:0 6px;line-height:1.7;white-space:nowrap}
.xnc-hint{margin:2px 0 6px;font-size:13.5px;color:var(--x-muted)}
.xnc-na{margin:0;padding:10px 22px;border-top:1px solid var(--x-hair);font-size:12.5px;color:var(--x-muted);background:#fffefa}
.xnc-dock[data-state=not-askable]{padding:0;border:0}
.xnc-dock[data-state=not-askable] .xnc-bar{display:none}

/* samples mode: the frozen samples to pick from */
.xnc-picks{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:0 0 6px}
.xnc-pick{flex:none;max-width:240px;min-height:30px;border:1px solid var(--x-hair2);border-radius:4px;background:#fff;padding:2px 10px;font-size:12.5px;color:var(--x-body);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.xnc-pick[aria-pressed=true]{background:var(--x-accent-soft);border-color:#f3c9a8;color:var(--x-ink);font-weight:600}

/* the material 小南 reads (collapsed): numbered segments the 原文② chips point to */
.xnc-mat{flex:none;max-height:40%;overflow-y:auto;margin:0 0 4px}
.xnc-mat-own{display:flex;align-items:center;gap:8px;margin:0 0 4px;font-size:13.5px;font-weight:600}
.xnc-kind{font-weight:600;color:var(--x-ink);border:1px solid var(--x-hair2);border-radius:3px;padding:0 6px;background:#fff;font-size:11.5px}
.xnc-trunc{display:flex;align-items:center;gap:6px;margin:0 0 4px;font-size:12.5px;line-height:1.5;color:#7c5a2e}
.xnc-trunc::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:#c9a26b}
.xnc-more>summary{list-style:none;cursor:pointer;font-size:12.5px;color:var(--x-muted);display:inline-flex;align-items:center;gap:6px}
.xnc-more>summary::-webkit-details-marker{display:none}
.xnc-more>summary::after{content:"▾";font-size:10px}
.xnc-more[open]>summary::after{content:"▴"}
.xnc-mat-src{margin:6px 0 0;font-size:13px;color:var(--x-muted)}
.xnc-mat-src a{color:var(--x-body);text-decoration:underline;text-decoration-color:var(--x-hair2);text-underline-offset:3px}
.xnc-segs{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:2px}
.xnc-seg{display:grid;grid-template-columns:24px minmax(0,1fr);gap:6px;font-size:14px;line-height:1.65;color:var(--x-body);padding:4px 8px 4px 2px;border-radius:3px;border:1px solid transparent}
.xnc-seg-id{font-size:13px;color:var(--x-muted);text-align:right}
.xnc-seg-l{display:inline-block;margin-right:6px;font-size:11px;color:var(--x-muted);border:1px dashed var(--x-hair2);border-radius:3px;padding:0 4px;line-height:1.5}
.xnc-seg.is-hit{background:#fff;border-color:var(--x-quote);box-shadow:inset 2px 0 0 var(--x-accent)}
.xnc-inspect{margin-top:6px;font-size:11px;color:var(--x-muted)}
.xnc-inspect summary{cursor:pointer}
.xnc-inspect dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 10px;margin:6px 0 0}
.xnc-inspect dd{margin:0;font-family:var(--mono,monospace);word-break:break-all}

/* the conversation: grows with its content, then scrolls inside (the detail above keeps its band) */
.xnc-log{position:relative;flex:0 1 auto;min-height:0;max-height:70vh;overflow-y:auto;overscroll-behavior:contain;scroll-behavior:smooth;padding:6px 2px 4px}
.xnc-dock.has-turns .xnc-log{min-height:min(150px,20vh)}   /* a started conversation keeps a readable height */
.xnc-turn{margin:4px 0 20px}
.xnc-turn.is-old{opacity:.55}
.xnc-old{font-size:11.5px;color:var(--x-muted);margin:-12px 0 14px}
.xnc-q{margin:0 0 10px}
.xnc-q-t{display:inline-block;max-width:100%;font-size:15px;font-weight:600;line-height:1.6;color:var(--x-ink);background:#f3f1ec;border-radius:4px;padding:6px 12px}
.xnc-a{max-width:760px}
.xnc-a-hd{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.xnc-a-k{font-size:12px;font-weight:600;letter-spacing:.5px;color:var(--x-muted)}
.xnc-ai{font-size:10.5px;color:var(--x-muted);border:1px solid var(--x-hair2);border-radius:3px;padding:0 5px;line-height:1.6}
.xnc-quote{margin:0 0 14px;padding:1px 0 1px 14px;border-left:2px solid var(--x-quote);font-size:15.5px;line-height:1.75;color:var(--x-ink)}
.xnc-quote-l{display:block;margin:0 0 2px;font-size:12px;line-height:1.5;color:var(--x-muted)}
.xnc-quote.is-judged{border-left-style:dashed;border-left-color:#c9b79c}
.xnc-quote.is-judged .xnc-quote-l{color:#7c5a2e;font-weight:600}
.xnc-part{margin:0 0 10px;font-size:15px;line-height:1.7;color:var(--x-body)}
.xnc-part-k{display:block;font-size:12px;font-weight:600;color:var(--x-muted);margin-bottom:2px}
.xnc-part.is-gap,.xnc-part.is-note{color:var(--x-muted)}
.xnc-cite{position:relative;margin-left:4px;padding:0 2px;border:0;background:none;font:400 12px/1 var(--sans,'Noto Sans SC',sans-serif);color:#8a8178;vertical-align:baseline;white-space:nowrap}
.xnc-cite::after{content:"";position:absolute;inset:-12px -6px}
.xnc-cite:hover{color:var(--x-accent);text-decoration:underline;text-underline-offset:3px}
.xnc-typing{display:inline-flex;align-items:center;gap:10px;margin:0;padding:8px 12px;background:#f3f1ec;border-radius:4px}
.xnc-typing-t{font-size:12.5px;color:var(--x-muted)}
.xnc-dots{display:inline-flex;gap:4px}
.xnc-dots i{width:6px;height:6px;border-radius:50%;background:#a8a29e;animation:xnc-dot 1.4s ease-in-out infinite}
.xnc-dots i:nth-child(2){animation-delay:.2s}.xnc-dots i:nth-child(3){animation-delay:.4s}
@keyframes xnc-dot{0%,70%,100%{opacity:.3;transform:translateY(0)}35%{opacity:1;transform:translateY(-2px)}}
@media (prefers-reduced-motion:reduce){.xnc-dots i{animation:none;opacity:.6}.xnc-log{scroll-behavior:auto}}

/* notices */
.xnc-notice{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 8px;padding:8px 12px;border:1px solid var(--x-hair2);border-radius:4px;background:#fff;font-size:13px;color:var(--x-body)}
.xnc-notice b{color:var(--x-ink)}
.xnc-notice.is-calm{background:#f7f5f0;border-color:var(--x-hair);color:var(--x-body)}
.xnc-notice.is-calm .xnc-dots i{width:5px;height:5px}
.xnc-notice button{margin-left:auto;border:1px solid var(--x-ink);background:var(--x-ink);color:#fff;border-radius:4px;padding:3px 10px;font-size:12.5px}
.xnc-gone{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:6px 0 8px;color:var(--x-body)}
.xnc-gone strong{flex-basis:100%;font-size:15px;color:var(--x-ink)}
.xnc-gone span{font-size:13px;color:var(--x-muted)}
.xnc-gone>span:first-of-type{flex-basis:100%}
.xnc-switch{border:1px solid var(--x-ink);background:#fff;color:var(--x-ink);border-radius:4px;padding:5px 14px;font-size:13.5px;font-weight:600}
.xnc-switch:hover{background:var(--x-ink);color:#fff}

/* starter prompts + input */
.xnc-chips{flex:none;display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 8px}
.xnc-chip{min-height:30px;border:1px solid var(--x-hair2);background:#fff;border-radius:4px;padding:2px 12px;font-size:13.5px;color:var(--x-body)}
.xnc-chip:hover:not(:disabled){border-color:var(--x-ink);color:var(--x-ink)}
.xnc-chip:disabled{opacity:1;color:#a8a29e;background:#f5f5f4;border-color:#e7e5e4;cursor:default}
.xnc-ask{flex:none;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}
.xnc-in{position:relative}
.xnc-in textarea{display:block;width:100%;height:44px;min-height:44px;max-height:120px;resize:none;border:1px solid var(--x-hair2);border-radius:4px;background:#fff;
  padding:10px 64px 10px 12px;font:15px/1.6 var(--sans,'Noto Sans SC',sans-serif);color:var(--x-ink)}
.xnc-in textarea::placeholder{color:#8a8178}
.xnc-in textarea:focus{outline:2px solid var(--x-accent);outline-offset:-1px;border-color:var(--x-accent)}
.xnc-in textarea:disabled{background:var(--x-rail);color:var(--x-muted)}
.xnc-count{position:absolute;right:10px;bottom:11px;font:11px/1 var(--mono,monospace);color:var(--x-muted);pointer-events:none}
.xnc-count.is-near{color:var(--x-ink);font-weight:600}
.xnc-send{height:44px;padding:0 18px;border:0;border-radius:4px;background:var(--x-accent);color:#fff!important;font-weight:600;font-size:14px}
.xnc-send:hover{background:#9a3412}
.xnc-send:disabled{background:var(--x-hair2);color:#fff;cursor:default}
.xnc-foot{flex:none;padding:4px 0 0;font-size:12px;color:var(--x-muted)}

/* selection is the topic — no row badges (operator 2026-10-27); no rail cue line since 2026-10-28 (fewer words) */
/* 问小南 entry button in the reader header: phones only (the chat sits in the pane on desktop) */
.xnc-entry,.wb7 .xnc-entry{display:inline-flex;align-items:center;gap:5px;height:27px;padding:0 10px;border:1px solid var(--accent,#c2410c);border-radius:4px;background:#fff;color:var(--accent,#c2410c);font:600 12px var(--sans,'Noto Sans SC',sans-serif);cursor:pointer;white-space:nowrap}
.xnc-entry:hover,.wb7 .xnc-entry:hover{background:var(--accent-soft,#fef3e9)}
.xnc-entry:disabled{opacity:.45;cursor:default}
.xnc-entry svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.8}

/* ── phones: the rail stays a list; a tapped row opens a full-screen sheet with the reader (detail on top, chat below) ── */
.xnc-scrim{display:none}
.xnc-psheet{display:none}
@media (max-width:860px){
  .wb7-mslot .xnc-dock,.wb7-readerslot .xnc-dock{display:none!important}   /* inline accordion: detail only; 问小南 opens the sheet */
  .wb7-reader.has-xnc .xnc-entry{display:inline-flex;height:36px;padding:0 12px;font-size:13px}
  .xnc-scrim:not([hidden]){display:block;position:fixed;inset:0;z-index:119;background:rgba(28,25,23,.38)}
  .xnc-psheet:not([hidden]){display:flex;flex-direction:column;position:fixed;left:0;right:0;bottom:0;top:40px;z-index:120;background:var(--w7-read,#fffefa);
    border-top:2px solid #1c1917;border-radius:4px 4px 0 0;font:14px/1.6 var(--sans,'Noto Sans SC',sans-serif)}
  .xnc-psheet-bar{flex:none;display:flex;align-items:center;gap:10px;padding:6px 12px;border-bottom:1px solid #e7e5e4;background:#fafaf9}
  .xnc-psheet-bar .xnc-label{margin-left:auto;font-size:11.5px;color:#57534e;text-align:right}
  .xnc-psheet-bar .xnc-left{margin-left:0;min-width:0;white-space:normal;line-height:1.4}
  .xnc-close{flex:none;white-space:nowrap;display:inline-flex;align-items:center;gap:4px;height:40px;padding:0 10px 0 4px;border:0;background:none;font:600 15px var(--sans,'Noto Sans SC',sans-serif);color:#1c1917;cursor:pointer}
  .xnc-psheet-host.wb7{flex:1;min-height:0;display:flex;height:auto;border:0;border-radius:0;box-shadow:none;overflow:hidden;background:var(--w7-read)}
  .xnc-psheet-host .wb7-reader{flex:1;min-height:0}
  .xnc-psheet-host .wb7-rd-hd{padding:10px 14px 6px}
  .xnc-psheet-host .wb7-rd-title{font-size:16px}
  .xnc-psheet-host .wb7-rd-body{flex:0 3 auto;min-height:90px;max-height:none;padding:0 14px 10px;font-size:15px}
  .xnc-psheet-host .xnc-entry{display:none!important}
  /* the sheet's dock rows join the reader's flex column too (same composer-fit rule as the desktop pane): only the
     detail and the conversation give way; material line, starters and composer stay whole above the keyboard */
  .xnc-psheet-host .xnc-dock{display:contents!important}
  .xnc-psheet-host .xnc-dock>*{flex:none;margin-left:12px;margin-right:12px}
  .xnc-psheet-host .wb7-reader.has-xnc{padding-bottom:calc(8px + env(safe-area-inset-bottom))}
  .xnc-psheet-host .wb7-reader.has-xnc .wb7-rd-body{flex-grow:0;border-bottom:1px solid #e7e5e4;margin-bottom:8px}   /* the sheet's conversation takes the spare height */
  .xnc-psheet-host .xnc-dock>.xnc-mat:has(.xnc-more[open]){flex:0 1 auto;min-height:0}
  .xnc-psheet-host .xnc-dock>.xnc-log{flex:1 1 auto;min-height:0}
  .xnc-psheet-host .xnc-dock>.xnc-na{margin:0}
  .xnc-psheet-host .xnc-brief{padding:0 14px 6px;border-bottom:1px solid #e7e5e4;margin-bottom:8px}
  .xnc-psheet-host .xnc-chips{margin-top:auto}
  .xnc-psheet-host .xnc-bar{display:none}                       /* the sheet bar already carries the AI label */
  .xnc-psheet-host .xnc-log{max-height:none}
  .xnc-chip{min-height:40px;font-size:13.5px;padding:0 8px}
  .xnc-chips{gap:5px}
  .xnc-q{text-align:right}
}
body.xnc-lock{overflow:hidden}

/* chat look (operator 2026-10-27: "how claude or chatgpt looks like") — the question in a soft bubble on the right,
   小南's answer as plain text with no box, label or avatar, one rounded composer, the AI note small under it */
.xnc-turn{margin:0 0 26px}
.xnc-q{margin:0 0 12px;text-align:right}
.xnc-q-t{display:inline-block;max-width:80%;text-align:left;font-size:14px;font-weight:400;line-height:1.6;color:var(--x-ink);background:#f1eee8;border-radius:4px;padding:8px 12px}
.xnc-a{max-width:none}
.xnc-part{margin:0 0 10px;font-size:14px;line-height:1.6;color:var(--x-ink)}
.xnc-part.is-judge .xnc-part-k{display:inline;font-size:inherit;font-weight:600;color:var(--x-ink);margin:0}
.xnc-part.is-judge .xnc-part-k::after{content:'：'}
.xnc-part.is-gap,.xnc-part.is-note{color:var(--x-muted);font-size:14px}
.xnc-cite{font-size:12px;color:#9a8f84;margin-left:2px;padding:0 1px}
.xnc-chips{gap:8px;margin:4px 0 10px}
.xnc-chip{min-height:32px;border-radius:4px;padding:2px 12px;background:#fff}
.xnc-ask{grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:end;border:1px solid var(--x-hair2);border-radius:4px;background:#fff;padding:5px 5px 5px 12px}
.xnc-ask:focus-within{border-color:#a8a29e}
.xnc-in textarea{border:0;border-radius:0;background:transparent;padding:8px 56px 8px 0;min-height:36px;height:36px}
.xnc-in textarea:focus{outline:0;border:0}
.xnc-in textarea:disabled{background:transparent}
.xnc-send{height:36px;min-width:36px;padding:0 14px;border-radius:4px;background:var(--x-ink)}
.xnc-send:hover{background:#000}
.xnc-send:disabled{background:#d6d3d1}
.xnc-disclaimer{margin:6px 0 0;text-align:center;font-size:11.5px;color:var(--x-muted)}
/* the header bar becomes the one small note under the composer (no 「问小南」 title) */
.xnc-title{display:none}
.xnc-bar{order:1;justify-content:center;margin:6px 0 0}
.xnc-bar .xnc-label{font-size:11.5px;color:var(--x-muted)}
@media (min-width:861px){
  .wb7-reader.has-xnc>.xnc-dock>.xnc-bar{order:1;margin:0 22px;padding:6px 0 0;border-top:0;justify-content:center}
}
.xnc-src{margin:-4px 0 10px;font-size:12.5px;line-height:1.6;color:var(--x-muted)}
.xnc-src a{color:var(--x-muted);text-decoration:underline;text-underline-offset:2px}
/* one toggle only: the 原文 list stays out of sight until a ① mark opens it (「展开原文」 above already shows the detail) */
.xnc-more:not([open]){display:none}
@media (min-width:861px){
  .wb7-reader.has-xnc>.xnc-dock>.xnc-log{flex:1 1 auto}   /* the conversation takes the free height; the composer sits at the bottom */
}

/* ── chat-first pane (operator 2026-10-28 「yes to right panel design」) ─────────────────────────────────────────────
   top: a pinned topic card — the reader's header (kind · time · title) + two summary lines + the material's sources +
   「展开原文 ▾」; middle: the conversation, or before the first question the starters and 今日速览 suggestions; bottom: the
   composer, always whole. 展开原文 turns the pane into a full-width reading view of the detail (the turns step aside;
   notices and the composer stay). The card never disappears while the topic is askable. */
.wb7-reader.xnc-topic .wb7-rd-hd{padding:12px 22px 0;background:var(--x-card,#f7f6f2)}
.wb7-reader.xnc-topic .wb7-rd-title{font-size:16px;line-height:1.45;margin-top:4px}
.wb7-reader.xnc-topic .xnc-brief{padding:2px 22px 8px;background:var(--x-card,#f7f6f2);border-bottom:1px solid #e7e5e4}
.wb7-reader.xnc-topic .xnc-brief-t{margin:2px 0 2px;font-size:13.5px;line-height:1.65}
.xnc-brief-row{display:flex;align-items:center;gap:12px;min-width:0}
.xnc-brief-src{flex:1 1 auto;min-width:0;margin:0;font-size:12px;line-height:1.5;color:#57534e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.xnc-brief-src[hidden]{display:none}
.xnc-brief-src a{color:inherit;text-decoration:underline;text-decoration-color:#d6d3d1;text-underline-offset:3px}
.xnc-brief-row .xnc-brief-tg{flex:none;margin-left:auto}
.wb7-reader.has-xnc.xnc-topic.xnc-expanded .wb7-rd-body{display:block;flex:1 1 0;min-height:0;padding-top:14px}
.wb7-reader.xnc-expanded .xnc-start,.wb7-reader.xnc-expanded .xnc-log .xnc-turn,.wb7-reader.xnc-expanded .xnc-log .xnc-old,.wb7-reader.xnc-expanded .xnc-mat .xnc-more{display:none!important}
.wb7-reader.xnc-expanded .xnc-log{flex:0 0 auto!important;min-height:0!important;max-height:30%;padding-top:0!important;padding-bottom:0!important}

/* the empty conversation: starters and 今日速览 suggestions — centred in the free space */
.xnc-start{display:flex;flex:none;flex-direction:column;min-height:0;overflow-y:auto;margin-top:auto;padding:8px 0 2px}
.xnc-start::before,.xnc-start::after{display:none}
.xnc-start[hidden]{display:none}
/* with no starters (notice, paused, a conversation under way) the composer still sits at the foot of the pane, never under the card */
.xnc-start[hidden]+.xnc-ask{margin-top:auto}
.xnc-start .xnc-chips{margin:0}
.xnc-sugg{margin-top:18px;max-width:560px}
.xnc-sugg-h{margin:0 0 4px;font-size:12px;color:#57534e}
.xnc-sugg-i{display:flex;align-items:baseline;gap:8px;width:100%;min-height:32px;margin:0;padding:5px 8px 5px 2px;border:0;border-radius:4px;background:none;text-align:left;font-size:13.5px;line-height:1.5;color:#44403c}
.xnc-sugg-i:hover{background:#f5f5f4;color:#1c1917}
.xnc-sugg-i:disabled{opacity:.5;cursor:default}
.xnc-sugg-k{flex:none;color:#a8a29e}
.xnc-sugg-t{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (min-width:861px){
  .wb7-reader.has-xnc>.xnc-dock>.xnc-log{flex:1 1 0;min-height:0;max-height:none}
  .wb7-reader.has-xnc.xnc-topic:not(.xnc-expanded)>.xnc-dock>.xnc-log{padding-top:14px}
}
@media (max-width:860px){
  /* the inline accordion keeps today's phone behaviour: full detail, no card */
  .wb7-mslot .xnc-brief{display:none!important}
  .wb7-mslot .wb7-reader.xnc-collapsed .wb7-rd-body{display:block}
  .wb7-mslot .wb7-reader.xnc-topic .wb7-rd-hd{background:none}
  /* the sheet: the same topic card on top, conversation / starters in the middle, composer at the foot */
  .xnc-psheet-host .wb7-reader.xnc-topic .wb7-rd-hd{padding:10px 14px 0}
  .xnc-psheet-host .wb7-reader.xnc-topic .xnc-brief{padding:2px 14px 8px;margin-bottom:0}
  .xnc-psheet-host .xnc-dock>.xnc-start{flex:none;max-height:32vh}
  /* Suggested topics yield space when the keyboard reduces the sheet height. */
  .xnc-psheet-host .xnc-dock>.xnc-sugg{flex:0 1 auto;min-height:0;overflow-y:auto}
  .xnc-psheet-host.wb7{flex-direction:column}         /* the dock alone (deep link the panel cannot show) stacks like the reader */
  .xnc-psheet-host .xnc-start .xnc-chips{margin:0 0 4px}
  .xnc-psheet-host .wb7-reader.has-xnc.xnc-topic.xnc-expanded .wb7-rd-body{flex:1 1 0;min-height:0;margin-bottom:8px}
  .xnc-sugg{margin-top:12px}
  .xnc-sugg-i{min-height:40px}
}
@media (min-width:861px){
  .wb7-reader.has-xnc.xnc-topic.xnc-expanded .wb7-rd-body{border-bottom:1px solid #e7e5e4;margin-bottom:10px}   /* the reading view ends on a rule above the composer */
}
/* the reader shows another item than the one 小南 answers from (deep link the panel cannot show): hide that detail; the
   dock names the material itself (.xnc-mat-own) or shows the withdrawal / unknown notice */
.wb7-reader.xnc-orphan>.wb7-rd-hd,.wb7-reader.xnc-orphan>.wb7-rd-body,.wb7-reader.xnc-orphan>.xnc-brief{display:none!important}
.wb7-reader.xnc-orphan>.xnc-dock>.xnc-mat,.xnc-psheet-host>.xnc-dock>.xnc-mat{padding-top:14px}
.xnc-own-src{margin:0 0 6px}
.wb7-reader.xnc-orphan>.xnc-dock>.xnc-log{padding-top:16px}
/* phone: the three starters stay on ONE row; if the width is too small the row scrolls sideways, never wraps (audit 5 #20) */
@media (max-width:860px){
  .xnc-chips{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .xnc-chips::-webkit-scrollbar{display:none}
  .xnc-chip{flex:0 0 auto;white-space:nowrap}
}
/* audit 6 #8: at 390 / 360 all three starters fit whole — tighter gap, padding and font; if one still cannot fit it wraps to a second row */
@media (max-width:600px){
  .xnc-chips{flex-wrap:wrap;overflow:visible;gap:4px}
  .xnc .xnc-chip{flex:0 1 auto;white-space:normal;min-height:34px;padding:2px 6px;font-size:12.5px;line-height:1.3;text-align:left}
}

@media (min-width:861px) and (max-height:700px){
  .wb7-reader.has-xnc>.xnc-dock>.xnc-start{flex:0 1 auto;min-height:0;overflow-y:auto}
  .wb7-reader.has-xnc .xnc-brief{max-height:26vh;overflow-y:auto}
  .wb7-reader.has-xnc>.xnc-dock>.xnc-sugg{flex:0 1 auto;min-height:0;overflow-y:auto}
}
