.rankings-container{background:linear-gradient(135deg,#1e293bf2,#0f172afa);border:1px solid #94a3b81a;border-radius:16px;padding:24px}.rankings-container.loading{color:#94a3b8;flex-direction:column;justify-content:center;align-items:center;min-height:300px;display:flex}.rankings-container .loading-spinner{border:3px solid #94a3b833;border-top-color:#3b82f6;border-radius:50%;width:32px;height:32px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.rankings-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.rankings-title{color:#f1f5f9;margin:0;font-size:20px;font-weight:600}.rankings-stats{color:#94a3b8;gap:16px;font-size:13px;display:flex}.rankings-stats .stat-buy{color:#22c55e}.rankings-stats .stat-sell{color:#ef4444}.update-controls{align-items:center;gap:12px;display:flex}.update-hint{color:#475569;font-size:12px}.update-hint.scanning{color:#22c55e;background:#22c55e1a;border:1px solid #22c55e4d;border-radius:6px;align-items:center;gap:8px;padding:6px 12px;font-weight:500;display:flex}.scanning-dot{background:#22c55e;border-radius:50%;width:8px;height:8px;animation:1.2s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}.scan-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:8px;padding:8px 16px;font-size:13px;font-weight:500;transition:all .2s}.scan-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #3b82f666}.scan-btn:disabled{opacity:.7;cursor:not-allowed}.scan-btn.scanning{background:linear-gradient(135deg,#64748b,#475569)}.scan-progress{color:#93c5fd;text-align:center;background:#3b82f61a;border:1px solid #3b82f633;border-radius:8px;margin-bottom:16px;padding:12px 16px;font-size:13px}.rankings-filters{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.sort-tabs{flex-wrap:wrap;gap:8px;display:flex}.sort-tab{color:#94a3b8;cursor:pointer;background:#1e293b99;border:1px solid #94a3b826;border-radius:8px;padding:8px 14px;font-size:13px;transition:all .2s}.sort-tab:hover{color:#e2e8f0;background:#3b82f61a;border-color:#3b82f64d}.sort-tab.active{color:#3b82f6;background:#3b82f633;border-color:#3b82f6}.sector-filter{color:#e2e8f0;cursor:pointer;background:#1e293b99;border:1px solid #94a3b826;border-radius:8px;padding:8px 12px;font-size:13px}.sector-filter:focus{border-color:#3b82f6;outline:none}.rankings-error{color:#fca5a5;background:#ef44441a;border:1px solid #ef444433;border-radius:8px;margin-bottom:16px;padding:12px 16px}.rankings-empty{text-align:center;color:#94a3b8;padding:48px 24px}.rankings-empty .hint{opacity:.7;margin-top:8px;font-size:13px}.rankings-list{flex-direction:column;gap:10px;display:flex}.ranking-card{cursor:pointer;background:#1e293b80;border:1px solid #94a3b81a;border-radius:12px;align-items:center;gap:16px;padding:16px;transition:all .2s;display:flex}.ranking-card:hover{background:#3b82f614;border-color:#3b82f633;transform:translate(4px)}.rank-badge{color:#64748b;text-align:center;min-width:40px;font-size:18px;font-weight:700}.stock-main-info{flex:1;min-width:0}.stock-ticker-row{align-items:center;gap:8px;display:flex}.stock-ticker{color:#f1f5f9;font-size:16px;font-weight:600}.stock-name{color:#64748b;white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:12px;display:block;overflow:hidden}.signal-badge{border-radius:4px;padding:2px 8px;font-size:11px;font-weight:500}.signal-badge.signal-buy{color:#22c55e;background:#22c55e26}.signal-badge.signal-sell{color:#ef4444;background:#ef444426}.signal-badge.signal-hold{color:#f59e0b;background:#f59e0b26}.stock-metrics{gap:32px;display:flex}.metric{flex-direction:column;flex-shrink:0;align-items:center;gap:2px;width:70px;display:flex}.metric-label{color:#64748b;align-items:center;height:16px;font-size:11px;font-weight:500;line-height:16px;display:flex}.metric-value{color:#cbd5e1;align-items:center;height:20px;font-size:15px;font-weight:700;line-height:20px;display:flex}.metric-value.score{color:#3b82f6;font-size:16px}.stock-price{text-align:right;min-width:80px}.price-value{color:#f1f5f9;font-size:16px;font-weight:600;display:block}.price-change{font-size:12px;font-weight:500}.price-change.up{color:#22c55e}.price-change.down{color:#ef4444}.arrow-icon{color:#475569;font-size:16px}@media (max-width:768px){.rankings-filters{flex-direction:column;align-items:stretch}.sort-tabs{padding-bottom:8px;overflow-x:auto}.ranking-card{flex-wrap:wrap;gap:12px}.stock-metrics{order:3;justify-content:space-between;width:100%}.stock-price{text-align:left}.arrow-icon{display:none}}
.app-logo{z-index:100;flex-direction:column;align-items:flex-start;gap:6px;display:flex;position:fixed;top:20px;left:24px}.app-logo img{filter:drop-shadow(0 4px 6px #0000004d);width:auto;height:40px}.logo-stats{color:var(--text-muted);align-items:center;gap:6px;margin-left:2px;font-size:12px;display:flex}.logo-stats .stats-icon{font-size:14px}.stats-highlight{color:#10b981;font-weight:600}.stats-sub{color:var(--text-muted);opacity:.8}.user-area{z-index:101;align-items:center;gap:12px;display:flex;position:fixed;top:16px;right:16px}.user-loading{color:var(--text-muted);font-size:14px}.user-info{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border-color);background:#1e1e2ef2;border-radius:12px;align-items:center;gap:12px;padding:8px 16px;display:flex}.user-name{color:var(--text-primary);font-size:14px;font-weight:500}.admin-link{color:#a855f7;background:#a855f726;border-radius:6px;padding:4px 10px;font-size:13px;text-decoration:none;transition:all .2s}.admin-link:hover{background:#a855f740}.logout-btn{border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:6px;padding:4px 12px;font-size:13px;transition:all .2s}.logout-btn:hover{color:#ef4444;border-color:#ef4444}.auth-buttons{align-items:center;gap:8px;display:flex}.login-btn{color:var(--text-secondary);border-radius:8px;padding:8px 16px;font-size:14px;text-decoration:none;transition:all .2s}.login-btn:hover{color:var(--text-primary);background:#ffffff0d}.register-btn{color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary-dark));border-radius:8px;padding:8px 16px;font-size:14px;font-weight:500;text-decoration:none;transition:all .2s}.register-btn:hover{transform:translateY(-1px);box-shadow:0 4px 15px #6366f14d}.filter-group select:focus{border-color:#3b82f6;outline:none;box-shadow:0 0 0 3px #3b82f633}.tab-badge{color:inherit;background:#ffffff26;border-radius:10px;justify-content:center;align-items:center;min-width:18px;height:18px;margin-left:6px;padding:0 5px;font-size:.75rem;font-weight:600;display:inline-flex}.stats-icon{font-size:16px}.rotating-hourglass{animation:5s infinite hourglassFlip;display:inline-block}.sand-top{transform-origin:12px 12px;animation:5s infinite sandDrain}.sand-bottom{transform-origin:12px 12px;animation:5s infinite sandFill}.sand-line{animation:5s infinite sandFlow}@keyframes hourglassFlip{0%{transform:rotate(0)}40%{transform:rotate(0)}50%{transform:rotate(180deg)}90%{transform:rotate(180deg)}to{transform:rotate(360deg)}}@keyframes sandDrain{0%{transform:scaleY(1)}40%{transform:scaleY(0)}50%{transform:scaleY(0)}90%{transform:scaleY(1)}to{transform:scaleY(1)}}@keyframes sandFill{0%{transform:scaleY(0)}40%{transform:scaleY(1)}50%{transform:scaleY(1)}90%{transform:scaleY(0)}to{transform:scaleY(0)}}@keyframes sandFlow{0%{opacity:1}40%{opacity:1}41%{opacity:0}49%{opacity:0}50%{opacity:1}90%{opacity:1}91%{opacity:0}to{opacity:0}}.stats-text strong{color:#10b981;font-weight:600}.stats-detail{color:var(--text-muted);margin-left:4px;font-size:12px}.stats-hint{color:var(--text-muted);margin-left:4px;font-size:11px}.home-page{min-height:100vh}.hero{text-align:center;flex-direction:column;justify-content:flex-start;align-items:center;padding:60px 24px 40px;display:flex;position:relative}.hero-glow{pointer-events:none;background:radial-gradient(circle,#6366f126 0%,#0000 70%);width:600px;height:600px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.hero-title{letter-spacing:-1px;margin-bottom:20px;font-size:56px;font-weight:700}.gradient-text{background:linear-gradient(135deg,#6366f1,#a855f7,#ec4899);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.hero-subtitle{color:var(--text-secondary);max-width:500px;margin-bottom:28px;font-size:20px}.search-form{width:100%;max-width:600px;margin-bottom:40px}.search-box{background:var(--bg-card);border:1px solid var(--border-color);box-shadow:var(--shadow-glow);border-radius:16px;align-items:center;gap:12px;padding:8px 8px 8px 20px;transition:all .3s;display:flex}.search-box:focus-within{border-color:var(--primary);box-shadow:0 0 0 4px #6366f126,var(--shadow-glow)}.search-icon{width:24px;height:24px;color:var(--text-muted);flex-shrink:0}.search-input{color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;font-size:18px}.search-input::placeholder{color:var(--text-muted)}.search-btn{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;cursor:pointer;border:none;border-radius:12px;align-items:center;gap:8px;padding:14px 28px;font-size:16px;font-weight:600;transition:all .2s;display:flex}.search-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 24px #6366f166}.search-btn:disabled{opacity:.5;cursor:not-allowed}.search-btn svg{width:18px;height:18px}.popular-section{flex-direction:column;align-items:center;gap:8px;margin-top:-20px;display:flex}.popular-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;font-size:14px}.popular-list{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.popular-item{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;padding:6px 12px;transition:all .2s;display:flex}.popular-item:hover{color:var(--primary-light);background:#ffffff0d;transform:translateY(-1px)}.stock-symbol{color:inherit;font-size:14px;font-weight:500}.stock-name{color:var(--text-secondary);font-size:13px}.features{background:linear-gradient(180deg,transparent,var(--bg-secondary));padding:80px 0}.features-grid{grid-template-columns:repeat(3,1fr);gap:32px;display:grid}.feature-card{text-align:center;background:var(--bg-card);border:1px solid var(--border-color);border-radius:20px;flex-direction:column;align-items:center;padding:40px 32px;transition:all .3s;display:flex}.feature-card:hover{box-shadow:var(--shadow-glow);transform:translateY(-8px)}.feature-icon{border-radius:20px;justify-content:center;align-items:center;width:72px;height:72px;margin-bottom:24px;display:flex}.feature-icon svg{width:36px;height:36px}.feature-icon.fundamental{color:#3b82f6;background:linear-gradient(135deg,#3b82f633,#3b82f60d)}.feature-icon.technical{color:#10b981;background:linear-gradient(135deg,#10b98133,#10b9810d)}.feature-icon.sentiment{color:#f59e0b;background:linear-gradient(135deg,#f59e0b33,#f59e0b0d)}.feature-card h3{margin-bottom:12px;font-size:20px;font-weight:600}.feature-card p{color:var(--text-secondary);font-size:15px;line-height:1.6}@media (max-width:768px){.hero-title{font-size:36px}.hero-subtitle{font-size:16px}.search-box{flex-direction:column;padding:16px}.search-input{text-align:center;width:100%}.search-btn{justify-content:center;width:100%}.features-grid{grid-template-columns:1fr}}.rankings-section{z-index:10;margin-top:10px;padding:0 0 80px;position:relative}.rankings-section .container{max-width:1000px;margin:0 auto}
