/* Calculadoras de números (tanda 8, 4-oct-2026): calculadora, porcentajes,
   regla de tres, fracciones, promedio, IVA, préstamos e interés compuesto.
   Complementa a utiles-calculadoras.css (.ucal-marco, .ucal-resultado,
   .ucal-tabla…). Todos los colores salen de las variables --uth-* de
   utiles-herramientas.css (con su respaldo en tokens.css): ninguno fijo. */

/* Comunes */
.ucal-subtitulo{margin:0;font-size:15px;font-weight:600;color:var(--uth-texto)}
.ucal-seccion{display:grid;gap:12px;margin-top:24px;min-width:0}
.ucal-pasos{margin:0;padding-inline-start:20px;display:grid;gap:6px;font-size:14px;line-height:1.5;color:var(--uth-suave);overflow-wrap:anywhere}
.ucal-pasos:empty{display:none}
.ucal-pasos li::marker{color:var(--uth-tenue);font-variant-numeric:tabular-nums}
.ucal-cifras .ucal-ancho{grid-column:1/-1}
/* Fila con una nota bajo un campo: las casillas alineadas arriba. */
.ucal-fila.ucal-fila-arriba{align-items:start}
.ucal-planteo{margin:0;font-size:14px;color:var(--uth-suave)}
.ucal-bloque{padding:16px;border:1px solid var(--uth-borde);border-radius:14px;min-width:0}
.ucal-bloque>legend{padding:0 6px;font-size:14px;font-weight:600;color:var(--uth-texto)}
.ucal-bloques{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:16px;align-items:start}

