:root{--rojo: #c8102e;--texto: #1c1c1c;--tenue: #6b6b6b;--borde: #dcdcdc;--fondo: #f6f5f2;--tarjeta: #ffffff;--verde: #15803d;--ambar: #b45309;--error: #b91c1c;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--texto);background:var(--fondo);font-size:14px;line-height:1.4}*{box-sizing:border-box}body{margin:0;background:var(--fondo)}.app{max-width:1400px;margin:0 auto;padding:16px}.cabecera{display:flex;justify-content:space-between;align-items:center;border-bottom:3px solid var(--rojo);padding-bottom:8px;margin-bottom:16px}.cabecera h1{margin:0;font-size:24px}.sub{margin:2px 0 0;color:var(--tenue)}.sello{font-weight:700;color:var(--rojo);letter-spacing:.05em}.bloque{background:var(--tarjeta);border:1px solid var(--borde);border-radius:8px;padding:16px;margin-bottom:16px}.bloque h2{margin:0 0 10px;font-size:18px}.bloque h3{font-size:15px;margin:16px 0 6px}.titulo-bloque{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.titulo-bloque h2{margin-bottom:0}button{font:inherit;padding:6px 12px;border:1px solid var(--borde);border-radius:6px;background:#fff;cursor:pointer}button:hover:not(:disabled){border-color:var(--rojo)}button:disabled{opacity:.55;cursor:default}button.primario{background:var(--rojo);border-color:var(--rojo);color:#fff;font-weight:600}button.grande{font-size:16px;padding:10px 28px}input,select,textarea{font:inherit;padding:4px 6px;border:1px solid var(--borde);border-radius:4px}textarea{width:100%;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px}.carga{display:grid;grid-template-columns:1fr 1fr;gap:16px}.zona{border:2px dashed var(--borde);border-radius:8px;padding:32px 16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;color:var(--tenue);text-align:center}.zona strong{color:var(--texto);font-size:16px}.zona.encima,.zona:hover{border-color:var(--rojo);background:#fff5f6}.zona input{display:none}.carga-lado{display:flex;flex-direction:column;gap:10px;align-items:flex-start}.ficha{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;margin:0}.ficha dt{color:var(--tenue)}.ficha dd{margin:0;font-weight:600}.pegado{margin-top:12px}.fila-controles{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:6px}.nota{color:var(--tenue);font-size:12.5px;margin:6px 0}.tenue{color:var(--tenue)}.fuerte{font-weight:700}.chip{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;margin-left:6px}.chip.verde{background:#dcfce7;color:var(--verde)}.chip.rojo{background:#fee2e2;color:var(--error)}.chip.ambar{background:#fef3c7;color:var(--ambar)}.resumen-validacion{display:flex;gap:8px;align-items:center}.error-caja{background:#fee2e2;color:var(--error);border-radius:6px;padding:8px 12px;margin:8px 0}.aviso-caja{background:#fef3c7;color:#78350f;border-radius:6px;padding:8px 12px;margin:8px 0}.nota-caja{background:#eef2f7;color:#1f2937;border-radius:6px;padding:8px 12px;margin:8px 0}.nota-caja.ok{background:#f0fdf4;color:#14532d}.aviso-inline{color:var(--ambar);font-weight:600}.tabla-scroll{max-height:460px;overflow:auto;border:1px solid var(--borde);border-radius:6px}.tabla{border-collapse:collapse;width:100%;font-size:12.5px}.tabla th,.tabla td{border-bottom:1px solid #eee;padding:4px 6px;text-align:left;vertical-align:top}.tabla th{background:#f1f0ec;position:sticky;top:0;z-index:1;white-space:nowrap}.tabla .n{text-align:right;font-variant-numeric:tabular-nums}.tabla tfoot td{border-top:2px solid var(--borde);font-weight:600}.tabla .codigos{font-family:ui-monospace,Menlo,Consolas,monospace;white-space:nowrap}.tabla tr.con-error{background:#fff1f1}.tabla tr.con-aviso{background:#fffaeb}.msg-error{color:var(--error)}.msg-aviso{color:var(--ambar)}.tabla.compacta{font-size:11.5px}.parametros{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:12px}fieldset{border:1px solid var(--borde);border-radius:6px;padding:8px 12px;margin:0}legend{font-weight:600;padding:0 4px}.campo{display:flex;align-items:center;gap:6px;margin:6px 0}.campo span{min-width:130px;flex:1}.material .campo span{min-width:0}.campo input{width:90px}.campo em{color:var(--tenue);font-style:normal}.check{display:flex;gap:6px;align-items:flex-start;margin:8px 0}.material{margin-bottom:8px}.acciones{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.material-resultado h3{font-size:15px;margin:12px 0 2px}.kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin:10px 0}.kpi{border:1px solid var(--borde);border-radius:6px;padding:8px 10px;display:flex;flex-direction:column}.kpi span{color:var(--tenue);font-size:12px}.kpi strong{font-size:22px}.kpi em{color:var(--tenue);font-style:normal;font-size:11.5px}.kpi.ok{border-color:#86efac;background:#f0fdf4}.kpi.ok strong{color:var(--verde)}.kpi.mal{border-color:#fca5a5;background:#fef2f2}.kpi.mal strong{color:var(--error)}.planos{display:grid;grid-template-columns:repeat(auto-fill,minmax(560px,1fr));gap:12px}.plano{border:1px solid var(--borde);border-radius:6px;padding:10px;break-inside:avoid}.plano header{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:6px}.plano h4{margin:0;font-size:15px}.plano header span{color:var(--tenue);font-size:12px}.dibujo svg{width:100%;height:auto;display:block}.dos-columnas{display:grid;grid-template-columns:1fr 1fr;gap:16px}.pie{color:var(--tenue);font-size:12px;text-align:center;margin:24px 0}.solo-imprimir{display:none}@media(max-width:900px){.carga,.parametros,.dos-columnas{grid-template-columns:1fr}.kpis{grid-template-columns:repeat(2,1fr)}.planos{grid-template-columns:1fr}}@media print{@page{size:A4 landscape;margin:10mm}:root,body{background:#fff;font-size:11px}.app{max-width:none;padding:0}.no-imprimir,.bloque:has(.tabla.piezas){display:none!important}.solo-imprimir{display:block;font-weight:600;margin-bottom:6px}.bloque{border:none;padding:0;margin:0}.cabecera{margin-bottom:6px}.kpis{grid-template-columns:repeat(6,1fr)}.planos{display:block}.plano{break-before:page;break-inside:avoid;border:none;padding:0}.plano .dibujo svg{max-height:150mm;width:auto;max-width:100%;margin:0 auto}.consumos{break-before:page}.tabla-scroll{max-height:none;overflow:visible}.tabla th{position:static}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
