.power-grid { max-width: 1200px; margin: 0 auto; }
.filter-bar { display: flex; gap: 10px; flex-wrap: wrap; margin: 20px 0; align-items: center; }
.filter-bar select, .filter-bar input {
    background: rgba(0,0,0,0.6); color: #C0C0C0; border: 1px solid rgba(192,192,192,0.3);
    padding: 8px 12px; font-size: var(--text-lg); font: inherit;
}
.filter-bar input { flex: 1; min-width: 200px; }
.rank-table { width: 100%; border-collapse: collapse; }
.rank-table th {
    background: rgba(192,192,192,0.15); color: #FFD700; padding: 10px 8px;
    text-align: left; cursor: pointer; user-select: none; white-space: nowrap;
    border-bottom: 2px solid rgba(192,192,192,0.3);
}
.rank-table th:hover { background: rgba(192,192,192,0.25); }
.rank-table th .sort-arrow { margin-left: 4px; font-size: var(--text-xs); }
.rank-table td { padding: 8px; border-bottom: 1px solid rgba(192,192,192,0.1); }
.rank-table tr:hover { background: rgba(192,192,192,0.08); }
.rank-table a { color: #C0C0C0; text-decoration: none; }
.rank-table a:hover { color: #FFD700; text-decoration: underline; }
.conn-bar {
    display: inline-block; height: 14px; background: linear-gradient(90deg, #FFD700, #FF6B35);
    border-radius: 2px; vertical-align: middle; margin-right: 6px; min-width: 2px;
}
.cat-badge {
    display: inline-block; padding: 2px 8px; border-radius: 3px; font-size: var(--text-xs);
    background: rgba(192,192,192,0.15); border: 1px solid rgba(192,192,192,0.3);
}
.cat-GOVERNMENT { border-color: #4a90d9; color: #4a90d9; }
.cat-PERSON_OF_INTEREST { border-color: #FFD700; color: #FFD700; }
.cat-CORPORATE { border-color: #e74c3c; color: #e74c3c; }
.cat-FINANCE { border-color: #2ecc71; color: #2ecc71; }
.cat-INTELLIGENCE { border-color: #9b59b6; color: #9b59b6; }
.cat-MEDIA { border-color: #e67e22; color: #e67e22; }
.cat-ELITE_NEXUS { border-color: #c0392b; color: #c0392b; }
.cat-ORGANIZATION { border-color: #1abc9c; color: #1abc9c; }
.cat-LOCATION { border-color: #7f8c8d; color: #7f8c8d; }
.cat-SUSPECT { border-color: #ff3333; color: #ff3333; }
.summary-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 15px; margin: 20px 0; }
.summary-card {
    background: rgba(0,0,0,0.5); border: 1px solid rgba(192,192,192,0.2);
    padding: 15px; text-align: center;
}
.summary-card .big { font-size: var(--text-4xl); color: #FFD700; font-weight: bold; }
.summary-card .label { font-size: var(--text-sm); color: #888; margin-top: 5px; }
.status-line { color: #888; font-size: var(--text-base); margin: 10px 0; }
#loading { text-align: center; padding: 60px; color: #888; }
@media (max-width: 768px) {
    .rank-table { font-size: var(--text-sm); }
    .rank-table th, .rank-table td { padding: 6px 4px; }
    .filter-bar { flex-direction: column; }
    .filter-bar input, .filter-bar select { width: 100%; }
    .conn-bar { display: none; }
}
