/* Leche Frita · estilos propios de las herramientas (modo cocina, conversor, costes, test, recetario, fichas).
   Se carga solo en esas páginas. Usa las variables de estilos.css. */

.herr-seccion { padding-top: 0; }
.herr [hidden], .herr[hidden] { display: none !important; }
.prosa-rejilla > .prosa { min-width: 0; } /* las tablas anchas se desplazan dentro de su envoltura */
.herr { position: relative; scroll-margin-top: 96px; }
.herr button { font: inherit; }
.herr :focus-visible { outline: 3px solid var(--caramelo); outline-offset: 3px; }
.herr input[type="text"], .herr input[type="number"], .herr select {
  font: inherit; color: var(--texto); padding: .6rem .8rem; border: 1.5px solid var(--linea);
  border-radius: 12px; background: var(--crema); max-width: 100%;
}
.herr input:focus-visible, .herr select:focus-visible { border-color: var(--canela); }
.herr .boton:disabled { opacity: .45; cursor: not-allowed; transform: none; }
kbd {
  font: 700 .85em var(--sans); background: var(--papel); border: 1px solid var(--linea);
  border-bottom-width: 3px; border-radius: 6px; padding: .05em .45em;
}

/* Chips (botones pequeños) */
.mc__chip {
  font: 700 .9rem var(--sans); color: var(--cacao); background: var(--papel); cursor: pointer;
  border: 1.5px solid var(--linea); border-radius: 999px; padding: .45rem .95rem; transition: background .2s, border-color .2s;
}
.mc__chip:hover { background: var(--arena); border-color: var(--caramelo); }
.mc__chip[aria-pressed="true"] { background: var(--cacao); border-color: var(--cacao); color: var(--crema); }
.mc__chip[aria-pressed="true"]:hover { background: var(--canela-osc); border-color: var(--canela-osc); color: #fff; }

/* ---------- Modo cocina ---------- */
.mc {
  background: var(--papel); border: 1px solid var(--linea); border-radius: 26px;
  padding: clamp(1.2rem, 3vw, 2.2rem); box-shadow: var(--sombra);
}
.mc__inicio { display: grid; grid-template-columns: minmax(240px, 1fr) 1.4fr; gap: clamp(1.2rem, 4vw, 3rem); }
.mc__inicio > .botones, .mc__inicio > noscript { grid-column: 1 / -1; }
.mc__cabeza h2 { font-size: 1.5rem; }
.mc__cabeza select { width: 100%; }
.mc__meta { margin: 1rem 0 0; }
.mc__ingredientes h3 { font-size: 1.25rem; }
.mc__rac { font: 400 .95rem var(--sans); color: var(--suave); }
.mc__grupo { font: 700 .75rem var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--canela); margin: 1rem 0 .3rem; }
.mc__nota { background: var(--aviso); border-left: 4px solid var(--caramelo); border-radius: 0 12px 12px 0; padding: .7rem 1rem; font-size: .95rem; }
.mc__lista { margin: 0 0 .5rem; padding-left: 1.2rem; }
.mc__lista li { margin: .2rem 0; }

.mc__visor { display: flex; flex-direction: column; gap: 1rem; }
.mc__barra { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .6rem; }
.mc__contador { margin: 0; font-weight: 700; color: var(--suave); }
.mc__acciones { display: flex; flex-wrap: wrap; gap: .5rem; }
.mc__progreso { width: 100%; height: .6rem; accent-color: var(--canela); }
.mc__progreso::-webkit-progress-bar { background: var(--arena); border-radius: 999px; }
.mc__progreso::-webkit-progress-value { background: var(--canela); border-radius: 999px; }
.mc__progreso::-moz-progress-bar { background: var(--canela); border-radius: 999px; }
.mc__mini summary { cursor: pointer; font-weight: 700; color: var(--canela); }
.mc__mini[open] { background: var(--crema); border-radius: 14px; padding: .6rem 1rem; }
.mc__paso { min-height: 12rem; }
.mc__titulo { font-size: clamp(1.7rem, 4vw, 2.6rem); margin-bottom: .5rem; }
.mc__titulo:focus { outline: none; }
.mc__titulo:focus-visible { outline: 3px solid var(--caramelo); outline-offset: 4px; }
.mc__texto { font-size: clamp(1.2rem, 2.4vw, 1.6rem); line-height: 1.55; max-width: 48ch; margin: 0; color: var(--texto); }
.mc__paso--entra { animation: mc-entra .35s ease-out; }
@keyframes mc-entra { from { opacity: 0; transform: translateX(14px); } to { opacity: 1; transform: none; } }
.mc__temps { display: flex; flex-wrap: wrap; gap: .6rem; }
.mc__temps:empty { display: none; }
.mc__nav { display: flex; justify-content: space-between; gap: .8rem; flex-wrap: wrap; margin-top: auto; }
.mc__btn { font-size: 1.1rem; padding: 1rem 1.8rem; min-width: 9.5rem; justify-content: center; }
.mc__ayuda { font-size: .85rem; color: var(--suave); margin: 0; }

