/* color_scheme */
/* 色系切换 - 入口放在“快捷功能”里，点击展开色块面板 */
/* “快捷功能”保持原生 2 列网格；“切换色系”为普通网格项。色块面板改为挂在 body 下的 fixed 浮层，按视口坐标定位，避免被挂件外层 overflow:hidden 裁剪遮挡 */
.color-scheme-panel{display:none;position:fixed;left:0;top:0;z-index:1000;box-sizing:border-box;grid-template-columns:repeat(3,38px);gap:12px;justify-content:center;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel);box-shadow:0 4px 16px rgba(0,0,0,.08)}
.color-scheme-panel.open{display:grid}
.color-scheme-swatch{width:38px;height:38px;border-radius:8px;border:2px solid transparent;cursor:pointer;transition:transform .12s,border-color .12s,box-shadow .12s;padding:0}
.color-scheme-swatch:hover{transform:scale(1.12)}
.color-scheme-swatch:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.color-scheme-swatch.active{border-color:var(--text);box-shadow:0 0 0 2px var(--panel),0 0 0 4px var(--text)}
.color-scheme-reset{grid-column:1/-1;margin-top:6px;padding:7px;font-size:12px;color:var(--text-muted);background:transparent;border:1px solid var(--line);border-radius:8px;cursor:pointer;transition:color .12s,border-color .12s}
.color-scheme-reset:hover{color:var(--brand);border-color:var(--brand)}

