.nc-theme-config-drawer .ant-drawer-content-wrapper{--un-border-opacity:1;border-width:1px 0 1px 1px;border-color:rgba(var(--rgb-color-gray-200), var(--un-border-opacity));height:calc(100vh - 48px);margin-top:48px;overflow:hidden;box-shadow:-8px 0 24px #00000029;border-top-left-radius:.75rem!important;border-bottom-left-radius:.75rem!important}@supports (height:100dvh){.nc-theme-config-drawer .ant-drawer-content-wrapper{height:calc(100dvh - 48px)}}@supports (height:100svh){.nc-theme-config-drawer .ant-drawer-content-wrapper{height:calc(100svh - 48px)}}.rtl .nc-theme-config-drawer .ant-drawer-content-wrapper{border-left-width:0!important;border-right-width:1px!important;border-radius:0 .75rem .75rem 0!important}.nc-theme-config-section-title[data-v-7f4b1fff]{--un-text-opacity:1;color:rgba(var(--rgb-color-gray-500), var(--un-text-opacity));letter-spacing:.05em;text-transform:uppercase;font-size:11px;font-weight:550;line-height:14px}.nc-theme-mode-tile[data-v-7f4b1fff]{cursor:pointer;--un-border-opacity:1;border-width:1px;border-color:rgba(var(--rgb-color-gray-200), var(--un-border-opacity));--un-text-opacity:1;color:rgba(var(--rgb-color-gray-600), var(--un-text-opacity));border-radius:.5rem;flex-direction:column;flex:1;align-items:center;gap:.25rem;padding-top:.625rem;padding-bottom:.625rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1);display:flex}.nc-theme-mode-tile[data-v-7f4b1fff]:hover{--un-bg-opacity:1;background-color:rgba(var(--rgb-color-gray-100), var(--un-bg-opacity))}.nc-theme-mode-tile.active[data-v-7f4b1fff]{--un-border-opacity:1;border-color:rgba(var(--rgb-color-brand-500), var(--un-border-opacity));--un-text-opacity:1;color:rgba(var(--rgb-color-gray-800), var(--un-text-opacity))}.nc-theme-preset-row[data-v-7f4b1fff]{cursor:pointer;--un-border-opacity:1;border-width:1px;border-color:rgba(var(--rgb-color-gray-100), var(--un-border-opacity));border-radius:.5rem;align-items:center;gap:.75rem;padding:.5rem .625rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1);display:flex}.nc-theme-preset-row[data-v-7f4b1fff]:hover{--un-bg-opacity:1;background-color:rgba(var(--rgb-color-gray-100), var(--un-bg-opacity))}.nc-theme-preset-row.active[data-v-7f4b1fff]{--un-border-opacity:1;border-color:rgba(var(--rgb-color-brand-500), var(--un-border-opacity))}.nc-theme-preset-swatches[data-v-7f4b1fff]{--un-border-opacity:1;border-width:1px;border-color:rgba(var(--rgb-color-gray-200), var(--un-border-opacity));border-radius:.375rem;display:flex;overflow:hidden}.nc-theme-preset-swatches span[data-v-7f4b1fff]{width:1rem;height:1.5rem;display:block}.nc-theme-token-row[data-v-7f4b1fff]{align-items:center;gap:.625rem;padding:.25rem;display:flex}.nc-theme-token-row input[type=color][data-v-7f4b1fff]{cursor:pointer;--un-border-opacity:1;border-width:1px;border-color:rgba(var(--rgb-color-gray-200), var(--un-border-opacity));background-color:#0000;border-radius:.375rem;width:1.75rem;height:1.375rem;padding:0}.nc-theme-token-row input[type=color][data-v-7f4b1fff]::-webkit-color-swatch-wrapper{padding:1px}.nc-theme-token-row input[type=color][data-v-7f4b1fff]::-webkit-color-swatch{border:none;border-radius:4px}

/* ---------------------------------------------------------------------------
 * Vazirmatn overlay for NocoDB (nbtx eval lab).
 *
 * Appended to every built CSS chunk so it survives per-route code-splitting and
 * needs no proxy. One variable font file covers weights 100-900.
 *
 * NocoDB's grid is CANVAS, so this reaches only the DOM; the JS font literals
 * the grid feeds to ctx.font are patched separately in the Dockerfile.
 *
 * The * rule is blunt because NocoDB (Tailwind + Vuetify) sets font-family on
 * countless elements. Icon fonts, monospace and KaTeX are restored afterwards
 * and win on specificity, not order.
 * ------------------------------------------------------------------------- */

@font-face {
  font-family: 'Vazirmatn';
  src: url('/_nuxt/vazirmatn.woff2') format('woff2-variations');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

:root { --nc-font: 'Vazirmatn', Inter, sans-serif; }

* {
  font-family: 'Vazirmatn', Inter, -apple-system, BlinkMacSystemFont,
               'Segoe UI', Roboto, sans-serif !important;
}

/* Icon fonts must never be re-fonted (higher specificity than *). */
.codicon, [class*="codicon"] { font-family: codicon !important; }
.material-symbols-outlined, .material-symbols, [class*="material-symbols"],
.material-icons {
  font-family: 'Material Symbols', 'Material Symbols Outlined', 'Material Icons' !important;
}
[class*="mdi"], .mdi { font-family: 'Material Design Icons' !important; }

/* Code stays monospace. */
code, pre, kbd, samp, tt,
[class*="mono"], [class*="monospace"],
.cm-editor, .cm-editor *, .cm-content, .cm-content *,
.monaco-editor, .monaco-editor * {
  font-family: 'JetBrainsMono', 'DM Mono', ui-monospace, SFMono-Regular,
               Menlo, Consolas, 'Liberation Mono', monospace !important;
}

/* KaTeX ships metrics-critical faces; overriding them breaks math layout. */
.katex, .katex * { font-family: KaTeX_Main, 'Times New Roman', serif !important; }
.katex .mathdefault, .katex .mathit { font-family: KaTeX_Math, serif !important; }

/* Preserve NocoDB's user-selectable serif/mono doc typography options. */
.nc-doc-font-serif .nc-doc-editor-content.ProseMirror,
.nc-doc-font-serif .nc-doc-editor-content.ProseMirror * {
  font-family: Georgia, 'Times New Roman', Times, serif !important;
}
.nc-doc-font-mono .nc-doc-editor-content.ProseMirror,
.nc-doc-font-mono .nc-doc-editor-content.ProseMirror * {
  font-family: 'JetBrainsMono', ui-monospace, monospace !important;
}

/* Persian reads better with slightly looser leading than Inter's Latin default. */
body { line-height: 1.6; }
