/** * ROI APU Search - Analytics Dashboard Styles * * @package ROI_APU_Search * @since 1.2.0 */ /* ================================================================= WordPress Admin Fixes ================================================================= */ /* Fix: WordPress limita ancho de cards */ body .card { max-width: none !important; } /* Fix: WordPress admin puede afectar tipografia */ .dashboard-analytics-wrap { font-family: 'Poppins', -apple-system, BlinkMacSystemFont, sans-serif; } /* Fix: Asegurar que Bootstrap no colisione con WP admin */ .dashboard-analytics-wrap .btn { text-transform: none; } /* Fix: Reset WP admin styles dentro del dashboard */ .dashboard-analytics-wrap h1, .dashboard-analytics-wrap h2, .dashboard-analytics-wrap h3, .dashboard-analytics-wrap h4, .dashboard-analytics-wrap h5, .dashboard-analytics-wrap h6 { font-family: 'Poppins', -apple-system, BlinkMacSystemFont, sans-serif; } /* ================================================================= Admin Notice Styles ================================================================= */ .admin-notice { border-left: 4px solid; border-radius: 4px; padding: 1rem; margin-bottom: 1rem; } /* Error - CTR 0% (critico) */ .admin-notice.notice-error { border-color: #ef4444; background-color: #fef2f2; color: #7f1d1d; } /* Warning - Posts infraposicionados (oportunidad) */ .admin-notice.notice-warning { border-color: #f59e0b; background-color: #fffbeb; color: #78350f; } /* Info - Sin resultados */ .admin-notice.notice-info { border-color: #0284c7; background-color: #e7f3ff; color: #0c4a6e; } /* Success - Feedback export */ .admin-notice.notice-success { border-color: #22c55e; background-color: #f0fdf4; color: #166534; } /* ================================================================= Loading State ================================================================= */ #loadingState { display: none; } .dashboard-analytics-wrap.is-loading #loadingState { display: block; } .dashboard-analytics-wrap.is-loading #dashboardContent { display: none; } /* ================================================================= Table Loading State (overlay sin cambiar tamaño) ================================================================= */ .dashboard-analytics-wrap .card.is-loading-table { position: relative; pointer-events: none; } .dashboard-analytics-wrap .card.is-loading-table::after { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(255, 255, 255, 0.7); z-index: 10; } .dashboard-analytics-wrap .card.is-loading-table::before { content: ''; position: absolute; top: 50%; left: 50%; width: 24px; height: 24px; margin: -12px 0 0 -12px; border: 3px solid #f3f3f3; border-top: 3px solid #FF8600; border-radius: 50%; z-index: 11; animation: spin 0.8s linear infinite; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } /* ================================================================= KPI Cards - Sin efecto hover ================================================================= */ .dashboard-analytics-wrap .card { /* Sin transiciones de movimiento */ } /* ================================================================= Tables ================================================================= */ .dashboard-analytics-wrap .table { font-size: 0.875rem; } .dashboard-analytics-wrap .table th { font-weight: 600; white-space: nowrap; } /* ================================================================= Export Card ================================================================= */ .export-card { border: 2px dashed #dee2e6; transition: border-color 0.2s ease; } .export-card:hover { border-color: #FF8600; } /* ================================================================= Pagination - Estilo igual al sitio principal ================================================================= */ .dashboard-analytics-wrap .pagination { gap: 0.25rem; flex-wrap: wrap; } .dashboard-analytics-wrap .pagination .page-item .page-link { padding: 8px 16px; margin: 0 4px; border-radius: 6px; border: 1px solid #e5e7eb; font-size: 1rem; min-height: 42px; display: flex; align-items: center; justify-content: center; color: #374151; background-color: #fff; text-decoration: none; transition: all 0.2s ease; } .dashboard-analytics-wrap .pagination .page-item .page-link:hover { background-color: #f3f4f6; border-color: #d1d5db; color: #111827; } .dashboard-analytics-wrap .pagination .page-item.active .page-link { background-color: #FF8600; border-color: #FF8600; color: #fff; } .dashboard-analytics-wrap .pagination .page-item.disabled .page-link { background-color: #f9fafb; border-color: #e5e7eb; color: #9ca3af; cursor: not-allowed; } /* Botones de navegación (flechas) */ .dashboard-analytics-wrap .pagination .page-item .page-link i { font-size: 0.875rem; } /* ================================================================= Collapsible Cards ================================================================= */ .dashboard-analytics-wrap .collapsible-section { margin-bottom: 1rem; } .dashboard-analytics-wrap .collapsible-header { cursor: pointer; transition: all 0.2s ease; text-align: left; font-family: 'Poppins', -apple-system, BlinkMacSystemFont, sans-serif; } .dashboard-analytics-wrap .collapsible-header:hover { filter: brightness(1.1); } .dashboard-analytics-wrap .collapsible-header:focus { outline: none; box-shadow: 0 0 0 2px rgba(255, 134, 0, 0.5); } /* Chevron rotation */ .dashboard-analytics-wrap .collapse-chevron { transition: transform 0.3s ease; font-size: 1rem; } .dashboard-analytics-wrap .collapsible-header:not(.collapsed) .collapse-chevron { transform: rotate(180deg); } /* Header bordes */ .dashboard-analytics-wrap .collapsible-header { border-radius: 0.375rem; } .dashboard-analytics-wrap .collapsible-header:not(.collapsed) { border-radius: 0.375rem 0.375rem 0 0; } /* Card sin borde superior cuando está expandido */ .dashboard-analytics-wrap .collapsible-section .card { border-top-left-radius: 0; border-top-right-radius: 0; border-top: none; } /* Loading en collapsible section */ .dashboard-analytics-wrap .collapsible-section.is-loading-table { position: relative; pointer-events: none; } .dashboard-analytics-wrap .collapsible-section.is-loading-table::after { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(255, 255, 255, 0.7); z-index: 10; border-radius: 0.375rem; } .dashboard-analytics-wrap .collapsible-section.is-loading-table::before { content: ''; position: absolute; top: 50%; left: 50%; width: 24px; height: 24px; margin: -12px 0 0 -12px; border: 3px solid #f3f3f3; border-top: 3px solid #FF8600; border-radius: 50%; z-index: 11; animation: spin 0.8s linear infinite; } /* ================================================================= Responsive ================================================================= */ @media (max-width: 782px) { .dashboard-analytics-wrap .admin-notice { padding: 0.75rem; } .dashboard-analytics-wrap .card-body { padding: 0.75rem; } .dashboard-analytics-wrap .pagination .page-item .page-link { padding: 6px 12px; font-size: 0.875rem; min-height: 36px; margin: 0 2px; } }