/* Telnet PV — hoja responsive común.
   El vendedor y el ingeniero trabajan desde el celular en campo (Bajo Cauca,
   mala señal, una mano). Reglas: nada se sale de la pantalla, botones de 44px,
   una columna en angosto, el kanban se desliza de lado. */

html { -webkit-text-size-adjust: 100%; }
body { overflow-x: hidden; }
img, video, canvas, svg { max-width: 100%; }
input, select, textarea, button { max-width: 100%; }

/* Barrita de usuario del auth-guard: en angosto va abajo a la derecha, pequeña, sin tapar el título */
@media (max-width: 900px) {
  #tp-userbar { top: auto !important; bottom: 10px !important; right: 10px !important; font-size: 11px !important; padding: 4px 5px 4px 10px !important; opacity: 0.92; }
}

/* ---------- Tablet y menor ---------- */
@media (max-width: 900px) {
  .app { grid-template-columns: 1fr !important; }
  .sidebar {
    flex-direction: row !important; flex-wrap: wrap; align-items: center;
    padding: 12px 16px !important; gap: 10px !important;
    border-right: none !important; border-bottom: 1px solid var(--border);
    position: sticky; top: 0; z-index: 15; background: var(--surface);
  }
  .sidebar .nav { flex-direction: row !important; flex-wrap: wrap; gap: 4px !important; width: 100%; }
  .sidebar .nav-item { padding: 8px 10px !important; font-size: 0.84rem !important; }
  .brand-sub { display: none; }
  .content { padding: 18px 16px 60px !important; max-width: 100% !important; }
  .top-row { margin-bottom: 16px !important; }
  h1 { font-size: 1.3rem !important; }
  .lead { font-size: 0.86rem !important; }
  .grid { grid-template-columns: 1fr !important; }
  .agenda { grid-template-columns: repeat(2, 1fr) !important; }
  .kpis { grid-template-columns: repeat(2, 1fr) !important; }
  .row { flex-direction: column; gap: 0 !important; }
  .filtros input[type="text"] { min-width: 0 !important; width: 100%; }
  .filtros select { flex: 1; }
  .panel-overlay, .sim-modal { padding: 12px !important; align-items: flex-start !important; }
  .panel, .sim-card { padding: 18px !important; }
  /* Kanban: columnas anchas que se deslizan de lado, con "imán" por columna */
  .kanban {
    display: flex !important; overflow-x: auto !important; gap: 10px !important;
    scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; padding-bottom: 12px !important;
  }
  .kanban-col { flex: 0 0 82vw !important; max-width: 320px; scroll-snap-align: start; }
  .lead-card { font-size: 0.9rem !important; padding: 12px 14px !important; }
  .header { flex-direction: column; }
  .header > div { flex-wrap: wrap; width: 100%; }
  .etapa-select { flex: 1 1 100% !important; width: 100%; min-height: 44px; }
  .timeline { max-height: 320px !important; }
  .msg { max-width: 92% !important; }
  .quote-row, .sim-hist-row { flex-direction: column; align-items: flex-start !important; }
  .aparato-row, .aparato-head { grid-template-columns: 1fr 52px 60px 56px 64px 26px !important; }
  .barra-fila { grid-template-columns: 90px 1fr auto !important; }
  dl { grid-template-columns: 1fr !important; gap: 2px 0 !important; }
  dt { margin-top: 6px; }
}

/* ---------- Celular ---------- */
@media (max-width: 560px) {
  .agenda { grid-template-columns: repeat(2, 1fr) !important; gap: 8px !important; }
  .agenda-card .n { font-size: 1.25rem !important; }
  .agenda-card .l { font-size: 0.66rem !important; }
  .kpis { grid-template-columns: 1fr 1fr !important; gap: 8px !important; }
  .kpi .v { font-size: 1.15rem !important; }
  .top-actions { width: 100%; }
  .top-actions .primary { flex: 1; text-align: center; }
  .top-actions a.link-btn { display: none; }
  button, .primary, a.link-btn, .tab { min-height: 44px; }
  input[type="text"], input[type="number"], input[type="email"], input[type="tel"], input[type="datetime-local"], select, textarea {
    font-size: 16px !important; /* evita el zoom automático de iOS al enfocar */
    min-height: 44px;
  }
  .kanban-col { flex-basis: 88vw !important; }
  .content { padding: 14px 12px 60px !important; }
  .panel { padding: 14px !important; }
  .field { margin-bottom: 10px !important; }
  .actions-row { flex-direction: column; }
  .actions-row button { width: 100%; }
  .seg-form .field { min-width: 100% !important; flex-basis: 100% !important; }
  .seg-form button { width: 100%; }
  th, td { padding: 6px 5px !important; font-size: 0.78rem !important; }
}

/* Pantallas anchas: aprovechar el espacio */
@media (min-width: 1500px) {
  .kanban { grid-template-columns: repeat(7, minmax(230px, 1fr)); }
}
