/* ============================================================
   MOBILE PRO — Mejoras móvil para emisión de comprobantes
   Aplica solo en móvil (≤767px). No afecta tablet/desktop.
   Cargado al final para ganarle a CSS antiguos.
   ============================================================ */

@media (max-width: 767px) {

  /* === Layout base — quitar sidebar de los wrappers === */
  body.skin-blue.sidebar-mini .content-wrapper,
  body.skin-blue.sidebar-mini .main-footer,
  body.skin-blue .right-side {
    margin-left: 0 !important;
  }
  .content-wrapper { padding: 6px !important; }

  /* === Inputs táctiles: altura mínima 44px, font-size 16px (evita zoom iOS) === */
  .panel-medio-principal .form-control,
  .panel-medio-principal input[type="text"],
  .panel-medio-principal input[type="number"],
  .panel-medio-principal input[type="email"],
  .panel-medio-principal input[type="tel"],
  .panel-medio-principal input[type="date"],
  .panel-medio-principal input[type="password"],
  .panel-medio-principal select.form-control,
  .panel-medio-principal textarea.form-control {
    min-height: 44px !important;
    font-size: 16px !important;
    padding: 10px 12px !important;
    border-radius: 8px !important;
  }
  /* Select2 — mismo treatment */
  .panel-medio-principal .select2-container .select2-selection--single {
    min-height: 44px !important;
    border-radius: 8px !important;
  }
  .panel-medio-principal .select2-container .select2-selection--single
  .select2-selection__rendered {
    line-height: 42px !important;
    font-size: 16px !important;
    padding-left: 12px !important;
  }
  .panel-medio-principal .select2-container .select2-selection--single
  .select2-selection__arrow {
    height: 42px !important;
  }

  /* === Labels más legibles === */
  .panel-medio-principal label,
  .panel-medio-principal .lbl-text {
    font-size: 13px !important;
    font-weight: 600 !important;
    margin-bottom: 4px !important;
    color: #444 !important;
  }

  /* === Botones táctiles === */
  .panel-medio-principal .btn,
  .panel-medio-principal button.btn-radius,
  .panel-medio-principal .btn-default,
  .panel-medio-principal .btn-primary,
  .panel-medio-principal .btn-success,
  .panel-medio-principal .btn-danger,
  .panel-medio-principal .btn-warning,
  .panel-medio-principal .btn-info {
    min-height: 44px !important;
    padding: 10px 16px !important;
    font-size: 14px !important;
    border-radius: 8px !important;
  }
  .panel-medio-principal .btn-sm {
    min-height: 38px !important;
    padding: 8px 12px !important;
    font-size: 13px !important;
  }

  /* === Header del dashboard compacto === */
  .dashboard-header,
  .dashboard-header-modern {
    flex-wrap: wrap !important;
    padding: 8px 10px !important;
    gap: 6px !important;
  }
  .btns-dash,
  .btns-dash-modern {
    flex-wrap: wrap !important;
    gap: 6px !important;
    width: 100% !important;
    justify-content: flex-start !important;
  }
  .btns-dash a,
  .btns-dash-modern a,
  .btns-dash button,
  .btns-dash-modern button {
    font-size: 12px !important;
    padding: 8px 10px !important;
    flex: 1 1 calc(50% - 6px) !important;
    min-height: 40px !important;
    text-align: center !important;
  }
  .btns-dash-modern a span,
  .btns-dash a span { display: inline !important; }

  /* === Cards / Boxes con menos padding === */
  .box,
  .box-body,
  .panel-medio,
  .panel-medio-principal {
    padding: 8px !important;
    margin-bottom: 8px !important;
  }
  .box-header { padding: 8px !important; }

  /* === Formularios: una sola columna en móvil para máxima claridad === */
  .panel-medio-principal .col-md-1,
  .panel-medio-principal .col-md-2,
  .panel-medio-principal .col-md-3,
  .panel-medio-principal .col-md-4,
  .panel-medio-principal .col-md-5,
  .panel-medio-principal .col-md-6,
  .panel-medio-principal .col-md-7,
  .panel-medio-principal .col-md-8,
  .panel-medio-principal .col-md-9,
  .panel-medio-principal .col-md-10,
  .panel-medio-principal .col-md-11,
  .panel-medio-principal .col-md-12 {
    padding-left: 6px !important;
    padding-right: 6px !important;
    margin-bottom: 8px !important;
  }
  /* Permitir 2 columnas con col-xs-6 (ya viene del HTML) */

  /* === Tabla de items del comprobante: scroll horizontal con sticky header === */
  .tabla-items,
  .table-items,
  .table-responsive table {
    font-size: 13px !important;
  }
  .table-responsive {
    -webkit-overflow-scrolling: touch !important;
    border: 1px solid #e0e0e0 !important;
    border-radius: 6px !important;
    margin-bottom: 8px !important;
  }
  .table-responsive table {
    margin-bottom: 0 !important;
  }
  .table-responsive table td,
  .table-responsive table th {
    padding: 8px 6px !important;
    white-space: nowrap !important;
  }
  .table-responsive table td:first-child,
  .table-responsive table th:first-child {
    white-space: normal !important;
    min-width: 140px;
  }
  /* Indicador visual de scroll horizontal */
  .table-responsive::after {
    content: '';
    position: sticky;
    right: 0;
    width: 24px;
    background: linear-gradient(to right, transparent, rgba(0,0,0,0.06));
    pointer-events: none;
  }

  /* === Botones de acción dentro de tabla más compactos === */
  .tabla-items .btn,
  .table-items .btn,
  .table-responsive table .btn {
    min-height: 34px !important;
    padding: 6px 10px !important;
    font-size: 12px !important;
  }

  /* === Modales fullscreen en móvil === */
  .modal-dialog {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    height: 100vh !important;
    height: 100dvh !important;
  }
  .modal-content {
    height: 100vh !important;
    height: 100dvh !important;
    border-radius: 0 !important;
    border: 0 !important;
  }
  .modal-body {
    overflow-y: auto !important;
    max-height: calc(100vh - 120px) !important;
  }
  .modal-header { padding: 12px !important; }
  .modal-header .modal-title { font-size: 16px !important; }
  .modal-footer { padding: 12px !important; }

  /* === Botones de pie sticky para guardar venta === */
  .panel-medio-principal .contenedor-btns-carrito {
    position: sticky !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    background: #fff !important;
    border-top: 1px solid #e0e0e0 !important;
    padding: 10px 8px !important;
    margin: 12px -6px -8px -6px !important;
    z-index: 100 !important;
    box-shadow: 0 -4px 12px rgba(0,0,0,.08) !important;
    display: flex !important;
    gap: 8px !important;
  }
  .panel-medio-principal .btnGuardarVenta,
  .panel-medio-principal .btnEliminarCarro {
    flex: 1 1 auto !important;
    margin: 0 !important;
  }
  .panel-medio-principal .btnGuardarVenta {
    flex: 2 !important;
    min-height: 50px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
  }

  /* === Totales del comprobante destacados === */
  .panel-medio-principal #totales,
  .panel-medio-principal .totales-comprobante,
  .panel-medio-principal .resumen-totales {
    background: #f5f7fb !important;
    border-radius: 10px !important;
    padding: 10px !important;
    margin: 8px 0 !important;
    border: 1px solid #e0e0e0 !important;
  }

  /* === SweetAlert: ancho completo en móvil === */
  .swal2-popup {
    width: calc(100% - 24px) !important;
    max-width: 420px !important;
    padding: 16px !important;
  }

  /* === DataTables responsive === */
  .dataTables_wrapper .dataTables_filter input { min-height: 40px !important; }
  .dataTables_wrapper .dataTables_length select { min-height: 40px !important; }
  .dataTables_wrapper .dataTables_paginate .paginate_button {
    min-height: 36px !important;
    padding: 6px 12px !important;
  }

  /* === DASHBOARD INICIO === */
  .panel-medio-principal .info-box,
  .panel-medio-principal .small-box {
    margin-bottom: 8px !important;
  }
  .panel-medio-principal .info-box-content,
  .panel-medio-principal .small-box .inner h3 {
    font-size: 18px !important;
  }
  .panel-medio-principal .small-box .inner p { font-size: 13px !important; }
  .panel-medio-principal .info-box-icon,
  .panel-medio-principal .small-box .icon i {
    font-size: 32px !important;
  }
  /* Tarjetas KPI a 1 columna en móvil pequeño, 2 columnas en >= 480 */
  @media (max-width: 480px) {
    .panel-medio-principal .col-xs-6.col-md-3 {
      width: 100% !important;
    }
  }

  /* === Lista de productos en grilla del POS === */
  .pos-grid .producto-item,
  .grid-productos .producto-card {
    min-height: 90px !important;
    font-size: 12px !important;
    padding: 8px !important;
  }

  /* === FAB (botón flotante) para acciones rápidas === */
  .fab-mobile {
    position: fixed;
    bottom: 78px;
    right: 14px;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: #0ea5e9;
    color: #fff;
    border: 0;
    box-shadow: 0 6px 16px rgba(14,165,233,.4);
    z-index: 999;
    font-size: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  /* === Inputs numéricos: teclado nativo === */
  input[type="number"],
  input[name="cantidad"],
  input[name="precio"],
  input[name="precioVenta"],
  input[name="numDoc"] {
    inputmode: numeric;
  }

  /* === Buscador del header === */
  .main-header .navbar-form {
    width: 100% !important;
    margin: 6px 0 !important;
  }

  /* === Print: recibos térmicos siempre OK === */
  @media print {
    .content-wrapper { padding: 0 !important; }
  }
}

/* ============================================================
   TWEAKS PARA TABLET (768-1024)
   ============================================================ */
@media (min-width: 768px) and (max-width: 1024px) {
  .panel-medio-principal .form-control {
    min-height: 40px !important;
  }
  .panel-medio-principal .btn {
    min-height: 40px !important;
  }
  .modal-dialog { width: 90% !important; }
}
