:root{--font-mono:"Cascadia Code", "SFMono-Regular", Consolas, monospace;--bg-base:#06060f;--bg-surface:#ffffff0a;--bg-surface-hover:#ffffff12;--bg-card:#ffffff0d;--bg-glass:#0e0e1ccc;--border-subtle:#ffffff14;--border-mid:#ffffff24;--border-bright:#ffffff38;--text-primary:#fffffff2;--text-secondary:#ffffff8c;--text-muted:#ffffff4d;--color-strong-buy:#22c55e;--color-strong-buy-glow:#22c55e40;--color-strong-buy-border:#22c55e80;--color-watch-buy:#a3e635;--color-watch-buy-glow:#a3e63533;--color-watch-buy-border:#a3e63573;--color-take-profit:#ef4444;--color-take-profit-glow:#ef444438;--color-take-profit-border:#ef444480;--color-hold:#ffffff59;--color-hold-border:#ffffff26;--color-greed:#22c55e;--color-neutral:#eab308;--color-fear:#f97316;--color-extreme-fear:#ef4444;--accent-purple:#8b5cf6;--accent-blue:#3b82f6;--accent-cyan:#06b6d4;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--shadow-card:0 4px 24px #0006;--shadow-glow-green:0 0 20px #22c55e26, 0 0 40px #22c55e14;--shadow-glow-red:0 0 20px #ef444426, 0 0 40px #ef444414}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background-color:var(--bg-base);color:var(--text-primary);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.6;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(#8b5cf61f 0%,#0000 60%);width:60vw;height:60vw;position:fixed;top:-30%;left:-20%}body:after{content:"";pointer-events:none;z-index:0;background:radial-gradient(#3b82f61a 0%,#0000 60%);width:50vw;height:50vw;position:fixed;bottom:-20%;right:-10%}.app-wrapper{z-index:1;max-width:960px;margin:0 auto;padding:32px 20px 80px;position:relative}.app-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;margin-bottom:36px;padding-bottom:20px;display:flex}.app-logo{align-items:center;gap:12px;display:flex}.app-logo-icon{background:linear-gradient(135deg, var(--accent-purple), var(--accent-blue));border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;font-size:20px;display:flex}.app-title{background:linear-gradient(135deg,#fff 30%,#8b5cf6cc);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:20px;font-weight:700}.app-subtitle{color:var(--text-muted);margin-top:2px;font-size:12px}.header-actions{align-items:center;gap:10px;display:flex}.user-chip{background:var(--bg-surface);border:1px solid var(--border-subtle);color:var(--text-secondary);cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:5px 10px 5px 6px;transition:all .2s;display:inline-flex}.user-chip:hover{color:var(--text-primary);border-color:var(--border-mid);background:var(--bg-surface-hover)}.user-avatar{color:#fff;background:linear-gradient(135deg, var(--accent-purple), var(--accent-blue));border-radius:50%;flex:none;justify-content:center;align-items:center;width:26px;height:26px;font-size:12px;font-weight:700;display:inline-flex}.user-chip-name{text-overflow:ellipsis;white-space:nowrap;max-width:90px;overflow:hidden}.btn{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:1px solid #0000;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:500;transition:all .2s;display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--accent-purple), var(--accent-blue));color:#fff;border-color:#0000}.btn-primary:hover{opacity:.88;transform:translateY(-1px);box-shadow:0 4px 16px #8b5cf659}.btn-ghost{background:var(--bg-surface);color:var(--text-secondary);border-color:var(--border-subtle)}.btn-ghost:hover{background:var(--bg-surface-hover);color:var(--text-primary);border-color:var(--border-mid)}.btn-danger{color:var(--color-take-profit);background:#ef44441a;border-color:#ef444433}.btn-danger:hover{background:#ef44442e;border-color:#ef444466}.btn-icon{border-radius:var(--radius-sm);padding:8px}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.glass-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(12px);box-shadow:var(--shadow-card);transition:all .25s}.glass-card:hover{border-color:var(--border-mid)}.market-overview{margin-bottom:28px}.section-label{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin-bottom:12px;font-size:11px;font-weight:600}.market-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.market-metric-card{border-radius:var(--radius-md);background:var(--bg-card);border:1px solid var(--border-subtle);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:16px 18px}.metric-label{color:var(--text-muted);letter-spacing:.04em;margin-bottom:8px;font-size:11px;font-weight:500}.metric-value{font-family:var(--font-mono);color:var(--text-primary);font-size:22px;font-weight:600;line-height:1}.metric-status{align-items:center;gap:6px;margin-top:6px;font-size:12px;font-weight:500;display:flex}.metric-dot{border-radius:50%;width:7px;height:7px}.position-card{text-align:center}.position-pct{font-family:var(--font-mono);background:linear-gradient(135deg, var(--accent-cyan), var(--accent-blue));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:28px;font-weight:700;line-height:1}.search-section{margin-bottom:28px}.search-wrapper{position:relative}.search-input-row{gap:10px;display:flex}.search-input{background:var(--bg-surface);border:1px solid var(--border-mid);border-radius:var(--radius-md);color:var(--text-primary);outline:none;flex:1;padding:12px 16px 12px 44px;font-family:inherit;font-size:14px;transition:all .2s}.search-input:focus{border-color:var(--accent-purple);background:var(--bg-surface-hover);box-shadow:0 0 0 3px #8b5cf61f}.search-input::placeholder{color:var(--text-muted)}.search-icon{color:var(--text-muted);pointer-events:none;font-size:16px;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.search-results{background:var(--bg-glass);border:1px solid var(--border-mid);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(20px);z-index:100;position:absolute;top:calc(100% + 6px);left:0;right:80px;overflow:hidden;box-shadow:0 8px 32px #00000080}.search-result-item{cursor:pointer;border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:10px 16px;transition:background .15s;display:flex}.search-result-item:last-child{border-bottom:none}.search-result-item:hover{background:var(--bg-surface-hover)}.search-result-ticker{font-family:var(--font-mono);color:var(--accent-cyan);font-size:14px;font-weight:600}.search-result-name{color:var(--text-secondary);margin-left:8px;font-size:13px}.search-result-exchange{color:var(--text-muted);background:var(--bg-surface);border-radius:999px;padding:2px 8px;font-size:11px}.watchlist-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.watchlist-count{color:var(--text-muted);font-size:13px}.watchlist-grid{flex-direction:column;gap:12px;display:flex}.stock-card{border-radius:var(--radius-lg);background:var(--bg-card);border:1px solid var(--border-subtle);-webkit-backdrop-filter:blur(12px);padding:20px;transition:all .3s;position:relative;overflow:hidden}.stock-card:before{content:"";background:var(--card-accent,transparent);border-radius:var(--radius-lg) var(--radius-lg) 0 0;height:2px;transition:opacity .3s;position:absolute;top:0;left:0;right:0}.stock-card:hover{border-color:var(--border-mid);transform:translateY(-2px);box-shadow:0 8px 32px #00000059}.stock-card.signal-strong-buy{--card-accent:linear-gradient(90deg, var(--color-strong-buy), var(--color-watch-buy));border-color:var(--color-strong-buy-border);box-shadow:var(--shadow-glow-green)}.stock-card.signal-watch-buy{--card-accent:linear-gradient(90deg, var(--color-watch-buy), var(--color-watch-buy));border-color:var(--color-watch-buy-border)}.stock-card.signal-take-profit{--card-accent:linear-gradient(90deg, var(--color-take-profit), #f97316);border-color:var(--color-take-profit-border);box-shadow:var(--shadow-glow-red)}.stock-card-header{justify-content:space-between;align-items:flex-start;margin-bottom:14px;display:flex}.stock-identity{align-items:center;gap:10px;display:flex}.stock-ticker-badge{font-family:var(--font-mono);background:var(--bg-surface);border:1px solid var(--border-mid);color:var(--accent-cyan);letter-spacing:.04em;border-radius:6px;padding:4px 10px;font-size:15px;font-weight:700}.stock-name{color:var(--text-secondary);font-size:14px;font-weight:500}.stock-card-actions{align-items:center;gap:8px;display:flex}.stock-price-row{align-items:baseline;gap:10px;margin-bottom:16px;display:flex}.stock-price{font-family:var(--font-mono);color:var(--text-primary);font-size:24px;font-weight:700}.stock-change{font-family:var(--font-mono);border-radius:999px;padding:2px 8px;font-size:13px;font-weight:600}.stock-change.positive{color:var(--color-strong-buy);background:#22c55e1f}.stock-change.negative{color:var(--color-take-profit);background:#ef44441f}.stock-metrics{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px;display:grid}.stock-metric{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:10px 12px}.stock-metric-label{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px;font-size:10px;font-weight:600}.stock-metric-value{font-family:var(--font-mono);color:var(--text-primary);font-size:15px;font-weight:600}.stock-metric-sub{color:var(--text-muted);margin-top:2px;font-size:11px}.rsi-oversold{color:var(--color-strong-buy)!important}.rsi-overbought{color:var(--color-take-profit)!important}.rsi-neutral{color:var(--text-primary)}.ma-near{color:var(--color-strong-buy)}.ma-above{color:var(--color-watch-buy)}.ma-below{color:var(--color-fear)}.wave-info{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);align-items:center;gap:8px;margin-bottom:14px;padding:10px 14px;display:flex}.wave-icon{font-size:16px}.wave-label{color:var(--text-primary);flex:1;font-size:13px;font-weight:500}.wave-confidence{font-family:var(--font-mono);color:var(--text-muted);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:999px;padding:2px 8px;font-size:11px}.signal-badge{border-radius:var(--radius-sm);border:1px solid #0000;justify-content:center;align-items:center;gap:6px;width:100%;padding:7px 14px;font-size:13px;font-weight:600;display:inline-flex}.signal-badge.strong-buy{border-color:var(--color-strong-buy-border);color:var(--color-strong-buy);background:#22c55e1f;animation:2s ease-in-out infinite pulse-green}.signal-badge.watch-buy{border-color:var(--color-watch-buy-border);color:var(--color-watch-buy);background:#a3e6351a}.signal-badge.take-profit{border-color:var(--color-take-profit-border);color:var(--color-take-profit);background:#ef44441f;animation:2s ease-in-out infinite pulse-red}.signal-badge.hold{color:#93c5fd;background:#3b82f61f;border-color:#60a5fa61}@keyframes pulse-green{0%,to{box-shadow:0 0 #22c55e00}50%{box-shadow:0 0 12px 2px #22c55e40}}@keyframes pulse-red{0%,to{box-shadow:0 0 #ef444400}50%{box-shadow:0 0 12px 2px #ef444440}}.pe-toggle{color:var(--text-muted);cursor:pointer;align-items:center;gap:6px;font-size:12px;display:flex}.toggle-switch{background:var(--border-mid);border-radius:999px;width:30px;height:16px;transition:background .2s;position:relative}.toggle-switch.active{background:var(--accent-purple)}.toggle-thumb{background:#fff;border-radius:50%;width:12px;height:12px;transition:transform .2s;position:absolute;top:2px;left:2px}.toggle-switch.active .toggle-thumb{transform:translate(14px)}.settings-overlay{z-index:200;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;justify-content:center;align-items:flex-end;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.settings-panel{background:var(--bg-glass);border:1px solid var(--border-mid);border-radius:var(--radius-xl) var(--radius-xl) 0 0;-webkit-backdrop-filter:blur(20px);width:100%;max-width:640px;padding:28px 24px;animation:.3s slideUp}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.settings-title{justify-content:space-between;align-items:center;margin-bottom:20px;font-size:16px;font-weight:700;display:flex}.settings-field{margin-bottom:16px}.settings-label{color:var(--text-secondary);margin-bottom:8px;font-size:12px;font-weight:500}.settings-input{background:var(--bg-surface);border:1px solid var(--border-mid);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);font-size:14px;font-family:var(--font-mono);outline:none;padding:10px 14px;transition:all .2s}.settings-input:focus{border-color:var(--accent-purple);box-shadow:0 0 0 3px #8b5cf61f}.settings-hint{color:var(--text-muted);margin-top:6px;font-size:11px}.settings-hint a{color:var(--accent-cyan);text-decoration:none}.account-summary{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-surface);align-items:center;gap:12px;margin-bottom:20px;padding:14px;display:flex}.user-avatar-large{width:40px;height:40px;font-size:16px}.account-name{color:var(--text-primary);font-size:14px;font-weight:650}.account-email{color:var(--text-muted);margin-top:2px;font-size:12px}.btn-logout{color:#fca5a5;background:#ef444414;border-color:#ef44442e;justify-content:center;width:100%;margin-top:20px}.btn-logout:hover{background:#ef444426;border-color:#ef444459}.auth-shell{z-index:1;place-items:center;min-height:100vh;padding:32px 18px;display:grid;position:relative}.auth-card{border-color:var(--border-mid);background:#0e0e1ce0;width:min(100%,440px);padding:32px}.auth-brand{align-items:center;gap:14px;margin-bottom:28px;display:flex}.auth-brand-icon{background:linear-gradient(135deg, var(--accent-purple), var(--accent-blue));border-radius:13px;justify-content:center;align-items:center;width:48px;height:48px;margin-bottom:12px;font-size:24px;display:flex;box-shadow:0 10px 28px #3b82f638}.auth-brand .auth-brand-icon{margin-bottom:0}.auth-title{color:var(--text-primary);font-size:22px;font-weight:750}.auth-subtitle{color:var(--text-secondary);margin-top:4px;font-size:13px}.auth-tabs{border-radius:var(--radius-md);background:#ffffff09;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:22px;padding:4px;display:grid}.auth-tab{border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;background:0 0;border:0;padding:9px 12px;transition:all .2s}.auth-tab.active{color:#fff;background:linear-gradient(135deg,#8b5cf6bf,#3b82f6bf)}.auth-form{flex-direction:column;gap:16px;display:flex}.auth-field{color:var(--text-secondary);flex-direction:column;gap:7px;font-size:12px;display:flex}.auth-field input{border:1px solid var(--border-mid);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);background:var(--bg-surface);outline:none;padding:11px 13px;transition:all .2s}.auth-field input:focus{border-color:var(--accent-purple);box-shadow:0 0 0 3px #8b5cf61f}.auth-error{border-radius:var(--radius-sm);color:#fca5a5;background:#ef444414;border:1px solid #ef444440;padding:9px 11px;font-size:12px}.auth-submit{justify-content:center;width:100%;margin-top:2px;padding:11px 16px}.auth-privacy{border-top:1px solid var(--border-subtle);text-align:center;color:var(--text-muted);margin-top:20px;padding-top:16px;font-size:11px}.auth-loading-bar{width:100%;height:6px;margin-top:24px}.skeleton{background:linear-gradient(90deg, var(--bg-surface) 25%, var(--bg-surface-hover) 50%, var(--bg-surface) 75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.5s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.empty-state{text-align:center;color:var(--text-muted);padding:60px 20px}.empty-state-icon{opacity:.5;margin-bottom:16px;font-size:48px}.empty-state-title{color:var(--text-secondary);margin-bottom:8px;font-size:16px;font-weight:600}.empty-state-desc{font-size:13px;line-height:1.6}.toast-container{z-index:999;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:24px;right:24px}.toast{border-radius:var(--radius-md);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-mid);max-width:320px;padding:12px 18px;font-size:13px;font-weight:500;animation:.3s toastIn,.3s 2.7s forwards toastOut}.toast.success{color:var(--color-strong-buy);background:#22c55e26;border-color:#22c55e4d}.toast.error{color:var(--color-take-profit);background:#ef444426;border-color:#ef44444d}.toast.info{color:#a78bfa;background:#8b5cf626;border-color:#8b5cf64d}@keyframes toastIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes toastOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(20px)}}.push-status-bar{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-muted);justify-content:space-between;align-items:center;margin-bottom:24px;padding:10px 16px;font-size:12px;display:flex}.push-status-dot{background:var(--color-strong-buy);width:6px;height:6px;box-shadow:0 0 6px var(--color-strong-buy);border-radius:50%;animation:2s ease-in-out infinite blink}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.divider{background:var(--border-subtle);height:1px;margin:24px 0}@media (max-width:600px){.app-wrapper{padding:20px 14px 60px}.market-grid{grid-template-columns:1fr 1fr}.stock-metrics{grid-template-columns:repeat(2,1fr)}.app-title{font-size:16px}.stock-price{font-size:20px}.user-chip-name{display:none}.user-chip{padding-right:6px}.auth-card{padding:26px 20px}}@media (max-width:400px){.market-grid{grid-template-columns:1fr}}
