/* ============================================================
   Redacción · estilos
   Sistema de las apps de Pablo (skill diseno-app-movil): tokens, cero
   bordes, cuatro capas, latón solo como relleno o marca, nunca texto.
   La letra de la pieza es Newsreader, la misma de piezas.elur.es: lo que
   escribe aquí se parece a lo que se publica.
   ============================================================ */

@font-face {
  font-family: 'Newsreader';
  src: url('fuentes/newsreader-wght.woff2') format('woff2');
  font-weight: 300 800; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Newsreader';
  src: url('fuentes/newsreader-wght-italic.woff2') format('woff2');
  font-weight: 300 800; font-style: italic; font-display: swap;
}

:root {
  --l0: #EFEAE0;            /* papel */
  --l1: #F6F2EA;            /* superficie */
  --l2: #FBF9F4;            /* elevada */
  --l3: #E4DED2;            /* hundida / pulsada */
  --tinta: #1B1A17;
  --tinta-2: #66615A;       /* texto original aún sin reescribir: 5,1:1 sobre papel */
  --tinta-3: #8C867C;       /* ayudas pequeñas */
  --brass: #C8A45C;         /* relleno y marcas, nunca texto */
  --brass-txt: #7A5A1E;
  --hair: rgba(27, 26, 23, .09);
  --sombra: 0 10px 30px rgba(27, 26, 23, .08), 0 2px 6px rgba(27, 26, 23, .05);
  --curva: cubic-bezier(.22, 1, .36, 1);
  --ui: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Helvetica Neue', Arial, sans-serif;
  --serif: 'Newsreader', 'Iowan Old Style', Georgia, serif;
  --max: 680px;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root {
    --l0: #0E0F10; --l1: #161718; --l2: #1E2021; --l3: #26282A;
    --tinta: #ECE7DD; --tinta-2: #9A948A; --tinta-3: #7A756D;
    --brass: #C8A45C; --brass-txt: #D9B978;
    --hair: rgba(236, 231, 221, .1);
    --sombra: 0 10px 30px rgba(0, 0, 0, .45);
    color-scheme: dark;
  }
}

* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
html, body { margin: 0; height: 100%; }
body {
  background: var(--l0); color: var(--tinta);
  font: 16px/1.45 var(--ui);
  -webkit-font-smoothing: antialiased;
  -webkit-text-size-adjust: 100%;
}
button { font: inherit; color: inherit; background: none; border: none; padding: 0; cursor: pointer; }
.sprite { display: none; }
svg { width: 22px; height: 22px; flex: none; }
[hidden] { display: none !important; }

