.nui-rich-editor { --nui-rich-radius: calc(var(--nui-radius-lg) + 10px); --nui-rich-chrome: color-mix(in srgb, var(--nui-panel) 35%, var(--nui-bg)); display: flex; flex-direction: column; min-width: 0; border: 1px solid var(--nui-border); border-radius: var(--nui-rich-radius); background: var(--nui-rich-chrome); color: var(--nui-text); font-size: var(--nui-font-size-sm); }
.nui-rich-editor[hidden], .nui-rich-editor [hidden] { display: none !important; }
.nui-rich-header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; min-width: 0; padding: 10px 16px; }
.nui-rich-toolbar { --nui-rich-more-size: var(--nui-control-height-sm); display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 6px; min-width: 0; padding: 7px 12px; border-bottom: 1px solid var(--nui-border); background: var(--nui-panel); }
.nui-rich-tools { display: flex; flex: 1 1 0; align-items: center; gap: 2px; min-width: 0; overflow: hidden; padding: 2px; }
.nui-rich-group { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 1px; padding-inline-end: 4px; border-inline-end: 1px solid var(--nui-border); }
.nui-rich-group:last-child { padding-inline-end: 0; border-inline-end: 0; }
.nui-rich-toolbar button.nui-button.nui-button-ghost.nui-button-icon { width: var(--nui-control-height-sm); min-width: var(--nui-control-height-sm); min-height: var(--nui-control-height-sm); padding: 3px; }
.nui-rich-toolbar .nui-select { flex: 0 1 auto; min-width: 104px; min-height: var(--nui-control-height-sm); padding-block: 3px; border-color: transparent; background-color: transparent; box-shadow: none; color: var(--nui-text); font-size: var(--nui-font-size-sm); }
.nui-rich-modes { display: flex; flex: 0 0 auto; align-items: center; gap: 2px; padding: 2px; border: 1px solid var(--nui-border); border-radius: var(--nui-radius-sm); background: color-mix(in srgb, var(--nui-text) 4%, transparent); }
.nui-rich-modes > .nui-button { min-height: calc(var(--nui-control-height-sm) - 4px); padding: 2px 8px; border-color: transparent; background: transparent; color: var(--nui-text-muted); font-size: var(--nui-font-size-xs); }
.nui-rich-modes > .nui-button[aria-pressed="true"] { border-color: var(--nui-border); background: var(--nui-raised); color: var(--nui-text); box-shadow: 0 1px 2px var(--nui-shadow); }
.nui-rich-variables { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; min-width: 0; color: var(--nui-text-muted); font-size: var(--nui-font-size-xs); }
.nui-rich-surface { position: relative; min-width: 0; min-height: 0; overflow: hidden; background: var(--nui-panel); }
.nui-rich-frame, .nui-rich-source, .nui-rich-monaco { display: block; width: 100%; height: var(--nui-rich-height, 360px); min-height: 180px; box-sizing: border-box; border: 0; border-radius: 0; background: var(--nui-panel); color: var(--nui-text); }
.nui-rich-frame { vertical-align: top; }
.nui-rich-source { padding: 12px; resize: vertical; font-family: var(--nui-font-mono); font-size: var(--nui-font-size-sm); line-height: 1.5; tab-size: 2; }
.nui-rich-monaco { overflow: hidden; }
.nui-rich-status { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 16px; min-width: 0; min-height: 42px; padding: 7px 16px; color: var(--nui-text-muted); font-size: var(--nui-font-size-xs); }
.nui-rich-status-actions { display: flex; align-items: center; gap: 10px; min-width: 0; }
.nui-rich-message { min-width: 0; padding: 5px 8px; color: var(--nui-text-muted); font-size: var(--nui-font-size-xs); overflow-wrap: anywhere; }
.nui-rich-editor.is-disabled { opacity: .72; }
.nui-rich-editor.is-disabled { cursor: not-allowed; }
.nui-rich-editor.is-busy .nui-rich-surface { cursor: progress; }
@media (max-width: 480px) {
	.nui-rich-toolbar { grid-template-columns: minmax(0, 1fr) auto; align-items: stretch; }
	.nui-rich-tools { min-width: 0; }
	.nui-rich-modes { grid-column: 1 / -1; width: fit-content; max-width: 100%; }
	.nui-rich-status { align-items: flex-start; }
}

