:root{--fondo:#f6f7f5;--panel:#fff;--texto:#1f2421;--suave:#5f6b64;--borde:#e2e6e3;--acento:#1f6f5c;--acento-2:#e8f2ee;
--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 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:#14231e;color:#d8e4de;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:#9fb5ab;margin:0 8px 16px}
nav.lateral a{color:#d8e4de;text-decoration:none;padding:8px 10px;border-radius:8px;font-size:14.5px}
nav.lateral a:hover,nav.lateral a.activo{background:#24382f;color:#fff}
nav.lateral .grupo{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#7f968b;margin:14px 10px 4px}
nav.lateral .pie{margin-top:auto;font-size:13px;padding:10px;color:#9fb5ab}
nav.lateral .pie button{background:none;border:0;color:#d8e4de;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:#f0f2f0;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:#f8faf8}
tbody tr:hover{background:#fafcfb}
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 #c9d0cc;border-radius:8px;background:#fff;color:var(--texto);min-width:0}
input:focus,select:focus,textarea:focus{outline:2px solid #9cc9bb;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:#7f968b;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:#d8e4de}
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}}