/* ---------- vistas ---------- */
.vista { display: none; min-height: 100%; }
.vista.activa { display: flex; flex-direction: column; animation: entra .28s var(--curva); }
@keyframes entra { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

#v-arranque { align-items: center; justify-content: center; }
.arranque-txt { color: var(--tinta-3); }

/* ---------- barra superior ---------- */
.barra {
  position: sticky; top: 0; z-index: 20;
  padding-top: env(safe-area-inset-top);
  background: color-mix(in srgb, var(--l0) 86%, transparent);
  -webkit-backdrop-filter: saturate(1.4) blur(18px); backdrop-filter: saturate(1.4) blur(18px);
}
.barra-in {
  display: flex; align-items: center; gap: 10px;
  max-width: 1180px; margin: 0 auto; padding: 10px 16px 8px;
  padding-left: max(16px, env(safe-area-inset-left)); padding-right: max(16px, env(safe-area-inset-right));
}
.marca { font: 600 28px/1.1 var(--serif); letter-spacing: -.01em; margin: 0; flex: 1; }
.icono { width: 44px; height: 44px; border-radius: 22px; display: grid; place-items: center; }
.icono:active, .volver:active, .pestana:active { transform: scale(.96); }
.volver { display: flex; align-items: center; gap: 2px; min-height: 44px; padding-right: 8px; font-weight: 500; }
.volver svg { width: 22px; height: 22px; margin-left: -6px; }
.estado-red { font-size: 13px; color: var(--tinta-3); }
.estado-red.mini { margin-left: auto; text-align: right; }
.estado-red.aviso-red { color: var(--brass-txt); }

/* ---------- chips de estado ---------- */
.chip {
  font-size: 12.5px; font-weight: 600; letter-spacing: .01em;
  padding: 4px 10px; border-radius: 999px; background: var(--l3); color: var(--tinta-2);
  white-space: nowrap;
}
.chip[data-e="en_curso"] { background: var(--l3); color: var(--tinta); }
.chip[data-e="para_revisar"], .chip[data-e="publicar"] { background: color-mix(in srgb, var(--brass) 28%, var(--l1)); color: var(--brass-txt); }
.chip[data-e="revisada"] { background: var(--tinta); color: var(--l0); }
.chip[data-e="publicada"] { background: var(--brass); color: #1B1A17; }

/* ---------- lista ---------- */
.lista-wrap { flex: 1; width: 100%; max-width: var(--max); margin: 0 auto; padding: 4px 16px 24px; }
.lista-resumen { color: var(--tinta-2); margin: 2px 0 14px; font-size: 15px; }
.lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.pieza-item {
  display: block; width: 100%; text-align: left;
  background: var(--l1); border-radius: 16px; padding: 14px 16px 13px;
  box-shadow: var(--sombra); transition: transform .18s var(--curva);
}
.pieza-item:active { transform: scale(.98); background: var(--l2); }
.pieza-item.seguir { box-shadow: inset 3px 0 0 var(--brass), var(--sombra); }
.pi-sigue { font-size: 12.5px; font-weight: 600; color: var(--brass-txt); margin-bottom: 4px; }
.pi-titulo { font: 500 19px/1.25 var(--serif); margin: 0 0 9px; }
.pi-meta { display: flex; align-items: center; gap: 10px; font-size: 13.5px; color: var(--tinta-2); }
.pi-barra { flex: 1; height: 4px; border-radius: 4px; background: var(--l3); overflow: hidden; }
.pi-barra > div { height: 100%; width: 0; background: var(--tinta); border-radius: 4px; }
.pi-mono { font-variant-numeric: tabular-nums; }
.vacio { color: var(--tinta-2); text-align: center; padding: 28px 12px; font-size: 15px; }
.pie { padding: 10px 16px calc(14px + env(safe-area-inset-bottom)); text-align: center; }

/* ---------- pieza ---------- */
.pestanas {
  display: flex; gap: 4px; max-width: 1180px; margin: 0 auto; padding: 0 16px 8px;
}
.pestana {
  flex: 1; min-height: 36px; border-radius: 10px; font-size: 14.5px; font-weight: 500; color: var(--tinta-2);
}
.pestana.activa { background: var(--tinta); color: var(--l0); }
.cuenta:empty { display: none; }
.cuenta { font-variant-numeric: tabular-nums; }

.formato {
  display: flex; gap: 6px; max-width: var(--max); margin: 0 auto; padding: 0 16px 8px; overflow-x: auto;
}
.formato button {
  min-height: 36px; min-width: 44px; padding: 0 12px; border-radius: 10px; background: var(--l1);
  font-size: 14.5px; font-weight: 500; display: grid; place-items: center;
}
.formato button:active { background: var(--l3); transform: scale(.96); }
.formato .f-b { font-weight: 800; }
.formato .f-i { font-style: italic; font-family: var(--serif); font-size: 16px; }
.formato svg { width: 20px; height: 20px; }

.pieza-rejilla { flex: 1; width: 100%; max-width: 1180px; margin: 0 auto; }
.panel { display: none; }
.panel.activo { display: block; }
.panel-texto, .panel-notas { padding: 6px 16px 140px; max-width: var(--max); margin: 0 auto; width: 100%; }
.panel-datos { padding: 6px 16px 140px; }

.progreso { margin: 4px 0 18px; }
.progreso-txt { font-size: 14px; color: var(--tinta-2); margin-bottom: 7px; }
.progreso-txt b { color: var(--tinta); font-variant-numeric: tabular-nums; }
.progreso-barra { height: 5px; border-radius: 5px; background: var(--l3); overflow: hidden; }
#progreso-relleno { height: 100%; width: 0; background: var(--tinta); border-radius: 5px; transition: width .4s var(--curva); }
.progreso-ayuda { font-size: 12.5px; color: var(--tinta-3); margin: 7px 0 0; }

/* La hoja: lo que escribe. 18 px en el iPhone (16 es el mínimo para que
   iOS no haga zoom); ancho de línea cómodo en el Mac. */
.hoja { font-family: var(--serif); }
.hoja [contenteditable] { outline: none; caret-color: var(--brass-txt); }
.ed-titular { font: 600 29px/1.15 var(--serif); letter-spacing: -.012em; margin: 0 0 12px; }
.ed-entradilla { font: italic 400 20px/1.4 var(--serif); margin: 0 0 22px; }
.ed-cuerpo { font: 400 18.5px/1.62 var(--serif); }
.ed-cuerpo > p, .ed-cuerpo > ul, .ed-cuerpo > ol { margin: 0 0 1.05em; }
.ed-cuerpo > h2 { font: 600 22px/1.25 var(--serif); margin: 1.5em 0 .55em; }
.ed-cuerpo > h3 { font: 600 19px/1.3 var(--serif); margin: 1.3em 0 .5em; }
.ed-cuerpo > blockquote {
  margin: 1.2em 0; padding: 2px 0 2px 16px; font-style: italic; font-size: 20px;
  box-shadow: inset 3px 0 0 var(--hair);
}
.ed-cuerpo a { color: inherit; text-decoration-color: var(--brass); text-underline-offset: 3px; }

/* Huella: lo que sigue siendo el texto de antes va en gris; lo tuyo, en
   negro. Lo mezclado lleva además una marca de latón a la izquierda. */
[data-h="original"] { color: var(--tinta-2); }
[data-h="mixto"] { color: var(--tinta-2); box-shadow: inset 3px 0 0 var(--brass); padding-left: 12px; margin-left: -15px; }
[data-h="tuyo"] { color: var(--tinta); }
[data-nota="1"] { background: color-mix(in srgb, var(--brass) 13%, transparent); border-radius: 6px; }

.fijo {
  display: flex; align-items: center; gap: 10px;
  margin: 1.2em 0; padding: 12px 14px; border-radius: 12px; background: var(--l3);
  font: 500 14px/1.35 var(--ui); color: var(--tinta-2);
  user-select: none; -webkit-user-select: none;
}
.fijo svg { color: var(--tinta-3); }

/* ---------- datos (el kit) ---------- */
.datos-buscar {
  display: flex; align-items: center; gap: 8px; background: var(--l1); border-radius: 12px; padding: 0 12px; margin-bottom: 14px;
  position: sticky; top: 0;
}
.datos-buscar svg { color: var(--tinta-3); width: 18px; height: 18px; }
.datos-buscar input {
  flex: 1; border: none; background: none; font: 16px var(--ui); color: var(--tinta); min-height: 42px; outline: none;
}
.datos-cuerpo { font-size: 15px; line-height: 1.5; }
.datos-cuerpo h2, .datos-cuerpo h3, .datos-cuerpo h4 { font: 600 17px/1.3 var(--ui); margin: 1.4em 0 .5em; }
.datos-cuerpo h1 { font: 600 20px/1.25 var(--serif); margin: .2em 0 .6em; }
.datos-cuerpo p, .datos-cuerpo li { margin: 0 0 .55em; }
.datos-cuerpo ul, .datos-cuerpo ol { padding-left: 20px; margin: 0 0 .8em; }
.datos-cuerpo a { color: var(--brass-txt); word-break: break-word; }
.datos-cuerpo .tabla { overflow-x: auto; margin: 0 0 1em; background: var(--l1); border-radius: 10px; }
.datos-cuerpo table { border-collapse: collapse; font-size: 13.5px; min-width: 100%; }
.datos-cuerpo td, .datos-cuerpo th { padding: 7px 9px; vertical-align: top; text-align: left; box-shadow: inset 0 -1px 0 var(--hair); }
.datos-cuerpo th { font-weight: 600; }
.datos-cuerpo mark { background: color-mix(in srgb, var(--brass) 45%, transparent); color: inherit; border-radius: 3px; }
.datos-cuerpo code { font-size: 13px; background: var(--l3); padding: 1px 4px; border-radius: 4px; }
.datos-oculto { display: none; }

/* ---------- notas ---------- */
.notas-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.nota { background: var(--l1); border-radius: 14px; padding: 12px 14px; box-shadow: var(--sombra); }
.nota.hecha { opacity: .55; box-shadow: none; }
.nota-tipo { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: var(--brass-txt); }
.nota-donde { font: italic 15px/1.35 var(--serif); color: var(--tinta-2); margin: 4px 0 6px; }
.nota-txt { margin: 0 0 10px; font-size: 15.5px; }
.nota-pie { display: flex; gap: 8px; }
.btn-peq {
  min-height: 36px; padding: 0 14px; border-radius: 10px; background: var(--l3); font-size: 14px; font-weight: 600;
  display: inline-flex; align-items: center; gap: 6px;
}
.btn-peq svg { width: 18px; height: 18px; }
.btn-peq.on { background: var(--tinta); color: var(--l0); }

.nota-flotante {
  position: fixed; left: 12px; right: 12px; bottom: calc(92px + env(safe-area-inset-bottom)); z-index: 25;
  max-width: 560px; margin: 0 auto; background: var(--l2); border-radius: 14px; padding: 12px 14px; box-shadow: var(--sombra);
  font-size: 15px;
}

/* ---------- barra de acción ---------- */
.accion {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 22;
  padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
  background: color-mix(in srgb, var(--l0) 88%, transparent);
  -webkit-backdrop-filter: saturate(1.4) blur(18px); backdrop-filter: saturate(1.4) blur(18px);
  text-align: center;
}
.accion .btn { width: 100%; max-width: 420px; }
.accion-ayuda { font-size: 12.5px; color: var(--tinta-3); margin: 6px 0 0; }
.accion-ayuda:empty { display: none; }
body.escribiendo .accion { display: none; }

.btn {
  min-height: 50px; border-radius: 14px; padding: 0 22px; font-size: 16.5px; font-weight: 600;
  transition: transform .15s var(--curva), opacity .2s;
}
.btn:active { transform: scale(.97); }
.btn-tinta { background: var(--tinta); color: var(--l0); }
.btn-suave { background: var(--l3); color: var(--tinta); }
.btn-laton { background: var(--brass); color: #1B1A17; }
.btn:disabled { opacity: .45; }

/* ---------- puerta ---------- */
#v-puerta { align-items: center; justify-content: center; padding: 24px; }
.puerta { max-width: 360px; text-align: center; }
.puerta .marca { font-size: 40px; margin-bottom: 14px; }
.puerta-txt { color: var(--tinta-2); margin: 0 0 22px; }
.puerta .btn { width: 100%; }
.puerta-error { color: var(--brass-txt); font-size: 14px; min-height: 20px; }

/* ---------- hoja modal y aviso ---------- */
.velo { position: fixed; inset: 0; background: rgba(0, 0, 0, .28); z-index: 40; animation: fundido .2s; }
@keyframes fundido { from { opacity: 0; } }
.hoja-modal {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 41; max-width: 560px; margin: 0 auto;
  background: var(--l2); border-radius: 22px 22px 0 0; padding: 8px 20px calc(22px + env(safe-area-inset-bottom));
  box-shadow: 0 -10px 40px rgba(0, 0, 0, .18); animation: sube .3s var(--curva);
  max-height: 85vh; overflow-y: auto;
}
@keyframes sube { from { transform: translateY(100%); } }
.hoja-asa { width: 40px; height: 5px; border-radius: 3px; background: var(--l3); margin: 4px auto 14px; }
.hoja-modal h2 { font: 600 20px/1.25 var(--serif); margin: 0 0 8px; }
.hoja-modal p { color: var(--tinta-2); margin: 0 0 14px; font-size: 15px; }
.hoja-modal .btn { width: 100%; margin-top: 8px; }
.hoja-modal input[type="url"], .hoja-modal input[type="text"] {
  width: 100%; min-height: 48px; border: none; border-radius: 12px; background: var(--l1); padding: 0 14px;
  font: 16px var(--ui); color: var(--tinta); outline: none;
}
.hoja-enlace { word-break: break-all; font-size: 13px; background: var(--l1); border-radius: 10px; padding: 10px 12px; color: var(--tinta-2); }

.aviso {
  position: fixed; left: 50%; transform: translateX(-50%); bottom: calc(96px + env(safe-area-inset-bottom)); z-index: 50;
  background: var(--tinta); color: var(--l0); padding: 10px 16px; border-radius: 12px; font-size: 14.5px;
  box-shadow: var(--sombra); max-width: calc(100% - 32px); animation: entra .25s var(--curva);
}

/* ---------- el Mac: texto y datos a la vez ---------- */
@media (min-width: 960px) {
  .pestana[data-p="datos"] { display: none; }
  .pieza-rejilla { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 28px; padding: 0 24px; }
  .panel-datos {
    display: block !important; position: sticky; top: 120px; align-self: start;
    max-height: calc(100vh - 140px); overflow-y: auto; background: var(--l1); border-radius: 16px; padding: 14px 16px 24px;
  }
  .panel-texto, .panel-notas { padding-bottom: 120px; }
  .ed-cuerpo { font-size: 19px; }
}

/* ---------- añadidos del 4-nov, noche ---------- */
.progreso-fila { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 7px; }
.progreso-fila .progreso-txt { margin-bottom: 0; }
.palabras { white-space: nowrap; }
.original-txt { font: 17px/1.55 var(--serif); color: var(--tinta) !important; background: var(--l1); border-radius: 12px; padding: 12px 14px; }
.original-ayuda { font-size: 13px !important; }
.versiones { display: grid; gap: 8px; margin: 6px 0 10px; color: var(--tinta-2); font-size: 15px; }
.version { display: flex; align-items: center; justify-content: space-between; gap: 10px; background: var(--l1); border-radius: 12px; padding: 10px 12px; }
.version-txt b { color: var(--tinta); font-weight: 600; }
.hoja-modal { position: fixed; }
.hoja-cerrar { position: absolute; top: 10px; right: 14px; min-height: 36px; padding: 0 12px; border-radius: 10px; font-size: 14.5px; font-weight: 600; color: var(--tinta-2); }
.hoja-cerrar:active { background: var(--l3); }
