/* SISTRANS Light - Prototipo */
:root { --app-side-w: 250px; }
body { background: #f4f6f9; font-size: .925rem; }
.app-top { background: var(--app-primario); }
.app-side { width: var(--app-side-w); background: #fff; border-right: 1px solid #e3e7ee; min-height: calc(100vh - 56px); }
@media (min-width: 992px) { .app-side { position: sticky; top: 56px; height: calc(100vh - 56px); overflow-y: auto; } }
.app-side .nav-link { color: #344054; padding: .38rem 1rem; border-left: 3px solid transparent; font-size: .9rem; }
.app-side .nav-link:hover { background: #f1f4f9; }
.app-side .nav-link.active { color: var(--app-primario); background: #eef3ff; border-left-color: var(--app-primario); font-weight: 600; }
.app-side-mod { font-size: .7rem; text-transform: uppercase; letter-spacing: .06em; color: #8a94a6; padding: .9rem 1rem .25rem; }
.app-main { min-width: 0; }
.card { border-color: #e3e7ee; }
.card-header { background: #fff; font-weight: 600; }
.kpi-icon { width: 46px; height: 46px; border-radius: 12px; display: grid; place-items: center; font-size: 1.35rem; }
.table thead th { font-size: .78rem; text-transform: uppercase; letter-spacing: .03em; color: #5b6475; background: #f8fafc; white-space: nowrap; }
.table td { vertical-align: middle; }
.table-sm td, .table-sm th { padding: .35rem .5rem; }
.num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.tabla-scroll { max-height: 520px; overflow: auto; }
.form-label { font-size: .82rem; color: #475467; margin-bottom: .2rem; }
.login-card { max-width: 420px; }
.estado-paso { font-size: .8rem; }
.timeline { border-left: 2px solid #dbe2ec; padding-left: 1rem; }
.timeline .item { position: relative; padding-bottom: .7rem; }
.timeline .item::before { content: ""; position: absolute; left: -1.38rem; top: .3rem; width: .65rem; height: .65rem; border-radius: 50%; background: var(--app-primario); }
.sello-demo { border: 2px dashed #dc3545; color: #dc3545; font-weight: 700; padding: .2rem .6rem; display: inline-block; transform: rotate(-4deg); }
.doc-print { background: #fff; max-width: 900px; margin: 0 auto; padding: 2rem; }
.etiqueta { width: 100mm; height: 60mm; border: 1px solid #000; padding: 3mm; display: inline-flex; gap: 3mm; margin: 2mm; page-break-inside: avoid; background: #fff; }
.etiqueta .qr { width: 32mm; height: 32mm; }
@media print {
  body { background: #fff; }
  .app-main { padding: 0 !important; }
  .card { border: 0; box-shadow: none !important; }
  .no-print { display: none !important; }
}
