.toast{position:fixed;top:4.5rem;left:1.5rem;padding:.75rem 1.25rem;border-radius:6px;display:flex;gap:1rem;align-items:center;z-index:1000;animation:slide-in .2s ease}.toast button{scale:.5;color:#fff;top:.15rem;right:.15rem;background-color:transparent}.toast-success{background:#1a9e5c;color:#fff}.toast-fail{background:#c0392b;color:#fff}@keyframes slide-in{0%{transform:translateY(1rem);opacity:0}to{transform:translateY(0);opacity:1}}body{background:#0f172a}.other-link{margin-top:1.5rem;text-align:center;color:#94a3b8;font-size:.9rem}.other-link a{color:#6366f1;text-decoration:none;font-weight:500;margin-left:.25rem}.other-link a:hover{color:#4f46e5;text-decoration:underline}.divider{display:flex;align-items:center;text-align:center;margin:1.5rem 0 1rem;color:#475569}.divider:before,.divider:after{content:"";flex:1;border-bottom:1px solid #1e293b}.divider span{padding:0 .75rem;font-size:.85rem}.auth-page{min-height:100vh;width:100vw;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0f172a,#020617);font-family:system-ui,sans-serif}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0f172a,#020617);font-family:system-ui,sans-serif}.auth-card{background:#020617;border:1px solid #1e293b;border-radius:12px;padding:2rem;width:100%;max-width:380px;box-shadow:0 20px 40px #0006}.auth-card h1{margin-bottom:1.5rem;color:#e5e7eb;text-align:center}.auth-card label{display:flex;flex-direction:column;margin-bottom:1rem;color:#cbd5f5;font-size:.9rem}.auth-card input{margin-top:.4rem;padding:.6rem .7rem;border-radius:8px;border:1px solid #334155;background:#020617;color:#e5e7eb;font-size:1rem}.auth-card input:focus{outline:none;border-color:#6366f1}.auth-card button{margin-top:1rem;padding:.7rem;border-radius:8px;border:none;background:#6366f1;color:#fff;font-size:1rem;cursor:pointer;display:block;margin-left:auto;margin-right:auto;width:150px}.auth-card button:hover{background:#4f46e5}.auth-card .secondary-auth-button{width:190px;background:#0f172a;border:1px solid #475569;color:#e2e8f0}.auth-card .secondary-auth-button:hover{background:#1e293b}.auth-card button:disabled{opacity:.6;cursor:not-allowed}.error{margin-bottom:1rem;padding:.6rem;background:#450a0a;border:1px solid #7f1d1d;color:#fecaca;border-radius:8px;font-size:.85rem}.leaderboard{height:100%;display:flex;flex-direction:column;background:#020617;border-radius:8px;padding:1rem;color:#e5e7eb}.leaderboard-header{margin-bottom:1.5rem;padding-bottom:.75rem;border-bottom:1px solid #1e293b}.leaderboard-header h3{margin:0;font-size:1.1rem;font-weight:600;color:#e5e7eb;display:flex;align-items:center;gap:.5rem}.leaderboard-subtitle{font-size:.7rem;color:#6b7280;margin-top:.25rem;display:block}.leaderboard-cards{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:.75rem}.leaderboard-card{display:flex;align-items:center;padding:.75rem;background:#0f172a;border:1px solid #1e293b;border-radius:8px;transition:all .2s}.leaderboard-card:hover{border-color:#3b82f6;transform:translate(2px)}.leaderboard-card.bot{opacity:.9}.leaderboard-card.current-user{border-color:#3b82f6;background:#1a2639}.leaderboard-card.outside-top{border-style:dashed;border-color:#4b5563}.leaderboard-card.last-place{border-color:#7f1d1d;background:#1f1018}.leaderboard-card.last-place:hover{border-color:#ef4444}.card-rank{width:2.5rem;font-size:1.1rem;font-weight:600;color:#9ca3af}.card-avatar{width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;font-size:1.25rem;background:#1e293b;border-radius:50%;margin-right:.75rem}.card-info{flex:1;display:flex;justify-content:space-between;align-items:center}.card-username{font-weight:500;font-size:.9rem;display:flex;align-items:center;gap:.5rem}.card-gain{font-weight:600;font-size:.9rem}.card-gain.positive{color:#22c55e}.card-gain.negative{color:#ef4444}.leaderboard-separator{display:flex;align-items:center;gap:.75rem;margin:.5rem 0;color:#6b7280;font-size:.7rem;text-transform:uppercase;letter-spacing:.5px}.separator-line{flex:1;height:1px;background:#1e293b}.last-place-separator{color:#ef4444}.last-place-separator .separator-line{background:#7f1d1d}.loading-spinner{display:flex;align-items:center;justify-content:center;height:200px;color:#6b7280;font-size:.9rem}.not-placed-text{font-size:.8rem;color:#6b7280;font-style:italic}.leaderboard-cards::-webkit-scrollbar{width:4px}.leaderboard-cards::-webkit-scrollbar-track{background:#0f172a}.leaderboard-cards::-webkit-scrollbar-thumb{background:#1e293b;border-radius:4px}.leaderboard-cards::-webkit-scrollbar-thumb:hover{background:#374151}.stock-chart-container{padding:20px;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;height:100%;display:flex;flex-direction:column}.chart-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;padding-bottom:10px;border-bottom:1px solid #eee;position:relative}.header-left{flex:0 0 auto;min-width:100px}.ticker-section{display:flex;align-items:center}.ticker-section h2{margin:0;font-size:24px;line-height:1}.info-icon-container{position:relative;margin-left:8px}.info-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#475569;color:#fff;font-size:14px;font-weight:700;cursor:pointer;transition:background .2s;z-index:2;position:relative}.info-icon:hover{background:#64748b}.company-info-panel{position:absolute;top:0;left:100%;margin-left:8px;margin-top:-8px;padding:8px 12px;background:#1e293b;border-radius:6px;border:1px solid #334155;color:#e5e7eb;font-size:13px;line-height:1.4;width:280px;box-shadow:0 2px 8px #00000026;z-index:10;white-space:normal}.company-info-panel:before{content:"";position:absolute;left:-6px;top:14px;width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:6px solid #1e293b}.daily-stats{flex:1;display:flex;justify-content:center;gap:24px;padding:0 20px;max-width:500px;margin:0 auto;margin-right:10rem}.stat{text-align:center;min-width:70px}.stat-label{display:block;color:#666;font-size:11px;text-transform:uppercase;letter-spacing:.5px}.stat-value{display:block;font-size:15px;font-weight:600;margin-top:2px}.price-info{flex:0 0 auto;text-align:right;min-width:150px}.current-price{font-size:24px;font-weight:700}.price-change{font-size:14px}.price-change.positive{color:#00b341}.price-change.negative{color:#f44}.chart-graphic{flex:1;min-height:0}.range-selector{position:absolute;top:-20px;right:-15px;z-index:10;display:flex;gap:8px;background:#1e293bcc;padding:4px;border-radius:8px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.range-selector button{background:transparent;border:1px solid #334155;color:#94a3b8;padding:4px 12px;border-radius:6px;font-size:12px;cursor:pointer;transition:all .2s}.range-selector button:hover{background:#334155;color:#e2e8f0}.range-selector button.active{background:#3b82f6;border-color:#2563eb;color:#fff}.chart-graphic{position:relative}.recharts-wrapper{z-index:1}.position-line-label-bg{fill:#0f766e;stroke:#0f766e;stroke-width:1}.position-line-label{fill:#fff;font-size:12px;font-weight:700;letter-spacing:0;pointer-events:none;z-index:999}.order-book{background:#1e1e1e;border-radius:8px;padding:20px;color:#fff;height:100%;display:flex;flex-direction:column;gap:20px}.order-book-header h3{margin:0;font-size:1rem;color:#9ca3af;text-transform:uppercase;letter-spacing:.5px}.order-book-asks,.order-book-bids{display:flex;flex-direction:column;gap:4px}.order-book-headers{display:grid;grid-template-columns:1fr 1fr;padding:4px 0;color:#6b7280;font-size:.75rem;text-transform:uppercase;border-bottom:1px solid #2d2d2d;margin-bottom:4px}.order-book-row{display:grid;grid-template-columns:1fr 1fr;padding:2px 0;font-size:.875rem;font-family:monospace}.order-book-asks .price{color:#ef4444}.order-book-bids .price{color:#22c55e}.order-book-spread{text-align:center;padding:8px;background:#2d2d2d;border-radius:4px;margin:8px 0;font-size:.875rem;color:#9ca3af}.trading-form{border-top:1px solid #2d2d2d;padding-top:20px;display:flex;flex-direction:column;gap:16px}.order-type-selector{display:grid;grid-template-columns:1fr 1fr;gap:8px}.type-btn{padding:8px;background:#2d2d2d;border:1px solid #404040;color:#9ca3af;border-radius:4px;cursor:pointer;font-size:.875rem;transition:all .2s}.type-btn.active{background:#3b3b3b;color:#fff;border-color:#22c55e}.input-group{display:flex;flex-direction:column;gap:4px}.input-group label{font-size:.75rem;color:#9ca3af;text-transform:uppercase}.input-group input{padding:10px;background:#2d2d2d;border:1px solid #404040;color:#fff;border-radius:4px;font-size:.875rem;font-family:monospace}.input-group input:focus{outline:none;border-color:#22c55e}.input-group input::placeholder{color:#6b7280}.order-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.buy-btn,.sell-btn{padding:12px;border:none;border-radius:4px;font-weight:600;font-size:.875rem;cursor:pointer;transition:opacity .2s}.buy-btn{background:#22c55e;color:#fff}.sell-btn{background:#ef4444;color:#fff}.buy-btn:hover,.sell-btn:hover{opacity:.9}.order-total{text-align:right;font-size:.875rem;color:#9ca3af;font-family:monospace;padding-top:8px}.headlines-banner{height:60px;width:50%;margin:.5rem auto -.5rem;background:#020617;border-bottom:1px solid #1e293b;border-top:1px solid #1e293b;display:flex;align-items:center;padding:0 2rem;flex-shrink:0}.headlines-content{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;width:100%;color:#e2e8f0;font-size:.95rem}.headlines-title{color:#38bdf8;font-weight:700;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.headlines-text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.headlines-subtext{color:#94a3b8;font-size:.85rem;white-space:nowrap}@media(max-width:900px){.headlines-content{grid-template-columns:1fr;gap:.15rem}.headlines-title,.headlines-subtext{font-size:.75rem}}.ticker-selector{display:grid;grid-template-columns:repeat(5,auto);grid-template-rows:repeat(4,auto);gap:1rem;padding:1rem;background:#020617;border:1px solid #1e293b;border-radius:12px;height:100%;max-height:15rem;overflow-y:visible;width:100%;font-size:.75rem}.ticker-selector.global-impact-positive{border-color:#22c55ebf;box-shadow:0 0 0 1px #22c55e33,0 0 18px #22c55e38;animation:global-impact-breathe-positive 2.4s ease-in-out infinite}.ticker-selector.global-impact-negative{border-color:#f87171bf;box-shadow:0 0 0 1px #f8717133,0 0 18px #f8717138;animation:global-impact-breathe-negative 2.4s ease-in-out infinite}.ticker-selector button{padding:.5rem;background:#1e293b;color:#e5e7eb;border:1px solid #334155;border-radius:6px;cursor:pointer;font-size:.75rem;transition:all .2s;width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin-top:.25rem}.ticker-selector button:first-child{margin-top:0}.ticker-selector button:hover{background:#334155;border-color:#4f46e5}.ticker-selector button.active{background:#4f46e5;border-color:#6366f1}.ticker-selector button.news-impact-positive{border-color:#22c55ed9;box-shadow:0 0 0 1px #22c55e2e,0 0 12px #22c55e47;animation:ticker-impact-breathe-positive 2.2s ease-in-out infinite}.ticker-selector button.news-impact-negative{border-color:#f87171e6;box-shadow:0 0 0 1px #f871712e,0 0 12px #f8717147;animation:ticker-impact-breathe-negative 2.2s ease-in-out infinite}.ticker-selector button.active.news-impact-positive{border-color:#4ade80f2;box-shadow:0 0 0 1px #4ade8038,0 0 14px #22c55e57}.ticker-selector button.active.news-impact-negative{border-color:#fca5a5f2;box-shadow:0 0 0 1px #fca5a538,0 0 14px #f8717157}.sector-group{display:flex;flex-direction:column;height:100%;width:100%;text-align:center;font-size:1.15rem;margin-top:-.5rem;color:#655df2;border:1px solid transparent;border-radius:8px;padding:.25rem;transition:border-color .2s,box-shadow .2s}.sector-group.sector-impact-positive{border-color:#22c55eb3;box-shadow:0 0 0 1px #22c55e24,0 0 16px #22c55e33;animation:sector-impact-breathe-positive 2.4s ease-in-out infinite}.sector-group.sector-impact-negative{border-color:#f87171bf;box-shadow:0 0 0 1px #f8717124,0 0 16px #f8717133;animation:sector-impact-breathe-negative 2.4s ease-in-out infinite}@keyframes ticker-impact-breathe-positive{0%,to{box-shadow:0 0 0 1px #22c55e24,0 0 9px #22c55e33}50%{box-shadow:0 0 0 1px #22c55e3d,0 0 15px #22c55e57}}@keyframes ticker-impact-breathe-negative{0%,to{box-shadow:0 0 0 1px #f8717124,0 0 9px #f8717133}50%{box-shadow:0 0 0 1px #f871713d,0 0 15px #f8717157}}@keyframes sector-impact-breathe-positive{0%,to{box-shadow:0 0 0 1px #22c55e1a,0 0 11px #22c55e26}50%{box-shadow:0 0 0 1px #22c55e2e,0 0 18px #22c55e42}}@keyframes sector-impact-breathe-negative{0%,to{box-shadow:0 0 0 1px #f871711a,0 0 11px #f8717126}50%{box-shadow:0 0 0 1px #f871712e,0 0 18px #f8717142}}@keyframes global-impact-breathe-positive{0%,to{box-shadow:0 0 0 1px #22c55e24,0 0 13px #22c55e29}50%{box-shadow:0 0 0 1px #22c55e3d,0 0 22px #22c55e47}}@keyframes global-impact-breathe-negative{0%,to{box-shadow:0 0 0 1px #f8717124,0 0 13px #f8717129}50%{box-shadow:0 0 0 1px #f871713d,0 0 22px #f8717147}}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{width:100%;height:100vh;margin:0;padding:0;background:#0f172a;overflow:hidden}.dashboard-container{height:100vh;display:flex;flex-direction:column;background:#0f172a;overflow:hidden}.top-nav a,.top-nav button{margin-left:1rem}.headlines-banner{height:60px;width:50%;margin:.25rem auto -.5rem;background:#020617;border-bottom:1px solid #1e293b;border-top:1px solid #1e293b;display:flex;align-items:center;padding:0 2rem;flex-shrink:0}.main-content{flex:1;display:grid;grid-template-columns:1fr 300px 280px;gap:1.5rem;padding:1.5rem;min-height:0;height:calc(100vh - 140px)}.left-column{display:flex;flex-direction:column;gap:1rem;min-height:0;height:100%}.chart-container{flex:3;min-height:0;background:#020617;border-radius:8px;border:1px solid #1e293b}.ticker-container>*{width:100%;height:100%;display:flex;gap:3.5rem}.middle-column{height:100%;min-height:0;border-radius:8px;overflow:hidden}.right-column{height:100%;min-height:0;background:#020617;border-radius:8px;border:1px solid #1e293b;overflow:hidden}.chart-container>*,.middle-column>*,.right-column>*{width:100%;height:100%}.portfolio-container{height:100vh;display:flex;flex-direction:column;overflow:hidden;background:#0f172a}.top-nav,.headlines-banner{flex-shrink:0}.portfolio-content{flex:1;min-height:0;padding:2rem;overflow-y:auto;background:#0f172a}.portfolio-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin-bottom:2rem}.headlines-banner{height:60px;width:50%;margin:.25rem auto .5rem;background:#020617;border-bottom:1px solid #1e293b;border-top:1px solid #1e293b;display:flex;align-items:center;padding:0 2rem;flex-shrink:0}.summary-card{background:#020617;border:1px solid #1e293b;border-radius:8px;padding:1.5rem}.summary-label{color:#94a3b8;font-size:.875rem;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.5rem}.summary-value{color:#e5e7eb;font-size:1.5rem;font-weight:700}.summary-card.positive .summary-value{color:#22c55e}.summary-card.negative .summary-value{color:#ef4444}.percent{font-size:.875rem;margin-left:.5rem;opacity:.8}.holdings-table-container{background:#020617;border:1px solid #1e293b;border-radius:8px;padding:1.5rem}.holdings-table-container h2{color:#e5e7eb;font-size:1.25rem;margin-bottom:1.5rem}.holdings-table{width:100%;border-collapse:collapse}.holdings-table th{text-align:left;padding:.75rem;color:#94a3b8;font-size:.875rem;font-weight:500;border-bottom:1px solid #1e293b}.holdings-table td{padding:1rem .75rem;color:#e5e7eb;border-bottom:1px solid #1e293b}.holdings-table tr:last-child td{border-bottom:none}.ticker-cell{font-weight:700;color:#22c55e}.holdings-table .positive{color:#22c55e}.holdings-table .negative{color:#ef4444}.trade-link{color:#3b82f6;text-decoration:none;font-size:.875rem}.trade-link:hover{text-decoration:underline}.no-holdings{text-align:center;color:#94a3b8;padding:3rem!important}.no-holdings a{color:#3b82f6;text-decoration:none;margin-left:.5rem}.no-holdings a:hover{text-decoration:underline}.portfolio-loading{flex:1;display:flex;align-items:center;justify-content:center;color:#94a3b8;font-size:1.125rem}.orders-container{background:#0f172a;min-height:100vh;height:100vh;overflow-y:auto;display:flex;flex-direction:column}.top-nav{height:60px;display:flex;align-items:center;padding:0 2rem;background:#020617;border-bottom:1px solid #1e293b;width:100%;flex-shrink:0}.title{font-size:1.5rem;color:#e5e7eb;margin-right:auto}.top-nav a,.top-nav button{margin-left:1rem;color:#e5e7eb;text-decoration:none;background:none;border:none;cursor:pointer;font-size:1rem}.top-nav a:hover,.top-nav button:hover{color:#3b82f6}.open-orders{padding:2rem;flex:1;display:flex;flex-direction:column;color:#e2e8f0}.open-orders h2{margin-bottom:1.5rem;font-size:1.5rem;font-weight:600;color:#f1f5f9;flex-shrink:0}.table-container{flex:1;overflow-y:auto;border-radius:12px;background:#1e293b;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.open-orders table{width:100%;border-collapse:collapse}.open-orders thead{background:#334155;position:sticky;top:0;z-index:10}.open-orders th{text-align:left;padding:1rem;font-weight:600;font-size:.875rem;text-transform:uppercase;letter-spacing:.05em;color:#94a3b8}.open-orders td{padding:1rem;border-bottom:1px solid #334155;font-size:.95rem}.open-orders tbody tr:hover{background:#2d3b4f;transition:background .2s ease}.buy{color:#10b981;font-weight:600}.sell{color:#ef4444;font-weight:600}.cancel-btn{background:transparent;border:1px solid #ef4444;color:#ef4444;padding:.5rem 1rem;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease}.cancel-btn:hover{background:#ef4444;color:#fff}.cancel-btn:active{transform:translateY(1px)}.open-orders td:nth-child(4){color:#94a3b8;font-style:italic}.open-orders>p{text-align:center;padding:4rem;background:#1e293b;border-radius:12px;color:#94a3b8;font-size:1.1rem}@media(max-width:768px){.open-orders{padding:1rem}.table-container{overflow-x:auto}.open-orders table{min-width:800px}.cancel-btn{padding:.4rem .8rem;font-size:.8rem}}:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}
