:root{--bg:#0b2735;--bg-alt:#0e3145;--card:#123a52;--card-2:#0f3145;--teal:#17807e;--teal-bright:#2ea6a1;--menta:#a7dad4;--carbon:#2c393f;--crema:#f4f1ea;--blanco:#fff;--tenue:#9fb2bd;--borde:hsla(0,0%,100%,.12);--exito:#2fb37a;--peligro:#f0756a;--radio:14px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--crema);background:var(--bg);line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--menta);text-decoration:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--teal);color:var(--blanco);border:2px solid transparent;padding:10px 18px;border-radius:999px;font-weight:700;font-size:14px;cursor:pointer;transition:background .15s ease,transform .08s ease;white-space:nowrap}.btn:hover:not(:disabled){background:#159b97;transform:translateY(-1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-sec{background:transparent;color:var(--menta);border-color:var(--menta)}.btn-sec:hover:not(:disabled){background:rgba(167,218,212,.12)}.btn-sm{padding:6px 12px;font-size:13px}input,select,textarea{width:100%;background:var(--bg-alt);color:var(--crema);border:1px solid var(--borde);border-radius:10px;padding:10px 12px;font-size:14px;font-family:inherit}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--teal-bright)}label{display:block;font-size:13px;color:var(--tenue);font-weight:600;margin-bottom:6px}.card{background:var(--card);border:1px solid var(--borde);border-radius:var(--radio);padding:22px}.alerta{border-radius:10px;padding:10px 14px;font-size:14px;font-weight:600}.alerta.error{background:hsla(5,82%,68%,.14);color:#f6a79f;border:1px solid hsla(5,82%,68%,.3)}.alerta.ok{background:rgba(47,179,122,.14);color:#8fe0b8;border:1px solid rgba(47,179,122,.3)}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}.login-box{width:100%;max-width:380px;display:grid;grid-gap:18px;gap:18px}.login-box .marca{text-align:center}.login-box .marca .logo{font-weight:800;font-size:28px;letter-spacing:-.5px}.login-box .marca .logo span{color:var(--menta)}.login-box .marca .sub{color:var(--tenue);font-size:14px;margin-top:4px}.form-grid{display:grid;grid-gap:14px;gap:14px}.shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.side{background:var(--card-2);border-right:1px solid var(--borde);padding:22px 16px;display:flex;flex-direction:column;gap:6px;position:-webkit-sticky;position:sticky;top:0;height:100vh}.side .logo{font-weight:800;font-size:20px;letter-spacing:-.5px;padding:0 10px 16px}.side .logo span{color:var(--menta)}.side nav{display:grid;grid-gap:4px;gap:4px}.side nav a{color:var(--crema);font-size:14px;font-weight:600;padding:10px 12px;border-radius:10px}.side nav a:hover{background:hsla(0,0%,100%,.06)}.side nav a.activo{background:var(--teal);color:var(--blanco)}.side .pie{margin-top:auto;display:grid;grid-gap:8px;gap:8px}.side .pie .quien{font-size:12px;color:var(--tenue);padding:0 10px}.main{padding:28px 32px;max-width:1100px;width:100%}.main h1{font-size:26px;font-weight:800;letter-spacing:-.5px;margin-bottom:4px}.main .lead{color:var(--tenue);font-size:15px;margin-bottom:24px}.tabla{width:100%;border-collapse:collapse;font-size:14px}.tabla td,.tabla th{text-align:left;padding:10px 12px;border-bottom:1px solid var(--borde)}.tabla th{color:var(--tenue);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.4px}.tabla tr:hover td{background:hsla(0,0%,100%,.03)}.tabla td .desc{color:var(--tenue);font-size:12px;margin-top:2px}.pill{display:inline-block;background:rgba(23,128,126,.22);color:var(--menta);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700}.mono{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.toolbar{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin-bottom:20px}.toolbar .campo{display:grid;grid-gap:0;gap:0}.cargando{color:var(--tenue);padding:24px 0}.codigos-lista{display:grid;grid-gap:8px;gap:8px;margin-top:16px}.codigo-item{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--bg-alt);border:1px solid var(--borde);border-radius:10px;padding:10px 14px}.codigo-item .cod{font-family:ui-monospace,monospace;font-size:18px;font-weight:700;letter-spacing:2px}@media (max-width:760px){.shell{grid-template-columns:1fr}.side{position:static;height:auto;flex-direction:column}.main{padding:20px 16px}}