/* TransportSyS - panel de gestión. Sidebar lateral, Bootstrap 5. */

:root{
  --ts-marca:#0d6efd;
  --ts-sidebar-bg:#111827;
  --ts-sidebar-fg:#cbd5e1;
  --ts-sidebar-activo:#1f2937;
  --ts-ancho:248px;
}

body{background:#f4f6f9;}

.ts-wrap{display:flex;min-height:100vh;}

/* ---------- Sidebar ---------- */
.ts-sidebar{
  width:var(--ts-ancho);flex:0 0 var(--ts-ancho);
  background:var(--ts-sidebar-bg);color:var(--ts-sidebar-fg);
  display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;z-index:1040;
}
.ts-marca{display:flex;gap:.65rem;align-items:center;padding:1rem .9rem;border-bottom:1px solid rgba(255,255,255,.08);}
.ts-marca .bi{font-size:1.6rem;color:var(--ts-marca);}
.ts-marca strong{display:block;color:#fff;font-size:.95rem;line-height:1.2;}
.ts-marca small{color:#64748b;font-size:.7rem;}

.ts-nav{flex:1;overflow-y:auto;padding:.5rem 0 1rem;}
.ts-grupo{padding:.9rem .95rem .3rem;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:#64748b;}
.ts-item{
  display:flex;align-items:center;gap:.6rem;padding:.5rem .95rem;
  color:var(--ts-sidebar-fg);text-decoration:none;font-size:.88rem;border-left:3px solid transparent;
}
.ts-item:hover{background:var(--ts-sidebar-activo);color:#fff;}
.ts-item.activo{background:var(--ts-sidebar-activo);color:#fff;border-left-color:var(--ts-marca);}
.ts-item .bi{width:1.1rem;text-align:center;opacity:.85;}

.ts-usuario{
  display:flex;align-items:center;justify-content:space-between;gap:.5rem;
  padding:.7rem .95rem;border-top:1px solid rgba(255,255,255,.08);font-size:.85rem;
}
.ts-usuario a{color:var(--ts-sidebar-fg);text-decoration:none;}
.ts-usuario a:hover{color:#fff;}

/* ---------- Contenido ---------- */
.ts-main{flex:1;margin-left:var(--ts-ancho);min-width:0;display:flex;flex-direction:column;}
.ts-topbar{
  display:flex;align-items:center;gap:.75rem;background:#fff;
  padding:.75rem 1.25rem;border-bottom:1px solid #e5e7eb;position:sticky;top:0;z-index:1030;
}
.ts-migas{font-size:.78rem;color:#6b7280;}
.ts-migas a{color:#6b7280;text-decoration:none;}
.ts-migas a:hover{text-decoration:underline;}
.ts-migas .bi{font-size:.65rem;}
.ts-acciones{display:flex;gap:.4rem;flex-wrap:wrap;}
.ts-contenido{padding:1.25rem;flex:1;}

/* ---------- Piezas ---------- */
.card{border:1px solid #e5e7eb;box-shadow:0 1px 2px rgba(16,24,40,.04);}
.card-header{background:#fff;border-bottom:1px solid #e5e7eb;font-weight:600;font-size:.92rem;}
.table{font-size:.88rem;}
.table > :not(caption) > * > *{padding:.55rem .6rem;}
.table thead th{background:#f9fafb;color:#6b7280;font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;}

.ts-vacio{text-align:center;padding:2.5rem 1rem;color:#9ca3af;}
.ts-vacio .bi{font-size:2rem;display:block;margin-bottom:.5rem;}
.ts-vacio p{margin:0;font-size:.9rem;}

.ts-kpi{background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;padding:.9rem 1rem;}
.ts-kpi .valor{font-size:1.6rem;font-weight:600;line-height:1.1;}
.ts-kpi .etiqueta{font-size:.78rem;color:#6b7280;}

.ts-memoria td{font-size:.84rem;}
.ts-memoria tr:last-child{font-weight:600;background:#f9fafb;}

.form-label{font-size:.84rem;font-weight:500;margin-bottom:.25rem;}
.form-text{font-size:.78rem;}
.required::after{content:" *";color:#dc2626;}

/* ---------- Login ---------- */
.ts-login{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#111827;padding:1rem;}
.ts-login .caja{width:100%;max-width:380px;background:#fff;border-radius:.75rem;padding:1.75rem;}

/* ---------- Responsive ---------- */
@media (max-width: 991.98px){
  .ts-sidebar{transform:translateX(-100%);transition:transform .2s ease;}
  .ts-main{margin-left:0;}
  body.ts-abierto .ts-sidebar{transform:none;}
}
