/**
 * Advanced IP Blocker - Admin Panel Styles
 * Version: 8.5.7
 */

/* ==========================================================================
   PALETA DE COLORES CORPORATIVA (VARIABLES CSS)
   ========================================================================== */
:root {
    --advaipbl-color-primary: #2271b1;       /* Color de marca para acentos principales */
	--advaipbl-color-header: #2271b1;       /* Fondo nativo */
    --advaipbl-color-secondary: #43b4e6;     /* Azul claro para acentos secundarios */
    --advaipbl-color-text-light: #ffffff;   /* Texto sobre fondos oscuros/de color */
    --advaipbl-color-text-dark: #1d2327;    /* Títulos y texto importante */
    --advaipbl-color-text-body: #444444;     /* Texto de párrafo principal */
    --advaipbl-color-border: #dcdcde;        /* Bordes estándar */
    --advaipbl-color-background-alt: #f0f0f1;/* Fondos alternativos sutiles */
    
    /* Colores de Estado Estándar */
    --advaipbl-color-success: #00a32a;
    --advaipbl-color-warning: #f59e0b;
    --advaipbl-color-error: #d63638;
}

/* ==========================================================================
   CABECERA, NAVEGACIÓN Y LAYOUT GENERAL
   ========================================================================== */
.advaipbl-header { background-color: var(--advaipbl-color-header); padding: 15px 25px; margin: 10px -20px 20px -20px; display: flex; align-items: center; gap: 20px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); box-sizing: border-box; }
.advaipbl-header-logo img { display: block; height: 48px; width: auto; max-width: 350px; }
.advaipbl-header-title h1 { color: var(--advaipbl-color-text-light); font-size: 24px; font-weight: 600; margin: 0; line-height: 1.2; }
.advaipbl-main-nav-wrapper { overflow-x: auto; overflow-y: hidden; -webkit-overflow-scrolling: touch; border-bottom: 1px solid var(--advaipbl-color-border); }
.advaipbl-main-nav-wrapper .nav-tab-wrapper { border-bottom: none; white-space: nowrap; padding-bottom: 0; margin-bottom: 0; }
.advaipbl-main-nav-wrapper .nav-tab { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; padding: 10px 15px; margin-bottom: -1px; background: transparent; border: none; border-bottom: 2px solid transparent; transition: all 0.2s ease-in-out; }
.advaipbl-main-nav-wrapper .nav-tab:hover { background-color: var(--advaipbl-color-background-alt); color: var(--advaipbl-color-primary); }
.nav-tab.nav-tab-active, .nav-tab.nav-tab-active:hover { background-color: var(--advaipbl-color-text-light); font-weight: 600; color: var(--advaipbl-color-primary); border-bottom-color: var(--advaipbl-color-primary); }
.advaipbl-sub-nav-wrapper { background-color: #f6f7f7; border-bottom: 1px solid var(--advaipbl-color-border); padding: 5px 10px; margin: 0 -20px 25px -20px; overflow-x: auto; white-space: nowrap; }
.advaipbl-sub-nav-item { display: inline-block; padding: 6px 12px; margin: 3px; text-decoration: none; color: var(--advaipbl-color-primary); border-radius: 3px; font-size: 13px; transition: background-color 0.2s; }
.advaipbl-sub-nav-item:hover { background-color: #e0e0e0; }
.advaipbl-sub-nav-item.active { background-color: var(--advaipbl-color-primary); color: var(--advaipbl-color-text-light); font-weight: 600; }
.advaipbl-card { background: var(--advaipbl-color-text-light); padding: 20px 25px; border: 1px solid var(--advaipbl-color-border); box-shadow: 0 1px 1px rgba(0,0,0,.04); margin-top: 25px; border-radius: 4px; }
.advaipbl-card h2, .advaipbl-card h3 { color: var(--advaipbl-color-text-dark); margin-top: 0; padding-bottom: 10px; border-bottom: 1px solid #e0e0e0; }
.widefat { border-radius: 4px; border: 1px solid var(--advaipbl-color-border); box-shadow: none; }
.form-table td .description { display: block; clear: both; padding-top: 8px; }

/* ==========================================================================
   ESTILO GLOBAL PARA EL CONTADOR DE NOTIFICACIONES
   ========================================================================== */
.advaipbl-block-count {
    display: inline-block;
    vertical-align: baseline;
    position: relative;
    top: -1px;
    background-color: var(--advaipbl-color-error);
    color: var(--advaipbl-color-text-light) !important;
    font-size: 11px;
    line-height: 1.5;
    font-weight: 600;
    border-radius: 10px;
    padding: 0 7px;
    margin-left: 8px;
}

/* ==========================================================================
   MODALES (MAPA, CONFIRMACIÓN, ETC.)
   ========================================================================== */

#mapModal { display: none; position: fixed; z-index: 9999; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(0,0,0,0.7); justify-content: center; align-items: center; padding: 20px; box-sizing: border-box; }
#mapModalContent { background: var(--advaipbl-color-text-light); border-radius: 8px; max-width: 90%; width: 100%; max-height: 90%; position: relative; display: flex; flex-direction: column; overflow: hidden; box-shadow: 0 0 20px rgba(0,0,0,0.3); }
#mapModalHeader { padding: 10px 15px; text-align: right; background-color: var(--advaipbl-color-background-alt); border-bottom: 1px solid var(--advaipbl-color-border); }
#mapModalFrame { width: 100%; height: 70vh; border: none; }

.advaipbl-modal-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.6); z-index: 10000; display: flex; align-items: center; justify-content: center; }
.advaipbl-modal-content { display: flex; flex-direction: column; max-height: 90vh; background: var(--advaipbl-color-text-light); padding: 20px 30px; border-radius: 4px; width: 90%; max-width: 500px; box-shadow: 0 5px 15px rgba(0,0,0,0.3); }
.advaipbl-modal-title { color: var(--advaipbl-color-text-dark); margin-top: 0; border-bottom: 1px solid var(--advaipbl-color-border); padding-bottom: 15px; font-size: 1.3em; }
.advaipbl-modal-body { overflow-y: auto; flex-grow: 1; padding: 15px; border-top: 1px solid var(--advaipbl-color-border); border-bottom: 1px solid var(--advaipbl-color-border); background-color: #f9f9f9; }
.advaipbl-modal-footer { text-align: right; border-top: 1px solid var(--advaipbl-color-border); padding-top: 15px; }
.advaipbl-modal-footer .button { margin-left: 10px; }

/* ==========================================================================
   TABLAS Y PAGINACIÓN
   ========================================================================== */
.tablenav-pages .page-numbers { font-size: 14px; padding: 5px 10px; margin: 0 2px; border-radius: 4px; transition: background-color 0.2s, color 0.2s; border: 1px solid var(--advaipbl-color-border); background-color: #f6f7f7; color: var(--advaipbl-color-primary); text-decoration: none; }
.tablenav-pages .page-numbers.current { background-color: var(--advaipbl-color-primary); border-color: var(--advaipbl-color-primary); color: var(--advaipbl-color-text-light); font-weight: bold; }
.tablenav-pages a.page-numbers:hover { border-color: var(--advaipbl-color-primary); background-color: var(--advaipbl-color-background-alt); color: var(--advaipbl-color-primary); }
.tablenav-pages .dots { padding: 6px 4px; border: none; background-color: transparent; }

/* ==========================================================================
   DASHBOARD Y WIDGETS
   ========================================================================== */
#advaipbl-dashboard { position: relative; min-height: 400px; }
.advaipbl-loader-wrapper { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 50px; color: #666; }
.advaipbl-loader { border: 5px solid var(--advaipbl-color-background-alt); border-top: 5px solid var(--advaipbl-color-secondary); border-radius: 50%; width: 50px; height: 50px; animation: advaipbl-spin 1s linear infinite; margin-bottom: 15px; }
@keyframes advaipbl-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
.advaipbl-dashboard-row { display: flex; flex-wrap: wrap; gap: 20px; box-sizing: border-box; margin-bottom: 20px; align-items: stretch; }
#advaipbl-map-wrapper { flex-grow: 1; position: relative; }
.advaipbl-dashboard-widget { background: var(--advaipbl-color-text-light); border: 1px solid var(--advaipbl-color-border); padding: 20px; border-radius: 4px; box-shadow: 0 1px 1px rgba(0,0,0,.04); display: flex; flex-direction: column; width: auto; box-sizing: border-box; }
.widget-full { flex: 1 1 100%; }
.widget-third { flex: 1 1 0; min-width: 0; }
.widget-two-thirds { flex: 2 1 0; min-width: 0; }
.advaipbl-widget-footer { margin-top: auto; padding-top: 1em; text-align: right; border-top: 1px solid var(--advaipbl-color-background-alt); }
.advaipbl-widget-footer a { text-decoration: none; font-weight: 600; color: var(--advaipbl-color-primary); }
@media screen and (max-width: 960px) { .widget-third, .widget-two-thirds { flex-basis: 100%; flex-grow: 1; } }
.advaipbl-dashboard-widget h3, .advaipbl-dashboard-widget h4 { color: var(--advaipbl-color-text-dark); margin-top: 0; padding-bottom: 15px; border-bottom: 1px solid #eee; flex-shrink: 0; }
.advaipbl-summary-stats { display: flex; align-items: center; gap: 20px; }
.advaipbl-summary-chart { flex: 0 0 150px; height: 150px; }
.advaipbl-summary-legend { flex: 1; }
.advaipbl-summary-legend h4 { margin-top: 0; font-size: 14px; }
.advaipbl-summary-legend .legend-item { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; font-size: 13px; }
.advaipbl-summary-legend .legend-label-group { display: flex; align-items: center; }
.advaipbl-summary-legend .legend-color-box { width: 12px; height: 12px; margin-right: 8px; border-radius: 3px; flex-shrink: 0; }
.advaipbl-summary-legend .legend-value { font-weight: 600; padding-left: 10px; }
.advaipbl-timeline-chart-container { position: relative; height: 300px; width: 100%; }
.advaipbl-top-list { width: 100%; flex-grow: 1; }
.advaipbl-top-list table { width: 100%; border-collapse: collapse; }
.advaipbl-top-list td { padding: 8px 4px; border-bottom: 1px solid var(--advaipbl-color-background-alt); font-size: 13px; }
.advaipbl-top-list tr:last-child td { border-bottom: none; }
.advaipbl-top-list td:last-child { text-align: right; font-weight: 600; }
.advaipbl-top-list code { background: var(--advaipbl-color-background-alt); padding: 2px 5px; border-radius: 3px; }
.advaipbl-top-list .country-cell { display: flex; align-items: center; gap: 8px; }
.advaipbl-top-list .country-flag { border: 1px solid #eee; flex-shrink: 0; }
.advaipbl-status-list { display: flex; flex-direction: column; gap: 12px; }
.advaipbl-status-item { display: flex; align-items: center; font-size: 13px; }
.advaipbl-status-item .dashicons { font-size: 20px; width: 20px; height: 20px; margin-right: 8px; }
.advaipbl-status-label { flex-grow: 1; }
.advaipbl-status-tag { font-weight: bold; font-size: 11px; padding: 2px 6px; border-radius: 3px; }
.advaipbl-status-tag.enabled { background-color: #e7f7e7; color: #006400; }
.advaipbl-status-tag.disabled { background-color: var(--advaipbl-color-background-alt); color: #555; }
.advaipbl-status-widget { display: flex; align-items: center; gap: 15px; margin: 10px 0; }
.advaipbl-status-widget .dashicons { font-size: 40px; width: 40px; height: 40px; }
.advaipbl-status-icon-success { color: var(--advaipbl-color-success); }
.advaipbl-status-icon-disabled { color: #999; }
.advaipbl-pulse-icon { background-color: rgba(231, 76, 60, 0.9); border-radius: 50%; width: 20px; height: 20px; border: 2px solid rgba(255, 255, 255, 0.8); box-shadow: 0 0 5px rgba(0,0,0,0.5); }
.advaipbl-pulse-icon div { position: absolute; top: -5px; left: -5px; width: 30px; height: 30px; border-radius: 50%; background-color: rgba(231, 76, 60, 0.7); animation: pulse-animation 1.5s ease-out infinite; }
@keyframes pulse-animation { 0% { transform: scale(0); opacity: 0.8; } 100% { transform: scale(1.5); opacity: 0; } }

/* ==========================================================================
   ESTILOS ESPECÍFICOS Y UTILIDADES
   ========================================================================== */
.advaipbl-table-responsive-wrapper { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--advaipbl-color-border); border-radius: 4px; }
.advaipbl-table-responsive-wrapper .wp-list-table { border: none; min-width: 600px; }
.advaipbl-table-responsive-wrapper .wp-list-table td.column-primary, .advaipbl-table-responsive-wrapper .wp-list-table th.column-primary { width: auto !important; }
.signature-components { list-style: disc; padding-left: 20px; background: #f9f9f9; border: 1px solid #eee; padding: 15px; margin-bottom: 20px; word-break: break-all; }
.signature-components code { background: #e0e0e0; }
.advaipbl-threat-scores-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 15px 25px; margin-top: 10px; }
.advaipbl-threat-score-item { display: flex; align-items: center; justify-content: space-between; background-color: #f6f7f7; padding: 10px 15px; border-radius: 4px; border: 1px solid var(--advaipbl-color-border); }
.advaipbl-threat-score-item label { font-weight: 600; color: var(--advaipbl-color-text-dark); padding-right: 10px; }
.advaipbl-threat-score-item input[type="number"] { max-width: 80px; text-align: right; }

/* ==========================================================================
   INTERRUPTORES (TOGGLE SWITCHES)
   ========================================================================== */
.advaipbl-switch { position: relative; display: inline-block; width: 38px; height: 20px; vertical-align: middle; }
.advaipbl-switch input[type="checkbox"] { opacity: 0; width: 0; height: 0; }
.advaipbl-slider { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: #ccc; transition: .4s; border-radius: 20px; }
.advaipbl-slider:before { position: absolute; content: ""; height: 14px; width: 14px; left: 3px; bottom: 3px; background-color: white; transition: .4s; border-radius: 50%; }
.advaipbl-switch input:checked + .advaipbl-slider { background-color: var(--advaipbl-color-primary); }
.advaipbl-switch input:focus + .advaipbl-slider { box-shadow: 0 0 1px var(--advaipbl-color-primary); }
.advaipbl-switch input:checked + .advaipbl-slider:before { transform: translateX(18px); }

/* ==========================================================================
   LAYOUT DE LA PÁGINA DE AJUSTES CON MENÚ LATERAL
   ========================================================================== */
.advaipbl-settings-layout { display: flex; gap: 20px; align-items: flex-start; }
.advaipbl-settings-nav { width: 200px; flex-shrink: 0; position: -webkit-sticky; position: sticky; top: 50px; }
.advaipbl-settings-nav ul { list-style: none; margin-top: 25px; padding: 0; border: 1px solid var(--advaipbl-color-border); background: var(--advaipbl-color-text-light); border-radius: 4px; }
.advaipbl-settings-nav li a { display: block; padding: 10px 15px; text-decoration: none; color: var(--advaipbl-color-text-body); border-bottom: 1px solid var(--advaipbl-color-border); transition: all 0.1s ease-in-out; }
.advaipbl-settings-nav li:last-child a { border-bottom: none; }
.advaipbl-settings-nav li a:hover { background-color: var(--advaipbl-color-background-alt); color: var(--advaipbl-color-text-dark); }
.advaipbl-settings-nav li a.active { background-color: var(--advaipbl-color-primary); color: var(--advaipbl-color-text-light); font-weight: 600; box-shadow: -3px 0 0 var(--advaipbl-color-primary) inset; }
.advaipbl-settings-content { flex-grow: 1; min-width: 0; }
.advaipbl-settings-section h2:first-child { margin-top: 0; padding-top: 10px; }
@media screen and (max-width: 960px) {
    .advaipbl-settings-layout { flex-direction: column; }
    .advaipbl-settings-nav { display: none; }
}