:root { --primario: #2F6C9F; --borde: #D9D2C5; --fondo: #F6F4EF; --texto: #2F3A45; --suave: #5B6772; }
* { box-sizing: border-box; }
body { margin: 0; font-family: "Segoe UI", Verdana, sans-serif; background: var(--fondo); color: var(--texto); font-size: 15px; }
.barra { display: flex; align-items: center; gap: 1.5rem; padding: 0.7rem 1.5rem; background: #fff; border-bottom: 1px solid var(--borde); flex-wrap: wrap; }
.barra nav { display: flex; gap: 1rem; flex: 1; }
.barra nav a { color: var(--suave); text-decoration: none; padding: 0.3rem 0.6rem; border-radius: 6px; }
.barra nav a.activa { background: #E7F1FB; color: var(--primario); font-weight: 600; }
.usuario { color: var(--suave); }
.contenido { max-width: 1200px; margin: 0 auto; padding: 1rem 1.5rem 3rem; }
h1 { font-size: 1.5rem; } h2 { font-size: 1.15rem; margin-top: 2rem; }
.ayuda { color: var(--suave); }
.flash { background: #E5F4E4; border: 1px solid #9CCB9A; padding: 0.6rem 1rem; border-radius: 6px; }
.error { color: #9B2C2C; }

.tarjeta { background: #fff; border: 1px solid var(--borde); border-radius: 10px; padding: 1rem; }
.formulario { display: grid; gap: 0.8rem; max-width: 640px; }
.formulario.angosto { max-width: 360px; }
.formulario.en-linea { display: flex; flex-wrap: wrap; gap: 0.8rem; align-items: end; max-width: none; margin: 0.4rem 0; }
.formulario label { display: grid; gap: 0.25rem; font-weight: 600; }
.formulario label.check { display: flex; gap: 0.4rem; align-items: center; font-weight: normal; }
input, select, textarea { font: inherit; padding: 0.45rem 0.55rem; border: 1px solid var(--borde); border-radius: 6px; background: #fff; }
.mono, textarea.mono { font-family: Consolas, monospace; font-size: 0.9em; }
fieldset.rutas { border: 0; padding: 0; display: flex; gap: 1rem; } fieldset.rutas legend { font-weight: 600; }

.boton { display: inline-block; background: var(--primario); color: #fff; border: 1px solid var(--primario); border-radius: 6px; padding: 0.4rem 0.8rem; text-decoration: none; cursor: pointer; font: inherit; }
.boton.secundario { background: #fff; color: var(--primario); }
.boton.peligro { background: #fff; color: #9B2C2C; border-color: #9B2C2C; }

.tabla { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid var(--borde); }
.tabla.angosta { width: auto; }
.tabla th, .tabla td { padding: 0.5rem 0.6rem; border-bottom: 1px solid #ECE7DD; text-align: left; vertical-align: middle; }
.tabla th { background: #FAF8F4; font-size: 0.85em; color: var(--suave); }
.tabla tr.inactivo td { color: #A0A7AE; }
.acciones { display: flex; gap: 0.4rem; flex-wrap: wrap; } .acciones form { margin: 0; }
.codigo .simbolo { font-size: 1.4em; margin-right: 2px; }
.miniatura { width: 64px; height: 64px; object-fit: contain; border: 1px solid var(--borde); border-radius: 6px; background: #fff; }
.pendiente { font-size: 0.8em; color: #8A6100; }
td.prompt textarea { width: 100%; min-width: 260px; font-size: 0.8em; }

.indicadores { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem; margin: 1rem 0; }
.indicador { display: flex; flex-direction: column; gap: 0.2rem; }
.indicador .valor { font-size: 1.8rem; font-weight: 700; color: var(--primario); }
.indicador .nombre { font-weight: 600; } .indicador .detalle { color: var(--suave); font-size: 0.85em; }
.graficas { display: flex; flex-wrap: wrap; gap: 1rem; }
.grafica { background: #fff; border: 1px solid var(--borde); border-radius: 10px; padding: 0.6rem; margin: 0; width: 480px; max-width: 100%; }
.grafica figcaption { font-size: 0.85em; color: var(--suave); margin-bottom: 0.3rem; }
.grafica .eje { stroke: #C9C2B5; } .grafica .serie { fill: none; stroke: var(--primario); stroke-width: 2.5; }
.grafica .punto { fill: var(--primario); } .grafica .rotulo { font-size: 11px; fill: var(--suave); }
.observaciones { list-style: none; padding: 0; } .observaciones li { background: #fff; border: 1px solid var(--borde); border-radius: 8px; padding: 0.6rem; margin: 0.5rem 0; }
.observaciones .fecha { display: block; font-size: 0.8em; color: var(--suave); }
