:root{--bg-primary: #080d1e;--bg-secondary: #0f1729;--bg-card: rgba(15, 23, 42, .8);--bg-card-hover: rgba(30, 41, 69, .9);--bg-glass: rgba(15, 23, 55, .65);--text-primary: #f1f5f9;--text-secondary: #94a3b8;--text-muted: #64748b;--color-up: #ef4444;--color-up-bg: rgba(239, 68, 68, .12);--color-down: #22c55e;--color-down-bg: rgba(34, 197, 94, .12);--accent-primary: #818cf8;--accent-secondary: #6366f1;--accent-gradient: linear-gradient(135deg, #6366f1, #8b5cf6, #a78bfa);--accent-glow: 0 0 20px rgba(99, 102, 241, .3);--signal-buy: #ef4444;--signal-buy-bg: rgba(239, 68, 68, .15);--signal-sell: #22c55e;--signal-sell-bg: rgba(34, 197, 94, .15);--border-color: rgba(148, 163, 184, .1);--border-glow: rgba(99, 102, 241, .3);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .4);--shadow-xl: 0 20px 60px rgba(0, 0, 0, .5);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--transition-fast: .15s ease;--transition-normal: .3s ease;--transition-slow: .5s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:Inter,Noto Sans SC,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{height:100vh}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#94a3b833;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#94a3b859}.app-layout{display:flex;height:100vh;overflow:hidden}.sidebar{width:240px;min-width:240px;background:var(--bg-secondary);border-right:1px solid var(--border-color);display:flex;flex-direction:column;padding:24px 16px;position:relative;z-index:10}.sidebar:before{content:"";position:absolute;top:0;left:0;right:0;height:200px;background:linear-gradient(180deg,rgba(99,102,241,.08),transparent);pointer-events:none}.logo{display:flex;align-items:center;gap:12px;padding:0 8px 28px;border-bottom:1px solid var(--border-color);margin-bottom:24px;position:relative}.logo-icon{width:46px;height:46px;background:var(--accent-gradient);border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:800;box-shadow:var(--accent-glow);animation:logoPulse 3s ease-in-out infinite}@keyframes logoPulse{0%,to{box-shadow:var(--accent-glow)}50%{box-shadow:0 0 30px #6366f180}}.logo-text h1{font-size:17px;font-weight:700;background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1.3}.logo-text span{font-size:11px;color:var(--text-muted)}.nav-links{display:flex;flex-direction:column;gap:4px;flex:1}.nav-item{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:var(--radius-md);color:var(--text-secondary);text-decoration:none;font-size:14px;font-weight:500;transition:all var(--transition-normal);position:relative}.nav-item:hover{background:#6366f114;color:var(--text-primary)}.nav-item.active{background:#6366f126;color:var(--accent-primary)}.nav-item.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:20px;background:var(--accent-gradient);border-radius:0 3px 3px 0}.nav-icon{font-size:18px}.badge{margin-left:auto;background:var(--accent-gradient);color:#fff;font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px;min-width:22px;text-align:center}.sidebar-footer{padding-top:16px;border-top:1px solid var(--border-color)}.market-status{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-muted);padding:8px}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--text-muted)}.market-status.open .status-dot{background:var(--color-down);box-shadow:0 0 8px #22c55e80;animation:dotPulse 2s ease-in-out infinite}@keyframes dotPulse{0%,to{opacity:1}50%{opacity:.5}}.time-display{text-align:center;font-size:24px;font-weight:300;color:var(--text-secondary);font-variant-numeric:tabular-nums;padding:8px}.main-content{flex:1;overflow-y:auto;overflow-x:hidden;background:var(--bg-primary);position:relative}.main-content:before{content:"";position:fixed;top:-50%;right:-30%;width:600px;height:600px;background:radial-gradient(circle,rgba(99,102,241,.06),transparent 70%);pointer-events:none}.page{padding:32px;max-width:1200px;margin:0 auto;min-height:100vh;animation:fadeUp .4s ease forwards}@keyframes pageIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.page-header{margin-bottom:24px;display:flex;justify-content:space-between;align-items:flex-end}.header-content{display:flex;flex-direction:column;gap:8px}.page-header h2{font-size:26px;font-weight:700;letter-spacing:-.02em}.subtitle{color:var(--text-muted);font-size:14px;margin-top:6px}.glass-card{background:var(--bg-glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow-lg);transition:all var(--transition-normal)}.glass-card:hover{border-color:#6366f133}.control-panel{margin-bottom:28px}.control-row{display:flex;align-items:flex-end;gap:32px;flex-wrap:wrap}.control-group{display:flex;flex-direction:column;gap:10px}.control-group label{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em}.control-action{margin-left:auto}.btn-group{display:flex;gap:4px;background:#0000004d;border-radius:var(--radius-md);padding:4px}.btn-group button{padding:8px 16px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast);font-family:inherit;white-space:nowrap}.btn-group button:hover{color:var(--text-primary);background:#ffffff0f}.btn-group button.active{background:var(--accent-secondary);color:#fff;box-shadow:0 2px 8px #6366f14d}.btn-group button.btn-buy.active{background:var(--signal-buy);box-shadow:0 2px 8px #ef44444d}.btn-group button.btn-sell.active{background:var(--signal-sell);box-shadow:0 2px 8px #22c55e4d}.btn-scan{padding:12px 32px;border:none;border-radius:var(--radius-md);background:var(--accent-gradient);color:#fff;font-size:15px;font-weight:600;cursor:pointer;transition:all var(--transition-normal);font-family:inherit;display:flex;align-items:center;gap:8px;box-shadow:var(--accent-glow)}.btn-scan:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 30px #6366f166}.btn-scan:disabled{opacity:.7;cursor:not-allowed}.spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.stock-table-wrapper{overflow-x:auto}.stock-table{width:100%;border-collapse:separate;border-spacing:0}.stock-table thead th{padding:14px 16px;text-align:left;font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-color);position:sticky;top:0;background:var(--bg-secondary);z-index:1}.stock-row{cursor:pointer;transition:all var(--transition-fast)}.stock-row:hover{background:#6366f10f}.stock-row td{padding:14px 16px;font-size:14px;border-bottom:1px solid rgba(148,163,184,.06);white-space:nowrap}.code-cell{font-family:Inter,monospace;font-weight:500;color:var(--text-secondary)}.name-cell{font-weight:600;color:var(--text-primary)}.price-cell{font-family:Inter,monospace;font-weight:500;font-variant-numeric:tabular-nums}.change-cell{font-family:Inter,monospace;font-weight:600;font-variant-numeric:tabular-nums}.change-cell.up{color:var(--color-up)}.change-cell.down{color:var(--color-down)}.date-cell{color:var(--text-muted);font-size:13px}.td-count-cell .td-count{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;border-radius:8px;font-weight:700;font-size:15px}.td-count.buy{background:var(--signal-buy-bg);color:var(--signal-buy)}.td-count.sell{background:var(--signal-sell-bg);color:var(--signal-sell)}.signal-tag{display:inline-flex;align-items:center;white-space:nowrap;padding:4px 10px;border-radius:6px;font-size:12px;font-weight:600}.signal-tag.buy{background:var(--signal-buy-bg);color:var(--signal-buy)}.signal-tag.sell{background:var(--signal-sell-bg);color:var(--signal-sell)}.signal-tag.buy-tag{background:var(--signal-buy-bg);color:var(--signal-buy)}.signal-tag.sell-tag{background:var(--signal-sell-bg);color:var(--signal-sell)}.chart-demo{position:relative;border-radius:var(--radius-md);overflow:hidden;background:#0003}.chart-demo canvas{display:block;width:100%;height:auto}.chart-overlay{display:flex;flex-wrap:nowrap;align-items:center;justify-content:center;gap:12px;padding:10px 0}.btn-add{padding:6px 14px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:12px;font-weight:500;cursor:pointer;transition:all var(--transition-fast);font-family:inherit;white-space:nowrap}.btn-add:hover{border-color:var(--accent-primary);color:var(--accent-primary);background:#6366f114}.btn-add.added{border-color:var(--signal-buy);color:var(--signal-buy);background:var(--signal-buy-bg)}.btn-remove{padding:6px 14px;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-sm);background:transparent;color:var(--color-up);font-size:12px;font-weight:500;cursor:pointer;transition:all var(--transition-fast);font-family:inherit}.btn-remove:hover{background:var(--signal-sell-bg)}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;text-align:center}.loading-animation{position:relative;width:100px;height:100px;display:flex;align-items:center;justify-content:center;margin-bottom:24px}.pulse-ring{position:absolute;width:100%;height:100%;border:2px solid var(--accent-primary);border-radius:50%;animation:pulseRing 2s ease-out infinite;opacity:0}.pulse-ring.delay-1{animation-delay:.6s}.pulse-ring.delay-2{animation-delay:1.2s}@keyframes pulseRing{0%{transform:scale(.5);opacity:.8}to{transform:scale(1.5);opacity:0}}.loading-icon{font-size:36px;animation:float 2s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.loading-state p{color:var(--text-secondary);font-size:15px}.loading-sub{color:var(--text-muted)!important;font-size:13px!important;margin-top:4px}.empty-state,.welcome-state{text-align:center;padding:80px 20px}.empty-icon,.welcome-icon{font-size:64px;margin-bottom:20px;animation:float 3s ease-in-out infinite}.empty-state h3,.welcome-state h3{font-size:22px;font-weight:600;margin-bottom:10px}.empty-state p,.welcome-state p{color:var(--text-secondary);font-size:14px;max-width:400px;margin:0 auto}.empty-sub{color:var(--text-muted)!important;margin-top:6px!important}.feature-cards{display:flex;gap:20px;justify-content:center;margin-top:48px}.feature-card{background:var(--bg-glass);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:32px 24px;width:200px;transition:all var(--transition-normal)}.feature-card:hover{transform:translateY(-4px);border-color:var(--border-glow);box-shadow:var(--accent-glow)}.feature-icon{font-size:36px;margin-bottom:16px}.feature-card h4{font-size:15px;font-weight:600;margin-bottom:8px}.feature-card p{font-size:12px!important;color:var(--text-muted)!important;max-width:none!important}.search-bar{margin-bottom:24px;position:relative}.search-input-wrap{display:flex;align-items:center;gap:12px}.search-icon{font-size:18px;color:var(--text-muted)}.search-input-wrap input{flex:1;background:transparent;border:none;outline:none;color:var(--text-primary);font-size:15px;font-family:inherit}.search-input-wrap input::placeholder{color:var(--text-muted)}.clear-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:16px;padding:4px 8px;transition:color var(--transition-fast)}.clear-btn:hover{color:var(--text-primary)}.search-dropdown{position:absolute;top:100%;left:0;right:0;margin-top:8px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);max-height:300px;overflow-y:auto;z-index:100;box-shadow:var(--shadow-xl);animation:dropIn .2s ease}@keyframes dropIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.search-item{display:flex;align-items:center;gap:12px;padding:12px 20px;cursor:pointer;transition:background var(--transition-fast)}.search-item:hover{background:#6366f114}.search-code{font-family:Inter,monospace;font-weight:500;color:var(--text-secondary);font-size:13px;min-width:70px}.search-name{font-weight:500;color:var(--text-primary);font-size:14px}.search-add{margin-left:auto;color:var(--accent-primary);font-size:13px;font-weight:500}.search-added{margin-left:auto;color:var(--text-muted);font-size:12px}.stat-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.stat-card{padding:20px;text-align:center}.stat-label{font-size:12px;color:var(--text-muted);font-weight:500;margin-bottom:8px}.stat-value{font-size:28px;font-weight:700;font-variant-numeric:tabular-nums}.stat-value.up,.stat-card.up .stat-value{color:var(--color-up)}.stat-value.down,.stat-card.down .stat-value{color:var(--color-down)}.btn-goto-scan{display:inline-block;margin-top:24px;padding:12px 28px;background:var(--accent-gradient);color:#fff;text-decoration:none;border-radius:var(--radius-md);font-weight:600;font-size:14px;transition:all var(--transition-normal);box-shadow:var(--accent-glow)}.btn-goto-scan:hover{transform:translateY(-2px);box-shadow:0 8px 30px #6366f166}.btn-refresh{padding:10px 20px;border:1px solid var(--border-color);border-radius:var(--radius-md);background:transparent;color:var(--text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast);font-family:inherit;display:flex;align-items:center;gap:6px}.btn-refresh:hover:not(:disabled){border-color:var(--accent-primary);color:var(--accent-primary)}.spin-icon{display:inline-block;animation:spin 1s linear infinite}.back-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.btn-back{padding:8px 16px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:14px;cursor:pointer;transition:all var(--transition-fast);font-family:inherit}.btn-back:hover{border-color:var(--accent-primary);color:var(--accent-primary)}.btn-add-watch{padding:10px 24px;border:1px solid var(--border-color);border-radius:var(--radius-md);background:transparent;color:var(--text-secondary);font-size:14px;font-weight:600;cursor:pointer;transition:all var(--transition-normal);font-family:inherit}.btn-add-watch:hover{border-color:#eab308;color:#eab308}.btn-add-watch.added{background:#eab3081f;border-color:#eab308;color:#eab308}.stock-info-header{margin-bottom:24px}.stock-title h2{font-size:28px;font-weight:700}.stock-code{color:var(--text-muted);font-size:14px;font-family:Inter,monospace}.stock-price-info{display:flex;align-items:flex-end;gap:24px;flex-wrap:wrap}.current-price{font-size:42px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1}.price-change{display:flex;flex-direction:column;gap:2px;font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}.price-details{display:flex;gap:20px;margin-left:auto;flex-wrap:wrap}.detail-item{display:flex;flex-direction:column;gap:4px;font-size:13px}.detail-item .label{color:var(--text-muted);font-size:11px}.chart-section{margin-bottom:24px}.chart-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.chart-legend{display:flex;gap:20px;font-size:12px}.chart-container{border-radius:var(--radius-md);overflow:hidden;width:100%;max-width:100%;position:relative}.signal-item.buy{background:var(--signal-buy-bg)}.signal-item.sell{background:var(--signal-sell-bg)}.signal-date{font-family:Inter,monospace;color:var(--text-secondary);font-size:13px;min-width:90px}.signal-type{font-weight:600;min-width:120px}.signal-price{color:var(--text-secondary);font-size:13px;margin-left:auto}.results-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.results-header h3{font-size:18px;font-weight:600;display:flex;align-items:center;gap:10px}.count-badge{background:var(--accent-gradient);color:#fff;font-size:12px;font-weight:600;padding:3px 10px;border-radius:10px}.scan-time{color:var(--text-muted);font-size:13px}.results-content{animation:pageIn .4s ease}.app-home{min-height:100vh;height:100vh;overflow-y:auto;overflow-x:hidden;background:var(--bg-primary);color:var(--text-primary)}.home-nav{position:fixed;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:16px 40px;z-index:100;background:#080d1ecc;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid rgba(255,255,255,.05)}.home-brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text-primary)}.brand-icon{width:36px;height:36px;background:var(--accent-gradient);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700}.brand-text{font-size:18px;font-weight:700;background:var(--accent-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.home-nav-right{display:flex;align-items:center;gap:12px}.nav-link{color:var(--text-secondary);text-decoration:none;font-size:14px;padding:8px 14px;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.nav-link:hover,.nav-link.router-link-active{color:var(--text-primary);background:var(--bg-card)}.btn-nav-login{background:transparent;color:var(--text-primary);border:1px solid var(--border-color);padding:8px 20px;border-radius:var(--radius-sm);font-size:14px;cursor:pointer;transition:all var(--transition-fast)}.btn-nav-login:hover{border-color:var(--accent-start);color:var(--accent-start)}.btn-nav-register{background:var(--accent-gradient);color:#fff;border:none;padding:8px 20px;border-radius:var(--radius-sm);font-size:14px;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.btn-nav-register:hover{opacity:.9;transform:translateY(-1px)}.user-menu{position:relative}.user-btn{display:flex;align-items:center;gap:8px;background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-primary);padding:6px 14px;border-radius:24px;cursor:pointer;transition:all var(--transition-fast)}.user-btn:hover{border-color:var(--accent-start)}.user-avatar{font-size:18px}.user-name{font-size:13px;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-dropdown{position:absolute;top:calc(100% + 8px);right:0;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);min-width:200px;box-shadow:0 12px 40px #0006;animation:fadeIn .15s ease;overflow:hidden;z-index:200}.dropdown-user-info{display:flex;align-items:center;gap:12px;padding:16px;border-bottom:1px solid var(--border-color)}.dropdown-avatar{font-size:28px}.dropdown-nickname{font-size:14px;font-weight:600}.dropdown-username{font-size:12px;color:var(--text-muted)}.dropdown-item{width:100%;text-align:left;background:none;border:none;color:var(--text-secondary);font-size:14px;padding:12px 16px;cursor:pointer;transition:background var(--transition-fast)}.dropdown-item:hover{background:var(--bg-card)}.logout-item:hover{color:#ef4444}.sidebar-user{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--bg-card);border-radius:var(--radius-sm);margin-bottom:12px;font-size:13px}.sidebar-user-avatar{font-size:20px;flex-shrink:0}.sidebar-user-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary)}.sidebar-logout{background:none;border:none;font-size:16px;cursor:pointer;opacity:.5;transition:opacity var(--transition-fast);padding:4px}.sidebar-logout:hover{opacity:1}.logo-link{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit}.mobile-header{display:none;align-items:center;justify-content:space-between;padding:0 16px;height:52px;background:#080d1ef2;border-bottom:1px solid var(--border-color);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);flex-shrink:0}.mobile-home-link{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--text-primary)}.mobile-logo{font-size:20px;line-height:1}.mobile-brand{font-size:14px;font-weight:600;background:var(--accent-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.mobile-nav-links{display:flex;gap:6px}.mobile-nav-btn{padding:5px 10px;border-radius:var(--radius-sm);font-size:12px;color:var(--text-secondary);text-decoration:none;transition:all var(--transition-fast)}.mobile-nav-btn:hover,.mobile-nav-btn.active{background:#6366f11f;color:var(--accent-primary)}.detail-full-page{min-height:100vh;display:flex;flex-direction:column;background:var(--bg-primary)}.detail-nav{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:0 32px;height:60px;background:#080d1eeb;border-bottom:1px solid var(--border-color);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);flex-shrink:0}.detail-nav-left{display:flex;align-items:center;gap:10px;overflow:hidden}.detail-home-link{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--text-primary);flex-shrink:0}.detail-nav-logo{font-size:22px;line-height:1}.detail-nav-title{font-size:15px;font-weight:600;background:var(--accent-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.detail-nav-sep{color:var(--text-muted);font-size:16px}.detail-nav-stock{font-size:14px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.detail-nav-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.btn-back-home{display:inline-flex;align-items:center;gap:4px;padding:6px 14px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:13px;font-weight:500;cursor:pointer;text-decoration:none;transition:all var(--transition-fast);font-family:inherit;white-space:nowrap}.btn-back-home:hover{border-color:var(--accent-primary);color:var(--accent-primary);background:#6366f114}.btn-back-home.home-btn{background:#6366f114;border-color:#6366f14d;color:var(--accent-primary)}.detail-page{flex:1;padding:24px 40px;max-width:1200px;width:100%;margin:0 auto}.stock-info-header{margin-bottom:20px}.stock-title{display:flex;align-items:baseline;gap:12px;margin-bottom:16px}.stock-title h2{font-size:24px;font-weight:700}.stock-code{font-size:13px;color:var(--text-muted);font-family:Inter,monospace}.stock-price-info{display:flex;flex-direction:column;gap:12px}.current-price{font-size:40px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.current-price.up{color:var(--color-up)}.current-price.down{color:var(--color-down)}.price-change{display:flex;gap:12px;font-size:16px;font-weight:600;font-variant-numeric:tabular-nums}.price-change.up{color:var(--color-up)}.price-change.down{color:var(--color-down)}.price-details{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding-top:12px;border-top:1px solid var(--border-color)}.detail-item{display:flex;flex-direction:column;gap:4px}.detail-item .label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.detail-item span:last-child{font-size:14px;font-weight:500;font-variant-numeric:tabular-nums}.detail-item .up{color:var(--color-up)}.detail-item .down{color:var(--color-down)}.btn-add-watch{align-self:flex-start;padding:8px 20px;border-radius:var(--radius-md);border:1px solid var(--border-color);background:transparent;color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-fast);font-family:inherit}.btn-add-watch:hover{border-color:var(--accent-primary);color:var(--accent-primary);background:#6366f114}.btn-add-watch.added{border-color:var(--signal-buy);color:var(--signal-buy);background:var(--signal-buy-bg)}.chart-section{margin-bottom:20px}.chart-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap;gap:8px}.chart-header h3{font-size:16px;font-weight:600}.chart-legend{display:flex;gap:16px;font-size:12px;color:var(--text-muted)}.legend-item.buy{color:var(--signal-buy)}.legend-item.sell{color:var(--signal-sell)}.chart-container{width:100%;max-width:100%;overflow:hidden;border-radius:var(--radius-sm)}.chart-container canvas{display:block;max-width:100%}.signals-section{margin-bottom:20px}.signals-section h3{font-size:16px;font-weight:600;margin-bottom:16px}.signals-list{display:flex;flex-direction:column;gap:8px}.signal-item{display:flex;align-items:center;gap:16px;padding:12px 16px;border-radius:var(--radius-sm);font-size:14px}.signal-item.buy{background:var(--signal-buy-bg);border-left:3px solid var(--signal-buy)}.signal-item.sell{background:var(--signal-sell-bg);border-left:3px solid var(--signal-sell)}.signal-date{color:var(--text-muted);min-width:90px}.signal-type{font-weight:600;flex:1}.signal-price{color:var(--text-secondary);font-variant-numeric:tabular-nums}.home-page{padding-top:68px}.hero-section{position:relative;display:flex;align-items:center;justify-content:center;gap:60px;padding:40px 60px 60px;min-height:auto;overflow:hidden}.hero-bg-effects{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.hero-glow{position:absolute;top:20%;left:30%;width:500px;height:500px;background:radial-gradient(circle,rgba(99,102,241,.15) 0%,transparent 70%);border-radius:50%;animation:pulse-glow 6s ease-in-out infinite}@keyframes pulse-glow{0%,to{transform:scale(1);opacity:.6}50%{transform:scale(1.2);opacity:1}}.hero-grid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(99,102,241,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(99,102,241,.03) 1px,transparent 1px);background-size:60px 60px}.particle{position:absolute;background:#6366f166;border-radius:50%;animation:float-particle linear infinite}@keyframes float-particle{0%{transform:translateY(0) scale(1);opacity:0}10%{opacity:1}90%{opacity:1}to{transform:translateY(-200px) scale(0);opacity:0}}.hero-content{max-width:560px;position:relative;z-index:1}.hero-badge{display:inline-flex;align-items:center;gap:8px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:24px;padding:6px 16px;font-size:13px;color:var(--text-secondary);margin-bottom:24px}.badge-dot{width:8px;height:8px;background:#22c55e;border-radius:50%;animation:blink 2s ease-in-out infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.hero-title{font-size:52px;font-weight:800;line-height:1.15;margin-bottom:20px}.title-line{display:inline}.title-line.accent{background:var(--accent-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.hero-desc{font-size:17px;line-height:1.7;color:var(--text-secondary);margin-bottom:28px}.hero-search-box{position:relative;margin-bottom:28px;max-width:500px}.hero-search-box .search-input-group{display:flex;align-items:center;background:#0f1737cc;border:1px solid rgba(99,102,241,.25);border-radius:50px;padding:0 20px;transition:all var(--transition-fast);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 4px 24px #0000004d,inset 0 1px #ffffff0d}.hero-search-box .search-input-group:focus-within{border-color:#6366f199;box-shadow:0 4px 24px #0000004d,0 0 0 3px #6366f11f,inset 0 1px #ffffff0d}.hero-search-box .search-input-group input{flex:1;background:none;border:none;color:var(--text-primary);font-size:15px;padding:14px 0;outline:none;min-width:0;font-family:inherit}.hero-search-box .search-input-group input::placeholder{color:var(--text-muted);font-size:14px}.search-icon-left{font-size:18px;margin-right:10px;flex-shrink:0;opacity:.7}.search-clear{cursor:pointer;color:var(--text-muted);font-size:13px;padding:4px 6px;border-radius:50%;transition:all var(--transition-fast);flex-shrink:0}.search-spinner{width:18px;height:18px;border:2px solid rgba(99,102,241,.3);border-top-color:var(--accent-primary);border-radius:50%;animation:spin .8s linear infinite;margin-left:8px;flex-shrink:0}.suggestions-dropdown{position:absolute;top:calc(100% + 8px);left:0;right:0;background:#0f1737fa;border:1px solid rgba(99,102,241,.2);border-radius:var(--radius-md);box-shadow:0 16px 48px #00000080;overflow:hidden;z-index:100;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);animation:fadeSlideDown .15s ease}@keyframes fadeSlideDown{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.suggestion-item{display:flex;align-items:center;gap:12px;padding:11px 20px;cursor:pointer;transition:background var(--transition-fast);border-bottom:1px solid rgba(255,255,255,.03)}.suggestion-item:hover,.suggestion-item.highlighted{background:#6366f11f}.suggestion-code{font-size:13px;font-weight:600;color:var(--accent-primary);min-width:58px;font-family:Inter,monospace}.suggestion-market{font-size:11px;color:var(--text-muted);background:#ffffff0d;padding:2px 7px;border-radius:4px}.hero-actions{display:flex;gap:16px;margin-bottom:48px}.btn-hero-primary{display:inline-flex;align-items:center;gap:8px;background:var(--accent-gradient);color:#fff;border:none;padding:14px 32px;border-radius:var(--radius-md);font-size:16px;font-weight:600;cursor:pointer;text-decoration:none;transition:all var(--transition-fast);box-shadow:0 4px 20px #6366f14d}.btn-hero-primary:hover{transform:translateY(-2px);box-shadow:0 8px 30px #6366f180}.btn-hero-secondary{display:inline-flex;align-items:center;background:transparent;color:var(--text-primary);border:1px solid var(--border-color);padding:14px 28px;border-radius:var(--radius-md);font-size:16px;cursor:pointer;text-decoration:none;transition:all var(--transition-fast)}.btn-hero-secondary:hover{border-color:var(--accent-start);color:var(--accent-start)}.hero-stats{display:flex;gap:32px}.hero-stat{display:flex;flex-direction:column;gap:4px}.stat-num{font-size:20px;font-weight:700;background:var(--accent-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.stat-txt{font-size:12px;color:var(--text-muted)}.hero-visual{position:relative;z-index:1;flex-shrink:0}.chart-demo{position:relative;background:#0f172a99;border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:20px;box-shadow:0 20px 60px #0000004d}.chart-demo canvas{border-radius:var(--radius-sm)}.chart-overlay{position:absolute;bottom:-12px;left:50%;transform:translate(-50%);display:flex;gap:12px}.signal-tag{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:20px;padding:6px 14px;font-size:11px;white-space:nowrap;box-shadow:0 4px 16px #0000004d}.buy-tag{color:#4ade80}.sell-tag{color:#f87171}.search-kline-section{padding:60px 60px 80px;position:relative}.search-kline-wrapper{max-width:800px;margin:0 auto}.home-search-box{position:relative;margin-bottom:32px}.search-input-group{display:flex;align-items:center;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:0 20px;transition:all var(--transition-fast);box-shadow:0 4px 20px #0003}.search-input-group:focus-within{border-color:var(--accent-start);box-shadow:0 4px 30px #6366f126}.search-icon-left{font-size:20px;margin-right:12px;flex-shrink:0}.search-input-group input{flex:1;background:none;border:none;color:var(--text-primary);font-size:16px;padding:16px 0;outline:none;min-width:0}.search-input-group input::placeholder{color:var(--text-muted)}.search-clear{cursor:pointer;color:var(--text-muted);font-size:14px;padding:4px 8px;border-radius:50%;transition:all var(--transition-fast)}.search-clear:hover{color:var(--text-primary);background:#ffffff1a}.search-spinner{width:20px;height:20px;border:2px solid var(--border-color);border-top-color:var(--accent-start);border-radius:50%;animation:spin .8s linear infinite;margin-left:8px;flex-shrink:0}.suggestions-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:0 12px 40px #0006;overflow:hidden;z-index:50;animation:fadeIn .15s ease}.suggestion-item{display:flex;align-items:center;gap:12px;padding:12px 20px;cursor:pointer;transition:background var(--transition-fast);border-bottom:1px solid rgba(255,255,255,.03)}.suggestion-item:last-child{border-bottom:none}.suggestion-item:hover,.suggestion-item.highlighted{background:#6366f11a}.suggestion-code{font-size:14px;font-weight:600;color:var(--accent-start);min-width:64px}.suggestion-name{flex:1;font-size:14px;color:var(--text-primary)}.suggestion-market{font-size:11px;color:var(--text-muted);background:#ffffff0d;padding:2px 8px;border-radius:4px}.kline-result{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow:hidden;animation:slideUp .3s ease}.kline-result-header{display:flex;align-items:center;gap:16px;padding:20px 24px;border-bottom:1px solid var(--border-color)}.kline-stock-info h3{font-size:18px;font-weight:700;margin-bottom:2px}.kline-stock-code{font-size:12px;color:var(--text-muted)}.kline-realtime{margin-left:auto;text-align:right}.kline-price{font-size:20px;font-weight:700;display:block}.kline-price.up{color:var(--signal-sell, #ef4444)}.kline-price.down{color:var(--signal-buy, #22c55e)}.kline-change{font-size:13px;font-weight:500}.kline-change.up{color:var(--signal-sell, #ef4444)}.kline-change.down{color:var(--signal-buy, #22c55e)}.btn-close-kline{background:none;border:1px solid var(--border-color);color:var(--text-muted);font-size:12px;padding:6px 12px;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.btn-close-kline:hover{border-color:#ef4444;color:#ef4444}.kline-loading{display:flex;align-items:center;justify-content:center;gap:12px;padding:60px 20px;color:var(--text-secondary);font-size:14px}.kline-loading-spinner{width:24px;height:24px;border:2px solid var(--border-color);border-top-color:var(--accent-start);border-radius:50%;animation:spin .8s linear infinite}.kline-chart-area{padding:16px}.kline-chart-container{border-radius:var(--radius-md);overflow:hidden;width:100%;max-width:100%}.kline-chart-container canvas{display:block;max-width:100%}.kline-signals{margin-top:20px;padding-top:16px;border-top:1px solid var(--border-color)}.kline-signals h4{font-size:14px;font-weight:600;margin-bottom:12px}.kline-signal-list{display:flex;flex-direction:column;gap:8px}.kline-signal-item{display:flex;align-items:center;gap:12px;padding:10px 14px;background:#ffffff05;border-radius:var(--radius-sm);font-size:13px}.kline-signal-date{color:var(--text-muted);min-width:80px}.kline-signal-type{font-weight:600}.kline-signal-type.buy{color:#4ade80}.kline-signal-type.sell{color:#f87171}.kline-signal-price{margin-left:auto;color:var(--text-secondary)}.features-section,.howto-section,.cta-section{padding:80px 60px;position:relative}.section-header{text-align:center;margin-bottom:48px}.section-tag{display:inline-block;background:#6366f11a;color:var(--accent-start);font-size:12px;font-weight:600;padding:4px 14px;border-radius:16px;margin-bottom:12px;text-transform:uppercase;letter-spacing:1px}.section-header h2{font-size:32px;font-weight:700;margin-bottom:8px}.section-header p{color:var(--text-secondary);font-size:16px}.features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:1000px;margin:0 auto}.feature-block{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:28px;transition:all var(--transition-fast)}.feature-block:hover{border-color:var(--accent-start);transform:translateY(-4px);box-shadow:0 12px 40px #0003}.feature-icon-wrap{width:48px;height:48px;background:#6366f11a;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:24px;margin-bottom:16px}.feature-block h3{font-size:16px;font-weight:600;margin-bottom:8px}.feature-block p{font-size:13px;color:var(--text-secondary);line-height:1.6}.howto-section{background:var(--bg-secondary)}.howto-steps{display:flex;flex-direction:column;gap:24px;max-width:700px;margin:0 auto}.howto-step{display:flex;align-items:center;gap:24px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:24px;transition:all var(--transition-fast)}.howto-step:hover{border-color:var(--accent-start)}.step-number{width:44px;height:44px;background:var(--accent-gradient);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;color:#fff;flex-shrink:0}.step-content{flex:1}.step-content h3{font-size:16px;font-weight:600;margin-bottom:4px}.step-content p{font-size:13px;color:var(--text-secondary);line-height:1.6}.step-visual{font-size:36px;flex-shrink:0}.cta-section{text-align:center}.cta-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at center,rgba(99,102,241,.08) 0%,transparent 70%);pointer-events:none}.cta-content{position:relative;z-index:1}.cta-content h2{font-size:28px;font-weight:700;margin-bottom:12px}.cta-content p{color:var(--text-secondary);font-size:16px;margin-bottom:32px}.btn-cta{background:var(--accent-gradient);color:#fff;border:none;padding:16px 40px;border-radius:var(--radius-md);font-size:18px;font-weight:600;cursor:pointer;transition:all var(--transition-fast);box-shadow:0 4px 20px #6366f14d}.btn-cta:hover{transform:translateY(-2px);box-shadow:0 8px 30px #6366f180}.home-footer{border-top:1px solid var(--border-color);padding:40px 60px}.footer-inner{text-align:center}.footer-brand{display:flex;align-items:center;justify-content:center;gap:8px;font-size:16px;font-weight:600;margin-bottom:12px}.footer-logo{width:28px;height:28px;background:var(--accent-gradient);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:14px}.footer-disclaimer{color:var(--text-muted);font-size:12px;margin-bottom:8px}.footer-copy{color:var(--text-muted);font-size:11px}.login-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn .2s ease}.login-modal{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:40px;width:400px;max-width:90vw;position:relative;animation:slideUp .3s ease;box-shadow:0 20px 60px #00000080}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.login-modal.shake{animation:shakeModal .5s ease}@keyframes shakeModal{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.modal-close{position:absolute;top:16px;right:16px;background:none;border:none;color:var(--text-muted);font-size:18px;cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all var(--transition-fast)}.modal-close:hover{background:var(--bg-card);color:var(--text-primary)}.login-logo{text-align:center;margin-bottom:28px}.login-logo-icon{width:56px;height:56px;background:var(--accent-gradient);border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:700;margin:0 auto 16px;box-shadow:0 4px 20px #6366f14d}.login-logo h2{font-size:22px;font-weight:700;margin-bottom:4px}.login-logo p{font-size:13px;color:var(--text-secondary)}.login-error{background:#ef44441a;border:1px solid rgba(239,68,68,.2);color:#f87171;padding:10px 14px;border-radius:var(--radius-sm);font-size:13px;margin-bottom:16px;display:flex;align-items:center;gap:8px}.login-success{background:#22c55e1a;border:1px solid rgba(34,197,94,.2);color:#4ade80;padding:10px 14px;border-radius:var(--radius-sm);font-size:13px;margin-bottom:16px;display:flex;align-items:center;gap:8px}.login-form{display:flex;flex-direction:column;gap:18px}.form-group label{display:block;font-size:13px;font-weight:500;color:var(--text-secondary);margin-bottom:6px}.optional{color:var(--text-muted);font-weight:400}.input-wrap{display:flex;align-items:center;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:0 14px;transition:border-color var(--transition-fast)}.input-wrap:focus-within{border-color:var(--accent-start)}.input-icon{font-size:16px;margin-right:10px;flex-shrink:0}.input-wrap input{flex:1;background:none;border:none;color:var(--text-primary);font-size:14px;padding:12px 0;outline:none}.input-wrap input::placeholder{color:var(--text-muted)}.pwd-toggle{background:none;border:none;font-size:18px;cursor:pointer;padding:4px;opacity:.6;transition:opacity var(--transition-fast)}.pwd-toggle:hover{opacity:1}.btn-login{background:var(--accent-gradient);color:#fff;border:none;padding:14px;border-radius:var(--radius-sm);font-size:16px;font-weight:600;cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center;gap:8px;margin-top:4px}.btn-login:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 20px #6366f166}.btn-login:disabled{opacity:.6;cursor:not-allowed}.btn-loading{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-switch{text-align:center;margin-top:20px;font-size:13px;color:var(--text-secondary)}.login-switch button{background:none;border:none;color:var(--accent-start);font-size:13px;font-weight:600;cursor:pointer;padding:0}.login-switch button:hover{text-decoration:underline}@media (max-width: 900px){.sidebar{width:64px;min-width:64px;padding:16px 8px}.logo-text,.nav-item span:not(.nav-icon),.badge,.sidebar-footer .market-status span:not(.status-dot),.time-display{display:none}.logo-icon{width:40px;height:40px;font-size:18px}.nav-item{justify-content:center;padding:12px}.page{padding:20px}.stat-cards{grid-template-columns:repeat(2,1fr)}.feature-cards{flex-direction:column;align-items:center}.control-row{flex-direction:column;align-items:stretch}.control-action{margin-left:0}}@media (max-width: 640px){html,body{overflow:auto;height:auto}#app{height:auto;min-height:100vh}.app-layout{flex-direction:column;height:auto;min-height:100vh}.sidebar{position:fixed;bottom:0;left:0;right:0;width:100%;min-width:100%;height:auto;flex-direction:row;align-items:center;justify-content:space-around;padding:0;border-right:none;border-top:1px solid var(--border-color);background:#0f172af2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);z-index:1000}.sidebar:before{display:none}.logo,.sidebar-footer{display:none}.nav-links{flex-direction:row;width:100%;justify-content:space-around;gap:0;padding:0}.nav-item{flex-direction:column;gap:3px;padding:10px 16px;font-size:11px;border-radius:0;flex:1;justify-content:center;align-items:center;position:relative}.nav-item.active:before{top:0;left:50%;bottom:auto;transform:translate(-50%);width:20px;height:3px;border-radius:0 0 3px 3px}.nav-icon{font-size:20px}.nav-item span:not(.nav-icon){display:inline;font-size:10px}.badge{position:absolute;top:4px;right:calc(50% - 24px);font-size:9px;padding:1px 5px;min-width:16px}.main-content{overflow:visible;padding-bottom:72px}.main-content:before{display:none}.page{padding:16px;max-width:100%}.page-header{flex-direction:column;align-items:flex-start;gap:12px;margin-bottom:16px}.page-header h2{font-size:20px}.subtitle{font-size:12px}.header-actions{width:100%}.btn-refresh{width:100%;justify-content:center}.glass-card{padding:16px;border-radius:var(--radius-md)}.control-panel{margin-bottom:16px}.control-row{flex-direction:column;align-items:stretch;gap:16px}.control-action{margin-left:0}.btn-group{flex-wrap:wrap}.btn-group button{padding:10px 14px;font-size:13px;flex:1;min-width:0;text-align:center}.btn-scan{width:100%;justify-content:center;padding:14px;font-size:16px}.stock-table thead{display:none}.stock-table,.stock-table tbody{display:flex;flex-direction:column;gap:10px}.stock-row{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;padding:14px 16px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:all var(--transition-fast)}.stock-row:active{background:var(--bg-card-hover)}.stock-row td{padding:0;border:none;white-space:normal}.scanner-page .stock-row{grid-template-columns:1fr auto;grid-template-rows:auto auto auto}.scanner-page .name-cell{font-size:15px;grid-column:1;grid-row:1}.scanner-page .code-cell{font-size:12px;grid-column:1;grid-row:2}.scanner-page .price-cell{grid-column:2;grid-row:1;text-align:right;font-size:16px;font-weight:600}.scanner-page .change-cell{grid-column:2;grid-row:2;text-align:right;font-size:13px}.scanner-page .td-count-cell{grid-column:1;grid-row:3}.scanner-page .stock-row td:nth-child(6){grid-column:1;grid-row:3;display:flex;align-items:center;gap:8px}.scanner-page .stock-row td:last-child{grid-column:2;grid-row:3;display:flex;justify-content:flex-end;align-items:center}.watchlist-page .stock-row{grid-template-columns:1fr auto;grid-template-rows:auto auto auto auto}.watchlist-page .name-cell{font-size:15px;grid-column:1;grid-row:1}.watchlist-page .code-cell{font-size:12px;grid-column:1;grid-row:2}.watchlist-page .price-cell:first-of-type{grid-column:2;grid-row:1;text-align:right;font-size:16px;font-weight:600}.watchlist-page .change-cell:first-of-type{grid-column:2;grid-row:2;text-align:right}.watchlist-page .stock-row td:nth-child(5){grid-column:1;grid-row:3;font-size:12px;color:var(--text-muted)}.watchlist-page .stock-row td:nth-child(5):before{content:"加入价 ";color:var(--text-muted)}.watchlist-page .stock-row td:nth-child(6){grid-column:2;grid-row:3;text-align:right;font-size:13px}.watchlist-page .date-cell{grid-column:1;grid-row:4;font-size:11px}.watchlist-page .stock-row td:last-child{grid-column:2;grid-row:4;display:flex;justify-content:flex-end}.stat-cards{grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:16px}.stat-card{padding:14px}.stat-value{font-size:22px}.stat-label{font-size:11px}.search-bar{margin-bottom:16px}.search-input-wrap input{font-size:16px}.search-dropdown{max-height:250px}.search-item{padding:14px 16px}.loading-state,.empty-state,.welcome-state{padding:48px 16px}.empty-icon,.welcome-icon{font-size:48px}.empty-state h3,.welcome-state h3{font-size:18px}.feature-cards{flex-direction:column;align-items:stretch;gap:12px;margin-top:32px}.feature-card{width:auto;padding:20px;display:flex;align-items:center;gap:16px;text-align:left}.feature-icon{font-size:28px;margin-bottom:0;flex-shrink:0}.feature-card h4{margin-bottom:2px;font-size:14px}.results-header{flex-direction:column;align-items:flex-start;gap:6px;margin-bottom:12px}.back-bar{margin-bottom:16px}.btn-back{padding:10px 14px;font-size:13px}.btn-add-watch{padding:10px 16px;font-size:13px}.stock-info-header{margin-bottom:16px}.stock-title h2{font-size:22px}.stock-price-info{flex-direction:column;align-items:flex-start;gap:12px}.current-price{font-size:34px}.price-change{flex-direction:row;gap:12px;font-size:14px}.price-details{margin-left:0;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;width:100%;padding-top:12px;border-top:1px solid var(--border-color)}.detail-item{font-size:12px}.chart-section{margin-bottom:16px}.chart-header{flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:12px}.chart-legend{flex-wrap:wrap;gap:12px;font-size:11px}.signal-item{flex-wrap:wrap;gap:8px;padding:12px}.signal-date{min-width:auto;font-size:12px}.signal-type{min-width:auto;font-size:13px}.signal-price{width:100%;margin-left:0;font-size:12px}.btn-add,.btn-remove{padding:10px 16px;font-size:13px;min-height:38px}.app-layout{flex-direction:column}.sidebar{display:none}.mobile-header{display:flex}.main-content{height:auto;min-height:0}.home-nav{padding:12px 16px}.brand-text{display:none}.home-nav-right{gap:8px}.nav-link{display:none}.btn-nav-login,.btn-nav-register{padding:6px 14px;font-size:13px}.hero-section{flex-direction:column;padding:2px 20px;gap:32px;min-height:auto}.hero-title{font-size:32px}.hero-desc{font-size:14px}.hero-actions{flex-direction:column;gap:12px;margin-bottom:32px}.btn-hero-primary,.btn-hero-secondary{justify-content:center;padding:12px 24px;font-size:15px}.hero-stats{flex-wrap:wrap;gap:20px}.hero-visual{width:100%}.chart-demo{padding:12px}.chart-demo canvas{width:100%!important;height:auto!important}.chart-overlay{flex-direction:row;gap:8px;font-size:11px}.chart-overlay .signal-tag{padding:3px 6px;font-size:11px}.hero-search-box{max-width:100%;margin-bottom:20px}.hero-search-box .search-input-group input{font-size:14px;padding:12px 0}.search-icon-left{font-size:16px;margin-right:8px}.suggestion-item{padding:10px 16px;gap:8px}.suggestion-code{min-width:50px;font-size:12px}.suggestion-name{font-size:13px}.features-section,.howto-section,.cta-section{padding:48px 20px}.section-header h2{font-size:24px}.features-grid{grid-template-columns:1fr;gap:16px}.feature-block{display:flex;align-items:flex-start;gap:16px;padding:20px}.feature-icon-wrap{margin-bottom:0;flex-shrink:0}.howto-step{flex-wrap:wrap;gap:16px;padding:20px}.step-visual{display:none}.cta-content h2{font-size:22px}.home-footer{padding:32px 20px}.login-modal{padding:28px 20px;margin:0 16px}.user-name{display:none}.user-btn{padding:6px 10px}.detail-nav{padding:0 16px;height:52px}.detail-nav-title,.detail-nav-sep{display:none}.btn-back-home{padding:5px 10px;font-size:12px}.detail-page{padding:16px}.current-price{font-size:30px}.price-details{grid-template-columns:repeat(2,1fr)}.stock-title h2{font-size:20px}.chart-header{flex-direction:column;align-items:flex-start}.chart-legend{flex-wrap:wrap;gap:8px}.signal-item{flex-wrap:wrap;gap:6px;font-size:13px}.signal-date{min-width:80px}}@media (max-width: 380px){.page{padding:12px}.page-header h2{font-size:18px}.btn-group button{padding:8px 10px;font-size:12px}.stat-cards{grid-template-columns:1fr 1fr;gap:8px}.stat-value{font-size:18px}.current-price{font-size:28px}.price-details{grid-template-columns:repeat(2,1fr)}}@supports (padding-bottom: env(safe-area-inset-bottom)){@media (max-width: 640px){.sidebar{padding-bottom:env(safe-area-inset-bottom)}.main-content{padding-bottom:calc(72px + env(safe-area-inset-bottom))}}}.scan-progress{margin-bottom:20px;padding:16px 20px}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:14px}.progress-stage{color:var(--text-secondary)}.progress-percent{font-weight:700;font-variant-numeric:tabular-nums;background:var(--accent-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.progress-bar-wrap{height:6px;border-radius:3px;background:#ffffff0f;overflow:hidden;margin-bottom:8px}.progress-bar-fill{height:100%;border-radius:3px;background:var(--accent-gradient);transition:width .5s ease;position:relative}.progress-bar-fill:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);animation:shimmer 1.5s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.progress-detail{display:flex;justify-content:space-between;font-size:12px;color:var(--text-muted)}.progress-found{color:var(--signal-buy);font-weight:600}.error-state{padding:12px 20px;color:var(--signal-sell);border-left:3px solid var(--signal-sell);margin-top:16px;font-size:14px}
