:root{--fondo:#f7f7f9;--superficie:#fff;--texto:#1c1c1e;--secundario:#8e8e93;--separador:#f2f2f7;--verde:#34c759;--rojo:#ff3b30;--azul:#007aff;--ambar:#ff9500;--radio:14px;--sombra:0 1px 3px #0000001a, 0 4px 12px #0000000d}*{box-sizing:border-box}body{background:var(--fondo);color:var(--texto);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px}.positivo{color:var(--verde);font-weight:650}.negativo{color:var(--rojo);font-weight:650}.login{background:var(--superficie);border-radius:var(--radio);max-width:320px;box-shadow:var(--sombra);flex-direction:column;gap:12px;margin:15vh auto;padding:28px 24px;display:flex}.login input{background:var(--separador);border:none;border-radius:10px;padding:10px 12px;font-size:15px}.login button{background:var(--azul);color:#fff;border:none;border-radius:10px;padding:11px;font-size:15px;font-weight:600}.error{color:var(--rojo);margin:0;font-size:13px}.tabla-scroll{background:var(--superficie);border-radius:var(--radio);box-shadow:var(--sombra);overflow-x:auto}.tabla{border-collapse:collapse;white-space:nowrap;width:100%}.tabla th{background:var(--superficie);text-align:right;text-transform:uppercase;letter-spacing:.3px;color:var(--secundario);border-bottom:1px solid var(--separador);padding:10px 12px;font-size:11px;font-weight:600;position:sticky;top:0}.tabla td{text-align:right;border-bottom:1px solid var(--separador);padding:9px 12px}.tabla .simbolo{text-align:left;font-weight:650}.tabla .heredado{color:var(--secundario)}.tabla .editable{background:#007aff0a}.tabla .manual{position:relative}.tabla .manual:after{content:"";background:var(--ambar);border-radius:50%;width:5px;height:5px;position:absolute;top:6px;right:3px}.tabla tr.incompleta{background:#8e8e930b}.tabla tr.incompleta .simbolo{color:var(--secundario)}.celda-editable{font:inherit;color:inherit;cursor:text;background:0 0;border:none;padding:0}.celda-editable:hover{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.pastilla{background:var(--separador);color:var(--secundario);border-radius:9px;padding:2px 8px;font-size:10px;font-weight:600}.pastilla.abierta{color:#28a745;background:#e8f6ec}.pastilla.asignada{color:#c77700;background:#fff4e5}.barra{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 4px;display:flex}.filtros button{background:var(--separador);border:none;border-radius:999px;padding:6px 13px;font-size:13px}.filtros button.activo{background:var(--azul);color:#fff}.descargar{color:var(--azul);font-size:13px;text-decoration:none}.totales{color:var(--secundario);flex-wrap:wrap;align-items:baseline;gap:16px;padding:0 4px 12px;display:flex}.totales strong{font-size:18px}.totales .aviso{color:var(--ambar);font-size:12px}.solo-movil{display:none}@media (width<=820px){.solo-escritorio{display:none}.solo-movil{display:block}}.tarjetas{flex-direction:column;gap:9px;margin:0;padding:0;list-style:none;display:flex}.tarjeta{background:var(--superficie);border-radius:var(--radio);box-shadow:var(--sombra);padding:12px 13px}.tarjeta.incompleta{background:#8e8e930b}.tarjeta-fila{justify-content:space-between;align-items:baseline;display:flex}.tarjeta-fila.secundaria{color:var(--secundario);margin-top:3px;font-size:11.5px}.tarjeta-simbolo{letter-spacing:-.2px;font-size:16px;font-weight:700}.tarjeta-beneficio{font-size:17px;font-weight:700}.tarjeta-barra{background:var(--separador);border-radius:3px;height:5px;margin-top:9px;overflow:hidden}.tarjeta-barra>i{border-radius:3px;height:100%;display:block}.tarjeta-barra.sin-datos{background-color:var(--separador);background-image:repeating-linear-gradient(135deg,#8e8e9359 0 3px,#0000 3px 6px)}.pastilla.aviso{color:#c77700;background:#fff4e5}.panel{background:var(--superficie);border-radius:var(--radio);box-shadow:var(--sombra);flex-direction:column;gap:10px;margin-bottom:14px;padding:14px;display:flex}.panel-estado{align-items:center;gap:8px;display:flex}.punto{border-radius:50%;width:9px;height:9px}.punto.verde{background:var(--verde)}.punto.rojo{background:var(--rojo)}.panel-accion{background:var(--separador);color:var(--azul);border:none;border-radius:10px;align-self:flex-start;padding:8px 14px;font-size:13px;text-decoration:none}.panel-accion.primaria{background:var(--azul);color:#fff;font-weight:600}.panel-resultado{color:var(--secundario);margin:0;font-size:12.5px}.panel-aviso{color:var(--ambar);margin:0;font-size:12.5px;font-weight:600}