.mc__activos { display: flex; flex-wrap: wrap; gap: .6rem; margin-bottom: 1rem; }
.mc__crono {
  display: flex; align-items: center; flex-wrap: wrap; gap: .5rem .8rem; padding: .55rem .7rem .55rem 1rem;
  background: var(--arena); border: 2px solid var(--caramelo); border-radius: 16px;
}
.mc__crono-etq { font-size: .85rem; color: var(--suave); max-width: 22ch; }
.mc__crono-tiempo { font: 700 1.6rem/1 var(--sans); font-variant-numeric: tabular-nums; color: var(--cacao); }
.mc__crono--fin { background: var(--canela); border-color: var(--canela-osc); }
.mc__crono--fin .mc__crono-etq, .mc__crono--fin .mc__crono-tiempo { color: #fff; }
.mc__crono--fin { animation: mc-parpadeo 1s ease-in-out infinite; }
@keyframes mc-parpadeo { 50% { box-shadow: 0 0 0 8px rgba(227, 160, 63, .45); } }
.mc__alerta {
  margin: 0 0 1rem; padding: .9rem 1.2rem; border-radius: 14px; background: var(--cacao); color: var(--crema);
  font: 700 clamp(1.1rem, 2.5vw, 1.5rem) var(--sans);
}

/* Pantalla completa (API nativa o alternativa con clase) */
.mc:fullscreen { border-radius: 0; border: 0; overflow: auto; padding: clamp(1rem, 4vw, 3rem); background: var(--crema); }
.mc:-webkit-full-screen { border-radius: 0; border: 0; overflow: auto; padding: clamp(1rem, 4vw, 3rem); background: var(--crema); width: 100%; height: 100%; }
.mc::backdrop { background: var(--crema); }
.mc.mc--pantalla {
  position: fixed; inset: 0; z-index: 1000; border-radius: 0; border: 0; overflow: auto;
  padding: clamp(1rem, 4vw, 3rem); background: var(--crema);
}
html.mc-sin-scroll { overflow: hidden; }
.mc:fullscreen .mc__visor, .mc.mc--pantalla .mc__visor { min-height: calc(100vh - 6rem); }
.mc:fullscreen .mc__texto, .mc.mc--pantalla .mc__texto { font-size: clamp(1.4rem, 3.2vw, 2.2rem); max-width: 52ch; }
.mc:fullscreen .mc__titulo, .mc.mc--pantalla .mc__titulo { font-size: clamp(2rem, 5vw, 3.4rem); }

@media (max-width: 760px) {
  .mc__inicio { grid-template-columns: 1fr; }
  .mc__btn { flex: 1; min-width: 0; }
}

/* ---------- Conversor ---------- */
.conv__unidades { display: grid; grid-template-columns: 1fr auto 1fr; gap: .6rem; align-items: center; }
.conv__unidades .campo { margin-bottom: 0; }
.conv__unidades select { width: 100%; }
.conv__invertir { margin-top: 1.6rem; }
.conv__resultado { font-size: clamp(1.25rem, 2.6vw, 1.7rem); }
.conv__temp { margin-top: 2rem; }
.conv__rapidos { display: flex; flex-wrap: wrap; gap: .5rem; }
@media (max-width: 420px) {
  .conv__unidades { grid-template-columns: 1fr; }
  .conv__invertir { margin: 0 auto; transform: rotate(90deg); }
  .conv__invertir:hover { transform: rotate(90deg) scale(1.1); }
}

/* ---------- Coste por ración ---------- */
.coste {
  background: var(--papel); border: 1px solid var(--linea); border-radius: 26px;
  padding: clamp(1.2rem, 3vw, 2.2rem); box-shadow: var(--sombra);
}
.coste h2 { font-size: 1.5rem; }
.coste .tabla-envoltura { position: relative; } /* contiene el texto oculto absoluto de la cabecera */
.coste__tabla { width: 100%; border-collapse: collapse; min-width: 760px; }
.coste__tabla th, .coste__tabla td { padding: .45rem .5rem; border-bottom: 1px dashed var(--linea); text-align: left; vertical-align: middle; }
.coste__tabla thead th { font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; color: var(--suave); }
.coste__tabla caption { text-align: left; padding: .7rem .6rem; font-weight: 700; color: var(--cacao); }
.coste__tabla td { white-space: nowrap; }
.coste__tabla input[type="number"] { width: 6rem; padding: .45rem .6rem; }
.coste__tabla .coste__nombre { font-weight: 400; }
.coste__tabla .coste__nombre { width: 100%; min-width: 13rem; padding: .45rem .6rem; }
.coste__tabla select { padding: .45rem .5rem; }
.coste__nombre-imp { display: none; }
.coste__linea { font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.coste__ud-txt { color: var(--suave); font-size: .9rem; }
.coste__quitar {
  width: 2.2rem; height: 2.2rem; border-radius: 50%; border: 1.5px solid var(--linea); background: var(--papel);
  color: var(--canela); font: 700 1.2rem/1 var(--sans); cursor: pointer;
}
.coste__quitar:hover { background: var(--arena); border-color: var(--canela); }
.coste__parametros { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 0 1.2rem; margin-top: 1.5rem; }
.coste__parametros input { width: 100%; }
.coste__resultados { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.coste__resultados strong { font-variant-numeric: tabular-nums; font-size: 1.1rem; }
.coste__clave { background: var(--miel) !important; }
.coste__clave strong { font-size: 1.3rem; color: var(--cacao); }

/* ---------- Test ---------- */
.test, .test__resultado {
  background: var(--papel); border: 1px solid var(--linea); border-radius: 26px;
  padding: clamp(1.2rem, 3vw, 2.2rem); box-shadow: var(--sombra);
}
.test h2 { font-size: 1.5rem; }
.test__pregunta { border: 0; border-top: 1px dashed var(--linea); margin: 0; padding: 1.2rem 0; }
.test__pregunta legend { font: 700 1.2rem var(--serif); color: var(--cacao); padding: 0; margin-bottom: .7rem; float: left; width: 100%; }
.test__opciones { clear: both; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .6rem; }
.test__num { display: inline-block; font: 700 .75rem var(--sans); background: var(--miel); color: var(--cacao); border-radius: 999px; padding: .2rem .6rem; margin-right: .4rem; vertical-align: middle; }
.test__opcion {
  display: flex; gap: .6rem; align-items: flex-start; cursor: pointer; padding: .75rem .9rem;
  border: 1.5px solid var(--linea); border-radius: 14px; background: var(--crema); transition: border-color .2s, background .2s;
}
.test__opcion input { accent-color: var(--canela); width: 1.1rem; height: 1.1rem; margin-top: .2rem; flex: none; }
.test__opcion:hover { border-color: var(--caramelo); }
.test__opcion:has(input:checked) { border-color: var(--canela); background: var(--aviso); }
.test__opcion:has(input:focus-visible) { outline: 3px solid var(--caramelo); outline-offset: 2px; }
.test__pregunta--falta .test__opciones { box-shadow: 0 0 0 2px var(--canela); border-radius: 14px; }
.test__error { color: var(--canela-osc); font-weight: 700; min-height: 1.5em; margin: .5rem 0; }
.test__resultado { margin-top: 2rem; overflow: hidden; text-align: center; }
.test__res { max-width: 46ch; margin-inline: auto; }
.test__eres { font: 700 .8rem var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--canela); margin: 0; }
.test__nombre { font-size: clamp(1.8rem, 4vw, 2.6rem); margin: .2rem 0 .7rem; }
.test__nombre:focus { outline: none; }
.test__resultado .botones { justify-content: center; }
.test__chispas { position: absolute; inset: 0; pointer-events: none; }
.test__chispas span { position: absolute; left: 50%; top: 30%; width: .6rem; height: .6rem; border-radius: 3px; opacity: 0; background: var(--caramelo); }
.test__chispas span:nth-child(3n) { background: var(--canela); border-radius: 50%; }
.test__chispas span:nth-child(3n+1) { background: var(--miel); }
.test__resultado--anim .test__res:not([hidden]) { animation: test-entra .7s cubic-bezier(.34, 1.56, .64, 1) both; }
.test__resultado--anim .test__chispas span { animation: test-chispa 1.1s ease-out both; }
.test__chispas span:nth-child(1) { --x: -220px; --y: -60px; }
.test__chispas span:nth-child(2) { --x: 200px; --y: -80px; animation-delay: .05s; }
.test__chispas span:nth-child(3) { --x: -160px; --y: 90px; animation-delay: .1s; }
.test__chispas span:nth-child(4) { --x: 170px; --y: 100px; }
.test__chispas span:nth-child(5) { --x: -60px; --y: -110px; animation-delay: .08s; }
.test__chispas span:nth-child(6) { --x: 70px; --y: -120px; }
.test__chispas span:nth-child(7) { --x: -280px; --y: 20px; animation-delay: .12s; }
.test__chispas span:nth-child(8) { --x: 280px; --y: 30px; }
.test__chispas span:nth-child(9) { --x: -110px; --y: 140px; animation-delay: .06s; }
.test__chispas span:nth-child(10) { --x: 120px; --y: 150px; animation-delay: .14s; }
.test__chispas span:nth-child(11) { --x: -320px; --y: -40px; }
.test__chispas span:nth-child(12) { --x: 330px; --y: -30px; animation-delay: .09s; }
.test__chispas span:nth-child(13) { --x: -20px; --y: 170px; }
.test__chispas span:nth-child(14) { --x: 30px; --y: -150px; animation-delay: .11s; }
@keyframes test-entra { from { opacity: 0; transform: scale(.8) translateY(20px); } to { opacity: 1; transform: none; } }
@keyframes test-chispa {
  0% { opacity: 1; transform: translate(0, 0) rotate(0); }
  100% { opacity: 0; transform: translate(var(--x), var(--y)) rotate(200deg); }
}

/* ---------- Recetario y fichas (vista en pantalla) ---------- */
.imp__acciones {
  background: var(--papel); border: 1px solid var(--linea); border-radius: 22px; padding: clamp(1rem, 3vw, 1.8rem);
  margin-bottom: 2rem; box-shadow: var(--sombra);
}
.imp__acciones h2 { font-size: 1.4rem; }
.imp__ayuda { margin-top: 1rem; }
.imp__ayuda summary { cursor: pointer; font-weight: 700; color: var(--canela); }
.imp__ayuda ol { margin: .6rem 0 0; }
.fichas__control { display: flex; flex-wrap: wrap; gap: 1rem 1.5rem; align-items: flex-end; }
.fichas__control .campo { margin: 0; min-width: min(100%, 300px); }
.fichas__control select { width: 100%; }
.imp__portada, .imp__receta {
  background: #fff; color: #222; border: 1px solid var(--linea); border-radius: 6px;
  padding: clamp(1.2rem, 4vw, 2.6rem); box-shadow: var(--sombra); margin: 0 auto 2rem; max-width: 820px;
}
.imp h2, .imp h3, .imp h4 { color: #2b1a10; }
.imp__ante { font: 700 .72rem var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--canela); margin: 0 0 .3rem; }
.imp__gran { font-size: clamp(2rem, 5vw, 3rem); }
.imp__intro { color: #444; font-size: 1.02rem; margin: 0 0 .8rem; }
.imp__cabeza { border-bottom: 2px solid #2b1a10; padding-bottom: .8rem; margin-bottom: 1.2rem; }
.imp__cabeza h2 { margin-bottom: .4rem; }
.imp__datos { list-style: none; padding: 0; margin: .4rem 0 0; display: flex; flex-wrap: wrap; gap: .3rem 1.4rem; font-size: .92rem; }
.imp__datos li { margin: 0; }
.imp__datos span { font-weight: 700; text-transform: uppercase; font-size: .72rem; letter-spacing: .1em; color: #6b5544; margin-right: .3rem; }
.imp__cuerpo { display: grid; grid-template-columns: minmax(200px, 1fr) 2fr; gap: 1.6rem; }
.imp__cuerpo h3 { font-size: 1.1rem; margin-bottom: .4rem; }
.imp__cuerpo h4 { font: 700 .72rem var(--sans); letter-spacing: .12em; text-transform: uppercase; color: var(--canela); margin: .8rem 0 .2rem; }
.imp__lista { margin: 0; padding-left: 1.1rem; }
.imp__lista li { margin: .15rem 0; }
.imp__lista.lista-check { padding-left: 0; }
.imp__lista.lista-check label { padding: .25rem 0; }
.imp__pasos { margin: 0; padding-left: 1.3rem; }
.imp__pasos li { margin: 0 0 .6rem; }
.imp__nota { font-size: .92rem; margin: 1rem 0 0; }
.imp__indice { font-size: 1.1rem; }
.imp__pie { font-size: .78rem; color: #6b5544; margin: 1.2rem 0 0; border-top: 1px solid #ddd; padding-top: .5rem; }
.ficha__notas { margin-top: 1.4rem; }
.ficha__notas h3 { font-size: 1.1rem; margin-bottom: .2rem; }
.ficha__lineas span { display: block; height: 2rem; border-bottom: 1px solid #bbb; }
@media (max-width: 680px) {
  .imp__cuerpo { grid-template-columns: 1fr; }
}

/* ---------- Movimiento reducido ---------- */
@media (prefers-reduced-motion: reduce) {
  .mc__paso--entra, .mc__crono--fin, .test__resultado--anim .test__res:not([hidden]) { animation: none !important; }
  .test__chispas { display: none; }
  .mc__chip, .test__opcion { transition: none; }
}

/* ---------- Impresión (esta hoja solo se carga en las páginas de herramientas) ---------- */
@media print {
  @page { size: A4; margin: 14mm 14mm 16mm; }
  .portada, .seccion--arena, .prosa-rejilla, .no-imprimir, .indice { display: none !important; }
  .seccion { padding: 0 !important; }
  .contenedor { width: 100% !important; }
  body { background: #fff !important; color: #000; }
  a { text-decoration: none; }

  /* Modo cocina, conversor y test no son imprimibles en esencia: se imprime solo la herramienta */
  .mc, .coste, .calc, .test, .test__resultado { box-shadow: none !important; border: 0 !important; padding: 0 !important; }
  .test__chispas, .mc__acciones, .mc__nav, #mc-probar { display: none !important; }

  /* Costes */
  .coste__tabla { min-width: 0; font-size: 9.5pt; }
  .coste__tabla input, .coste__tabla select, .coste__parametros input {
    border: 0 !important; background: none !important; padding: 0 !important; width: auto; appearance: none; -webkit-appearance: none;
  }
  .coste { background: none !important; font-size: 10pt; }
  .coste h2 { font-size: 16pt; }
  .coste .aviso { padding: 2mm 3mm; margin: 2mm 0 4mm; font-size: 9pt; }
  .coste__tabla th, .coste__tabla td { padding: 1.2mm 1.5mm; }
  .coste__tabla .coste__nombre { display: none; }
  .coste__tabla .coste__nombre-imp { display: inline; font-weight: 400; }
  .coste__parametros { grid-template-columns: repeat(4, 1fr); margin-top: 3mm; }
  .coste__parametros .campo { margin-bottom: 2mm; }
  .coste__parametros .campo__ayuda { display: none; }
  .coste__resultados { margin-top: 2mm; gap: 1.5mm; }
  .coste__resultados li { padding: 1.5mm 3mm; background: #f3f3f3 !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .tabla-envoltura { overflow: visible !important; border: 0 !important; }

  /* Recetario y fichas */
  .imp__portada, .imp__receta {
    box-shadow: none !important; border: 0 !important; border-radius: 0; padding: 0 !important; margin: 0 !important; max-width: none;
    font-size: 10.5pt; line-height: 1.4;
  }
  .imp__receta { break-before: page; page-break-before: always; }
  .fichas .imp__receta { break-before: auto; page-break-before: auto; break-inside: avoid; }
  .fichas--todas .imp__receta + .imp__receta { break-before: page; page-break-before: always; }
  .imp__portada { min-height: 240mm; display: flex; flex-direction: column; justify-content: center; }
  .imp__portada .imp__pie { margin-top: auto; }
  .imp__gran { font-size: 34pt; }
  .imp h2 { font-size: 20pt; }
  .imp__cuerpo { grid-template-columns: 34% 1fr; gap: 7mm; }
  .imp__cuerpo h3 { font-size: 12.5pt; }
  .imp__pasos li, .imp__lista li { break-inside: avoid; }
  .imp__cabeza { break-after: avoid; }
  .imp__ante, .imp__cuerpo h4 { color: #000 !important; }
  .imp .aviso { background: none !important; border: 1px solid #999 !important; border-radius: 4px; }
  .imp__lista.lista-check input { -webkit-appearance: none; appearance: none; width: 3.6mm; height: 3.6mm; border: 1px solid #000; border-radius: 1mm; margin-top: 1mm; }
  .lista-check label:has(input:checked) span { text-decoration: none; color: #000; }
  .ficha__lineas span { height: 9mm; border-bottom: 1px solid #888; }
  .ficha .imp__pasos li { margin-bottom: 2mm; }
  .ficha { font-size: 10pt; }
}
