:root{--azul:#283169;--azul2:#3b468f;--azul-claro:#e9ebf5;--fondo:#f5f6f9;--blanco:#fff;--texto:#1d2033;--gris:#6b7085;--linea:#e1e3ea;--verde:#1f8a4c;--verde-claro:#e3f4ea;--rojo:#c0392b;--rojo-claro:#fbe9e7;--ambar:#b7791f;--ambar-claro:#fdf3dc;--morado:#6b4fa0}*{box-sizing:border-box}[hidden]{display:none!important}body{color:var(--texto);background:var(--fondo);margin:0;font:14px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--azul2)}.app{grid-template-columns:220px 1fr;min-height:100vh;display:grid}aside{background:var(--azul);color:#fff;flex-direction:column;height:100vh;padding:18px 12px;display:flex;position:sticky;top:0}aside .logo{text-align:center;background:#fff;border-radius:8px;margin-bottom:18px;padding:8px 10px}aside .logo img{max-width:150px;margin:0 auto;display:block}aside nav button{text-align:left;color:#cfd3ee;cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:space-between;align-items:center;width:100%;margin-bottom:2px;padding:9px 12px;display:flex}aside nav button:hover{color:#fff;background:#ffffff14}aside nav button.activo{color:#fff;background:#ffffff29;font-weight:600}aside nav .num{color:var(--azul);background:#fff;border-radius:10px;padding:0 7px;font-size:12px;font-weight:700}aside .usuario{color:#cfd3ee;margin-top:auto;font-size:12px}aside .usuario select{width:100%;color:var(--texto);background:#fff;border:0;border-radius:6px;margin-top:4px;padding:6px}main{min-width:0;padding:20px 28px 60px}header.barra{align-items:center;gap:16px;margin-bottom:18px;display:flex}header.barra h1{flex:1;margin:0;font-size:22px}.buscar{width:340px;position:relative}.buscar input{border:1px solid var(--linea);background:#fff;border-radius:8px;width:100%;padding:9px 12px}.resultados{border:1px solid var(--linea);z-index:20;background:#fff;border-radius:8px;max-height:360px;position:absolute;top:40px;left:0;right:0;overflow:auto;box-shadow:0 8px 24px #0000001f}.resultados div{cursor:pointer;border-bottom:1px solid var(--fondo);padding:8px 12px}.resultados div:hover{background:var(--azul-claro)}.resultados small{color:var(--gris)}.hoy{color:var(--gris);white-space:nowrap;font-size:13px}.tarjetas{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:20px;display:grid}.tarjeta{border:1px solid var(--linea);cursor:pointer;background:#fff;border-radius:10px;padding:14px 16px;transition:border-color .15s}.tarjeta:hover,.tarjeta.activo{border-color:var(--azul2);box-shadow:0 0 0 2px var(--azul-claro)}.tarjeta .n{color:var(--azul);font-size:28px;font-weight:700}.tarjeta .n.rojo{color:var(--rojo)}.tarjeta .t{color:var(--gris);font-size:13px}.caja{border:1px solid var(--linea);background:#fff;border-radius:10px;margin-bottom:16px;padding:16px 18px;overflow-x:auto}.caja h2{flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 12px;font-size:15px;display:flex}.caja h2 .der{margin-left:auto;font-weight:400}.rejilla{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.rejilla3{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}table{border-collapse:collapse;width:100%}th{text-align:left;color:var(--gris);text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--linea);vertical-align:bottom;padding:6px 8px;font-size:12px;font-weight:600}td{border-bottom:1px solid var(--fondo);vertical-align:top;padding:8px}tr.click{cursor:pointer}tr.grupo td{background:var(--fondo);color:var(--azul);padding:6px 8px;font-weight:600}tr.click:hover td{background:var(--azul-claro)}td.num,th.num{text-align:right;white-space:nowrap}.chip{background:var(--azul-claro);color:var(--azul);white-space:nowrap;border-radius:10px;padding:1px 9px;font-size:12px;font-weight:600;display:inline-block}.chip.verde{background:var(--verde-claro);color:var(--verde)}.chip.rojo{background:var(--rojo-claro);color:var(--rojo)}.chip.ambar{background:var(--ambar-claro);color:var(--ambar)}.chip.gris{color:var(--gris);background:#eceef2}.chip.morado{color:var(--morado);background:#efe9f8}.dias{gap:6px;margin-bottom:12px;padding:2px;display:flex;overflow-x:auto}.dias button{border:1px solid var(--linea);cursor:pointer;color:var(--texto);background:#fff;border-radius:10px}.dias .dia{flex-direction:column;flex:1 0 86px;align-items:center;gap:1px;padding:8px 6px;display:flex}.dias .dia .t{font-size:13px;font-weight:600}.dias .dia .f{color:var(--gris);white-space:nowrap;font-size:12px}.dias .dia .c{color:var(--gris);white-space:nowrap;margin-top:3px;font-size:12px}.dias .dia .c.hay{color:var(--azul);font-weight:600}.dias .dia.es-hoy .t{color:var(--azul)}.dias .dia.activo{border-color:var(--azul);box-shadow:0 0 0 2px var(--azul-claro)}.dias .flecha{color:var(--gris);flex:none;padding:0 10px;font-size:16px}.filtros{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.filtros button{border:1px solid var(--linea);cursor:pointer;background:#fff;border-radius:16px;padding:4px 12px;font-size:13px}.filtros button.activo{background:var(--azul);border-color:var(--azul);color:#fff}.btn{background:var(--azul);color:#fff;cursor:pointer;white-space:nowrap;border:0;border-radius:7px;padding:8px 14px;font-weight:600}.folio{white-space:nowrap}.btn:hover{background:var(--azul2)}.btn.sec{color:var(--azul);border:1px solid var(--linea);background:#fff}.btn.sec:hover{border-color:var(--azul2)}.btn.rojo{color:var(--rojo);background:#fff;border:1px solid #f0c9c4}.btn.chico{padding:4px 10px;font-size:13px}.btn:disabled{opacity:.45;cursor:default}.campos{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px 16px;display:grid}.campo label{color:var(--gris);margin-bottom:3px;font-size:12px;display:block}.campo input,.campo select,.campo textarea{border:1px solid var(--linea);background:#fff;border-radius:7px;width:100%;padding:8px 10px}.campo input:focus,.campo select:focus{outline:2px solid var(--azul-claro);border-color:var(--azul2)}.campo.ancho{grid-column:span 2}.dato{margin-bottom:8px}.dato .e{color:var(--gris);font-size:12px}.dato .v{font-weight:600}.aviso{border-radius:8px;margin:8px 0;padding:9px 12px;font-size:13px}.aviso.rojo{background:var(--rojo-claro);color:#8f2a20}.aviso.ambar{background:var(--ambar-claro);color:#7a5214}.aviso.verde{background:var(--verde-claro);color:#17663a}.aviso.azul{background:var(--azul-claro);color:var(--azul)}.pasos{gap:0;margin:6px 0 4px;display:flex;overflow-x:auto}.paso{text-align:center;min-width:92px;color:var(--gris);flex:1;padding-top:26px;font-size:12px;position:relative}.paso:before{content:"";background:var(--linea);height:3px;position:absolute;top:9px;left:0;right:0}.paso:first-child:before{left:50%}.paso:last-child:before{right:50%}.paso .p{border:3px solid var(--linea);z-index:1;background:#fff;border-radius:50%;width:18px;height:18px;margin-left:-9px;position:absolute;top:2px;left:50%}.paso.hecho .p{background:var(--azul);border-color:var(--azul)}.paso.hecho:before{background:var(--azul)}.paso.actual .p{border-color:var(--azul);box-shadow:0 0 0 4px var(--azul-claro);background:#fff}.paso.actual{color:var(--azul);font-weight:700}.paso.hecho{color:var(--texto)}.pestanas{border-bottom:1px solid var(--linea);gap:4px;margin-bottom:14px;display:flex}.pestanas button{cursor:pointer;color:var(--gris);background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 14px}.pestanas button.activo{color:var(--azul);border-color:var(--azul);font-weight:600}.suelta{text-align:center;color:var(--gris);cursor:pointer;background:#fafbfd;border:2px dashed #c5c9da;border-radius:10px;padding:26px;display:block}.suelta.encima{border-color:var(--azul2);background:var(--azul-claro)}.ok{color:var(--verde);font-weight:700}.mal{color:var(--rojo);font-weight:700}.muted{color:var(--gris)}.fila{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.estrellas button{cursor:pointer;color:#d4d6de;background:0 0;border:0;padding:0 1px;font-size:20px}.estrella{cursor:pointer;color:#d4d6de;background:0 0;border:0;padding:0;font-size:18px;line-height:1}.estrella.si,.estrellas button.si{color:#e2a400}#toast{background:var(--texto);color:#fff;z-index:50;border-radius:8px;padding:10px 18px;transition:transform .25s;position:fixed;bottom:20px;left:50%;transform:translate(-50%)translateY(80px)}#toast.ver{transform:translate(-50%)translateY(0)}.modal{z-index:40;background:#14162873;justify-content:center;align-items:flex-start;padding:30px;display:flex;position:fixed;inset:0;overflow:auto}.modal .hoja{background:#fff;border-radius:10px;width:820px;max-width:100%;padding:26px 30px}@media (width<=900px){.app{grid-template-columns:1fr}aside{height:auto;position:static}.rejilla,.rejilla3{grid-template-columns:minmax(0,1fr)}.caja{overflow-x:auto}.buscar{width:100%}header.barra{flex-wrap:wrap}main{padding:16px}}aside .usuario .quien{color:#fff;font-size:14px;font-weight:600}aside .usuario button{color:#cfd3ee;cursor:pointer;background:0 0;border:1px solid #ffffff4d;border-radius:6px;margin-top:8px;padding:4px 10px}aside .usuario button:hover{color:#fff;border-color:#fff}.entrar{justify-content:center;align-items:center;min-height:100vh;padding:16px;display:flex}.entrar form{border:1px solid var(--linea);background:#fff;border-radius:12px;gap:14px;width:360px;max-width:100%;padding:28px 30px;display:grid}.entrar img{width:170px;margin:0 auto 6px;display:block}.entrar .liga{color:var(--azul2);cursor:pointer;background:0 0;border:0;justify-self:start;padding:0}.filtro{border:1px solid var(--linea);border-radius:7px;width:260px;max-width:100%;padding:7px 10px}.registro h3{letter-spacing:.06em;color:var(--azul);border-bottom:2px solid var(--azul);margin:16px 0 8px;padding-bottom:3px;font-size:12px}.registro .enc{border-bottom:1px solid var(--linea);grid-template-columns:170px 1fr 210px;align-items:center;gap:12px;padding-bottom:10px;display:grid}.registro .enc .tit{text-align:center;letter-spacing:.04em;font-size:20px;font-weight:800}.registro .enc .der{text-align:right;font-size:13px}.registro td,.registro th{border:1px solid var(--linea);padding:5px 8px}.registro .pie{color:var(--gris);justify-content:space-between;margin-top:18px;font-size:11px;display:flex}@media print{body *{visibility:hidden}.modal,.modal *{visibility:visible}.modal{background:0 0;padding:0;position:absolute;inset:0}.modal .hoja{width:100%;padding:0}.no-imprimir{display:none!important}}.mini{object-fit:cover;border:1px solid var(--linea);cursor:pointer;border-radius:6px;width:56px;height:56px;display:block}.mini.pdf{background:var(--rojo-claro);color:var(--rojo);font-size:12px;font-weight:700}label.btn.apagado{opacity:.45;pointer-events:none}
