/* VoxBB Editor v2 — one professional composer presentation across all first-party themes.
 * Behavior remains in NexusEditor/Tiptap; this layer replaces the floating-bottom toolbar treatment
 * with a conventional top toolbar and clearer action/status hierarchy inspired by mature forum editors.
 */
.voxbb-editor-v2{--vx-editor-bg:var(--nxe-field,#fff);--vx-editor-bar:var(--nxe-bar,#f5f6f7);--vx-editor-line:var(--nxe-line,#d5d9dd);--vx-editor-line-strong:var(--nxe-line-strong,#b8c0c7);--vx-editor-text:var(--nxe-text,#20252a);--vx-editor-muted:var(--nxe-muted,#66727d);--vx-editor-faint:var(--nxe-faint,#8a949d);--vx-editor-accent:var(--nxe-primary,#2f78aa);--vx-editor-soft:var(--nxe-soft,rgba(47,120,170,.12));margin:0;min-width:0}
.voxbb-editor-v2 .vxc-editor-core{min-width:0;background:transparent}
.voxbb-editor-v2 [data-nexus-editor]{min-width:0}
.voxbb-editor-v2 .nxe-frame{display:flex;flex-direction:column;overflow:visible;border:1px solid var(--vx-editor-line-strong);border-radius:8px;background:var(--vx-editor-bg);box-shadow:none;transition:border-color .14s,box-shadow .14s}
.voxbb-editor-v2 .nxe-frame:focus-within{border-color:color-mix(in srgb,var(--vx-editor-accent) 72%,var(--vx-editor-line-strong));box-shadow:0 0 0 2px color-mix(in srgb,var(--vx-editor-accent) 16%,transparent)}
/* Toolbar belongs at the top. It is always available instead of appearing only after focus. */
.voxbb-editor-v2 .nxe-toolbar,.voxbb-editor-v2 .nxe-frame.is-active .nxe-toolbar{order:0;position:relative;inset:auto;z-index:6;display:block;grid-template-rows:1fr!important;margin:0!important;border:0;border-bottom:1px solid var(--vx-editor-line);border-radius:8px 8px 0 0;background:var(--vx-editor-bar);transition:none}
.voxbb-editor-v2 .nxe-tb-inner,.voxbb-editor-v2 .nxe-frame.is-active .nxe-tb-inner{overflow:visible;min-height:46px}
.voxbb-editor-v2 .nxe-tb-pill{display:flex;align-items:center;gap:3px;width:100%;min-height:46px;padding:5px 7px;border:0;border-radius:8px 8px 0 0;background:transparent;box-shadow:none}
.voxbb-editor-v2 .nxe-tb-main{display:flex;align-items:center;gap:1px;flex:1 1 auto;min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:var(--vx-editor-line-strong) transparent}
.voxbb-editor-v2 .nxe-tb-side{display:flex;align-items:center;gap:1px;flex:0 0 auto;margin-left:auto;padding-left:7px;border:0;border-left:1px solid var(--vx-editor-line)}
.voxbb-editor-v2 .nxe-tb-group{display:inline-flex;align-items:center;gap:1px;flex:0 0 auto}
.voxbb-editor-v2 .nxe-tb-sep{width:1px;height:24px;margin:0 4px;background:var(--vx-editor-line);flex:none}
.voxbb-editor-v2 .nxe-tb{height:34px;min-width:34px;padding:0 7px;border:1px solid transparent;border-radius:5px;background:transparent;color:var(--vx-editor-muted);box-shadow:none;transition:background .12s,color .12s,border-color .12s,transform .08s}
.voxbb-editor-v2 .nxe-tb:hover:not(:disabled),.voxbb-editor-v2 .nxe-tb:focus-visible{border-color:var(--vx-editor-line);background:color-mix(in srgb,var(--vx-editor-bg) 72%,var(--vx-editor-bar));color:var(--vx-editor-text);outline:0}
.voxbb-editor-v2 .nxe-tb:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb,var(--vx-editor-accent) 24%,transparent)}
.voxbb-editor-v2 .nxe-tb:active:not(:disabled){transform:translateY(1px);background:color-mix(in srgb,var(--vx-editor-accent) 9%,var(--vx-editor-bg))}
.voxbb-editor-v2 .nxe-tb.is-on,.voxbb-editor-v2 .nxe-tb.is-open{border-color:color-mix(in srgb,var(--vx-editor-accent) 35%,var(--vx-editor-line));background:var(--vx-editor-soft);color:var(--vx-editor-accent)}
.voxbb-editor-v2 .nxe-tb:disabled{opacity:.34}
.voxbb-editor-v2 .nxe-surface{order:1;display:flex;flex-direction:column;min-height:190px;padding:18px 20px 20px;background:var(--vx-editor-bg);cursor:text}
.voxbb-editor-v2 .nxe-frame.is-active .nxe-surface{min-height:210px}
.voxbb-editor-v2 .nxe-editor{min-height:inherit}
.voxbb-editor-v2 .nxe-editor .ProseMirror{min-height:165px;color:var(--vx-editor-text);font-size:15px;line-height:1.68;caret-color:var(--vx-editor-accent)}
.voxbb-editor-v2 .nxe-editor .ProseMirror p{margin:.2em 0 .9em}
.voxbb-editor-v2 .nxe-editor .ProseMirror p:last-child{margin-bottom:0}
.voxbb-editor-v2 .nxe-editor .ProseMirror blockquote{margin:.9em 0;padding:.72em .9em;border:1px solid var(--vx-editor-line);border-left:3px solid var(--vx-editor-accent);border-radius:6px;background:color-mix(in srgb,var(--vx-editor-bar) 74%,transparent)}
.voxbb-editor-v2 .nxe-bb{min-height:180px;padding:0;border:0;background:transparent;color:var(--vx-editor-text);font:14px/1.65 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.voxbb-editor-v2 .nxe-preview{min-height:165px}
.voxbb-editor-v2 .nxe-mode-label{top:52px;left:auto;right:12px;padding:2px 7px;border-radius:4px;font-size:10px;line-height:18px;letter-spacing:.04em;text-transform:uppercase;box-shadow:0 1px 2px rgba(0,0,0,.12)}
.voxbb-editor-v2 .voxbb-composer-inline-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:43px;padding:6px 9px;border:1px solid var(--vx-editor-line-strong);border-top:0;border-radius:0 0 8px 8px;background:color-mix(in srgb,var(--vx-editor-bar) 86%,var(--vx-editor-bg));color:var(--vx-editor-muted)}
.voxbb-editor-v2 .voxbb-composer-inline-left{display:flex;align-items:center;gap:10px;min-width:0}
.voxbb-editor-v2 .voxbb-composer-attach{display:inline-flex;align-items:center;gap:6px;min-height:31px;padding:0 10px;border:1px solid var(--vx-editor-line-strong);border-radius:5px;background:var(--vx-editor-bg);color:var(--vx-editor-text);font:inherit;font-size:12px;font-weight:700;cursor:pointer}
.voxbb-editor-v2 .voxbb-composer-attach:hover{border-color:var(--vx-editor-accent);color:var(--vx-editor-accent)}
.voxbb-editor-v2 .voxbb-editor-shortcut{font-size:11px;color:var(--vx-editor-faint);white-space:nowrap}
.voxbb-editor-v2 .voxbb-editor-shortcut kbd{display:inline-block;padding:1px 5px;border:1px solid var(--vx-editor-line);border-bottom-color:var(--vx-editor-line-strong);border-radius:4px;background:var(--vx-editor-bg);color:var(--vx-editor-muted);font:600 10px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;box-shadow:0 1px 0 var(--vx-editor-line)}
.voxbb-editor-v2 .voxbb-composer-meta{display:flex;align-items:center;justify-content:flex-end;min-width:0;color:var(--vx-editor-faint);font-size:11px}
.voxbb-editor-v2 .nxe-meta{min-height:0;gap:10px;color:inherit;font-size:11px}
.voxbb-editor-v2 .nxe-count:empty,.voxbb-editor-v2 .nxe-status:empty{display:none}
/* Popovers are flatter and denser than the former floating card treatment. */
.nexus-editor-layer .nxe-pop,.nexus-editor-layer .nxe-suggest,.nexus-editor-layer .nxe-bubble,.nexus-editor-layer .nxe-blockbar{border-radius:7px;box-shadow:0 10px 28px rgba(0,0,0,.22)}
.nexus-editor-layer .nxe-pop{padding:5px}
/* Table commands stay compact; the current cell selection controls availability. */
.nexus-editor-layer .voxbb-table-tools{display:flex;gap:3px;max-width:calc(100vw - 16px);flex-wrap:wrap}
.nexus-editor-layer .voxbb-table-tools[hidden]{display:none}
.nexus-editor-layer .voxbb-table-tools>.nxe-tb,.nexus-editor-layer .voxbb-table-group>.nxe-tb{font-family:inherit;font-weight:600;font-size:12px;line-height:1.3;padding:0 8px;min-height:32px;white-space:nowrap}
.nexus-editor-layer .voxbb-table-group{position:relative}
.nexus-editor-layer .voxbb-table-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:25;min-width:190px;max-height:240px;overflow-y:auto;padding:5px;border:1px solid var(--nxe-line,#56626f);border-radius:5px;background:var(--nxe-raise,#fff);color:var(--nxe-text,#20252a);box-shadow:0 8px 20px rgba(0,0,0,.25)}
.nexus-editor-layer .voxbb-table-menu[hidden]{display:none}
.nexus-editor-layer .voxbb-table-menu .nxe-tb{display:block;text-align:left;width:100%;font-family:inherit;font-size:12px;min-height:36px;padding:6px 8px;white-space:nowrap}
.nexus-editor-layer .voxbb-table-menu .nxe-tb:disabled{opacity:.4;cursor:default}
.nexus-editor-layer .nxe-mi:disabled{opacity:.4;cursor:default;pointer-events:none}
@media(max-width:560px){.nexus-editor-layer .voxbb-table-menu{position:fixed;top:auto;left:8px;right:auto;bottom:12px;width:min(240px,calc(100vw - 80px))}.nexus-editor-layer .voxbb-table-menu .nxe-tb{min-height:44px}}
/* Never let theme-era boot editor styles leak into the canonical editor. */
.voxbb-editor-v2 :is(.nbpub-editor-shell,.nb-editor-boot,.nb-tiptap-toolbar,.nb-editor-source,.nbpub-editor-foot){all:revert-layer}
@media(max-width:760px){
 .voxbb-editor-v2 .nxe-tb-pill{padding:4px 5px;gap:1px}
 .voxbb-editor-v2 .nxe-tb{height:36px;min-width:36px;padding:0 6px}
 .voxbb-editor-v2 .nxe-tb-sep{margin:0 2px}
 .voxbb-editor-v2 .nxe-tb-side{padding-left:4px}
 .voxbb-editor-v2 .nxe-surface,.voxbb-editor-v2 .nxe-frame.is-active .nxe-surface{min-height:170px;padding:15px}
 .voxbb-editor-v2 .nxe-editor .ProseMirror{min-height:145px;font-size:16px}
 .voxbb-editor-v2 .voxbb-editor-shortcut{display:none}
 .voxbb-editor-v2 .voxbb-composer-inline-actions{min-height:40px;padding:5px 7px}
}
@media(max-width:520px){
 .voxbb-editor-v2 .nxe-tb-main{padding-bottom:1px}
 .voxbb-editor-v2 .nxe-tb-side{position:sticky;right:0;background:var(--vx-editor-bar);box-shadow:-8px 0 10px color-mix(in srgb,var(--vx-editor-bar) 92%,transparent)}
 .voxbb-editor-v2 .voxbb-composer-inline-actions{align-items:flex-start;flex-direction:column;gap:4px}
 .voxbb-editor-v2 .voxbb-composer-meta{justify-content:flex-start}
}
/* Every tool is reachable at normal widths, without a horizontal toolbar scrollbar. */
.voxbb-editor-v2 .nxe-tb-pill{flex-wrap:wrap;align-items:flex-start}
.voxbb-editor-v2 .nxe-tb-main{flex-wrap:wrap;overflow:visible;gap:2px;flex-basis:100%}
.voxbb-editor-v2 .nxe-tb-group{flex-wrap:wrap}
.voxbb-editor-v2 .nxe-tb-sep{display:none}
.voxbb-editor-v2 .nxe-tb-side{border-left:0;margin:0;padding:0;position:static;box-shadow:none;background:transparent}
.voxbb-editor-v2 .nxe-tb{color:var(--vx-editor-text)}
.voxbb-editor-v2 .nxe-tb-pill{min-height:0}
.voxbb-editor-v2 .nxe-tb-inner{min-height:0}
.vxp-inline-edit-host{padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important}
.vxp-inline-edit-host .vxp-post-edit-form{border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
.vxp-inline-edit-host .vxp-post-edit-form>header{padding:0 0 10px!important;background:transparent!important;border:0!important}
.vxp-inline-edit-host .vxp-post-edit-form>header small{display:none!important}
.vxp-inline-edit-host .vxp-post-edit-form>header h2{font-size:15px!important;margin:0!important}
.vxp-inline-edit-host .vxp-post-edit-form>section{padding:0!important;min-height:0!important;height:auto!important}
.vxp-inline-edit-host .voxbb-editor-v2 .nxe-surface,.vxp-inline-edit-host .voxbb-editor-v2 .nxe-frame.is-active .nxe-surface{min-height:150px!important;padding:12px 14px}
.vxp-inline-edit-host .voxbb-editor-v2 .nxe-editor,.vxp-inline-edit-host .voxbb-editor-v2 .nxe-editor .ProseMirror{min-height:125px!important}
.vxp-inline-edit-host .vxp-edit-reason{margin:12px 0 0!important;display:block}
.vxp-inline-edit-host .vxp-edit-reason small{display:inline!important;margin-left:6px;color:var(--nxe-muted);font-weight:400}
.vxp-inline-edit-host .vxp-edit-reason input{display:block;width:100%;margin-top:5px;min-height:34px}
.vxp-inline-edit-host .vxp-post-edit-form>footer{padding:12px 0 0!important;background:transparent!important;border:0!important}
.vxp-inline-edit-host [data-vxp-form-status]:empty{display:none}
.vx-emoji-picker{order:1;padding:12px;border-bottom:1px solid var(--nxe-line);background:var(--nxe-bar);color:var(--nxe-text)}
.vx-emoji-head{display:flex;gap:8px;margin-bottom:8px}
.vx-emoji-head input{width:100%;min-width:0;padding:7px 10px;border:1px solid var(--nxe-line-strong);border-radius:5px;background:var(--nxe-field);color:var(--nxe-text)}
.vx-emoji-picker button{cursor:pointer;font:inherit;color:inherit;border:1px solid transparent;background:transparent;border-radius:5px}
.vx-emoji-picker button:hover,.vx-emoji-picker button:focus-visible{background:var(--nxe-soft);border-color:var(--nxe-primary)}
.vx-emoji-head button{font-size:24px;padding:0 10px}
.vx-emoji-tabs{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}
.vx-emoji-tabs button{padding:5px 8px;font-size:12px}
.vx-emoji-tabs .is-active{color:var(--nxe-primary);background:var(--nxe-soft)}
.vx-emoji-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(38px,1fr));gap:4px;max-height:210px;overflow:auto}
.vx-emoji-grid button{font-size:24px;min-height:38px}

