/* Editor · columna del texto: medida, texto de ayuda de los apartados y estado del análisis.
   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. */
/* ---- editor column ----
   .agent-editor-frame / .editor-toolbar / .editor-document-card /
   .rich-editor-surface used to be redeclared here too (pre-"Word-editor"
   compact layout); removed — the "Word-like" editor block below is now the
   only owner of those four, deliberately scoped under [data-public-editor]
   to beat analytics.css's own same-named rules regardless of load order (see
   the note there). .editor-workbar/.editor-analyze-btn are dead (no longer
   in the template) and left alone. */

.rich-editor-content { max-width:740px; font-size:calc(16px * var(--editor-zoom,1)); line-height:1.7; }
/* Texto de ayuda de las zonas de apartado. En TipTap lo pinta la extension
   Placeholder (clase is-empty + data-placeholder); en el respaldo, :empty. En
   ambos es contenido generado por CSS, nunca texto real: el analisis no lo ve. */
.rich-editor-surface .is-empty::before,
.rich-editor-surface [data-placeholder]:empty::before {
  content: attr(data-placeholder);
  display: block;
  height: 0;
  color: #97a5b6;
  font-family: var(--ed-doc-font);
  font-style: italic;
  pointer-events: none;
}
/* El estado del análisis es un renglón informativo, no una tarjeta: plano,
   pegado al borde, sin marco propio — deja de leerse como un pegote y de
   sumar caja al apilamiento del panel. Selectores con el panel delante a
   propósito: analytics.css (que carga DESPUÉS de este fichero) trae la
   versión tarjeta del analizador y hay que ganarle por especificidad. */
.editor-suggestions-panel > .editor-report-status { flex:0 0 auto; display:flex; align-items:flex-start; gap:9px; margin:0; padding:9px 14px; background:transparent; border:0; border-bottom:1px solid var(--insp-line-2); border-radius:0; }
.editor-suggestions-panel > .editor-report-status > svg { flex:0 0 auto; width:15px; height:15px; margin-top:1px; color:var(--ed-accent); }
/* Título y texto en un renglón corrido («Revisión en curso — las
   recomendaciones…»), no en columnas: informa de pasada, como una línea de
   estado, sin partir el título en tres líneas. */
.editor-suggestions-panel > .editor-report-status > div { display:block; min-width:0; flex:1; font-size:11.5px; line-height:1.5; }
.editor-suggestions-panel > .editor-report-status h3 { display:inline; margin:0 5px 0 0; font-size:12px; font-weight:700; color:var(--insp-ink); }
.editor-suggestions-panel > .editor-report-status p { display:inline; margin:0; font-size:11.5px; color:var(--insp-muted); }
/* Barra de progreso del análisis. Avanza contra el reloj —no contra las fases,
   que no son un porcentaje— y se topa en el 95 % mientras no haya informe: una
   barra llena sin resultado es una mentira. En cola queda indeterminada, con
   un vaivén, porque todavía no ha empezado a contar nada. */
.analysis-progress { display:block; margin-top:7px; }
.analysis-progress-track { display:block; overflow:hidden; height:4px; background:var(--insp-line-2); border-radius:999px; }
.analysis-progress-fill { display:block; width:0; height:100%; background:var(--ed-accent); border-radius:999px; transition:width .25s linear; }
.analysis-progress small { display:block; margin-top:4px; color:var(--insp-muted); font-size:11px; }
.analysis-progress[data-indeterminate] .analysis-progress-fill { width:35%; animation:analysis-progress-wait 1.3s ease-in-out infinite; }
@keyframes analysis-progress-wait { 0% { transform:translateX(-100%); } 100% { transform:translateX(300%); } }
@media (prefers-reduced-motion: reduce) {
  .analysis-progress-fill { transition:none; }
  .analysis-progress[data-indeterminate] .analysis-progress-fill { width:100%; animation:none; opacity:.45; }
}
