:root{--fondo:#f6f3ee;--panel:#fff;--texto:#1f2933;--suave:#5b6573;--borde:#e4e1da;--acento:#0e7f7b;--acento-2:#e3f4f3;--marca:#14325c;--turquesa:#12a5a0;--coral:#f06a4d;
--peligro:#b42318;--peligro-2:#fdecea;--aviso:#9a6700;--aviso-2:#fff6db;--ok:#1a7f37;--ok-2:#e6f4ea;--radio:10px}
*{box-sizing:border-box}
body{margin:0;font:15px/1.5 "Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--texto);background:var(--fondo)}
a{color:var(--acento)}
.marco{display:grid;grid-template-columns:230px 1fr;min-height:100vh}
nav.lateral{background:var(--marca);color:#dbe4f0;padding:18px 14px;display:flex;flex-direction:column;gap:2px}
nav.lateral .marca{font-weight:700;font-size:17px;color:#fff;margin:0 8px 2px}
nav.lateral .emp{font-size:12.5px;color:#a9bad3;margin:0 8px 16px}
nav.lateral a{color:#dbe4f0;text-decoration:none;padding:8px 10px;border-radius:8px;font-size:14.5px}
nav.lateral a:hover{background:#1e4475;color:#fff}nav.lateral a.activo{background:#1e4475;color:#fff;box-shadow:inset 3px 0 0 var(--turquesa)}
nav.lateral .grupo{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#8ea3c2;margin:14px 10px 4px}
nav.lateral .pie{margin-top:auto;font-size:13px;padding:10px;color:#a9bad3}
nav.lateral .pie button{background:none;border:0;color:#dbe4f0;padding:0;cursor:pointer;font:inherit;text-decoration:underline}
main{padding:26px 32px 60px;max-width:1240px;width:100%;min-width:0}
h1{font-size:24px;margin:0 0 4px}h2{font-size:18px;margin:28px 0 10px}h3{font-size:15.5px;margin:18px 0 8px}
.sub{color:var(--suave);margin:0 0 20px}
.tarjetas{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin:16px 0}
.tarjeta{background:var(--panel);border:1px solid var(--borde);border-radius:var(--radio);padding:14px 16px}
.tarjeta .num{font-size:24px;font-weight:700;font-variant-numeric:tabular-nums}
.tarjeta .eti{color:var(--suave);font-size:13px}
.panel{background:var(--panel);border:1px solid var(--borde);border-radius:var(--radio);padding:18px 20px;margin:14px 0}
table{width:100%;border-collapse:collapse;background:var(--panel);font-size:14px}
.tabla{border:1px solid var(--borde);border-radius:var(--radio);overflow:auto}
th,td{padding:9px 12px;border-bottom:1px solid var(--borde);text-align:left;vertical-align:top}
th{background:#f3f1ec;font-weight:600;font-size:12.5px;color:var(--suave);white-space:nowrap}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
tr.total td{font-weight:700;background:#faf8f4}
tbody tr:hover{background:#fbfaf7}
form.fila{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}
label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--suave);font-weight:500}
label.check{flex-direction:row;align-items:center;gap:8px;color:var(--texto);font-size:14px}
input,select,textarea{font:inherit;padding:8px 10px;border:1px solid #cfd4db;border-radius:8px;background:#fff;color:var(--texto);min-width:0}
input:focus,select:focus,textarea:focus{outline:2px solid #8fd6d3;border-color:var(--acento)}
.rejilla{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px 16px}
button,.boton{font:inherit;font-weight:600;padding:9px 16px;border-radius:8px;border:1px solid var(--acento);background:var(--acento);color:#fff;cursor:pointer;text-decoration:none;display:inline-block;white-space:nowrap}
button.sec,.boton.sec{background:#fff;color:var(--acento)}
button:disabled{opacity:.45;cursor:not-allowed}
button.peligro{background:var(--peligro);border-color:var(--peligro)}
button.mini,.boton.mini{padding:4px 10px;font-size:13px;font-weight:500}
.acciones{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:14px 0}
.aviso{padding:11px 14px;border-radius:8px;margin:10px 0;font-size:14px}
.aviso.aviso{background:var(--aviso-2);color:var(--aviso)}
.aviso.ok{background:var(--ok-2);color:var(--ok)}.aviso.error{background:var(--peligro-2);color:var(--peligro)}.aviso.info{background:var(--acento-2);color:var(--acento)}
.etq{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:600;background:#eef0ee;color:var(--suave)}
.etq.borrador{background:#eef0ee}.etq.calculada{background:var(--aviso-2);color:var(--aviso)}
.etq.aprobada,.etq.activo,.etq.enviado{background:var(--ok-2);color:var(--ok)}.etq.pagada{background:var(--acento-2);color:var(--acento)}
.etq.error,.etq.suspendido{background:var(--peligro-2);color:var(--peligro)}
.suave{color:var(--suave)}.pequeno{font-size:13px}
details summary{cursor:pointer;font-weight:600;margin:6px 0}
.ingreso{min-height:100vh;display:grid;place-items:center;padding:20px}
.ingreso .panel{width:100%;max-width:380px}
.ingreso form{display:flex;flex-direction:column;gap:12px}
@media (max-width:820px){
 .marco{grid-template-columns:1fr}
 nav.lateral{flex-direction:row;flex-wrap:nowrap;overflow-x:auto;gap:2px;padding:10px 12px;position:sticky;top:0;z-index:5}
 nav.lateral .grupo,nav.lateral .emp,nav.lateral .pie{display:none}
 nav.lateral .marca{font-size:15px;align-self:center;margin-right:8px;white-space:nowrap}
 nav.lateral a{white-space:nowrap;padding:7px 10px}
 .tarjetas{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.tarjeta .num{font-size:19px}
 h1{font-size:21px}
 main{padding:18px 16px 40px}
}
@media print{nav.lateral,.acciones,form,.no-imprimir,main>.aviso{display:none!important}.marco{display:block}main{padding:0}body{background:#fff}}
nav.lateral details.menu{margin:0}
nav.lateral details.menu summary{list-style:none;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#8ea3c2;margin:14px 10px 4px;font-weight:600;display:flex;justify-content:space-between;align-items:center}
nav.lateral details.menu summary::-webkit-details-marker{display:none}
nav.lateral details.menu summary::after{content:"▾";font-size:12px;transition:transform .15s}
nav.lateral details.menu:not([open]) summary::after{transform:rotate(-90deg)}
nav.lateral details.menu summary:hover{color:#dbe4f0}
nav.lateral details.menu a{display:block}
@media (max-width:820px){nav.lateral details.menu{display:contents}nav.lateral details.menu summary{display:none}}
nav.lateral img.logo{max-width:150px;max-height:56px;object-fit:contain;background:#fff;border-radius:8px;padding:6px 8px;margin:0 8px 12px;align-self:flex-start}
@media (max-width:820px){nav.lateral img.logo{display:none}}
[hidden]{display:none!important}
.alanza{display:inline-flex;align-items:center;gap:calc(var(--t)*.32);font-family:"Plus Jakarta Sans",system-ui,sans-serif;line-height:1}
.alanza img{width:calc(var(--t)*1.25);height:calc(var(--t)*1.25);display:block}
.alanza .pal{font-size:var(--t);font-weight:700;letter-spacing:-.025em;color:var(--marca)}
.alanza .pal b{font-weight:700;color:var(--turquesa)}
.alanza .pal i{display:inline-block;width:calc(var(--t)*.24);height:calc(var(--t)*.24);border-radius:50%;background:var(--coral);margin-left:calc(var(--t)*.07)}
.alanza.oscuro .pal{color:#fff}.alanza.oscuro .pal b{color:#5dd6d1}
nav.lateral .marca{margin:0 8px 6px}
.logo-ingreso{display:flex;justify-content:center;margin:6px 0 10px}
.split{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);min-height:100vh}
.split-marca{position:relative;overflow:hidden;background:var(--marca);color:#dbe4f0;display:flex;align-items:center}
.split-marca .formas{position:absolute;inset:0;width:100%;height:100%}
.split-contenido{position:relative;padding:56px 64px;max-width:560px}
.split-contenido .ceja{margin:30px 0 8px;color:#5dd6d1;font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.split-contenido h2{color:#fff;font-size:32px;line-height:1.2;margin:0 0 26px;font-weight:700;letter-spacing:-.015em}
.modulos{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 22px}
.modulo{display:flex;align-items:center;gap:12px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:12px 14px}
.modulo svg{width:36px;height:36px;flex:none;padding:7px;border-radius:9px;background:rgba(93,214,209,.16);fill:none;stroke:#5dd6d1;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.modulo b{display:block;color:#fff;font-size:14.5px;font-weight:600}.modulo span{font-size:12.5px;color:#a9bad3}
.split-contenido .extra{margin:0 0 22px;font-size:14.5px;color:#dbe4f0;display:flex;align-items:center;gap:10px}
.codigo{font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:700;color:#f06a4d;background:rgba(240,106,77,.14);border-radius:6px;padding:2px 7px;font-size:13px}
.split-contenido ul{list-style:none;padding:0;margin:0 0 28px;display:grid;gap:10px;font-size:15.5px}
.split-contenido li{padding-left:28px;position:relative}
.split-contenido li::before{content:"";position:absolute;left:0;top:6px;width:14px;height:8px;border-left:2.5px solid #5dd6d1;border-bottom:2.5px solid #5dd6d1;transform:rotate(-45deg)}
.split-contenido .sitio{color:#5dd6d1;font-weight:600;margin:0}
.split-form{display:grid;place-items:center;padding:32px 20px;background:var(--fondo)}
.tarjeta-ingreso{width:100%;max-width:380px;background:#fff;border:1px solid var(--borde);border-radius:16px;padding:32px 30px 24px}
.tarjeta-ingreso form{display:flex;flex-direction:column;gap:14px;margin-top:6px}
.tarjeta-ingreso button{margin-top:6px;padding:11px}
.logo-cliente{display:flex;justify-content:center;align-items:center;min-height:90px;margin-bottom:18px;padding-bottom:18px;border-bottom:1px solid var(--borde)}
.logo-cliente img{max-height:90px;max-width:240px;object-fit:contain}
.nombre-cliente{font-size:22px;font-weight:700;color:var(--marca);text-align:center}
.con-tecnologia{display:flex;justify-content:center;align-items:center;gap:6px;font-size:12px;color:var(--suave);margin:20px 0 0}
@media (max-width:820px){.split{grid-template-columns:1fr}.split-marca{min-height:auto}.split-contenido{padding:28px 22px}
 .split-contenido .ceja{margin:18px 0 4px;font-size:11.5px}.split-contenido h2{font-size:20px;margin:0}.modulos,.split-contenido .extra,.split-contenido .sitio{display:none}}