nui-rich-editor { display: block; min-width: 0; }
.nui-rich-toolbar [aria-pressed="true"] { background: var(--nui-raised-hover); color: var(--nui-text); }

.nui-rich-monaco > .nui-code-editor { height: 100%; min-height: 0; border: 0; border-radius: 0; box-shadow: none; }
.nui-rich-monaco .nui-code-editor-toolbar, .nui-rich-monaco .nui-code-editor-status { display: none; }
.nui-shell .nui-rich-source:focus, .nui-shell .nui-rich-source:focus-visible { outline: none; box-shadow: none; }
@media (pointer: coarse) {
	.nui-rich-toolbar { --nui-rich-more-size: 38px; }
	.nui-rich-toolbar button.nui-button.nui-button-ghost.nui-button-icon { width: 38px; min-width: 38px; min-height: 38px; }
	.nui-rich-toolbar .nui-select, .nui-rich-modes > .nui-button, .nui-rich-variables > .nui-button { min-height: 38px; }
}

.nui-rich-editor-sm { --nui-rich-height: 140px; }
.nui-rich-editor-sm :is(.nui-rich-frame, .nui-rich-source, .nui-rich-monaco) { min-height: 96px; }

.nui-rich-canvas { display: flex; flex-direction: column; min-width: 0; margin-inline: -1px; overflow: hidden; border: 1px solid var(--nui-border); border-radius: var(--nui-rich-radius); background: var(--nui-panel); box-shadow: 0 1px 2px var(--nui-shadow); }
.nui-rich-header[hidden] + .nui-rich-canvas { margin-top: -1px; }
.nui-rich-editor:not(:has(.nui-rich-status)) .nui-rich-canvas { margin-bottom: -1px; }
.nui-rich-identity { display: flex; flex-direction: column; min-width: 0; gap: 2px; }
.nui-rich-title { font-weight: 600; font-size: var(--nui-font-size-base); }
.nui-rich-subtitle { color: var(--nui-text-muted); font-size: var(--nui-font-size-sm); }
.nui-rich-variables > .nui-button { min-height: var(--nui-control-height-sm); padding: 3px 9px; border: 1px solid var(--nui-border); border-radius: var(--nui-radius-sm); background: var(--nui-panel); font-size: var(--nui-font-size-xs); }
.nui-rich-counts strong { color: var(--nui-text); font-weight: 500; }
.nui-rich-counts > span { padding-inline: 3px; color: var(--nui-text-faint); }
.nui-rich-status-actions > .nui-button { min-height: var(--nui-control-height-sm); padding: 2px 0; gap: 5px; color: var(--nui-text-muted); font-size: var(--nui-font-size-sm); }
.nui-rich-toolbar .nui-button-ghost { color: var(--nui-text); }
@media (max-width: 480px) {
	.nui-rich-header { padding: 10px 12px; }
	.nui-rich-toolbar { padding: 6px 8px; }
	.nui-rich-status { padding: 7px 12px; gap: 4px 12px; }
}

.nui-rich-more { flex: 0 0 auto; }
.nui-rich-table-tools { position: fixed; z-index: 2000; display: flex; align-items: center; gap: 3px; max-width: calc(100vw - 16px); padding: 4px; border: 1px solid var(--nui-border); border-radius: var(--nui-radius-sm); background: var(--nui-panel); color: var(--nui-text); box-shadow: 0 4px 14px var(--nui-shadow); font: var(--nui-font-size-sm)/1.3 var(--nui-font-sans); }
.nui-rich-table-tools[hidden] { display: none; }
.nui-rich-table-tools .nui-button { min-height: var(--nui-control-height-sm); padding: 3px 8px; font-size: var(--nui-font-size-sm); }
.nui-rich-table-tools .nui-button-icon { width: var(--nui-control-height-sm); padding: 3px; }
@media (pointer: coarse) { .nui-rich-table-tools .nui-button { min-height: 38px; } }

.nui-rich-counts { margin-inline-start: auto; text-align: end; }
.nui-rich-status > .nui-rich-modes { flex: 0 0 auto; }

.nui-rich-shortcuts { max-height: min(58dvh, 420px); }
.nui-rich-shortcuts th:last-child { text-align: end; }
.nui-rich-shortcut-keys { display: flex; align-items: center; justify-content: flex-end; gap: 4px; white-space: nowrap; }
