/* GSF Mobile UX - Estilos responsivos para todos los dispositivos */ /* Incluir con: */ /* ===== BASE RESPONSIVE ===== */ * { -webkit-tap-highlight-color: transparent; -webkit-overflow-scrolling: touch; } /* ===== TABLET (600-1024px) ===== */ @media (min-width: 601px) and (max-width: 1024px) { body { font-size: 15px; } .header { padding: 12px 20px; } .header h2 { font-size: 18px; } .grid { grid-template-columns: repeat(3, 1fr) !important; } .kpi-row { grid-template-columns: repeat(4, 1fr) !important; } .lista { padding: 12px 20px; } .item, .doc-item, .product-card { padding: 12px 16px; margin: 4px 12px; border-radius: 12px; } input, select, textarea { font-size: 15px; padding: 10px 14px; } } /* ===== TABLET HORIZONTAL / ESCRITORIO PEQUEÑO (1025px+) ===== */ @media (min-width: 1025px) { body { font-size: 14px; max-width: 1200px; margin: 0 auto; } .header { padding: 14px 24px; border-radius: 0 0 16px 16px; } .header h2 { font-size: 20px; } .grid { grid-template-columns: repeat(4, 1fr) !important; } .kpi-row { grid-template-columns: repeat(6, 1fr) !important; } .lista { padding: 16px 24px; } .item, .doc-item, .product-card { padding: 10px 16px; margin: 3px 0; border-radius: 10px; transition: transform .15s, box-shadow .15s; } .item:hover, .doc-item:hover, .product-card:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0,0,0,0.08); } input, select, textarea { font-size: 14px; padding: 8px 12px; } /* Scrollbar fina */ ::-webkit-scrollbar { width: 6px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 3px; } } /* ===== MÓVIL (hasta 600px) ===== */ @media (max-width: 600px) { body { font-size: 16px !important; } /* Touch targets - mínimo 44px */ .btn, button, a.card, .tab, .item, [onclick] { min-height: 44px; } /* Inputs más grandes (evita zoom en iOS) */ input, select, textarea { font-size: 16px !important; padding: 12px 14px !important; border-radius: 10px !important; } /* Cards táctiles */ .item, .doc-item, .product-card { padding: 14px !important; margin: 4px 8px !important; border-radius: 12px !important; } /* Header compacto */ .header { padding: 10px 12px !important; } .header h2 { font-size: 16px !important; } /* Tabs grandes */ .tabs { margin: 6px 8px !important; border-radius: 10px !important; } .tab { padding: 12px 6px !important; font-size: 13px !important; } /* Grid 2 columnas */ .grid { grid-template-columns: repeat(2, 1fr) !important; gap: 8px !important; padding: 8px !important; } /* Modal full-width */ .modal-content { max-width: 95vw !important; padding: 20px !important; margin: 10px !important; } /* KPI compacto */ .kpi-row { grid-template-columns: repeat(3, 1fr) !important; gap: 6px !important; padding: 6px 8px !important; } .kpi-card { padding: 10px !important; } .kpi-card .val { font-size: 18px !important; } /* Ocultar scrollbar */ ::-webkit-scrollbar { width: 4px; } /* Barra inferior fija */ .bottom-bar { position: fixed; bottom: 0; left: 0; right: 0; background: white; padding: 8px 12px; padding-bottom: max(8px, env(safe-area-inset-bottom)); border-top: 1px solid #e5e7eb; z-index: 100; display: flex; gap: 8px; } .bottom-bar button { flex: 1; padding: 14px; border: none; border-radius: 10px; font-size: 15px; font-weight: 600; } /* Pull to refresh */ .pull-indicator { text-align: center; padding: 10px; color: #94a3b8; font-size: 12px; } } /* ===== PANTALLA MUY PEQUEÑA (menos de 360px) ===== */ @media (max-width: 360px) { body { font-size: 14px !important; } .header h2 { font-size: 14px !important; } .grid { grid-template-columns: 1fr 1fr !important; gap: 4px !important; } .kpi-row { grid-template-columns: repeat(2, 1fr) !important; } .item, .doc-item { padding: 10px !important; margin: 3px 4px !important; } } /* ===== ORIENTACIÓN ===== */ @media (orientation: landscape) and (max-height: 500px) { .header { padding: 6px 12px !important; } .header h2 { font-size: 14px !important; } .lista { padding-bottom: 60px !important; } .bottom-bar { padding: 4px 12px !important; } .bottom-bar button { padding: 8px !important; font-size: 13px !important; } } /* ===== DARK MODE (opcional) ===== */ @media (prefers-color-scheme: dark) { :root { --bg: #0f172a; --card: #1e293b; --text: #f1f5f9; --text-light: #94a3b8; --text-muted: #64748b; --border: #334155; } } /* ===== SAFE AREA (notch) ===== */ @supports (padding: env(safe-area-inset-top)) { .header { padding-top: max(14px, env(safe-area-inset-top)) !important; } .bottom-bar { padding-bottom: max(8px, env(safe-area-inset-bottom)) !important; } }