/* Editor · marco del editor «tipo Word»: lienzo, marcas en el folio y pila del marco.
   La primera regla (control de color de la cinta) va aquí por su posición heredada.
   Troceado de `compact_workspace.css` (lote C3). Carga en `head_extra` de
   editor/editor.html, ANTES del núcleo: ante una regla del núcleo con la misma
   especificidad, pierde. El orden entre módulos lo fija tests/css_manifest.py. */
/* Controles de color: el icono es la etiqueta y el input de color va detras. */
.ribbon-color { position:relative; overflow:hidden; }
.ribbon-color input[type="color"] { position:absolute; inset:0; opacity:0; width:100%; height:100%; padding:0; border:0; cursor:pointer; }

/* =====================================================================
   "Word-like" editor: menu bar + connected toolbar, A4 page on a grey
   canvas, docked agent bar and a bottom status bar. Appended last so it
   wins ties against the earlier compact rules (same file: source order
   settles same-specificity ties). It does NOT automatically win against
   analytics.css: that is a SEPARATE stylesheet loaded AFTER this one (see
   base.html — head_extra, where the 02-editor-* modules are injected, comes
   before the <link> to analytics.css), so for same-specificity flat-class
   selectors analytics.css's declarations win the tie, not this file's.
   analytics.css still carries its OWN unscoped `.agent-editor-frame` /
   `.editor-toolbar` / `.editor-document-card` rules (a leftover "compact"
   block plus an unrelated admin "editor preview card" rule reusing the
   `.editor-document-card` name) that bleed into this page: they silently
   overrode `align-items:stretch` → `center` (shrinking the appbar/toolbar to
   content width instead of the full width), `min-height:0` → a fixed
   `calc(100vh - 205px)` floor (which stopped the canvas from ever shrinking
   to fit, so it grew with its content instead of scrolling internally — the
   lost page/document scroll), and gave the toolbar a floating rounded card
   look (border + border-radius + shadow + backdrop-filter) instead of the
   flush bar under the appbar. The three root selectors below are scoped
   under `[data-public-editor]` (+1 specificity) so they always win instead
   of depending on load order — do not remove that prefix. */
/* --editor-measure: la medida de la columna, en `ch` y no en píxeles, para que
   el número de caracteres por línea no dependa del tamaño de lectura. */
/* --editor-canvas: el tinte del lienzo sobre el que se posa la banda de
   escritura. Es lo que da canto izquierdo y derecho a la zona de edición: sin
   él la columna se funde con los carriles, que también son blancos, y no se
   distingue lo que se escribe de la aplicación que lo rodea. */
:root { --editor-canvas:#e9eff7; --editor-measure:68ch; --ed-doc-font:'Inter', sans-serif; }

/* Las marcas de revisión ya no son controles inline. Siguen pintando el
   rango que selecciona el panel derecho, pero sobre ellas se edita texto con
   el mismo cursor y el mismo hover que en cualquier otro fragmento. */
[data-public-editor] [data-editor-surface] .text-hit { cursor:text; }
[data-public-editor] [data-editor-surface] .text-hit:hover { filter:none; }
/* Y tampoco reciben anillo de foco. En el probador de la API la marca ES un
   control y el anillo está bien; aquí el folio es `contenteditable`, y dentro
   de un contenteditable CUALQUIER elemento es enfocable: al poner el punto de
   inserción dentro de una recomendación, la marca casaba con `:focus-visible`
   y se rodeaba de un anillo azul de 2px —el azul del otro producto, además—
   aunque esa recomendación ni siquiera fuera la seleccionada en el panel. */
[data-public-editor] [data-editor-surface] .text-hit:focus-visible,
[data-public-editor] [data-editor-surface] .text-hit:focus { box-shadow:none; }

/* editor column becomes a fixed-height flex stack: chrome pinned top,
   canvas scrolls in the middle, agent bar + status bar pinned bottom. */
[data-public-editor] .agent-editor-frame {
  display:flex; flex-direction:column; align-items:stretch; gap:0;
  height:calc(100vh - 96px); min-height:calc(100vh - 96px); padding:0;
}
