.ilx{font-family:var(--ds-font)!important;-webkit-font-smoothing:antialiased;color:var(--ds-ink);max-width:1500px;margin:0 auto;padding:28px 0 48px}
.ilx-hd{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px;gap:16px}
.ilx-hd h1{font-size:24px;font-weight:700;letter-spacing:-.03em;margin:0;line-height:1.2}
.ilx-hd p{font-size:13.5px;color:var(--ds-ink3);margin:6px 0 0}
.ilx-hd-acts{display:flex;gap:8px;flex-shrink:0}
.ilx-btn{display:inline-flex;align-items:center;gap:6px;font-family:var(--ds-font);font-size:13px;font-weight:600;padding:9px 18px;border-radius:10px;border:1px solid var(--ds-border2);cursor:pointer;transition:all .14s;white-space:nowrap;background:var(--ds-surface);color:var(--ds-ink2)}
.ilx-btn:hover{background:var(--ds-surface3)}
.ilx-btn-primary{background:var(--ds-blue);color:#fff;border-color:var(--ds-blue);box-shadow:0 2px 8px rgba(37,99,235,.25)}
.ilx-btn-primary:hover{background:var(--ds-blue-dark)}

/* ── Resumen compacto: 3 KPIs en una fila ── */
.ilx-summary{display:flex;gap:10px;margin-bottom:20px}
.ilx-summary-kpi{flex:1;background:var(--ds-bg);border:1px solid var(--ds-border);border-radius:12px;padding:16px 20px;text-align:center}
.ilx-summary-num{font-size:26px;font-weight:700;line-height:1;color:var(--ds-ink);letter-spacing:-.02em}
.ilx-summary-blue{color:var(--ds-blue)}
.ilx-summary-green{color:var(--ds-green)}
.ilx-summary-red{color:var(--ds-red)}
.ilx-summary-label{font-size:12px;color:var(--ds-ink3);margin-top:6px}
.ilx-summary-sub{font-size:11px;color:var(--ds-ink4);margin-top:3px}

/* ── Barra de filtros ── */
.ilx-filterbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:12px 0;margin-bottom:4px;border-top:1px solid var(--ds-border);border-bottom:1px solid var(--ds-border)}
.ilx-filtergroup{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.ilx-filter-lbl{font-size:11px;font-weight:600;color:var(--ds-ink4);text-transform:uppercase;letter-spacing:.05em;margin-right:2px}
.ilx-filter-divider{width:1px;height:20px;background:var(--ds-border);flex-shrink:0}
.ilx-chip{font-family:var(--ds-font);font-size:12px;font-weight:500;padding:5px 12px;border-radius:6px;border:1px solid var(--ds-border2);background:var(--ds-surface);color:var(--ds-ink2);cursor:pointer;transition:background .14s,border-color .14s,color .14s;white-space:nowrap;line-height:1.4}
.ilx-chip:hover{background:var(--ds-surface3);border-color:var(--ds-ink4)}
.ilx-chip.is-active{background:var(--ds-blue-lt);border-color:var(--ds-blue);color:var(--ds-blue)}
.ilx-chip-n{opacity:.6;font-weight:400;margin-left:2px}
.ilx-filter-sort{margin-left:auto;display:flex;align-items:center;gap:6px;color:var(--ds-ink4)}
.ilx-filter-sort select{font-family:var(--ds-font);font-size:12px;padding:5px 10px;border-radius:var(--ds-r);border:1px solid var(--ds-border2);background:var(--ds-surface);color:var(--ds-ink2);cursor:pointer}
@media(max-width:780px){.ilx-filter-sort{margin-left:0}}
@media(max-width:600px){.ilx-summary-num{font-size:22px}.ilx-summary-kpi{padding:14px 12px}}







.ilx-graph-section{background:var(--ds-surface);border:1px solid var(--ds-border);border-radius:12px;padding:28px 32px;margin-bottom:28px}
.ilx-graph-hd{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}
.ilx-graph-title{font-size:18px;font-weight:700;color:var(--ds-ink);margin:0 0 4px}
.ilx-graph-sub{font-size:13px;color:var(--ds-ink3)}
.ilx-graph-tools{display:flex;gap:8px;align-items:center}
.ilx-graph-tool{font-family:var(--ds-font);font-size:12px;font-weight:500;color:var(--ds-ink3);background:var(--ds-surface);border:1px solid var(--ds-border);border-radius:6px;padding:5px 12px;cursor:pointer;display:flex;align-items:center;gap:5px}
.ilx-graph-body{display:flex;gap:32px;align-items:flex-start;min-height:320px}
.ilx-graph-canvas{flex:1;display:flex;align-items:center;justify-content:center;min-height:300px}
.ilx-graph-legend{flex-shrink:0;width:200px;padding-top:20px}
.ilx-legend-item{display:flex;align-items:center;gap:8px;margin-bottom:10px;font-size:13px;color:var(--ds-ink2)}
.ilx-legend-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}
.ilx-legend-dot.pilar{background:var(--ds-blue)}
.ilx-legend-dot.post{background:var(--ds-border2);border:1px solid var(--ds-border)}
.ilx-legend-line{width:20px;height:0;border-top:1px solid var(--ds-ink4);flex-shrink:0}
.ilx-legend-stats{margin-top:20px;padding-top:16px;border-top:1px solid var(--ds-border)}
.ilx-legend-stat{font-size:13px;color:var(--ds-ink3);margin-bottom:6px}
.ilx-legend-stat strong{color:var(--ds-ink);font-weight:700}
.ilx-search-bar{display:flex;gap:12px;margin-bottom:16px;align-items:center}
.ilx-search-wrap{display:flex;align-items:center;gap:8px;background:var(--ds-surface);border:1px solid var(--ds-border2);border-radius:8px;padding:0 12px;height:38px;width:100%;max-width:500px;flex:1}
.ilx-search-wrap:focus-within{border-color:var(--ds-blue);box-shadow:0 0 0 2px rgba(59,130,246,.08)}
.ilx-search-wrap svg{color:var(--ds-ink4);flex-shrink:0}
.ilx-search{border:none!important;outline:none!important;background:transparent!important;font-family:var(--ds-font);font-size:13px;color:var(--ds-ink);padding:0!important;height:100%;flex:1}
.ilx-search::placeholder{color:var(--ds-ink4)}
.ilx-search-hint{font-size:13px;color:var(--ds-ink3);margin-left:auto}
.ilx-search-hint strong{font-weight:700;color:var(--ds-ink)}
.ilx-table-wrap{background:var(--ds-surface);border:1px solid var(--ds-border);border-radius:12px;overflow:hidden}
.ilx-tbl{width:100%;border-collapse:collapse}
.ilx-tbl thead th{padding:12px 20px;text-align:left;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ds-ink4);white-space:nowrap;background:var(--ds-surface2);border-bottom:1px solid var(--ds-border)}
.ilx-tbl thead th.ilx-th-num{text-align:center;width:100px}
.ilx-tbl thead th.ilx-th-grp{text-align:center;text-transform:none;letter-spacing:0;font-size:12px;font-weight:600;padding-bottom:6px}
.ilx-tbl thead th.ilx-th-grp-rules{color:var(--ds-blue);border-left:1px solid var(--ds-border2)}
.ilx-tbl thead th.ilx-th-grp-sem{color:#7c3aed;border-left:1px solid var(--ds-border2)}
.ilx-tbl thead th.ilx-th-grp-total{border-left:1px solid var(--ds-border2)}
.ilx-tbl thead tr.ilx-th-subrow th{padding-top:0;padding-bottom:10px;font-size:10px;font-weight:400;text-transform:none;letter-spacing:0;color:var(--ds-ink4)}
.ilx-tbl thead th.ilx-th-sep{border-left:1px solid var(--ds-border2)}
.ilx-tbl tbody td.ilx-td-sep{border-left:1px solid var(--ds-border)}
.ilx-tbl tbody tr{border-bottom:1px solid var(--ds-border)}
.ilx-tbl tbody tr:last-child{border-bottom:none}
.ilx-tbl tbody tr:hover{background:rgba(37,99,235,.015)}
.ilx-tbl td{padding:11px 20px;vertical-align:middle;font-size:13px}
.ilx-post-title{font-size:14px;font-weight:500;color:var(--ds-ink);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ilx-post-title a{color:var(--ds-ink);text-decoration:none}
.ilx-post-title a:hover{color:var(--ds-blue)}
.ilx-type-badge{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:999px;line-height:1.4}
.ilx-type-post{background:var(--ds-blue-lt,rgba(37,99,235,.08));color:var(--ds-blue,#2563eb)}
.ilx-type-page{background:rgba(168,85,247,.10);color:#9333ea}
.ilx-post-date{font-size:12px;color:var(--ds-ink4)}
.ilx-num{text-align:center;font-size:14px;font-weight:600}
.ilx-num-link{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:28px;border-radius:6px;cursor:pointer;transition:all .12s;font-size:14px;font-weight:600;text-decoration:none}
.ilx-num-link:hover{transform:scale(1.05)}
.ilx-num-link.blue{color:var(--ds-blue);background:var(--ds-blue-lt)}
.ilx-num-link.green{color:var(--ds-green);background:var(--ds-green-lt)}
.ilx-num-zero{color:var(--ds-ink4);font-size:13px}
.ilx-total{font-size:16px;font-weight:700;color:var(--ds-ink);text-align:center}
.ilx-pagination{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-top:1px solid var(--ds-border);font-size:13px;color:var(--ds-ink3)}
.ilx-pg-btns{display:flex;gap:4px}
.ilx-pg-btn{font-family:var(--ds-font);font-size:12px;padding:4px 10px;border:1px solid var(--ds-border);border-radius:6px;background:var(--ds-surface);cursor:pointer;color:var(--ds-ink2)}
.ilx-pg-btn:hover{border-color:var(--ds-border2);background:var(--ds-surface2)}
.ilx-pg-btn.active{background:var(--ds-ink);color:#fff;border-color:var(--ds-ink);font-weight:700}
.ilx-empty{padding:60px 24px;text-align:center}
.ilx-empty svg{opacity:.12;margin:0 auto 14px;display:block}
.ilx-empty p{font-size:14px;font-weight:500;color:var(--ds-ink3);margin:0}
#ilx-detail-modal{position:fixed;inset:0;z-index:999999;background:rgba(0,0,0,.4);backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center}
.ilx-detail-box{background:var(--ds-surface);border-radius:16px;max-width:700px;width:94%;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 24px 60px rgba(0,0,0,.2)}
.ilx-detail-hd{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--ds-border)}
.ilx-detail-hd-title{font-size:16px;font-weight:700}
.ilx-detail-hd-sub{font-size:13px;color:var(--ds-ink3);margin-top:2px}
.ilx-detail-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:1px solid var(--ds-border);border-radius:8px;background:none;color:var(--ds-ink4);cursor:pointer}
.ilx-detail-body{flex:1;overflow-y:auto;padding:0}
.ilx-dtbl{width:100%;border-collapse:collapse}
.ilx-dtbl thead th{padding:10px 20px;text-align:left;font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ds-ink4);background:var(--ds-surface2);border-bottom:1px solid var(--ds-border);position:sticky;top:0}
.ilx-dtbl tbody tr{border-bottom:1px solid var(--ds-border)}
.ilx-dtbl td{padding:10px 20px;font-size:13px}
.ilx-dtbl .ilx-d-anchor{font-family:var(--ds-mono);font-size:12px;color:var(--ds-blue);background:var(--ds-blue-lt);padding:3px 8px;border-radius:4px}
.ilx-dtbl .ilx-d-link{color:var(--ds-blue);text-decoration:none;font-weight:500}
.ilx-dtbl .ilx-d-link:hover{text-decoration:underline}
@media(max-width:1200px){.ilx-stats{grid-template-columns:repeat(3,1fr)}}

/* Pagination */
.ilx-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px;padding:0 4px;font-size:13px;color:var(--ds-ink3);flex-wrap:wrap}
.ilx-pag-info{color:var(--ds-ink3)}
.ilx-pag-info strong{color:var(--ds-ink);font-weight:600}
.ilx-pag-controls{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.ilx-pag-btn{font-family:var(--ds-font);font-size:13px;font-weight:500;padding:6px 12px;border-radius:var(--ds-r-sm);cursor:pointer;border:1px solid var(--ds-border);background:var(--ds-surface);color:var(--ds-ink2);transition:all .12s}
.ilx-pag-btn:hover:not([disabled]){background:var(--ds-surface3);border-color:var(--ds-border2)}
.ilx-pag-btn[disabled]{opacity:.4;cursor:not-allowed}
.ilx-pag-btn.ilx-pag-active{background:var(--ds-blue);color:#fff;border-color:var(--ds-blue)}
.ilx-pag-ellipsis{padding:0 4px;color:var(--ds-ink4)}

/* Free edition safety net: the semantic columns belong to the premium
   edition. The JS already omits them when FLINK_EXITOS.semantic is 0, but
   if a cached older script paints them anyway, hide them here so the free
   edition never shows a "Semantic" column. Targets the semantic header
   group and the 5th/6th data columns (Date, Post, Rules-out, Rules-in,
   Sem-out, Sem-in, Total). */
.ilx-no-sem .ilx-tbl thead .ilx-th-grp-sem{display:none}
.ilx-no-sem .ilx-tbl thead tr.ilx-th-subrow th:nth-child(3),
.ilx-no-sem .ilx-tbl thead tr.ilx-th-subrow th:nth-child(4){display:none}
.ilx-no-sem .ilx-tbl tbody td:nth-child(5),
.ilx-no-sem .ilx-tbl tbody td:nth-child(6){display:none}
