@import "https://fonts.googleapis.com/css2?family=Bodoni+Moda:ital,wght@0,400;0,500;0,600;1,400&family=Inter:wght@300;400;500;600&family=JetBrains+Mono:wght@400;600&display=swap";:root{--bg:#090908;--panel:#131211;--border:#2b2620;--text:#f2ede2;--text-dim:#948c78;--gold:#c9a668;--gold-bright:#e6c98a;--gold-dim:#c9a66821;--bull:#17c964;--bear:#ff4d4d}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);min-height:100vh;margin:0;font-family:Inter,sans-serif;font-weight:300}.app-shell{justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.chart-bg{z-index:0;opacity:.18;pointer-events:none;position:absolute;inset:0}.chart-bg svg{width:100%;height:100%}.chart-line{stroke:var(--gold);stroke-width:1px;fill:none;stroke-dasharray:2000;stroke-dashoffset:2000px;animation:3.5s ease-out forwards draw}@keyframes draw{to{stroke-dashoffset:0}}.auth-card{z-index:1;background:var(--panel);border:1px solid var(--border);border-radius:2px;width:100%;max-width:400px;padding:52px 44px;position:relative;box-shadow:0 0 0 1px #c9a6680a,0 30px 80px #000000b3}.auth-brand{align-items:baseline;gap:8px;margin-bottom:16px;display:flex}.auth-brand-mark{color:var(--gold);letter-spacing:.3em;text-transform:uppercase;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:600}.auth-title{letter-spacing:.02em;color:var(--gold-bright);margin:0 0 10px;font-family:Bodoni Moda,serif;font-size:42px;font-weight:500}.auth-subtitle{color:var(--text-dim);letter-spacing:.01em;margin:0 0 36px;font-size:13px;font-weight:300}.auth-field{margin-bottom:18px}.auth-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.14em;margin-bottom:8px;font-size:10px;font-weight:500;display:block}.auth-input{background:var(--bg);border:1px solid var(--border);width:100%;color:var(--text);border-radius:1px;outline:none;padding:12px 14px;font-family:Inter,sans-serif;font-size:14px;font-weight:300;transition:border-color .2s,box-shadow .2s}.auth-input:focus{border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-dim)}.auth-error{color:var(--bear);margin:4px 0 14px;font-size:13px}.auth-submit{background:var(--gold);color:#0a0a08;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;border:none;border-radius:1px;width:100%;margin-top:10px;padding:14px;font-family:Inter,sans-serif;font-size:12px;font-weight:500;transition:background .2s,transform .1s}.auth-submit:hover:not(:disabled){background:var(--gold-bright)}.auth-submit:active:not(:disabled){transform:scale(.99)}.auth-submit:disabled{opacity:.5;cursor:not-allowed}.auth-toggle{text-align:center;color:var(--text-dim);margin-top:26px;font-size:13px;font-weight:300}.auth-toggle-btn{color:var(--gold);cursor:pointer;background:0 0;border:none;margin-left:4px;padding:0;font-size:13px;font-weight:500}.auth-toggle-btn:hover{color:var(--gold-bright);text-decoration:underline}.dashboard-shell{background:var(--bg);min-height:100vh}.dashboard-loading{color:var(--text-dim);text-align:center;padding-top:100px;font-weight:300}.dashboard-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:26px 40px;display:flex}.dashboard-brand{letter-spacing:.04em;color:var(--gold-bright);font-family:Bodoni Moda,serif;font-size:22px;font-weight:500}.logout-btn{border:1px solid var(--border);color:var(--text-dim);letter-spacing:.05em;cursor:pointer;background:0 0;border-radius:1px;padding:9px 18px;font-family:Inter,sans-serif;font-size:12px;font-weight:300;transition:border-color .2s,color .2s}.logout-btn:hover{border-color:var(--gold);color:var(--gold)}.dashboard-main{max-width:620px;margin:0 auto;padding:56px 24px}.dashboard-welcome{color:var(--text-dim);margin:0 0 28px;font-family:Bodoni Moda,serif;font-size:17px;font-style:italic}.indices-row{gap:14px;margin-bottom:24px;display:flex}.indices-loading{color:var(--text-dim);font-size:13px;font-weight:300}.index-card{background:var(--panel);border:1px solid var(--border);border-radius:1px;flex-direction:column;flex:1;gap:5px;padding:16px 18px;display:flex}.index-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);font-size:10px}.index-price{color:var(--text);font-family:JetBrains Mono,monospace;font-size:18px;font-weight:400}.index-change{font-family:JetBrains Mono,monospace;font-size:12px;font-weight:600}.balance-card{background:var(--panel);border:1px solid var(--border);border-top:1px solid var(--gold);border-radius:1px;flex-direction:column;gap:10px;padding:32px;display:flex}.balance-label{text-transform:uppercase;letter-spacing:.14em;color:var(--text-dim);font-size:10px}.balance-amount{color:var(--gold-bright);font-family:Bodoni Moda,serif;font-size:40px;font-weight:500}.holdings-card{background:var(--panel);border:1px solid var(--border);border-radius:1px;flex-direction:column;gap:14px;margin-top:20px;padding:24px;display:flex}.holdings-list{flex-direction:column;gap:10px;display:flex}.holding-row{border-top:1px solid var(--border);align-items:baseline;gap:14px;padding-top:10px;display:flex}.holding-symbol{color:var(--gold-bright);min-width:60px;font-family:Bodoni Moda,serif;font-size:16px;font-weight:500}.holding-avg{color:var(--text-dim);font-family:JetBrains Mono,monospace;font-size:12px}.search-card{background:var(--panel);border:1px solid var(--border);border-radius:1px;flex-direction:column;gap:16px;margin-top:24px;padding:28px;display:flex}.search-form{gap:10px;display:flex}.search-form .auth-input{flex:1}.search-btn{background:var(--gold);color:#0a0a08;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;white-space:nowrap;border:none;border-radius:1px;padding:12px 22px;font-family:Inter,sans-serif;font-size:12px;font-weight:500;transition:background .2s}.search-btn:hover:not(:disabled){background:var(--gold-bright)}.search-btn:disabled{opacity:.5;cursor:not-allowed}.search-input-wrap{flex:1;position:relative}.suggestions-list{background:var(--panel);border:1px solid var(--border);z-index:10;border-radius:1px;max-height:260px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 8px);left:0;right:0;overflow-y:auto;box-shadow:0 16px 40px #0009}.suggestion-item{cursor:pointer;border-radius:1px;align-items:baseline;gap:10px;padding:10px 12px;display:flex}.suggestion-item:hover{background:var(--gold-dim)}.suggestion-symbol{color:var(--gold-bright);min-width:50px;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:600}.suggestion-name{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:300;overflow:hidden}.quote-result{border-top:1px solid var(--border);flex-direction:column;gap:6px;padding-top:12px;display:flex}.quote-heading{align-items:baseline;gap:10px;display:flex}.quote-symbol{color:var(--text);font-family:Bodoni Moda,serif;font-size:19px;font-weight:500}.quote-name{color:var(--text-dim);font-family:Inter,sans-serif;font-size:13px;font-weight:300}.quote-price{color:var(--gold-bright);font-family:JetBrains Mono,monospace;font-size:24px;font-weight:600}.quote-change{font-family:JetBrains Mono,monospace;font-size:14px;font-weight:600}.quote-up{color:var(--bull)}.quote-down{color:var(--bear)}.view-chart-btn{border:1px solid var(--gold);color:var(--gold);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:1px;align-self:flex-start;margin-top:6px;padding:9px 18px;font-family:Inter,sans-serif;font-size:12px;font-weight:500;transition:background .2s,color .2s}.view-chart-btn:hover{background:var(--gold);color:#0a0a08}.detail-view{flex-direction:column;gap:10px;display:flex}.back-btn{color:var(--text-dim);cursor:pointer;background:0 0;border:none;align-self:flex-start;margin-bottom:10px;padding:0;font-size:13px;font-weight:300}.back-btn:hover{color:var(--gold)}.detail-heading{align-items:baseline;gap:12px;display:flex}.detail-symbol{color:var(--text);font-family:Bodoni Moda,serif;font-size:28px;font-weight:500}.detail-name{color:var(--text-dim);font-size:14px;font-weight:300}.detail-price{color:var(--gold-bright);font-family:Bodoni Moda,serif;font-size:36px;font-weight:500}.range-row{flex-wrap:wrap;gap:6px;margin-top:20px;display:flex}.range-btn{background:var(--panel);border:1px solid var(--border);color:var(--text-dim);letter-spacing:.03em;cursor:pointer;border-radius:1px;padding:8px 16px;font-family:Inter,sans-serif;font-size:12px;font-weight:300;transition:border-color .2s,color .2s}.range-btn:hover{border-color:var(--gold);color:var(--gold)}.range-btn-active{background:var(--gold);border-color:var(--gold);color:#0a0a08;font-weight:500}.chart-box{background:var(--panel);border:1px solid var(--border);border-radius:1px;justify-content:center;align-items:center;min-height:300px;margin-top:24px;padding:18px;display:flex}.trade-panel{border-top:1px solid var(--border);flex-direction:column;gap:14px;margin-top:16px;padding-top:16px;display:flex}.trade-toggle-row{gap:8px;display:flex}.trade-toggle-btn{background:var(--bg);border:1px solid var(--border);color:var(--text-dim);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;border-radius:1px;flex:1;padding:10px;font-family:Inter,sans-serif;font-size:12px;font-weight:500;transition:border-color .2s,color .2s,background .2s}.trade-toggle-active-buy{background:var(--bull);border-color:var(--bull);color:#06130a}.trade-toggle-active-sell{background:var(--bear);border-color:var(--bear);color:#1a0505}.trade-form{flex-direction:column;gap:12px;display:flex}.trade-mode-row{gap:20px;display:flex}.trade-mode-option{color:var(--text-dim);cursor:pointer;align-items:center;gap:6px;font-size:13px;display:flex}.trade-preview{color:var(--gold);margin:0;font-family:JetBrains Mono,monospace;font-size:13px}.trade-success{color:var(--bull);margin:4px 0;font-size:13px}.trade-submit-buy{background:var(--bull);color:#06130a;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;border:none;border-radius:1px;padding:13px;font-family:Inter,sans-serif;font-size:13px;font-weight:600;transition:opacity .2s}.trade-submit-buy:hover:not(:disabled){opacity:.9}.trade-submit-sell{background:var(--bear);color:#1a0505;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;border:none;border-radius:1px;padding:13px;font-family:Inter,sans-serif;font-size:13px;font-weight:600;transition:opacity .2s}.trade-submit-sell:hover:not(:disabled){opacity:.9}.trade-submit-buy:disabled,.trade-submit-sell:disabled{opacity:.5;cursor:not-allowed}.networth-pl{font-family:JetBrains Mono,monospace;font-size:14px;font-weight:600}.networth-split{color:var(--text-dim);gap:20px;margin-top:8px;font-family:JetBrains Mono,monospace;font-size:12px;display:flex}.holding-row{border-top:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:14px;padding-top:12px;display:flex}.holding-row:first-child{border-top:none;padding-top:0}.holding-main{flex-direction:column;gap:4px;display:flex}.holding-shares{color:var(--text-dim);font-family:JetBrains Mono,monospace;font-size:12px}.holding-figures{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.holding-value{color:var(--text);font-family:JetBrains Mono,monospace;font-size:15px;font-weight:600}.holding-pl{font-family:JetBrains Mono,monospace;font-size:12px;font-weight:600}.prediction-card{background:var(--panel);border:1px solid var(--border);border-radius:1px;flex-direction:column;gap:14px;margin-top:20px;padding:24px;display:flex}.prediction-question{color:var(--text);margin:0;font-family:Bodoni Moda,serif;font-size:17px}.prediction-buttons{gap:10px;display:flex}.prediction-btn-yes,.prediction-btn-no{cursor:pointer;border:none;border-radius:1px;flex-direction:column;flex:1;align-items:center;gap:4px;padding:14px;font-family:Inter,sans-serif;font-size:14px;font-weight:600;transition:opacity .2s;display:flex}.prediction-btn-yes{background:var(--bull);color:#06130a}.prediction-btn-no{background:var(--bear);color:#1a0505}.prediction-btn-yes:hover:not(:disabled),.prediction-btn-no:hover:not(:disabled){opacity:.9}.prediction-btn-yes:disabled,.prediction-btn-no:disabled{opacity:.5;cursor:not-allowed}.prediction-multiplier{opacity:.85;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:400}.prediction-locked{color:var(--text-dim);margin:0;font-size:13px}.prediction-correct{color:var(--bull);margin:0;font-size:14px}.prediction-incorrect{color:var(--bear);margin:0;font-size:14px}.prediction-stats-row{color:var(--text-dim);gap:20px;margin-top:8px;font-family:JetBrains Mono,monospace;font-size:12px;display:flex}.stake-form{flex-direction:column;gap:12px;display:flex}.stake-chosen{color:var(--text-dim);margin:0;font-size:14px}.stake-form-buttons{gap:10px;display:flex}.stake-cancel-btn{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:1px;flex:1;padding:13px;font-family:Inter,sans-serif;font-size:13px;transition:border-color .2s,color .2s}.stake-cancel-btn:hover{border-color:var(--gold);color:var(--gold)}.stake-form-buttons .prediction-btn-yes,.stake-form-buttons .prediction-btn-no{flex:2}.tab-row{border-bottom:1px solid var(--border);gap:8px;margin-bottom:24px;display:flex}.tab-btn{color:var(--text-dim);letter-spacing:.03em;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-right:20px;padding:10px 4px;font-family:Inter,sans-serif;font-size:13px;font-weight:500;transition:color .2s,border-color .2s}.tab-btn:hover{color:var(--gold)}.tab-btn-active{color:var(--gold-bright);border-bottom-color:var(--gold)}.pc-grid{flex-direction:column;gap:16px;display:flex}.pc-card{background:var(--panel);border:1px solid var(--border);border-radius:1px;flex-direction:column;gap:14px;padding:22px;display:flex}.pc-question{color:var(--text);margin:0;font-family:Bodoni Moda,serif;font-size:16px}.pc-selected{outline:2px solid var(--gold-bright)}.pc-tolerance-note{color:var(--text-dim);margin:0;font-size:11px}.history-list{flex-direction:column;gap:2px;display:flex}.history-row{background:var(--panel);border:1px solid var(--border);border-radius:1px;flex-direction:column;gap:8px;margin-bottom:2px;padding:16px 18px;display:flex}.history-main{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.history-desc{color:var(--text);font-size:14px}.history-detail{justify-content:space-between;align-items:center;font-family:JetBrains Mono,monospace;font-size:13px;display:flex}.history-pending{color:var(--text-dim)}.history-date{color:var(--text-dim);font-family:JetBrains Mono,monospace;font-size:11px}.history-badge{letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border-radius:2px;padding:3px 8px;font-size:10px;font-weight:600}.history-badge-trade{background:var(--gold-dim);color:var(--gold-bright)}.history-badge-today\'s-pick,.history-badge-prediction-center{color:var(--bull);background:#17c96426}.history-badge-open-prediction{color:var(--bear);background:#ff4d4d26}.header-actions{align-items:center;gap:10px;display:flex}.gear-btn{border:1px solid var(--border);width:34px;height:34px;color:var(--text-dim);cursor:pointer;background:0 0;border-radius:1px;justify-content:center;align-items:center;transition:border-color .2s,color .2s;display:flex}.gear-btn:hover{border-color:var(--gold);color:var(--gold)}.research-panel{border-top:1px solid var(--border);flex-direction:column;gap:18px;margin-top:20px;padding-top:20px;display:flex}.research-block{background:var(--panel);border:1px solid var(--border);border-radius:1px;padding:20px}.research-block-title{text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);margin:0 0 14px;font-size:11px}.research-profile-row{align-items:center;gap:12px;margin-bottom:16px;display:flex}.research-logo{object-fit:contain;background:#fff;border-radius:4px;width:40px;height:40px;padding:4px}.research-company-name{color:var(--text);margin:0;font-family:Bodoni Moda,serif;font-size:16px}.research-industry{color:var(--text-dim);margin:2px 0 0;font-size:12px}.research-stats-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:14px;display:grid}.research-stat{flex-direction:column;gap:4px;display:flex}.research-stat-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-size:10px}.research-stat-value{color:var(--text);font-family:JetBrains Mono,monospace;font-size:14px}.rating-bar{border-radius:5px;height:10px;margin-bottom:10px;display:flex;overflow:hidden}.rating-segment{height:100%}.rating-strongbuy{background:#17c964}.rating-buy{background:#6fd89a}.rating-hold{background:#8f897a}.rating-sell{background:#ff8a8a}.rating-strongsell{background:#ff4d4d}.rating-legend{color:var(--text-dim);justify-content:space-between;font-family:JetBrains Mono,monospace;font-size:12px;display:flex}.news-list{flex-direction:column;gap:12px;display:flex}.news-item{border-bottom:1px solid var(--border);flex-direction:column;gap:4px;padding-bottom:12px;text-decoration:none;display:flex}.news-item:last-child{border-bottom:none;padding-bottom:0}.news-headline{color:var(--text);font-size:13px;line-height:1.4}.news-item:hover .news-headline{color:var(--gold-bright)}.news-meta{color:var(--text-dim);font-size:11px}@media (width<=640px){.auth-card{max-width:100%;padding:36px 24px}.auth-title{font-size:32px}.dashboard-header{padding:18px 20px}.dashboard-brand{font-size:18px}.dashboard-main{padding:28px 16px}.dashboard-welcome{font-size:15px}.indices-row{flex-direction:column;gap:10px}.tab-row{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.tab-row::-webkit-scrollbar{display:none}.tab-btn{white-space:nowrap;flex-shrink:0;margin-right:16px}.search-form{flex-direction:column}.search-btn{width:100%}.balance-card{padding:22px 18px}.balance-amount{font-size:30px}.networth-split{flex-direction:column;gap:4px}.holdings-card,.prediction-card,.search-card,.pc-card,.research-block{padding:18px}.holding-row{flex-direction:column;gap:6px}.holding-figures{align-items:flex-start}.detail-symbol{font-size:22px}.detail-price{font-size:28px}.range-row{gap:4px}.range-btn{padding:7px 12px;font-size:11px}.chart-box{min-height:260px;padding:10px}.trade-toggle-row{gap:6px}.trade-mode-row{gap:12px}.prediction-buttons,.stake-form-buttons{flex-direction:column}.research-stats-grid{grid-template-columns:repeat(2,1fr)}.rating-legend{flex-wrap:wrap;justify-content:flex-start;gap:8px}.history-main,.history-detail{flex-direction:column;align-items:flex-start;gap:4px}}@media (width<=400px){.balance-amount{font-size:26px}.detail-price{font-size:24px}.auth-card{padding:28px 18px}}
