*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:linear-gradient(135deg,#1a1a2e,#16213e);min-height:100vh;color:#e4e4e4}.container{max-width:1400px;margin:0 auto;padding:40px 20px}header{text-align:center;margin-bottom:40px}h1{font-size:2.5rem;background:linear-gradient(90deg,#00d4ff,#7b2cbf);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:10px}.subtitle{color:#8892b0;font-size:1.1rem}.refresh-btn{margin-top:20px;padding:12px 24px;font-size:1rem;font-weight:600;color:#fff;background:linear-gradient(135deg,#7b2cbf,#00d4ff);border:none;border-radius:8px;cursor:pointer;transition:all .3s ease;display:inline-flex;align-items:center;gap:8px}.refresh-btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,212,255,.3)}.refresh-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.refresh-icon{font-size:1.2rem;display:inline-block}.refresh-btn.loading .refresh-icon{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.loading{text-align:center;padding:40px;background:hsla(0,0%,100%,.05);border-radius:16px;margin-bottom:20px}.loading.hidden{display:none}.spinner{width:40px;height:40px;border:4px solid rgba(0,212,255,.2);border-top-color:#00d4ff;border-radius:50%;margin:0 auto 16px;animation:spin 1s linear infinite}.error-message{background:rgba(255,82,82,.15);border:1px solid rgba(255,82,82,.3);color:#ff5252;padding:16px;border-radius:8px;margin-bottom:20px;text-align:center}.data-source{font-size:.85rem;color:#8892b0;margin-left:10px}.data-source.live{color:#00e676}.data-source.cached{color:#ffd740}main{background:hsla(0,0%,100%,.05);border-radius:16px;padding:24px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid hsla(0,0%,100%,.1);overflow-x:auto}.dashboard-table{width:100%;border-collapse:collapse;min-width:800px}.dashboard-table thead tr{background:rgba(0,212,255,.1)}.dashboard-table th{padding:16px 20px;text-align:left;font-weight:600;color:#00d4ff;text-transform:uppercase;font-size:.85rem;letter-spacing:.5px;border-bottom:2px solid rgba(0,212,255,.3)}.dashboard-table th.sortable{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background-color .2s ease}.dashboard-table th.sortable:hover{background:rgba(0,212,255,.15)}.dashboard-table td{padding:16px 20px;border-bottom:1px solid hsla(0,0%,100%,.05);font-size:.95rem}.dashboard-table tbody tr{transition:background-color .2s ease}.dashboard-table tbody tr:hover{background:rgba(0,212,255,.05)}.token-name{display:flex;align-items:center;gap:12px;font-weight:600}.token-icon{object-fit:cover}.token-icon,.token-icon-fallback{width:32px;height:32px;border-radius:50%}.token-icon-fallback{background:linear-gradient(135deg,#7b2cbf,#00d4ff);display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700}.token-name-text{display:flex;flex-direction:column;gap:2px;text-decoration:none;color:inherit;transition:color .2s ease}.token-name-text:hover{color:#00d4ff}.token-ticker{font-size:.75rem;color:#8892b0;font-weight:400}.ratio-badge{display:inline-block;padding:4px 10px;border-radius:20px;font-size:.85rem;font-weight:500}.ratio-low{background:rgba(0,230,118,.15);color:#00e676}.ratio-medium{background:rgba(255,215,64,.15);color:#ffd740}.ratio-high{background:rgba(255,82,82,.15);color:#ff5252}footer{text-align:center;margin-top:30px;color:#8892b0;font-size:.9rem}@media (max-width:768px){h1{font-size:1.8rem}.dashboard-table td,.dashboard-table th{padding:12px 14px;font-size:.85rem}}