/* Compact disclosure changes controls only; formatted content and history remain intact. */
.voxbb-editor-compact .nxe-tb-pill{flex-wrap:wrap;align-items:center}
.voxbb-editor-compact .nxe-tb-main{flex:1 1 auto;flex-wrap:nowrap;flex-basis:auto;overflow:visible}
.voxbb-editor-compact .nxe-tb-side{flex:0 0 auto;flex-basis:auto;position:static;box-shadow:none;border-top:0;border-left:1px solid var(--vx-editor-line);padding-top:0}
.voxbb-editor-compact .voxbb-editor-additional{display:flex;flex:1 0 100%;flex-wrap:wrap;gap:3px;padding-top:5px;border-top:1px solid var(--vx-editor-line)}
.voxbb-editor-compact .voxbb-editor-additional[hidden],.voxbb-editor-compact .nxe-tb[hidden]{display:none!important}
.voxbb-editor-compact .voxbb-editor-more{padding-inline:5px;font:600 21px/1 system-ui;min-width:30px}
.voxbb-editor-compact .voxbb-editor-more[aria-expanded="true"]{color:var(--vx-editor-accent);background:var(--vx-editor-soft)}
@media(max-width:600px){
 .voxbb-editor-compact .nxe-tb-main{flex:1 0 100%;justify-content:flex-start;gap:1px}
 .voxbb-editor-compact .nxe-tb-side{flex:1 0 100%;justify-content:flex-end;border-left:0;border-top:1px solid var(--vx-editor-line);padding:4px 0 0}
 .voxbb-editor-compact .voxbb-editor-additional{order:2}
 .voxbb-editor-compact .nxe-tb-main .nxe-tb{min-width:32px;padding-inline:4px}
 .voxbb-editor-compact .nxe-tb-main .voxbb-editor-more{min-width:32px;padding-inline:4px}
}

