:root{--azul:#185fa5;--azul-oscuro:#0c447c;--azul-claro:#e6f1fb;--rojo:#a32d2d;--rojo-claro:#fcebeb;--verde:#0f6e56;--verde-claro:#e1f5ee;--ambar:#854f0b;--ambar-claro:#faeeda;--texto:#1a1a1a;--texto-suave:#666;--borde:#e2e2e2;--fondo:#f5f6f8;--blanco:#fff}*{box-sizing:border-box}body{background:var(--fondo);color:var(--texto);-webkit-font-smoothing:antialiased;margin:0;font-family:system-ui,-apple-system,sans-serif}input{font-family:inherit;font-size:15px}button{cursor:pointer;font-family:inherit}.login-wrap{justify-content:center;align-items:center;min-height:100vh;padding:16px;display:flex}.login-card{background:var(--blanco);border:.5px solid var(--borde);border-radius:16px;width:100%;max-width:360px;padding:32px 24px}.login-head{flex-direction:column;align-items:center;margin-bottom:28px;display:flex}.login-logo{background:var(--azul);border-radius:14px;justify-content:center;align-items:center;width:56px;height:56px;margin-bottom:12px;display:flex}.login-title{margin:0;font-size:24px;font-weight:600}.login-sub{color:var(--texto-suave);margin:4px 0 0;font-size:13px}.lab{color:var(--texto-suave);margin:16px 0 4px;font-size:13px;font-weight:500;display:block}.inp{border:.5px solid var(--borde);box-sizing:border-box;background:#fff;border-radius:8px;width:100%;height:44px;padding:0 12px;font-size:15px}.btn{background:var(--azul);color:#fff;cursor:pointer;border:none;border-radius:8px;width:100%;height:46px;font-size:15px;font-weight:500}.err{color:var(--rojo);margin:14px 0 0;font-size:14px}.hint{color:var(--texto-suave);margin:4px 0 0;font-size:12px}.ok{color:var(--verde);margin:14px 0 0;font-size:14px}.carga{min-height:100vh;color:var(--texto-suave);justify-content:center;align-items:center;display:flex}.dash{min-height:100vh}.header{background:var(--azul);justify-content:space-between;align-items:center;height:60px;padding:0 20px;display:flex}.brand{color:#fff;align-items:center;gap:10px;font-size:17px;font-weight:600;display:flex}.logout{color:#fff;cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;font-size:14px;display:flex}.tabs{background:var(--blanco);border-bottom:.5px solid var(--borde);gap:4px;padding:0 16px;display:flex;overflow-x:auto}.tab{color:var(--texto-suave);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;padding:14px 16px;font-size:14px}.tab.activa{color:var(--azul);border-bottom-color:var(--azul);font-weight:600}.contenido{max-width:960px;margin:20px auto;padding:0 16px}.panel{background:var(--blanco);border:.5px solid var(--borde);border-radius:12px;padding:16px}.panel h2{margin:0 0 16px;font-size:17px;font-weight:600}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;border-bottom:.5px solid var(--borde);padding:10px 12px}th{color:var(--texto-suave);font-size:12px;font-weight:600}tbody tr:last-child td{border-bottom:none}.badge{border-radius:20px;padding:3px 10px;font-size:12px;font-weight:500;display:inline-block}.badge.verde{background:var(--verde-claro);color:var(--verde)}.badge.ambar{background:var(--ambar-claro);color:var(--ambar)}.badge.rojo{background:var(--rojo-claro);color:var(--rojo)}.badge.gris{color:var(--texto-suave);background:#f1f5f9}.vacio{color:var(--texto-suave);text-align:center;margin:0;padding:30px 0}.panel-head{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.panel-head h2{margin:0;font-size:17px;font-weight:600}.btn-sm{width:auto;height:38px;padding:0 16px}.btn-peligro{background:var(--rojo)}.link{color:var(--azul);font-weight:500;text-decoration:none}.link:hover{text-decoration:underline}.info-box{border:.5px solid var(--borde);background:#f8fafc;border-radius:8px;margin-bottom:14px;padding:10px 12px}.info-box .hint{margin:2px 0}code{background:#eef2f7;border-radius:4px;padding:1px 6px;font-family:monospace;font-size:12px}.modal-fondo{z-index:60;background:#0006;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal-caja{background:var(--blanco);border-radius:16px 16px 0 0;width:100%;max-width:480px;max-height:90vh;padding:20px;overflow-y:auto}.modal-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.modal-head h3{margin:0;font-size:17px;font-weight:600}.modal-x{color:var(--texto-suave);cursor:pointer;background:0 0;border:none;font-size:24px;line-height:1}@media (width>=640px){.modal-fondo{align-items:center}.modal-caja{border-radius:16px;margin:20px}}