/* 色系变量覆盖 */
html.cs-scheme-emerald{--brand:#047857;--brand-hover:#065F46;--brand-soft:#ECFDF5}html.cs-scheme-blue{--brand:#2563EB;--brand-hover:#1D4ED8;--brand-soft:#EFF6FF}html.cs-scheme-x_blue{--brand:#1D9BF0;--brand-hover:#1A8CD8;--brand-soft:#E8F5FD}html.cs-scheme-amber{--brand:#B45309;--brand-hover:#92400E;--brand-soft:#FFFBEB}html.cs-scheme-red{--brand:#DC2626;--brand-hover:#B91C1C;--brand-soft:#FEF2F2}html.cs-scheme-bilibili{--brand:#FB7299;--brand-hover:#E45C85;--brand-soft:#FFF0F5}html.cs-scheme-violet{--brand:#7C3AED;--brand-hover:#6D28D9;--brand-soft:#F5F3FF}html.cs-scheme-slate{--brand:#334155;--brand-hover:#1E293B;--brand-soft:#F1F5F9}html.cs-scheme-cyan{--brand:#0E7490;--brand-hover:#155E75;--brand-soft:#ECFEFF}
/* nb_editor */
.nb-editor-field{position:relative;display:grid;row-gap:0;margin:8px 0}
.reply-panel .nb-editor-field{margin:0}
.nb-editor-field>.grid{display:contents}
.nb-editor-field>.grid>span{order:1;margin-bottom:6px;padding-top:0}
.nb-editor-field>.nb-editor{order:2}
/* 正文框固定白底，和主题色工具栏拉开层次；高度仍交给核心按场景决定。 */
.nb-editor-field>.grid>textarea[name=body]{order:3;border-top:0;border-radius:0 0 var(--radius-sm) var(--radius-sm);background:var(--panel);resize:vertical}
/* 分栏预览：左边写 Markdown，右边常驻渲染结果，随输入更新。 */
.nb-editor-field.nb-editor-live{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.nb-editor-field.nb-editor-live>.grid>span,.nb-editor-field.nb-editor-live>.nb-editor{grid-column:1/-1}
.nb-editor-field.nb-editor-live>.grid>textarea[name=body]{grid-column:1;border-bottom-right-radius:0}
.nb-editor-field.nb-editor-live>.nb-editor-preview{grid-column:2;max-height:60vh;overflow:auto;border-left:0;border-bottom-left-radius:0}
.nb-editor{min-width:0}
/* 工具栏跟随站点主题色，不写死中性灰。 */
.nb-editor-bar{display:flex;align-items:center;flex-wrap:wrap;gap:2px;padding:4px 6px;border:1px solid var(--line);border-bottom:0;border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:var(--brand-soft)}
.nb-editor-field:focus-within>.nb-editor>.nb-editor-bar{border-color:var(--brand)}
/* 选择器带上根容器，避免被 .reply-panel button 之类的核心规则按特异性压过。 */
.nb-editor .nb-editor-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;min-width:30px;min-height:28px;height:28px;padding:0;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--brand-hover);cursor:pointer}
.nb-editor .nb-editor-btn svg{width:16px;height:16px}
.nb-editor .nb-editor-btn:hover{border-color:var(--line);background:var(--panel);color:var(--brand-hover)}
.nb-editor .nb-editor-btn:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}
.nb-editor .nb-editor-btn.nb-editor-btn-active{border-color:var(--brand);background:var(--panel);color:var(--brand-hover)}
.nb-editor-split{width:1px;height:16px;margin:0 4px;background:var(--line)}
.nb-editor-space{flex:1 1 auto;min-width:0}
/* 面板用 fixed 浮层：既不挤占正文框空间，也不会被祖先的 overflow:hidden 裁掉。位置由 JS 计算，优先向上弹。 */
.nb-editor-panel{position:fixed;z-index:60;display:flex;flex-direction:column;width:min(360px,100%);max-height:min(60vh,340px);border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:0 12px 32px var(--shadow-medium);overflow:hidden}
.nb-editor-panel[hidden]{display:none}
.nb-editor-panel-title{flex:0 0 auto;padding:8px 12px 0;color:var(--text-subtle);font-size:var(--font-size-xs);line-height:1.4}
.nb-editor-items{flex:1 1 auto;min-height:0;display:flex;align-items:flex-start;align-content:flex-start;flex-wrap:wrap;gap:3px;margin:0;padding:8px 10px;overflow-y:auto;list-style:none}
.nb-editor-items[hidden]{display:none}
.nb-editor-items li{padding:4px 7px;border-radius:var(--radius-sm);color:var(--text);font-size:var(--font-size-sm);line-height:1.4;cursor:pointer;user-select:none}
.nb-editor-items li:hover{background:var(--bg)}
.nb-editor-items-emoji li{padding:2px 5px;font-size:var(--font-size-xl)}
.nb-editor-tabs{flex:0 0 auto;display:flex;align-items:stretch;flex-wrap:wrap;border-top:1px solid var(--line);background:var(--brand-soft)}
.nb-editor .nb-editor-tab{min-width:0;min-height:34px;padding:0 12px;border:0;border-radius:0;background:transparent;color:var(--text-muted);font-size:var(--font-size-sm);font-weight:400;cursor:pointer}
.nb-editor .nb-editor-tab:hover{background:var(--panel);color:var(--text)}
.nb-editor .nb-editor-tab.nb-editor-tab-active{background:var(--panel);color:var(--brand-hover);font-weight:500}
/* 预览框借用核心 .post-content 的排版，但要去掉它的 margin-top，否则与正文框差 2px。 */
.nb-editor-preview{order:4;margin-top:0;min-height:120px;padding:12px 14px;border:1px solid var(--line);border-top:0;border-radius:0 0 var(--radius-sm) var(--radius-sm);background:var(--panel)}
.nb-editor-preview[hidden]{display:none}
.nb-editor-preview-empty{color:var(--text-subtle);font-size:var(--font-size-sm)}
.nb-editor-draft{order:2;display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:7px 10px;border:1px solid var(--line);border-top:0;background:var(--info-soft);color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.5}
.nb-editor-draft[hidden]{display:none}
.nb-editor-draft-text{flex:1 1 auto;min-width:0}
.nb-editor-draft .nb-editor-draft-action{min-width:0;min-height:26px;padding:0 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);color:var(--text);font-size:var(--font-size-sm);font-weight:500;cursor:pointer}
.nb-editor-draft .nb-editor-draft-action:hover{border-color:var(--brand);color:var(--brand-hover)}
/* 与核心 .post-content ul 的缩进保持一致，否则有序列表会多缩进一截。 */
.nb-editor-ol{margin:4px 0 8px 18px;padding:0}
.nb-editor-field.nb-editor-full{position:fixed;inset:0;z-index:60;align-content:start;margin:0;padding:14px;background:var(--panel);overflow:auto}
.nb-editor-field.nb-editor-full>.grid>textarea[name=body]{min-height:calc(100vh - 120px)}
.nb-editor-field.nb-editor-full>.nb-editor-preview{min-height:calc(100vh - 120px)}
.nb-editor-field.nb-editor-full.nb-editor-live>.nb-editor-preview{max-height:none}
.nb-editor-dialog-field{display:grid;gap:5px;color:var(--text-muted);font-size:var(--font-size-sm)}
.nb-editor-dialog-field .prompt-input{box-sizing:border-box}
/* 窄屏放不下两栏，预览改到正文框下方，仍然实时更新。 */
@media(max-width:820px){
.nb-editor-field.nb-editor-live{grid-template-columns:minmax(0,1fr)}
.nb-editor-field.nb-editor-live>.grid>textarea[name=body]{grid-column:1;border-radius:0}
.nb-editor-field.nb-editor-live>.nb-editor-preview{grid-column:1;max-height:50vh;border-left:1px solid var(--line);border-radius:0 0 var(--radius-sm) var(--radius-sm)}
}
@media(max-width:480px){
.nb-editor-bar{gap:1px;padding:4px}
.nb-editor .nb-editor-btn{width:28px;min-width:28px}
.nb-editor-split{margin:0 2px}
}
/* post_signature */
.post-signature-settings{display:grid;gap:10px;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.post-signature-settings h3,.post-signature-settings p{margin:0}.post-signature-settings p{color:var(--text-muted);font-size:var(--font-size-sm)}.post-signature-settings form{display:grid;gap:10px}.post-signature-settings textarea{width:100%;max-width:none;min-height:110px}.post-signature-content{grid-column:1/-1;margin:12px 0 0;padding:10px 0 0;border-top:1px dashed var(--line);color:var(--text-muted);font-size:var(--font-size-sm);overflow-wrap:anywhere}.post-signature-content>:first-child{margin-top:0}.post-signature-content>:last-child{margin-bottom:0}.post-signature-content ul,.post-signature-content ol{margin-top:4px;margin-bottom:4px}
/* pow */
.pow-verify{display:grid;grid-template-columns:1fr;gap:5px;margin:0 0 8px}.pow-verify-label{color:var(--text-muted);font-size:var(--font-size-sm)}.pow-verify-field{display:flex;align-items:center;gap:var(--font-size-xs);min-width:0;max-width:450px;box-sizing:border-box;overflow:hidden}.pow-verify-button{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 9px;min-width:170px;border:1px solid var(--line);background:var(--panel);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;color:var(--text);transition:border-color .15s,background .15s}.pow-verify-button:hover:not(:disabled){border-color:var(--brand);background:var(--brand-soft);color:var(--text)}.pow-verify-button:focus-visible{outline:0;box-shadow:0 0 0 3px var(--focus-ring)}.pow-verify-button:disabled{cursor:not-allowed;opacity:.7}.pow-button-inner{display:flex;align-items:center;gap:var(--font-size-xs);min-width:0;flex:1 1 auto;overflow:hidden}.pow-button-inner span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pow-check{display:flex;align-items:center;justify-content:center;width:16px;height:16px;border:1px solid var(--text-muted);border-radius:50%;font-size:var(--font-size-xxs);color:var(--text-muted)}.pow-badge{font-size:var(--font-size-sm);color:var(--text-muted);line-height:1;white-space:nowrap;align-self:center}.pow-verify-status{flex:0 0 auto;font-size:var(--font-size-xs);color:var(--text-muted);white-space:nowrap}.pow-progress{--pow-progress:0%;display:block;height:4px;border-radius:2px;background:var(--line-soft);overflow:hidden;flex-basis:100%;max-width:340px;margin-top:2px}.pow-progress[hidden]{display:none}.pow-progress:before{content:"";display:block;height:100%;width:var(--pow-progress);background:var(--brand);transition:width .15s}.pow-verify.is-ok .pow-verify-button{background:var(--success-soft);border-color:var(--success);color:var(--success)}.pow-verify.is-ok .pow-check{background:var(--success);border-color:var(--success);color:var(--inverse-text)}.pow-verify.is-ok .pow-verify-status{color:var(--success)}.pow-again-button{flex:0 0 auto;background:none;border:0;padding:0;font-size:var(--font-size-xs);color:var(--brand);cursor:pointer}.pow-again-button:hover{background:none;color:var(--brand);opacity:.8}.pow-verify.is-error .pow-verify-button{border-color:var(--danger)}.pow-verify.is-error .pow-check{background:var(--danger);border-color:var(--danger);color:var(--inverse-text)}.pow-verify.is-error .pow-verify-status{color:var(--danger)}.pow-verify.is-working .pow-verify-status{color:var(--brand)}.pow-check.is-loading{border-top-color:transparent;color:transparent;animation:pow-spin .8s linear infinite}@keyframes pow-spin{to{transform:rotate(360deg)}}.pow-note{color:var(--text-subtle);font-size:var(--font-size-xs);margin:0}.reply-panel form{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.reply-panel form>*{grid-column:1 / -1;min-width:0}.reply-panel form>.danmaku-react-reply-controls{order:1}.reply-panel form>.pow-verify{margin:0;order:2}.reply-panel form>.quick-reply-actions,.reply-panel form>button[type=submit]{justify-self:end;align-self:center;order:3}.reply-panel form>.pow-note{order:4}.reply-panel .pow-verify-label{display:none}.reply-panel .pow-verify-field{max-width:none}@media (max-width:640px){.reply-panel form{grid-template-columns:minmax(0,1fr)}.reply-panel form>*{grid-column:1 / -1;min-width:0}}.topic-form-panel .pow-verify-field,.reply-edit-panel .pow-verify-field{max-width:none}.pow-admin-row{display:flex;align-items:center;gap:var(--font-size-sm);margin:var(--font-size-sm) 0}.pow-admin-switch{display:inline-flex;align-items:center;gap:var(--font-size-xs);min-width:110px;font-size:var(--font-size-sm);cursor:pointer}.pow-admin-number{width:70px}.pow-admin-hint{color:var(--text-muted);font-size:var(--font-size-xs)}.pow-stat-rows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--font-size-md);list-style:none;margin:0;padding:var(--font-size-sm) var(--font-size-sm) 0}.pow-stat-rows .admin-list-item{border-bottom:1px solid var(--line-soft);padding:var(--font-size-sm) 0}.pow-stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--font-size-sm);padding:var(--font-size-sm)}.pow-stat-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--font-size-sm);display:flex;flex-direction:column;gap:var(--font-size-xs)}.pow-stat-card>span{color:var(--text-muted);font-size:var(--font-size-xs)}.pow-stat-nums{display:flex;flex-direction:column;gap:2px;font-size:var(--font-size-sm);font-weight:600}.pow-stat-nums .on{color:var(--success)}.pow-stat-nums .danger{color:var(--danger)}@media (max-width:480px){.pow-stat-rows{grid-template-columns:1fr;gap:0}.pow-stat-rows .admin-list-item{padding:var(--font-size-xs) 0}.pow-stat-rows .admin-flag{white-space:nowrap}.pow-stat-grid{grid-template-columns:1fr;gap:var(--font-size-xs)}.pow-stat-card{padding:var(--font-size-xs)}.pow-admin-row{flex-wrap:wrap}.pow-admin-number{width:56px}}
/* search_highlight */
.search-highlight-mark{background:var(--warning-soft);color:var(--warning);padding:0 2px;border-radius:3px}
/* seo_suite */
.seo-suite-form{width:100%;max-width:none}.seo-suite-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:100%}.seo-suite-section{display:grid;align-content:start;gap:10px;min-width:0;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}.seo-suite-section h3{margin:0;color:var(--text);font-size:13px}.seo-suite-section .grid{gap:5px}.seo-suite-form input:not([type=checkbox]),.seo-suite-form select,.seo-suite-form textarea{width:100%;max-width:none;box-sizing:border-box}.seo-suite-form textarea{min-height:104px;resize:vertical}.seo-suite-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}.seo-suite-actions form{margin:0}.seo-suite-tools{grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.seo-suite-status{overflow-wrap:anywhere}@media(max-width:600px){.seo-suite-grid,.seo-suite-tools{grid-template-columns:1fr}.seo-suite-section{padding:12px}}
/* topic_prev_next */
.topic-prev-next{display:flex;justify-content:space-between;align-items:center;gap:10px;box-sizing:border-box;grid-column:1/-1;width:100%;padding:10px 14px}.topic-prev-next-link{display:flex;flex-direction:column;gap:2px;min-width:0;max-width:48%;text-decoration:none}.topic-prev-next-label{font-size:var(--font-size-xs);color:var(--text-subtle)}.topic-prev-next-title{font-size:var(--font-size-sm);color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topic-prev-next-link:hover .topic-prev-next-title{color:var(--brand)}.topic-prev-next-right{align-items:flex-end;text-align:right}.topic-prev-next-none .topic-prev-next-title{color:var(--text-disabled)}
