:root{--bg:#0b1220;--bg-soft:#101a2e;--card:#131f36;--card-hover:#16243f;--border:#94a3b824;--border-strong:#94a3b847;--text:#e8eef8;--dim:#94a3b8;--text-faint:#64748b;--accent:#38bdf8;--accent-soft:#38bdf81f;--emerald:#34d399;--emerald-soft:#34d3991f;--red:#f87171;--red-soft:#f871711f;--amber:#fbbf24;--amber-soft:#fbbf241f;--radius:14px;--radius-sm:9px;--font-body:"Inter",system-ui,sans-serif;--font-mono:"JetBrains Mono","Fira Code",monospace}*{box-sizing:border-box;margin:0;padding:0}html{color-scheme:dark}body{-webkit-font-smoothing:antialiased;background:#0b1220;background:var(--bg);color:#e8eef8;color:var(--text);font-family:Inter,system-ui,sans-serif;font-family:var(--font-body);line-height:1.6}.mono{font-feature-settings:"tnum";font-family:JetBrains Mono,Fira Code,monospace;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.dim{color:#94a3b8;color:var(--dim)}.pct.up,.up{color:#34d399;color:var(--emerald)}.down,.pct.down{color:#f87171;color:var(--red)}.pct.flat{color:#94a3b8;color:var(--dim)}a{color:#38bdf8;color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;font-family:inherit}:focus-visible{border-radius:4px;outline:2px solid #38bdf8;outline:2px solid var(--accent);outline-offset:2px}.visually-hidden{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}::selection{background:#38bdf852;color:#fff}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.stats-bar{grid-gap:12px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);display:grid;gap:12px;grid-template-columns:repeat(4,1fr);padding:16px}.stat{display:flex;flex-direction:column;gap:2px;min-width:0}.stat-label{color:var(--dim);font-size:.68rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.stat-value{font-size:clamp(.98rem,1.4vw,1.18rem);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stat-skeleton{animation:shimmer 1.4s ease-in-out infinite;background:linear-gradient(100deg,var(--bg-soft) 40%,var(--card-hover) 50%,var(--bg-soft) 60%);background-size:200% 100%;border-radius:var(--radius-sm);height:44px}@keyframes shimmer{to{background-position:-200% 0}}@media (max-width:900px){.stats-bar{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.stats-bar{gap:10px;grid-template-columns:1fr 1fr;padding:12px}.stat-value{font-size:.95rem}}.ticker-strip{align-items:center;background:var(--bg-soft);border-bottom:1px solid var(--border);display:flex;font-size:.86rem;gap:18px;overflow-x:auto;padding:9px clamp(16px,4vw,40px);scrollbar-width:thin;white-space:nowrap}.live-dot{background:var(--text-faint);border-radius:50%;flex:none;height:8px;width:8px}.live-dot.on{animation:pulse 2s ease-out infinite;background:var(--emerald);box-shadow:0 0 0 0 #34d39980}@keyframes pulse{0%{box-shadow:0 0 0 0 #34d39973}70%{box-shadow:0 0 0 8px #34d39900}to{box-shadow:0 0 0 0 #34d39900}}.ticker-status{color:var(--dim);flex:none;font-family:var(--font-mono);font-size:.66rem;font-weight:700;letter-spacing:.18em}.tick{align-items:baseline;border-radius:6px;display:inline-flex;gap:8px;padding:3px 6px;transition:background-color .5s ease,box-shadow .5s ease}.tick-symbol{color:var(--dim);font-size:.72rem;font-weight:700}.tick-price{font-weight:600}.tick-change{font-size:.78rem}.tick-delayed{color:var(--amber);font-size:.72rem}.tick.flash-up{background:var(--emerald-soft)}.tick.flash-down{background:var(--red-soft)}@media (prefers-reduced-motion:reduce){.live-dot.on{animation:none}.tick{transition:none}}.table-wrap{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);min-height:2260px;overflow-x:auto}.markets-table{border-collapse:collapse;font-size:.88rem;width:100%}.markets-table thead th{background:var(--card);border-bottom:1px solid var(--border);color:var(--dim);font-size:.68rem;font-weight:700;letter-spacing:.1em;padding:12px 14px;position:sticky;text-align:left;text-transform:uppercase;top:0;-webkit-user-select:none;user-select:none;white-space:nowrap;z-index:2}.markets-table thead th[aria-sort]:hover,.markets-table thead th[onclick]:hover{color:var(--text);cursor:pointer}.sort-arrow{color:var(--accent);font-size:.62rem}.markets-table td{border-bottom:1px solid var(--border);padding:11px 14px;white-space:nowrap}.markets-table tbody tr:last-child td{border-bottom:none}.coin-row{cursor:pointer;transition:background-color .15s ease}.coin-row:hover{background:var(--card-hover)}.coin-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.coin-id{align-items:center;display:flex;gap:9px;min-width:0}.coin-logo{border-radius:50%;flex:none}.coin-name{font-weight:600;max-width:160px;overflow:hidden;text-overflow:ellipsis}.coin-symbol{background:var(--bg-soft);border-radius:5px;font-size:.74rem;padding:2px 6px}.num{text-align:right}.col-rank{color:var(--dim);width:52px}.col-star{width:44px}.col-spark{width:132px}.sparkline{display:block}.sparkline-empty{background:var(--bg-soft);border-radius:6px;height:36px;width:120px}.watch-toggle{background:#0000;border:none;border-radius:6px;color:var(--text-faint);line-height:0;padding:5px;transition:color .15s ease,background .15s ease,transform .15s ease}.watch-toggle:hover{background:var(--amber-soft);color:var(--amber);transform:scale(1.12)}.watch-toggle .star-path{fill:none;stroke:currentColor;stroke-width:1.8}.watch-toggle.starred{color:var(--amber)}.watch-toggle.starred .star-path{fill:currentColor;stroke:currentColor}.empty-state{align-items:center;background:var(--card);border:1px dashed var(--border-strong);border-radius:var(--radius);display:flex;flex-direction:column;gap:6px;padding:64px 20px;text-align:center}.empty-icon{color:var(--accent);font-size:1.8rem;margin-bottom:6px}.empty-title{font-size:1.02rem;font-weight:700}.empty-hint{color:var(--dim);font-size:.88rem;max-width:420px}@media (max-width:1020px){.col-1h,.col-7d{display:none}}@media (max-width:760px){.table-wrap{display:none}}.coin-card-list{display:flex;flex-direction:column;gap:10px;min-height:3200px}@media (min-width:761px){.coin-card-list{display:none}}.coin-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;padding:14px;transition:border-color .15s ease,background .15s ease}.coin-card:hover{background:var(--card-hover);border-color:var(--border-strong)}.coin-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.card-head{align-items:center;display:flex;gap:9px}.card-head .coin-name{flex:1 1;font-size:.92rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-head .watch-toggle{margin-left:auto}.card-main{align-items:baseline;display:flex;gap:10px;margin-top:10px}.card-price{font-size:1.08rem;font-weight:600}.card-change{font-size:.82rem}.card-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(4,1fr);margin-top:10px}.card-grid>div{display:flex;flex-direction:column;min-width:0}.card-label{color:var(--dim);font-size:.62rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.card-grid .mono{font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-spark{margin-top:10px}.card-spark svg{display:block;height:auto;width:100%}.search-bar{align-items:center;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--dim);display:flex;gap:9px;min-width:230px;padding:0 12px;transition:border-color .15s ease}.search-bar:focus-within{border-color:var(--accent)}.search-bar input{background:#0000;border:none;color:var(--text);flex:1 1;font-family:inherit;font-size:.88rem;min-width:0;outline:none;padding:9px 0}.search-bar input::placeholder{color:var(--text-faint)}.search-bar input::-webkit-search-cancel-button{cursor:pointer}@media (max-width:760px){.search-bar{width:100%}}.currency-select select{appearance:none;background:var(--card);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='m1 1 4 4 4-4' fill='none' stroke='%2394a3b8' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);cursor:pointer;font-family:inherit;font-size:.86rem;font-weight:600;padding:8px 30px 8px 12px;transition:border-color .15s ease}.currency-select select:hover{border-color:var(--border-strong)}.currency-select select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.refresh-timer{align-items:center;border-radius:999px;color:var(--dim);display:inline-flex;gap:7px;padding:4px 10px 4px 4px}.refresh-timer svg{display:block;transform:rotate(-90deg)}.ring-track{fill:none;stroke:var(--border-strong);stroke-width:2.4}.ring-progress{fill:none;stroke:var(--accent);stroke-width:2.4;stroke-linecap:round;transition:stroke-dashoffset .95s linear}.ring-progress.ring-paused{stroke:var(--text-faint);transition:none}.refresh-label{font-size:.72rem;font-weight:600;min-width:20px}@media (prefers-reduced-motion:reduce){.ring-progress{transition:none}}.banner{align-items:center;border-bottom:1px solid var(--border);display:flex;font-size:.84rem;gap:10px;padding:10px clamp(16px,4vw,40px)}.banner-icon{flex:none}.banner-offline,.banner-ratelimit{background:var(--amber-soft);color:var(--amber)}.banner-error{background:var(--red-soft);color:var(--red)}.banner-msg{flex:1 1}.banner-retry{background:#0000;border:1px solid;border-radius:6px;color:inherit;flex:none;font-size:.78rem;font-weight:700;padding:4px 12px;transition:background .15s ease}.banner-retry:hover{background:#ffffff14}.app{background:radial-gradient(1200px 400px at 80% -10%,#38bdf80f,#0000 60%),radial-gradient(900px 300px at 10% -5%,#34d3990d,#0000 55%),var(--bg);display:flex;flex-direction:column;min-height:100vh}.app-header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0b1220d1;border-bottom:1px solid var(--border);flex-wrap:wrap;gap:16px;justify-content:space-between;padding:16px clamp(16px,4vw,40px);position:sticky;top:0;z-index:20}.app-header,.brand{align-items:center;display:flex}.brand{gap:12px}.brand-logo{background:var(--accent-soft);border:1px solid #38bdf840;border-radius:var(--radius-sm);color:var(--accent);display:grid;height:40px;place-items:center;width:40px}.brand-text h1{font-size:1.22rem;font-weight:800;letter-spacing:-.02em;line-height:1.2}.brand-sub{color:var(--dim);display:block;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase}.header-controls{align-items:center;display:flex;gap:14px}.app-main{flex:1 1;margin-inline:auto;padding:20px 0 48px;width:min(1400px,96%)}.app-footer{border-top:1px solid var(--border);color:var(--text-faint);font-size:.8rem;padding:18px clamp(16px,4vw,40px);text-align:center}.toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin:18px 0 14px}.tabs{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);display:inline-flex;gap:4px;padding:4px}.tab{background:#0000;border:none;border-radius:6px;color:var(--dim);font-size:.85rem;font-weight:600;padding:7px 14px;transition:background .15s ease,color .15s ease}.tab:hover{color:var(--text)}.tab.active{background:var(--accent-soft);color:var(--accent)}@media (max-width:760px){.toolbar{align-items:stretch;flex-direction:column}.toolbar .tabs{justify-content:center}.app-header{position:static}}.error-boundary{background:var(--bg);display:grid;min-height:100vh;padding:24px;place-items:center}.error-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;gap:12px;max-width:420px;padding:32px;text-align:center}.error-card h2{font-size:1.3rem}.error-card p{color:var(--dim);font-size:.9rem}.btn-reload{align-self:center;background:linear-gradient(135deg,#38bdf8,#0ea5e9);border:none;border-radius:var(--radius-sm);color:#04121f;font-weight:700;margin-top:8px;padding:11px 22px;transition:transform .15s ease,box-shadow .15s ease}.btn-reload:hover{box-shadow:0 0 0 1px #38bdf866,0 12px 40px -8px #38bdf859;transform:translateY(-2px)}
/*# sourceMappingURL=main.ae1b3985.css.map*/