*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#0f172a;color:#f1f5f9;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}.loading-screen{background:#0f172a;color:#64748b;font-size:1.125rem}.loading-screen,.login-container{align-items:center;display:flex;justify-content:center;min-height:100vh}.login-container{background:linear-gradient(135deg,#0f172a,#1e293b)}.login-card{background:#1e293b;border:1px solid #334155;border-radius:12px;max-width:400px;padding:40px;text-align:center;width:100%}.login-logo{color:#10b981;font-size:2.5rem;font-weight:800;margin:0}.login-subtitle{color:#94a3b8;margin:8px 0 24px}.login-error{background:#7f1d1d33;border:1px solid #dc2626;border-radius:8px;color:#fca5a5;font-size:.875rem;margin-bottom:16px;padding:10px}.login-form{display:flex;flex-direction:column;gap:12px}.login-form input{background:#0f172a;border:1px solid #334155;border-radius:8px;color:#f1f5f9;font-size:1rem;outline:none;padding:12px 16px;transition:border-color .2s}.login-form input:focus{border-color:#10b981}.login-divider{align-items:center;color:#64748b;display:flex;margin:20px 0}.login-divider:after,.login-divider:before{background:#334155;content:"";flex:1 1;height:1px}.login-divider span{font-size:.875rem;padding:0 12px}.btn-primary{background:#10b981;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:12px;transition:background .2s}.btn-primary:hover{background:#059669}.btn-primary:disabled{cursor:not-allowed;opacity:.6}.btn-google{align-items:center;background:#0f172a;border:1px solid #334155;border-radius:8px;color:#f1f5f9;cursor:pointer;display:flex;font-size:1rem;gap:10px;justify-content:center;padding:12px;transition:background .2s;width:100%}.btn-google:hover{background:#1e293b}.btn-demo{background:#0000;border:1px dashed #334155;border-radius:8px;color:#94a3b8;cursor:pointer;font-size:.875rem;margin-top:12px;padding:12px;transition:all .2s;width:100%}.btn-demo:hover{border-color:#10b981;color:#10b981}.login-toggle{color:#94a3b8;font-size:.875rem;margin-top:20px}.login-toggle button{background:none;border:none;color:#10b981;cursor:pointer;font-size:.875rem;margin-left:4px;text-decoration:underline}.navbar{background:#1e293b;border-bottom:1px solid #334155;padding:0 24px}.navbar-inner{align-items:center;display:flex;height:64px;justify-content:space-between;margin:0 auto;max-width:1400px}.navbar-logo{color:#10b981;font-size:1.5rem;font-weight:800;margin:0}.navbar-right{align-items:center;display:flex;gap:24px}.navbar-balance{align-items:flex-end;display:flex;flex-direction:column}.navbar-balance.clickable{border-radius:6px;cursor:pointer;padding:4px 8px;transition:background .2s}.navbar-balance.clickable:hover{background:#334155}.balance-label{color:#64748b;font-size:.75rem;letter-spacing:.05em;text-transform:uppercase}.balance-value{color:#10b981;font-size:1.125rem;font-weight:700}.balance-cash{color:#f1f5f9;font-size:1rem;font-weight:600}.navbar-user{align-items:center;display:flex;gap:12px}.user-email{color:#94a3b8;font-size:.875rem}.btn-signout{background:#0000;border:1px solid #334155;border-radius:6px;color:#94a3b8;cursor:pointer;font-size:.813rem;padding:6px 14px;transition:all .2s}.btn-signout:hover{background:#334155;color:#f1f5f9}.watchlist{display:flex;flex-direction:column;gap:2px}.watchlist-empty{border-radius:8px;color:#64748b;font-size:.875rem;padding:24px;text-align:center}.watchlist-empty,.watchlist-item{background:#1e293b;border:1px solid #334155}.watchlist-item{align-items:center;border-radius:8px;cursor:pointer;display:flex;gap:12px;justify-content:space-between;padding:12px 16px;transition:background .15s}.watchlist-item:hover{background:#334155}.watchlist-info{display:flex;flex:1 1;flex-direction:column;min-width:0}.watchlist-ticker{color:#f1f5f9;font-size:.875rem;font-weight:600}.watchlist-name{color:#64748b;font-size:.75rem;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.watchlist-price{align-items:flex-end;display:flex;flex-direction:column;flex-shrink:0}.price-value{color:#f1f5f9;font-size:.875rem;font-weight:600}.price-change{font-size:.75rem}.price-change.positive{color:#10b981}.price-change.negative{color:#ef4444}.btn-remove{align-items:center;background:#0000;border:none;border-radius:4px;color:#64748b;cursor:pointer;display:flex;flex-shrink:0;font-size:.875rem;height:24px;justify-content:center;transition:all .2s;width:24px}.btn-remove:hover{background:#7f1d1d;color:#fca5a5}.stock-search{position:relative}.stock-search input{background:#1e293b;border:1px solid #334155;border-radius:8px;box-sizing:border-box;color:#f1f5f9;font-size:.875rem;outline:none;padding:12px 16px;transition:border-color .2s;width:100%}.stock-search input:focus{border-color:#10b981}.search-loading{color:#64748b;font-size:.875rem;padding:12px}.search-loading,.search-results{background:#1e293b;border:1px solid #334155;border-radius:0 0 8px 8px;left:0;position:absolute;right:0;top:100%;z-index:10}.search-results{max-height:300px;overflow-y:auto}.search-result-item{align-items:center;cursor:pointer;display:flex;justify-content:space-between;padding:10px 16px;transition:background .15s}.search-result-item:hover{background:#334155}.result-info{display:flex;flex:1 1;flex-direction:column}.result-ticker{color:#f1f5f9;font-size:.875rem;font-weight:600}.result-name{color:#64748b;font-size:.75rem;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-add{align-items:center;background:#0000;border:1px solid #334155;border-radius:6px;color:#10b981;cursor:pointer;display:flex;flex-shrink:0;font-size:1.125rem;height:28px;justify-content:center;transition:all .2s;width:28px}.btn-add:hover{background:#10b981;color:#fff}.portfolio{display:flex;flex-direction:column;gap:2px}.portfolio-empty{border-radius:8px;color:#64748b;font-size:.875rem;padding:24px;text-align:center}.portfolio-empty,.portfolio-total{background:#1e293b;border:1px solid #334155}.portfolio-total{align-items:center;border-radius:8px;display:flex;justify-content:space-between;padding:12px 16px}.portfolio-total-label{color:#94a3b8;font-size:.875rem}.portfolio-total-value{color:#f1f5f9;font-size:1.125rem;font-weight:700}.portfolio-item{align-items:center;background:#1e293b;border:1px solid #334155;border-radius:8px;cursor:pointer;display:flex;justify-content:space-between;padding:12px 16px;transition:background .15s}.portfolio-item:hover{background:#334155}.portfolio-info{display:flex;flex-direction:column}.portfolio-ticker{color:#f1f5f9;font-size:.875rem;font-weight:600}.portfolio-shares{color:#64748b;font-size:.75rem}.portfolio-values{align-items:flex-end;display:flex;flex-direction:column}.portfolio-current{color:#f1f5f9;font-size:.875rem;font-weight:600}.portfolio-pl{font-size:.75rem}.portfolio-pl.positive{color:#10b981}.portfolio-pl.negative{color:#ef4444}.trade-panel{background:#1e293b;border:1px solid #334155;border-radius:12px;overflow:hidden}.trade-tabs{display:flex}.trade-tabs button{background:#334155;border:none;color:#94a3b8;cursor:pointer;flex:1 1;font-size:.875rem;font-weight:600;padding:12px;transition:all .2s}.trade-tabs button.active.buy{background:#065f4620;border-bottom:2px solid #10b981;color:#10b981}.trade-tabs button.active.sell{background:#7f1d1d20;border-bottom:2px solid #ef4444;color:#ef4444}.trade-body{display:flex;flex-direction:column;gap:16px;padding:20px}.trade-row{align-items:center;display:flex;justify-content:space-between}.trade-row label{color:#94a3b8;font-size:.875rem}.trade-price{color:#f1f5f9;font-size:1.125rem;font-weight:600}.trade-row input{background:#0f172a;border:1px solid #334155;border-radius:6px;color:#f1f5f9;font-size:1rem;outline:none;padding:8px 12px;text-align:right;width:120px}.trade-row input:focus{border-color:#10b981}.trade-total{color:#f1f5f9;font-size:1.125rem;font-weight:700}.trade-info{color:#64748b;font-size:.813rem;text-align:center}.trade-message{border-radius:6px;font-size:.875rem;padding:8px 12px;text-align:center}.trade-message.success{background:#065f4633;color:#10b981}.trade-message.error{background:#7f1d1d33;color:#ef4444}.btn-trade{border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;padding:12px;transition:opacity .2s}.btn-trade.buy{background:#10b981;color:#fff}.btn-trade.sell{background:#ef4444;color:#fff}.btn-trade:hover{opacity:.9}.btn-trade:disabled{cursor:not-allowed;opacity:.4}.stock-chart{background:#1e293b;border:1px solid #334155;border-radius:12px;padding:24px}.chart-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:16px}.chart-ticker{color:#f1f5f9;font-size:1.5rem;font-weight:700;margin:0}.chart-name{color:#64748b;font-size:.875rem;margin:4px 0 0}.chart-price-info{text-align:right}.chart-price{color:#f1f5f9;display:block;font-size:1.5rem;font-weight:700}.chart-change{font-size:.875rem}.chart-change.positive{color:#10b981}.chart-change.negative{color:#ef4444}.chart-range-buttons{display:flex;gap:4px;margin-bottom:16px}.chart-range-buttons button{background:#0000;border:none;border-radius:6px;color:#94a3b8;cursor:pointer;font-size:.813rem;font-weight:500;padding:6px 14px;transition:all .2s}.chart-range-buttons button.active{background:#334155;color:#f1f5f9}.chart-range-buttons button:hover:not(.active){color:#f1f5f9}.chart-container{width:100%}.chart-loading{align-items:center;color:#64748b;display:flex;height:350px;justify-content:center}.stock-stats{grid-gap:16px;border-top:1px solid #334155;display:grid;gap:16px;grid-template-columns:repeat(4,1fr);margin-top:20px;padding-top:20px}.stat-item{display:flex;flex-direction:column;gap:4px}.stat-label{color:#64748b;font-size:.75rem;letter-spacing:.05em;text-transform:uppercase}.stat-value{color:#f1f5f9;font-size:.938rem;font-weight:600}.position-section{border-top:1px solid #334155;margin-top:20px;padding-top:20px}.position-title{color:#f1f5f9;font-size:1rem;font-weight:600;margin:0 0 16px}.position-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(3,1fr)}.position-item{background:#0f172a;border:1px solid #334155;border-radius:8px;display:flex;flex-direction:column;gap:4px;padding:14px 16px}.position-item .stat-value.pos{color:#10b981}.position-item .stat-value.neg{color:#ef4444}@media (max-width:768px){.position-grid,.stock-stats{grid-template-columns:repeat(2,1fr)}}.portfolio-chart{background:#1e293b;border:1px solid #334155;border-radius:12px;padding:24px}.portfolio-chart.empty-state{align-items:center;display:flex;flex-direction:column;height:300px;justify-content:center;text-align:center}.portfolio-chart.empty-state h2{color:#f1f5f9;margin:0 0 8px}.portfolio-chart.empty-state p{color:#64748b;margin:0}.portfolio-summary{display:flex;gap:32px;margin-bottom:24px}.summary-item{display:flex;flex-direction:column;gap:4px}.summary-label{color:#64748b;font-size:.75rem;letter-spacing:.05em;text-transform:uppercase}.summary-value{color:#f1f5f9;font-size:1.25rem;font-weight:700}.summary-value.positive{color:#10b981}.summary-value.negative{color:#ef4444}.portfolio-charts-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr}.chart-box{background:#0f172a;border:1px solid #334155;border-radius:8px;padding:16px}.chart-box-title{color:#94a3b8;font-size:.875rem;font-weight:600;margin:0 0 12px}@media (max-width:768px){.portfolio-charts-grid{grid-template-columns:1fr}.portfolio-summary{flex-direction:column;gap:12px}}.cash-modal-overlay{align-items:center;background:#0009;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.cash-modal{background:#1e293b;border:1px solid #334155;border-radius:12px;max-width:90vw;padding:24px;width:400px}.cash-modal-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.cash-modal-header h3{color:#f1f5f9;font-size:1.125rem;margin:0}.cash-modal-close{background:none;border:none;color:#64748b;cursor:pointer;font-size:1.5rem;line-height:1;padding:0}.cash-modal-close:hover{color:#f1f5f9}.cash-modal-balance{background:#0f172a;border:1px solid #334155;border-radius:8px;display:flex;flex-direction:column;gap:4px;margin-bottom:20px;padding:14px 16px}.cash-modal-label{color:#64748b;font-size:.75rem;letter-spacing:.05em;text-transform:uppercase}.cash-modal-value{color:#f1f5f9;font-size:1.25rem;font-weight:700}.cash-modal-tabs{background:#0f172a;border-radius:8px;display:flex;gap:4px;margin-bottom:20px;padding:4px}.cash-modal-tabs button{background:#0000;border:none;border-radius:6px;color:#94a3b8;cursor:pointer;flex:1 1;font-size:.875rem;font-weight:500;padding:8px;transition:all .2s}.cash-modal-tabs button.active{background:#334155;color:#f1f5f9}.cash-input-group{align-items:center;background:#0f172a;border:1px solid #334155;border-radius:8px;display:flex;margin-bottom:12px;padding:0 14px}.cash-input-prefix{color:#64748b;font-size:1.125rem;font-weight:600;margin-right:4px}.cash-input-group input{background:#0000;border:none;color:#f1f5f9;flex:1 1;font-size:1.125rem;outline:none;padding:12px 0;width:100%}.cash-input-group input::placeholder{color:#475569}.cash-quick-amounts{display:flex;gap:8px;margin-bottom:16px}.cash-quick-amounts button{background:#0000;border:1px solid #334155;border-radius:6px;color:#94a3b8;cursor:pointer;flex:1 1;font-size:.75rem;padding:6px 0;transition:all .2s}.cash-quick-amounts button:hover{background:#334155;color:#f1f5f9}.cash-error{color:#ef4444;font-size:.813rem;margin:0 0 12px}.cash-submit{border:none;border-radius:8px;cursor:pointer;font-size:.938rem;font-weight:600;padding:12px;transition:opacity .2s;width:100%}.cash-submit.deposit{background:#10b981;color:#fff}.cash-submit.withdraw{background:#f59e0b;color:#fff}.cash-submit:hover{opacity:.9}.cash-submit:disabled{cursor:not-allowed;opacity:.5}.transaction-history{display:flex;flex-direction:column;gap:8px}.txn-filters{background:#1e293b;border-radius:6px;display:flex;gap:4px;padding:3px}.txn-filters button{background:#0000;border:none;border-radius:4px;color:#94a3b8;cursor:pointer;flex:1 1;font-size:.75rem;font-weight:500;padding:5px 0;transition:all .2s}.txn-filters button.active{background:#334155;color:#f1f5f9}.txn-empty{color:#64748b;font-size:.875rem;padding:32px 0;text-align:center}.txn-list{display:flex;flex-direction:column;gap:2px;max-height:500px;overflow-y:auto}.txn-item{align-items:center;background:#1e293b;border:1px solid #334155;border-radius:8px;cursor:pointer;display:flex;justify-content:space-between;padding:10px 12px;transition:background .2s}.txn-item:hover{background:#334155}.txn-left{align-items:center;display:flex;gap:10px}.txn-type{border-radius:4px;font-size:.625rem;font-weight:700;letter-spacing:.05em;padding:3px 6px}.txn-type.buy{background:#10b98126;color:#10b981}.txn-type.sell{background:#ef444426;color:#ef4444}.txn-type.deposit{background:#3b82f626;color:#3b82f6}.txn-type.withdraw{background:#f59e0b26;color:#f59e0b}.txn-item.txn-cash{cursor:default}.txn-amount.positive{color:#10b981}.txn-amount.negative{color:#ef4444}.txn-info{display:flex;flex-direction:column;gap:2px}.txn-ticker{color:#f1f5f9;font-size:.875rem;font-weight:600}.txn-date{color:#64748b;font-size:.688rem}.txn-right{align-items:flex-end;display:flex;flex-direction:column;gap:2px}.txn-amount{color:#f1f5f9;font-size:.875rem;font-weight:600}.txn-detail{color:#64748b;font-size:.688rem}.dashboard{background:#0f172a;color:#f1f5f9;min-height:100vh}.dashboard-content{display:flex;gap:24px;margin:0 auto;max-width:1400px;padding:24px}.dashboard-sidebar{display:flex;flex-direction:column;flex-shrink:0;gap:16px;width:320px}.sidebar-tabs{background:#1e293b;border-radius:8px;display:flex;gap:4px;padding:4px}.sidebar-tabs button{background:#0000;border:none;border-radius:6px;color:#94a3b8;cursor:pointer;flex:1 1;font-size:.875rem;font-weight:500;padding:8px;transition:all .2s}.sidebar-tabs button.active{background:#334155;color:#f1f5f9}.dashboard-main{flex:1 1;gap:24px;min-width:0}.dashboard-main,.empty-state{display:flex;flex-direction:column}.empty-state{align-items:center;background:#1e293b;border:1px solid #334155;border-radius:12px;height:400px;justify-content:center;text-align:center}.empty-state h2{color:#f1f5f9;margin:0 0 8px}.empty-state p{color:#64748b;margin:0}@media (max-width:768px){.dashboard-content{flex-direction:column}.dashboard-sidebar{width:100%}}
/*# sourceMappingURL=main.81b20230.css.map*/