/* One frame and stable writing geometry; themed outer shells add no second border. */
.voxbb-editor-v2.vxc-editor-shell{border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;overflow:visible}
.voxbb-editor-v2 .nxe-frame{border-radius:4px}
.voxbb-editor-v2 .nxe-toolbar,.voxbb-editor-v2 .nxe-frame.is-active .nxe-toolbar,.voxbb-editor-v2 .nxe-tb-pill{border-radius:4px 4px 0 0}
.voxbb-editor-v2 .nxe-frame:focus-within{box-shadow:none}
.voxbb-editor-v2 .nxe-tb-pill{padding:4px 6px;gap:5px}
.voxbb-editor-v2 .nxe-tb{height:32px;min-width:30px;padding:0 5px;border-radius:3px;color:var(--vx-editor-accent)}
.voxbb-editor-v2 .nxe-tb-group+.nxe-tb-group{margin-left:7px}
.voxbb-editor-v2 .nxe-surface,.voxbb-editor-v2 .nxe-frame.is-active .nxe-surface{min-height:210px;padding:14px 16px;box-sizing:border-box}
.voxbb-editor-v2 .nxe-editor .ProseMirror{min-height:180px;line-height:1.55}
.voxbb-editor-v2 .voxbb-composer-inline-actions{border:0;border-radius:0;background:transparent;min-height:35px;padding:7px 0 0}
/* Shared bottom toolbar. Controls and popup density follow the actual composer width. */
html .voxbb-editor-v2 .nxe-frame{display:flex;flex-direction:column;border-radius:22px;overflow:visible;box-shadow:none!important}
html .voxbb-editor-v2 .nxe-frame:focus-within{box-shadow:none!important}
html .voxbb-editor-v2 .nxe-surface{order:1;max-height:420px;overflow:auto;border-radius:22px 22px 0 0}
html .voxbb-editor-v2 .nxe-toolbar,html .voxbb-editor-v2 .nxe-frame.is-active .nxe-toolbar{order:2;position:relative;inset:auto;display:block;margin:0 7px 7px!important;padding:0!important;border:1px solid var(--nxe-line)!important;border-radius:28px!important;background:var(--nxe-bar);width:auto;z-index:6;transition:none}
html .voxbb-editor-v2 .nxe-tb-inner{overflow:visible;min-height:48px}
html .voxbb-editor-v2 .nxe-tb-pill{min-height:48px;padding:5px 8px;gap:4px;border:0;border-radius:28px;background:transparent;box-shadow:none;align-items:center;flex-wrap:wrap}
html .voxbb-editor-v2 .nxe-tb-main{min-width:0;flex:1 1 0;flex-wrap:nowrap;overflow:visible;gap:1px}
html .voxbb-editor-v2 .nxe-tb-side{position:static;flex:0 0 auto;border-top:0;border-left:1px solid var(--nxe-line);padding:0 0 0 6px;box-shadow:none;background:none;justify-content:flex-end}
html .voxbb-editor-v2 .nxe-tb{flex:0 0 auto;min-width:44px;height:44px;padding:0 6px;border-radius:22px;color:var(--nxe-muted)}
html .voxbb-editor-v2 .nxe-tb-group+.nxe-tb-group{margin-left:0}
html .voxbb-editor-v2 .nxe-tb.is-on,html .voxbb-editor-v2 .nxe-tb.is-open{color:var(--nxe-primary);background:var(--nxe-soft)}
html .voxbb-editor-v2 .nxe-tb:focus-visible{outline:1px dotted var(--nxe-muted);outline-offset:1px;box-shadow:none}
html .voxbb-editor-v2 .voxbb-editor-additional:not([hidden]){position:absolute;inset:auto 0 calc(100% + 8px) auto;width:min(440px,100%);max-height:min(50vh,320px);display:flex;flex-wrap:wrap;gap:5px;overflow:auto;z-index:30;padding:10px;background:var(--nxe-bar);border:1px solid var(--nxe-line-strong);border-radius:12px;box-shadow:0 8px 25px #0006}
html .voxbb-editor-v2 .voxbb-editor-additional>.nxe-tb{width:calc(50% - 3px);min-height:44px;height:auto;justify-content:flex-start;gap:8px;border-radius:6px;white-space:normal}
html .voxbb-editor-v2 .voxbb-editor-additional>.nxe-tb::after{content:attr(aria-label);font:13px/1.4 system-ui;text-align:left}
html .voxbb-editor-v2 [data-pill-mobile] .nxe-tb-main{flex:1 1 100%;flex-wrap:nowrap;justify-content:space-between;gap:0}
html .voxbb-editor-v2 [data-pill-mobile] .nxe-tb-group{gap:0;margin:0;padding:0;border:0}
html .voxbb-editor-v2 [data-pill-mobile] .nxe-tb-pill>.nxe-tb-side{display:none}
html .voxbb-editor-v2 [data-pill-mobile] .voxbb-editor-additional:not([hidden]){position:fixed;inset:auto 12px 12px;width:auto;max-height:48vh;gap:5px;padding:12px;border-radius:16px;z-index:900}
html .voxbb-editor-v2 [data-pill-mobile] .voxbb-editor-additional>.nxe-tb-side{width:100%;flex-basis:100%;display:flex;flex-wrap:wrap;justify-content:flex-start;padding:6px 0 0;border:0;border-top:1px solid var(--nxe-line)}
html .voxbb-editor-v2 [data-pill-mobile] .voxbb-editor-additional>.nxe-tb-side .nxe-tb{flex:1 0 calc(50% - 4px);height:auto;min-height:44px;gap:8px;justify-content:flex-start;border-radius:7px}
html .voxbb-editor-v2 [data-pill-mobile] .voxbb-editor-additional>.nxe-tb-side .nxe-tb::after{content:attr(aria-label);font:13px/1.4 system-ui;text-align:left}
html .voxbb-editor-v2 .pill-close{position:sticky;top:0;z-index:2;flex:none;width:100%;border:1px solid var(--nxe-line);background:var(--nxe-field);color:var(--nxe-text);border-radius:7px;min-height:44px;cursor:pointer;font:14px system-ui}
.nexus-editor-layer :is(.nxe-pop,.nxe-suggest,.nxe-bubble,.nxe-blockbar),.vx-emoji-picker{z-index:1000}
@media(max-width:700px){html .voxbb-editor-v2 .nxe-surface{max-height:320px}html .voxbb-editor-v2 .nxe-tb-pill{padding:5px;gap:3px}}
