/* =====================================================
   MOBILE POLISH v1.0 - Lohmia Design System
   SOLO media queries mobile, NO tocar desktop
   Reference: tenants.html mobile design
   ===================================================== */

/* =========================================
   GLOBAL MOBILE STYLES (max-width: 768px)
   ========================================= */

@media (max-width: 768px) {

    /* ---- TYPOGRAPHY HIERARCHY ---- */
    h1, .page-title {
        font-size: 20px !important;
        color: var(--accent-blue, #00D4AA) !important;
        line-height: 1.3 !important;
    }
    
    h2, .section-title {
        font-size: 16px !important;
        color: var(--text-primary, #f1f5f9) !important;
    }
    
    .page-header p,
    .subtitle,
    .header-subtitle {
        font-size: 13px !important;
        color: var(--text-secondary, #94a3b8) !important;
    }
    
    /* ---- CONSISTENT CARD STYLES ---- */
    .stat-card,
    .metric-card,
    .server-card,
    .section-card,
    .card,
    .section,
    .detail-item,
    .recipient-item {
        border-radius: 12px !important;
        padding: 14px 16px !important;
        border: 1px solid rgba(255,255,255,0.08) !important;
        background: var(--bg-secondary, #1e293b) !important;
    }
    
    /* ---- CONSISTENT CONTAINER SPACING ---- */
    .container,
    .main-content,
    .content-area {
        padding: 12px !important;
        padding-bottom: 100px !important;
        margin: 0 !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
    
    /* ---- PAGE HEADER COMPACT ---- */
    .page-header {
        padding: 16px !important;
        margin: 0 0 12px 0 !important;
        border-radius: 12px !important;
    }
    
    .page-header h1 {
        font-size: 20px !important;
        margin-bottom: 4px !important;
    }
    
    /* ---- BUTTON TOUCH TARGETS (WCAG 44px) ---- */
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-add,
    .action-btn {
        min-height: 44px !important;
        padding: 10px 16px !important;
        font-size: 14px !important;
        border-radius: 8px !important;
    }
    
    /* ---- GAP CONSISTENCY ---- */
    .stats-grid,
    .grid,
    .cards-grid {
        gap: 12px !important;
    }
    
    /* ---- SECTIONS ---- */
    .section {
        margin: 0 0 12px 0 !important;
        padding: 14px !important;
    }

    /* =========================================
       DASHBOARD SPECIFIC
       ========================================= */
    
    /* Summary cards 2x2 grid */
    .summary,
    #summary {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 12px !important;
        padding: 0 !important;
        margin-bottom: 12px !important;
    }
    
    .summary .card,
    #summary .card {
        padding: 10px 12px !important;
        min-height: auto !important;
        gap: 10px !important;
    }
    
    .summary .card .card-icon {
        width: 36px !important;
        height: 36px !important;
        font-size: 1.2rem !important;
    }
    
    .summary .card .card-content h3,
    #summary .card .card-content h3 {
        font-size: 1.25rem !important;
    }
    
    .summary .card .card-content p,
    #summary .card .card-content p {
        font-size: 0.75rem !important;
    }
    
    /* Infrastructure grid */
    .infrastructure-grid {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 10px !important;
    }
    
    .infrastructure-grid .server-card {
        padding: 12px !important;
    }
    
    /* Dashboard toolbar — COMPACT MOBILE (single row, botones iguales) */
    .dashboard-toolbar {
        margin: 80px 12px 8px 12px !important;
        padding: 6px 10px !important;
        border-radius: 10px !important;
        gap: 8px !important;
        flex-wrap: nowrap !important;
        justify-content: flex-start !important;
        align-items: center !important;
        min-height: 36px !important;
        max-height: 50px !important;
        overflow: hidden !important;
        box-sizing: border-box !important;
    }
    
    /* Ocultar campo de búsqueda en mobile */
    .dashboard-toolbar .search-input {
        display: none !important;
    }
    
    /* Botones: flex:1 con base 0 → ambos toman el mismo espacio.
       width:auto sobreescribe el width:100% del .btn mobile base (style_v2.css).
       min-width:0 permite que se encojan más que su contenido si hace falta. */
    .dashboard-toolbar .btn {
        flex: 1 1 0 !important;
        width: auto !important;
        min-width: 0 !important;
        max-width: 45% !important;
        padding: 0 10px !important;
        height: 34px !important;
        min-height: 34px !important;
        font-size: 13px !important;
        border-radius: 7px !important;
        gap: 5px !important;
        justify-content: center !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        box-sizing: border-box !important;
        display: inline-flex !important;
        align-items: center !important;
    }
    
    /* Timestamp: ocupa el espacio restante a la derecha */
    .dashboard-toolbar .last-update {
        flex: 1 1 auto !important;
        width: auto !important;
        min-width: 60px !important;
        text-align: right !important;
        font-size: 10px !important;
        line-height: 1.3 !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        color: var(--text-secondary, #94a3b8) !important;
    }
    
    /* Ocultar botón COLAPSAR TODO - los chevrons individuales lo reemplazan */
    .collapse-all-container {
        display: none !important;
    }
    
    /* Collapsible sections */
    .collapsible-header h2 {
        font-size: 14px !important;
    }

    /* =========================================
       CONFIG PAGE
       ========================================= */
    
    /* Tabs layout */
    .tabs {
        flex-direction: column !important;
        gap: 8px !important;
        padding: 8px !important;
        border-radius: 12px !important;
    }
    
    .tab {
        width: 100% !important;
        padding: 12px 16px !important;
        min-height: 44px !important;
        justify-content: center !important;
    }
    
    /* Form groups */
    .form-group {
        margin-bottom: 16px !important;
    }
    
    .form-group label {
        font-size: 14px !important;
        margin-bottom: 8px !important;
    }
    
    .form-group input,
    .form-group select,
    .form-input,
    .form-select {
        min-height: 44px !important;
        padding: 10px 14px !important;
        font-size: 14px !important;
        border-radius: 8px !important;
    }
    
    /* Recipient list */
    .recipient-list {
        gap: 8px !important;
    }
    
    .recipient-item {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 10px !important;
    }
    
    .recipient-item .btn-remove {
        width: 100% !important;
        justify-content: center !important;
    }
    
    /* Toggle group */
    .toggle-group {
        flex-direction: column !important;
        gap: 12px !important;
    }
    
    .toggle-item {
        padding: 12px !important;
        background: var(--bg-card, #334155) !important;
        border-radius: 8px !important;
    }
    
    /* Add recipient form */
    .add-recipient-form {
        flex-direction: column !important;
        gap: 10px !important;
    }
    
    .add-recipient-form input {
        width: 100% !important;
    }
    
    .add-recipient-form .btn-add {
        width: 100% !important;
    }

    /* =========================================
       METERING PAGE
       ========================================= */
    
    /* Header compact */
    .header {
        padding: 12px 16px !important;
        border-radius: 12px !important;
        margin-bottom: 12px !important;
        flex-direction: column !important;
        gap: 12px !important;
    }
    
    .header-left h1 {
        font-size: 18px !important;
    }
    
    .date-filter {
        width: 100% !important;
        flex-wrap: wrap !important;
    }
    
    .date-filter select {
        flex: 1 !important;
        min-width: 0 !important;
    }
    
    .date-filter button {
        padding: 8px 12px !important;
    }
    
    /* Live status badge compact */
    .live-status {
        padding: 4px 8px !important;
        font-size: 11px !important;
    }
    
    /* Grid cards */
    .grid {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }
    
    .card {
        margin-bottom: 0 !important;
        padding: 16px !important;
    }
    
    .card-header {
        margin-bottom: 12px !important;
        padding-bottom: 10px !important;
    }
    
    .card-title {
        font-size: 15px !important;
    }
    
    /* Metric rows */
    .metric {
        padding: 10px 0 !important;
    }
    
    .metric-label {
        font-size: 13px !important;
    }
    
    .metric-value {
        font-size: 14px !important;
    }

    /* =========================================
       BBDD PAGE (Documentos RAG)
       ========================================= */
    
    /* Stats bar horizontal scroll */
    .stats-bar {
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        padding: 12px 16px !important;
        gap: 16px !important;
        -webkit-overflow-scrolling: touch !important;
    }
    
    .stat-item {
        flex-shrink: 0 !important;
    }
    
    .stat-value {
        font-size: 1.1rem !important;
    }
    
    .stat-label {
        font-size: 0.7rem !important;
    }
    
    /* Content area */
    .content-area {
        padding: 16px !important;
    }
    
    /* File grid responsive */
    .file-grid {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }
    
    .file-card {
        padding: 14px !important;
    }
    
    .file-card-icon {
        font-size: 2rem !important;
    }
    
    .file-card-name {
        font-size: 14px !important;
    }
    
    /* Breadcrumb compact */
    .breadcrumb {
        padding: 8px 12px !important;
        font-size: 13px !important;
        overflow-x: auto !important;
    }
    
    /* Drop zone compact */
    .drop-zone {
        padding: 32px 16px !important;
    }
    
    .drop-zone-icon {
        font-size: 2rem !important;
    }
    
    .drop-zone-text {
        font-size: 14px !important;
    }

    /* =========================================
       CHAT PAGE
       ========================================= */
    
    /* Chat container */
    .chat-container {
        height: calc(100vh - 140px) !important;
    }
    
    /* Messages area */
    .messages-container {
        padding: 12px !important;
    }
    
    .message {
        padding: 12px 14px !important;
        border-radius: 12px !important;
        max-width: 90% !important;
    }
    
    /* Input area */
    .chat-input-area {
        padding: 12px !important;
    }
    
    .chat-input {
        min-height: 44px !important;
        padding: 10px 14px !important;
        font-size: 14px !important;
    }
    
    /* Audio/camera modals */
    .mic-permission-modal,
    .camera-modal {
        width: 95% !important;
        max-width: none !important;
    }

    /* =========================================
       SAAS PAGE
       ========================================= */
    
    /* Hide sidebar on mobile */
    .sidebar {
        display: none !important;
    }
    
    .main-content {
        margin-left: 0 !important;
        margin-top: 0 !important;
        padding: 12px !important;
    }
    
    /* Stats cards */
    .stats-cards {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 12px !important;
        margin-bottom: 16px !important;
    }
    
    .stat-card {
        padding: 14px !important;
    }
    
    .stat-card h3 {
        font-size: 12px !important;
    }
    
    .stat-card .stat-value {
        font-size: 1.25rem !important;
    }
    
    /* Header with search - SOLO headers que NO son el nav principal */
    /* FIX 2026-02-18: "header{}" rompía header.main-header en todas las páginas */
    header:not(.main-header) {
        flex-direction: column !important;
        padding: 12px 16px !important;
        gap: 12px !important;
    }

    /* FIX: main-header siempre horizontal (hamburger + logo a la izquierda) */
    header.main-header {
        flex-direction: row !important;
        align-items: center !important;
        justify-content: space-between !important;
        flex-wrap: nowrap !important;
    }

    /* FIX: ocultar favicon en header mobile (el hamburger es suficiente para nav) */
    header.main-header .logo img,
    header.main-header .logo-section img {
        display: none !important;
    }
    
    .search-bar {
        width: 100% !important;
        max-width: none !important;
    }
    
    .user-info,
    .notifications {
        display: none !important;
    }

    /* =========================================
       LIVE BROWSER PAGE
       ========================================= */
    
    /* Container full width - SCOPED to live-browser via body class or page-specific ID */
    body.live-browser-page .container,
    #liveViewerApp .container,
    .live-browser-layout .container {
        padding: 4px !important;
    }
    
    /* Header toolbar compact */
    .header {
        padding: 4px 8px !important;
        gap: 6px !important;
        min-height: 36px !important;
        border-radius: 6px 6px 0 0 !important;
    }
    
    .live-logo {
        font-size: 14px !important;
    }
    
    .version-badge {
        font-size: 8px !important;
    }
    
    /* URL bar */
    .url-bar {
        min-width: 0 !important;
        flex: 1 !important;
    }
    
    .url-input {
        padding: 8px 12px !important;
        font-size: 13px !important;
    }
    
    /* Browser toolbar */
    .browser-toolbar {
        padding: 6px 10px !important;
        min-height: 40px !important;
        gap: 6px !important;
    }
    
    /* Toolbar dropdown buttons */
    .toolbar-dropdown-btn {
        padding: 6px 8px !important;
        font-size: 11px !important;
    }
    
    .toolbar-dropdown-btn svg {
        width: 12px !important;
        height: 12px !important;
    }
    
    /* Status indicator */
    .status-indicator {
        padding: 4px 10px !important;
        font-size: 11px !important;
    }
    
    .status-dot {
        width: 8px !important;
        height: 8px !important;
    }
    
    /* Control buttons */
    .controls {
        gap: 6px !important;
    }
    
    .btn {
        padding: 8px 12px !important;
        font-size: 12px !important;
    }
    
    .toggle-btn {
        padding: 6px 10px !important;
        font-size: 11px !important;
    }
}

/* =========================================
   SMALLER MOBILE (max-width: 430px)
   ========================================= */

@media (max-width: 430px) {
    
    /* Even more compact typography */
    h1, .page-title {
        font-size: 18px !important;
    }
    
    h2, .section-title {
        font-size: 15px !important;
    }
    
    /* Tighter padding */
    .container,
    .main-content,
    .content-area {
        padding: 10px !important;
        padding-bottom: 100px !important;
    }
    
    .page-header {
        padding: 14px !important;
    }
    
    .section {
        padding: 12px !important;
    }
    
    /* Cards even more compact */
    .stat-card,
    .card {
        padding: 12px !important;
    }
    
    /* Dashboard summary */
    .summary .card .card-content h3,
    #summary .card .card-content h3 {
        font-size: 1.1rem !important;
    }
    
    /* Stats cards for SaaS */
    .stats-cards {
        grid-template-columns: 1fr 1fr !important;
    }
    
    .stat-card .stat-value {
        font-size: 1.1rem !important;
    }
    
    /* Metering header */
    .header-left h1 {
        font-size: 16px !important;
    }
    
    /* File grid bbdd */
    .file-card {
        padding: 12px !important;
    }
    
    .file-card-icon {
        font-size: 1.75rem !important;
    }
    
    /* Live browser even more compact */
    .live-logo {
        font-size: 12px !important;
    }
    
    .url-input {
        padding: 6px 10px !important;
        font-size: 12px !important;
    }
}

/* =========================================
   VERY SMALL (max-width: 375px)
   ========================================= */

@media (max-width: 375px) {
    
    h1, .page-title {
        font-size: 17px !important;
    }
    
    /* Single column for stats on very small */
    .stats-cards {
        grid-template-columns: 1fr !important;
    }
    
    /* Infrastructure grid single column */
    .infrastructure-grid {
        grid-template-columns: 1fr !important;
    }
    
    /* Summary 2x2 stays but tighter */
    .summary,
    #summary {
        gap: 8px !important;
    }
    
    .summary .card .card-content h3 {
        font-size: 1rem !important;
    }
}
