.app-layout{display:flex;min-height:100vh;background:#0d0f14;color:#e4e6eb}.sidebar{width:220px;background:#13161c;border-right:1px solid #2a2e38;display:flex;flex-direction:column;transition:width .2s;flex-shrink:0;position:fixed;top:0;left:0;bottom:0;z-index:100}.sidebar.closed{width:60px}.sidebar-header{padding:20px 16px;border-bottom:1px solid #2a2e38}.logo{font-size:1.2rem;font-weight:700;color:#8b5cf6;letter-spacing:.5px}.nav-items{flex:1;padding:8px 0;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 16px;border:none;background:transparent;color:#8b8f98;font-size:.9rem;cursor:pointer;text-align:left;transition:all .15s;border-left:3px solid transparent}.nav-item:hover{background:#1a1e28;color:#e4e6eb}.nav-item.active{background:#1a1e28;color:#8b5cf6;border-left-color:#8b5cf6}.nav-icon{font-size:1.2rem;width:24px;text-align:center}.sidebar-footer{border-top:1px solid #2a2e38;padding:12px 16px}.user-info{margin-bottom:8px}.user-address{font-size:.8rem;color:#8b8f98;word-break:break-all}.logout-btn{color:#ef4444}.logout-btn:hover{color:#f87171}.main-content{flex:1;margin-left:220px;transition:margin-left .2s;min-height:100vh}.main-content.sidebar-closed{margin-left:60px}.page-container{padding:24px;max-width:1400px;margin:0 auto}.stats-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.stat-card{background:#13161c;border:1px solid #2a2e38;border-radius:8px;padding:16px 20px}.stat-label{font-size:.75rem;color:#8b8f98;text-transform:uppercase;letter-spacing:1px;margin-bottom:4px}.stat-value{font-size:1.5rem;font-weight:700;color:#e4e6eb}.stat-value.positive{color:#10b981}.stat-value.negative{color:#ef4444}.card{background:#13161c;border:1px solid #2a2e38;border-radius:8px;padding:20px;margin-bottom:20px}.card-title{font-size:.85rem;color:#8b8f98;text-transform:uppercase;letter-spacing:1px;margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid #2a2e38}.btn{padding:8px 16px;border:none;border-radius:4px;font-size:.85rem;cursor:pointer;transition:all .15s;font-family:inherit}.btn-primary{background:#8b5cf6;color:#fff}.btn-primary:hover{background:#7c3aed}.btn-secondary{background:#1a1e28;color:#e4e6eb;border:1px solid #2a2e38}.btn-secondary:hover{background:#2a2e38}.btn-success{background:#10b981;color:#fff}.btn-warning{background:#f59e0b;color:#0d0f14}.btn-danger{background:#ef4444;color:#fff}.btn-sm{padding:4px 10px;font-size:.75rem}.chain-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px}.chain-dot.eth{background:#8b5cf6}.chain-dot.sol{background:#14b8a6}.chain-dot.btc{background:#f59e0b}.table-container{overflow-x:auto}table{width:100%;border-collapse:collapse}th{text-align:left;padding:8px 12px;font-size:.75rem;color:#8b8f98;text-transform:uppercase;letter-spacing:1px;border-bottom:1px solid #2a2e38}td{padding:10px 12px;border-bottom:1px solid #1a1e28;font-size:.9rem}tr:hover td{background:#1a1e28}.address{font-family:JetBrains Mono,Fira Code,monospace;font-size:.85rem;color:#8b5cf6}.tx-badge{display:inline-block;padding:2px 8px;border-radius:3px;font-size:.75rem;font-weight:700;text-transform:uppercase}.tx-badge.receive{background:#10b98133;color:#10b981}.tx-badge.send{background:#ef444433;color:#ef4444}.tx-badge.swap{background:#8b5cf633;color:#8b5cf6}.signal-card{background:#1a1e28;border:1px solid #2a2e38;border-radius:6px;padding:12px 16px;margin-bottom:8px;display:flex;align-items:center;justify-content:space-between}.signal-info{flex:1}.signal-token{font-weight:700;color:#8b5cf6}.signal-meta{font-size:.8rem;color:#8b8f98;margin-top:2px}.signal-confidence{font-weight:700;margin-right:12px}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:#13161c;border:1px solid #2a2e38;border-radius:8px;padding:24px;width:400px;max-width:90vw}.modal-title{font-size:1.1rem;margin-bottom:16px;color:#e4e6eb}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.loading{display:flex;align-items:center;justify-content:center;padding:40px;color:#8b8f98}.loading:after{content:"";width:20px;height:20px;border:2px solid #2a2e38;border-top-color:#8b5cf6;border-radius:50%;animation:spin .8s linear infinite;margin-left:10px}@keyframes spin{to{transform:rotate(360deg)}}.time-ago{font-size:.8rem;color:#8b8f98}.toggle{position:relative;display:inline-block;width:40px;height:22px}.toggle input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:#2a2e38;border-radius:22px;transition:.2s}.toggle-slider:before{content:"";position:absolute;height:16px;width:16px;left:3px;bottom:3px;background:#8b8f98;border-radius:50%;transition:.2s}.toggle input:checked+.toggle-slider{background:#8b5cf64d}.toggle input:checked+.toggle-slider:before{transform:translate(18px);background:#8b5cf6}@media (max-width: 768px){.sidebar{width:60px}.main-content{margin-left:60px}.nav-label{display:none}.stats-bar{grid-template-columns:1fr 1fr}}@tailwind base;@tailwind components;@tailwind utilities;:root{--bg-primary: #0d0f14;--bg-secondary: #13161c;--bg-tertiary: #1a1e28;--text-primary: #e4e6eb;--text-secondary: #8b8f98;--accent-purple: #8b5cf6;--accent-teal: #14b8a6;--accent-amber: #f59e0b;--border-color: #2a2e38}*{margin:0;padding:0;box-sizing:border-box}body{font-family:JetBrains Mono,Fira Code,Courier New,monospace;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}a{color:var(--accent-purple);text-decoration:none}button{font-family:inherit}input,select,textarea{font-family:inherit;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);padding:8px 12px;border-radius:4px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent-purple)}
