/* Editor de itens (editor-rico.js). Usa as variáveis do Bootstrap quando existirem. */
.rte { border: 1px solid var(--bs-border-color, #ced4da); border-radius: .5rem; background: var(--bs-body-bg, #fff); overflow: hidden; }
.rte:focus-within { border-color: var(--bs-primary, #264b7a); box-shadow: 0 0 0 .2rem rgba(38, 75, 122, .2); }
.rte-barra { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; padding: .4rem .5rem; background: var(--bs-tertiary-bg, #f1f3f5); border-bottom: 1px solid var(--bs-border-color, #ced4da); }
.rte-grupo-b { display: inline-flex; gap: .15rem; }
.rte-estilo { font: inherit; font-size: .9rem; padding: .3rem .5rem; border: 1px solid var(--bs-border-color, #ced4da); border-radius: .375rem; background: #fff; min-width: 9.5rem; }
.rte-btn { font: inherit; font-size: .9rem; line-height: 1; min-width: 2.2rem; padding: .45rem .55rem; border: 1px solid var(--bs-border-color, #ced4da); border-radius: .375rem; background: #fff; color: inherit; cursor: pointer; }
.rte-btn:hover { background: var(--bs-secondary-bg, #e9ecef); }
.rte-btn:focus-visible, .rte-estilo:focus-visible, .rte-pbtn:focus-visible { outline: 2px solid var(--bs-primary, #264b7a); outline-offset: 1px; }
.rte-btn[aria-pressed="true"] { background: var(--bs-primary, #264b7a); border-color: var(--bs-primary, #264b7a); color: #fff; }
.rte-m-b { font-weight: 700; } .rte-m-i { font-style: italic; } .rte-m-u { text-decoration: underline; }
.rte-btn-eq { margin-left: .25rem; font-weight: 600; }
.rte-primario { background: var(--bs-primary, #264b7a); border-color: var(--bs-primary, #264b7a); color: #fff; }
.rte-primario:hover { background: #1d3a5f; }
.rte-primario:disabled { opacity: .5; cursor: not-allowed; }

.rte-superficie { position: relative; min-height: 9rem; padding: .75rem .9rem; outline: none; white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.55; counter-reset: alt; }
.rte-superficie p { margin: 0 0 .55rem; counter-reset: alt; }
.rte-superficie.rte-vazio[data-placeholder]::before { content: attr(data-placeholder); position: absolute; color: var(--bs-secondary-color, #6c757d); pointer-events: none; }
.rte-superficie p[data-s="apoio"] { font-size: .95em; padding: .35rem .75rem; background: var(--bs-tertiary-bg, #f1f3f5); border-left: 3px solid var(--bs-secondary-color, #6c757d); }
.rte-superficie p[data-s="alternativa"] { counter-reset: none; counter-increment: alt; padding-left: 2rem; position: relative; }
.rte-linhas { display: inline-flex; align-items: center; gap: .3rem; font-size: .85rem; }
.rte-linhas input { width: 4rem; font: inherit; padding: .2rem .3rem; border: 1px solid var(--bs-border-color, #ced4da); border-radius: .375rem; }
.rte-superficie p[data-s="alternativa"][data-linhas]::after { content: "  ↵ " attr(data-linhas) " linha(s)"; font-size: .75rem; color: #6c757d; }
.rte-superficie p[data-s="alternativa"]::before { content: counter(alt, upper-alpha) ")"; position: absolute; left: .2rem; font-weight: 700; }
.rte-superficie p[data-s="fonte"] { font-size: .82em; text-align: right; color: var(--bs-secondary-color, #6c757d); }
.rte-superficie p.eq-only { text-align: center; }
.rte-superficie sup, .rte-superficie sub { line-height: 0; }

.rte-eq { display: inline-block; padding: 0 .2em; margin: 0 .05em; border-radius: .25rem; cursor: pointer; vertical-align: baseline; white-space: normal; }
.rte-eq math { font-size: 1.12em; }
.rte-eq:hover { background: rgba(38, 75, 122, .1); }
.rte-eq:focus { outline: 2px solid var(--bs-primary, #264b7a); outline-offset: 1px; }
.rte-eq-erro { color: #b02a37; font-family: monospace; background: #f8d7da; }

.rte-dlg { width: min(46rem, calc(100vw - 2rem)); max-height: calc(100vh - 2rem); padding: 0; border: 0; border-radius: .75rem; box-shadow: 0 1rem 3rem rgba(0, 0, 0, .3); }
.rte-dlg::backdrop { background: rgba(0, 0, 0, .45); }
.rte-dlg-corpo { padding: 1.1rem 1.25rem 1.25rem; display: flex; flex-direction: column; gap: .6rem; }
.rte-dlg-titulo { font-size: 1.2rem; margin: 0; }
.rte-paleta { display: flex; flex-direction: column; gap: .5rem; max-height: 14rem; overflow: auto; padding: .1rem; }
.rte-grupo-nome { font-size: .8rem; font-weight: 700; color: var(--bs-secondary-color, #6c757d); margin-bottom: .2rem; }
.rte-grupo-botoes { display: flex; flex-wrap: wrap; gap: .25rem; }
.rte-pbtn { font: inherit; min-width: 2.3rem; padding: .35rem .5rem; border: 1px solid var(--bs-border-color, #ced4da); border-radius: .375rem; background: #fff; cursor: pointer; font-size: 1rem; }
.rte-pbtn:hover { background: var(--bs-secondary-bg, #e9ecef); }
.rte-rotulo { font-weight: 600; margin-top: .25rem; }
.rte-latex { font: .95rem/1.4 ui-monospace, "Cascadia Mono", Consolas, monospace; width: 100%; padding: .5rem .6rem; border: 1px solid var(--bs-border-color, #ced4da); border-radius: .375rem; resize: vertical; }
.rte-prev { min-height: 3.6rem; padding: .6rem; border: 1px dashed var(--bs-border-color, #ced4da); border-radius: .5rem; display: flex; align-items: center; justify-content: center; font-size: 1.5rem; overflow: auto; background: var(--bs-tertiary-bg, #f8f9fa); }
.rte-msg { min-height: 1.3rem; font-size: .9rem; color: var(--bs-secondary-color, #6c757d); }
.rte-msg-erro { color: #b02a37; font-weight: 600; }
.rte-dica { font-size: .85rem; color: var(--bs-secondary-color, #6c757d); margin: 0; }
.rte-dica code { background: var(--bs-tertiary-bg, #f1f3f5); padding: .05rem .3rem; border-radius: .25rem; }
.rte-acoes { display: flex; justify-content: flex-end; gap: .5rem; }
@media (prefers-reduced-motion: no-preference) { .rte { transition: box-shadow .15s; } }

.rte-img { display: inline-block; max-width: 100%; vertical-align: middle; padding: .1rem; margin: 0 .1rem; border-radius: .25rem; cursor: pointer; }
.rte-img img { display: block; max-width: 100%; height: auto; }
.rte-img:hover { background: rgba(38, 75, 122, .1); }
.rte-img:focus { outline: 2px solid var(--bs-primary, #264b7a); outline-offset: 1px; }
.rte-superficie p.eq-only { text-align: center; }
.rte-aviso { font-size: .85rem; color: var(--bs-secondary-color, #6c757d); margin-left: .25rem; }
.rte-aviso-erro { color: #b02a37; font-weight: 600; }
.rte-img-prev { text-align: center; max-height: 14rem; overflow: auto; padding: .5rem; border: 1px dashed var(--bs-border-color, #ced4da); border-radius: .5rem; background: var(--bs-tertiary-bg, #f8f9fa); }
.rte-img-prev img { max-width: 100%; max-height: 12rem; }
.rte-campo { font: inherit; width: 100%; padding: .45rem .6rem; border: 1px solid var(--bs-border-color, #ced4da); border-radius: .375rem; }
.rte-espaco { flex: 1; }
.rte-perigo { color: #b02a37; border-color: #b02a37; }
.rte-dlg-img { width: min(34rem, calc(100vw - 2rem)); }