/* Calculadora: pantalla, teclado e historial */
.ucal-calc{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,300px);gap:24px;align-items:start}
@media(max-width:760px){.ucal-calc{grid-template-columns:minmax(0,1fr)}}
.ucal-calc-principal{display:grid;gap:12px;min-width:0;max-width:560px}
.ucal-calc-opciones{display:flex;flex-wrap:wrap;gap:12px 24px}
.ucal-pantalla{display:grid;gap:4px;padding:14px 16px;border:1px solid var(--uth-borde);border-radius:14px;background:var(--uth-fondo);min-width:0}
.uth .ucal-expresion{min-height:52px;font-size:22px;text-align:end;letter-spacing:.01em;background:var(--uth-sup)}
.ucal-previa{min-height:1.4em;margin:0;font-size:15px;text-align:end;color:var(--uth-tenue);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.ucal-memoria{margin:0;font-size:12px;color:var(--uth-acento);text-align:end}
.ucal-teclado{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.ucal-teclado-cientifico{grid-template-columns:repeat(5,minmax(0,1fr))}
.ucal-tecla{min-height:52px;min-width:0;padding:6px 4px;border:1px solid var(--uth-borde);border-radius:12px;background:var(--uth-fondo);color:var(--uth-texto);font:inherit;font-size:20px;font-weight:500;font-variant-numeric:tabular-nums;cursor:pointer;touch-action:manipulation;transition:background .12s,border-color .12s}
.ucal-tecla:hover{border-color:color-mix(in srgb,var(--uth-texto) 35%,var(--uth-borde))}
.ucal-tecla:active{background:var(--uth-sup)}
.ucal-tecla.is-op{color:var(--uth-acento);font-size:22px}
.ucal-tecla.is-accion{color:var(--uth-suave)}
.ucal-tecla.is-fn,.ucal-tecla.is-mem{min-height:44px;font-size:15px;color:var(--uth-suave)}
.ucal-tecla.is-mem{min-height:40px;font-size:13px}
.ucal-tecla.uth-btn-primario{border-color:transparent;font-size:24px}
.uth .ucal-tecla:focus-visible{outline:2px solid var(--uth-acento);outline-offset:2px}
@media(max-width:400px){.ucal-tecla{min-height:48px;font-size:18px}.ucal-tecla.is-fn{font-size:13px}.ucal-teclado{gap:6px}}
.ucal-calc-historial{display:grid;gap:10px;align-content:start;min-width:0}
.ucal-historial{list-style:none;margin:0;padding:0;display:grid;gap:6px;max-height:min(520px,60vh);overflow:auto}
.ucal-historial:empty{display:none}
.ucal-hist-item{display:grid;gap:2px;width:100%;padding:8px 10px;border:1px solid var(--uth-borde);border-radius:10px;background:transparent;color:var(--uth-texto);font:inherit;text-align:end;cursor:pointer}
.ucal-hist-item:hover{border-color:color-mix(in srgb,var(--uth-texto) 35%,var(--uth-borde))}
.ucal-hist-op{font-size:12px;color:var(--uth-tenue);overflow-wrap:anywhere}
.ucal-hist-item strong{font-size:16px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}

/* Regla de tres: A → B / C → X */
.ucal-simple,.ucal-compuesta{display:grid;gap:14px;min-width:0}
.ucal-tres{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:12px;align-items:end}
.ucal-flecha{padding-bottom:12px;font-size:20px;color:var(--uth-tenue)}
.ucal-x-titulo{font-size:12px;font-weight:600;color:var(--uth-suave)}
.ucal-x{display:flex;align-items:center;min-height:44px;padding:10px 12px;border:1px dashed color-mix(in srgb,var(--uth-acento) 60%,var(--uth-borde));border-radius:10px;color:var(--uth-acento);font-weight:600;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.ucal-magnitudes{display:grid;gap:12px}
.ucal-magnitud{padding:12px 14px;border:1px solid var(--uth-borde);border-radius:12px;min-width:0}
.ucal-magnitud>legend{padding:0 6px;font-size:13px;font-weight:600;color:var(--uth-suave)}

/* Fracciones: entero a la izquierda, numerador sobre denominador */
.ucal-fr-operacion{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.ucal-fraccion{padding:12px 14px;border:1px solid var(--uth-borde);border-radius:12px;min-width:0}
.ucal-fraccion>legend{padding:0 6px;font-size:13px;font-weight:600;color:var(--uth-suave)}
.ucal-fr-forma{display:flex;align-items:center;gap:10px}
.ucal-fr-pila{display:grid;gap:6px;flex:1;min-width:0}
.ucal-casilla{min-width:0}
.ucal-fr-entero{max-width:72px}
.uth .ucal-fr-entero,.uth .ucal-fr-num,.uth .ucal-fr-den{text-align:center;font-size:18px}
.ucal-fr-raya{display:block;height:2px;border-radius:2px;background:var(--uth-suave)}

/* Promedio ponderado: filas nota | peso | quitar */
.ucal-pesos{display:grid;gap:8px}
.ucal-peso-cab,.ucal-peso-fila{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px;gap:8px;align-items:center}
.ucal-peso-cab{font-size:12px;font-weight:600;color:var(--uth-suave)}
.ucal-quitar{min-height:44px;min-width:44px;font-size:18px}

/* Descuentos encadenados */
.ucal-descuentos{grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}

/* Interés compuesto: leyenda y gráfico */
.ucal-leyenda{display:flex;flex-wrap:wrap;gap:6px 18px;margin:0;padding:0;list-style:none;font-size:13px;color:var(--uth-suave)}
.ucal-leyenda li{display:inline-flex;align-items:center;gap:8px}
.ucal-muestra{width:12px;height:12px;border-radius:3px}
.ucal-muestra-aporte,.ucal-barra-aporte{background:color-mix(in srgb,var(--uth-texto) 38%,transparent);fill:color-mix(in srgb,var(--uth-texto) 38%,transparent)}
.ucal-muestra-interes,.ucal-barra-interes{background:var(--uth-acento);fill:var(--uth-acento)}
.ucal-grafico-caja{min-width:0;overflow:hidden}
.ucal-grafico{display:block;max-width:100%;height:auto}
.ucal-guia{stroke:var(--uth-borde);stroke-width:1}
.ucal-eje{fill:var(--uth-tenue);font-size:11px;font-variant-numeric:tabular-nums}
.ucal-barra:hover rect{opacity:.8}
@media(prefers-reduced-motion:no-preference){.ucal-barra rect{transition:opacity .12s}}
