:root{--text: #6b6375;--text-h: #08060d;--text-muted: #9ca3af;--bg: #fff;--bg-card: #fff;--bg-hover: #f9fafb;--bg-input: #f3f4f6;--border: #e5e4e7;--border-light: #f0f0f2;--code-bg: #f4f3ec;--accent: #9945FF;--accent-bg: rgba(153, 69, 255, .1);--accent-border: rgba(153, 69, 255, .5);--green: #10b981;--green-bg: rgba(16, 185, 129, .1);--red: #ef4444;--red-bg: rgba(239, 68, 68, .1);--yellow: #f59e0b;--yellow-bg: rgba(245, 158, 11, .1);--gradient-sol: linear-gradient(135deg, #9945FF, #14F195);--shadow: rgba(0, 0, 0, .08) 0 10px 15px -3px, rgba(0, 0, 0, .04) 0 4px 6px -2px;--sans: system-ui, "Segoe UI", Roboto, sans-serif;--heading: system-ui, "Segoe UI", Roboto, sans-serif;--mono: ui-monospace, Consolas, monospace;font:14px/1.5 var(--sans);color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[data-theme=dark]{--text: #9ca3af;--text-h: #f3f4f6;--text-muted: #6b7280;--bg: #0f1117;--bg-card: #16171d;--bg-hover: #1e1f28;--bg-input: #252630;--border: #2e303a;--border-light: #232430;--code-bg: #1f2028;--accent: #c084fc;--accent-bg: rgba(192, 132, 252, .15);--accent-border: rgba(192, 132, 252, .5);--green: #34d399;--green-bg: rgba(52, 211, 153, .15);--red: #f87171;--red-bg: rgba(248, 113, 113, .15);--yellow: #fbbf24;--yellow-bg: rgba(251, 191, 36, .15);--shadow: rgba(0, 0, 0, .4) 0 10px 15px -3px, rgba(0, 0, 0, .25) 0 4px 6px -2px}*,*:before,*:after{box-sizing:border-box}body{margin:0}#root{width:100%;max-width:100%;min-height:100vh;display:flex;flex-direction:column}h1,h2,h3,h4{font-family:var(--heading);font-weight:600;color:var(--text-h);margin:0}p{margin:0}a{color:var(--accent);text-decoration:none}button{border:none;cursor:pointer;font-family:inherit;background:none;padding:0}select{font-family:inherit}input{font-family:inherit;outline:none}.grid-2col{display:grid;grid-template-columns:1fr 1fr;gap:24px}@media(max-width:900px){.grid-2col{grid-template-columns:1fr}}.section-skeleton{background:var(--bg-card);border-radius:12px;padding:40px 20px;border:1px solid var(--border);display:flex;align-items:center;justify-content:center}.pulse-bar{width:60%;height:12px;border-radius:6px;background:linear-gradient(90deg,var(--bg-hover) 25%,var(--bg-input) 50%,var(--bg-hover) 75%);background-size:200% 100%;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%{background-position:200% 0}to{background-position:-200% 0}}.dash-header{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;background:var(--bg-card);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.header-left{display:flex;align-items:center;gap:10px}.header-left h1{font-size:18px;margin:0;background:var(--gradient-sol);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.version-badge{font-size:10px;padding:2px 6px;border-radius:4px;background:var(--accent-bg);color:var(--accent);font-weight:600}.header-right{display:flex;align-items:center;gap:8px}.theme-toggle{background:var(--bg-hover);border:1px solid var(--border);border-radius:8px;padding:6px 10px;font-size:16px;line-height:1;transition:all .2s}.theme-toggle:hover{border-color:var(--accent-border)}.price-banner{padding:20px 24px;background:var(--bg-card);border-bottom:1px solid var(--border)}.price-main{display:flex;align-items:baseline;gap:12px;margin-bottom:12px}.price-current{font-size:32px;font-weight:700;color:var(--text-h);font-family:var(--mono)}.price-change{font-size:15px;font-weight:600;display:flex;align-items:center;gap:4px}.price-change.up{color:var(--green)}.price-change.down{color:var(--red)}.price-stats{display:flex;gap:24px;flex-wrap:wrap}.price-stat{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-muted)}.stat-label{color:var(--text-muted)}.stat-val{color:var(--text-h);font-weight:500}.dash-main{padding:24px;display:flex;flex-direction:column;gap:24px;max-width:1400px;margin:0 auto}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.section-header h2{display:flex;align-items:center;gap:8px;font-size:16px;color:var(--text-h)}.chart-section{background:var(--bg-card);border-radius:12px;padding:20px;border:1px solid var(--border)}.chart-ranges{display:flex;gap:4px}.chart-ranges button{font-size:12px;padding:4px 12px;border-radius:6px;background:var(--bg-hover);color:var(--text-muted);font-weight:600;transition:all .2s}.chart-ranges button.active,.chart-ranges button:hover{background:var(--accent-bg);color:var(--accent)}.chart-container{margin-top:12px}.portfolio-section{background:var(--bg-card);border-radius:12px;padding:20px;border:1px solid var(--border)}.portfolio-total{font-size:18px;font-weight:700;color:var(--accent);font-family:var(--mono)}.portfolio-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.portfolio-card{background:var(--bg-hover);border-radius:10px;padding:16px;display:flex;align-items:center;gap:12px;border:1px solid var(--border-light);transition:border-color .2s}.portfolio-card:hover{border-color:var(--accent-border)}.card-icon{color:var(--accent);flex-shrink:0}.card-info{display:flex;flex-direction:column;gap:2px}.card-label{font-size:12px;color:var(--text-muted)}.card-value{font-size:16px;font-weight:600;color:var(--text-h)}.card-usd{font-size:12px;color:var(--text-muted)}.defi-section{background:var(--bg-card);border-radius:12px;padding:20px;border:1px solid var(--border)}.defi-total{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--accent-bg);border-radius:8px;margin-bottom:16px}.defi-total-label{font-size:13px;color:var(--text-muted)}.defi-total-val{font-size:18px;font-weight:700;color:var(--accent);font-family:var(--mono)}.defi-list{display:flex;flex-direction:column;gap:10px}.defi-card{background:var(--bg-hover);border-radius:8px;padding:14px;border:1px solid var(--border-light);transition:border-color .2s}.defi-card:hover{border-color:var(--accent-border)}.defi-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.defi-protocol{display:flex;align-items:center;gap:8px}.defi-name{font-weight:600;color:var(--text-h);font-size:14px}.defi-type{font-size:10px;padding:2px 6px;border-radius:4px;text-transform:uppercase;font-weight:600}.defi-type.yield{background:var(--green-bg);color:var(--green)}.defi-type.lp{background:var(--accent-bg);color:var(--accent)}.defi-type.lending{background:var(--yellow-bg);color:var(--yellow)}.defi-apy{font-size:13px;color:var(--green);font-weight:600}.defi-card-body{display:flex;justify-content:space-between;align-items:center}.defi-tokens{display:flex;gap:8px;flex-wrap:wrap}.defi-token{font-size:12px;color:var(--text-muted);background:var(--bg-input);padding:2px 6px;border-radius:4px}.defi-value{font-size:14px;font-weight:600;color:var(--text-h)}.staking-section{background:var(--bg-card);border-radius:12px;padding:20px;border:1px solid var(--border)}.staking-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}.staking-stat{background:var(--bg-hover);border-radius:8px;padding:12px;text-align:center;border:1px solid var(--border-light)}.staking-stat .stat-label{display:block;font-size:11px;color:var(--text-muted);margin-bottom:4px}.staking-stat .stat-value{font-size:16px;font-weight:600;color:var(--text-h)}.recent-rewards h3{font-size:14px;margin-bottom:10px;display:flex;align-items:center;gap:6px}.rewards-list{display:flex;flex-direction:column;gap:6px}.reward-row{display:flex;justify-content:space-between;padding:8px 12px;background:var(--bg-hover);border-radius:6px;font-size:13px}.reward-epoch{color:var(--text-muted)}.reward-amount{color:var(--green);font-weight:600;font-family:var(--mono)}.nft-section{background:var(--bg-card);border-radius:12px;padding:20px;border:1px solid var(--border)}.view-toggles{display:flex;gap:4px}.view-toggles button{padding:6px 10px;border-radius:6px;background:var(--bg-hover);color:var(--text-muted);transition:all .2s}.view-toggles button.active,.view-toggles button:hover{background:var(--accent-bg);color:var(--accent)}.nft-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.nft-list{display:flex;flex-direction:column;gap:10px}.nft-card{background:var(--bg-hover);border-radius:10px;overflow:hidden;border:1px solid var(--border-light);cursor:pointer;transition:all .2s}.nft-card:hover{border-color:var(--accent-border);transform:translateY(-2px);box-shadow:var(--shadow)}.nft-card.grid{display:flex;flex-direction:column}.nft-card.list{display:flex;flex-direction:row;align-items:center}.nft-card.list .nft-image-wrap{width:60px;height:60px;flex-shrink:0}.nft-card.list .nft-meta{padding:8px 12px;flex:1;display:flex;gap:12px;align-items:center}.nft-image-wrap{position:relative;background:var(--bg-input);aspect-ratio:1}.nft-image-wrap img{width:100%;height:100%;object-fit:cover}.rarity-badge{position:absolute;top:8px;right:8px;font-size:10px;padding:2px 6px;border-radius:4px;font-weight:600}.rarity-badge.common{background:var(--bg-card);color:var(--text-muted)}.rarity-badge.uncommon{background:var(--green-bg);color:var(--green)}.rarity-badge.rare{background:var(--accent-bg);color:var(--accent)}.rarity-badge.legendary{background:var(--yellow-bg);color:var(--yellow)}.nft-meta{padding:12px;display:flex;flex-direction:column;gap:4px}.nft-name{font-weight:600;color:var(--text-h);font-size:14px}.nft-collection{font-size:12px;color:var(--text-muted)}.nft-price{font-size:13px;color:var(--accent);font-weight:600;font-family:var(--mono)}.nft-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.nft-modal{background:var(--bg-card);border-radius:16px;max-width:500px;width:90%;max-height:85vh;overflow-y:auto;position:relative;border:1px solid var(--border);box-shadow:var(--shadow)}.modal-close{position:absolute;top:12px;right:12px;background:var(--bg-hover);border-radius:8px;padding:6px;color:var(--text-muted);z-index:1;transition:all .2s}.modal-close:hover{color:var(--text-h);background:var(--border)}.modal-body{padding:20px}.modal-body img.modal-image{width:100%;border-radius:12px;margin-bottom:16px}.modal-info h3{font-size:20px;margin-bottom:4px}.modal-collection{font-size:14px;color:var(--text-muted);display:block;margin-bottom:8px}.modal-price{font-size:18px;font-weight:700;color:var(--accent);margin:12px 0;font-family:var(--mono)}.modal-usd{font-size:14px;color:var(--text-muted);font-weight:400}.modal-attributes h4{font-size:14px;margin-bottom:10px}.attr-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.attr-item{background:var(--bg-hover);border-radius:8px;padding:10px;border:1px solid var(--border-light)}.attr-type{display:block;font-size:11px;color:var(--text-muted);margin-bottom:2px}.attr-value{font-size:13px;color:var(--text-h);font-weight:600}.tx-section{background:var(--bg-card);border-radius:12px;padding:20px;border:1px solid var(--border)}.tx-controls{display:flex;align-items:center;gap:8px}.tx-filters{display:flex;align-items:center;gap:6px}.tx-filters select{font-size:12px;padding:4px 8px;border-radius:6px;background:var(--bg-input);border:1px solid var(--border);color:var(--text);cursor:pointer}.btn-export{font-size:12px;padding:4px 10px;border-radius:6px;background:var(--accent-bg);color:var(--accent);font-weight:600;display:flex;align-items:center;gap:4px;transition:all .2s}.btn-export:hover{background:var(--accent-border)}.tx-table-wrap{overflow-x:auto;margin-top:12px}.tx-table{width:100%;border-collapse:collapse;font-size:13px}.tx-table th{text-align:left;padding:10px 12px;color:var(--text-muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border)}.tx-table td{padding:10px 12px;border-bottom:1px solid var(--border-light);color:var(--text)}.tx-table tr:hover td{background:var(--bg-hover)}.tx-sig{font-family:var(--mono);font-size:12px}.tx-type-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;padding:2px 8px;border-radius:4px;text-transform:capitalize;font-weight:600}.tx-type-badge.transfer{background:var(--accent-bg);color:var(--accent)}.tx-type-badge.swap{background:var(--green-bg);color:var(--green)}.tx-type-badge.stake{background:var(--yellow-bg);color:var(--yellow)}.tx-type-badge.nft{background:#ec48991a;color:#ec4899}.tx-type-badge.defi{background:var(--accent-bg);color:var(--accent)}.tx-type-badge.other{background:var(--bg-hover);color:var(--text-muted)}.tx-status{font-size:11px;padding:2px 6px;border-radius:4px;font-weight:600}.tx-status.success{background:var(--green-bg);color:var(--green)}.tx-status.failed{background:var(--red-bg);color:var(--red)}.tx-status.pending{background:var(--yellow-bg);color:var(--yellow)}.tx-fee{font-family:var(--mono);font-size:12px;color:var(--text-muted)}.tx-time{font-size:12px;color:var(--text-muted)}.solscan-link{color:var(--accent);font-size:14px;text-decoration:none!important}.no-txs{text-align:center;padding:24px;color:var(--text-muted);font-size:14px}.alert-manager{position:relative}.alert-bell{position:relative;background:var(--bg-hover);border:1px solid var(--border);border-radius:8px;padding:6px 10px;color:var(--text-muted);transition:all .2s}.alert-bell:hover{border-color:var(--accent-border);color:var(--accent)}.alert-badge{position:absolute;top:-4px;right:-4px;font-size:10px;font-weight:700;background:var(--accent);color:#fff;width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center}.alert-panel{position:absolute;top:calc(100% + 8px);right:0;width:300px;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);z-index:200;overflow:hidden}.alert-panel-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border)}.alert-panel-header h3{font-size:14px;margin:0}.alert-close{background:none;color:var(--text-muted);padding:4px}.alert-permission{padding:12px 16px;background:var(--yellow-bg);text-align:center}.alert-permission p{font-size:12px;color:var(--yellow);margin-bottom:8px}.btn-enable{font-size:12px;padding:6px 12px;border-radius:6px;background:var(--yellow);color:#000;font-weight:600;display:inline-flex;align-items:center;gap:4px}.alert-current-price{padding:8px 16px;font-size:12px;color:var(--text-muted);border-bottom:1px solid var(--border-light)}.alert-current-price strong{color:var(--text-h)}.alert-form{padding:12px 16px;border-bottom:1px solid var(--border-light)}.alert-form select{width:100%;font-size:12px;padding:6px 8px;border-radius:6px;background:var(--bg-input);border:1px solid var(--border);color:var(--text);margin-bottom:8px}.alert-input-row{display:flex;gap:6px}.alert-input-row input{flex:1;font-size:12px;padding:6px 10px;border-radius:6px;background:var(--bg-input);border:1px solid var(--border);color:var(--text)}.alert-input-row input::placeholder{color:var(--text-muted)}.btn-add-alert{background:var(--accent);color:#fff;border-radius:6px;padding:6px 10px;font-weight:600}.quick-prices{display:flex;gap:4px;margin-top:8px}.quick-prices button{flex:1;font-size:11px;padding:4px;border-radius:4px;background:var(--bg-hover);color:var(--text-muted);font-weight:600;transition:all .2s}.quick-prices button:hover{background:var(--accent-bg);color:var(--accent)}.alert-list{max-height:200px;overflow-y:auto}.no-alerts{text-align:center;padding:20px;color:var(--text-muted);font-size:13px}.alert-item{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;border-bottom:1px solid var(--border-light);transition:background .2s}.alert-item:hover{background:var(--bg-hover)}.alert-item.triggered{opacity:.6}.alert-item.paused{opacity:.4}.alert-info{display:flex;align-items:center;gap:6px}.alert-type-badge{display:flex;align-items:center;padding:2px;border-radius:4px}.alert-price{font-size:13px;font-weight:600;color:var(--text-h);font-family:var(--mono)}.triggered-badge{font-size:10px;color:var(--green);font-weight:600}.alert-actions{display:flex;gap:4px}.btn-toggle,.btn-remove{background:none;color:var(--text-muted);padding:4px;border-radius:4px;transition:all .2s}.btn-toggle:hover{color:var(--accent)}.btn-remove:hover{color:var(--red)}.dash-footer{padding:20px 24px;text-align:center;font-size:12px;color:var(--text-muted);border-top:1px solid var(--border)}@media(max-width:900px){.portfolio-grid,.nft-grid{grid-template-columns:repeat(2,1fr)}.staking-stats{grid-template-columns:1fr}.price-stats{gap:12px}}@media(max-width:600px){.dash-header{padding:10px 16px}.dash-main{padding:16px;gap:16px}.price-banner{padding:16px}.price-current{font-size:24px}.portfolio-grid{grid-template-columns:1fr 1fr}.portfolio-card{padding:12px}.nft-grid{grid-template-columns:1fr 1fr;gap:10px}.tx-table th:nth-child(5),.tx-table td:nth-child(5),.tx-table th:nth-child(6),.tx-table td:nth-child(6){display:none}.tx-controls{flex-direction:column;align-items:flex-start}.alert-panel{width:calc(100vw - 32px);right:-8px}.header-left h1{font-size:15px}.version-badge{display:none}}
