@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8d697b304b401681-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba015fad6dcf6784-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/4cf2300e9c8272f7-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Fallback;src:local("Arial");ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.00%;size-adjust:104.76%}.__className_188709{font-family:Geist,Geist Fallback;font-style:normal}.__variable_188709{--font-geist-sans:"Geist","Geist Fallback"}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/9610d9e46709d722-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/747892c23ea88013-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/93f479601ee12b01-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Mono Fallback;src:local("Arial");ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.00%;size-adjust:134.59%}.__className_9a8899{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.__variable_9a8899{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}.crypto-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.85);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.crypto-modal-container{background:linear-gradient(135deg,#1a1a2e,#16213e 50%,#0f3460);border:1px solid #2d3748;border-radius:16px;width:90%;max-width:1200px;max-height:90vh;overflow:hidden;box-shadow:0 25px 50px rgba(0,0,0,.7);animation:crypto-modal-appear .3s ease-out}@keyframes crypto-modal-appear{0%{opacity:0;transform:scale(.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.crypto-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #2d3748;background:linear-gradient(90deg,#1a202c,#2d3748)}.crypto-header-content{display:flex;align-items:center;gap:16px;flex:1}.crypto-header-icon{width:48px;height:48px;background:linear-gradient(135deg,#f7931a,#ff6b35);border-radius:12px;display:flex;align-items:center;justify-content:center;color:white;box-shadow:0 4px 12px rgba(247,147,26,.3)}.crypto-header-text h2{margin:0;color:#ffffff;font-size:24px;font-weight:700;background:linear-gradient(90deg,#ffffff,#f7931a);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.crypto-header-text p{color:#a0aec0;font-size:14px;margin:2px 0 0}.crypto-close-btn{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:#ffffff;border-radius:8px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.crypto-close-btn:hover{background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.3)}.crypto-modal-content{padding:20px 24px;max-height:calc(90vh - 100px);overflow-y:auto}.crypto-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#ffffff}.crypto-spinner{width:40px;height:40px;border:3px solid rgba(247,147,26,.3);border-top-color:#f7931a;border-radius:50%;animation:crypto-spin 1s linear infinite;margin-bottom:16px}@keyframes crypto-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.crypto-loading-text{font-size:16px;color:#a0aec0}.crypto-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.crypto-error-text{color:#ff6b6b;font-size:16px;margin-bottom:16px}.crypto-retry-btn{background:#f7931a;color:white;border:none;padding:12px 24px;border-radius:8px;cursor:pointer;font-weight:600;transition:all .2s}.crypto-retry-btn:hover{background:#e6820a;transform:translateY(-1px)}.crypto-status-bar{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:rgba(0,0,0,.3);border-radius:12px;margin-bottom:20px;border:1px solid #2d3748}.crypto-status-left{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.crypto-websocket-status{display:flex;align-items:center;gap:8px}.crypto-status-indicator{width:8px;height:8px;border-radius:50%;animation:crypto-pulse 2s infinite}.crypto-status-connected{background:#48bb78}.crypto-status-disconnected{background:#f56565}@keyframes crypto-pulse{0%,to{opacity:1}50%{opacity:.5}}.crypto-status-text{color:#ffffff;font-size:14px;font-weight:600}.crypto-data-source{color:#a0aec0;font-size:12px}.crypto-refresh-btn{background:linear-gradient(90deg,#f7931a,#ff6b35);color:white;border:none;padding:8px 16px;border-radius:6px;cursor:pointer;font-size:12px;font-weight:600;transition:all .2s}.crypto-refresh-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(247,147,26,.4)}.crypto-coins-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:20px}.crypto-coin-card{background:linear-gradient(135deg,#1a202c,#2d3748);border:1px solid #4a5568;border-radius:16px;padding:20px;transition:all .3s;position:relative;overflow:hidden}.crypto-coin-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#f7931a,#ff6b35)}.crypto-coin-card:hover{transform:translateY(-4px);border-color:#f7931a;box-shadow:0 8px 25px rgba(247,147,26,.2)}.crypto-coin-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.crypto-coin-title-section{flex:1}.crypto-symbol-container{display:flex;align-items:center;gap:8px;margin-bottom:8px}.crypto-icon{font-size:24px;line-height:1}.crypto-coin-symbol{color:#ffffff;font-size:20px;font-weight:700;margin:0}.crypto-tier-badge{background:rgba(247,147,26,.2);color:#f7931a;padding:2px 6px;border-radius:4px;font-size:10px;font-weight:600}.crypto-coin-price-section{display:flex;flex-direction:column;gap:4px}.crypto-coin-price{color:#ffffff;font-size:18px;font-weight:700}.crypto-price-change{display:flex;align-items:center;gap:4px;font-size:14px;font-weight:600}.crypto-price-change.positive{color:#48bb78}.crypto-price-change.negative{color:#f56565}.crypto-heat-score-section{text-align:center}.crypto-heat-score{width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;color:white;margin-bottom:4px}.crypto-heat-score.hot{background:linear-gradient(135deg,#ff6b6b,#ee5a24);box-shadow:0 4px 12px rgba(255,107,107,.4)}.crypto-heat-score.warm{background:linear-gradient(135deg,#f7931a,#ff6b35);box-shadow:0 4px 12px rgba(247,147,26,.4)}.crypto-heat-score.mild{background:linear-gradient(135deg,#ffd32a,#ff9500);box-shadow:0 4px 12px rgba(255,211,42,.4)}.crypto-heat-score.cool{background:linear-gradient(135deg,#4a5568,#2d3748);box-shadow:0 4px 12px rgba(74,85,104,.4)}.crypto-heat-label{color:#a0aec0;font-size:10px;font-weight:600;text-transform:uppercase}.crypto-alert-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:20px;font-size:12px;font-weight:600;margin-bottom:16px}.crypto-alert-breakout{background:rgba(147,51,234,.2);color:#a78bfa;border:1px solid rgba(147,51,234,.3)}.crypto-alert-big-move{background:rgba(239,68,68,.2);color:#fca5a5;border:1px solid rgba(239,68,68,.3)}.crypto-alert-volume-spike{background:rgba(59,130,246,.2);color:#93c5fd;border:1px solid rgba(59,130,246,.3)}.crypto-alert-rsi-extreme{background:rgba(245,158,11,.2);color:#fbbf24;border:1px solid rgba(245,158,11,.3)}.crypto-alert-strong-momentum{background:rgba(16,185,129,.2);color:#6ee7b7;border:1px solid rgba(16,185,129,.3)}.crypto-alert-hot{background:rgba(247,147,26,.2);color:#f7931a;border:1px solid rgba(247,147,26,.3)}.crypto-alert-volatile{background:rgba(168,85,247,.2);color:#c4b5fd;border:1px solid rgba(168,85,247,.3)}.crypto-alert-momentum{background:rgba(34,197,94,.2);color:#86efac;border:1px solid rgba(34,197,94,.3)}.crypto-alert-normal{background:rgba(107,114,128,.2);color:#9ca3af;border:1px solid rgba(107,114,128,.3)}.crypto-price-changes{display:flex;gap:12px;margin-bottom:16px;padding:12px;background:rgba(0,0,0,.2);border-radius:8px}.crypto-timeframe{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1}.timeframe-label{color:#a0aec0;font-size:10px;font-weight:600;text-transform:uppercase}.timeframe-value{font-size:12px;font-weight:700}.timeframe-value.positive{color:#48bb78}.timeframe-value.negative{color:#f56565}.crypto-metrics-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.crypto-metric-card{background:rgba(0,0,0,.3);border:1px solid #4a5568;border-radius:8px;padding:12px;transition:all .2s}.crypto-metric-card:hover{border-color:#f7931a;background:rgba(247,147,26,.1)}.crypto-metric-header{display:flex;align-items:center;gap:6px;margin-bottom:8px}.crypto-metric-icon{flex-shrink:0}.crypto-metric-icon.volume{color:#3b82f6}.crypto-metric-icon.rsi{color:#f59e0b}.crypto-metric-icon.momentum{color:#10b981}.crypto-metric-icon.volatility{color:#8b5cf6}.crypto-metric-icon.breakout{color:#ef4444}.crypto-metric-icon.source{color:#6b7280}.crypto-metric-label{color:#a0aec0;font-size:11px;font-weight:600;text-transform:uppercase}.crypto-metric-value{color:#ffffff;font-size:16px;font-weight:700;margin-bottom:2px}.crypto-metric-value.positive{color:#48bb78}.crypto-metric-value.negative,.crypto-metric-value.rsi-overbought{color:#f56565}.crypto-metric-value.rsi-oversold{color:#48bb78}.crypto-metric-value.rsi-neutral{color:#ffffff}.crypto-metric-subtitle{color:#718096;font-size:10px;text-transform:capitalize}.crypto-no-data{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.crypto-no-data-icon{color:#4a5568;margin-bottom:20px;opacity:.7}.crypto-no-data-title{color:#ffffff;font-size:24px;font-weight:700;margin-bottom:12px}.crypto-no-data-text{color:#a0aec0;font-size:16px;margin-bottom:8px;max-width:400px}.crypto-no-data-subtitle{color:#718096;font-size:14px;max-width:400px}@media (max-width:768px){.crypto-modal-container{width:95%;max-height:95vh}.crypto-modal-header{padding:16px 20px}.crypto-header-content{gap:12px}.crypto-header-icon{width:40px;height:40px}.crypto-header-text h2{font-size:20px}.crypto-modal-content{padding:16px 20px}.crypto-coins-container{grid-template-columns:1fr;gap:16px}.crypto-status-left{gap:12px}.crypto-metrics-grid{grid-template-columns:repeat(2,1fr)}.crypto-price-changes{gap:8px}}@media (max-width:480px){.crypto-header-content{flex-direction:column;align-items:flex-start;gap:8px}.crypto-metrics-grid{grid-template-columns:1fr}.crypto-status-left{flex-direction:column;align-items:flex-start;gap:8px}}.robot-modal-overlay{position:fixed;inset:0;z-index:1000;background-color:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;animation:fadeIn .2s ease-out}.robot-modal-container{background:white;border-radius:12px;box-shadow:0 25px 50px -12px rgba(0,0,0,.25);width:100%;max-width:1200px;max-height:90vh;overflow:hidden;animation:slideIn .3s ease-out;margin:0 20px}.robot-modal-header{background:linear-gradient(135deg,#2563eb,#7c3aed);color:white;padding:24px;display:flex;justify-content:space-between;align-items:center}.robot-header-content{display:flex;align-items:center;gap:16px}.robot-header-icon{width:48px;height:48px;background:rgba(255,255,255,.2);border-radius:50%;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(10px)}.robot-header-text h2{font-size:28px;font-weight:700;margin:0;letter-spacing:-.025em}.robot-header-text p{color:rgba(255,255,255,.8);margin:4px 0 0;font-size:14px}.robot-close-btn{background:rgba(255,255,255,.2);border:none;border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;color:white}.robot-close-btn:hover{background:rgba(255,255,255,.3);transform:rotate(90deg)}.robot-modal-content{padding:24px;overflow-y:auto;max-height:calc(90vh - 140px)}.robot-loading{display:flex;justify-content:center;align-items:center;padding:48px;flex-direction:column;gap:16px}.robot-spinner{width:48px;height:48px;border:4px solid #e5e7eb;border-top-color:#2563eb;border-radius:50%;animation:spin 1s linear infinite}.robot-loading-text{color:#6b7280;font-size:16px;font-weight:500}.robot-error{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:16px;margin-bottom:24px}.robot-error-text{color:#dc2626;margin-bottom:12px}.robot-retry-btn{background:#dc2626;color:white;border:none;padding:8px 16px;border-radius:6px;cursor:pointer;transition:background-color .2s ease}.robot-retry-btn:hover{background:#b91c1c}.robot-status-bar{background:#f9fafb;border-radius:8px;padding:16px;margin-bottom:24px;display:flex;justify-content:space-between;align-items:center;border:1px solid #e5e7eb}.robot-status-left{display:flex;align-items:center;gap:24px}.robot-market-status{display:flex;align-items:center;gap:8px}.robot-status-indicator{width:12px;height:12px;border-radius:50%}.robot-status-open{background:#10b981;animation:pulse 2s infinite}.robot-status-closed{background:#ef4444}.robot-status-text{font-weight:600;color:#1f2937}.robot-data-source{color:#6b7280;font-size:14px}.robot-refresh-btn{background:#2563eb;color:white;border:none;padding:8px 16px;border-radius:6px;cursor:pointer;transition:all .2s ease;font-weight:500}.robot-refresh-btn:hover{background:#1d4ed8;transform:translateY(-1px)}.robot-stocks-container{display:flex;flex-direction:column;gap:24px}.robot-stock-card{border:1px solid #e5e7eb;border-radius:12px;padding:24px;transition:all .3s ease;background:white}.robot-stock-card:hover{box-shadow:0 10px 25px -5px rgba(0,0,0,.1);transform:translateY(-2px);border-color:#d1d5db}.robot-stock-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.robot-stock-title-section{display:flex;align-items:center;gap:20px}.robot-stock-symbol{font-size:32px;font-weight:800;color:#1f2937;letter-spacing:-.025em}.robot-stock-price-section{display:flex;align-items:center;gap:12px}.robot-stock-price{font-size:28px;font-weight:700;color:#1f2937}.robot-price-change{display:flex;align-items:center;gap:4px;font-weight:600;font-size:16px}.robot-price-change.positive{color:#059669}.robot-price-change.negative{color:#dc2626}.robot-heat-score-section{text-align:right}.robot-heat-score{font-size:40px;font-weight:800;line-height:1;margin-bottom:4px}.robot-heat-score.hot{color:#dc2626}.robot-heat-score.warm{color:#ea580c}.robot-heat-score.mild{color:#ca8a04}.robot-heat-score.cool{color:#6b7280}.robot-heat-label{color:#6b7280;font-size:12px;text-transform:uppercase;font-weight:500;letter-spacing:.05em}.robot-alert-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:20px;font-size:13px;font-weight:600;margin-bottom:20px}.robot-alert-big-move,.robot-alert-breakout{background:#fef2f2;color:#dc2626}.robot-alert-volume-spike{background:#fff7ed;color:#ea580c}.robot-alert-rsi-extreme{background:#faf5ff;color:#7c3aed}.robot-alert-strong-momentum{background:#eff6ff;color:#2563eb}.robot-alert-hot{background:#fef2f2;color:#dc2626}.robot-alert-volatile{background:#fffbeb;color:#d97706}.robot-alert-momentum{background:#eff6ff;color:#2563eb}.robot-alert-normal{background:#f9fafb;color:#6b7280}.robot-metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.robot-metric-card{background:#f9fafb;border-radius:8px;padding:16px;border:1px solid #f3f4f6}.robot-metric-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.robot-metric-icon{width:16px;height:16px}.robot-metric-icon.volume{color:#2563eb}.robot-metric-icon.rsi{color:#7c3aed}.robot-metric-icon.momentum{color:#059669}.robot-metric-icon.volatility{color:#ea580c}.robot-metric-icon.breakout{color:#dc2626}.robot-metric-icon.source{color:#4f46e5}.robot-metric-label{font-size:13px;font-weight:600;color:#6b7280}.robot-metric-value{font-size:20px;font-weight:700;color:#1f2937;line-height:1.2}.robot-metric-value.rsi-overbought{color:#dc2626}.robot-metric-value.rsi-oversold{color:#059669}.robot-metric-value.rsi-neutral{color:#6b7280}.robot-metric-value.positive{color:#059669}.robot-metric-value.negative{color:#dc2626}.robot-metric-subtitle{font-size:11px;color:#6b7280;margin-top:2px}.robot-no-data{text-align:center;padding:48px 24px}.robot-no-data-icon{width:64px;height:64px;color:#d1d5db;margin:0 auto 16px}.robot-no-data-title{font-size:20px;font-weight:700;color:#6b7280;margin-bottom:8px}.robot-no-data-text{color:#9ca3af;font-size:14px;line-height:1.5}.switch-mode-btn{padding:6px 12px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:#fff;border-radius:4px;font-size:12px;cursor:pointer;transition:all .2s;white-space:nowrap}.switch-mode-btn:hover{background:rgba(255,255,255,.2)}@media (max-width:768px){.robot-modal-container{margin:10px;max-height:95vh}.robot-modal-header{padding:16px}.robot-header-content{gap:12px}.robot-header-text h2{font-size:20px}.robot-modal-content{padding:16px}.robot-stock-header{flex-direction:column;align-items:flex-start;gap:16px}.robot-heat-score-section{text-align:left}.robot-metrics-grid{grid-template-columns:1fr 1fr}.robot-stock-symbol{font-size:24px}.robot-stock-price{font-size:20px}.robot-heat-score{font-size:32px}}@media (max-width:480px){.robot-metrics-grid{grid-template-columns:1fr}.robot-status-left{gap:8px}.robot-status-bar,.robot-status-left{flex-direction:column;align-items:flex-start}.robot-status-bar{gap:12px}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}