/* public/estilos.css - Tema naranja/amarillo */
:root{
  --bg:#fff7e6;
  --card:#ffffff;
  --primary:#ff9800;
  --primary-2:#ffc107;
  --text:#333;
  --ok:#2e7d32;
  --warn:#ef6c00;
  --danger:#c62828;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;font-family:system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text)}
.container{max-width:1100px;margin:0 auto;padding:20px}
.card{background:var(--card);border-radius:20px;box-shadow:0 10px 25px rgba(0,0,0,.08);padding:20px;margin:16px 0}
h1,h2,h3{margin:8px 0}
.btn{display:inline-block;padding:10px 16px;border:none;border-radius:12px;background:linear-gradient(135deg,var(--primary),var(--primary-2));color:#fff;text-decoration:none;font-weight:600;cursor:pointer}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn-outline {
  background: none;
  border: none;
  color: var(--primary);   /* Naranja principal */
  font-weight: bold;       /* Negrita */
  cursor: pointer;
  padding: 0;              /* sin caja alrededor */
}
.btn-outline:hover {
  text-decoration: underline;
}

.input, select, textarea{width:100%;padding:10px 12px;border:1px solid #eee;border-radius:12px;background:#fff}
.grid{display:grid;gap:16px}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.nav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.badge{padding:4px 8px;border-radius:999px;background:#ffe0b2;color:#5d4037;font-size:12px}
.table{width:100%;border-collapse:collapse}
.table th,.table td{padding:10px;border-bottom:1px solid #eee;text-align:left}
.kpi{display:flex;align-items:center;gap:10px}
.kpi .n{font-size:28px;font-weight:800;color:#ff6f00}
@media(max-width:800px){.grid-2,.grid-3{grid-template-columns:1fr}}
.footer{margin-top:30px;font-size:12px;color:#777;text-align:center}
.logo{font-weight:900;letter-spacing:0.5px}
.logo img {
  vertical-align: middle;
}
/* ======= Mobile polish ======= */

/* Contenedor y tipografía */
html, body { -webkit-text-size-adjust: 100%; }
.container { padding: 10px; }

/* Navegación arriba */
.card.nav {
  gap: 8px;
  flex-wrap: wrap;
}
.card.nav .logo img { height: 36px; }

/* Botones: mejor toque en móvil */
.btn, .btn-outline {
  min-height: 40px;
  padding: 10px 14px;
  border-radius: 12px;
}

/* Inputs: evitar zoom iOS y dar aire */
.input, select, textarea, input[type="date"], input[type="time"], input[type="number"], input[type="email"], input[type="password"]{
  font-size: 16px; /* evita zoom en iOS */
  min-height: 40px;
  padding: 10px 12px;
  border-radius: 10px;
}

/* Tarjetas KPI en una columna bajo 780px */
@media (max-width: 780px){
  .grid, .grid-2, .grid-3, .grid-4, .grid-5, .grid-2tight {
    display: grid;
    grid-template-columns: 1fr !important;
    gap: 12px;
  }
  .kpi span.n { font-size: 24px; }
}

/* Tablas: scroll horizontal suave por defecto */
.table {
  width: 100%;
  border-collapse: collapse;
}
.table th, .table td {
  padding: 8px 10px;
  white-space: nowrap; /* evita cortes feos */
}
.table-wrap {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.table-wrap::-webkit-scrollbar {
  height: 8px;
}
.table-wrap::-webkit-scrollbar-thumb {
  background: #ffd180;
  border-radius: 4px;
}

/* Opcional: tablas "apiladas" (stack) en pantallas chicas */
@media (max-width: 560px){
  .table.table--stack thead { display: none; }
  .table.table--stack, 
  .table.table--stack tbody, 
  .table.table--stack tr, 
  .table.table--stack td { display: block; width: 100%; }
  .table.table--stack tr { 
    background: #fff; 
    border: 1px solid #ffe0b2; 
    border-radius: 12px; 
    padding: 8px; 
    margin-bottom: 10px; 
  }
  .table.table--stack td {
    display: flex; 
    justify-content: space-between; 
    gap: 10px; 
    padding: 6px 4px;
    border: none;
  }
  .table.table--stack td::before {
    content: attr(data-th);
    font-weight: 700;
    color: #6b4a00;
  }
}

/* Bajo stock: badges por sector (colores) */
.sec-sala      { background:#fff3e0; color:#e65100; border:1px solid #ffb74d; border-radius:999px; padding:2px 8px; font-weight:700; }
.sec-premios   { background:#e8f5e9; color:#2e7d32; border:1px solid #81c784; border-radius:999px; padding:2px 8px; font-weight:700; }
.sec-limpieza  { background:#e3f2fd; color:#1565c0; border:1px solid #64b5f6; border-radius:999px; padding:2px 8px; font-weight:700; }
.sec-insumos   { background:#f3e5f5; color:#6a1b9a; border:1px solid #ba68c8; border-radius:999px; padding:2px 8px; font-weight:700; }
.sec-otro      { background:#eeeeee; color:#424242; border:1px solid #bdbdbd; border-radius:999px; padding:2px 8px; font-weight:700; }

/* Badges generales más táctiles */
.badge { padding: 4px 10px; border-radius: 999px; }
/* Scroll horizontal POR TABLA solo en móvil */
@media (max-width: 780px){
  .table-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .table-scroll > table {
    /* clave: que la tabla sea más ancha que el viewport para que aparezca el scroll */
    width: auto;          /* NO 100% en móvil */
    min-width: 680px;     /* ajustá este valor si tu tabla tiene más/menos columnas */
    border-collapse: collapse;
  }
}
@media (max-width: 780px){
  .card { overflow: visible; }
}
/* === Menú responsive SOLO en pantallas chicas === */
@media (max-width: 780px){
  .nav {
    flex-wrap: wrap;
    gap: 6px;
    padding: 8px;
  }
  .nav .logo {
    flex: 1 1 100%;           /* el logo ocupa toda la fila */
    text-align: center;
  }
  .nav .logo img {
    height: 36px;
  }
  .nav a.btn-outline,
  .nav a.btn,
  .nav span.badge {
    flex: 1 1 45%;            /* botones de 2 por fila */
    text-align: center;
    font-size: 14px;
  }
  .nav span.badge {
    order: 99;                /* badge de usuario al final */
    flex: 1 1 100%;           /* en una fila completa */
    margin: 6px 0;
  }
}
/* Fix visual: que los bloques .card sean cuadros blancos */
.card {
  background: #fff;           /* ← blanco real */
  border: 1px solid #eee;
  border-radius: 14px;
  padding: 12px;
}

/* Si alguna tabla “pega” contra el borde, mejor dentro de la card */
.table-wrap { width:100%; overflow-x:auto; }
/* =========================================
   NUEVO HEADER / MENÚ DE NAVEGACIÓN
========================================= */
.nav-header {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 10px 20px;
  margin-bottom: 20px;
  flex-wrap: wrap;
}

.nav-header .logo {
  display: flex;
  align-items: center;
}

/* Contenedor de los links */
.nav-header .nav-links {
  display: flex;
  gap: 4px;
  flex-wrap: wrap;
  flex: 1; /* Toma el espacio disponible y empuja el bloque de usuario a la derecha */
}

/* Diseño de los botones del menú */
.nav-header .nav-links a {
  color: var(--primary);
  text-decoration: none;
  font-weight: 700;
  padding: 8px 14px;
  border-radius: 10px;
  transition: all 0.2s ease;
  font-size: 15px;
}

/* Efecto al pasar el mouse */
.nav-header .nav-links a:hover {
  background: #fff3e0;
  color: #e65100;
}

/* Página actual activa */
.nav-header .nav-links a.active {
  background: #ffe0b2;
  color: #e65100;
}

/* Bloque derecho (Badge + Salir) */
.nav-user {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-left: auto;
}

.nav-user .badge {
  font-size: 13px;
  padding: 6px 12px;
  background: #f5f5f5;
  color: #424242;
  border: 1px solid #e0e0e0;
}

.btn-salir {
  padding: 8px 16px;
  min-height: auto;
}

/* =========================================
   MENÚ EN MÓVILES (Sobrescribe comportamiento)
========================================= */
@media (max-width: 900px) {
  .nav-header {
    flex-direction: column;
    gap: 15px;
    padding: 15px;
    text-align: center;
  }
  .nav-header .nav-links {
    justify-content: center;
  }
  .nav-user {
    margin-left: 0;
    justify-content: center;
    width: 100%;
    flex-wrap: wrap;
  }
}

/* =========================================
   MENÚ AGRUPADO CON DESPLEGABLES
========================================= */
.nav-header { position: relative; }
.nav-header .nav-links { align-items: center; }

.nav-drop { position: relative; }
.nav-drop > summary {
  list-style: none;
  cursor: pointer;
  color: var(--primary);
  font-weight: 700;
  padding: 8px 14px;
  border-radius: 10px;
  user-select: none;
  transition: all 0.2s ease;
}
.nav-drop > summary::-webkit-details-marker { display: none; }
.nav-drop > summary::after { content: " ▾"; font-size: 12px; }
.nav-drop[open] > summary::after { content: " ▴"; }
.nav-drop > summary:hover { background: #fff3e0; color: #e65100; }
.nav-drop > summary.active,
.nav-drop[open] > summary { background: #ffe0b2; color: #e65100; }

.nav-drop-menu {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  min-width: 180px;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 10px 25px rgba(0,0,0,.12);
  padding: 6px;
  z-index: 50;
  display: flex;
  flex-direction: column;
}
.nav-header .nav-drop-menu a {
  display: block;
  padding: 10px 12px;
  border-radius: 8px;
  white-space: nowrap;
}

.nav-toggle {
  display: none;
  background: #fff3e0;
  color: #e65100;
  border: none;
  border-radius: 10px;
  font-size: 22px;
  line-height: 1;
  padding: 8px 12px;
  cursor: pointer;
}

@media (max-width: 900px) {
  .nav-header {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
    text-align: left;
  }
  .nav-toggle { display: block; }
  .nav-header .nav-links,
  .nav-header .nav-user { display: none; }
  .nav-header.nav-open .nav-links,
  .nav-header.nav-open .nav-user { display: flex; width: 100%; }
  .nav-header .nav-links { flex-direction: column; align-items: stretch; gap: 2px; }
  .nav-drop-menu { position: static; box-shadow: none; background: #fffaf2; margin: 4px 0 4px 12px; }
  .nav-user { justify-content: space-between; border-top: 1px solid #eee; padding-top: 10px; }
}

/* Selector de punto de venta en Cerrar Caja */
.pv-tabs { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:14px; }
.pv-tabs a {
  padding: 8px 16px; border-radius: 999px; text-decoration: none; font-weight: 700;
  border: 2px solid #ffe0b2; color: #e65100; background: #fff;
}
.pv-tabs a.active { background: linear-gradient(135deg,var(--primary),var(--primary-2)); color: #fff; border-color: transparent; }
