:root{--verde: #0b6b3a;--fondo: #f5f7f6;--panel: #ffffff;--borde: #d8e0da;--texto: #1a2620;--mute: #6b7671;--rojo: #c0392b;--ambar: #b9770e}*{box-sizing:border-box;margin:0;padding:0}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--fondo);color:var(--texto);font-size:15px;font-variant-numeric:tabular-nums}button{font:inherit;cursor:pointer}.barra{background:var(--verde);color:#fff;padding:10px 20px;display:flex;align-items:center;gap:20px}.barra h1{font-size:17px;font-weight:700}.barra nav{display:flex;gap:4px;margin-left:12px}.barra nav button{background:transparent;color:#ffffffbf;border:0;padding:8px 14px;border-radius:6px;font-weight:600}.barra nav button.act{background:#ffffff2e;color:#fff}.barra .sp{flex:1}.barra .salir{background:#ffffff26;color:#fff;border:0;border-radius:6px;padding:7px 12px}.cont{max-width:1200px;margin:0 auto;padding:20px}.cont>*+*{margin-top:16px}.filtros{display:flex;gap:10px;flex-wrap:wrap;align-items:end}.filtros .sp{flex:1}nav.sub{display:flex;gap:4px;background:#eef3f0;border-radius:8px;padding:3px}nav.sub button{background:transparent;border:0;padding:7px 12px;border-radius:6px;font-weight:600;color:var(--mute)}nav.sub button.act{background:#fff;color:var(--verde);box-shadow:0 1px 2px #0000001a}button.mini{background:#eef3f0;border:1px solid var(--borde);border-radius:6px;padding:3px 8px;font-size:12px;font-weight:600}button.mini.peligro{background:#fdecea;color:var(--rojo);border-color:#f5c6c0}.campo,select{min-height:38px;border:1px solid var(--borde);border-radius:8px;padding:0 10px;font-size:15px;background:#fff}label{display:block;font-size:12px;font-weight:600;color:var(--mute);margin-bottom:4px;text-transform:uppercase;letter-spacing:.03em}.tabla-wrap{background:var(--panel);border:1px solid var(--borde);border-radius:10px;overflow:auto}table{width:100%;border-collapse:collapse;font-size:14px}th,td{padding:9px 12px;text-align:left;white-space:nowrap}th{background:#eef3f0;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--mute);position:sticky;top:0}th.num{text-align:right}tbody tr{border-top:1px solid var(--borde)}tbody tr:hover{background:#f0f5f2;cursor:pointer}td.num{text-align:right;font-weight:600}tfoot td{background:#eef3f0;font-weight:800;border-top:2px solid var(--borde)}tfoot td.num{text-align:right}.disp-strip{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:baseline;padding:4px 0;font-size:15px}.disp-strip span{font-weight:700}.disp-strip i{font-style:normal;font-weight:600;color:var(--mute);text-transform:uppercase;font-size:11px;letter-spacing:.04em;margin-right:4px}.disp-strip .tot{margin-left:auto;font-size:17px}td.neg{color:var(--rojo)}.pill{display:inline-block;padding:1px 8px;border-radius:999px;font-size:12px;font-weight:700}.pill.PENDIENTE{background:#eef1f0;color:var(--mute)}.pill.ABIERTO{background:#fef5e7;color:var(--ambar)}.pill.CERRADO{background:#e7f5ec;color:var(--verde)}.tarjetas{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.kpi{background:var(--panel);border:1px solid var(--borde);border-radius:10px;padding:14px 16px}.kpi .n{font-size:26px;font-weight:800}.kpi .t{font-size:12px;color:var(--mute);text-transform:uppercase;letter-spacing:.04em}.fondo-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;padding:24px}.modal{background:#fff;border-radius:12px;padding:20px;max-width:640px;width:100%;max-height:86vh;overflow:auto}.modal.ancho{max-width:900px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}h3.tt,.grid2 h3.tt{font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--mute);margin-bottom:6px}@media(max-width:900px){.grid2{grid-template-columns:1fr}}.modal>*+*{margin-top:12px}.modal h2{font-size:18px}.btn{background:var(--verde);color:#fff;border:0;border-radius:8px;padding:10px 16px;font-weight:600}.btn.sec{background:#fff;color:var(--verde);border:2px solid var(--verde)}.btn.peligro{background:var(--rojo)}.aviso{border-radius:8px;padding:10px 12px}.aviso.error{background:#fdecea;color:var(--rojo)}.login{max-width:340px;margin:12vh auto;background:#fff;border:1px solid var(--borde);border-radius:12px;padding:24px}.login>*+*{margin-top:12px}.login input{width:100%}.mute{color:var(--mute)}
