body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--bg-primary:#fff;--bg-secondary:#f7f8fa;--bg-surface:#f0f1f3;--bg-hover:#e8eaed;--border:#dde0e4;--border-light:#eaecef;--text-primary:#1a1a1a;--text-secondary:#444;--text-muted:#888;--text-dim:#bbb;--text-title:#000;--accent-buy:#00883a;--accent-sell:#c20;--accent-buy-bg:#e8f8ee;--accent-sell-bg:#fdf0ee;--accent-error:#e05252;--chart-grid:#e0e2e6;--chart-axis:#999;--tooltip-bg:#fff;--tooltip-border:#dde0e4;--tooltip-text:#1a1a1a;--chart-bid:var(--accent-buy);--chart-ask:var(--accent-sell);--font-mono:"Courier New",monospace;--s-1:2px;--s-2:3px;--s-3:5px;--s-4:8px;--s-5:13px;--s-6:21px;--s-7:34px;--s-8:55px;--s-9:89px;--s-10:144px;--s-11:233px;--r-1:2px;--r-2:3px;--r-3:5px;--r-4:8px;--r-5:13px;--r-pill:999px}[data-theme=dark]{--bg-primary:#2f2f2f;--bg-secondary:#272727;--bg-surface:#353535;--bg-hover:#404040;--border:#4a4a4a;--border-light:#3a3a3a;--text-primary:#f0f0f0;--text-secondary:#cfcfcf;--text-muted:#909090;--text-dim:#6a6a6a;--text-title:#f0f0f0;--chart-grid:#3a3a3a;--chart-axis:#909090;--tooltip-bg:#353535;--tooltip-border:#4a4a4a;--tooltip-text:#f0f0f0;--accent-buy-bg:#15412a;--accent-sell-bg:#4a1e16}.App{align-items:center;background-color:#f7f8fa;background-color:var(--bg-secondary);color:#1a1a1a;color:var(--text-primary);display:flex;flex-direction:column;font-size:14px;min-height:100vh;padding:0;text-align:center}.App,.container{margin:0 auto;width:100%}.container{box-sizing:border-box;padding:0 13px;padding:0 var(--s-5)}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#f7f8fa;background-color:var(--bg-secondary);display:flex;flex-direction:column;font-size:14px;gap:34px;gap:var(--s-7);justify-content:center;min-height:10vh}.App-header,.App-header h1{color:#1a1a1a;color:var(--text-primary)}.App-header h1{font-size:32px;font-weight:700;letter-spacing:-.02em;line-height:1.1;margin:0 0 5px;margin:0 0 var(--s-3)}.App-link,a{color:#4183c4}.App-header,.about{box-sizing:border-box;margin:0 auto;max-width:1000px;padding:0 13px;padding:0 var(--s-5);width:100%}.App-header{padding-top:34px;padding-top:var(--s-7)}.status-row{align-items:center;display:flex;gap:8px;gap:var(--s-4);justify-content:center;margin:8px 0;margin:var(--s-4) 0}.status-dot{border-radius:50%;flex-shrink:0;height:8px;transition:background-color .3s;width:8px}.status-dot.connected{background-color:#00883a;background-color:var(--accent-buy)}.status-dot.disconnected{background-color:#c20;background-color:var(--accent-sell)}.status-dot.connecting{background-color:#aaa}.status-text{color:#888;color:var(--text-muted);font-family:Courier New,monospace;font-family:var(--font-mono);font-size:13px}.sse-box{background-color:#fff;background-color:var(--bg-primary);border:1px solid #dde0e4;border:1px solid var(--border);border-radius:5px;border-radius:var(--r-3);max-height:200px;overflow-y:auto;width:100%}.sse-box,.sse-msg{color:#1a1a1a;color:var(--text-primary);font-family:Courier New,monospace;font-family:var(--font-mono);font-size:12px}.sse-msg{animation:popIn .4s ease-out;background:#f0f1f3;background:var(--bg-surface);border-radius:2px;border-radius:var(--r-1);display:flex;gap:13px;gap:var(--s-5);margin-bottom:1px;padding:5px 8px;padding:var(--s-3) var(--s-4);white-space:nowrap}.sse-msg.buy{background:#e8f8ee;background:var(--accent-buy-bg);color:#00883a;color:var(--accent-buy)}.sse-msg.sell{background:#fdf0ee;background:var(--accent-sell-bg);color:#c20;color:var(--accent-sell)}.sse-msg .msg-time{color:#bbb;color:var(--text-dim)}.sse-msg .msg-price{font-weight:700}.disclaimer{color:#888;color:var(--text-muted);font-size:12px;line-height:1.6;margin:0 auto;max-width:800px;padding:13px 0;padding:var(--s-5) 0;text-align:justify}.disclaimer h3{color:#444;color:var(--text-secondary);font-size:14px;margin-bottom:8px;margin-bottom:var(--s-4)}.about{align-items:center;display:flex;gap:21px;gap:var(--s-6)}.about-image{align-self:center;flex-shrink:0;height:auto;width:200px}.about-content{color:#444;color:var(--text-secondary);font-size:18px;line-height:1.7;max-width:1000px;text-align:justify}.feature-grid{grid-gap:13px;grid-gap:var(--s-5);display:grid;gap:13px;gap:var(--s-5);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));text-align:left;width:100%}.feature-card{background:#fff;background:var(--bg-primary);border:1px solid #dde0e4;border:1px solid var(--border);border-radius:13px;border-radius:var(--r-5);box-shadow:0 1px 2px #0000000a;padding:21px;padding:var(--s-6);transition:transform .2s,box-shadow .2s}.feature-card:hover{box-shadow:0 6px 20px #00000012;transform:translateY(-2px)}.feature-card h3{color:#1a1a1a;color:var(--text-primary);font-size:15px;font-weight:700;margin:0 0 5px;margin:0 0 var(--s-3)}.feature-card p{color:#444;color:var(--text-secondary);font-size:14px;line-height:1.6;margin:0}.footer{align-items:center;background-color:#f0f1f3;background-color:var(--bg-surface);border-top:1px solid #dde0e4;border-top:1px solid var(--border);box-sizing:border-box;color:#888;color:var(--text-muted);display:flex;font-family:Courier New,monospace;font-family:var(--font-mono);font-size:13px;font-weight:700;gap:21px;gap:var(--s-6);justify-content:space-between;margin-top:auto;min-height:55px;padding:0 21px;padding:0 var(--s-6);width:100%}.footer-copy{letter-spacing:.04em}.footer-links{align-items:center;display:flex;flex-wrap:wrap;gap:21px;gap:var(--s-6);justify-content:center}.footer-item,.sidebar-item{border-left:2px solid #ccc;box-sizing:border-box;color:#444;color:var(--text-secondary);cursor:pointer;display:block;font-family:Courier New,monospace;font-family:var(--font-mono);font-size:13px;line-height:34px;overflow:hidden;padding:0 13px;padding:0 var(--s-5);text-decoration:none;text-overflow:ellipsis;transition:background .15s,border-color .15s,color .15s;white-space:nowrap;width:233px;width:var(--s-11)}.footer-item:hover,.sidebar-item:hover{background:#e8eaed;background:var(--bg-hover);border-left-color:#00883a;border-left-color:var(--accent-buy);color:#1a1a1a;color:var(--text-primary);text-decoration:none}.footer-item-icon{color:#888;color:var(--text-muted);margin-right:8px;margin-right:var(--s-4);vertical-align:middle}.footer-item:hover .footer-item-icon{color:#00883a;color:var(--accent-buy)}.right-links{align-items:center;display:flex}.sidebar{background-color:#fff;background-color:var(--bg-primary);border-left:1px solid #dde0e4;border-left:1px solid var(--border);max-height:100vh;min-width:233px;min-width:var(--s-11);order:1;overflow-y:auto;padding:13px 0;padding:var(--s-5) 0;position:-webkit-sticky;position:sticky;top:0;width:233px;width:var(--s-11)}.sidebar-header{border-bottom:1px solid #dde0e4;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:8px;gap:var(--s-4);margin-bottom:5px;margin-bottom:var(--s-3);padding:8px 13px;padding:var(--s-4) var(--s-5)}.sidebar-login-btn{background-color:#00883a;background-color:var(--accent-buy);border:1px solid #b8dfc8;border-radius:3px;border-radius:var(--r-2);color:#f0f0f0;cursor:pointer;font-family:Courier New,monospace;font-family:var(--font-mono);font-size:13px;font-weight:700;letter-spacing:.05em;padding:8px 0;padding:var(--s-4) 0;transition:background .15s,border-color .15s;width:100%}.sidebar-login-btn:hover{border-color:#00883a;border-color:var(--accent-buy)}.sidebar-section-title{color:#000;color:var(--text-title);font-family:Courier New,monospace;font-family:var(--font-mono);font-size:13px;letter-spacing:.1em;text-transform:uppercase}.theme-switcher{background-color:#f0f1f3;background-color:var(--bg-surface);border:1px solid #dde0e4;border:1px solid var(--border);border-radius:999px;border-radius:var(--r-pill);gap:2px;gap:var(--s-1);padding:3px;padding:var(--s-2)}.theme-seg,.theme-switcher{align-items:center;display:inline-flex}.theme-seg{background:#0000;border:none;border-radius:999px;border-radius:var(--r-pill);cursor:pointer;justify-content:center;padding:5px;padding:var(--s-3);transition:background .15s}.theme-seg:hover{color:#444;color:var(--text-secondary)}.theme-seg.active{background-color:#fff;background-color:var(--bg-primary);box-shadow:0 1px 2px #0000001f;color:#1a1a1a;color:var(--text-primary)}.theme-seg-dot{border:1px solid #dde0e4;border:1px solid var(--border);border-radius:50%;flex-shrink:0;height:13px;width:13px}.sidebar-state{color:#bbb;color:var(--text-dim);font-family:Courier New,monospace;font-family:var(--font-mono);font-size:13px;padding:8px 13px;padding:var(--s-4) var(--s-5)}.sidebar-state.error{color:#c20;color:var(--accent-sell);word-break:break-all}.sidebar-item.inactive{border-left-color:#0000;color:#bbb;color:var(--text-dim)}.symbol-select{background-color:#fff;background-color:var(--bg-primary);border:1px solid #dde0e4;border:1px solid var(--border);border-radius:5px;border-radius:var(--r-3);color:#1a1a1a;color:var(--text-primary);cursor:pointer;font-family:Courier New,monospace;font-family:var(--font-mono);font-size:12px;margin:8px 0;margin:var(--s-4) 0;padding:8px 13px;padding:var(--s-4) var(--s-5);transition:border-color .2s}.symbol-select:focus,.symbol-select:hover{border-color:#999;outline:none}.modal-overlay{align-items:center;background-color:#0006;display:flex;inset:0;justify-content:center;position:fixed;z-index:1000}.modal-content{background-color:#fff;background-color:var(--bg-primary);border:1px solid #dde0e4;border:1px solid var(--border);border-radius:5px;border-radius:var(--r-3);box-shadow:0 8px 32px #0000001f;display:flex;flex-direction:column;max-height:80vh;max-width:1100px;overflow:hidden;width:80vw}.modal-header{align-items:center;background-color:#f7f8fa;background-color:var(--bg-secondary);border-bottom:1px solid #dde0e4;border-bottom:1px solid var(--border);display:flex;flex-shrink:0;justify-content:space-between;padding:13px;padding:var(--s-5)}.modal-title{color:#444;color:var(--text-secondary);font-family:Courier New,monospace;font-family:var(--font-mono);font-size:12px;letter-spacing:.05em}.modal-code{color:#bbb;color:var(--text-dim);margin-left:8px;margin-left:var(--s-4)}.modal-close{background:none;border:none;color:#888;color:var(--text-muted);cursor:pointer;font-size:18px;line-height:1;padding:0 5px;padding:0 var(--s-3);transition:color .15s}.modal-close:hover{color:#1a1a1a;color:var(--text-primary)}.modal-body{flex:1 1;overflow-y:auto;padding:8px 0;padding:var(--s-4) 0}.modal-state{color:#bbb;color:var(--text-dim);font-family:Courier New,monospace;font-family:var(--font-mono);font-size:11px;padding:13px;padding:var(--s-5)}.modal-state.error{color:#c20;color:var(--accent-sell)}.modal-table{border-collapse:collapse;font-family:Courier New,monospace;font-family:var(--font-mono);font-size:11px;width:100%}.modal-th{background-color:#f7f8fa;background-color:var(--bg-secondary);border-bottom:1px solid #dde0e4;border-bottom:1px solid var(--border);color:#888;color:var(--text-muted);font-weight:400;letter-spacing:.08em;text-align:left;text-transform:uppercase}.modal-td,.modal-th{padding:5px 13px;padding:var(--s-3) var(--s-5);white-space:nowrap}.modal-td{border-bottom:1px solid #eaecef;border-bottom:1px solid var(--border-light);color:#444;color:var(--text-secondary);max-width:200px;overflow:hidden;text-overflow:ellipsis}.modal-tr:hover .modal-td{background:#e8eaed;background:var(--bg-hover)}.modal-footer{background-color:#f7f8fa;background-color:var(--bg-secondary);border-top:1px solid #eaecef;border-top:1px solid var(--border-light);color:#bbb;color:var(--text-dim);flex-shrink:0;font-family:Courier New,monospace;font-family:var(--font-mono);font-size:11px;padding:8px 13px;padding:var(--s-4) var(--s-5)}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes popIn{0%{opacity:0;transform:scale(.95)}60%{opacity:1;transform:scale(1.02)}to{transform:scale(1)}}@media (max-width:768px){.about{align-items:center;flex-direction:column;gap:13px;gap:var(--s-5);padding-top:13px;padding-top:var(--s-5);text-align:center}.about-image{align-self:center;margin-top:0;width:140px}}@media (max-width:600px){.about-image{width:110px}.App-header,.about,.disclaimer{padding:13px 13px 0;padding:var(--s-5) var(--s-5) 0;text-align:center}.footer{flex-direction:column;gap:13px;gap:var(--s-5);padding:21px;padding:var(--s-6);text-align:center}.sidebar{display:none}}
/*# sourceMappingURL=main.c73d9b55.css.map*/