/* Aggregator hub v2 — readable tabs, cards, typography */

.layout-aggregator-tech {
  color: var(--text-primary, #f5f5f5);
  background: var(--bg-primary, #12121a);
}

.agg-main-wrap {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 16px 48px;
}

.agg-hub-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 12px;
  margin: 12px 0;
  border-radius: 14px;
  background: rgba(0, 0, 0, 0.45);
  border: 1px solid rgba(0, 255, 136, 0.25);
}

.agg-hub-tab {
  padding: 10px 14px;
  border-radius: 10px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.04);
  color: var(--text-secondary, #d8d8d8);
  font-size: 0.9rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
}

.agg-hub-tab:hover {
  color: var(--text-primary, #fff);
  border-color: rgba(0, 212, 255, 0.35);
  background: rgba(0, 212, 255, 0.08);
}

.agg-hub-tab.active {
  color: #041018;
  border-color: transparent;
  background: linear-gradient(135deg, var(--primary, #00ff88), var(--secondary, #00d4ff));
}

.agg-route-note {
  margin: 0 0 16px;
  padding: 10px 14px;
  border-radius: 10px;
  font-size: 0.9rem;
  color: var(--text-secondary, #d0d0d0);
  background: rgba(0, 212, 255, 0.08);
  border: 1px solid rgba(0, 212, 255, 0.22);
}

.agg-v2-progress-strip {
  margin-bottom: 16px;
}

.agg-v2-progress-track {
  height: 8px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  overflow: hidden;
}

.agg-v2-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, #00ff88, #00d4ff);
  transition: width 0.35s ease;
}

.agg-tab-panel h2 {
  color: var(--primary, #00ff88);
  font-size: 1.2rem;
  margin: 0 0 12px;
}

.agg-tab-panel p {
  color: var(--text-secondary, #d5d5d5);
  line-height: 1.55;
}

.agg-v2-muted {
  color: var(--text-muted, #a8a8b8);
  font-size: 0.92rem;
}

.agg-v2-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 16px;
}

.agg-v2-toolbar select,
.agg-v2-toolbar input {
  padding: 9px 12px;
  border-radius: 10px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  background: rgba(0, 0, 0, 0.35);
  color: var(--text-primary, #fff);
  font-size: 0.9rem;
}

.agg-v2-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 14px;
}

.agg-v2-card {
  padding: 16px;
  border-radius: 14px;
  background: rgba(30, 30, 46, 0.95);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: var(--text-primary, #fff);
}

.agg-v2-card h3 {
  margin: 0 0 8px;
  font-size: 1rem;
  color: var(--primary, #00ff88);
}

.agg-v2-meta {
  font-size: 0.8rem;
  color: var(--text-muted, #aaa);
  margin: 0 0 8px;
}

.agg-v2-desc {
  font-size: 0.88rem;
  line-height: 1.5;
  color: var(--text-secondary, #ddd);
  margin: 0 0 10px;
}

.agg-v2-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 12px;
}

.agg-v2-tag {
  font-size: 0.72rem;
  padding: 3px 8px;
  border-radius: 999px;
  background: rgba(0, 255, 136, 0.1);
  color: #9dffd0;
  border: 1px solid rgba(0, 255, 136, 0.22);
}

.agg-v2-btn {
  padding: 8px 14px;
  border-radius: 10px;
  border: none;
  background: linear-gradient(135deg, #00ff88, #00cc6a);
  color: #041018;
  font-weight: 700;
  font-size: 0.85rem;
  cursor: pointer;
}

.agg-v2-card--rank {
  position: relative;
  padding-top: 28px;
}

.agg-v2-rank {
  position: absolute;
  top: 10px;
  right: 12px;
  font-size: 0.85rem;
  font-weight: 800;
  color: #ffd166;
}

.agg-v2-playbook {
  margin: 0;
  padding-left: 1.2rem;
  color: var(--text-secondary, #ddd);
}

.agg-v2-playbook li {
  margin-bottom: 12px;
  line-height: 1.5;
}

.agg-v2-playbook strong {
  display: block;
  color: var(--primary, #00ff88);
  margin-bottom: 4px;
}

.agg-v2-milestones {
  list-style: none;
  padding: 0;
  margin: 0;
}

.agg-v2-milestones li {
  padding: 10px 12px;
  margin-bottom: 8px;
  border-radius: 10px;
  background: rgba(0, 0, 0, 0.28);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: var(--text-secondary, #ccc);
}

.agg-v2-milestones li.done {
  border-color: rgba(0, 255, 136, 0.35);
  color: #c8ffe0;
}

/* Explorer panels — higher contrast */
.agg-panel {
  background: rgba(20, 24, 32, 0.95) !important;
  border: 1px solid rgba(255, 255, 255, 0.14) !important;
  color: var(--text-primary, #f0f0f0);
}

.agg-panel h3 {
  color: var(--secondary, #00d4ff);
  font-size: 0.95rem;
  margin: 0 0 10px;
}

.agg-user-print,
.agg-chat-log,
.agg-progress-reader {
  color: var(--text-secondary, #e0e0e0);
  font-size: 0.88rem;
  line-height: 1.45;
}

.agg-chat-input-row input {
  color: #fff;
  background: rgba(0, 0, 0, 0.4);
  border: 1px solid rgba(255, 255, 255, 0.2);
}

.agg-intel-section .intel-loading-agg {
  color: var(--text-muted, #aaa);
}

.agg-encoder textarea {
  color: var(--text-primary, #fff);
  background: rgba(0, 0, 0, 0.35);
  border: 1px solid rgba(255, 255, 255, 0.15);
}

.agg-encoder code {
  color: #b8efff;
}
