@import url('/dcoin.css?v=152a4149');
.cm-redpack-seal.is-dcoin{background:transparent;border:0;box-shadow:none}
.cm-redpack-seal.is-dcoin .dcoin{width:48px;height:48px}
.cm-redpack-foot .dcoin{width:18px;height:18px}
.dcoin-heading{display:flex;align-items:center;gap:8px}
.dcoin-packet{min-width:0}
.dcoin-vault{position:relative;overflow:hidden;text-align:center;padding:24px 16px 22px;background:radial-gradient(ellipse at 50% 10%,#ffdf7d 0%,#fff1ca 45%,#fff9ec 80%);border-radius:16px;margin-bottom:14px;color:#6c4018}
.dcoin-vault>.dcoin{position:relative;z-index:1}
.dcoin-vault h3{font-size:19px;margin:10px 0 8px;overflow-wrap:anywhere}
.dcoin-vault-amount{font-size:36px;font-weight:750;justify-content:center;line-height:1.2}
.dcoin-vault-amount>.dcoin{width:29px;height:29px;animation:none}
.dcoin-vault-caption{display:block;margin-top:8px;font-size:12px;color:#89683e}
.dcoin-record-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-top:22px}
.dcoin-record-heading h4{font-size:15px;margin:0 0 9px}.dcoin-record-heading>span{font-size:12px;color:#8d7152}
.dcoin-records{list-style:none;padding:0;margin:0 0 16px;border-top:1px solid #ead9b7}
.dcoin-record{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 8px;border-bottom:1px solid #ead9b7}
.dcoin-recipient{display:flex;flex-wrap:wrap;align-items:center;gap:5px;min-width:0}.dcoin-recipient>strong{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.dcoin-recipient time{flex-basis:100%;font-size:11px;color:#8d7152}
.dcoin-record.is-king{background:#fff0c7}.dcoin-record.is-last{background:#f3edf7}.dcoin-record .dcoin-amount{font-size:20px;color:#86520c}.dcoin-record .dcoin{width:22px;height:22px;animation:none}
.dcoin-shower{position:absolute;inset:0;pointer-events:none;animation:dcoin-shower-end 2s linear both;z-index:2}
.dcoin-shower>.dcoin{position:absolute;left:calc(8% + var(--coin-i)*11%);top:0;width:22px;height:22px;opacity:0;animation:dcoin-fall 1.3s ease-in calc(var(--coin-i)*.06s) both}
@keyframes dcoin-fall{0%{transform:translateY(-40px) rotateY(0);opacity:0}15%{opacity:1}85%{opacity:1}100%{transform:translateY(240px) rotateY(540deg);opacity:0}}
@keyframes dcoin-shower-end{to{opacity:0}}
[data-page-hidden=true] .dcoin-shower,[data-bubble-motion=pause] .dcoin-shower{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.dcoin-shower{display:none;animation:none}}
@media(max-width:420px){.dcoin-vault{padding:18px 10px}.dcoin-vault-amount{font-size:30px}.dcoin-recipient>strong{max-width:120px}.dcoin-record{gap:8px}.dcoin-record .dcoin-amount{font-size:18px}}
/* 群聊：消息区（站内 / 飞书 / LINUX DO 共用）、站内群聊页、成员面板、引用块、站内链接预览 */

/* 私信：复用站点色彩，保留单独的消息树和权限边界。 */
.dm-page{display:flex;flex-direction:column;min-height:0;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--text)}
.dm-top{height:56px;flex:none;display:flex;align-items:center;gap:14px;padding:0 18px;border-bottom:1px solid var(--line)}
.dm-top h1{margin:0;font-size:18px}.dm-back{color:var(--primary);text-decoration:none;font-size:13px}
.dm-layout{display:grid;grid-template-columns:minmax(220px,290px) minmax(0,1fr);flex:1;min-height:0}
.dm-side{min-width:0;overflow:auto;border-right:1px solid var(--line);padding:14px}.dm-side h2{margin:0 0 10px;font-size:15px}
.dm-search,.dm-input{box-sizing:border-box;width:100%;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);color:var(--text);font:inherit}
.dm-search{height:40px;padding:0 10px;font-size:14px}.dm-search-results{margin:6px 0 14px}
.dm-user,.dm-thread{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:3px;width:100%;min-height:46px;padding:8px 10px;border:0;border-radius:9px;background:none;color:var(--text);text-align:left;font:inherit;cursor:pointer}
.dm-user:hover,.dm-thread:hover,.dm-thread.on{background:var(--surface-2)}.dm-thread strong{font-size:14px}.dm-thread-last{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-2);font-size:12px}
.dm-unread{position:absolute;right:10px;top:10px;min-width:19px;height:19px;border-radius:10px;padding:0 4px;background:var(--primary);color:#fff;text-align:center;font:600 11px/19px system-ui}
.dm-pane{display:flex;flex-direction:column;min-width:0;min-height:0}.dm-pane-head{display:flex;align-items:center;gap:8px;height:52px;padding:0 16px;border-bottom:1px solid var(--line);flex:none}
.dm-pane-back{border:0;background:none;color:var(--primary);font-size:20px;cursor:pointer}.dm-feed{flex:1;min-height:0;overflow-y:auto;padding:12px 16px;overscroll-behavior:contain}
.dm-message{display:flex;flex-direction:column;align-items:flex-start;gap:3px;margin:9px 0}.dm-message.mine{align-items:flex-end}.dm-bubble{max-width:min(75%,560px);padding:8px 12px;border-radius:4px 13px 13px;background:var(--surface-2);white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.55}
.dm-message.mine .dm-bubble{border-radius:13px 4px 13px 13px;background:color-mix(in srgb,var(--primary) 14%,var(--surface))}.dm-time{font-size:11px;color:var(--text-3)}
.dm-older{align-self:center;flex:none;margin:7px;padding:3px 9px;border:0;background:none;color:var(--primary);cursor:pointer}.dm-older[hidden]{display:none}
.dm-compose{display:flex;align-items:flex-end;gap:8px;padding:10px 14px;border-top:1px solid var(--line);flex:none}.dm-input{min-height:58px;max-height:140px;resize:vertical;padding:9px 11px;font-size:16px}.dm-send{flex:none;min-width:54px;min-height:42px;padding:0 12px;white-space:nowrap;border:0;border-radius:9px;background:var(--primary);color:#fff;font:600 14px var(--font);cursor:pointer}.dm-send:disabled{opacity:.55}
.dm-notice{margin:0;padding:7px 16px;color:var(--err);font-size:13px}.dm-empty{color:var(--text-3);font-size:13px;line-height:1.6}
@media(max-width:760px){.dm-page{margin:0 -10px;border-radius:0;border-left:0;border-right:0}.dm-layout{display:block}.dm-side,.dm-pane{height:100%}.dm-pane{display:none}.dm-page.thread-open .dm-side{display:none}.dm-page.thread-open .dm-pane{display:flex}.dm-feed{padding:10px}.dm-bubble{max-width:85%}.dm-compose{padding-bottom:max(9px,env(safe-area-inset-bottom))}}

/* ---------- 消息区 ---------- */
.cm-pane { position: relative; flex: 1; min-height: 0; display: flex; flex-direction: column; }
.cm-chat-column { position:relative;display:flex;flex:1;min-width:0;min-height:0;flex-direction:column; }
.cm-guess-bar { display:flex;justify-content:flex-end;align-items:center;gap:8px;flex:none;border-bottom:1px solid var(--line);padding:5px 10px;background:var(--surface); }
.cm-bag-open { position:relative;display:flex;align-items:center;gap:5px;min-height:36px;padding:4px 10px;border:1px solid color-mix(in srgb,#bd5949 46%,var(--line));border-radius:10px;background:color-mix(in srgb,#bd5949 9%,var(--surface));color:color-mix(in srgb,#bd5949 85%,var(--text));font:600 13px var(--font);white-space:nowrap;cursor:pointer; }
.cm-bag-open:hover,.cm-bag-open.has-packet { background:color-mix(in srgb,#bd5949 17%,var(--surface)); }.cm-bag-open:focus-visible { outline:2px solid #bd5949;outline-offset:2px; }
.cm-bag-open .cm-bag-alert { display:none;position:absolute;right:-4px;top:-9px;padding:1px 5px;border-radius:5px;background:#b94738;color:white;box-shadow:0 1px 5px #0003;font:600 10px/1.4 var(--font);pointer-events:none;animation:cm-bag-float 2.6s ease-in-out infinite; }
.cm-bag-open.has-packet .cm-bag-alert { display:block; }
.packet-bag-reminder{display:grid;gap:4px;margin:6px 0 14px;padding:10px 0;border-bottom:1px solid var(--line)}
.packet-bag-reminder .set-check{display:flex;align-items:center;gap:8px;min-height:32px;margin:0;cursor:pointer;font-weight:600}
.packet-bag-reminder input{width:18px!important;min-height:18px!important;height:18px;margin:0;flex:none;accent-color:var(--primary)}
.packet-bag-reminder small{font-size:12px;line-height:1.5;color:var(--text-2)}
@keyframes cm-bag-float { 50% { transform:translateY(-2px); } }
@media(prefers-reduced-motion:reduce) { .cm-bag-open .cm-bag-alert { animation:none; } }
.cm-guess-open { display:flex;align-items:center;gap:8px;min-height:36px;padding:4px 12px;font:600 13px var(--font);color:var(--primary);border:1px solid color-mix(in srgb,var(--primary) 45%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--primary) 12%,var(--surface));box-shadow:0 2px 0 color-mix(in srgb,var(--primary) 15%,transparent);cursor:pointer; }
.cm-guess-icon { border-radius:7px;background:#fffbea;flex:none; }.cm-guess-open:hover { background:color-mix(in srgb,var(--primary) 20%,var(--surface)); }.cm-guess-open:focus-visible { outline:2px solid var(--primary);outline-offset:2px; }
@media(max-width:760px) {
  .cm-guess-bar { padding:2px 8px;gap:6px; }
  .cm-bag-open { min-height:30px;padding:2px 7px;font-size:12px;border-radius:8px; }
  .cm-guess-open { min-height:30px;padding:2px 8px;gap:5px;font-size:12px;border-radius:8px;box-shadow:none; }
  .cm-guess-open .cm-guess-icon { width:20px;height:20px;border-radius:5px; }
}
.cm-pane.gr-open.gr-wide { display:grid;grid-template-columns:minmax(0,1fr) 8px var(--guess-w,520px);grid-template-rows:minmax(0,1fr); }
body.chat-mode #main:has(.gr-open) { max-width:1800px; }
.gr-open > .cm-guess-bar { display:none; }
.gr-wide > .cm-chat-column { grid-column:1;grid-row:1; }
.gr-open:not(.gr-wide) > .cm-chat-column { display:none; }
.gr-panel { color-scheme:light;--primary:#347c67;--primary-soft:#e3f4e8;--surface:#fffef9;--surface-2:#f3f9ee;--text:#30453b;--text-2:#586b60;--text-3:#748176;--line:#dfeadd;--err:#b74949;--gr-tint:#f7fbf1;--gr-line:#c1ddc6;display:flex;flex-direction:column;min-width:0;min-height:0;flex:1;grid-column:3;grid-row:1;background:var(--gr-tint);color:var(--text);overflow:hidden;border:2px solid #c3ddc5;border-radius:16px 16px 12px 12px;margin:5px;box-shadow:0 2px 0 #e7efdc; }
.gr-panel[hidden],.gr-divider[hidden],.gr-panel [hidden] { display:none!important; }
.gr-current { display:flex;flex:1;flex-direction:column;min-height:0;overflow-y:auto; }
.gr-manual-hints { flex:none;padding:4px 12px;border-bottom:1px dashed var(--gr-line);font-size:12px; }
.gr-manual-hints > summary { cursor:pointer;color:var(--primary);padding:3px 0; }
.gr-hint-form { display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;margin:5px 0; }
.gr-hint-form > .gr-input { min-width:0;min-height:44px;height:44px; }
.gr-hint-form > .gr-hint-submit { min-height:44px;white-space:nowrap; }
.gr-hint-submit:focus-visible { outline:2px solid var(--primary);outline-offset:2px; }
.gr-display { position:relative;font-size:12px;flex:none; }.gr-display > summary { cursor:pointer;min-height:30px;display:flex;align-items:center;color:var(--primary); }.gr-display-menu { position:absolute;right:0;top:100%;z-index:5;width:130px;display:flex;flex-direction:column;padding:5px;background:var(--surface);border:1px solid var(--gr-line);border-radius:9px;box-shadow:0 3px 12px #0002; }.gr-people-choice { font:12px var(--font);text-align:left;min-height:34px;padding:5px 8px;background:transparent;color:var(--text);border:0;border-radius:5px;cursor:pointer; }.gr-people-choice[aria-pressed="true"] { background:var(--primary-soft);color:var(--primary);font-weight:600; }
.gr-yes-row > .gr-person { margin-top:3px;font-size:10px; }.gr-yes-row .gr-avatar { width:16px;height:16px; }
.gr-panel:not([data-people="names"]) .gr-answer { display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:2px 5px;align-items:center;padding-block:7px; }
.gr-panel:not([data-people="names"]) .gr-answer-top,.gr-panel:not([data-people="names"]) .gr-answer-bottom { display:contents; }
.gr-panel:not([data-people="names"]) .gr-answer-top > small,.gr-panel:not([data-people="names"]) .gr-person > span:not(.gr-initial) { display:none; }
.gr-panel:not([data-people="names"]) .gr-answer-top > strong { grid-row:1;grid-column:2;font-size:12px; }.gr-panel:not([data-people="names"]) .gr-answer-top > b { grid-row:1;grid-column:3;font-size:12px; }
.gr-panel:not([data-people="names"]) .gr-answer-bottom > .gr-person { grid-row:1;grid-column:1; }.gr-panel:not([data-people="names"]) .gr-answer-bottom > .gr-progress { grid-row:2;grid-column:2 / 4;width:100%;height:2px; }
.gr-panel:not([data-people="names"]) .gr-yes-row { display:flex;align-items:baseline;gap:5px; }.gr-panel:not([data-people="names"]) .gr-yes-row > .gr-person { order:-1;flex:none; }
.gr-panel[data-people="hidden"] .gr-person { display:none!important; }.gr-panel[data-people="hidden"] .gr-answer { grid-template-columns:minmax(0,1fr) auto; }.gr-panel[data-people="hidden"] .gr-answer-top > strong { grid-column:1; }.gr-panel[data-people="hidden"] .gr-answer-top > b { grid-column:2; }.gr-panel[data-people="hidden"] .gr-answer-bottom > .gr-progress { grid-column:1 / 3; }
.gr-head { display:flex;align-items:center;gap:3px;min-height:36px;padding:3px 7px;border-bottom:1px dashed var(--gr-line);font-size:13px;flex:none;background:#eaf7e8; }
.gr-head .gr-tool { display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;min-height:30px;padding:5px;border:0;border-radius:6px;box-sizing:border-box;flex:none;color:var(--primary);cursor:pointer;list-style:none; }
.gr-tool svg { display:block;width:19px;height:19px; }.gr-tool::-webkit-details-marker{display:none}.gr-tool:hover,.gr-tool[aria-expanded="true"],.gr-display[open] > .gr-tool{background:var(--primary-soft)}.gr-tool:focus-visible{outline:2px solid var(--primary);outline-offset:1px}
.gr-queue{max-height:180px;overflow:auto;padding:5px 10px;font-size:12px;border-bottom:1px dashed var(--gr-line)}.gr-queue p{margin:4px 0}
.gr-stats-rules{font-size:12px;line-height:1.6;color:var(--text-2)}.gr-stats-name small{display:block;font-weight:400;color:var(--text-2)}
.gr-head > strong { display:flex;align-items:center;gap:7px;color:var(--primary); }.gr-head > strong > img { flex:none;background:#fffbea;border:1px solid #c9dfbd;border-radius:9px;padding:2px;box-sizing:content-box; }
.gr-tools{position:relative;flex:none}.gr-tools-menu{position:absolute;z-index:30;right:0;top:100%;min-width:148px;padding:5px;background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:0 4px 14px #0002}
.gr-tools-menu{display:grid;grid-template-columns:1fr}.gr-tools-menu .gr-tool{width:100%;justify-content:flex-start;gap:8px;height:36px;font-size:12px}.gr-tools-menu .gr-tool::after{content:attr(aria-label);white-space:nowrap}
.gr-round-details,.gr-hint-details{position:relative;flex:none;min-width:0;border-bottom:1px solid var(--gr-line)}
.gr-round-details>summary,.gr-hint-details>summary{display:block;list-style:none;position:relative;padding:7px 27px 7px 10px;min-height:30px;box-sizing:border-box;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:12px;cursor:pointer;color:var(--primary)}
.gr-round-details>summary::after,.gr-hint-details>summary::after{content:'⌄';position:absolute;right:10px}.gr-round-details[open]>summary::after,.gr-hint-details[open]>summary::after{content:'⌃'}
.gr-round-details>summary::-webkit-details-marker,.gr-hint-details>summary::-webkit-details-marker{display:none}.gr-round-details>summary:focus-visible,.gr-hint-details>summary:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}
.gr-round-details[open]>summary,.gr-hint-details[open]>summary{position:absolute;right:0;top:0;width:28px;height:28px;min-height:28px;padding:0;font-size:0;z-index:1}
.gr-round-details[open]>summary>span,.gr-hint-details[open]>summary>span{display:none}
.gr-round-details[open]>summary::after,.gr-hint-details[open]>summary::after{top:4px;right:9px;font-size:14px}
.gr-round-details[open]>.gr-meta,.gr-hint-details[open]>.gr-hints{padding-right:34px}
.gr-round-details[open]{max-height:180px;overflow:auto}.gr-hint-details{background:color-mix(in srgb,#e9d8b6 15%,var(--surface))}.gr-result{padding:7px 10px;font-size:12px;max-height:90px;overflow:auto;line-height:1.5}.gr-result span{display:block}
.gr-link { color:var(--primary);border:0;background:none;padding:5px 2px;font:500 12px var(--font);cursor:pointer;min-height:30px; }
.gr-link:disabled { opacity:.5;cursor:default; }
.gr-meta { padding:4px 9px;border-bottom:1px solid var(--line);flex:none;font-size:12px;line-height:1.5; }
.gr-meta p { margin:4px 0 0;color:var(--text-2);overflow-wrap:anywhere; }
.gr-round { display:flex;flex-wrap:wrap;gap:4px 12px; }.gr-round strong { color:var(--primary); }
.gr-hints { display:flex;align-items:baseline;gap:3px 12px;flex-wrap:wrap;flex:none;max-height:86px;overflow:auto;padding:7px 12px;border-bottom:1px dashed #e9d8b6;font-size:12px;line-height:1.5;overflow-wrap:anywhere;background:#fff7e7; }
.gr-hints > strong { color:var(--primary);flex:none;font-weight:600; }
.gr-dashboard { display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr);min-height:0;flex:1; }
.gr-boolean { display:grid;grid-template-rows:minmax(0,1fr) minmax(0,1fr);min-height:0;min-width:0; }.gr-negative { border-top:1px dashed #e4cfc2; }.gr-negative h3 { background:#fff0e7; }.gr-negative .gr-yes-row p > span { color:#b06448; }
.gr-panel[data-facts-layout="columns"] .gr-dashboard { grid-template-columns:minmax(0,1fr) minmax(0,1.6fr); }
.gr-panel[data-facts-layout="columns"] .gr-boolean { grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:minmax(0,1fr); }
.gr-panel[data-facts-layout="columns"] .gr-negative { border-top:0;border-left:1px dashed var(--gr-line); }
.gr-overview-tools { display:flex;align-items:center;flex:none;min-width:0;border-bottom:1px solid var(--line);background:var(--surface-2); }
.gr-overview-tools .gr-latest-reply { flex:1;min-width:0;border:0; }
.gr-layout-toggle { flex:none;min-height:32px;margin-right:7px;padding:4px 7px;border:1px solid var(--gr-line);border-radius:6px;background:var(--surface);color:var(--primary);font:500 11px var(--font);cursor:pointer; }
.gr-layout-toggle:focus-visible { outline:2px solid var(--primary);outline-offset:1px; }
.gr-layout-toggle { width:32px;padding:2px;font-size:22px;line-height:1; }
.gr-extra-toggle { flex:none;min-height:32px;margin-right:7px;padding:3px 6px;border:0;border-radius:6px;background:transparent;color:var(--primary);font:12px var(--font);cursor:pointer; }
.gr-extra-toggle[aria-expanded="true"] { background:var(--primary-soft); }
.gr-extra-toggle:focus-visible { outline:2px solid var(--primary);outline-offset:1px; }
.gr-extra-verdicts { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));flex:none;height:120px;border-top:1px dashed var(--gr-line); }
.gr-panel[data-extra-open="true"] .gr-dashboard { min-height:170px; }
.gr-extra-verdicts > :first-child { border-right:1px dashed var(--gr-line); }
.gr-extra-verdicts .gr-block,.gr-extra-verdicts h3 { background:var(--surface-2); }
.gr-extra-verdicts .gr-yes-row p > span { color:var(--text-3); }
.gr-summary-area { display:flex;flex-direction:column;flex:1;min-height:0;min-width:0; }
.gr-panel[data-extra-open="true"][data-extra-layout="columns"] .gr-summary-area { display:grid;grid-template-columns:minmax(150px,1.25fr) repeat(4,minmax(125px,1fr));grid-template-rows:minmax(0,1fr);overflow-x:auto;min-height:210px;overscroll-behavior-x:contain; }
.gr-panel[data-extra-open="true"][data-extra-layout="columns"] .gr-dashboard,
.gr-panel[data-extra-open="true"][data-extra-layout="columns"] .gr-boolean,
.gr-panel[data-extra-open="true"][data-extra-layout="columns"] .gr-extra-verdicts { display:contents; }
.gr-panel[data-extra-open="true"][data-extra-layout="columns"] .gr-block { grid-row:1;border-top:0;border-right:1px dashed var(--gr-line);border-left:0; }
.gr-panel[data-extra-open="true"][data-extra-layout="columns"] .gr-summary-scroll { padding-inline:8px; }
.gr-panel[data-extra-open="true"][data-extra-layout="columns"] .gr-block h3 { padding-inline:8px; }
.gr-answer-meaning { font-size:12px;line-height:1.65;overflow-wrap:anywhere; }
.cm-rank-digest { margin:12px 16px;padding:14px 16px;border:1px solid var(--line);border-left:3px solid var(--primary);border-radius:12px;background:var(--surface);color:var(--text);font-size:13px;line-height:1.65;overflow-wrap:anywhere; }
.cm-rank-digest > strong { font-size:15px; }
.cm-digest-caption { margin:2px 0 10px;color:var(--text-2);font-size:11px; }
.cm-digest-row { display:grid;grid-template-columns:5em minmax(0,1fr);gap:8px;padding:5px 0;border-top:1px solid var(--line); }
.cm-digest-row b { font-weight:500;color:var(--primary); }
.cm-digest-lines > p { margin:5px 0; }
.cm-rank-digest details { margin-top:8px;padding-top:7px;border-top:1px dashed var(--line); }
.cm-rank-digest summary { min-height:28px;cursor:pointer;color:var(--primary); }
.cm-rank-digest details .cm-digest-lines { max-height:260px;overflow:auto; }
.cm-answer-meaning { font-weight:400;line-height:1.65; }
.gr-block { display:flex;min-height:0;min-width:0;flex-direction:column;overflow:hidden; }
.gr-block h3 { display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;margin:0;padding:9px 11px 7px;color:var(--text);flex:none;border-bottom:1px dashed var(--gr-line);background:#f0f8ea; }
.gr-facts h3 { background:#edf8f4; }.gr-live h3 { background:#fff1ea;border-bottom-color:#ead9ca; }
.gr-block h3 small { font-size:10px;font-weight:400;color:var(--text-3); }
.gr-rank { grid-row:1;border-right:1px dashed var(--gr-line);background:var(--surface); }.gr-facts { background:#f7fcf7; }
.gr-paging { display:flex;justify-content:space-between;gap:8px; }.gr-paging .gr-more { font-size:11px;margin:5px 0;padding:5px 0; }
.gr-summary-scroll { flex:1;min-height:0;overflow:auto;overflow-x:hidden;overflow-anchor:none;overscroll-behavior:contain;padding:0 11px; }
.gr-answer { padding:9px 0;border-bottom:1px solid var(--line); }
.gr-answer.is-best { background:#fff7da;box-shadow:inset 2px 0 #dfb75e;margin-inline:-5px;padding-inline:5px;border-bottom-color:#edddb5;border-radius:8px; }.gr-answer.is-best .gr-answer-top small { color:#a47b23;font-weight:700; }
.gr-answer-top { display:flex;align-items:baseline;gap:6px;font-size:13px; }
.gr-answer-top small { color:var(--text-3);min-width:12px;flex:none;font-size:10px; }.gr-answer-top strong { flex:1;min-width:0;overflow-wrap:anywhere;font-weight:500;line-height:1.5; }.gr-answer-top b { flex:none;color:var(--primary);font-size:13px;font-variant-numeric:tabular-nums; }
.gr-answer-bottom { display:flex;align-items:center;gap:8px;margin:5px 0 0 18px; }.gr-answer-bottom .gr-person { flex:1;min-width:0;font-size:10px; }.gr-answer-bottom .gr-person > span { overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }.gr-answer-bottom .gr-avatar { width:17px;height:17px; }
.gr-answer-bottom .gr-progress { min-width:30px;width:35%;margin:0; }.gr-answer-bottom .gr-progress i { background:var(--primary); }
.gr-yes-row { padding:8px 0;border-bottom:1px solid var(--line);font-size:12px;line-height:1.5; }.gr-yes-row p { margin:0;overflow-wrap:anywhere; }.gr-yes-row p > span { color:var(--primary);margin-right:5px; }.gr-yes-row small { display:block;color:var(--text-3);font-size:10px;margin-top:3px;overflow-wrap:anywhere; }
.gr-live .gr-feed { padding:0 10px 8px; }.gr-live .gr-entry { padding:8px 0; }.gr-live .gr-person { font-size:10px; }.gr-live .gr-avatar { width:17px;height:17px; }.gr-live .gr-person time { font-size:9px; }
.gr-live .gr-text { margin:4px 0 0;font-size:12px; }.gr-live .gr-reply { margin:4px 0 0;font-size:11px;padding:3px 5px;border-radius:3px 9px 9px 3px;background:color-mix(in srgb,#8ac4e4 9%,var(--surface)); }.gr-live .gr-progress { min-width:40px; }.gr-live .gr-more { font-size:10px;padding-inline:0; }
.gr-latest-reply { display:flex;gap:5px;align-items:baseline;flex:none;box-sizing:border-box;min-height:36px;max-height:54px;overflow:auto;margin:0;padding:7px 11px;border-bottom:1px solid var(--line);color:var(--text-2);background:var(--surface-2);font-size:12px;line-height:1.5;overflow-wrap:anywhere; }.gr-latest-reply > span:first-child { flex:none; }.gr-latest-reply .gr-avatar { width:16px;height:16px;align-self:center; }
.gr-stage { position:relative;display:flex;flex:1;min-height:0; }
.gr-feed { flex:1;overflow:auto;overflow-x:hidden;overflow-anchor:none;overscroll-behavior:contain;min-width:0;min-height:0;padding:4px 12px 12px; }
.gr-entry { padding:9px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere; }
.gr-person { display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-2); }
.gr-person strong { min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500; }
.gr-person time { margin-left:auto;flex:none;font-variant-numeric:tabular-nums;color:var(--text-3); }
.gr-avatar { width:22px;height:22px;border-radius:50%;object-fit:cover;flex:none; }
.gr-initial { display:grid;place-items:center;background:var(--primary-soft);color:var(--primary); }
.gr-text { margin:4px 0 0 28px;white-space:pre-wrap;font-size:14px;line-height:1.5; }
.gr-reply { display:flex;align-items:flex-start;gap:5px;max-width:100%;width:fit-content;margin:5px 0 0 28px;padding:4px 7px;border:1px solid #6b9dbc;border-left-width:3px;border-radius:7px;background:color-mix(in srgb,#8ac4e4 8%,var(--surface));font-size:12px;line-height:1.5; }
.gr-reply > img { flex:none;border-radius:50%;background:#fbf8e9; }.gr-reply > div { min-width:0;white-space:pre-wrap; }.gr-reply.error { border-color:var(--err); }
.gr-progress { width:100%;min-width:100px;height:3px;margin-top:4px;background:var(--line);overflow:hidden; }.gr-progress i { display:block;height:100%;background:#629dbb; }
.gr-score { margin:5px 0 0 28px;font-size:12px;color:var(--primary); }.gr-score .gr-progress { max-width:220px; }
.gr-fact { display:block;margin:4px 0 0 28px;color:var(--primary);font-size:12px; }
.gr-hint { border-bottom:1px solid var(--line);padding:10px 0;margin:0;font-size:14px;line-height:1.6;overflow-wrap:anywhere; }
.gr-empty { font-size:13px;line-height:1.7;color:var(--text-2);margin:18px 0; }
.gr-compose { margin:0;padding:7px 10px max(7px,env(safe-area-inset-bottom));border-top:1px solid var(--gr-line);flex:none;background:color-mix(in srgb,var(--primary) 4%,var(--surface)); }
.gr-actions { display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:5px; }
.gr-modes { display:flex;gap:3px;padding:3px;border:1px solid var(--gr-line);border-radius:9px;background:var(--surface); }
.gr-mode { min-height:32px;padding:4px 9px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--text-2);font:600 12px var(--font);cursor:pointer;white-space:nowrap; }
.gr-mode[aria-pressed="true"] { background:var(--primary);color:var(--surface);box-shadow:0 1px 3px #23462c26; }.gr-mode:disabled { opacity:.5;cursor:default; }.gr-mode:focus-visible { outline:2px solid var(--primary);outline-offset:1px; }
.gr-history { flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:0 10px 10px; }.gr-history-status { font-size:12px;color:var(--text-2);margin:10px 0; }.gr-history-round { border-bottom:1px dashed var(--gr-line); }.gr-history-round > summary { cursor:pointer;padding:12px 3px;font-size:13px; }.gr-history-round > summary span { display:block;margin:4px 0 0 15px;font-size:11px;color:var(--text-2); }.gr-history-round[open] > summary { color:var(--primary); }.gr-history-result { padding:4px 9px;background:var(--surface-2);border-radius:9px;font-size:12px;line-height:1.6;overflow-wrap:anywhere; }.gr-history-result p { margin:5px 0; }.gr-revealed strong { color:var(--primary);font-size:14px; }.gr-history-dashboard { height:340px;flex:none;margin:8px 0 14px;border:1px solid var(--line);border-radius:9px;overflow:hidden; }
.gr-stats { flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:12px;background:var(--gr-tint); }
.gr-stats-tools { display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap; }
.gr-stats .gr-history-status { margin:10px 2px;color:var(--text-2); }
.gr-stats-totals { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0; }
.gr-stats-totals > div { display:flex;flex-direction:column;align-items:center;gap:3px;padding:15px 6px;border:1px solid var(--gr-line);border-radius:12px;background:var(--surface);box-shadow:0 2px 0 color-mix(in srgb,var(--primary) 10%,transparent); }
.gr-stats-totals strong { color:var(--primary);font-size:26px;line-height:1.1;font-variant-numeric:tabular-nums; }.gr-stats-totals span { color:var(--text-2);font-size:12px; }
.gr-stats-summary { margin:0 0 9px;color:var(--text);font-size:12px;line-height:1.6;overflow-wrap:anywhere; }
.gr-stats-mine { margin:0 0 14px;padding:8px 11px;border:1px dashed var(--gr-line);border-radius:8px;background:var(--surface-2);font-size:12px;color:var(--text-2); }
.gr-stats h3 { margin:0 0 6px;font-size:13px;color:var(--text); }
.gr-stats-list { margin:0;padding:0;list-style:none;border:1px solid var(--gr-line);border-radius:10px;overflow:hidden;background:var(--surface); }
.gr-stats-list li { display:flex;align-items:center;gap:9px;min-height:43px;padding:6px 11px;border-bottom:1px solid var(--line);font-size:12px; }.gr-stats-list li:last-child { border-bottom:0; }
.gr-stats-list .gr-stats-podium { background:color-mix(in srgb,#f6d184 17%,var(--surface)); }.gr-stats-place { flex:none;width:19px;text-align:center;color:var(--text-3);font-variant-numeric:tabular-nums; }.gr-stats-podium .gr-stats-place { color:#a07720;font-weight:700; }
.gr-stats-name { flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }.gr-stats-list strong { flex:none;color:var(--primary);font-variant-numeric:tabular-nums; }.gr-stats-list .gr-stats-empty { color:var(--text-2); }
.gr-input { box-sizing:border-box;display:block;width:100%;min-height:52px;max-height:95px;resize:vertical;border:1px solid var(--line);border-radius:8px;padding:8px;color:var(--text);background:var(--surface);font:14px/1.45 var(--font); }
.gr-input { border-color:var(--gr-line);border-radius:11px;background:white; }.gr-input:focus-visible { outline:2px solid #b9dfbd;outline-offset:1px; }
.gr-send-row { display:flex;gap:8px;align-items:center;margin-top:5px; }
.gr-status { flex:1;min-width:0;margin:0;font-size:11px;line-height:1.4;color:var(--text-3);overflow-wrap:anywhere; }.gr-status[role="alert"] { color:var(--err); }
.gr-send { border:0;border-radius:7px;min-height:32px;padding:5px 12px;background:var(--primary);color:white;font:500 13px var(--font);cursor:pointer;flex:none; }.gr-send:disabled { opacity:.5; }
.gr-more { display:block;margin:5px auto;color:var(--primary);padding:5px 12px;background:none;border:0;cursor:pointer;font:12px var(--font); }
.gr-latest { position:absolute;bottom:10px;left:50%;transform:translateX(-50%);background:var(--primary);color:white;padding:6px 12px;border:0;border-radius:20px;font:12px var(--font);white-space:nowrap;cursor:pointer; }
.gr-divider { grid-column:2;grid-row:1;touch-action:none;cursor:col-resize;background:#edf5e7;border-inline:1px solid #d8e7cf;position:relative; }
.gr-divider::after { content:'';position:absolute;width:2px;height:32px;left:2px;top:45%;background:var(--text-3);border-radius:2px; }.gr-divider:hover,.gr-divider:focus-visible { background:var(--primary-soft);outline:1px solid var(--primary); }
@media(max-width:640px){.gr-input{font-size:16px}.gr-head{padding-inline:7px;gap:4px;flex-wrap:wrap;justify-content:space-between}.gr-head > .grow{display:none}.gr-head > strong{gap:4px;font-size:13px}.gr-feed{padding-inline:10px}.gr-actions{gap:6px}.gr-summary-scroll{padding-inline:7px}.gr-block h3{padding-inline:7px}.gr-answer-bottom{margin-left:0}.gr-answer-top{gap:4px}}
@media(max-height:600px){.gr-current{overflow-y:auto}.gr-dashboard{flex:none;height:230px}.gr-hints{max-height:48px}.gr-input{height:42px;min-height:42px}.gr-status{max-height:48px;overflow:auto}}
[data-theme="dark"] .gr-panel { color-scheme:dark;--primary:#a6dfc1;--primary-soft:#304c42;--surface:#253b34;--surface-2:#2b443b;--text:#e6f2e9;--text-2:#c1d4c8;--text-3:#a9c0b2;--line:#476255;--err:#ffb7a9;--gr-tint:#21362f;--gr-line:#52705e;border-color:#52705e;box-shadow:0 2px 0 #152a22; }
[data-theme="dark"] .gr-head { background:#304c3e; }[data-theme="dark"] .gr-hints { background:#463f2d;border-color:#756647; }[data-theme="dark"] .gr-block h3 { background:#314d3b; }[data-theme="dark"] .gr-facts { background:#243d34; }[data-theme="dark"] .gr-facts h3 { background:#2c4941; }[data-theme="dark"] .gr-negative h3 { background:#503c36; }[data-theme="dark"] .gr-negative { border-color:#715549; }[data-theme="dark"] .gr-negative .gr-yes-row p > span { color:#f2b19a; }[data-theme="dark"] .gr-input { background:#21382f; }[data-theme="dark"] .gr-answer.is-best { background:#4a432c;box-shadow:inset 2px 0 #d4b96c;border-color:#776849; }[data-theme="dark"] .gr-answer.is-best .gr-answer-top small { color:#f0d78e; }[data-theme="dark"] .gr-send { color:#21362f; }[data-theme="dark"] .gr-divider { background:#30483c;border-color:#52705e; }
.cm-ai { position: absolute; inset: 0; z-index: 45; display: flex; flex-direction: column; min-width: 0; background: var(--surface); color: var(--text); border-top: 2px solid var(--brand-accent); overflow: hidden; }
.cm-ai .cms-head { flex: none; }
.cm-ai .notif-tabs { flex: none; margin: 0; padding: 0 14px; }
.cm-ai-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 10px 14px; border-bottom: 1px solid var(--line); }
.cm-ai-controls select { max-width: 100%; min-width: 0; padding: 6px 8px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); color: var(--text); font: inherit; }
.cm-ai-output { flex: 1; min-height: 0; overflow: auto; padding: 18px; white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.8; overscroll-behavior: contain; }
.cm-ai-output:empty::before { content: '一起捡起刚才错过的话题。'; color: var(--text-3); }
.cm-ai-line { padding: 8px 0 14px; }
.cm-ai-line strong { color: var(--primary); font-size: 13px; }
.cm-ai-line.user { border-bottom: 1px dashed var(--line); }
.cm-ai-line p { margin: 4px 0 0; }
.cm-ai-footer { flex: none; border-top: 1px solid var(--line); padding: 10px 14px; padding-bottom: max(10px, env(safe-area-inset-bottom)); }
.cm-ai-input { display: block; width: 100%; resize: vertical; min-height: 66px; max-height: 120px; padding: 10px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-2); color: var(--text); font: inherit; }
.cm-ai-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 8px; }
.cm-ai-status { flex: 1 1 140px; margin: 0; color: var(--text-2); font-size: 13px; overflow-wrap: anywhere; }
.cm-ai-status[role="alert"] { color: var(--err); }
.cm-ai-open { color: var(--primary); }
/* 消息区（滚动列表 + 历史消息层）；输入框在它外面，历史层盖不到 */
.cm-stage { position: relative; flex: 1; min-height: 0; display: flex; flex-direction: column; }
.cm-scroll { position: relative; flex: 1; min-height: 0; overflow-y: auto; overflow-x: hidden; overflow-anchor: none; overscroll-behavior: contain; padding: 4px 0 12px; }
.cm-top { min-height: 44px; display: grid; place-items: center; }
.cm-row { display: flow-root; } /* 日期/未读分隔的外边距计入行高，离屏卸载后锚点不漂移。 */
.cm-begin { font-size: 12px; color: var(--text-3); padding: 10px 0; }
.cm-sep, .cm-unread { display: flex; align-items: center; justify-content: center; margin: 12px 0 4px; }
.cm-sep span { font-size: 12px; color: var(--text-3); padding: 2px 10px; border-radius: 999px; background: var(--surface-2); }
.cm-unread { gap: 10px; padding: 0 16px; color: var(--like); font-size: 12px; }
.cm-unread::before, .cm-unread::after { content: ""; flex: 1; height: 1px; background: color-mix(in srgb, var(--like) 40%, transparent); }

.cm-msg { position: relative; display: flex; flex-wrap: wrap; align-items: flex-start; gap: 0 10px; padding: 6px 16px; touch-action: pan-y; }
.cm-msg.at-me { background: color-mix(in srgb, var(--gold, #d4a017) 9%, transparent); box-shadow: inset 2px 0 0 var(--gold, #d4a017); }
.cm-msg.cont { padding-top: 1px; }
.cm-msg:hover { background: color-mix(in srgb, var(--text) 4%, transparent); }
.cm-msg.flash { animation: cm-flash 1.6s ease-out; }
@keyframes cm-flash { 0%, 30% { background: color-mix(in srgb, var(--primary) 18%, transparent); } }
.cm-side { width: 36px; flex: none; display: flex; justify-content: center; align-items: flex-start; }
.cm-face { border-radius: 50%; }
.cm-face .avatar { border-radius: 50%; }
.cm-side time { font-size: 11px; color: var(--text-3); padding-top: 3px; opacity: 0; font-variant-numeric: tabular-nums; }
.cm-msg.cont:hover .cm-side time { opacity: 1; }
.cm-main { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
.cm-head { display: flex; align-items: center; width:100%; gap: 8px; font-size: 12px; color: var(--text-3); }
.cm-head > time { flex:none; white-space:nowrap; }
.cm-name { font-size: 14px; font-weight: 600; color: var(--text-2); }
.cm-name:hover { color: var(--primary); }
.cm-tag { font-size: 11px; line-height: 16px; padding: 0 5px; border-radius: 4px; background: var(--gold-soft); color: var(--gold); font-weight: 600; }
.cm-floor { display: none; }
.cm-text { max-width: min(640px, 100%); padding: 7px 12px; border-radius: 4px 12px 12px 12px; background: var(--surface-2); white-space: pre-wrap; word-break: break-word; line-height: 1.6; }
.cm-text a { color: var(--primary); word-break: break-all; }
.cm-text .stk { width: 36px; height: 36px; vertical-align: -11px; }
/* 只发表情包：去掉气泡，图放大到 96px */
.cm-text.stk-only { background: none; padding: 2px 0; }
.cm-text.stk-only .stk { width: 96px; height: 96px; vertical-align: bottom; }
.cm-text .emoji { width: 1.3em; height: 1.3em; }
.cm-img { display: block; max-width: min(320px, 100%); border-radius: 10px; overflow: hidden; border: 1px solid var(--line); background: var(--surface-2); cursor: zoom-in; }
.cm-img img { display: block; max-width: 100%; max-height: 320px; width: auto; height: auto; object-fit: contain; }
[data-blur-all] .cm-img img, [data-blur-all] .ob-thumb img { filter: blur(24px); }
/* 单图预占位：JS 按 w/h 算好宽 + aspect-ratio；缺尺寸旧图使用稳定的 240×180 缩略框。 */
.cm-img.sized { max-width: 100%; }
.cm-img.sized img, .cm-img.sized video { width: 100%; height: 100%; max-height: none; object-fit: contain; }
/* 反向引用「N 条回复」 */
.cm-replies { display: inline-flex; align-items: center; gap: 4px; margin-top: 4px; padding: 1px 8px; border-radius: 999px; font-size: 12px; line-height: 20px;
  color: var(--primary); background: var(--surface-2); border: 1px solid var(--line); }
.cm-replies:hover { border-color: var(--primary); }
.cm-replies .i { transform: scaleX(-1); }
.cm-rpl-pop { min-width: 240px; max-width: 320px; }
.cm-rpl-pop .pop-head { padding: 8px 10px 4px; }
.cm-rpl-row .who-main { min-width: 0; }
.cm-rpl-text { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 240px; }
/* 正文里图片直链的预览 */
.cm-linkimg { margin-top: 4px; width: 240px; max-width: 100%; min-width: 0; }
.cm-linkimg .cm-img, .cm-linkimg-failed { width: 100%; aspect-ratio: 4 / 3; }
.cm-linkimg-failed { display: flex; align-items: center; justify-content: center; gap: 6px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-2); color: var(--text-2); }
.cm-linkimg-src { display: block; max-width: min(320px, 100%); margin-top: 2px; font-size: 11.5px; color: var(--text-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* 引用属于当前作者的消息，放在作者名下方，避免看起来插进上一条消息。 */
.cm-ref-row { width: 100%; min-width: 0; display: flex; }
.cm-ref {
  position: relative; margin: 0 0 2px 8px; padding: 2px 7px; display: flex; align-items: center; gap: 5px; min-width: 0; max-width: min(560px, calc(100% - 8px));
  border-left: 2px solid var(--line); border-radius: 0 5px 5px 0; background: color-mix(in srgb, var(--surface-2) 70%, transparent);
  font-size: 12.5px; line-height: 18px; color: var(--text-3); text-align: left;
}
.cm-ref .avatar { flex: none; border-radius: 50%; }
.cm-ref strong { color: var(--text-2); flex: none; font-weight: 600; }
.cm-ref.me strong { color: var(--primary); }
.cm-ref-text { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cm-ref-pic { display: inline-flex; align-items: center; gap: 3px; flex: none; font-style: italic; }
.cm-ref:hover, .cm-ref:hover strong { color: var(--text); }
.cm-ref:hover { border-left-color: var(--text-3); }
/* 撤回：不当一条正经消息显示，缩成一行小灰字居中，像系统提示 */
.cm-gone { font-size: 11px; color: var(--text-3); opacity: .7; text-align: center; }
.cm-msg.gone { padding-top: 0 !important; padding-bottom: 0 !important; min-height: 0; }
.cm-msg.gone .cm-side, .cm-msg.gone .cm-head { display: none; }
.cm-msg.gone .cm-main { flex: 1; }
.cm-ref-thumb { width: 18px; height: 18px; object-fit: cover; border-radius: 3px; flex: none; }
/* 发的人选了模糊：整张糊住，按设置点一下揭开 / 打开大图 */
.cm-img.cm-blur img, .cm-img.cm-blur video { transition: filter .2s; }
.cm-img.cm-blur.blur img, .cm-img.cm-blur.blur video { filter: blur(22px) saturate(.7); transform: scale(1.06); }
.cm-img { overflow: hidden; }
.cm-veil { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); display: inline-flex; align-items: center; gap: 4px; padding: 4px 10px; border-radius: 999px;
  background: rgba(0,0,0,.55); color: #fff; font-size: 12px; white-space: nowrap; pointer-events: none; }
.cm-img.cm-blur:not(.blur) .cm-veil { display: none; }
/* 发的人选了轮播 */
.cm-car { position: relative; width: min(320px, 100%); margin-top: 4px; border-radius: 10px; overflow: hidden; background: var(--surface-2); }
.cm-car-track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; }
.cm-car-track::-webkit-scrollbar { display: none; }
.cm-car-cell { flex: 0 0 100%; scroll-snap-align: center; scroll-snap-stop: always; aspect-ratio: 4 / 3; display: grid; place-items: center; border-radius: 0 !important; max-width: none !important; }
.cm-car-cell img, .cm-car-cell video { width: 100%; height: 100%; object-fit: contain; }
.cm-car .car-count { position: absolute; right: 8px; left: auto; top: 8px; width: auto; height: 18px; padding: 0 6px; border-radius: 9px; font-size: 11px; font-variant-numeric: tabular-nums; }
.cm-car .car-dots { bottom: 6px; }
.cm-car .car-dots i { width: 5px; height: 5px; }
.cm-car-track { cursor: grab; user-select: none; }
.cm-car-track img { -webkit-user-drag: none; }
.cm-car .car-nav { opacity: 0; transition: opacity .15s; }
.cm-car:hover .car-nav { opacity: 1; }
/* 文件 */
.cm-files { display: flex; flex-direction: column; gap: 4px; margin-top: 4px; }
.cm-file { display: flex; align-items: center; gap: 10px; width: min(300px, 100%); padding: 8px 10px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); color: var(--text); text-decoration: none; }
.cm-file:hover { border-color: var(--primary); }
.cm-file-ic { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 8px; background: var(--primary-soft); color: var(--primary); flex: none; }
.cm-file-main { flex: 1; min-width: 0; display: flex; flex-direction: column; font-size: 13px; }
.cm-file-main strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
.cm-file-main .muted { font-size: 11px; }
/* 加速：挂在消息下面的一排短回复 */
.cm-boosts { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; }
.cm-boost { display: inline-flex; align-items: center; gap: 4px; height: 22px; padding: 0 8px 0 3px; border-radius: 11px; background: color-mix(in srgb, var(--primary) 9%, var(--surface-2)); font-size: 12px; color: var(--text-2); }
.cm-boost .avatar { border-radius: 50%; }
.cm-boost.mine { color: var(--primary); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--primary) 35%, transparent); }
.boost-pop { display: flex; flex-direction: column; gap: 8px; padding: 10px; width: min(300px, 86vw); }
.boost-row { display: flex; align-items: center; gap: 6px; }
.boost-row .input { flex: 1; min-width: 0; height: 32px; }
.boost-quick { display: flex; flex-wrap: wrap; gap: 4px; }
.boost-sent { position: relative; border-radius: 10px; }
.boost-sent::after { content: ''; position: absolute; pointer-events: none; inset: -2px; padding: 2px; border-radius: inherit; opacity: 0; background: linear-gradient(110deg, var(--ot-edge, #63cdb3), var(--ot-accent, #f8bd67), var(--ot-ink, #d28cd8), var(--ot-edge, #63cdb3)); background-size: 300% 100%; -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); -webkit-mask-composite: xor; mask-composite: exclude; }
.boost-sent::after { opacity: 1; animation: boost-frame-flow 4s linear 2; }
@keyframes boost-frame-flow { to { background-position: 150% 0; } }
@media (prefers-reduced-motion: reduce) { .boost-sent::after { animation: none; } }
/* @ 已读：@名字后面一个小点，灰 = 还没看，绿 = 看过了 */
.at-dot { display: inline-block; width: 6px; height: 6px; margin: 0 2px 1px 2px; border-radius: 50%; background: var(--text-3); opacity: .55; vertical-align: middle; }
.at-dot.read { background: #22b573; opacity: 1; }
.cm-rx { display: flex; flex-wrap: wrap; gap: 4px; }
.cm-chip {
  display: inline-flex; align-items: center; gap: 4px; height: 24px; padding: 0 8px; border-radius: 12px; border: 1px solid transparent;
  background: var(--surface-2); font-size: 12px; color: var(--text-2);
}
.cm-chip:hover { border-color: var(--line); }
.cm-chip.on { background: var(--primary-soft); color: var(--primary); border-color: color-mix(in srgb, var(--primary) 30%, transparent); }
.cm-chip .emo { font-size: 15px; }
.cm-chip .stk.emo { width: 18px; height: 18px; }

.cm-tools {
  position: absolute; top: -12px; right: 16px; z-index: 2; display: none; gap: 2px; padding: 3px;
  background: var(--surface); border: 1px solid var(--line); border-radius: 8px; box-shadow: var(--shadow);
}
.cm-tools:focus-within, .cm-msg.tools .cm-tools { display: flex; }
.cm-tool { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 6px; color: var(--text-2); }
.cm-tool:hover { background: var(--surface-2); color: var(--primary); }
.cm-tool .i { width: 16px; height: 16px; }

/* 回到底部：不在底部时右下角常驻，带新消息数；盖在历史层上面（有新消息时历史层里也出） */
.cm-down {
  position: absolute; right: 16px; bottom: 14px; z-index: 7; display: inline-flex; align-items: center; gap: 4px; height: 32px; padding: 0 12px 0 9px;
  border-radius: 999px; border: 1px solid var(--line); background: var(--surface); color: var(--text-2); font-size: 12px; font-weight: 600; box-shadow: var(--shadow-pop); cursor: pointer;
}
.cm-down:hover { color: var(--primary); border-color: var(--primary); }
.cm-down[hidden] { display: none; }
.cm-down-n { font-style: normal; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: var(--primary); color: var(--primary-ink); font-size: 11px; line-height: 18px; text-align: center; }
.cm-down-n[hidden] { display: none; }
.cm-pill {
  position: absolute; left: 50%; bottom: 54px; transform: translateX(-50%); z-index: 7; padding: 6px 14px; border-radius: 999px;
  background: var(--primary); color: var(--primary-ink); font-size: 13px; font-weight: 600; box-shadow: var(--shadow-pop); white-space: nowrap; max-width: calc(100% - 24px);
}

/* 输入框 */
.cm-compose { margin: 0 14px 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); flex: none; }
.cm-compose:focus-within { border-color: var(--primary); }
.cm-compose.over { border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-soft); }
.cm-compose.ghost { display: block; padding: 14px; text-align: center; color: var(--primary); font-weight: 600; }
.cm-compose textarea {
  display: block; width: 100%; min-height: 42px; max-height: 160px; resize: none; padding: 10px 12px 2px; border: 0; outline: 0; background: none;
  color: var(--text); font: 14px/1.5 var(--font);
}
.cm-bar { display: flex; align-items: center; gap: 2px; padding: 2px 6px 4px; }
.cm-bar:has(.cm-redpack-btn) { flex-wrap: wrap; }
.cm-redpack-btn { color: #bd5949; }
.cm-redpack { position: relative; display: grid; grid-template-columns: minmax(0,1fr); gap: 10px; width: 304px; max-width: 100%; padding: 14px 16px 0; border: 2px solid #663f37; border-radius: 12px 15px 13px 9px; background: #f29a85; color: #422f29; text-align: center; overflow: hidden; cursor: pointer; box-shadow: 2px 3px 0 #663f37; }
.cm-redpack-seal { justify-self: center; display: grid; place-items: center; width: 36px; height: 36px; color: #663f37; transform: rotate(-7deg); }
.cm-redpack-seal .i { width: 34px; height: 34px; }
.cm-redpack-seal svg { fill: #fff5dd; stroke-width: 1.4; }
.cm-redpack-copy { min-width: 0; display: grid; gap: 5px; place-content: center; min-height: 60px; padding: 2px 0 6px; }
.cm-redpack-copy strong { font-size: 16px; line-height: 1.5; overflow-wrap: anywhere; }
.cm-redpack-copy > span { font-size: 13px; }
.cm-redpack-foot { grid-column: 1 / -1; margin: 0 -16px; padding: 7px 13px; border-top: 1.5px dashed #663f3766; display: flex; justify-content: space-between; gap: 8px; font-size: 12px; }
.cm-redpack.is-open { background: #f4dcc7; box-shadow: 1px 2px 0 #663f37; }
.cm-redpack-cover { grid-column: 1/-1; width: calc(100% + 32px); max-width: none; height: auto; aspect-ratio: 3/2; object-fit: contain; margin: -14px -16px 0; }
.rpk-cover { display: block; width: 100%; aspect-ratio: 3/2; object-fit: contain; border-radius: 10px; margin: 0; }
.rpk-cover-preview:empty { display: none; }
.rpk-cover-preview { display: grid; gap: 8px; }
.rpk-archive-cover { width: 42px; height: 52px; object-fit: cover; border-radius: 6px; }
.rpk-medal { display: grid; grid-template-columns: 56px 1fr; gap: 2px 12px; align-items: center; margin-bottom: 18px; color: #86540f; }
.rpk-medal-mark { grid-row: 1/3; display: grid; place-items: center; height: 56px; font-size: 33px; font-weight: 850; background: #ffe08b; border: 2px solid currentColor; border-radius: 45% 40% 48% 38%; transform: rotate(-8deg); animation: rpk-unseal .4s ease-out; }
.rpk-medal > span:last-child { font-size: 12px; color: var(--rpk-ink); }
.rpk-medal-2 { color: #785aba; }.rpk-medal-2 .rpk-medal-mark { background: #e5d6fa; transform: rotate(8deg); }
.rpk-medal-3 { color: #b94545; }.rpk-medal-3 .rpk-medal-mark { background: #ffd0cb; border-radius: 14% 45%; }
.rpk-medal-4 { color: #32708b; }.rpk-medal-4 .rpk-medal-mark { background: #cfeff6; border-radius: 18px; transform: rotate(0); }
.rpk-medal-5 { color: #437846; }.rpk-medal-5 .rpk-medal-mark { background: #d2f0bc; border-radius: 42% 12% 42% 12%; }
@media(prefers-reduced-motion:reduce) { .rpk-medal-mark { animation: none; } }
.rpk-dialog { --rpk-ink: #584137; --rpk-paper: #fff9ec; --rpk-soft: #f7e8d5; --rpk-record: #fffefa; --rpk-coral: #f19a86; box-sizing: border-box; position: fixed; inset: 8px 0 auto; margin: auto; width: min(420px, calc(100% - 20px)); max-width: none; max-height: var(--rpk-height, calc(100dvh - 16px)); padding: 0; border: 2px solid var(--rpk-ink); border-radius: 20px 16px 22px 17px; background: var(--rpk-paper); color: var(--rpk-ink); box-shadow: 4px 5px 0 var(--rpk-ink); overflow: hidden; font-family: var(--font); }
[data-theme="dark"] .rpk-dialog { --rpk-ink: #eee0c7; --rpk-paper: #25372f; --rpk-soft: #35473c; --rpk-record: #192e27; --rpk-coral: #ce806c; }
.rpk-dialog[open] { display: flex; flex-direction: column; }
.rpk-dialog::backdrop { background: #1f292066; }
.rpk-dialog *, .rpk-dialog *::before, .rpk-dialog *::after { box-sizing: border-box; }
.rpk-dialog [hidden] { display: none !important; }
.rpk-head { flex: none; display: flex; align-items: center; gap: 12px; padding: 17px 20px 9px; color: var(--rpk-ink); }
.rpk-head h2 { margin: 0; font-size: 22px; font-weight: 750; letter-spacing: 1px; }
.rpk-head p { margin: 3px 0 0; font-size: 13px; overflow-wrap: anywhere; }
.rpk-heading { flex: 1; min-width: 0; }
.rpk-connector-toggle { flex: none; border: 0; background: transparent; color: var(--rpk-ink); text-decoration: underline; text-underline-offset: 4px; min-height: 38px; padding: 6px; font: 600 13px var(--font); cursor: pointer; }
.rpk-connector-toggle[aria-pressed=true] { background: var(--rpk-soft); border-radius: 8px; }
.rpk-connector { display: flex; flex-direction: column; gap: 12px; }
.rpk-connector h3, .rpk-connector h4 { margin: 0; }
.rpk-doodle { display: inline-flex; width: 36px; height: 36px; flex: none; color: var(--rpk-ink); }
.rpk-doodle svg { width: 100%; height: 100%; }
.rpk-mascot { width: 54px; height: 54px; transform: rotate(-7deg); }
.rpk-close, .rpk-back { flex: none; width: 38px; height: 38px; border: 0; border-radius: 50%; background: transparent; color: inherit; display: grid; place-items: center; cursor: pointer; }
.rpk-close { margin-left: auto; }
.rpk-back { font: 700 25px/1 var(--font); }
.rpk-close:hover, .rpk-back:hover { background: var(--rpk-soft); }
.rpk-content { min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 12px 20px 20px; }
.rpk-form { display: flex; flex-direction: column; gap: 17px; min-width: 0; }
.rpk-dialog:has(.rpk-create-categories) { width:min(720px,calc(100% - 20px)); }
.rpk-create-basics { display:grid;grid-template-columns:1fr 1.5fr;gap:16px;padding-bottom:16px;border-bottom:1px solid color-mix(in srgb,var(--rpk-ink) 22%,transparent); }
.settings-categories { display:grid;grid-template-columns:150px minmax(0,1fr);grid-template-rows:auto auto 1fr;gap:12px 22px;align-items:start; }
.settings-search { grid-column:1;font-size:14px; }
.settings-category-nav { grid-column:1;display:grid;gap:5px; }
.settings-category-button { width:100%;min-width:0;min-height:44px;padding:10px 12px;text-align:left;border:0;border-left:3px solid transparent;border-radius:0 8px 8px 0;background:transparent;color:var(--rpk-ink,var(--text));font:600 14px var(--font);cursor:pointer; }
.settings-category-button:hover { background:var(--rpk-soft,var(--surface-2)); }
.settings-category-button[aria-pressed=true] { border-color:var(--rpk-ink,var(--text));background:var(--rpk-soft,var(--surface-2)); }
.settings-category-body { grid-column:2;grid-row:1 / span 3;min-width:0;border-left:1px solid color-mix(in srgb,var(--rpk-ink,var(--text)) 22%,transparent);padding-left:22px; }
.settings-category-panel { display:flex;flex-direction:column;gap:16px;min-width:0; }
.settings-category-panel h3 { margin:0;font-size:17px; }
.settings-category-panel .rpk-options { margin:0; }
.rpk-create-rules { margin:0;padding-top:8px;border-top:1px solid color-mix(in srgb,var(--rpk-ink) 22%,transparent); }
.rpk-create-footer { position:sticky;bottom:-20px;z-index:3;display:grid;gap:8px;background:var(--rpk-paper);padding:12px 0 8px;border-top:1px solid color-mix(in srgb,var(--rpk-ink) 22%,transparent); }
.rpk-create-footer .rpk-status { max-height:25dvh;overflow:auto; }
.rpk-setting-toggle { display:grid;grid-template-columns:20px minmax(0,1fr) auto;gap:9px;align-items:center;min-height:48px;padding:10px 0;border-bottom:1px solid color-mix(in srgb,var(--rpk-ink) 20%,transparent);cursor:pointer;font-size:14px; }
.rpk-setting-toggle input { width:18px;height:18px;margin:0;accent-color:var(--primary); }
.rpk-setting-value { font-size:12px;font-weight:600;white-space:nowrap;color:var(--rpk-ink); }
@media(max-width:600px) {
 .rpk-create-basics { grid-template-columns:1fr;gap:12px; }
 .settings-categories { display:flex;flex-direction:column;gap:12px; }
 .settings-category-nav { display:flex;flex-wrap:wrap;gap:4px;width:100%; }
 .settings-category-button { width:auto;flex:1 0 28%;text-align:center;padding:8px 5px;border-left:0;border-bottom:3px solid transparent;border-radius:6px 6px 0 0;font-size:13px; }
 .settings-category-body { width:100%;border-left:0;border-top:1px solid color-mix(in srgb,var(--rpk-ink) 22%,transparent);padding:14px 0 0; }
}
.rpk-field { display: flex; flex-direction: column; gap: 7px; font-size: 14px; font-weight: 600; min-width: 0; }
.rpk-field > span { display: flex; justify-content: space-between; align-items: center; }
.rpk-field small, .rpk-help, .rpk-count { font-weight: 400; font-size: 13px; line-height: 1.6; color: var(--rpk-ink); }
.rpk-count { font-size: 12px; }
.rpk-input { min-width: 0; width: 100%; border: 1.5px solid var(--rpk-ink); background: var(--surface); color: var(--text); border-radius: 8px 11px 8px 10px; padding: 10px 12px; min-height: 44px; font: 16px var(--font); }
.rpk-input::placeholder { color: var(--text-3); }
.rpk-dialog button:focus-visible, .rpk-dialog input:focus-visible, .rpk-dialog select:focus-visible, .cm-redpack:focus-visible { outline: 3px solid var(--primary); outline-offset: 3px; }
.rpk-modes { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 6px; padding-bottom: 2px; }
.rpk-mode { display: flex; flex-direction: column; gap: 6px; align-items: center; padding: 9px 2px; background: transparent; color: var(--rpk-ink); border: 1.5px solid transparent; border-radius: 12px 10px 14px 8px; cursor: pointer; text-align: center; min-width: 0; }
.rpk-mode strong { display: block; font-size: 13px; font-weight: 650; white-space: nowrap; }
.rpk-mode[aria-pressed=true] { border-color: var(--rpk-ink); background: var(--rpk-soft); box-shadow: 1px 2px 0 var(--rpk-ink); }
.rpk-mode:hover .rpk-doodle { transform: rotate(-6deg); }
.rpk-primary, .rpk-secondary, .rpk-post { min-height: 44px; padding: 10px 14px; font: 600 15px var(--font); border-radius: 9px 12px 10px 8px; cursor: pointer; text-align: center; white-space: normal; overflow-wrap: anywhere; }
.rpk-primary { border: 1.5px solid var(--rpk-ink); background: var(--rpk-coral); color: #382b25; width: 100%; box-shadow: 2px 3px 0 var(--rpk-ink); margin-bottom: 3px; }
.rpk-primary:active { transform: translate(1px,2px); box-shadow: 1px 1px 0 var(--rpk-ink); }
.rpk-secondary, .rpk-post { background: var(--rpk-soft); color: var(--rpk-ink); border: 1px solid var(--rpk-ink); }
.rpk-dialog a.rpk-secondary { display: flex; align-items: center; justify-content: center; text-decoration: none; }
.rpk-options > a.rpk-secondary { margin: 8px 0; }
.rpk-dialog button:disabled { opacity: .48; cursor: default; }
.rpk-status { margin: 0; font-size: 14px; color: var(--err); line-height: 1.6; overflow-wrap: anywhere; }
.rpk-status:empty { display: none; }
.rpk-countdown { display: block; font-size: 14px; font-variant-numeric: tabular-nums; font-weight: 650; }
.rpk-roster { min-width:0;margin-top:13px;border:1.5px solid color-mix(in srgb,var(--rpk-ink) 55%,transparent);border-left:5px solid var(--rpk-coral);border-radius:11px;background:var(--rpk-record);box-shadow:0 3px 0 color-mix(in srgb,var(--rpk-ink) 16%,transparent);overflow:hidden; }
.rpk-roster summary { cursor:pointer;padding:11px 13px;font-weight:750;background:var(--rpk-soft);list-style-position:inside; }
.rpk-roster summary:focus-visible { outline:2px solid var(--rpk-coral);outline-offset:-3px; }
.rpk-roster[open] summary { border-bottom:1px solid color-mix(in srgb,var(--rpk-ink) 27%,transparent); }
.rpk-roster ul { margin:0;padding:5px 8px;max-height:280px;overflow:auto;list-style:none; }
.rpk-roster li { display:flex;justify-content:space-between;gap:12px;padding:9px 7px;border-bottom:1px solid color-mix(in srgb,var(--rpk-ink) 15%,transparent);font-size:14px;overflow-wrap:anywhere; }
.rpk-roster li:last-child { border-bottom:0; }.rpk-roster li:nth-child(even) { background:color-mix(in srgb,var(--rpk-soft) 45%,var(--rpk-record)); }
.rpk-roster li > span { min-width: 0; }
.rpk-luck { display:inline-block;margin-left:6px;padding:1px 5px;border-radius:5px;font:700 11px/1.5 var(--font);white-space:nowrap; }
.rpk-luck.king { background:#8e581f;color:#fff4d7; }.rpk-luck.last { background:#70528e;color:#f8edff; }
.cm-redpack-due .cm-welcome-copy strong { white-space: pre-line; overflow-wrap: anywhere; }
.rpk-search-row { display: flex; gap: 8px; }
.rpk-search-row button { flex: none; }
.rpk-post-results { display: grid; gap: 6px; margin-top: 8px; font-size: 14px; }
.rpk-post { text-align: left; }
.rpk-chosen { display: grid; gap: 12px; margin-top: 12px; }
.rpk-image { position: relative; aspect-ratio: 4 / 3; width: 100%; min-height: 120px; border-radius: 10px; overflow: hidden; background: var(--rpk-soft); display: grid; place-items: center; isolation: isolate; }
.rpk-image > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.rpk-image.creator > img:first-of-type { filter: blur(14px); }
.rpk-image > button, .rpk-image > p { position: relative; z-index: 2; max-width: 90%; }
.rpk-window-row { display: flex; gap: 20px; align-items: center; }
.rpk-window-row p { flex: 1; }
.rpk-windows { display: grid; grid-template-columns: repeat(3,38px); gap: 4px; }
.rpk-windows button { min-height: 38px; padding: 3px; font-size: 13px; }
.rpk-windows button[aria-pressed=true] { background: var(--rpk-coral); color: #382b25; }
.rpk-tagline { margin: 0; min-height: 48px; display: grid; place-items: center; text-align: center; font-size: 17px; font-weight: 600; line-height: 1.6; overflow-wrap: anywhere; }
.rpk-cipher { margin: 0; padding: 20px 14px; background: var(--rpk-soft); border: 1.5px dashed var(--rpk-ink); border-radius: 10px; color: var(--rpk-ink); font: 600 23px/1.8 var(--mono); text-align: center; overflow-wrap: anywhere; white-space: pre-wrap; }
.rpk-game-title { margin: 0 0 -12px; font-size: 15px; }
.rpk-help { margin: 4px 0 0; }
.rpk-tiles { display: flex; flex-wrap: wrap; gap: 9px; justify-content: center; }
.rpk-tile { min-width: 44px; min-height: 44px; padding: 8px; font-size: 19px; background: var(--rpk-paper); color: var(--rpk-ink); border: 1.5px solid var(--rpk-ink); border-radius: 8px 10px 7px 9px; box-shadow: 1px 3px 0 var(--rpk-ink); cursor: pointer; }
.rpk-tile:nth-child(3n+1) { transform: rotate(-3deg); }
.rpk-tile:nth-child(3n+2) { transform: rotate(3deg); }
.rpk-slots { padding: 14px; min-height: 54px; border-bottom: 2px dashed var(--rpk-ink); color: var(--rpk-ink); overflow-wrap: anywhere; text-align: center; }
.rpk-game-tools { display: flex; gap: 8px; justify-content: center; }
.rpk-win { padding: 0 0 16px; text-align: center; animation: rpk-unseal .25s ease-out; }
.rpk-celebrate { width: 88px; height: 88px; margin: 0 auto 14px; transform: rotate(-4deg); }
.rpk-waiting { width: 112px; height: 112px; align-self: center; margin: 10px auto 16px; transform: rotate(-5deg); }
.rpk-secret { display: grid; place-items: center; min-height: 80px; text-align: center; padding: 18px 10px; color: var(--rpk-ink); background: var(--rpk-soft); border: 1.5px dashed var(--rpk-ink); border-radius: 12px 9px 14px 10px; font-size: 23px; line-height: 1.6; overflow-wrap: anywhere; white-space: pre-wrap; }
.rpk-win p { font-size: 13px; margin-bottom: 0; }
.rpk-source { display: block; margin: 12px 0; text-decoration: none; }
.rpk-result-title { display: block; font-size: 19px; margin-bottom: 12px; }
.rpk-defeat .rpk-celebrate { transform: rotate(8deg); width: 120px; height: 120px; }
.rpk-defeat .rpk-result-title { line-height: 1.6; text-wrap: balance; overflow-wrap: anywhere; }
.rpk-ink-defeat { position: relative; background: #242222; color: #e4c9b6; border-radius: 16px; padding: 24px 16px 20px; overflow: hidden; }
.rpk-defeat-word { display: block; color: #df594e; font: 700 100px/1.15 'STKaiti','KaiTi',serif; text-shadow: 3px 2px 0 #702c2b; letter-spacing: .12em; padding-left: .12em; animation: rpk-ink-enter .65s ease-out both; }
.rpk-ink-defeat .rpk-celebrate { width: 64px; height: 64px; opacity: .72; margin: 6px auto 12px; transform: rotate(-6deg); }
.rpk-ink-defeat .rpk-result-title { font-size: 17px; }
@keyframes rpk-ink-enter { from { opacity: 0; transform: scale(1.13); } to { opacity: 1; transform: scale(1); } }
@media(prefers-reduced-motion:reduce) { .rpk-defeat-word { animation: none; } }
.rpk-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0 14px; }
.rpk-actions > * { flex: 1; margin: 0; }
.rpk-actions [aria-pressed=true] { background: var(--rpk-coral); color: #382b25; }
.rpk-options { margin: 12px 0; }
.rpk-options summary { cursor: pointer; min-height: 36px; padding: 8px 0; }
.rpk-platforms { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.rpk-flow-nav { display:flex; gap:6px; padding:0 18px 10px; flex-shrink:0; }
.rpk-flow-nav button { flex:1; min-width:0; padding:8px 5px; }
.rpk-flow-nav [aria-pressed=true] { background:var(--rpk-coral); color:#382b25; }
.rpk-platform-create { display:grid; gap:12px; }
.rpk-input:is(textarea) { resize:vertical; min-height:80px; }
.rpk-platforms [aria-pressed=true] { background: var(--rpk-coral); color: #382b25; border-width: 2px; }
.rpk-crop { display: grid; gap: 12px; }
.rpk-dialog .rpk-composer[hidden]{display:none!important}
.rpk-content.rpk-cropping>.rpk-crop{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;grid-auto-rows:max-content;align-content:start;scrollbar-gutter:stable;padding:8px 4px 12px 0}
.rpk-crop h3 { margin: 0; font-size: 18px; }
.rpk-crop-canvas { display: block; width: 100%; aspect-ratio: 3/2; border: 1px solid var(--rpk-ink); border-radius: 10px; background: var(--rpk-soft); touch-action: none; cursor: grab; }
.rpk-crop-canvas:active { cursor: grabbing; }
.rpk-crop-canvas:focus-visible { outline: 3px solid var(--primary); outline-offset: 2px; }
.rpk-crop-range { display: grid; grid-template-columns: 70px minmax(0,1fr); align-items: center; gap: 8px; font-size: 14px; }
.rpk-crop-range input { width: 100%; margin: 0; min-height: 36px; accent-color: var(--rpk-ink); }
.rpk-puzzle-rows { display: grid; gap: 8px; padding: 12px 0; }
.rpk-puzzle-row { display: grid; grid-template-columns: repeat(var(--rpk-columns),minmax(0,1fr)); gap: 4px; }
.rpk-puzzle-row span { display: grid; place-items: center; min-width: 0; min-height: 36px; padding: 5px 0; background: var(--rpk-soft); border: 1px solid var(--rpk-ink); border-radius: 5px; font-size: clamp(14px,4vw,22px); }
.rpk-puzzle-row .is-empty { visibility: hidden; }
.rpk-archive-list { display: grid; gap: 8px; }
.rpk-archive-tabs { display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px; }
.rpk-rank-tabs{display:flex;gap:6px;margin-bottom:8px}.rpk-rank-tabs button{flex:1;min-width:0;padding:8px 5px;font-size:13px}.rpk-rank-tabs [aria-pressed=true]{background:var(--rpk-coral);box-shadow:inset 0 0 0 1px var(--rpk-ink)}
.rpk-rank-mine{padding:10px 12px;border-left:3px solid var(--rpk-ink);background:var(--rpk-paper);font-size:13px;font-weight:600}
.rpk-rank-status{color:var(--rpk-ink);font-size:12px}.rpk-rank-status.is-error{color:#b32f24}[data-theme=dark] .rpk-rank-status.is-error{color:#ffb4a5}
.rpk-rank-list{list-style:none;padding:0;margin:10px 0;border:1px solid var(--rpk-ink);border-radius:10px;overflow:hidden;background:var(--rpk-paper)}
.rpk-rank-list li{display:flex;align-items:center;gap:8px;min-height:46px;padding:8px 10px;border-bottom:1px solid color-mix(in srgb,var(--rpk-ink) 18%,transparent);font-size:13px}.rpk-rank-list li:last-child{border-bottom:0}.rpk-rank-list .is-podium{background:color-mix(in srgb,var(--rpk-coral) 20%,var(--rpk-paper))}
.rpk-rank-place{width:18px;flex:none;text-align:center;font-variant-numeric:tabular-nums}.rpk-rank-list img,.rpk-rank-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover;flex:none}.rpk-rank-avatar{display:grid;place-items:center;background:color-mix(in srgb,var(--rpk-ink) 12%,var(--rpk-paper))}.rpk-rank-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rpk-rank-list strong{flex:none;font-variant-numeric:tabular-nums}
.rpk-archive-tabs button { min-width:0;min-height:38px;padding:6px 3px;border:1px solid var(--rpk-ink);border-radius:8px;background:var(--rpk-paper);color:var(--rpk-ink);font:600 12px var(--font);cursor:pointer; }
.rpk-archive-tabs button[aria-pressed="true"] { background:var(--rpk-coral);color:#382b25;border-width:2px; }
.rpk-archive-tabs button:focus-visible { outline:2px solid var(--rpk-ink);outline-offset:2px; }
.rpk-archive-item { display: flex; gap: 12px; width: 100%; align-items: center; text-align: left; border:1px solid color-mix(in srgb,var(--rpk-ink) 35%,transparent);border-radius:9px;background:var(--rpk-soft);padding:10px; }
.rpk-archive-item:hover { border-color:var(--rpk-ink);background:color-mix(in srgb,var(--rpk-coral) 18%,var(--rpk-paper)); }
.rpk-archive-icon { color: var(--rpk-coral); flex: none; }
.rpk-archive-icon .i { width: 32px; height: 32px; }
.rpk-archive-copy { display: grid; gap: 5px; min-width: 0; overflow-wrap: anywhere; }
.rpk-archive-copy > span, .rpk-archive-copy time { font-size: 13px; }
@media(min-width:761px) { .rpk-archive { margin-right: 12px; height: var(--rpk-height); } }
@keyframes rpk-unseal { from { opacity: .3; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@media(prefers-reduced-motion:reduce) { .rpk-win { animation: none; } }
@media(max-width:380px) { .rpk-content { padding: 10px 14px 16px; } .rpk-head { padding: 12px 14px 6px; gap: 8px; } .rpk-modes { gap: 4px; } .rpk-mode strong { font-size: 12px; } }
@media(max-width:480px) { .rpk-head .rpk-mascot { width: 32px; height: 32px; } .rpk-head h2 { font-size: 19px; letter-spacing: 0; } .rpk-close { width: 30px; margin-left: 0; } .rpk-back { width: 24px; } }

.cm-ibtn { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 8px; color: var(--text-2); }
.cm-ibtn:hover { background: var(--surface-2); color: var(--text); }
.cm-ibtn:disabled { opacity: .5; }
.cm-ibtn .i { width: 18px; height: 18px; }
.cm-hint { font-size: 12px; color: var(--text-3); margin-right: 6px; }
.cm-reply, .cm-att {
  display: flex; align-items: center; gap: 8px; margin: 8px 8px 0; padding: 4px 4px 4px 10px; border-radius: 8px;
  background: var(--surface-2); font-size: 12px; color: var(--text-2);
}
.cm-reply > span, .cm-att-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cm-att img { width: 44px; height: 44px; object-fit: cover; border-radius: 6px; }
.cm-x { width: 24px; height: 24px; display: grid; place-items: center; border-radius: 6px; color: var(--text-3); flex: none; }
.cm-x:hover { background: var(--surface-3); color: var(--text); }

/* ---------- 引用块 & 站内链接预览 ---------- */
.quote { margin: 6px 0; border-left: 4px solid var(--line); background: color-mix(in srgb, var(--text) 4%, transparent); border-radius: 0 6px 6px 0; white-space: normal; }
.quote-title { display: flex; align-items: center; gap: 4px; padding: 6px 10px 0; font-size: 12px; color: var(--text-3); }
.quote-who { font-weight: 600; color: var(--text-2); }
.quote-jump { display: inline-grid; place-items: center; width: 18px; height: 18px; border-radius: 4px; color: var(--text-3); margin-left: auto; }
.quote-jump:hover { color: var(--primary); background: var(--surface-3); }
.quote blockquote { margin: 0; padding: 4px 10px 8px; white-space: pre-wrap; }
.onebox {
  display: flex; gap: 10px; align-items: center; max-width: 440px; margin-top: 6px; padding: 8px; border-radius: 10px;
  border: 1px solid var(--line); background: var(--surface); color: var(--text); white-space: normal; text-decoration: none !important;
}
.onebox:hover { border-color: var(--primary); }
.ob-thumb { width: 64px; height: 64px; flex: none; border-radius: 6px; overflow: hidden; background: var(--surface-2); }
.ob-thumb img { width: 100%; height: 100%; object-fit: cover; }
.ob-thumb.blur img { filter: blur(14px); }
.ob-main { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.ob-main strong { font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ob-main .muted { font-size: 12px; }

/* ---------- 站内群聊页 ---------- */
.mainnav .nav-badge, .chat-badge {
  display: inline-flex; flex: none; white-space: nowrap; align-items: center; justify-content: center; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px;
  background: var(--like); color: #fff; font: 600 11px/1 var(--font); font-style: normal; font-variant-numeric: tabular-nums;
}
.mainnav .nav-badge[hidden], .chat-badge[hidden] { display: none; }
body.chat-mode #main { padding-bottom: 0; }
.chat-page {
  display: grid; grid-template-columns: var(--chat-side-w, 300px) 8px minmax(0,1fr); height: calc(100dvh - 61px - 20px); margin-top: 16px;
  border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; background: var(--surface);
}
.chat-side { display: flex; flex-direction: column; min-width: 0; min-height: 0; border-right: 1px solid var(--line); }
.chat-side-resizer { position:relative;cursor:col-resize;touch-action:none;background:var(--surface-2);border-right:1px solid var(--line); }
.chat-side-resizer::after { content:'';position:absolute;top:50%;left:3px;width:2px;height:36px;transform:translateY(-50%);border-radius:2px;background:var(--text-3); }
.chat-side-resizer:hover,.chat-side-resizer:focus-visible,.chat-page.side-dragging .chat-side-resizer { background:var(--primary-soft);outline:1px solid var(--primary);outline-offset:-1px; }
.chat-page.side-dragging { user-select:none; }
.chat-page.solo .chat-side-resizer { display:none; }
.chat-side-head { display: flex; align-items: center; gap: 8px; padding: 14px 14px 10px; }
.chat-side-head strong { font-size: 16px; }
.chat-side-content { flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden; }
.chat-categories { display:flex;gap:5px;padding:0 10px 10px;flex:none; }
.chat-category { position:relative;display:flex;align-items:center;justify-content:center;gap:6px;flex:1;min-width:0;min-height:38px;padding:5px 7px;border-radius:8px;color:var(--text-2);text-decoration:none;font-size:13px; }
.chat-category:hover { background:var(--surface-2); }.chat-category.on { background:var(--primary-soft);color:var(--primary);font-weight:600; }
.chat-category .i { width:18px;height:18px;flex:none; }.chat-category .chat-badge { flex:none; }
.chat-category:focus-visible,.chat-side-collapse:focus-visible { outline:2px solid var(--primary);outline-offset:-2px; }
.chat-side-collapse { flex:none; }.chat-dm-shortcut { position:relative; }
.chat-dm-shortcut .chat-badge { position:absolute;top:0;right:-4px;font-size:10px; }
.chat-side-content > .dm-side { flex:1;min-height:0;border:0;padding:4px 10px 10px; }
.chat-side-content > .dm-side h2 { display:none; }
.dm-embedded { flex:1;border:0;border-radius:0;height:100%;margin:0; }
.dm-embedded .dm-layout { grid-template-columns:minmax(0,1fr); }
.dm-thread { padding-right:36px; }.dm-thread strong { max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.dm-rich-compose { flex:none;margin:8px 12px 12px; }.dm-rich-compose .rich-input { max-height:160px;min-height:56px;overflow:auto; }
.dm-rich-compose.is-disabled { opacity:.6; }.dm-rich-compose.is-disabled .tray,.dm-rich-compose.is-disabled .dm-file-drafts { pointer-events:none; }
.dm-rich-compose .dm-send { background:none;color:var(--primary);min-width:34px;min-height:34px; }
.dm-compose-context { display:flex;align-items:center;gap:10px;padding:6px 10px;border-bottom:1px solid var(--line);font-size:12px;color:var(--text-2); }.dm-compose-context[hidden] { display:none; }.dm-compose-context > span { flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.dm-file-draft { display:flex;gap:8px;padding:5px 10px;font-size:12px; }.dm-file-draft > span { flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.dm-message-tools { display:flex;gap:12px;font-size:11px;color:var(--text-3); }.dm-message-tools button { min-height:26px; }
.dm-quote { display:block;max-width:100%;margin:0 0 6px;padding:5px 8px;border-left:2px solid var(--primary);background:var(--surface);font:12px var(--font);color:var(--text-2);text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.dm-media { display:flex;flex-wrap:wrap;gap:6px;max-width:100%;margin-top:4px; }.dm-image { padding:0;max-width:100%;border:0;background:none;cursor:zoom-in; }.dm-image img { display:block;max-width:min(280px,100%);max-height:300px;width:auto;height:auto;border-radius:8px;object-fit:contain; }
.dm-media .vid { width:min(320px,100%); }.dm-media video { display:block;width:100%;max-height:320px;object-fit:contain; }.dm-file { display:flex;align-items:center;gap:6px;max-width:100%;overflow-wrap:anywhere;color:var(--primary); }
.dm-bubble .stk { max-width:120px;max-height:120px; }
@media(min-width:761px) {
 .chat-page.side-collapsed { grid-template-columns:58px minmax(0,1fr); }
 .chat-page.side-collapsed .chat-side-resizer,.chat-page.side-collapsed .chat-side-content,.chat-page.side-collapsed .chat-side-head > strong,.chat-page.side-collapsed .chat-side-head > .grow,.chat-page.side-collapsed .chat-category-label { display:none; }
 .chat-page.side-collapsed .chat-side-head { justify-content:center;padding:10px 3px; }
 .chat-page.side-collapsed .chat-categories { flex-direction:column;padding:0 6px;gap:8px; }
 .chat-page.side-collapsed .chat-category { flex:none;height:42px;padding:0; }
 .chat-page.side-collapsed .chat-category .chat-badge { position:absolute;top:-3px;right:-3px;font-size:10px; }
}
@media(max-width:760px) {
 .chat-side-collapse { display:none; }
 .chat-categories { padding:0 12px 12px; }
 .chat-category { min-height:42px; }
 .chat-body .dm-embedded { margin:0;border:0; }
 .dm-embedded .dm-pane { display:flex; }
}
.chat-groups { flex: 1; overflow-y: auto; padding: 0 6px 8px; }
.chat-gr { display: flex; align-items: center; gap: 10px; width: 100%; padding: 10px; border-radius: 10px; text-align: left; }
.chat-gr:hover { background: var(--surface-2); }
.chat-gr.on { background: var(--primary-soft); }
.chat-gr-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.chat-gr-top, .chat-gr-sub { display: flex; align-items: center; gap: 8px; }
.chat-gr-label { display: flex; align-items: center; gap: 6px; flex: 1; min-width: 0; }
.chat-gr-top strong { flex: 0 1 auto; min-width: 0; font-size: 14px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.chat-inline-online { display: none; flex: none; white-space: nowrap; font-size: 11px; font-weight: 400; color: var(--text-3); }
.chat-gr-top time { font-size: 12px; color: var(--text-3); flex: none; }
.chat-gr-sub > span { flex: 1; min-width: 0; font-size: 12px; color: var(--text-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.chat-body { display: flex; flex-direction: column; min-width: 0; min-height: 0; }
.chat-body > .spinner { margin: 60px auto; }
.chat-head { display: flex; align-items: center; gap: 10px; height: 60px; padding: 0 16px; border-bottom: 1px solid var(--line); flex: none; }
.chat-head-title { display: flex; flex-direction: column; line-height: 1.3; min-width: 0; }
.chat-head-title strong { font-size: 16px; }
.chat-head-title { flex:1; }
.chat-head-name { display: flex; align-items: center; min-width: 0; gap: 6px; }
.chat-head-name strong { flex: 0 1 auto; min-width: 0; }
.chat-head-title strong,.chat-head-title .muted { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.chat-head-title .muted { font-size: 12px; }
.chat-back { display: none; }
.cm-head > .identity { max-width:100%; }
@media(max-width:640px) {
  .chat-head { gap:6px; height:54px; padding:0 8px; }
  .chat-head > .avatar { width:28px !important; height:28px !important; }
  .chat-head-title strong { font-size:14px; }
  .chat-head-title .muted { font-size:11px; }
  .chat-head > button { flex:none; width:32px; height:36px; padding:0; }
  .chat-members .lbl { display:none; }
  .chat-head.compact { height:42px; }
  .chat-head.compact .chat-head-title .muted { display:none; }
}
.chat-empty { flex: 1; display: grid; place-content: center; justify-items: center; gap: 10px; color: var(--text-3); }
.chat-empty .i { width: 40px; height: 40px; opacity: .5; }
.chat-login { max-width: 420px; margin: 80px auto; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.chat-login-mark { width: 64px; height: 64px; border-radius: 20px; display: grid; place-items: center; background: var(--primary-soft); color: var(--primary); }
.chat-login-mark .i { width: 32px; height: 32px; }
.chat-login h2 { margin: 6px 0 0; }
.chat-login p { margin: 0 0 8px; color: var(--text-2); }
.chat-page .im-gav, .ld-chat .im-gav { display: inline-grid; place-items: center; border-radius: 10px; color: #fff; font-weight: 600; flex: none; }

/* ---------- 成员与设置 ---------- */
.group-panel { max-width: 520px; display: flex; flex-direction: column; max-height: min(720px, calc(100vh - 48px)); }
.group-panel .compose-head h2 .muted { font-size: 14px; font-weight: 400; }
.group-settings-panel { max-width:820px; }
.group-settings-panel .settings-categories { min-height:360px; }
.group-settings-panel .settings-search { width:100%;min-width:0; }
.group-settings-panel .settings-category-panel > h4 { margin:8px 0 0; }
.group-settings-panel .settings-category-panel > p { margin:0; }
.group-settings-panel .gp-inline > .input,.group-settings-panel .gp-inline > .up { min-width:0; }
.group-settings-panel .gp-danger { display:flex;flex-wrap:wrap;gap:18px; }
.group-settings-panel .gp-danger > p { width:100%; }
@media(max-width:600px) {
 .group-settings-panel .settings-categories { min-height:0; }
 .group-settings-panel .settings-category-nav { display:grid;grid-template-columns:repeat(3,minmax(0,1fr)); }
 .group-settings-panel .settings-category-button { width:100%; }
 .group-settings-panel .gp-body { padding:8px 14px 18px; }
 .group-settings-panel .compose-head h2 { display:flex;flex-direction:column;gap:3px; }
 .group-settings-panel .gp-inline { flex-wrap:wrap; }
}
.gp-body { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 4px 20px 20px; display: flex; flex-direction: column; gap: 14px; }
.gp-body > * { flex-shrink: 0; }
.gp-sec { display: flex; flex-direction: column; gap: 6px; }
.gp-inline { display: flex; gap: 8px; align-items: flex-start; }
.gp-inline > .input, .gp-inline > .up { flex: 1; }
.gp-note { margin: 0; font-size: 13px; }
.gp-list { display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.gp-row { display: flex; align-items: center; gap: 10px; padding: 8px 12px; }
.gp-row + .gp-row { border-top: 1px solid var(--line); }
.gp-row .avatar { border-radius: 50%; }
.gp-who { flex: 1; min-width: 0; display: flex; flex-direction: column; line-height: 1.35; }
.gp-who .muted { font-size: 12px; }
.gp-danger { padding-top: 8px; border-top: 1px solid var(--line); }
.up { position: relative; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.up > .input { flex: 1; min-width: 160px; }
.up-chips { display: contents; }
.up-chip { display: inline-flex; align-items: center; gap: 2px; height: 26px; padding: 0 4px 0 10px; border-radius: 13px; background: var(--primary-soft); color: var(--primary); font-size: 13px; font-weight: 600; }
.up-chip button { width: 20px; height: 20px; display: grid; place-items: center; border-radius: 50%; }
.up-chip button:hover { background: color-mix(in srgb, var(--primary) 15%, transparent); }
.up-sug {
  position: absolute; left: 0; right: 0; top: 100%; z-index: 5; margin-top: 4px; max-height: 240px; overflow-y: auto; padding: 4px;
  background: var(--surface); border: 1px solid var(--line); border-radius: 10px; box-shadow: var(--shadow-pop);
}
.up-opt { display: flex; align-items: center; gap: 8px; width: 100%; padding: 6px 8px; border-radius: 8px; text-align: left; font-size: 14px; }
.up-opt:hover { background: var(--surface-2); }
.up-opt .avatar { border-radius: 50%; }
.up-none { padding: 8px; font-size: 13px; }

/* ---------- 飞书伪装里的群聊：沿用飞书的样子 ---------- */
.im .cm-pane { background: var(--im-chat); }
.im .cm-msg { padding: 6px 20px; }
.im .cm-msg:hover { background: var(--im-hover); }
.im .cm-text { background: var(--im-bubble); border-radius: 4px 10px 10px 10px; }
.im .cm-name { font-weight: 500; }
.im .cm-tag { background: #FFF3E0; color: #D46B08; }
.im .cm-compose { margin: 0 16px 14px; border-radius: 10px; }
.im .cm-sep span { background: var(--im-hover); }
.im .cm-chip.on { background: var(--primary-soft); color: var(--primary); }
[data-skin="feishu"] .modal { z-index: 60; }

@media (max-width: 760px) {
  .chat-page { grid-template-columns: 1fr; height: calc(100dvh - 61px); margin: 0 -10px; border: 0; border-radius: 0; }
  .chat-side-resizer { display:none; }
  .chat-inline-online { display: inline; }
  .chat-head .chat-members-extra { display: none; }
  .chat-page .chat-body { display: none; }
  body.chat-open .chat-page .chat-side { display: none; }
  body.chat-open .chat-page .chat-body { display: flex; }
  .chat-back { display: inline-grid; }
  .chat-head { padding: 0 8px; }
  .cm-msg, .im .cm-msg { padding: 6px 12px; }
  .cm-hint { display: none; }
  .cm-tools { right: 10px; }
  .cm-compose { margin: 0 8px 8px; }
}

/* 多图 / 视频消息 */
.cm-media { display: grid; grid-template-columns: minmax(0, 1fr); gap: 4px; min-width: 0; max-width: min(360px, 100%); }
.cm-media.n2, .cm-media.n3 { width: 360px; }
.cm-media.n2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cm-media.n3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cm-media .cm-img { position: relative; min-width: 0; max-width: 100%; }
.cm-media.n2 .cm-img, .cm-media.n3 .cm-img { aspect-ratio: 1; }
.cm-media.n2 .cm-img img, .cm-media.n3 .cm-img img, .cm-media .cm-img video { width: 100%; height: 100%; max-height: 320px; object-fit: cover; }
.cm-media.n1 .cm-img video { object-fit: contain; }
.cm-video-placeholder { display: block; width: 100%; height: 100%; background: var(--surface-2); }
.cm-video-inline { position: relative; }
.cm-video-inline .vid { width: 100%; height: 100%; }
.cm-video-inline video { display: block; width: 100%; height: 100%; object-fit: contain; cursor: auto; -webkit-touch-callout: none; }
.cm-video-touch { position: absolute; z-index: 1; inset: 0 0 42px; width: 100%; min-height: 30px; padding: 0; background: transparent; cursor: pointer; -webkit-touch-callout: none; }
.cm-media .play-mark { width: 38px; height: 38px; margin: -19px 0 0 -19px; }
[data-blur-all] .cm-img video { filter: blur(24px); }
/* 发送中 / 失败 */
.cm-msg.pending { opacity: .6; }
.cm-state { font-size: 12px; color: var(--text-3); margin-top: 2px; }
.cm-state.err { color: var(--danger, #d4483b); opacity: 1; }
.cm-msg.pending:has(.cm-state.err) { opacity: 1; }
.cm-state .btn-text { margin-left: 6px; font-size: 12px; }
.cm-compose .tray, .im-compose .tray, .ld-c-edit .tray { grid-template-columns: repeat(auto-fill, 64px); padding: 8px 10px 0; width: auto; }

.cm-edited { margin-left: 4px; font-size: 11px; color: var(--text-3); white-space: nowrap; }

/* 表情回应：表情 + 回应人头像 */
.cm-chip { padding: 0; overflow: hidden; }
.cm-chip-emo { display: inline-flex; align-items: center; gap: 4px; height: 100%; padding: 0 8px; color: inherit; }
.cm-chip-who { display: inline-flex; align-items: center; height: 100%; padding: 0 6px 0 0; margin-left: -4px; }
.cm-chip-who .avatar { border-radius: 50%; box-shadow: 0 0 0 2px var(--surface-2); }
.cm-chip-who .avatar + .avatar { margin-left: -6px; }
.cm-chip.on .cm-chip-who .avatar { box-shadow: 0 0 0 2px var(--primary-soft); }
.emo-plus1 { display: inline-grid; place-items: center; min-width: 1.6em; height: 1.25em; padding: 0 .25em; border-radius: .4em; font: 700 .72em/1 var(--font); background: var(--primary-soft); color: var(--primary); }
.cm-chip .emo-plus1, .eq-btn .emo-plus1, .cm-q .emo-plus1 { font-size: 12px; }
.at { padding: 0 2px; border-radius: 4px; color: var(--primary); background: var(--primary-soft); font: inherit; font-weight: 600; }
.at.me { background: color-mix(in srgb, var(--gold, #d4a017) 22%, transparent); color: var(--gold, #b8860b); }
.cm-img { position: relative; }
.cm-zoom { position: absolute; right: 6px; bottom: 6px; width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%;
  background: rgba(0, 0, 0, .55); color: #fff; opacity: 0; transition: opacity .15s; pointer-events: none; }
.cm-zoom .i { width: 15px; height: 15px; }
.cm-img:hover .cm-zoom, .cm-img:focus-visible .cm-zoom { opacity: 1; }
@media (hover: none) { .cm-zoom { opacity: .75; } }
/* 左滑回复 */
.cm-msg > :not(.cm-sw) { transition: transform .18s; }
.cm-msg.swiping > :not(.cm-sw) { transform: translateX(var(--sw, 0)); transition: none; }
.cm-sw { position: absolute; right: 18px; top: 50%; width: 32px; height: 32px; margin-top: -16px; display: grid; place-items: center; border-radius: 50%;
  background: var(--surface-2); color: var(--text-3); opacity: 0; transform: scale(.6); transition: opacity .12s, transform .12s; pointer-events: none; }
.cm-sw .i { width: 18px; height: 18px; }
.cm-msg.swiping .cm-sw { opacity: 1; transform: scale(.85); }
.cm-msg.sw-ready .cm-sw { background: var(--primary); color: var(--primary-ink); transform: scale(1); }
/* 谁回应了 */
.pop-who { width: 290px; padding: 0; }
.who-pop > .spinner { margin: 20px auto; }
.who-tabs { display: flex; gap: 2px; padding: 6px 6px 0; overflow-x: auto; border-bottom: 1px solid var(--line); }
.who-tab { flex: none; display: inline-flex; align-items: center; padding: 6px 8px; font-size: 13px; color: var(--text-2); border-bottom: 2px solid transparent; }
.who-tab .stk.emo { width: 18px; height: 18px; vertical-align: -4px; }
.who-tab.on { color: var(--primary); border-bottom-color: var(--primary); }
.who-list { max-height: 320px; overflow-y: auto; padding: 4px; }
.who-row { display: flex; align-items: center; gap: 10px; width: 100%; padding: 6px 8px; border-radius: 8px; text-align: left; }
.who-row:hover { background: var(--surface-2); }
.who-row .avatar { border-radius: 50%; }
.who-main { flex: 1; min-width: 0; display: flex; flex-direction: column; line-height: 1.3; }
.who-main strong { font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.who-main .muted { font-size: 12px; }
.who-mark { flex: none; max-width: 120px; font-size: 18px; }
.who-mark .stk.emo { width: 22px; height: 22px; }
.who-reply { display: block; font-size: 12px; color: var(--text-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.who-none { padding: 14px; margin: 0; text-align: center; font-size: 13px; }
/* 右键菜单 / 悬停快捷表情 */
.cm-menu { min-width: 210px; }
.gp-files-list { max-height: 320px; overflow-y: auto; overscroll-behavior: contain; }
.gp-file { display: flex; align-items: center; gap: 8px; padding: 10px 0; border-bottom: 1px solid var(--line); color: var(--text); }
.gp-file > span { flex: 1; min-width: 0; }
.gp-file strong { display: block; overflow-wrap: anywhere; }
.gp-file small { display: block; font-size: 12px; }
.gp-file > svg { flex: none; }
.gp-files-controls { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
.cm-menu-rx { display: flex; gap: 2px; padding: 2px 2px 6px; margin-bottom: 4px; border-bottom: 1px solid var(--line); }
.cm-menu-boost { display: flex; gap: 4px; padding: 2px 2px 6px; margin-bottom: 4px; border-bottom: 1px solid var(--line); }
.cm-menu-boost .chip { flex: 1; min-width: 0; max-width: 72px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding: 4px 6px; }
.cm-menu-rx .eq-btn { width: 32px; height: 32px; font-size: 18px; }
.cm-menu-rx .eq-btn .stk, .cm-menu-rx .eq-btn img { width: 22px; height: 22px; }
.cm-menu-rx .eq-btn.on { background: var(--primary-soft); }
.cm-quick { display: flex; gap: 2px; padding-right: 2px; margin-right: 2px; border-right: 1px solid var(--line); }
.cm-q .stk.emo, .cm-q img { width: 18px; height: 18px; }
.cm-q .emo { font-size: 16px; }
.cm-q.on { background: var(--primary-soft); }
/* @ 提示 */
.cm-welcome { position: relative; display: flex; align-items: center; gap: 12px; width: fit-content; max-width: calc(100% - 28px); margin: 18px auto; padding: 12px 20px 12px 15px;
  border: 2px solid #e9937d; border-radius: 22px 12px 22px 12px; color: var(--text); background: color-mix(in srgb, var(--surface) 86%, #ffd88e); box-shadow: 4px 4px 0 color-mix(in srgb, #ef977d 45%, transparent); animation: cm-welcome-in .55s cubic-bezier(.2,.8,.3,1.2) both; }
.cm-welcome-face { flex: none; border-radius: 50%; outline: 2px solid #e9937d; outline-offset: 3px; }
.cm-welcome-face .avatar { border-radius: 50%; }
.cm-welcome-copy { display: grid; gap: 3px; min-width: 0; font-size: 13px; }
.cm-welcome-hello { font-weight: 850; font-size: 17px; letter-spacing: .03em; }
.cm-welcome-name { font-weight: 750; color: var(--primary); max-width: 100%; overflow-wrap: anywhere; text-align: left; }
.cm-welcome-star { position: absolute; left: -10px; top: -15px; color: #e4856f; font-size: 31px; transform: rotate(-12deg); }
.cm-welcome-spark { color: #d29d42; font-size: 28px; transform: rotate(12deg); }
.cm-welcome.gone { border: 0; background: none; box-shadow: none; color: var(--muted); font-size: 12px; }
@keyframes cm-welcome-in { from { opacity: 0; transform: translateY(8px) rotate(-2deg) scale(.94); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .cm-welcome { animation: none; } }
.cm-compose { position: relative; }
.cm-mention { position: absolute; left: 8px; bottom: calc(100% + 6px); z-index: 8; width: min(300px, calc(100% - 16px)); max-height: min(280px, 45dvh); overflow-y: auto; padding: 4px;
  background: var(--surface); border: 1px solid var(--line); border-radius: 10px; box-shadow: var(--shadow-pop); }
.cm-mention[hidden] { display: none; }
.cm-mopt { display: flex; align-items: center; gap: 8px; width: 100%; padding: 6px 8px; border-radius: 8px; text-align: left; font-size: 14px; }
.cm-mopt .avatar { border-radius: 50%; }
.cm-mopt strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cm-mstatus { padding: 8px; font-size: 13px; }
.cm-mopt .muted { font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cm-mopt.on, .cm-mopt:hover { background: var(--surface-2); }
/* 回复条 */
/* 一行就够：谁：内容…  小图 × */
.cm-reply { min-height: 0; padding-top: 2px; padding-bottom: 2px; margin-top: 6px; }
.cm-reply .cm-reply-main { display: flex; align-items: center; gap: 2px; line-height: 1.5; white-space: nowrap; overflow: hidden; }
.cm-reply .cm-reply-main strong { flex: none; max-width: 40%; overflow: hidden; text-overflow: ellipsis; font-weight: 600; }
.cm-reply-text { color: var(--text-3); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cm-reply-pic { width: 22px; height: 22px; object-fit: cover; border-radius: 4px; flex: none; }
.cm-reply .cm-x { width: 22px; height: 22px; }
/* 搜聊天记录 */
.cm-search { position: absolute; inset: 0; z-index: 7; display: flex; flex-direction: column; background: var(--surface); }
.cms-head { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border-bottom: 1px solid var(--line); }
.cms-head .input { flex: 1; min-width: 0; }
.cms-img { display: inline-flex; align-items: center; gap: 4px; font-size: 13px; color: var(--text-2); white-space: nowrap; }
.cms-list { flex: 1; overflow-y: auto; padding: 6px; }
.cms-list > .spinner { margin: 30px auto; }
.cms-row { display: flex; align-items: center; gap: 10px; width: 100%; padding: 8px; border-radius: 8px; text-align: left; }
.cms-row:hover { background: var(--surface-2); }
.cms-row .avatar { border-radius: 50%; flex: none; }
.cms-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.cms-top { display: flex; gap: 8px; align-items: baseline; font-size: 13px; }
.cms-top time { font-size: 12px; color: var(--text-3); }
.cms-text { font-size: 13px; color: var(--text-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cms-pic { width: 40px; height: 40px; object-fit: cover; border-radius: 6px; flex: none; }
.cms-empty { text-align: center; padding: 30px 10px; margin: 0; font-size: 13px; }
.cms-more { display: block; margin: 8px auto; }
/* 管理员：名字上色，不另挂标签 */
.admin-name { background: linear-gradient(90deg, #e2557a, #e3a33b, #3bb58e, #4b8be0); -webkit-background-clip: text; background-clip: text; color: transparent !important; }
/* 炫彩名：渐变慢慢流动，加粗 */
.fancy-name { background: linear-gradient(90deg, #ff4d8d, #ffb238, #3bd18e, #4b9bff, #b06bff, #ff4d8d); background-size: 300% 100%;
  -webkit-background-clip: text; background-clip: text; color: transparent !important; font-weight: 700; animation: fancy-flow 6s linear infinite; }
@keyframes fancy-flow { to { background-position: 300% 0; } }
@media (prefers-reduced-motion: reduce) { .fancy-name { animation: none; } }
/* 成员：在线状态 */
.gp-face { position: relative; flex: none; }
.gp-dot { position: absolute; right: -1px; bottom: -1px; width: 10px; height: 10px; border-radius: 50%; background: var(--text-3); box-shadow: 0 0 0 2px var(--surface); }
.gp-dot.on { background: #2fb36b; }
.gp-bio { font-size: 12px; color: var(--text-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gp-seen { font-size: 12px; color: var(--text-3); white-space: nowrap; flex: none; }
.gp-seen.on { color: #2fb36b; }
.gp-acts { display: flex; gap: 4px; flex: none; }

/* ---------- 站内悬浮群聊 ---------- */
.chat-dock { position: fixed; right: 18px; bottom: 18px; z-index: 72; }
body:has(.fish-resume) .chat-dock:not(.open) { bottom: 64px; }
.bossing .chat-dock, .chat-mode .chat-dock { display: none; }
.cd-bubble {
  position: relative; width: 52px; height: 52px; display: grid; place-items: center; border-radius: 50%;
  background: var(--primary); color: var(--primary-ink); box-shadow: var(--shadow-pop); transition: transform .15s;
}
.cd-bubble:hover { transform: scale(1.06); }
.cd-bubble .i { width: 24px; height: 24px; }
.cd-badge { position: absolute; top: -4px; right: -4px; box-shadow: 0 0 0 2px var(--surface); }
.cd-panel {
  width: min(400px, calc(100vw - 24px)); height: min(600px, calc(100dvh - 90px)); display: flex; flex-direction: column;
  background: var(--surface); border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow-pop); overflow: hidden;
}
.cd-panel > .spinner { margin: 60px auto; }
.cd-head { display: flex; align-items: center; gap: 6px; height: 46px; padding: 0 6px 0 12px; border-bottom: 1px solid var(--line); flex: none; }
.cd-title, .cd-pick { min-width: 0; max-width: 150px; font-size: 14px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cd-pick { border: 0; background: none; color: var(--text); font: 600 14px var(--font); cursor: pointer; }
.cd-n { font-size: 12px; white-space: nowrap; }
.cd-head .btn-icon { width: 30px; height: 30px; }
.cd-head .btn-icon .i { width: 16px; height: 16px; }
.cd-panel .cm-msg { padding: 5px 12px; }
.cd-panel .cm-compose { margin: 0 8px 8px; }
@media (max-width: 760px) {
  .chat-dock { right: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); }
  .chat-dock.open { left: 0; right: 0; bottom: 0; }
  .chat-dock.open .cd-panel { width: 100%; height: min(80dvh, 640px); border-radius: 14px 14px 0 0; }
}

/* ---------- 弹出的小窗 ---------- */
body.chat-pip { margin: 0; height: 100dvh; display: flex; flex-direction: column; background: var(--surface); overflow: hidden; }
body.chat-pip > .cm-pane { flex: 1; min-height: 0; }
.pip-bar { display: flex; align-items: center; gap: 6px; height: 32px; padding: 0 8px 0 12px; border-bottom: 1px solid var(--line); font-size: 12px; flex: none; }
.pip-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
.pip-op { display: inline-flex; align-items: center; gap: 4px; color: var(--text-3); }
.pip-op input { width: 80px; accent-color: var(--primary); }
.pip-op-n { width: 32px; font-variant-numeric: tabular-nums; }
.pip-btn { width: 26px; height: 26px; display: grid; place-items: center; border-radius: 6px; color: var(--text-2); }
.pip-btn:hover { background: var(--surface-2); }
.pip-btn.on { background: var(--primary-soft); color: var(--primary); }
body.chat-pip .cm-msg { padding: 5px 12px; }
body.chat-pip .cm-compose { margin: 0 8px 8px; }
.cm-road { display: block; width: fit-content; font-size: 11.5px; color: var(--primary); margin: 3px 0; }
body.lock .chat-dock { visibility: hidden; }

/* 成员管理 / 设置 / 引导 */
/* 弹窗外壳 overflow:hidden，里面要自己滚：整个面板做成一列，内容区占满剩下的高度 */
.member-admin, .me-settings { width: min(680px, 100%); max-width: 680px; display: flex; flex-direction: column; max-height: min(860px, calc(100vh - 48px)); max-height: min(860px, calc(100dvh - 48px)); }
.member-admin > header, .me-settings > header { flex: none; }
.ma-body { flex: 1; min-height: 0; padding: 14px 18px 18px; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; display: flex; flex-direction: column; gap: 10px; }
.ma-body > * { flex-shrink: 0; }
.away-set { display: flex; flex-direction: column; gap: 6px; }
.set-check.sub { padding-left: 24px; gap: 6px; }
.sm-num { width: 70px; height: 28px; padding: 0 6px; }
.ma-search { display: flex; gap: 10px; align-items: center; }
.ma-search .input { flex: 1; min-width: 0; }
.ma-note { margin: 0; font-size: 12px; }
.ma-list { display: flex; flex-direction: column; gap: 6px; }
.ma-list > .spinner { margin: 30px auto; }
.ma-empty { text-align: center; padding: 24px 0; }
.ma-row { border: 1px solid var(--line); border-radius: 10px; padding: 8px 10px; }
.ma-top { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.ma-top .gp-who { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.ma-top .gp-who .muted { font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ma-tags { display: flex; gap: 4px; flex-wrap: wrap; justify-content: flex-end; }
.badge.danger { background: color-mix(in srgb, var(--danger, #d33) 14%, transparent); color: var(--danger, #d33); }
.ma-edit { display: flex; flex-direction: column; gap: 6px; margin-top: 8px; padding-top: 8px; border-top: 1px dashed var(--line); }
.ma-kind { display: grid; grid-template-columns: 120px 1fr 90px 1.4fr auto auto; gap: 6px; align-items: center; font-size: 13px; }
.ma-kind-name { display: flex; flex-direction: column; line-height: 1.25; }
.ma-kind-name .muted { font-size: 11px; }
.ma-kind.on .ma-cur { color: var(--danger, #d33); }
.ma-cur { font-size: 12px; }
@media (max-width: 640px) {
  .ma-kind { grid-template-columns: 1fr 1fr; }
  .ma-kind .input { width: 100%; }
}
.set-sec { display: flex; flex-direction: column; gap: 8px; align-items: flex-start; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.set-sec:last-child { border-bottom: 0; }
.set-sec h3 { margin: 0; font-size: 15px; }
.set-sec .field { width: 100%; }
.set-check { display: inline-flex; gap: 6px; align-items: center; font-size: 14px; }
.me-bio { display: block; font-size: 13px; color: var(--text-2); margin-top: 2px; }
.me-limits { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; font-size: 12px; color: var(--danger, #d33); margin-top: 4px; }
.ucard-bio { font-size: 13px; color: var(--text-2); margin: 6px 0 2px; word-break: break-word; }
.guide { width: min(440px, 100%); }
.guide-body { padding: 18px 22px 8px; }
.guide-body h3 { margin: 0 0 8px; font-size: 18px; }
.guide-body p { margin: 0; line-height: 1.7; color: var(--text-2); }
.guide-dots { display: flex; gap: 6px; justify-content: center; margin-top: 18px; }
.guide-dots i { width: 7px; height: 7px; border-radius: 50%; background: var(--line); }
.guide-dots i.on { background: var(--primary); width: 18px; border-radius: 4px; }
.guide-foot { display: flex; align-items: center; gap: 8px; padding: 12px 18px 16px; }

.au-chips { display: inline-flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.au-chips .chip { display: inline-flex; align-items: center; gap: 2px; }
.chip-x { display: inline-grid; place-items: center; width: 18px; height: 18px; margin-right: -4px; border-radius: 50%; color: inherit; opacity: .7; }
.chip-x:hover { opacity: 1; background: rgba(0, 0, 0, .08); }
.au-add { width: 130px; }

.act.rx .rx-n { padding: 0 2px; border-radius: 4px; }
.act.rx .rx-n:hover { background: rgba(0, 0, 0, .08); text-decoration: underline; }
.rp-who { align-self: flex-start; margin: 2px 0 4px; }


.send-sum { font-size: 13px; font-weight: 600; }
.send-sum .muted { font-weight: 400; }

.veil .veil-why { font-size: 12px; opacity: .85; }

/* 离开期间的新消息 */
.cm-away { position: absolute; left: 12px; right: 12px; top: 10px; z-index: 4; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px;
  padding: 8px 10px 8px 14px; border-radius: 12px; background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-pop); font-size: 13px; }
.cm-away-t { flex: 1 1 200px; min-width: 0; }
.cm-away-acts { display: flex; align-items: center; gap: 6px; }
.cm-away-at { color: var(--like); font-weight: 600; }
.cm-digest .notif-tabs { padding: 6px 10px 0; }
.cmd-who { display: flex; flex-wrap: wrap; gap: 6px; padding: 8px 12px 0; }
.cmd-p { display: inline-flex; align-items: center; gap: 5px; padding: 2px 8px 2px 2px; border-radius: 999px; background: var(--surface-2); font-size: 12px; }
.cmd-p .avatar { border-radius: 50%; }
.cmd-p b { color: var(--text-3); font-weight: 600; }

/* 手机发图：上传区别太高，标题栏要一眼看到 */
@media (max-width: 640px) {
  .compose-body { padding: 16px; gap: 16px; }
  .compose-body .drop { min-height: 120px; }
  .compose-body .drop-empty { padding: 14px 12px; }
}

/* 发图弹窗布局：左媒体右表单；有图后左栏放宽；多图怎么发放在图下面，不挤进上传框 */
.compose-media { display: flex; flex-direction: column; gap: 10px; min-width: 0; align-self: start; }
.compose-media .drop { align-self: stretch; }
.compose-media .send-mode { margin-top: 0; padding: 10px 12px; border-radius: 10px; background: var(--surface-2); }
.compose-body:has(.drop.has) { grid-template-columns: minmax(0, 1.2fr) minmax(300px, 1fr); }
.compose-body:has(.drop.has) .tray { grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); }
.compose-foot .foot-sum { font-size: 12px; }
.compose-panel .switch .muted { font-weight: 400; }
.cm-range { min-width: 220px; }
.cm-range .pop-head { padding: 4px 10px 6px; font-size: 13px; }
@media (max-width: 900px) {
  .compose-body:has(.drop.has) { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .compose-panel .compose-foot { position: sticky; bottom: 0; background: var(--surface, var(--bg)); }
  .compose-foot .foot-sum { display: inline; }
}
/* 群头像：站标 */
.im-gav.logo { background: var(--surface-2); padding: 0; overflow: hidden; }
.im-gav.logo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.chat-badge.at { background: var(--primary); }
.gp-h { font-size: 13px; margin: 0 0 6px; color: var(--text-2); }
.ma-fancy { width: auto; height: 28px; flex: none; }
.comment-form { position: relative; }
.to-post .segs { margin-bottom: 6px; }
.to-post .tag-pick { max-height: 220px; overflow-y: auto; }

/* 回复 / 编辑条 + 待发图片托盘：压成细细一行，别占半个输入框 */
.cm-compose .cm-reply, .cm-compose .cm-att { margin: 6px 8px 0; padding: 2px 2px 2px 8px; gap: 6px; min-height: 24px; line-height: 20px; }
.cm-compose .cm-reply .i { width: 14px; height: 14px; flex: none; }
.cm-compose .cm-reply-pic { width: 18px; height: 18px; border-radius: 3px; }
.cm-compose .cm-x { width: 20px; height: 20px; }
.cm-compose .cm-att img { width: 28px; height: 28px; border-radius: 4px; }
.cm-compose .tray { grid-template-columns: repeat(auto-fill, 44px); gap: 4px; padding: 6px 8px 0; }
.cm-compose .tray-it, .cm-compose .tray-add { border-radius: 6px; }
.cm-compose .tray-info { display: none; }
.cm-compose .tray-ops { left: 2px; right: 2px; bottom: 2px; gap: 2px; }
.cm-compose .tray-ops button, .cm-compose .tray-nomask { width: 16px; height: 16px; border-radius: 4px; }
.cm-compose .tray-ops .i { width: 11px; height: 11px; }
.cm-compose .tray-it:has(.tray-info) .tray-ops { bottom: 2px; }
.cm-compose .tray-st-t { font-size: 10px; }
.cm-compose .tray-err-r { display: none; }
.cm-compose .tray-car { height: 22px; padding: 0 8px; font-size: 11px; }
.cm-compose .tray-it .kind-badge { transform: scale(.8); transform-origin: top right; top: 2px; right: 2px; }
.cm-compose .tray-ok { width: 14px; height: 14px; left: 2px; top: 2px; }

/* 选帖子弹层（群聊 / 公告引用帖子） */
.pop-post { width: min(360px, calc(100vw - 24px)); }
.post-pick { display: flex; flex-direction: column; gap: 6px; padding: 8px; }
.pp-list { display: flex; flex-direction: column; max-height: 300px; overflow-y: auto; }
.pp-list .spinner { margin: 16px auto; }
.pp-row { display: flex; align-items: center; gap: 8px; padding: 6px; border-radius: 8px; text-align: left; width: 100%; }
.pp-row:hover, .pp-row:focus-visible { background: var(--surface-2); }
.pp-thumb { flex: none; width: 40px; height: 40px; border-radius: 6px; overflow: hidden; background: var(--surface-2); }
.pp-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pp-thumb.blur img { filter: blur(8px); }
.pp-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; font-size: 13px; }
.pp-main strong { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pp-main .muted { font-size: 11px; }
.pp-empty { padding: 12px; text-align: center; }

/* No.1234 帖子引用、#标签 */
.post-ref { color: var(--primary); font-weight: 600; font-variant-numeric: tabular-nums; text-decoration: none; }
.post-ref:hover { text-decoration: underline; }
.hashtag { color: var(--primary); text-decoration: none; }
.hashtag:hover { text-decoration: underline; }

/* 群聊里的精简 Markdown */
.cm-text .md-code { margin: 4px 0; padding: 6px 10px; border-radius: 6px; background: var(--surface-2); font-family: var(--mono); font-size: 12.5px; line-height: 1.5; white-space: pre; overflow-x: auto; max-width: 100%; }
.cm-text .md-quote { margin: 2px 0; padding: 0 0 0 8px; border-left: 3px solid var(--line); color: var(--text-2); white-space: pre-wrap; }
.cm-text code { padding: 0 4px; border-radius: 4px; background: var(--surface-2); font-family: var(--mono); font-size: .92em; }

/* 公告：点了看全文 */
.notice-body { cursor: pointer; }
.notice-detail-body { padding: 16px 20px 20px; max-height: 70vh; overflow-y: auto; line-height: 1.7; word-break: break-word; }

/* 预设回应的艺术字：每个一种风格（只用系统字体 + CSS 效果，不额外加载字体） */
.bz { display: inline-block; font-weight: 800; line-height: 1; letter-spacing: .02em; white-space: nowrap; }
.bz-chip { height: 28px; }
.bz-chip.on { box-shadow: inset 0 0 0 1.5px var(--primary); }
/* 善：书法楷体，朱砂印章感 */
.bz-0 { font-family: "STKaiti", "KaiTi", "楷体", serif; color: #b91c1c; font-size: 1.15em; padding: 1px 3px; border: 1.5px solid currentColor; border-radius: 3px; transform: rotate(-4deg); }
/* 甚好：金色描边宋体 */
.bz-1 { font-family: "STSong", "SimSun", "宋体", serif; background: linear-gradient(180deg, #fde68a, #d97706); -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-stroke: .3px #92400e; }
/* 欢欢：粉色圆润 + 弹跳 */
.bz-2 { color: #ec4899; font-family: "YouYuan", "幼圆", "Microsoft YaHei", sans-serif; text-shadow: 1px 1px 0 #fbcfe8, 2px 2px 0 #f9a8d4; animation: bz-bounce 1.2s ease-in-out infinite; }
/* 妈妈：暖橙手写感，带爱心底 */
.bz-3 { color: #ea580c; font-family: "STXingkai", "华文行楷", "KaiTi", serif; font-size: 1.1em; font-weight: 400; text-shadow: 0 0 6px rgba(251, 146, 60, .5); }
/* 666：彩虹渐变流动 */
.bz-4 { font-family: Impact, "Arial Black", sans-serif; font-style: italic; background: linear-gradient(90deg, #ef4444, #f59e0b, #22c55e, #3b82f6, #a855f7, #ef4444); background-size: 200% 100%; -webkit-background-clip: text; background-clip: text; color: transparent; animation: bz-flow 2s linear infinite; }
/* 太地狱了：暗红火焰 + 抖动 */
.bz-5 { color: #7f1d1d; text-shadow: 0 0 2px #fff, 0 -1px 3px #f97316, 0 -2px 6px #dc2626; font-family: "STHeiti", "SimHei", "黑体", sans-serif; animation: bz-shake .35s steps(2) infinite; }
/* 神！：金光闪耀 */
.bz-6 { font-family: "STKaiti", "KaiTi", serif; font-size: 1.15em; color: #fff7d6; text-shadow: 0 0 4px #fbbf24, 0 0 10px #f59e0b; -webkit-text-stroke: .5px #b45309; animation: bz-glow 1.6s ease-in-out infinite; }
/* 挂！：警示黄黑条 */
.bz-7 { color: #111; background: repeating-linear-gradient(-45deg, #facc15 0 6px, #fde047 6px 12px); padding: 2px 5px; border-radius: 3px; font-family: "SimHei", "黑体", sans-serif; box-shadow: 0 0 0 1px #111; }
/* 我去~：歪斜漫画气泡字 */
.bz-8 { color: #0ea5e9; font-family: "Comic Sans MS", "YouYuan", sans-serif; transform: skewX(-12deg); text-shadow: 1.5px 1.5px 0 #0c4a6e; }
/* 大大大：越来越大 */
.bz-9 { color: #16a34a; font-family: Impact, "SimHei", sans-serif; font-size: 1.25em; transform: scaleY(1.15); text-shadow: 2px 2px 0 #bbf7d0; }
/* 电！！：霓虹电光闪烁 */
.bz-10 { color: #e0f2fe; text-shadow: 0 0 2px #fff, 0 0 5px #38bdf8, 0 0 10px #0284c7; font-style: italic; animation: bz-flick 1.4s steps(1) infinite; }
/* 不讲不讲：竖排小字 + 删除线，欲言又止 */
.bz-11 { color: var(--text-3); font-weight: 600; text-decoration: line-through wavy #a855f7; letter-spacing: .15em; }
.bz-12 { background: linear-gradient(110deg,#a83b75,#387cac,#418e63); background-clip: text; -webkit-background-clip: text; color: transparent; }
.boost-quick .bz { animation: none; }
.boost-quick .bz-chip.on .bz { color: inherit; background: none; -webkit-text-stroke: 0; text-shadow: none; }
.boost-quick .bz-5 { text-shadow: none; }
.boost-quick .bz-6 { color: #996316; text-shadow: none; -webkit-text-stroke: 0; }
.boost-quick .bz-8 { text-shadow: none; }
.boost-quick .bz-10 { color: #0878a7; text-shadow: none; }
[data-theme="dark"] .boost-quick .bz-6 { color: #fcd34d; }
[data-theme="dark"] .boost-quick .bz-10 { color: #7dd3fc; }
@keyframes bz-bounce { 0%, 100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes bz-flow { to { background-position: 200% 0 } }
@keyframes bz-shake { 0% { transform: translate(0, 0) } 50% { transform: translate(.6px, -.4px) } }
@keyframes bz-glow { 50% { text-shadow: 0 0 6px #fde047, 0 0 16px #f59e0b } }
@keyframes bz-flick { 0%, 100% { opacity: 1 } 46% { opacity: .55 } 48% { opacity: 1 } 52% { opacity: .7 } }
[data-theme="dark"] .bz-5 { color: #fca5a5; }
@media (prefers-reduced-motion: reduce) { .bz { animation: none !important; } }
/* 消息下面的小回应（cm-boost，22px 高）：字太小，艺术字只留颜色，去掉描边 / 发光 / 背景条纹 / 变形 / 动效，保证看得清 */
:is(.cm-boost,.rp) .bz { animation: none !important; transform: none !important; text-shadow: none !important; -webkit-text-stroke: 0 !important; font-size: 1em !important;
  padding: 0 !important; border: 0 !important; box-shadow: none !important; background: none !important; letter-spacing: normal; font-weight: 700; text-decoration: none; }
/* 原本靠渐变 / 发光才有颜色的几个，换成同色系实色 */
:is(.cm-boost,.rp) .bz-1 { color: #b45309 !important; -webkit-text-fill-color: currentColor; }
:is(.cm-boost,.rp) .bz-4 { color: #7c3aed !important; -webkit-text-fill-color: currentColor; }
:is(.cm-boost,.rp) .bz-5 { color: #b91c1c; }
:is(.cm-boost,.rp) .bz-6 { color: #b45309; }
:is(.cm-boost,.rp) .bz-7 { color: #854d0e; }
:is(.cm-boost,.rp) .bz-8 { color: #0369a1; }
:is(.cm-boost,.rp) .bz-10 { color: #0284c7; }
[data-theme="dark"] :is(.cm-boost,.rp) .bz-0 { color: #fca5a5; }
[data-theme="dark"] :is(.cm-boost,.rp) .bz-1, [data-theme="dark"] :is(.cm-boost,.rp) .bz-6, [data-theme="dark"] :is(.cm-boost,.rp) .bz-7 { color: #fcd34d !important; }
[data-theme="dark"] :is(.cm-boost,.rp) .bz-4 { color: #c4b5fd !important; }
[data-theme="dark"] :is(.cm-boost,.rp) .bz-5 { color: #fca5a5; }
[data-theme="dark"] :is(.cm-boost,.rp) .bz-8, [data-theme="dark"] :is(.cm-boost,.rp) .bz-10 { color: #7dd3fc; }
[data-theme="dark"] :is(.cm-boost,.rp) .bz-9 { color: #4ade80; }
.cm-boost { font-size: 12.5px; color: var(--text); }
:is(.cm-boost,.rp) .bz-12 { background: linear-gradient(110deg,#a83b75,#387cac,#418e63) !important; background-clip: text !important; -webkit-background-clip: text !important; color: transparent !important; }
[data-theme="dark"] :is(.cm-boost,.rp) .bz-12 { background-image: linear-gradient(110deg,#f5a9cf,#9dcfff,#a7e3ac) !important; }
/* 帖子卡片上的一句回应：里面也可能嵌着称号 / 徽章 / 气泡类（以后加），统一只留颜色 */
.rp .u-title, .rp .u-badge, .cm-boost .u-title, .cm-boost .u-badge { animation: none !important; box-shadow: none !important; }
.rp .u-title::after, .rp .u-badge::after, .rp .u-badge::before, .cm-boost .u-title::after, .cm-boost .u-badge::after, .cm-boost .u-badge::before { display: none !important; }
.rp .bb, .cm-boost .bb { background: none !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; clip-path: none !important; }
.rp .bb::before, .rp .bb::after, .cm-boost .bb::before, .cm-boost .bb::after { display: none !important; }

/* 欢欢的消息回答复用现有 Boost 更新；不播放持续动画、不截成12字。 */
.cm-ai-boost { display:flex; align-items:flex-start; gap:5px; flex:0 1 auto; max-width:100%; min-width:0; padding:4px 7px; border:1px solid #7fa6bf; border-left:2px solid #598ead; border-radius:7px; background:color-mix(in srgb,var(--surface) 94%,#9bc9e8); color:var(--text); font-size:12px; line-height:1.5; }
.cm-ai-boost > .avatar { flex:none; width:18px; height:18px; }
.cm-ai-content { min-width:0; }
.cm-ai-name { display:inline; margin-right:5px; font-size:11px; font-weight:600; color:var(--muted); }
.cm-ai-answer { white-space:pre-wrap; overflow-wrap:anywhere; user-select:text; }
.cm-ai-meter { margin-top:3px; height:3px; width:120px; max-width:100%; border-radius:3px; overflow:hidden; background:color-mix(in srgb,var(--text) 12%,transparent); }
.cm-ai-create { display:block; margin-top:4px; padding:3px 7px; border:1px solid currentColor; border-radius:5px; background:transparent; color:inherit; font:inherit; cursor:pointer; }
.cm-ai-meter > span { display:block; height:100%; background:#598ead; }
.cm-ai-boost[data-ai-status="pending"] .cm-ai-answer { color:var(--muted); }
[data-theme="dark"] .cm-ai-boost { border-color:#5c899f; border-left-color:#7eb9d4; }
[data-theme="dark"] .cm-ai-meter > span { background:#7eb9d4; }

/* 分屏：右边一整列群聊，页面和弹窗、大图都让到左边 */
body.chat-split { --split-w: clamp(340px, 30vw, 460px); padding-right: var(--split-w); }
body.chat-split .chat-dock.split { top: 0; right: 0; bottom: 0; z-index: 95; }
body.chat-split .chat-dock.split .cd-panel { width: var(--split-w); height: 100dvh; border-radius: 0; border-width: 0 0 0 1px; box-shadow: none; }
body.chat-split .modal, body.chat-split .viewer, body.chat-split .login-sheet { right: var(--split-w); }
body.chat-split.lock .chat-dock { visibility: visible; }
/* 分屏列 z-index 95 比浮层（80）高：消息右键菜单、表情板、名片会被压在群聊列下面看不见（像右键没反应）。分屏时浮层抬到列和拖动条之上 */
body.chat-split .pop { z-index: 97; }
/* 分屏分界处的拖动条：10px 宽的热区，正中一条细线，悬停 / 聚焦 / 拖动时变成松绿 */
.split-handle { position: fixed; top: 0; bottom: 0; right: calc(var(--split-w) - 5px); z-index: 96; width: 10px; cursor: col-resize; touch-action: none; outline: none; }
.split-handle::before { content: ''; position: absolute; top: 0; bottom: 0; left: 4px; width: 2px; background: transparent; transition: background .15s; }
.split-handle::after { content: ''; position: absolute; top: 50%; left: 2px; width: 6px; height: 36px; margin-top: -18px; border-radius: 3px; background: var(--line); transition: background .15s; }
.split-handle:hover::before, .split-handle:focus-visible::before, body.split-drag .split-handle::before { background: var(--primary); }
.split-handle:hover::after, .split-handle:focus-visible::after, body.split-drag .split-handle::after { background: var(--primary); }
.split-handle:focus-visible { box-shadow: 0 0 0 2px var(--primary-soft); }
body.split-drag { cursor: col-resize; -webkit-user-select: none; user-select: none; }
body.split-drag iframe, body.split-drag img, body.split-drag video { pointer-events: none; }
.cd-head .btn-icon.on { background: var(--primary-soft); color: var(--primary); }

/* ---------- 装扮：称号 ---------- */
.u-title { --t1: #fff; --t2: #16a34a; --t3: #16a34a; display: inline-flex; align-items: center; flex: none; max-width: 10em; overflow: hidden; white-space: nowrap;
  margin-left: 5px; padding: 0 7px; height: 18px; font-size: 11px; font-weight: 700; line-height: 1; letter-spacing: .02em; vertical-align: middle;
  color: var(--t1); background: var(--t2); border: 1px solid var(--t3); border-radius: 999px; position: relative; -webkit-user-select: none; user-select: none; }
.u-title.sh-oval { border-radius: 50% / 60%; padding: 0 10px; }
.u-title.sh-rect { border-radius: 3px; }
.u-title.sh-tag { border-radius: 3px 999px 999px 3px; padding-left: 10px; }
.u-title.sh-tag::before { content: ""; position: absolute; left: 3px; top: 50%; width: 3px; height: 3px; margin-top: -1.5px; border-radius: 50%; background: currentColor; opacity: .7; }
.u-title.sh-blob { border-radius: 62% 38% 55% 45% / 48% 60% 40% 52%; padding: 0 9px; }
.u-title.sh-ribbon { border-radius: 0; padding: 0 11px; clip-path: polygon(0 0, 100% 0, calc(100% - 6px) 50%, 100% 100%, 0 100%, 6px 50%); }
.u-title.sh-seal { border-radius: 2px; border-width: 3px; border-style: double; font-family: var(--serif); transform: rotate(-3deg); }
.u-title.sh-none { border-color: transparent !important; padding: 0 2px; }
/* 称号不吃背景：浅底 / 描边 / 毛玻璃都混成不透明色（和白混），不用 transparent / backdrop-filter / var(--text)，换壁纸、深浅色都一样 */
.u-title.fl-soft { background: color-mix(in srgb, var(--t2) 16%, #fff); color: color-mix(in srgb, var(--t2) 80%, #000); }
.u-title.fl-grad { background: linear-gradient(110deg, var(--t2), var(--t3)); }
.u-title.fl-outline { background: #fff; color: color-mix(in srgb, var(--t3) 82%, #000); }
.u-title.fl-glass { background: var(--t2); background: linear-gradient(180deg, color-mix(in srgb, var(--t2) 55%, #fff), var(--t2)); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .55); }
/* 纯文字：没有底，给字描一圈白边，任何背景上都看得清 */
.u-title.fl-none { background: none; border-color: transparent; color: color-mix(in srgb, var(--t2) 85%, #000); padding: 0 2px;
  text-shadow: 0 0 2px #fff, 0 0 2px #fff, 0 0 1px #fff; }
/* 无底称号随暗色主题提亮文字；带原画底的称号沿用原配色，避免浅底白字。 */
[data-theme="dark"] .u-title.fl-none { color:color-mix(in srgb,var(--t2) 25%,#fff); text-shadow:0 1px 1px #000; }
.u-title.ft-kai { font-family: KaiTi, STKaiti, "Kaiti SC", serif; font-weight: 600; font-size: 12px; }
.u-title.ft-song { font-family: SimSun, STSong, "Songti SC", serif; }
.u-title.ft-hei { font-family: SimHei, "Heiti SC", "PingFang SC", sans-serif; font-weight: 900; }
.u-title.ft-round { font-family: "Yuanti SC", YouYuan, "Varela Round", sans-serif; }
.u-title.ft-xing { font-family: STXingkai, "Xingkai SC", KaiTi, cursive; font-size: 12px; font-weight: 400; }
.u-title.ft-mono { font-family: ui-monospace, Consolas, monospace; font-size: 10.5px; }
.u-title.fx-flow { background-image: linear-gradient(90deg, var(--t2), var(--t3), var(--t2)); background-size: 200% 100%; animation: ut-flow 3s linear infinite; }
@keyframes ut-flow { to { background-position: 200% 0; } }
.u-title.fx-shine::after { content: ""; position: absolute; inset: 0; background: linear-gradient(100deg, transparent 30%, rgba(255, 255, 255, .6) 50%, transparent 70%); transform: translateX(-100%); animation: ut-shine 2.8s ease-in-out infinite; }
@keyframes ut-shine { 60%, 100% { transform: translateX(100%); } }
.u-title.fx-pulse { animation: ut-pulse 2s ease-in-out infinite; }
@keyframes ut-pulse { 50% { box-shadow: 0 0 0 3px color-mix(in srgb, var(--t3) 30%, transparent); } }
@media (prefers-reduced-motion: reduce) { .u-title { animation: none !important; } .u-title::after { display: none; } }
.u-title { isolation: isolate; opacity: 1; mix-blend-mode: normal; }
/* 群聊：称号略放大看得清，动效放慢 / 去掉扫光和呼吸，不抢消息 */
.cm-head .u-title { height: 18px; font-size: 12px; margin-left: 2px; padding: 0 7px; }
.cm-head .u-title.ft-mono { font-size: 11.5px; }
.cm-head .u-title.fx-flow { animation-duration: 7s; }
.cm-head .u-title.fx-pulse { animation: none; }
.cm-head .u-title.fx-shine::after { display: none; }
/* 自己挑的炫彩名配色 */
.fancy-name.fancy-own { background-image: var(--fc); }
.ucard-name, .gp-name, .who-line { display: inline-flex; align-items: center; min-width: 0; }
/* 昵称 + 称号 + 徽章放不下：整组换行，称号文字出省略号，徽章整个挪到下一行，不被裁（名片、成员列表、帖子详情、群聊消息头、评论头） */
.ucard-name, .gp-name, .who-line { flex-wrap: wrap; row-gap: 3px; max-width: 100%; }
.ucard-head .who { flex: 1; }
.ucard-name > strong, .gp-name > strong { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
.cm-head, .comment-head, .rd-c-head { flex-wrap: wrap; row-gap: 3px; min-width: 0; max-width: 100%; }
.cm-name { min-width: 0; max-width: 100%; overflow-wrap: anywhere; text-align: left; }
.u-title { flex: 0 1 auto; min-width: 0; max-width: min(10em, 100%); }
.u-title-t { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.u-badge { max-width: 100%; }
/* 帖子卡片作者行一行放不下：名字和称号收缩（省略号），徽章保持完整 */
.card-head > .u-title { flex-shrink: 1; }

/* ---------- 消息气泡 ---------- */
.cm-text.bb { position: relative; }
.bb-laowu { background: linear-gradient(135deg, #fff6d6, #ffe08a) !important; color: #5a3b00 !important; border: 2px solid #e0a800; border-radius: 4px 16px 16px 16px !important; box-shadow: 3px 3px 0 #e0a80055; font-weight: 500; }
.bb-laowu::before { content: "老吴"; position: absolute; right: -6px; top: -9px; padding: 0 5px; font-size: 10px; line-height: 15px; border-radius: 6px; background: #d14b2a; color: #fff; transform: rotate(8deg); font-weight: 700; }
.bb-cloud { background: #eef6ff !important; color: #1d4e89 !important; border-radius: 20px !important; box-shadow: 0 2px 0 #c9e0ff, 6px 6px 0 -2px #fff, 6px 6px 0 0 #c9e0ff; }
.bb-candy { background: repeating-linear-gradient(135deg, #ffe3ef 0 10px, #fff 10px 20px) !important; color: #b0306a !important; border: 1.5px solid #ff9ac4; border-radius: 16px !important; }
.bb-neon { background: #0d0f1a !important; color: #9ff7ff !important; border: 1.5px solid #37e8ff; border-radius: 10px !important; box-shadow: 0 0 6px #37e8ff99, inset 0 0 6px #37e8ff55; text-shadow: 0 0 4px #37e8ffaa; }
.bb-paper { background: #fffbe6 repeating-linear-gradient(transparent 0 23px, #e9dfb8 23px 24px) !important; color: #4a4030 !important; border-radius: 2px !important; box-shadow: 2px 3px 6px rgba(0, 0, 0, .12); line-height: 24px; }
.bb-ink { background: #f6f3ee !important; color: #222 !important; border-radius: 3px 14px 3px 14px !important; border-left: 4px solid #222; font-family: KaiTi, STKaiti, serif; font-size: 1.05em; }
.bb-pixel { background: #fff !important; color: #222 !important; border-radius: 0 !important; border: 3px solid #222; box-shadow: 4px 4px 0 #222; font-family: ui-monospace, "Courier New", monospace; }
.bb-sakura { background: linear-gradient(135deg, #fff0f5, #ffd6e7) !important; color: #9b2c5a !important; border-radius: 16px 16px 16px 4px !important; border: 1px solid #ffb6d1; }
.bb-sakura::after { content: "🌸"; position: absolute; right: -6px; bottom: -6px; font-size: 13px; }
.bb-gold { background: linear-gradient(135deg, #3a2a00, #6b4e00 45%, #3a2a00) !important; color: #ffe27a !important; border: 1.5px solid #d4a017; border-radius: 12px !important; box-shadow: 0 0 0 1px #3a2a00, 0 2px 8px #d4a01755; font-weight: 600; }
.bb-night { background: radial-gradient(circle at 20% 30%, #fff 0 1px, transparent 1.5px), radial-gradient(circle at 70% 60%, #fff 0 1px, transparent 1.5px), radial-gradient(circle at 85% 20%, #fff 0 .8px, transparent 1.2px), linear-gradient(135deg, #1b1e4b, #3b2a6b) !important; color: #e8e6ff !important; border-radius: 14px !important; }
.bb a { color: inherit; text-decoration: underline; }
/* ---------- 新款气泡（参考 QQ 气泡）：固定底色 + 深色字（或深底浅字），对比度 ≥ 4.5；角标贴纸用伪元素，不挡字 ---------- */
.cm-text.bb { margin-top: 2px; margin-right: 8px; }
.cm-text.bb::before, .cm-text.bb::after { pointer-events: none; }
/* 果冻：半透明感的粉色果冻，内高光 + 底部厚阴影 */
.bb-jelly { background: linear-gradient(180deg, #ffe4f1 0%, #ffc4de 100%) !important; color: #831843 !important; border-radius: 18px !important;
  box-shadow: inset 0 2px 0 rgba(255,255,255,.9), inset 0 -3px 0 rgba(219,39,119,.18), 0 3px 0 #f9a8d4, 0 5px 10px rgba(236,72,153,.18); padding: 8px 14px !important; }
.bb-jelly::before { content: ""; position: absolute; left: 10px; top: 4px; width: 18px; height: 6px; border-radius: 6px; background: rgba(255,255,255,.85); }
.bb-jelly::after { content: "♡"; position: absolute; right: -6px; top: -9px; width: 20px; height: 20px; display: grid; place-items: center; border-radius: 50%;
  background: #ec4899; color: #fff; font-size: 12px; font-weight: 900; box-shadow: 0 0 0 2px #fff; transform: rotate(12deg); }
/* 棉花云：白底蓝字，右下两朵小云 */
.bb-puff { background: #ffffff !important; color: #1e3a8a !important; border: 2px solid #bfdbfe; border-radius: 22px !important; box-shadow: 0 3px 0 #dbeafe, 0 4px 12px rgba(59,130,246,.14); padding: 8px 14px !important; }
.bb-puff::after { content: ""; position: absolute; right: -10px; bottom: -6px; width: 22px; height: 14px; border-radius: 999px; background: #fff; border: 2px solid #bfdbfe;
  box-shadow: -8px 4px 0 -3px #fff, -8px 4px 0 -1px #bfdbfe; }
.bb-puff::before { content: "☁"; position: absolute; left: -6px; top: -10px; font-size: 15px; color: #93c5fd; text-shadow: 0 0 0 #fff, 0 0 2px #fff, 0 0 2px #fff; }
/* 猫爪：奶油底咖啡字，右上猫爪贴纸（内联 SVG） */
.bb-paw { background: #fff7ed !important; color: #7c2d12 !important; border: 2px solid #fdba74; border-radius: 6px 18px 18px 18px !important; box-shadow: 0 3px 0 #fed7aa; padding: 8px 16px 8px 13px !important; }
.bb-paw::after { content: ""; position: absolute; right: -9px; top: -10px; width: 24px; height: 24px; transform: rotate(18deg);
  background: center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cg fill='%23fb923c' stroke='%23fff' stroke-width='2'%3E%3Cellipse cx='16' cy='21' rx='8' ry='7'/%3E%3Ccircle cx='7' cy='12' r='3.6'/%3E%3Ccircle cx='12.5' cy='6.5' r='3.6'/%3E%3Ccircle cx='19.5' cy='6.5' r='3.6'/%3E%3Ccircle cx='25' cy='12' r='3.6'/%3E%3C/g%3E%3Cg fill='%23fed7aa'%3E%3Cellipse cx='16' cy='22' rx='4' ry='3'/%3E%3C/g%3E%3C/svg%3E"); }
/* 星河：深蓝紫底浅字，点点星光 + 右上流星 */
.bb-galaxy { background: radial-gradient(circle at 12% 28%, #fff 0 1px, transparent 1.6px), radial-gradient(circle at 46% 78%, #c4b5fd 0 1px, transparent 1.6px),
  radial-gradient(circle at 78% 30%, #fff 0 .9px, transparent 1.4px), radial-gradient(circle at 92% 72%, #fde68a 0 1px, transparent 1.6px),
  linear-gradient(135deg, #1e1b4b 0%, #312e81 55%, #4c1d95 100%) !important; color: #eef2ff !important; border-radius: 16px !important; border: 1.5px solid #6366f1;
  box-shadow: 0 0 0 2px rgba(99,102,241,.18), 0 4px 12px rgba(49,46,129,.35); padding: 8px 14px !important; }
.bb-galaxy::after { content: "✦"; position: absolute; right: -6px; top: -10px; font-size: 16px; color: #fde68a; text-shadow: 0 0 6px #fbbf24, 0 0 1px #78350f; }
/* 像素机：Game Boy 绿屏，像素描边，深绿字 */
.bb-bit { background: #c7f0a8 !important; color: #14361a !important; border-radius: 0 !important; border: 0; font-family: ui-monospace, "Courier New", monospace; font-weight: 600; padding: 7px 13px !important;
  box-shadow: 0 -3px 0 #14361a, 0 3px 0 #14361a, -3px 0 0 #14361a, 3px 0 0 #14361a, 3px 6px 0 rgba(20,54,26,.35); margin: 4px 10px 6px 3px; }
.bb-bit::after { content: ""; position: absolute; right: -9px; top: -10px; width: 14px; height: 14px; background: #ef4444;
  box-shadow: 0 0 0 2px #14361a; clip-path: polygon(0 30%, 30% 30%, 30% 0, 70% 0, 70% 30%, 100% 30%, 100% 70%, 70% 70%, 70% 100%, 30% 100%, 30% 70%, 0 70%); }
/* 樱吹雪：淡粉底玫红字，三片花瓣（内联 SVG） */
.bb-petal { background: linear-gradient(160deg, #fff1f6, #ffe1ec) !important; color: #881337 !important; border: 1.5px solid #fbcfe8; border-radius: 18px 18px 18px 6px !important; padding: 8px 16px 8px 14px !important;
  box-shadow: 0 3px 10px rgba(244,114,182,.18); }
.bb-petal::after { content: ""; position: absolute; right: -10px; top: -11px; width: 28px; height: 24px;
  background: center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 30'%3E%3Cg stroke='%23fff' stroke-width='1.5'%3E%3Cpath fill='%23f9a8d4' d='M14 4c4 0 7 4 6 9-1 4-5 6-6 9-1-3-5-5-6-9-1-5 2-9 6-9z' transform='rotate(-20 14 13)'/%3E%3Cpath fill='%23fbcfe8' d='M28 12c2.6 0 4.5 2.6 3.9 5.9-.6 2.6-3.3 3.9-3.9 5.9-.6-2-3.3-3.3-3.9-5.9-.6-3.3 1.3-5.9 3.9-5.9z' transform='rotate(25 28 18)'/%3E%3C/g%3E%3C/svg%3E"); }
.bb-petal::before { content: ""; position: absolute; left: -5px; bottom: -6px; width: 12px; height: 12px; border-radius: 0 60% 0 60%; background: #f9a8d4; box-shadow: 0 0 0 1.5px #fff; transform: rotate(-30deg); }
/* 奶茶：奶咖底深棕字，底部一排「珍珠」 */
.bb-boba { background: radial-gradient(circle at 7px calc(100% - 5px), #3f2a1d 0 2.6px, transparent 3.1px) 4px 0 / 14px 100% repeat-x, linear-gradient(180deg, #f5e6d3, #ead2b4) !important;
  color: #3f2a1d !important; border: 2px solid #c8a27a; border-radius: 16px 16px 12px 12px !important; padding: 8px 14px 12px !important; box-shadow: 0 3px 0 #d6b58f; }
.bb-boba::after { content: "🧋"; position: absolute; right: -9px; top: -11px; font-size: 16px; filter: drop-shadow(0 0 1px #fff) drop-shadow(0 0 1px #fff); transform: rotate(10deg); }
/* 赛博：黑底青字，切角 + 双色描边 */
.bb-cyber { background: linear-gradient(135deg, #0b0f1a 0%, #111827 100%) !important; color: #a5f3fc !important; border-radius: 0 !important; padding: 8px 16px !important;
  clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 10px, 100% 100%, 10px 100%, 0 calc(100% - 10px)); box-shadow: inset 0 0 0 1.5px #22d3ee, inset 3px 0 0 #f472b6; font-family: ui-monospace, Consolas, monospace; letter-spacing: .02em; }
.bb-cyber::after { content: ""; position: absolute; right: 4px; bottom: 4px; width: 16px; height: 3px; background: repeating-linear-gradient(90deg, #f472b6 0 3px, transparent 3px 5px); }
.bb-cyber a { color: #f9a8d4; }
/* 幻彩描边：白底深字 + 彩虹渐变描边（双层背景实现，边是渐变、里面是实色） */
.bb-prism { background: linear-gradient(#ffffff, #ffffff) padding-box, linear-gradient(120deg, #f472b6, #fbbf24, #34d399, #60a5fa, #a78bfa) border-box !important;
  color: #1f2937 !important; border: 2.5px solid transparent; border-radius: 16px !important; padding: 7px 14px !important; box-shadow: 0 3px 12px rgba(167,139,250,.22); }
.bb-prism::after { content: "✧"; position: absolute; right: -7px; top: -11px; font-size: 16px; font-weight: 900; color: #a78bfa; text-shadow: 0 0 0 #fff, 1px 1px 0 #fff, -1px -1px 0 #fff, 1px -1px 0 #fff, -1px 1px 0 #fff; }
/* 薄荷：清爽薄荷绿底墨绿字 + 小叶子 */
.bb-mint { background: linear-gradient(135deg, #ecfdf5, #d1fae5) !important; color: #064e3b !important; border: 2px solid #6ee7b7; border-radius: 18px 6px 18px 18px !important; padding: 8px 14px !important; box-shadow: 0 3px 0 #a7f3d0; }
.bb-mint::after { content: ""; position: absolute; right: -8px; top: -9px; width: 18px; height: 18px; border-radius: 0 100% 0 100%; background: linear-gradient(135deg, #34d399, #059669);
  box-shadow: 0 0 0 2px #fff; transform: rotate(-10deg); }
/* 兔兔：白底紫字，顶上一对兔耳 */
.bb-bunny { background: #fdfaff !important; color: #4c1d95 !important; border: 2px solid #ddd6fe; border-radius: 18px !important; padding: 8px 14px !important; box-shadow: 0 3px 0 #ede9fe; margin-top: 12px !important; }
.bb-bunny::before, .bb-bunny::after { content: ""; position: absolute; top: -13px; width: 9px; height: 16px; border-radius: 999px 999px 4px 4px; background: #fdfaff; border: 2px solid #ddd6fe; border-bottom: 0;
  box-shadow: inset 0 -4px 0 -1px #fbcfe8; }
.bb-bunny::before { left: 14px; transform: rotate(-12deg); }
.bb-bunny::after { left: 27px; transform: rotate(10deg); }
/* 柠檬汽水：柠檬黄底深棕字 + 气泡点 + 柠檬片 */
.bb-lemon { background: radial-gradient(circle at 85% 70%, rgba(255,255,255,.9) 0 2px, transparent 2.5px), radial-gradient(circle at 70% 30%, rgba(255,255,255,.8) 0 1.5px, transparent 2px),
  linear-gradient(160deg, #fef9c3, #fde68a) !important; color: #713f12 !important; border: 2px solid #facc15; border-radius: 16px !important; padding: 8px 14px !important; box-shadow: 0 3px 0 #fcd34d; }
.bb-lemon::after { content: ""; position: absolute; right: -9px; top: -10px; width: 20px; height: 20px; border-radius: 50%;
  background: repeating-conic-gradient(#fde047 0 36deg, #fef08a 36deg 72deg); box-shadow: 0 0 0 2px #facc15, 0 0 0 4px #fff; }
.bb-galaxy a, .bb-cyber a, .bb-neon a, .bb-gold a, .bb-night a { color: inherit; }
/* 气泡自带底色和字色，不跟深浅主题 / 壁纸变 */
@media (prefers-reduced-motion: reduce) { .cm-text.bb::before, .cm-text.bb::after { animation: none !important; } }

/* ---------- 徽章：二次元贴纸风。tier 决定底色，等级（lv-1～5，按拿过次数）决定外圈：铜 → 银 → 金 → 彩虹 → 传说 ----------
   全部用固定颜色（不用 currentColor / var(--text) / 透明），换壁纸、深浅色都不变 */
.bt-legend { --b1: #f59e0b; --b2: #fde047; --bf: #422006; }
.bt-epic { --b1: #7c3aed; --b2: #db2777; --bf: #fff; }
.bt-rare { --b1: #0369a1; --b2: #0d9488; --bf: #fff; }
.bt-fun { --b1: #e11d48; --b2: #ea580c; --bf: #fff; }
.lv-0, .lv-1 { --ring: linear-gradient(135deg, #b45309, #f59e0b 50%, #92400e); }
.lv-2 { --ring: linear-gradient(135deg, #64748b, #f1f5f9 45%, #94a3b8 70%, #e2e8f0); }
.lv-3 { --ring: linear-gradient(135deg, #b45309, #fde047 40%, #f59e0b 65%, #fef3c7); }
.lv-4 { --ring: conic-gradient(from 0deg, #f472b6, #fbbf24, #34d399, #38bdf8, #a78bfa, #f472b6); }
.lv-5 { --ring: conic-gradient(from var(--ub-a, 0deg), #ff4d8d, #ffd23f, #3ee07a, #3fb8ff, #b26bff, #ff4d8d); }
.u-badge { position: relative; display: inline-flex; align-items: center; gap: 4px; flex: none; height: 22px; padding: 0 7px 0 2px; margin-left: 4px;
  border: 2px solid transparent; border-radius: 999px; font-size: 12px; font-weight: 800; line-height: 1; letter-spacing: .01em; vertical-align: middle; white-space: nowrap;
  color: var(--bf); background: linear-gradient(135deg, var(--b1), var(--b2)) padding-box, var(--ring) border-box;
  box-shadow: 0 0 0 1.5px #fff, 0 2px 4px rgba(0,0,0,.22); cursor: help; isolation: isolate; opacity: 1; }
.u-badge:not(.bt-legend) { text-shadow: 0 1px 0 rgba(0,0,0,.28); }
/* 贴纸圆片：白底 + 顶部高光，emoji 坐在里面 */
.u-badge .ub-g { display: grid; place-items: center; width: 16px; height: 16px; flex: none; border-radius: 50%; font-size: 11px; line-height: 1; text-shadow: none;
  background: radial-gradient(circle at 35% 28%, #fff 0 30%, #f1f5f9 70%, #e2e8f0); box-shadow: inset 0 -1px 0 rgba(0,0,0,.12); }
.u-badge::before { content: ""; position: absolute; left: 18px; right: 6px; top: 1px; height: 35%; border-radius: 999px; background: linear-gradient(rgba(255,255,255,.5), rgba(255,255,255,0)); pointer-events: none; }
.u-badge .ub-lv { margin-left: 1px; padding: 0 4px; height: 13px; display: inline-grid; place-items: center; border-radius: 999px; font-size: 9.5px; font-weight: 900;
  color: #1f2937; background: #fff; text-shadow: none; box-shadow: inset 0 0 0 1px rgba(0,0,0,.08); }
.u-badge.lv-4 .ub-lv, .u-badge.lv-5 .ub-lv { background: linear-gradient(90deg, #fff1f8, #fffbeb, #eff6ff); color: #6d28d9; }
.u-badge.mini { width: 22px; padding: 0; justify-content: center; gap: 0; }
.u-badge.mini::before { left: 3px; right: 3px; }
.u-badge.mini .ub-g { width: 16px; height: 16px; font-size: 11px; }
/* Lv3 以上扫光，Lv5 外圈转起来 + 小星星 */
.u-badge.lv-3::after, .u-badge.lv-4::after, .u-badge.lv-5::after { content: ''; position: absolute; inset: 0; border-radius: inherit; overflow: hidden; pointer-events: none;
  background: linear-gradient(110deg, transparent 35%, rgba(255,255,255,.6) 50%, transparent 65%) no-repeat; background-size: 250% 100%; background-position: 150% 0; animation: ub-shine 5s ease-in-out infinite; }
@keyframes ub-shine { 0%, 70% { background-position: 150% 0; } 100% { background-position: -60% 0; } }
@property --ub-a { syntax: "<angle>"; inherits: false; initial-value: 0deg; }
.u-badge.lv-5 { animation: ub-spin 4s linear infinite; box-shadow: 0 0 0 1.5px #fff, 0 0 8px rgba(255, 210, 63, .7), 0 2px 4px rgba(0,0,0,.2); }
@keyframes ub-spin { to { --ub-a: 360deg; } }
.u-badge.lv-4 { box-shadow: 0 0 0 1.5px #fff, 0 0 6px rgba(167, 139, 250, .5), 0 2px 4px rgba(0,0,0,.2); }
/* 群聊：徽章 22px 贴纸，动效收着点（只留传说的慢转） */
.cm-head .u-badge { margin-left: 2px; }
.cm-head .u-badge.mini { width: 20px; height: 20px; border-width: 1.5px; }
.cm-head .u-badge.mini .ub-g { width: 15px; height: 15px; font-size: 10.5px; }
.cm-head .u-badge::after { animation: none; display: none; }
.cm-head .u-badge.lv-5 { animation-duration: 10s; }
@media (prefers-reduced-motion: reduce) { .u-badge, .u-badge::after { animation: none !important; } }
.ucard-badges { display: flex; flex-wrap: wrap; gap: 4px; }
.ucard-badges .u-badge { margin: 0; }
/* 徽章墙：卡片网格 */
.badge-wall-box { display: flex; flex-direction: column; gap: 10px; align-self: stretch; } /* 父级 .set-sec 是 align-items: flex-start，不撑开就只剩两列 */
.bw-sum { font-size: 13px; font-weight: 700; color: var(--text); }
.bw-sum .muted { font-weight: 400; font-size: 12px; }
.badge-wall { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.bw-card { position: relative; display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 14px 10px 10px; text-align: center;
  border-radius: 16px; border: 1.5px solid var(--line); background: var(--surface); color: var(--text); font: inherit; min-width: 0; }
button.bw-card { cursor: pointer; transition: transform .15s, border-color .15s, box-shadow .15s; }
button.bw-card:hover { transform: translateY(-2px); border-color: var(--b1); box-shadow: 0 6px 16px rgba(0,0,0,.08); }
button.bw-card:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.bw-card.on { border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-soft); }
.bw-wear { position: absolute; top: 6px; right: 6px; padding: 1px 7px; border-radius: 999px; background: var(--primary); color: #fff; font-size: 11px; font-weight: 700; line-height: 17px; }
/* 大贴纸：等级外圈 + 白描边 + 高光 */
.bw-art { position: relative; display: grid; place-items: center; width: 64px; height: 64px; margin-bottom: 4px; border-radius: 50%; border: 4px solid transparent;
  background: radial-gradient(circle at 34% 26%, rgba(255,255,255,.75) 0 14%, transparent 40%) padding-box, linear-gradient(135deg, var(--b1), var(--b2)) padding-box, var(--ring) border-box;
  box-shadow: 0 0 0 3px #fff, 0 4px 10px rgba(0,0,0,.18); }
.bw-art .bw-g { font-size: 30px; line-height: 1; filter: drop-shadow(0 2px 0 rgba(255,255,255,.7)) drop-shadow(0 1px 2px rgba(0,0,0,.25)); }
.bw-spark { position: absolute; right: -6px; top: -6px; font-size: 15px; color: #fde047; text-shadow: 0 0 0 #fff, 1px 1px 0 #b45309, -1px -1px 0 #fff; }
.bw-card.lv-4 .bw-art { box-shadow: 0 0 0 3px #fff, 0 0 12px rgba(167,139,250,.6), 0 4px 10px rgba(0,0,0,.18); }
.bw-card.lv-5 .bw-art { animation: ub-spin 4s linear infinite; box-shadow: 0 0 0 3px #fff, 0 0 16px rgba(255,210,63,.75), 0 4px 10px rgba(0,0,0,.18); }
.bw-card.lv-5 .bw-spark { animation: bw-twinkle 1.6s ease-in-out infinite; }
@keyframes bw-twinkle { 50% { transform: scale(1.3) rotate(20deg); } }
.bw-name { font-size: 14px; font-weight: 800; }
.bw-lv { font-size: 12px; font-weight: 700; color: var(--b1); }
.bw-lv small { color: var(--text-3); font-weight: 600; }
.bw-card.bt-legend .bw-lv { color: #b45309; }
.bw-bar { display: block; width: 100%; height: 6px; margin-top: 2px; border-radius: 999px; background: var(--surface-2); overflow: hidden; box-shadow: inset 0 0 0 1px var(--line); }
.bw-bar i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--b1), var(--b2)); }
.bw-card.lv-5 .bw-bar i { background: linear-gradient(90deg, #ff4d8d, #ffd23f, #3ee07a, #3fb8ff, #b26bff); }
.bw-next { font-size: 11px; color: var(--text-2); }
.bw-how { font-size: 11.5px; color: var(--text-3); line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.bw-date { font-size: 11px; color: var(--text-3); margin-top: auto; }
.bw-card.off { background: var(--surface-2); border-style: dashed; }
.bw-card.off .bw-art { filter: grayscale(1); opacity: .45; }
.bw-card.off .bw-name, .bw-card.off .bw-lv { color: var(--text-3); }
@media (prefers-reduced-motion: reduce) { .bw-card .bw-art, .bw-card .bw-spark { animation: none !important; } }
/* 名片里的徽章 */
.ucard-badges .u-badge { margin: 0; }
.notif-bd { display: grid; place-items: center; width: 32px; height: 32px; flex: none; }
.notif-bd .u-badge.mini { width: 28px; height: 28px; margin: 0; }
.notif-bd .u-badge.mini .ub-g { font-size: 16px; }
button.notif-row { width: 100%; border: 0; background: none; font: inherit; text-align: left; cursor: pointer; }
/* 身份标签 */
.role-tag { display: inline-block; margin-left: 4px; padding: 1px 6px; border-radius: 4px; font-size: 11px; font-weight: 600; line-height: 16px; vertical-align: middle; }
.role-tag.admin { background: var(--gold-soft, #fff4d6); color: #a16207; }
.role-tag.gadmin { background: var(--primary-soft); color: var(--primary); }
.ma-role { width: auto; }
/* 退群 / 被移出 */
.chat-gone { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; flex: 1; min-height: 260px; padding: 32px 20px; text-align: center; }
.chat-gone h2 { margin: 0; font-size: 17px; }
.chat-gone p { margin: 0; max-width: 340px; }
.cg-mark { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: var(--surface-2); color: var(--text-3); }
.cg-mark .i { width: 26px; height: 26px; }
.cg-mark.left { background: var(--primary-soft); color: var(--primary); }
.cg-acts { display: flex; gap: 16px; }
.chat-gr.gone { opacity: .6; }
/* 群公告 */
.cm-notice-wrap { position: relative; z-index: 3; flex: none; }
.cm-notice { display: flex; gap: 8px; align-items: flex-start; margin: 6px 8px 0; padding: 8px 6px 8px 10px; border-radius: 10px;
  background: var(--gold-soft, #fff7e0); border: 1px solid rgba(202,138,4,.25); font-size: 13px; }
.cm-notice-i { color: #ca8a04; margin-top: 2px; flex: none; }
.cm-notice-main { flex: 1; min-width: 0; }
.cm-notice-t { margin-top: 2px; white-space: pre-wrap; word-break: break-word; cursor: pointer; }
.cm-notice-t.has-refs { max-height: min(36dvh, 320px); overflow: auto; overscroll-behavior: contain; cursor: auto; padding-right: 4px; }
.quote-inline { min-width: 0; overflow-wrap: anywhere; cursor: pointer; white-space: normal; }
.quote-inline:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.quote-inline .quote-title { flex-wrap: wrap; gap: 4px 8px; padding-top: 2px; }
.quote-inline .quote-who { min-width: 0; flex: 1; }
.quote-inline .quote-jump { display: inline-flex; flex: none; gap: 3px; width: auto; min-height: 32px; height: auto; padding: 0 6px; color: var(--primary); }
.quote-content { padding: 4px 10px 10px; font-size: 13px; }
.quote-subject { display: block; margin-bottom: 4px; }
.quote-body { white-space: pre-wrap; }
.quote-media { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(110px, 100%), 1fr)); gap: 5px; max-width: 440px; margin-top: 6px; }
.quote-image { min-width: 0; height: 132px; padding: 0; border: 0; border-radius: 6px; background: var(--surface-2); overflow: hidden; cursor: zoom-in; }
.quote-image img { display: block; width: 100%; height: 100%; object-fit: contain; }
.quote-image.blur img { filter: blur(16px); }
.quote-file { display: flex; align-items: center; gap: 6px; min-height: 32px; overflow-wrap: anywhere; }
.clip2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.cm-notice-mini { position: absolute; top: 6px; right: 10px; display: inline-flex; align-items: center; gap: 3px; padding: 2px 8px; border-radius: 999px;
  border: 1px solid var(--line); background: var(--surface); color: var(--text-2); font-size: 12px; cursor: pointer; box-shadow: var(--shadow); }
.gp-notice { white-space: pre-wrap; word-break: break-word; padding: 8px 10px; border-radius: 8px; background: var(--surface-2); font-size: 13px; }
.gp-fold { display: flex; align-items: center; gap: 4px; width: 100%; border: 0; background: none; padding: 0; font: inherit; font-weight: 700; color: var(--text); cursor: pointer; text-align: left; }
.gp-fold .chat-badge { margin-left: auto; }
.gp-out .gp-row.req { background: var(--primary-soft); border-radius: 8px; }
.gp-req { color: var(--primary); font-size: 12px; font-weight: 600; }
/* 摸鱼助手：今日战绩 */
.my-today { margin-top: 10px; padding: 10px 12px; border-radius: 10px; background: var(--surface-2); font-size: 13px; line-height: 1.7; }
.my-today p { margin: 0 0 4px; }
.my-today b { color: var(--primary); font-size: 15px; padding: 0 1px; }
.my-report h3 { font-size: 16px; margin: 0 0 3px; }
.my-report-intro { color: var(--text-2); }
.my-report-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px 10px; margin: 9px 0; }
.my-report-stat { display: flex; flex-direction: column; min-width: 0; line-height: 1.45; }
.my-report-stat span { font-size: 12px; color: var(--text-2); }
.my-report-stat b { font-variant-numeric: tabular-nums; font-size: 18px; overflow-wrap: anywhere; }
.my-report[data-variant="0"] .my-report-stat:nth-child(-n+2) b { font-size: 27px; }
.my-report[data-variant="1"] { border-radius: 3px 12px 3px 12px; border-left: 3px solid var(--primary); background: transparent; }
.my-report[data-variant="1"] .my-report-stats { grid-template-columns: 1fr; gap: 4px; }
.my-report[data-variant="1"] .my-report-stat { flex-direction: row-reverse; justify-content: space-between; align-items: center; border-bottom: 1px dashed var(--line); padding-bottom: 3px; }
.my-report[data-variant="2"] .my-report-stat:first-child { grid-column: 1 / -1; flex-direction: row; align-items: baseline; gap: 8px; border-bottom: 2px solid var(--primary); padding-bottom: 5px; }
.my-report[data-variant="2"] .my-report-stat:first-child b { font-size: 32px; }
.my-report-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding-top: 8px; }
.my-report-foot button { min-height: 32px; }
.moyu-live { min-width: 0; }
.pop-moyu { max-height: calc(100dvh - 96px); overflow-y: auto; overscroll-behavior: contain; }
@media (prefers-reduced-motion: reduce) { .u-badge::after { animation: none; display: none; } }

/* 群聊输入框（contenteditable）：表情包直接显示成小图 */
.cm-compose .rich-input { display: block; width: 100%; min-height: 42px; max-height: 160px; overflow-y: auto; padding: 10px 12px 2px; outline: 0;
  color: var(--text); font: 14px/1.5 var(--font); white-space: pre-wrap; word-break: break-word; overflow-wrap: anywhere; -webkit-user-select: text; user-select: text; cursor: text; }
.cm-compose .rich-input { position: relative; text-align: left; }
@media (max-width: 760px) {
  .cm-compose .rich-input, .cm-compose textarea { font-size: 16px; max-height: min(160px, 30dvh); }
}
.rich-input.empty::before { content: attr(data-ph); position: absolute; left: 12px; top: 10px; right: 12px; color: var(--text-3); pointer-events: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rich-input .ri-stk { width: 22px; height: 22px; vertical-align: -5px; margin: 0 1px; object-fit: contain; display: inline; }
/* 手机群聊页：整页不滚（只滚消息列表），弹输入法时不会把背景推上去露白 */
@media (max-width: 760px) {
  html:has(body.chat-mode.chat-open), body.chat-mode.chat-open { overflow: hidden; overscroll-behavior: none; background: var(--surface); }
  .chat-page.keyboard-open { position: fixed; left: 0; right: 0; margin: 0; width: 100%; z-index: 30; }
  body:has(.chat-page.keyboard-open) .mobile-nav { display: none; }
}
/* 跳到的消息：变色 2 秒 + 日期 */
.cm-msg.flash { animation: cm-flash2 2s ease-out; position: relative; }
@keyframes cm-flash2 { 0%, 70% { background: color-mix(in srgb, var(--primary) 20%, transparent); box-shadow: inset 3px 0 0 var(--primary); } 100% { background: transparent; box-shadow: none; } }
.cm-jump-date { position: absolute; top: 4px; right: 8px; z-index: 2; padding: 2px 8px; border-radius: 999px; background: var(--primary); color: #fff; font-size: 11px; font-weight: 600;
  pointer-events: none; animation: cm-jd 2.6s ease forwards; }
@keyframes cm-jd { 0% { opacity: 0; transform: translateY(-3px); } 10%, 80% { opacity: 1; transform: none; } 100% { opacity: 0; } }
/* 历史消息层：盖在当前消息列表上（.cm-stage 里），不动当前聊天，输入框露在下面 */
.cm-hist { position: absolute; inset: 0; z-index: 6; display: flex; flex-direction: column; background: var(--surface); }
.cm-hist-head { display: flex; align-items: center; gap: 6px; padding: 8px 12px; border-bottom: 1px solid var(--line); background: var(--surface-2); flex: none; }
.cm-hist-t { font-weight: 700; font-size: 13px; }
.cm-hist-list { flex: 1; min-height: 0; overflow-y: auto; overflow-anchor: none; overscroll-behavior: contain; padding-bottom: 8px; }
.cm-hist-list:has(> .cm-hist-loading) { padding: 0; }
.cm-hist-loading { display: grid; place-items: center; height: 100%; min-height: 80px; }
.cm-hist-more { display: block; margin: 8px auto; }
@media (prefers-reduced-motion: reduce) { .cm-msg.flash { animation-duration: .01s; } .cm-jump-date { animation: none; } }

/* 设置页：左边导航 + 右边内容；装扮的保存按钮贴在底部，一直看得见 */
.me-settings { width: min(860px, 100%); max-width: 860px; }
.set-wrap { flex: 1; min-height: 0; display: flex; }
.set-nav { flex: none; width: 148px; padding: 10px 8px; border-right: 1px solid var(--line); display: flex; flex-direction: column; gap: 2px; overflow-y: auto; }
.set-nav button { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border: 0; border-radius: 8px; background: none; color: var(--text-2); font: inherit; font-size: 14px; text-align: left; cursor: pointer; }
.set-nav button:hover { background: var(--surface-2); color: var(--text); }
.set-nav button.on { background: color-mix(in srgb, var(--accent, #16a34a) 14%, transparent); color: var(--accent, #16a34a); font-weight: 600; }
.set-body { flex: 1; min-width: 0; overflow-y: auto; }
.set-body .set-sec { border-bottom: 0; }
.set-save, .set-body .deco-sec > .row-end { position: sticky; bottom: 0; z-index: 2; align-self: stretch; display: flex; justify-content: flex-end; gap: 8px;
  margin: 4px -18px -18px; padding: 10px 18px; background: var(--surface, #fff); border-top: 1px solid var(--line); }
.remind-set { display: flex; flex-direction: column; gap: 8px; margin-top: 8px; align-self: stretch; }
.remind-set h4 { margin: 4px 0 0; font-size: 14px; }
.remind-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.remind-row .input[maxlength] { flex: 1; min-width: 140px; }
@media (max-width: 640px) {
  .set-wrap { flex-direction: column; }
  .set-nav { width: auto; flex-direction: row; overflow-x: auto; border-right: 0; border-bottom: 1px solid var(--line); padding: 6px; }
  .set-nav button { flex: none; padding: 6px 10px; font-size: 13px; }
}
.set-body .deco-sec > .row-end { margin: 4px -18px 0; }
.set-body .deco-sec .deco-preview { position: sticky; top: -14px; z-index: 2; align-self: stretch; background: var(--surface, #fff); }
.set-body .deco-sec > .row-end, .set-body .set-save { bottom: -18px; padding-bottom: 14px; }

/* ---------- 群成员列表 / 成员管理：分组标题 + 宽松的行 ---------- */
.gp-mhead { display: flex; align-items: center; gap: 10px; }
.gp-mhead .gp-h { margin: 0; flex: none; }
.gp-mhead .gp-h .muted { font-weight: 400; font-size: 12px; }
.gp-msearch { flex: 1; min-width: 0; max-width: 240px; margin-left: auto; height: 32px; }
.gp-members { max-height: min(56vh, 520px); max-height: min(56dvh, 520px); overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
/* 滚动容器中的行按完整身份内容定高，不挤压长昵称/换行称号。 */
.gp-members > * { flex-shrink: 0; }
.gp-group { position: sticky; top: 0; z-index: 1; display: flex; align-items: center; gap: 6px; margin: 0; padding: 6px 14px; font-size: 12px; font-weight: 600; color: var(--text-2); background: var(--surface-2); border-top: 1px solid var(--line); }
.gp-group:first-child { border-top: 0; }
.gp-group span { font-weight: 400; color: var(--text-3); font-variant-numeric: tabular-nums; }
.gp-group + .gp-row { border-top: 0; }
.gp-mem { min-height: 60px; padding: 10px 14px; gap: 12px; }
.gp-mem:hover { background: color-mix(in srgb, var(--surface-2) 60%, transparent); }
.gp-mem .gp-who { gap: 2px; }
.gp-mem .gp-name { font-size: 14px; column-gap: 5px; }
.gp-sub { font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gp-tags { display: flex; gap: 4px; flex: none; }
.gp-tags .role-tag { margin-left: 0; }
.gp-mem .gp-seen, .ma-top .gp-seen { width: 92px; text-align: right; overflow: hidden; text-overflow: ellipsis; }
.gp-mem .gp-acts { gap: 2px; }
.gp-mem .gp-acts .btn-text { padding: 4px 8px; border-radius: 6px; }
.gp-mem .gp-acts .btn-text:hover { background: var(--surface-2); }
.gp-more, .ma-more { display: none; flex: none; }
.gp-empty { margin: 0; padding: 28px 12px; text-align: center; font-size: 13px; }
/* 成员管理：分组标题跟着 .ma-list 的间距，卡片行更舒展 */
.ma-list > .gp-group { position: sticky; top: -14px; margin: 6px 0 0; border: 0; border-radius: 8px; }
.ma-list > .gp-group:first-child { margin-top: 0; }
.ma-row { padding: 10px 12px; }
.ma-top { flex-wrap: nowrap; gap: 12px; min-height: 40px; }
.ma-top .gp-who { gap: 2px; }
.ma-top .ma-tags { flex: none; max-width: 160px; }
.ma-acts { display: flex; align-items: center; gap: 6px; flex: none; }
@media (max-width: 640px) {
  .gp-mhead { flex-wrap: wrap; }
  .gp-msearch { max-width: none; flex-basis: 100%; }
  .gp-members { max-height: none; overflow: visible; }
  .gp-mem { padding: 10px 12px; gap: 10px; }
  .gp-mem .gp-seen { width: auto; max-width: 64px; }
  /* 手机：按钮组收进「⋯」菜单 */
  .gp-mem .gp-acts { display: none; }
  .gp-more { display: inline-grid; }
  .gp-tags { display: none; }
  .gp-mem .gp-name .role-tag { display: none; }
  .ma-top { flex-wrap: wrap; }
  .ma-top .gp-who { flex: 1 1 calc(100% - 140px); }
  .ma-top .ma-tags { order: 5; flex-basis: 100%; max-width: none; justify-content: flex-start; padding-left: 48px; }
  .ma-top .ma-tags:empty { display: none; }
  .ma-top .gp-seen { width: auto; }
  .ma-more { display: inline-grid; }
  .ma-acts { display: none; order: 6; flex-basis: 100%; flex-wrap: wrap; padding-left: 48px; }
  .ma-row.acts-open .ma-acts { display: flex; }
}

/* ---------- 日期 / 时间选择器（flatpickr，主题跟站点变量走，深色模式自动跟随） ---------- */
/* flatpickr.min.css 是懒加载的，会排在本文件后面，所以这里都用 .flatpickr-calendar.fp-jh 双类提高优先级 */
.fp-input { cursor: pointer; caret-color: transparent; }
.fp-input.fp-time { width: 7.5em; font-variant-numeric: tabular-nums; text-align: center; }
.fp-input.fp-date { font-variant-numeric: tabular-nums; }
.flatpickr-calendar.fp-jh { z-index: 140; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow-pop); font-family: var(--font); color: var(--text); }
.flatpickr-calendar.fp-jh::before, .flatpickr-calendar.fp-jh::after { display: none; }
.flatpickr-calendar.fp-jh .flatpickr-months { padding: 6px 4px 0; }
.flatpickr-calendar.fp-jh .flatpickr-month, .flatpickr-calendar.fp-jh .flatpickr-current-month input.cur-year, .flatpickr-calendar.fp-jh .flatpickr-current-month { color: var(--text); fill: var(--text); font-weight: 600; }
.flatpickr-calendar.fp-jh .flatpickr-current-month { font-size: 15px; }
.flatpickr-calendar.fp-jh .flatpickr-prev-month, .flatpickr-calendar.fp-jh .flatpickr-next-month { top: 6px; color: var(--text-2); fill: var(--text-2); border-radius: 8px; }
.flatpickr-calendar.fp-jh .flatpickr-prev-month:hover svg, .flatpickr-calendar.fp-jh .flatpickr-next-month:hover svg { fill: var(--primary); }
.flatpickr-calendar.fp-jh span.flatpickr-weekday { color: var(--text-3); font-weight: 500; font-size: 12px; }
.flatpickr-calendar.fp-jh .flatpickr-day { color: var(--text); border-radius: 10px; }
.flatpickr-calendar.fp-jh .flatpickr-day:hover, .flatpickr-calendar.fp-jh .flatpickr-day:focus { background: var(--surface-2); border-color: transparent; }
.flatpickr-calendar.fp-jh .flatpickr-day.today { border-color: var(--primary); }
.flatpickr-calendar.fp-jh .flatpickr-day.today:hover { background: var(--primary-soft); color: var(--text); }
.flatpickr-calendar.fp-jh .flatpickr-day.selected, .flatpickr-calendar.fp-jh .flatpickr-day.selected:hover, .flatpickr-calendar.fp-jh .flatpickr-day.selected:focus { background: var(--primary); border-color: var(--primary); color: var(--primary-ink); }
.flatpickr-calendar.fp-jh .flatpickr-day.prevMonthDay, .flatpickr-calendar.fp-jh .flatpickr-day.nextMonthDay { color: var(--text-3); opacity: .55; }
.flatpickr-calendar.fp-jh .flatpickr-day.flatpickr-disabled, .flatpickr-calendar.fp-jh .flatpickr-day.flatpickr-disabled:hover { color: var(--text-3); opacity: .35; background: none; }
.flatpickr-calendar.fp-jh .numInputWrapper span { border-color: var(--line); }
.flatpickr-calendar.fp-jh .numInputWrapper span.arrowUp::after { border-bottom-color: var(--text-2); }
.flatpickr-calendar.fp-jh .numInputWrapper span.arrowDown::after { border-top-color: var(--text-2); }
.flatpickr-calendar.fp-jh .numInputWrapper:hover, .flatpickr-calendar.fp-jh .flatpickr-current-month input.cur-year:hover { background: var(--surface-2); }
/* 时间：只有时 : 分两格，做大一点，像个滚轮表盘 */
.flatpickr-calendar.fp-jh.fp-jh-time { width: 200px; padding: 6px; }
.flatpickr-calendar.fp-jh .flatpickr-time { height: 56px; max-height: 56px; line-height: 56px; border: 0; }
.flatpickr-calendar.fp-jh .flatpickr-time input { height: 56px; font-size: 24px; font-weight: 600; color: var(--text); border-radius: 10px; font-variant-numeric: tabular-nums; }
.flatpickr-calendar.fp-jh .flatpickr-time input:hover, .flatpickr-calendar.fp-jh .flatpickr-time input:focus { background: var(--primary-soft); }
.flatpickr-calendar.fp-jh .flatpickr-time .flatpickr-time-separator { color: var(--text-2); font-size: 22px; line-height: 56px; }
.flatpickr-calendar.fp-jh .flatpickr-time .numInputWrapper:hover { background: none; }
.flatpickr-calendar.fp-jh .flatpickr-time .numInputWrapper span { width: 18px; opacity: .6; }
/* 手机（粗指针）：上下箭头一直显示、更好按；日期格子更大 */
.flatpickr-calendar.fp-jh.fp-touch .flatpickr-time .numInputWrapper span { opacity: 1; width: 26px; }
.flatpickr-calendar.fp-jh.fp-touch .flatpickr-time .numInputWrapper span.arrowUp, .flatpickr-calendar.fp-jh.fp-touch .flatpickr-time .numInputWrapper span.arrowDown { height: 50%; }
.flatpickr-calendar.fp-jh.fp-touch .flatpickr-day { height: 42px; line-height: 42px; max-width: 42px; }
/* 打开时 flatpickr 会选中「时」的文字：选区用主题色，深色下也看得清；去掉时间栏顶上那条浅色分隔线 */
.flatpickr-calendar.fp-jh .flatpickr-time input::selection { background: var(--primary); color: var(--primary-ink); }
.flatpickr-calendar.fp-jh .flatpickr-time { border-top: 0; }
.flatpickr-calendar.fp-jh.fp-touch.fp-jh-time { width: 240px; }
.flatpickr-calendar.fp-jh.fp-touch .flatpickr-time, .flatpickr-calendar.fp-jh.fp-touch .flatpickr-time input { height: 64px; max-height: 64px; line-height: 64px; }
@media(max-width:640px) { .chat-dock { bottom:calc(70px + env(safe-area-inset-bottom)); } }
@media (max-width: 400px) {
  .flatpickr-calendar.fp-jh.fp-jh-date { width: calc(100vw - 16px); }
  .flatpickr-calendar.fp-jh.fp-jh-date .flatpickr-innerContainer, .flatpickr-calendar.fp-jh.fp-jh-date .flatpickr-rContainer, .flatpickr-calendar.fp-jh.fp-jh-date .flatpickr-days, .flatpickr-calendar.fp-jh.fp-jh-date .dayContainer { width: 100%; min-width: 0; max-width: none; }
  .flatpickr-calendar.fp-jh.fp-jh-date .flatpickr-day { max-width: none; flex-basis: 14.2857%; }
}

/* 邀请奖励：叶芽称号与路标气泡，尺寸沿用现有身份组件。 */
.u-title.reward-guangjie{background:#effbdc;color:#365622;border:1px solid #a2bf78;border-radius:6px 12px 6px 12px;padding:1px 7px;font-weight:700;box-shadow:2px 2px 0 #bad78e}
.cm-text.bb-yinlu{background:#f1f8dc;color:#31482d;border:1px dashed #94b669;border-radius:16px 16px 16px 5px;box-shadow:3px 3px 0 #bdd595;padding-inline-end:22px}.cm-text.bb-yinlu::after{content:"✧";position:absolute;right:4px;bottom:3px;color:#658b40;pointer-events:none}
[data-theme=dark] .u-title.reward-guangjie,[data-theme=dark] .cm-text.bb-yinlu{background:#273e2d;color:#d6edb3;box-shadow:2px 2px 0 #577748}

[data-theme=dark] .invite-title-toggle{background:#304a35;color:#e2efc8;border:1px solid #718b56}[data-theme=dark] .bw-guide .bw-lv{color:#9cdbe6}

.cm-mobile-more { display: none; }
.chat-dock.open:not(.split) .cd-head { cursor: grab; touch-action: none; }
.chat-dock.cd-dragging .cd-head { cursor: grabbing; user-select: none; }
.cd-head:focus-visible { outline: 2px solid var(--primary); outline-offset: -3px; }
.member-admin .ma-top { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; align-items: center; gap: 6px 10px; }
.member-admin .gp-face { grid-column: 1; grid-row: 1 / 3; }
.member-admin .gp-who { grid-column: 2; grid-row: 1; width: auto; min-width: 0; }
.member-admin .gp-who > strong { overflow-wrap: anywhere; }
.member-admin .ma-tags { grid-column: 2; grid-row: 2; max-width: none; padding: 0; justify-content: flex-start; }
.member-admin .gp-seen { grid-column: 3; grid-row: 1; }
.member-admin .ma-more { grid-column: 3; grid-row: 2; }
.member-admin .ma-acts { grid-column: 2 / -1; grid-row: 3; flex-wrap: wrap; padding: 6px 0 0; min-width: 0; }
.member-admin .ma-acts .input { width: auto; max-width: 100%; }
@media(max-width:760px) { .cm-bar .cm-secondary, .cm-bar .desktop-only, [aria-label="弹出小窗"], .chat-dock { display:none!important; } .cm-mobile-more { display:inline-flex; } .cm-bar:has(.cm-redpack-btn) { flex-wrap:nowrap; } .cm-bar { justify-content:space-between; } }
.cm-huan-menu{width:min(320px,calc(100vw - 32px));max-height:min(560px,65vh);overflow:auto;box-sizing:border-box}
.cm-huan-menu>strong{display:block;padding:8px 12px}
.cm-huan-menu .menu-item{white-space:normal;gap:12px}
.cm-huan-menu code{min-width:28px;text-align:center;font-size:18px;font-weight:700}
.cm-huan-menu small{display:block;font-size:12px;color:var(--muted);margin-top:3px}
.cm-huan-menu p{margin:8px 12px;font-size:12px;line-height:1.6;overflow-wrap:anywhere}
.cm-huan-menu summary{cursor:pointer;padding:8px 12px}

/* 猜词成长：三级身份组件共用金线等级，正文与尺寸不参与动画。 */
@property --guess-angle{syntax:'<angle>';initial-value:0deg;inherits:false}
.guess-frame{--guess-gold:#ba9656;--guess-edge:#d4bd91;--guess-ink:#664d22;--guess-fill:#fffaf0;--guess-speed:12s;--guess-ring:1px;position:relative;isolation:isolate;box-sizing:border-box;border:1px solid var(--guess-edge);color:var(--guess-ink);background:var(--guess-fill)}
.guess-frame::before{content:'';position:absolute;pointer-events:none;inset:-2px;padding:var(--guess-ring);border-radius:inherit;background:conic-gradient(from var(--guess-angle),var(--guess-gold),#fff0aa 18deg,var(--guess-gold) 42deg,#b98d3420 110deg,#ba975320 280deg,var(--guess-gold));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);mask-composite:exclude;animation:guess-orbit var(--guess-speed) linear infinite}
.guess-frame.gr-2{--guess-gold:#b78931;--guess-edge:#caaa62;--guess-speed:10s;--guess-ring:1.2px}
.guess-frame.gr-3{--guess-gold:#a87921;--guess-edge:#b58d42;--guess-speed:9s;--guess-ring:1.4px;box-shadow:inset 0 0 0 1px #dbc48b80}
.guess-frame.gr-4{--guess-gold:#a37313;--guess-edge:#b58a30;--guess-speed:8s;--guess-ring:1.6px;box-shadow:inset 0 0 0 1px #dbc48b99,0 0 4px #c99c3326}
.guess-frame.gr-5{--guess-gold:#b17e12;--guess-edge:#ad7e25;--guess-speed:7s;--guess-ring:2px;box-shadow:inset 0 0 0 1px #dbc48baa,0 0 6px #d6aa4933}
.guess-frame.gr-5::before{background:conic-gradient(from var(--guess-angle),#a77415,#fff9ce 18deg,#b58a21 44deg,#d4ad542e 100deg,#c79d24 175deg,#fff9dc 194deg,#c29527 220deg,#c79d2422 290deg,#a77415)}
.u-title.guess-title{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:0;max-width:100%;height:22px;padding:0 6px;border-radius:6px;font-size:12px;line-height:20px;white-space:nowrap;font-weight:600;text-shadow:none;vertical-align:middle}
.guess-title small{font-size:9px;line-height:1;font-variant-numeric:tabular-nums;opacity:.85}.guess-sigil{font-size:13px;line-height:1}
.guess-badge-wrap{display:inline-flex;align-items:center;gap:6px;flex:none;font-size:12px;vertical-align:middle}
.guess-badge{display:inline-grid;place-items:center;flex:none;width:20px;height:20px;border-radius:50%;font-size:16px;line-height:1;font-family:Georgia,'Segoe UI Symbol',serif}
.guess-badge.gr-3{border-radius:6px}.guess-badge.gr-4{border-radius:4px 8px}.guess-badge.gr-5{border-radius:5px;border-style:double;border-width:3px;font-size:14px}
.cm-text.guess-bubble{min-width:0;min-height:0;max-width:min(640px,100%);padding:7px 12px;border-radius:5px 12px 12px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;text-align:start}
.cm-text.guess-bubble .rt-copy{display:inline;padding:0;background:none;min-height:0}
.guess-boost{border-radius:7px}
.guess-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;max-width:100%}
.guess-option{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-start;gap:10px;min-width:0;max-width:100%;padding:13px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer}
.guess-option .guess-bubble{flex-basis:100%;font-size:13px}.guess-option>small{flex-basis:100%;font-size:12px;color:var(--text-2)}
.guess-option.on{border-color:var(--primary);outline:1px solid var(--primary)}.guess-option:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.guess-option:disabled{cursor:default;opacity:.6}.guess-option:disabled .guess-frame::before{animation:none}
@keyframes guess-orbit{to{--guess-angle:360deg}}
[data-theme=dark] .guess-frame{--guess-fill:#303223;--guess-ink:#f8e6b9;--guess-edge:#9a824f}
[data-bubble-motion=pause] .guess-frame::before,[data-page-hidden=true] .guess-frame::before{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){html:not([data-bubble-motion=play]) .guess-frame::before{animation:none}}
@media(max-width:400px){.guess-options{grid-template-columns:minmax(0,1fr)}.guess-option{padding:11px}.u-title.guess-title{gap:3px;padding-inline:5px}}
/* 红包成长：珊瑚红/紫晶与猜词金色区分，正文静止，边框逐级增强。 */
.guess-frame.luck-frame{--luck-main:#c45867;--luck-shine:#ffc1c5;--guess-gold:var(--luck-main);--guess-edge:#d68b94;--guess-ink:#7b3041;--guess-fill:#fff5f5;box-shadow:none}
.guess-frame.luck_last{--luck-main:#8962bc;--luck-shine:#ddd1ff;--guess-edge:#b49bd6;--guess-ink:#583880;--guess-fill:#f8f4ff}
.luck-frame::before,.luck-frame.gr-5::before{background:conic-gradient(from var(--guess-angle),var(--luck-main),var(--luck-shine) 20deg,var(--luck-main) 48deg,transparent 115deg,transparent 280deg,var(--luck-main))}
.luck-frame.gr-1::before{animation:none}.luck-frame.gr-2{--guess-speed:16s}.luck-frame.gr-3{--guess-speed:12s;box-shadow:inset 0 0 0 1px var(--guess-edge)}
.luck-frame.gr-4{--guess-speed:10s;box-shadow:inset 0 0 0 1px var(--guess-edge)}.luck-frame.gr-5{--guess-speed:8s;box-shadow:inset 0 0 0 1px var(--guess-edge),0 0 4px color-mix(in srgb,var(--luck-main) 25%,transparent)}
.luck_king.guess-badge{border-radius:5px 5px 8px 8px}.luck_last.guess-badge{border-radius:8px 4px 8px 4px}
[data-theme=dark] .guess-frame.luck_king{--guess-ink:#ffdbe0;--guess-fill:#39272f;--guess-edge:#b16b79;--luck-main:#e49aa5;--luck-shine:#ffe6e9}
[data-theme=dark] .guess-frame.luck_last{--guess-ink:#eee0ff;--guess-fill:#30283e;--guess-edge:#9c80ba;--luck-main:#bd9ae6;--luck-shine:#f0e5ff}

/* 群消息榜沿用群设置配色，切换不闪烁内容背景。 */
.chat-rank-options { display:flex; flex-wrap:wrap; gap:8px; }
.chat-rank-options .btn[aria-pressed="true"] { color:var(--surface); background:var(--primary); border-color:var(--primary); }
.chat-rank-options .btn:disabled { opacity:.4; cursor:not-allowed; }
.chat-rank-mine { padding:10px 12px; border-left:3px solid var(--primary); background:var(--surface-2); }
.chat-rank-list { list-style:none; padding:0; margin:0; border-top:1px solid var(--line); }
.chat-rank-list li { display:flex; align-items:center; gap:8px; padding:10px 0; border-bottom:1px solid var(--line); }
.chat-rank-number { width:24px; flex:none; color:var(--text-2); font-variant-numeric:tabular-nums; }
.chat-rank-name { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.chat-rank-list strong { flex:none; font-variant-numeric:tabular-nums; font-size:14px; }

/* 榜单成长：不同榜单色相，沿用五级外缘动画及减少动态效果规则。 */
.guess-frame.rank-frame { --rank-h:170; --luck-main:hsl(var(--rank-h) 48% 40%); --luck-shine:hsl(var(--rank-h) 68% 82%); --guess-edge:hsl(var(--rank-h) 42% 65%); --guess-ink:hsl(var(--rank-h) 55% 24%); --guess-fill:hsl(var(--rank-h) 60% 96%); }
.rank-frame.rank-sender_paid { --rank-h:38; }.rank-frame.rank-sender_count { --rank-h:28; }.rank-frame.rank-chat_count { --rank-h:210; }.rank-frame.rank-chat_early { --rank-h:45; }.rank-frame.rank-chat_late { --rank-h:275; }
[data-theme=dark] .guess-frame.rank-frame { --luck-main:hsl(var(--rank-h) 60% 70%); --luck-shine:hsl(var(--rank-h) 70% 88%); --guess-edge:hsl(var(--rank-h) 40% 52%); --guess-ink:hsl(var(--rank-h) 72% 90%); --guess-fill:hsl(var(--rank-h) 22% 19%); }
/* 总榜荣誉：低饱和宝石外缘缓慢流动，正文保持中性底色。 */
.guess-frame.rank-all { --rank-gem:hsl(var(--rank-h) 48% 43%); --rank-prism:hsl(calc(var(--rank-h) + 32) 48% 61%); --rank-metal:#b69a62; --guess-speed:18s; --guess-edge:var(--rank-gem); --guess-ink:hsl(var(--rank-h) 62% 20%); --guess-ring:1.5px; background:linear-gradient(118deg,hsl(var(--rank-h) 70% 96%),#fffdf8 48%,hsl(calc(var(--rank-h) + 70) 70% 95%)); box-shadow:inset 0 0 0 1px #ffffffb3,0 1px 3px #20334812; }
.guess-frame.rank-all::before { animation:guess-orbit var(--guess-speed) linear infinite; background:conic-gradient(from var(--guess-angle),var(--rank-gem),var(--rank-prism) 70deg,#fff1c2 112deg,var(--rank-metal) 145deg,var(--rank-gem) 218deg,var(--rank-prism) 280deg,#fff1c2 322deg,var(--rank-gem)); }
.u-title.rank-all { font-weight:750; letter-spacing:.025em; border-radius:8px 3px 8px 3px; padding-inline:7px; gap:5px; }
.rank-all .guess-sigil { color:var(--rank-gem); text-shadow:1px 1px 0 #fff4; }
.rank-all small { padding:2px 3px; border-radius:3px; color:var(--guess-ink); background:color-mix(in srgb,var(--rank-metal) 18%,transparent); opacity:1; letter-spacing:0; }
.guess-badge.rank-all { border-radius:5px 9px 5px 9px; background:linear-gradient(135deg,#fff8d9,hsl(var(--rank-h) 75% 90%) 48%,hsl(calc(var(--rank-h) + 70) 75% 86%)); color:hsl(var(--rank-h) 65% 25%); }
.cm-text.guess-bubble.rank-all { border-radius:4px 13px 5px 13px; background:#fffdf8; color:#35413f; }
.guess-frame.rank-all.gr-2 { --guess-ring:1.8px; }
.guess-frame.rank-all.gr-3 { --guess-ring:2px; box-shadow:inset 0 0 0 1px #fff9,0 1px 5px color-mix(in srgb,var(--rank-gem) 15%,transparent); }
.guess-frame.rank-all.gr-4 { --guess-ring:2.4px; box-shadow:inset 0 0 0 1px #fff9,0 1px 6px color-mix(in srgb,var(--rank-prism) 22%,transparent); }
.guess-frame.rank-all.gr-5 { --guess-ring:2.8px; box-shadow:inset 0 0 0 1px #fff9,0 1px 8px color-mix(in srgb,var(--rank-prism) 28%,transparent); }
.u-title.rank-all:is(.gr-4,.gr-5) { padding-right:17px; }
.u-title.rank-all:is(.gr-4,.gr-5)::after { content:'✧'; position:absolute; right:4px; top:50%; transform:translateY(-50%); color:var(--rank-metal); font-size:12px; line-height:1; pointer-events:none; }
.u-title.rank-all.gr-5::after { content:'✦'; }
.guess-badge.rank-all.gr-5 { border-style:double; border-width:3px; border-radius:6px; }
[data-theme=dark] .guess-frame.rank-all { --rank-gem:hsl(var(--rank-h) 45% 68%); --rank-prism:hsl(calc(var(--rank-h) + 32) 45% 73%); --rank-metal:#d8be8a; --guess-ink:#fff5df; background:linear-gradient(118deg,hsl(var(--rank-h) 30% 22%),#252a33 52%,hsl(calc(var(--rank-h) + 70) 29% 25%)); box-shadow:inset 0 0 0 1px #ffffff18,0 1px 5px #0003; }
[data-theme=dark] .guess-badge.rank-all { color:#fff2ce; background:linear-gradient(135deg,hsl(var(--rank-h) 35% 30%),hsl(calc(var(--rank-h) + 70) 35% 24%)); }
[data-theme=dark] .cm-text.guess-bubble.rank-all { background:#252b2c; color:#ebeeea; }
/* 用户主动播放仅覆盖装扮动效，不解除站点其他减少动态效果规则。 */
html[data-bubble-motion=play] .guess-frame::before{animation:guess-orbit var(--guess-speed) linear infinite!important}
html:not([data-bubble-motion=play]) .guess-option:disabled .guess-frame::before,html[data-bubble-motion=play] .guess-option:disabled .guess-frame::before{animation:none!important}
html[data-bubble-motion=pause] .guess-frame::before,html[data-page-hidden=true] .guess-frame::before{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){html:not([data-bubble-motion=play]) .guess-frame::before{animation:none!important}}
.rank-growth-options details { border-bottom:1px solid var(--line); padding:8px 0; }.rank-growth-options summary { cursor:pointer; padding:4px 0; }.rank-growth-options .guess-options { margin-top:10px; }

.cm-social { width:360px; max-width:100%; min-width:0; margin-top:6px; border-radius:12px; color:var(--text); overflow:hidden; user-select:text; }
.cm-social-head { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:8px; padding:6px 10px; font-size:12px; border-top:1px solid var(--line); }
.cm-social-head strong { margin-right:auto; }.cm-social-head a { font-size:12px; white-space:nowrap; }
.cm-social-status { font-size:12px; color:var(--text-2); line-height:1.5; margin:7px 10px 9px; }
.cm-social-area { width:100%; min-width:0; height:auto; overflow:visible; contain:inline-size; }
.cm-social-area[hidden] { display:none; }.cm-social-area iframe { display:block; width:100%; height:100%; border:0; }
.cm-social-area .twitter-tweet,.cm-social-area .instagram-media { margin:0 auto!important; max-width:100%!important; min-width:0!important; }
.cm-social-area.is-summary { height:auto; min-height:0; padding:0; overflow-wrap:anywhere; }
.cm-social-area.is-summary p { margin:7px 0; line-height:1.6; }.cm-social-area.is-summary img { width:100%; max-height:65svh; object-fit:contain; border-radius:10px; }
.cm-social-media { display:grid; gap:8px; min-width:0; }.cm-social-media video { display:block; width:100%; height:auto; max-height:65svh; object-fit:contain; background:#111; border-radius:10px; }.cm-social-media img { display:block; height:auto; max-width:100%; }.cm-social-area.is-summary p { white-space:pre-wrap; }
.social-post { position:relative; width:min(100%,420px); margin:10px auto; align-self:start; }
.social-post .cm-social-head { padding:7px 9px; }
.cm-social-status:empty { display:none; }
.cm-social-area.is-embed { height:min(520px,70svh); overflow:hidden; }
.social-post .cm-social-area { min-height:0; }
.cm-social-head:not(:has(> :not([hidden]))) { display:none; }
.cm-social-area iframe.instagram-media { width:100%!important; min-width:0!important; max-width:100%!important; }
.cm-social-media .vid { min-width:0; width:100%; }
.cm-social-image { display:block; min-width:0; border:0; padding:0; background:transparent; cursor:zoom-in; }
.cm-social-image:focus-visible { outline:2px solid var(--primary); outline-offset:2px; }
.social-post.blur { min-height:300px; }
.social-post.blur .cm-social-area { filter:blur(24px); pointer-events:none; }
/* Device push keeps its permission status separate from in-site categories. */
.device-push-settings{margin-top:14px;padding-top:14px;border-top:1px solid var(--line,#dce2d7)}
.device-push-settings p{margin:8px 0;line-height:1.6;overflow-wrap:anywhere}

/* 装扮内部分类保留节点；不叠加第二列侧栏，手机预览默认折叠。 */
.settings-categories [hidden] { display:none!important; }
.settings-search-empty { margin:0;font-size:13px;line-height:1.6;color:var(--rpk-ink,var(--text-2)); }
.settings-category-button:focus-visible { outline:2px solid var(--primary);outline-offset:2px; }
.rpk-dialog .settings-search { min-height:44px;border:1.5px solid var(--rpk-ink);border-radius:8px 11px 8px 10px;background:var(--surface);color:var(--text); }
.deco-categories { gap:16px;align-items:stretch; }
.deco-categories .settings-categories { display:flex;flex-direction:column;gap:12px; }
.deco-categories .settings-search { width:100%; }
.deco-categories .settings-category-nav { width:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px; }
.deco-categories .settings-category-button { text-align:center;border-left:0;border-bottom:3px solid transparent;border-radius:6px 6px 0 0;min-height:44px;padding:8px 4px; }
.deco-categories .settings-category-button[aria-pressed=true] { border-bottom-color:var(--primary);color:var(--primary); }
.deco-categories .settings-category-body { width:100%;border-left:0;border-top:1px solid var(--line);padding:16px 0 0; }
.deco-categories .settings-category-panel > h3 { display:none; }
.deco-categories .settings-category-panel { gap:16px; }
.deco-categories .settings-category-panel .field { margin:0; }
.deco-categories .settings-category-panel h4 { margin:10px 0 0; }
.deco-preview-panel { border-bottom:1px solid var(--line);padding-bottom:10px; }
.deco-preview-panel > summary,.deco-custom-styles > summary { min-height:40px;cursor:pointer;font-size:14px;font-weight:600;padding:9px 0; }
.set-body .deco-categories .deco-preview { position:static;max-height:none;margin:8px 0; }
.deco-custom-styles[open] { display:grid;gap:14px; }
.deco-save-state { margin-right:auto;min-width:0;align-self:center;font-size:12px;color:var(--text-2); }
.deco-hide .deco-pref-toggle { display:grid;grid-template-columns:20px minmax(0,1fr) auto;gap:9px;align-items:center;min-height:46px;cursor:pointer;border-bottom:1px solid var(--line);font-size:14px; }
.deco-pref-toggle input { margin:0;width:18px;height:18px;accent-color:var(--primary); }
.deco-pref-state { white-space:nowrap;font-size:12px;color:var(--text-2); }
@media(max-width:640px) {
 .deco-categories .settings-category-nav { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .deco-categories .settings-category-button { font-size:13px; }
 .deco-categories > .row-end { flex-wrap:wrap; }
 .deco-save-state { flex-basis:100%; }
}

/* Guess queue: compact, no background polling. */
.rpk-queue-list{display:grid;gap:10px;padding-top:12px}.rpk-queue-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:9px 0;border-bottom:1px solid var(--line)}.rpk-queue-row>span{flex:1 1 180px;overflow-wrap:anywhere}.gr-queue{flex:none;max-height:220px;overflow:auto;padding:8px 12px;border-bottom:1px dashed var(--line);font-size:12px}.gr-queue p{margin:5px 0}.gr-queue>.gr-link{margin-right:12px}

.gr-escalation{margin:0;padding:6px 12px;background:color-mix(in srgb,var(--accent) 6%,var(--surface));border-bottom:1px dashed var(--line);font-size:12px;line-height:1.6}

/* V4: shared 48-cell atlas; fixed geometry, no ornaments outside the line box. */
.badge-art-v4{position:relative;display:inline-block;flex:0 0 auto;width:28px;height:28px;vertical-align:middle;line-height:0;isolation:isolate}
.badge-v4-sprite{position:absolute;inset:0;background:url('/assets/badges/v4/atlas.webp') no-repeat;background-size:600% 800%}
.badge-v4-level{position:absolute;bottom:0;left:18%;right:18%;height:2px;display:flex;justify-content:center;gap:1px}
.badge-v4-level i{height:100%;flex:1;max-width:4px;background:#7e918b;border-radius:2px;box-shadow:0 0 0 .5px var(--surface)}
.badge-art-lv2 .badge-v4-level i{background:#6c91b8}.badge-art-lv3 .badge-v4-level i{background:#b68a3a}.badge-art-lv4 .badge-v4-level i{background:#9369ac}.badge-art-lv5 .badge-v4-level i{background:linear-gradient(90deg,#ad823d,#4f9d98,#ab6d9b)}
.badge-art-lv5 .badge-v4-sprite{filter:drop-shadow(0 0 1px #c8a35c)}
.u-badge.badge-modern{height:28px;min-height:28px;padding:0 6px 0 0;border:0;background:none;box-shadow:none;text-shadow:none;color:var(--text);animation:none;gap:4px;align-items:center}
.u-badge.badge-modern.mini{width:28px;height:28px;min-height:28px;padding:0;box-shadow:none;background:none}
.u-badge.badge-modern::before,.u-badge.badge-modern::after{display:none}
.badge-modern .ub-lv{box-shadow:none;background:var(--surface);color:var(--text-2)}
.guess-badge-wrap{height:28px;align-items:center;line-height:1;margin:0;vertical-align:middle}
.bw-card .bw-art.bw-art-modern{width:80px;height:80px;border:0;border-radius:0;padding:0;background:none;box-shadow:none;animation:none}
.bw-art-modern .badge-art-v4{width:76px;height:76px}.bw-art-modern .badge-v4-level{height:3px;bottom:2px;gap:3px}.bw-art-modern .badge-v4-level i{max-width:8px}
[data-theme=dark] .badge-style-ink .badge-v4-sprite{filter:drop-shadow(0 0 1px #e3e8d9)}

/* One name and one adjacent badge; remove font-dependent decorative sigils. */
.u-title.guess-title{height:26px;min-height:26px;line-height:1;padding:0 7px;gap:6px;border-radius:8px 3px 8px 3px;font-weight:700;letter-spacing:.015em;background:linear-gradient(115deg,var(--guess-fill),var(--surface) 55%,color-mix(in srgb,var(--guess-edge) 14%,var(--surface)));box-shadow:inset 0 0 0 1px #ffffff70;align-self:center}
.u-title.guess-title .guess-title-name{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;line-height:1.25}.u-title.guess-title small{flex:none;display:block;padding:3px;border-radius:3px;line-height:1;background:color-mix(in srgb,var(--guess-edge) 20%,transparent);font-size:9px;font-variant-numeric:tabular-nums}
.u-title.guess-title.rank-all{background:linear-gradient(115deg,var(--guess-fill),var(--surface) 40%,color-mix(in srgb,var(--rank-metal) 16%,var(--surface)));box-shadow:inset 0 0 0 1px #ffffff90,0 1px 3px #20334816}
.u-title.rank-all:is(.gr-4,.gr-5){padding-right:7px}.u-title.rank-all:is(.gr-4,.gr-5)::after{display:none}

.growth-hub{min-width:0;width:100%}.growth-tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);padding:0 0 8px;overflow:auto}.growth-tabs button{flex:1;min-width:48px;padding:9px 10px;border:0;border-radius:6px;background:transparent;color:var(--text-2);font:inherit;font-weight:650;white-space:nowrap;cursor:pointer}.growth-tabs button[aria-pressed=true]{background:var(--primary);color:var(--surface)}
.growth-series{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:0;margin:12px 0;border-bottom:1px solid var(--line)}.growth-series button{display:flex;justify-content:space-between;align-items:center;gap:8px;min-width:0;padding:10px 8px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--text);font:inherit;font-size:12px;cursor:pointer}.growth-series button small{flex:none;color:var(--text-2);font-size:10px}.growth-series button[aria-pressed=true]{border-bottom-color:var(--primary);background:color-mix(in srgb,var(--primary) 7%,transparent);font-weight:650}.growth-intro{font-size:12px;color:var(--text-2);line-height:1.7;margin:12px 0}
.growth-cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:12px}.growth-option{position:relative;display:grid;grid-template-columns:minmax(0,1fr);align-content:start;gap:12px;padding:15px 13px;border-radius:8px}.growth-option-head{display:flex;align-items:center;gap:7px;min-width:0;height:30px}.growth-option-head .guess-title{flex:0 1 auto;max-width:calc(100% - 35px)}.growth-option .guess-bubble{display:block;width:100%;box-sizing:border-box;font-size:12px;line-height:1.65;min-height:40px;margin:0}.growth-option>small{display:block;padding-right:45px;line-height:1.5}.growth-option-state{position:absolute;bottom:14px;right:12px;font-size:10px;color:var(--text-2)}.growth-option.on .growth-option-state{color:var(--primary);font-weight:700}.growth-option:disabled{opacity:1;background:var(--surface-2);border-style:dashed}.growth-option:disabled .growth-option-head{opacity:.8}.growth-option:disabled .guess-frame::before{animation:none!important}.growth-hub[data-kind=all] .growth-tabs{border-bottom-color:#b59a67}.growth-hub button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
@media(max-width:600px){.growth-series{grid-template-columns:repeat(2,minmax(0,1fr))}.growth-tabs button{padding:9px 5px;font-size:12px}.growth-cards{grid-template-columns:minmax(0,1fr)}.growth-option{gap:10px}.growth-option-head{height:30px}.u-title.guess-title{height:24px;min-height:24px}}

.rank-frame.rank-guess_winrate { --rank-h:185; }
@media(max-width:640px){.gr-head{flex-wrap:nowrap;gap:1px;justify-content:flex-start;padding-inline:4px}.gr-head > .grow{display:block}.gr-head > strong{font-size:12px;gap:3px;white-space:nowrap}.gr-head > strong > img{width:20px;height:20px;padding:1px}.gr-head .gr-tool{width:28px;height:30px;padding:4px}.gr-meta p{margin-top:2px}.gr-round{gap:2px 8px}.gr-overview-tools .gr-layout-toggle,.gr-overview-tools .gr-extra-toggle{min-height:28px;margin-right:3px}.gr-extra-toggle{font-size:11px}.gr-manual-hints{padding-block:2px}}

.gr-review{font-size:10px;line-height:1.3;color:var(--text-3);margin:0;flex-shrink:0}.gr-review.corrected{color:var(--primary);font-weight:600}.gr-review.uncertain{color:var(--text-2)}

.gr-question-text{display:block;width:100%;min-width:0;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;line-height:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}
.gr-question-text:focus-visible{outline:2px solid var(--primary);outline-offset:1px;border-radius:2px}
.is-expanded .gr-question-text{white-space:normal;overflow-wrap:anywhere}
.gr-answer-top > .gr-review{white-space:nowrap;min-width:0;margin:0;text-align:center}
.gr-panel[data-people="names"] .gr-answer-top{display:grid;grid-template-columns:12px minmax(0,1fr) auto minmax(30px,1fr)}
.gr-panel[data-people="names"] .gr-answer-top > .gr-review{grid-column:3;grid-row:1}
.gr-panel[data-people="names"] .gr-answer-top > b{grid-column:4;grid-row:1;justify-self:end}
.gr-panel:not([data-people="names"]) .gr-answer{grid-template-columns:18px minmax(0,1fr) auto minmax(30px,1fr)}
.gr-panel:not([data-people="names"]) .gr-answer-top > .gr-review{display:block;grid-row:1;grid-column:3}
.gr-panel:not([data-people="names"]) .gr-answer-top > b{grid-column:4;justify-self:end}
.gr-panel:not([data-people="names"]) .gr-answer-bottom > .gr-progress{grid-column:2 / 5}
.gr-panel[data-people="hidden"] .gr-answer{grid-template-columns:minmax(0,1fr) auto minmax(30px,1fr)}
.gr-panel[data-people="hidden"] .gr-answer-top > .gr-review{grid-column:2}
.gr-panel[data-people="hidden"] .gr-answer-top > b{grid-column:3}
.gr-panel[data-people="hidden"] .gr-answer-bottom > .gr-progress{grid-column:1 / 4}
.gr-yes-row > p{display:flex;align-items:baseline;gap:4px;flex:1;min-width:0}
.gr-yes-row p > span{flex:none;margin-right:0}
.gr-yes-row p > .gr-question-text{flex:1;width:0}
.gr-yes-row p > .gr-review{display:inline;flex:none;white-space:nowrap;margin:0}
.rpk-composer{display:grid;gap:14px;min-width:0}.rpk-play-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid var(--line);gap:4px;padding-bottom:8px;position:sticky;top:0;background:var(--surface);z-index:2}.rpk-play-tabs button{border:0;border-radius:7px;padding:9px 4px;min-height:38px}.rpk-play-tabs button[aria-pressed="true"]{background:var(--accent);color:#fff;font-weight:700}.rpk-currency{display:flex;align-items:center;justify-content:space-between;gap:12px}.rpk-currency .rpk-platforms{display:flex;margin:0}.rpk-currency button{min-height:34px;min-width:62px;padding:5px 12px}.rpk-funding-note,.rpk-funding-status{font-size:12px;margin:0;color:var(--text-2);line-height:1.6}.rpk-composer-fields{display:grid;gap:12px}.rpk-form-section{min-width:0}.rpk-form-section h3{font-size:14px;margin:4px 0 12px}.rpk-section-body{display:grid;gap:12px}.rpk-inline-fields{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:12px}.rpk-composer .rpk-field{margin:0;min-width:0}.rpk-composer .rpk-input{box-sizing:border-box;max-width:100%}.rpk-composer .rpk-options{margin:0;border-top:1px solid var(--line);padding:11px 0}.rpk-composer .rpk-options>summary{cursor:pointer;font-size:13px;line-height:1.6}.rpk-composer .rpk-options[open]>summary{margin-bottom:12px}.rpk-composer .rpk-create-footer{position:sticky;bottom:0;background:var(--surface);padding:12px 0 0;border-top:1px solid var(--line);z-index:1}.rpk-composer .rpk-create-footer>.rpk-primary{width:100%}.rpk-composer .rpk-create-basics:empty{display:none}.rpk-composer .rpk-form{gap:12px}.rpk-setup-steps{padding-left:23px;margin:0 0 16px;display:grid;gap:16px}.rpk-setup-steps li::marker{color:var(--accent);font-weight:700}.rpk-setup-steps strong{font-size:14px}.rpk-setup-steps p{font-size:12px;line-height:1.65;margin:5px 0;color:var(--text-2)}.rpk-setup-steps a{display:inline-flex;align-items:center;font-size:12px;min-height:34px;margin-top:3px}.rpk-fish-binding .rpk-actions{margin-top:12px}.rpk-fish-binding>.rpk-field{margin-bottom:12px}.gr-panel[data-people="avatar"] .gr-answer{grid-template-columns:auto minmax(0,1fr) auto minmax(27px,auto)}.gr-avatar-stack{display:inline-flex!important;gap:0;align-items:center;max-width:84px;flex-shrink:0}.gr-avatar-stack .gr-avatar{display:block!important;border:1px solid var(--surface);box-sizing:border-box;width:17px;height:17px}.gr-avatar-stack .gr-avatar+.gr-avatar{margin-left:-9px}.gr-avatar-stack .gr-avatar-more{font-size:9px;font-weight:400;padding-left:1px}.gr-panel[data-people="hidden"] .gr-avatar-stack{display:none!important}
@media(max-width:480px){.rpk-composer{gap:10px}.rpk-composer .rpk-field>span{font-size:12px}.rpk-composer .rpk-input{font-size:16px;min-height:40px}.rpk-composer .rpk-inline-fields{gap:9px}.rpk-composer .rpk-platforms{flex-wrap:wrap}.rpk-composer .rpk-secondary,.rpk-composer .rpk-primary{min-height:38px}.rpk-setup-steps{padding-left:20px}.gr-avatar-stack{max-width:58px}.gr-avatar-stack .gr-avatar+.gr-avatar{margin-left:-11px}}
.rpk-dialog:has(.rpk-composer){width:min(660px,calc(100% - 20px));height:min(760px,var(--rpk-height,calc(100dvh - 16px)))}
.rpk-dialog:has(.rpk-composer)>.rpk-content{display:flex;flex-direction:column;flex:1;overflow:hidden;padding:8px 18px 14px}
.rpk-dialog .rpk-composer{display:flex;flex-direction:column;flex:1;min-height:0;gap:0;color:var(--rpk-ink)}
.rpk-dialog .rpk-play-tabs{position:static;flex:none;gap:0;padding:0 0 10px;border-bottom:1px solid color-mix(in srgb,var(--rpk-ink) 18%,transparent);background:transparent}
.rpk-dialog .rpk-play-tabs button{background:transparent;border-radius:7px;box-shadow:none;font-weight:500}
.rpk-dialog .rpk-play-tabs button[aria-pressed=true]{background:var(--rpk-ink);color:var(--rpk-paper);font-weight:700}
.rpk-composer-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:14px 4px 8px 0}
.rpk-dialog .rpk-currency{margin:0 0 6px;min-height:38px}
.rpk-dialog .rpk-currency .rpk-platforms{gap:0;padding:3px;background:var(--rpk-soft);border-radius:9px;flex-wrap:nowrap}
.rpk-dialog .rpk-currency button{border:0;box-shadow:none;background:transparent;display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:76px;min-height:32px;padding:4px 10px}
.rpk-dialog .rpk-currency button[aria-pressed=true]{background:var(--rpk-record);color:var(--rpk-ink);box-shadow:0 1px 3px #0002}
.rpk-funding-line{display:flex;align-items:flex-start;gap:12px;min-height:46px;padding-bottom:12px;font-size:12px;line-height:18px}
.rpk-funding-summary{flex:1;min-width:0;color:var(--rpk-ink);opacity:.8}
.rpk-text-button{flex:none;border:0;background:none;text-decoration:underline;text-underline-offset:3px;color:inherit;font:inherit;padding:0;cursor:pointer}
.rpk-dialog .rpk-composer .rpk-create-basics{display:block;padding:0;border:0}
.rpk-dialog .rpk-composer .rpk-create-basics:has(> :only-child[hidden]),.rpk-dialog .rpk-composer .rpk-create-basics:empty{display:none}
.rpk-dialog .rpk-composer .rpk-form,.rpk-dialog .rpk-composer .rpk-composer-fields{display:flex;flex-direction:column;gap:14px}
.rpk-dialog .rpk-composer .rpk-form-section h3{display:none}
.rpk-dialog .rpk-composer .rpk-field{gap:6px;font-size:13px}
.rpk-dialog .rpk-composer .rpk-field>span{font-weight:600}
.rpk-dialog .rpk-composer .rpk-input{border-color:color-mix(in srgb,var(--rpk-ink) 30%,transparent);border-radius:8px;padding:10px 11px;min-height:42px}
.rpk-dialog .rpk-composer .rpk-options{padding:10px 0;border-color:color-mix(in srgb,var(--rpk-ink) 18%,transparent);margin:0}
.rpk-dialog .rpk-composer .rpk-options>summary{font-size:12px;font-weight:500}
.rpk-dialog .rpk-composer .rpk-inline-fields:has(>[hidden]){grid-template-columns:1fr}
.rpk-dialog .rpk-composer-actions{flex:none;border-top:1px solid color-mix(in srgb,var(--rpk-ink) 18%,transparent);background:var(--rpk-paper);padding-top:10px}
.rpk-dialog .rpk-composer-actions .rpk-create-footer{position:static;background:transparent;border:0;padding:0;display:grid;gap:6px}
.rpk-dialog .rpk-composer-actions .rpk-status{margin:0;font-size:12px;max-height:50px;overflow:auto}
.rpk-dialog .rpk-composer-actions .rpk-status:empty{display:none}
.rpk-dialog .rpk-composer-actions .rpk-primary{width:100%;min-height:44px;border-radius:9px;box-shadow:none}
.rpk-dialog .rpk-funding-settings{margin-top:10px!important}
.rpk-credit-settings{display:grid;gap:9px;padding-top:14px;margin-top:12px;border-top:1px solid color-mix(in srgb,var(--rpk-ink) 18%,transparent)}
.rpk-credit-settings>.rpk-setting-toggle{grid-template-columns:minmax(0,1fr) 20px;font-size:13px}
.rpk-credit-settings .rpk-field+.rpk-field{margin-top:10px}
@media(max-width:480px){.rpk-dialog:has(.rpk-composer){width:calc(100% - 12px);border-radius:14px;height:var(--rpk-height,calc(100dvh - 16px));box-shadow:2px 3px 0 var(--rpk-ink)}.rpk-dialog:has(.rpk-composer)>.rpk-content{padding:6px 12px 10px}.rpk-dialog:has(.rpk-composer) .rpk-head{padding:12px 12px 8px}.rpk-dialog:has(.rpk-composer) .rpk-mascot{width:34px;height:34px}.rpk-dialog:has(.rpk-composer) .rpk-head h2{font-size:19px}.rpk-dialog .rpk-composer .rpk-input{font-size:16px}.rpk-dialog .rpk-play-tabs button{min-height:36px}.rpk-funding-line{min-height:54px}.rpk-dialog .rpk-composer .rpk-field small{font-size:12px;line-height:1.5}}

.rpk-dialog .rpk-play-tabs{grid-template-columns:repeat(5,minmax(0,1fr))}
.rpk-dialog .rpk-composer .rpk-options>summary{min-height:24px;line-height:24px;padding:0;margin:0}
.rpk-amount{display:inline-flex;align-items:center;justify-content:flex-end;gap:5px;white-space:nowrap;font-variant-numeric:tabular-nums}.rpk-amount>.dcoin{width:22px;height:22px;flex:none}.rpk-amount>small{font-size:11px}
.rpk-reward-hero{text-align:center;padding:20px 12px;background:linear-gradient(160deg,#fff0c9aa,transparent);border-radius:12px}.rpk-reward-hero h3{font-size:16px;margin:0 0 12px}.rpk-hero-amount{font-size:32px;justify-content:center}.rpk-hero-amount>.dcoin{width:34px;height:34px}.rpk-hero-amount>small{font-size:14px}
.rpk-record-head{display:flex;align-items:baseline;gap:10px;margin:18px 0 8px}.rpk-record-head h4{font-size:15px;margin:0}.rpk-record-head>span{font-size:12px;opacity:.7}.rpk-record-head>button{margin-left:auto;font-size:12px}
.rpk-record-list{list-style:none;margin:0;padding:0}.rpk-record-row{display:flex;gap:10px;align-items:center;padding:12px 6px;border-bottom:1px solid color-mix(in srgb,var(--rpk-ink) 15%,transparent);font-size:13px}.rpk-record-row .rpk-record-avatar,.rpk-draw-people .rpk-record-avatar{width:28px;height:28px;flex:none;border-radius:50%;object-fit:cover}.rpk-record-person{flex:1;min-width:0;display:grid;gap:3px}.rpk-record-person>strong,.rpk-record-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rpk-record-person>small{font-size:11px;line-height:1.4;opacity:.75}.rpk-record-person .rpk-luck{justify-self:start;margin:0}.rpk-record-name{flex:1}.rpk-record-row.luck_king{background:#e9ae3418}.rpk-record-row.luck_last{background:#a48cbd16}.rpk-record-empty{padding:18px 0;font-size:13px;opacity:.75}.rpk-luck-filters{display:flex;justify-content:space-between;gap:8px;padding-top:14px}.rpk-luck-filters .rpk-platforms{gap:3px}.rpk-luck-filters button{padding:5px 7px;font-size:12px}.rpk-rank-number{min-width:16px;font-weight:700}.rpk-draw-people{list-style:none;padding:0;max-height:260px;overflow:auto}.rpk-draw-people li{display:flex;align-items:center;gap:8px;padding:8px 0}.rpk-draw-people li>span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cm-favorites{width:min(380px,calc(100vw - 32px));display:flex;flex-direction:column;gap:10px;padding:12px;max-height:min(520px,calc(var(--pop-height,90vh) - 24px));box-sizing:border-box}
.cm-favorites header,.cm-favorites footer{display:flex;align-items:center;justify-content:space-between;gap:8px;flex:none}.cm-favorites-list{overflow:auto;overscroll-behavior:contain;min-height:36px}.cm-favorite-row{display:flex;align-items:center;gap:8px;padding:10px 0;border-bottom:1px solid var(--border,#d8dfd1)}.cm-favorite-text{min-width:0;flex:1}.cm-favorite-text p{margin:0;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow-wrap:anywhere;white-space:pre-wrap;font-size:13px;line-height:1.5}.cm-favorite-text small{font-size:11px;opacity:.7}.cm-favorite-row>.btn{flex:none;white-space:nowrap;padding:5px 9px}.cm-favorites>p{margin:0;font-size:12px;line-height:1.5;flex:none}

@media(max-width:640px){.gr-head .gr-tools-menu{min-width:0;width:max-content;grid-template-columns:repeat(4,36px);gap:2px}.gr-head .gr-tools-menu .gr-tool{width:36px;height:36px;justify-content:center;padding:7px}.gr-tools-menu .gr-tool::after{content:none}}

.rpk-crop [hidden]{display:none!important}

.gr-close-panel{max-height:200px;overflow:auto;padding:8px;border:1px solid var(--line);border-radius:8px;font-size:12px;margin-bottom:6px}.gr-close-panel p{margin:4px 0;overflow-wrap:anywhere}.gr-close-options{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start}.gr-close-options details{flex:1 1 100%}.gr-close-options label{display:flex;align-items:center;gap:6px;margin:6px 0}.gr-close-options input{width:auto}.gr-close-vote{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;margin-bottom:6px}.gr-close-panel[hidden],.gr-close-vote[hidden]{display:none}

.rpk-funding-settings>.rpk-funding-status{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}.rpk-funding-settings>.rpk-funding-status>span{flex:1 1 220px;min-width:0;overflow-wrap:anywhere}.rpk-funding-status>.rpk-text-button{flex:none;min-height:30px}

.gr-tip{font-size:12px;min-width:0}.gr-tip>summary{cursor:pointer;color:var(--primary);padding:5px 0}.gr-tip-body{display:grid;gap:7px;max-height:190px;overflow:auto;padding:8px;background:var(--surface);border:1px solid var(--line);border-radius:8px}.gr-tip-body p{margin:0;overflow-wrap:anywhere}.gr-tip-body label,.gr-tip-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.gr-tip-body input[type=number]{width:95px;max-width:100%;padding:6px;font:inherit}.gr-tip-confirm input{flex:none}.gr-tip-confirm span{flex:1;min-width:0}.gr-tip-actions .gr-send{padding:6px 10px;min-height:32px;font-size:12px}.gr-tip-body .dcoin{width:20px;height:20px;flex:none}
