/* ═══ DEX AGGREGATOR STYLES ═══ */

.agg-page { position:relative; min-height:calc(100vh - 60px); }
.agg-bg-overlay { position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.75);z-index:0; }
.agg-content { position:relative;z-index:1;max-width:1400px;margin:0 auto;padding:20px; }

/* Header */
.agg-header { display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:12px; }
.agg-title { margin:0;font-size:1.6rem;font-weight:800;letter-spacing:-0.5px;background:linear-gradient(135deg,#ff6b6b,#ffa726);-webkit-background-clip:text;-webkit-text-fill-color:transparent; }
.agg-subtitle { margin:4px 0 0;opacity:0.5;font-size:0.8rem; }
.agg-header-actions { display:flex;gap:4px; }

/* Tabs */
.agg-tab { padding:8px 18px;border:1px solid rgba(255,255,255,0.1);background:transparent;color:#999;border-radius:8px;cursor:pointer;font-size:0.8rem;transition:all 0.2s; }
.agg-tab:hover { color:#fff;border-color:rgba(255,255,255,0.2); }
.agg-tab.active { background:rgba(255,107,107,0.15);color:#ff6b6b;border-color:#ff6b6b; }
.agg-tab-content { animation:aggFadeIn 0.3s ease; }
@keyframes aggFadeIn { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:translateY(0)} }

/* Swap Layout */
.agg-swap-layout { display:grid;grid-template-columns:1fr 1fr;gap:24px; }
@media(max-width:900px) { .agg-swap-layout { grid-template-columns:1fr; } }

/* Swap Card */
.agg-swap-card { background:linear-gradient(145deg,rgba(20,20,25,0.95),rgba(10,10,12,0.98));border:1px solid rgba(255,255,255,0.06);border-radius:16px;padding:24px;position:relative; }
.agg-swap-header { display:flex;justify-content:space-between;align-items:center;margin-bottom:16px; }
.agg-swap-label { font-size:1.1rem;font-weight:700; }
.agg-settings-btn { background:none;border:none;font-size:1.2rem;cursor:pointer;opacity:0.5;transition:opacity 0.2s; }
.agg-settings-btn:hover { opacity:1; }

/* Settings Drawer */
.agg-settings-drawer { background:rgba(0,0,0,0.3);border:1px solid rgba(255,255,255,0.05);border-radius:12px;padding:12px;margin-bottom:16px;max-height:320px;overflow-y:auto; }
.agg-setting-row { display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid rgba(255,255,255,0.04);font-size:0.8rem; }
.agg-setting-row:last-child { border-bottom:none; }
.agg-slippage-opts { display:flex;gap:4px;align-items:center; }
.agg-slip-btn { padding:4px 10px;border:1px solid rgba(255,255,255,0.1);background:transparent;color:#aaa;border-radius:6px;cursor:pointer;font-size:0.75rem; }
.agg-slip-btn.active { background:rgba(255,107,107,0.2);color:#ff6b6b;border-color:#ff6b6b; }
.agg-slip-custom { width:60px;padding:4px 8px;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.1);border-radius:6px;color:#fff;font-size:0.75rem; }

/* Switch */
.agg-switch { position:relative;width:36px;height:20px;display:inline-block; }
.agg-switch input { opacity:0;width:0;height:0; }
.agg-switch-slider { position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(255,255,255,0.1);border-radius:20px;cursor:pointer;transition:0.3s; }
.agg-switch-slider:before { content:'';position:absolute;width:16px;height:16px;left:2px;bottom:2px;background:#666;border-radius:50%;transition:0.3s; }
.agg-switch input:checked + .agg-switch-slider { background:rgba(255,107,107,0.4); }
.agg-switch input:checked + .agg-switch-slider:before { transform:translateX(16px);background:#ff6b6b; }

/* Token Box */
.agg-token-box { background:rgba(0,0,0,0.3);border:1px solid rgba(255,255,255,0.06);border-radius:12px;padding:14px;margin-bottom:4px; }
.agg-token-box-header { display:flex;justify-content:space-between;margin-bottom:8px;font-size:0.75rem;opacity:0.5; }
.agg-token-input-row { display:flex;gap:8px;align-items:center; }
.agg-amount-input { flex:1;background:transparent;border:none;color:#fff;font-size:1.6rem;font-weight:600;outline:none;min-width:0; }
.agg-amount-input::placeholder { color:rgba(255,255,255,0.15); }
.agg-token-select { display:flex;align-items:center;gap:6px;padding:8px 14px;background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.1);border-radius:10px;color:#fff;cursor:pointer;font-size:0.9rem;font-weight:600;white-space:nowrap; }
.agg-token-select:hover { background:rgba(255,255,255,0.12); }
.agg-token-icon { font-size:1.1rem; }
.agg-chevron { font-size:0.7rem;opacity:0.5; }
.agg-token-usd { font-size:0.75rem;opacity:0.4;margin-top:4px; }

/* Swap Arrow */
.agg-swap-arrow-wrap { display:flex;justify-content:center;margin:2px 0; }
.agg-swap-arrow { width:36px;height:36px;border-radius:10px;border:1px solid rgba(255,255,255,0.1);background:rgba(20,20,25,0.9);color:#ff6b6b;font-size:1.1rem;cursor:pointer;transition:all 0.2s; }
.agg-swap-arrow:hover { transform:rotate(180deg);background:rgba(255,107,107,0.15); }

/* Route Info */
.agg-route-info { background:rgba(0,0,0,0.2);border-radius:10px;padding:10px 14px;margin:12px 0; }
.agg-route-summary { display:flex;flex-wrap:wrap;gap:12px;font-size:0.75rem;color:#aaa; }
.agg-route-summary strong { color:#fff; }

/* Fee Row */
.agg-fee-row { display:flex;justify-content:space-between;font-size:0.75rem;opacity:0.4;padding:8px 0;margin-bottom:8px; }

/* Swap Button */
.agg-swap-btn { width:100%;padding:16px;border:none;border-radius:12px;background:linear-gradient(135deg,#ff6b6b,#ff8e53);color:#fff;font-size:1rem;font-weight:700;cursor:pointer;transition:all 0.2s;letter-spacing:0.5px; }
.agg-swap-btn:hover:not(:disabled) { transform:translateY(-1px);box-shadow:0 8px 25px rgba(255,107,107,0.3); }
.agg-swap-btn:disabled { opacity:0.4;cursor:not-allowed;background:#333; }

/* Reward Indicator */
.agg-reward-indicator { text-align:center;font-size:0.75rem;color:#ffa726;margin-top:10px;padding:8px;background:rgba(255,167,38,0.08);border-radius:8px; }

/* Routes Panel */
.agg-routes-panel { display:flex;flex-direction:column;gap:16px; }
.agg-routes-title { margin:0;font-size:1rem;font-weight:700; }
.agg-routes-list { display:flex;flex-direction:column;gap:8px; }
.agg-routes-empty { text-align:center;padding:40px 20px;opacity:0.3;font-size:0.85rem; }
.agg-route-card { background:rgba(20,20,25,0.95);border:1px solid rgba(255,255,255,0.06);border-radius:12px;padding:14px;cursor:pointer;transition:all 0.2s;position:relative; }
.agg-route-card:hover { border-color:rgba(255,255,255,0.15); }
.agg-route-best { border-color:rgba(255,107,107,0.3);background:linear-gradient(145deg,rgba(255,107,107,0.05),rgba(20,20,25,0.95)); }
.agg-route-selected { border-color:#ff6b6b;box-shadow:0 0 0 1px #ff6b6b; }
.agg-route-best-badge { position:absolute;top:-8px;right:12px;background:#ff6b6b;color:#fff;font-size:0.6rem;font-weight:800;padding:2px 8px;border-radius:4px;letter-spacing:1px; }
.agg-route-dex { font-size:0.85rem;font-weight:600;margin-bottom:6px; }
.agg-route-output { font-size:1.2rem;font-weight:700;margin-bottom:6px; }
.agg-route-details { display:flex;gap:12px;font-size:0.7rem;opacity:0.5;flex-wrap:wrap; }
.agg-route-impact { font-size:0.7rem;opacity:0.4;margin-top:4px; }

/* Mini Chart */
.agg-mini-chart-wrap { background:rgba(20,20,25,0.95);border:1px solid rgba(255,255,255,0.06);border-radius:12px;padding:12px; }

/* ═══ POOLS TABLE ═══ */
.agg-pools-wrap { background:rgba(20,20,25,0.95);border:1px solid rgba(255,255,255,0.06);border-radius:16px;padding:20px;overflow:hidden; }
.agg-pools-toolbar { display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap; }
.agg-search-input { flex:1;min-width:200px;padding:10px 14px;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.1);border-radius:10px;color:#fff;font-size:0.85rem; }
.agg-sort-select { padding:10px 14px;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.1);border-radius:10px;color:#fff;font-size:0.85rem; }
.agg-pools-table { max-height:600px;overflow-y:auto; }
.agg-pool-row { display:grid;grid-template-columns:40px 2fr 1fr 80px 1fr 1fr 1fr 80px;gap:8px;align-items:center;padding:10px 8px;border-bottom:1px solid rgba(255,255,255,0.04);font-size:0.8rem;cursor:pointer;transition:background 0.15s; }
.agg-pool-row:hover:not(.agg-pool-header) { background:rgba(255,255,255,0.03); }
.agg-pool-header { font-weight:700;opacity:0.5;cursor:default;border-bottom:1px solid rgba(255,255,255,0.1);font-size:0.7rem;text-transform:uppercase;letter-spacing:1px; }
.agg-col-token { display:flex;align-items:center;gap:8px;overflow:hidden; }
.agg-pool-name { white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.agg-pool-sym { opacity:0.4;margin-left:4px;font-size:0.7rem; }
.agg-col-rank { text-align:center;opacity:0.4; }
.agg-pool-trade-btn { padding:4px 12px;background:rgba(255,107,107,0.15);border:1px solid rgba(255,107,107,0.3);color:#ff6b6b;border-radius:6px;cursor:pointer;font-size:0.7rem;font-weight:600; }
.agg-pool-trade-btn:hover { background:rgba(255,107,107,0.3); }
.agg-green { color:#4ade80; }
.agg-red { color:#f87171; }

/* ═══ LEADERBOARD ═══ */
.agg-lb-wrap { background:rgba(20,20,25,0.95);border:1px solid rgba(255,255,255,0.06);border-radius:16px;padding:20px; }
.agg-lb-header { display:flex;justify-content:space-between;align-items:center;margin-bottom:16px; }
.agg-lb-header h3 { margin:0; }
.agg-refresh-btn { padding:6px 14px;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.1);border-radius:8px;color:#aaa;cursor:pointer;font-size:0.75rem; }
.agg-lb-columns { display:grid;grid-template-columns:60px 1fr 100px 120px 1fr;gap:8px;padding:8px;font-size:0.7rem;text-transform:uppercase;letter-spacing:1px;opacity:0.4;border-bottom:1px solid rgba(255,255,255,0.1); }
.agg-lb-row { display:grid;grid-template-columns:60px 1fr 100px 120px 1fr;gap:8px;padding:10px 8px;border-bottom:1px solid rgba(255,255,255,0.04);font-size:0.8rem; }
.agg-lb-top { background:rgba(255,107,107,0.03); }
.agg-lb-rank { text-align:center;font-weight:700; }
.agg-lb-wallet { font-family:monospace;font-size:0.75rem;opacity:0.7; }
.agg-lb-badge { display:inline-block;width:20px;height:20px;background:rgba(255,255,255,0.1);border-radius:4px;text-align:center;line-height:20px;font-size:0.6rem;margin-right:2px; }
.agg-lb-empty { text-align:center;padding:40px;opacity:0.3; }

/* ═══ BADGES ═══ */
.agg-badges-wrap { background:rgba(20,20,25,0.95);border:1px solid rgba(255,255,255,0.06);border-radius:16px;padding:24px; }
.agg-badges-title { margin:0 0 4px;font-size:1.2rem; }
.agg-badges-desc { opacity:0.4;font-size:0.8rem;margin:0 0 20px; }
.agg-badge-grid { display:grid;grid-template-columns:repeat(5,1fr);gap:12px;max-width:700px; }
@media(max-width:600px) { .agg-badge-grid { grid-template-columns:repeat(3,1fr); } }

.agg-badge-slot { aspect-ratio:1;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:12px;text-align:center;position:relative;transition:all 0.2s;cursor:default; }
.agg-badge-empty { background:rgba(255,255,255,0.02);border:2px dashed rgba(255,255,255,0.08); }
.agg-badge-locked { background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.08);filter:grayscale(0.6);opacity:0.6; }
.agg-badge-earned { background:linear-gradient(145deg,rgba(255,107,107,0.08),rgba(255,167,38,0.05));border:1px solid rgba(255,107,107,0.3);box-shadow:0 0 20px rgba(255,107,107,0.1); }
.agg-badge-earned:hover { transform:translateY(-2px);box-shadow:0 4px 20px rgba(255,107,107,0.2); }
.agg-badge-img { width:48px;height:48px;border-radius:10px;object-fit:cover; }
.agg-badge-name { font-size:0.65rem;font-weight:600;line-height:1.2; }
.agg-badge-placeholder { width:48px;height:48px;border-radius:10px;background:rgba(255,255,255,0.04);display:flex;align-items:center;justify-content:center;font-size:1.2rem;color:rgba(255,255,255,0.1); }
.agg-badge-check { position:absolute;top:6px;right:6px;width:18px;height:18px;background:#4ade80;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:0.6rem;color:#000;font-weight:800; }
.agg-badge-lock { position:absolute;top:6px;right:6px;font-size:0.7rem;opacity:0.4; }
.agg-badge-req { font-size:0.55rem;opacity:0.4;margin-top:2px; }

/* Loading */
.agg-loading { text-align:center;padding:40px;opacity:0.4;font-size:0.85rem; }
.agg-spinner { display:inline-block;width:20px;height:20px;border:2px solid rgba(255,255,255,0.1);border-top-color:#ff6b6b;border-radius:50%;animation:aggSpin 0.8s linear infinite;vertical-align:middle;margin-right:8px; }
@keyframes aggSpin { to { transform:rotate(360deg); } }

@media(max-width:768px) {
    .agg-pool-row { grid-template-columns:30px 1.5fr 1fr 70px 1fr 70px; }
    .agg-col-liq, .agg-col-vol { display:none; }
    .agg-lb-columns, .agg-lb-row { grid-template-columns:40px 1fr 80px 80px; }
    .agg-lb-badges { display:none; }
}
