@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-display:block;src:url(/fonts/Roboto-Regular.woff2) format("woff2")}:root{--bg: #f8fafc;--card: #ffffff;--line: #d8dee6;--text: #0f172a;--muted: #64748b;--blue: #2563eb;--green: #089981;--red: #f23645}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased}button,input{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;padding:max(10px,env(safe-area-inset-top)) 10px max(16px,env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:10px}.auth-shell{justify-content:center;align-items:center}.auth-card{width:min(100%,360px);background:var(--card);border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 28px #0f172a1f;padding:16px;display:grid;gap:12px}.auth-card h1{margin:0;font-size:18px}.auth-card label{display:grid;gap:5px;color:var(--muted);font-size:12px;font-weight:900}.auth-card input{width:100%;border:1px solid #cbd5e1;border-radius:6px;padding:11px 10px;color:var(--text)}.auth-card button{border:1px solid #bfdbfe;background:#dbeafe;color:#1d4ed8;border-radius:6px;padding:10px;font-weight:900}.auth-card button:disabled{opacity:.55;cursor:not-allowed}.auth-status{color:#dc2626;font-size:12px;font-weight:850}.top-bar{min-height:42px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px}.price-bar{justify-self:center;display:grid;grid-template-columns:repeat(3,minmax(54px,auto));gap:4px;max-width:100%}.price-chip{min-width:54px;border:1px solid #dbe4ef;background:#fff;border-radius:6px;padding:4px 5px;display:grid;gap:1px;color:#334155;line-height:1.05}.price-chip span{font-size:10px;font-weight:900;color:#64748b}.price-chip strong{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;font-weight:900;color:#0f172a}.price-chip-active{background:#eef2ff;border-color:#c7d2fe}.price-chip-active span,.price-chip-active strong{color:#3730a3}.top-actions{justify-self:end;display:flex;gap:5px}.top-bar button:not(.price-chip),.chart-mini-toggle{border:1px solid var(--line);background:#fff;color:#334155;border-radius:6px;padding:7px 8px;font-size:12px;font-weight:800}.source-statuses{min-width:0;display:flex;align-items:center;gap:6px;overflow:hidden}.notification-toggle{width:31px;height:31px;padding:6px!important;display:inline-flex;align-items:center;justify-content:center;color:#94a3b8!important}.notification-toggle svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.notification-toggle-on{border-color:#93c5fd!important;background:#eff6ff!important;color:#2563eb!important}.notification-toggle:disabled{cursor:not-allowed;opacity:.45}.notification-slash{stroke:#ef4444;stroke-width:2.2}.source-status{display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-size:11px;font-weight:900;white-space:nowrap}.status-dot{width:7px;height:7px;display:inline-block;border-radius:50%;background:#94a3b8;flex:0 0 auto}.status-connected{background:#22c55e}.status-connecting{background:#f59e0b}.status-error,.status-disconnected{background:#ef4444}.status-disabled,.status-idle{background:#cbd5e1}.settings-card,.chart-panel,.news-card,.empty-state{background:var(--card);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 20px #0f172a0f}.settings-card{padding:10px;display:grid;gap:8px}.settings-card label{display:grid;gap:4px;font-size:12px;color:var(--muted);font-weight:800}.settings-card input{width:100%;border:1px solid #cbd5e1;border-radius:6px;padding:9px 10px;color:var(--text)}.push-settings{display:grid;gap:7px;padding-top:8px;border-top:1px solid #e2e8f0}.push-settings-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.push-settings-heading strong{font-size:13px}.push-state{color:#64748b;font-size:10px;font-weight:800;text-align:right}.push-state-on{color:#15803d}.push-settings-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.push-settings-actions button{border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#334155;padding:8px;font-size:12px;font-weight:850}.push-settings-actions button:first-child{border-color:#60a5fa;background:#eff6ff;color:#1d4ed8}.push-settings-actions button:disabled{opacity:.5}.push-settings small{color:#94a3b8;font-size:10px;line-height:1.3}.app-console-settings{display:grid;gap:7px;padding-top:8px;border-top:1px solid #e2e8f0}.app-console-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.app-console-heading strong{font-size:13px}.app-console-heading span{color:#64748b;font-size:10px;font-weight:800}.app-console-actions{display:grid;grid-template-columns:1.4fr .8fr .8fr;gap:7px}.app-console-actions button{min-width:0;border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#334155;padding:8px 5px;font-size:11px;font-weight:850}.app-console-actions button:first-child{border-color:#334155;background:#0f172a;color:#fff}.app-console-actions button:disabled{opacity:.45}.app-console-output{max-height:300px;overflow:auto;overscroll-behavior:contain;border:1px solid #1e293b;border-radius:6px;background:#020617;color:#cbd5e1;padding:7px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9px;line-height:1.35;-webkit-overflow-scrolling:touch}.app-console-line{display:grid;grid-template-columns:54px 34px minmax(0,1fr);gap:5px;padding:2px 0;border-bottom:1px solid rgba(148,163,184,.1)}.app-console-line>span{color:#64748b}.app-console-line>strong{color:#93c5fd;text-transform:uppercase;font-size:8px}.app-console-line>code{color:inherit;white-space:pre-wrap;overflow-wrap:anywhere}.app-console-warn{color:#fde68a}.app-console-error{color:#fca5a5}.app-console-empty{color:#64748b;padding:8px;text-align:center}.settings-save-close{width:100%;min-height:36px;border:1px solid #2563eb;border-radius:6px;background:#2563eb;color:#fff;font-size:12px;font-weight:900;letter-spacing:.01em}.settings-save-close:active{transform:scale(.985);background:#1d4ed8}.chart-panel{overflow:hidden}.chart-head{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:8px 10px;border-bottom:1px solid #edf2f7}.chart-head .symbol-box{grid-column:2}.trading-mode-toggle{grid-column:1;justify-self:start;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;padding:6px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#64748b;cursor:pointer;touch-action:manipulation}.trading-mode-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.trading-mode-toggle-on{border-color:#60a5fa;background:#eff6ff;color:#1d4ed8;box-shadow:0 0 0 1px #3b82f61a}.trading-mode-toggle:active{transform:scale(.96)}.symbol-box{display:inline-flex;align-items:center;height:32px;border:1px solid #93c5fd;background:#f8fbff;border-radius:6px;overflow:visible;position:relative;isolation:isolate;z-index:20;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px;font-weight:900;box-shadow:0 0 0 1px #3b82f614}.symbol-box input{width:82px;height:100%;border:0;outline:none;background:transparent;color:#1e3a8a;padding:0 8px;border-radius:5px 0 0 5px;font:inherit;font-size:16px;text-transform:uppercase}.symbol-box>span{align-self:stretch;display:inline-flex;align-items:center;padding:0 8px;border-left:1px solid #bfdbfe;border-radius:0 5px 5px 0;background:#eff6ff;color:#2563eb;font-size:12px}.symbol-menu{position:absolute;top:calc(100% + 5px);left:0;right:0;z-index:80;display:flex;flex-direction:column;max-height:240px;overflow-y:auto;overscroll-behavior:contain;padding:4px;border:1px solid #cbd5e1;border-radius:7px;background:#fff;box-shadow:0 10px 28px #0f172a2e}.symbol-option{width:100%;border:0;background:transparent;color:#0f172a;cursor:pointer;display:flex;align-items:baseline;justify-content:space-between;gap:6px;padding:8px;border-radius:5px;font:inherit;font-size:13px;text-align:left}.symbol-option:hover,.symbol-option:focus-visible,.symbol-option:active{background:#eaf4ff;color:#0369a1;outline:none}.symbol-option small{padding:0;color:#94a3b8;font-size:9px;font-weight:800}.chart-head-actions{grid-column:3;display:flex;align-items:center;justify-content:flex-end;gap:5px}.chart-mini-toggle{padding:5px 8px;font-size:11px}.chart-exchange-pill{border:1px solid #dbe4ef;background:#f8fafc;color:#64748b;border-radius:999px;padding:4px 7px;font-size:10px;font-weight:900;text-transform:uppercase}.intervals{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;padding:7px 8px;border-bottom:1px solid #edf2f7}.intervals button{border:1px solid #cbd5e1;background:#fff;color:#475569;padding:6px 0;border-radius:5px;font-size:11px;font-weight:850}.intervals .interval-active{background:#e0f2fe;color:#0369a1;border-color:#38bdf8}.chart-box-wrap{position:relative;height:285px}.chart-box{height:100%}.chart-live-info{position:absolute;z-index:4;top:5px;left:8px;max-width:calc(100% - 78px);color:#334155;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9px;line-height:1.3;pointer-events:none;text-shadow:0 1px 0 rgba(255,255,255,.95),1px 0 0 rgba(255,255,255,.95)}.chart-live-info-row{display:flex;align-items:baseline;gap:4px;min-width:0;white-space:nowrap}.chart-live-info-row strong{color:#0f172a;font-weight:900}.chart-live-info-row>span{color:#64748b;font-weight:750}.chart-live-info-row>b{color:#0f172a;font-weight:900}.chart-live-info-subrow{margin-top:1px;gap:10px}.chart-live-info-subrow b{color:#475569;font-weight:850}.chart-live-info .chart-current-pct.positive{color:#089981}.chart-live-info .chart-current-pct.negative{color:#f23645}.chart-live-info .chart-volume-value.positive{color:#089981}.chart-live-info .chart-volume-value.negative{color:#f23645}.chart-candle-countdown-overlay{display:none;position:absolute;top:0;right:0;width:72px;height:20px;box-sizing:border-box;padding:0;border-radius:0 0 2px;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:4;overflow:hidden;contain:strict}.chart-hover-tooltip{position:absolute;z-index:5;min-width:44px;padding:3px 5px;border:1px solid rgba(148,163,184,.65);border-radius:5px;background:#0f172aeb;box-shadow:0 3px 9px #0f172a2e;color:#f8fafc;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9px;line-height:1.18;text-align:right;pointer-events:none;white-space:nowrap}.chart-hover-tooltip[hidden],.chart-hover-tooltip strong{display:none}.chart-hover-tooltip span{display:block;font-weight:850}.chart-hover-tooltip .positive{color:#4ade80}.chart-hover-tooltip .negative{color:#fb7185}.trade-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:8px 10px 10px}.trade-buttons-compact{grid-template-columns:minmax(68px,1fr) minmax(68px,1fr);gap:6px;padding:0}.trade-button{border-radius:6px;padding:9px 10px;font-size:13px;font-weight:900;border:1px solid transparent}.trade-buttons-compact .trade-button{padding:9px 0;font-size:13px}.trade-sell{background:#fee2e2;color:#b91c1c;border-color:#fecaca}.trade-buy{background:#dcfce7;color:#166534;border-color:#86efac}.positions-panel{background:var(--card);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 20px #0f172a0f;overflow:hidden}.positions-shell{position:relative;min-width:0}.positions-shell .positions-head{padding-right:43px}.positions-visibility-toggle{position:absolute;z-index:2;top:5px;right:7px;width:26px;height:26px;padding:5px;border:1px solid #e2e8f0;border-radius:5px;background:#f8fafcf0;color:#94a3b8;display:inline-flex;align-items:center;justify-content:center}.positions-visibility-toggle svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.positions-shell-hidden{min-height:36px;border:1px solid var(--line);border-radius:8px;background:#ffffffb8}.positions-shell-hidden .positions-visibility-toggle{top:4px}.positions-collapsed-label{padding:9px 42px 9px 10px;color:#64748b;font-size:12px;font-weight:850}.mobile-order-status{position:fixed;z-index:60;top:max(58px,calc(env(safe-area-inset-top) + 48px));left:50%;width:min(320px,calc(100vw - 20px));max-width:calc(100vw - 20px);transform:translate(-50%);pointer-events:none;border:1px solid #dbe4ef;background:#ffffffeb;color:#475569;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:900;text-align:center;box-shadow:0 4px 12px #0f172a14}.mobile-order-status-pending{color:#475569}.mobile-order-status-ok{color:#15803d;border-color:#bbf7d0;background:#f0fdf4}.mobile-order-status-close{padding:7px 12px;font-size:12px}.mobile-order-status-error{color:#b91c1c;border-color:#fecaca;background:#fff1f2}.positions-head{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-bottom:1px solid #edf2f7}.positions-head strong{font-size:13px}.positions-head span{color:var(--muted);font-size:11px;font-weight:850}.positions-empty-mobile{padding:12px 10px;color:var(--muted);font-size:13px;font-weight:800;text-align:center}.positions-list{--positions-grid-columns: minmax(62px, 96px) minmax(42px, 48px) minmax(56px, 64px) minmax(0, 1fr) 83px;--positions-grid-gap: 5px;display:grid}.positions-columns{display:grid;grid-template-columns:var(--positions-grid-columns);gap:var(--positions-grid-gap);align-items:center;min-height:22px;padding:4px 9px 4px 15px;border-bottom:1px solid #dfe6ee;background:#f8fafc;color:#64748b;font-size:9px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.positions-columns>span{min-width:0}.positions-columns>:nth-child(n+2){text-align:center}.positions-columns>:nth-child(3),.position-pnl{transform:translate(16px)}.positions-columns>:last-child{grid-column:5}.position-row{position:relative;width:100%;border:0;border-bottom:1px solid #edf2f7;background:#fff;display:grid;grid-template-columns:var(--positions-grid-columns);gap:var(--positions-grid-gap);align-items:center;padding:9px 9px 9px 15px;text-align:left}.position-row:last-child{border-bottom:0}.position-side-bar{position:absolute;left:5px;top:9px;bottom:9px;width:3px;border-radius:999px}.position-side-bar.long{background:#16a34a}.position-side-bar.short{background:#dc2626}.position-symbol{min-width:0;display:grid;gap:2px}.position-symbol strong{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;color:#0f172a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.position-symbol small{color:#64748b;font-size:11px;font-weight:800}.position-metrics{display:contents}.position-size,.position-pnl{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;font-weight:900;white-space:nowrap;text-align:center}.position-size.long{color:#16a34a}.position-size.short{color:#dc2626}.position-pnl.positive{color:#16a34a}.position-pnl.negative{color:#dc2626}.position-pnl.neutral{color:#334155}.position-close-actions{grid-column:5;width:83px;display:inline-flex;gap:5px;justify-content:center;align-items:center}.position-close-actions button{width:39px;min-width:0;height:28px;border:1px solid #fecaca;background:#fee2e2;color:#b91c1c;border-radius:5px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:900;line-height:1}.position-close-actions button:active,.trade-button:active{transform:scale(.96)}.position-close-actions button:disabled,.trade-button:disabled{cursor:wait;opacity:.66}.position-close-actions button[aria-busy=true],.trade-button[aria-busy=true]{opacity:1;box-shadow:inset 0 0 0 2px #2563eb2e}@media(max-width:300px){.positions-list{--positions-grid-columns: minmax(56px, 72px) 40px 54px minmax(0, 1fr) 73px;--positions-grid-gap: 3px}.position-close-actions{width:73px}.position-close-actions button{width:34px;font-size:10px}}.news-feed-wrap{position:relative}.news-feed{display:flex;flex-direction:column;gap:8px}.empty-state{padding:24px 14px;color:var(--muted);text-align:center;font-weight:800}.news-card{position:relative;padding:10px;transition:border-color .12s ease,background .12s ease}.news-card-active{border-color:#93c5fd;background:#f8fbff}.news-header{display:grid;grid-template-columns:36px 1fr auto;gap:9px;align-items:center;padding-right:28px}.news-icon{width:36px;height:36px;border-radius:5px;object-fit:contain;background:#fff}.news-icon-fallback{border:1px solid #dbe4ef}.news-title-wrap{min-width:0}.news-title-wrap h2{margin:0;font-size:15px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.news-title-wrap .news-meta{color:#94a3b8;font-size:11px;font-weight:850}.news-translation{display:flex;align-items:flex-start;gap:5px;color:#64748b}.news-translation-title{margin-top:3px;font-size:11px;line-height:1.25;font-weight:700}.news-translation-body{margin-top:7px;padding:6px 7px;border-left:2px solid #cbd5e1;border-radius:0 5px 5px 0;background:#f8fafc;font-size:13px;line-height:1.35}.news-translation>div{min-width:0;flex:1}.news-translation .news-line{margin-bottom:2px}.news-translation-label{flex:0 0 auto;margin-top:1px;padding:1px 3px;border-radius:3px;background:#e2e8f0;color:#475569;font-size:8px;font-weight:900;line-height:1.3}.news-external-link{position:absolute;top:5px;right:5px;width:36px;height:36px;border:1px solid transparent;border-radius:5px;background:transparent;color:#b8c2cf;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;touch-action:manipulation}.news-external-link:active{background:#f1f5f9;color:#64748b;border-color:#e2e8f0}.news-external-link svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.new-messages-button{position:fixed;left:50%;bottom:max(14px,env(safe-area-inset-bottom));z-index:45;transform:translate(-50%);border:1px solid #60a5fa;border-radius:999px;background:#0f172a;color:#fff;box-shadow:0 10px 26px #0f172a47;padding:9px 14px;display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:900;white-space:nowrap;touch-action:manipulation}.new-messages-button:active{transform:translate(-50%) scale(.97)}.new-messages-button span{color:#93c5fd;font-size:14px}.news-body{margin-top:8px;font-size:15px;line-height:1.42;overflow-wrap:anywhere}.news-line{margin:0 0 4px}.news-body a{color:var(--blue)}.reply-block{margin-top:8px;padding:8px;border-left:3px solid #93c5fd;background:#eff6ff;border-radius:5px;color:#1e3a8a}.highlight-blue{color:var(--blue);font-weight:850}.highlight-green{color:#16a34a;font-weight:850}.highlight-red{color:#dc2626;font-weight:850}.ticker-stack{display:grid;gap:6px;margin-top:9px}.ticker-action-row{display:grid;grid-template-columns:minmax(58px,auto) 1fr;gap:7px;align-items:center}.ticker-chip{border:1px solid #dbe4ef;background:#eef2ff;color:#3730a3;border-radius:5px;padding:7px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;font-weight:900;text-align:center;white-space:nowrap;display:inline-flex;align-items:baseline;justify-content:center;gap:4px}.ticker-pct{font-size:9px;font-weight:900;letter-spacing:-.02em}.ticker-pct-green{color:#16a34a}.ticker-pct-red{color:#dc2626}.ticker-chip-active{background:#dbeafe;color:#1d4ed8;border-color:#60a5fa}@media(min-width:720px){.app-shell{max-width:720px;margin:0 auto}}@media(max-width:390px){.top-bar{grid-template-columns:auto minmax(0,1fr) auto}.price-bar{grid-template-columns:repeat(3,minmax(46px,1fr));gap:3px}.price-chip{min-width:0;padding:4px 3px}.price-chip strong{font-size:10px}.source-statuses{gap:4px}.source-status{font-size:10px}}.trade-sheet-backdrop{position:fixed;inset:0;z-index:50;background:#0f172a3d;display:flex;align-items:flex-end;padding:10px}.trade-sheet{width:100%;max-width:720px;margin:0 auto max(8px,env(safe-area-inset-bottom));background:#fff;border:1px solid #d8dee6;border-radius:10px;box-shadow:0 18px 50px #0f172a38;padding:12px}.trade-sheet header{display:flex;justify-content:space-between;align-items:center;gap:10px}.trade-sheet header strong{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:16px}.trade-sheet-side{border-radius:6px;padding:6px 9px;font-size:12px;font-weight:900}.trade-sheet-side.buy{background:#dcfce7;color:#166534}.trade-sheet-side.sell{background:#fee2e2;color:#b91c1c}.trade-sheet-copy{margin-top:10px;color:#64748b;font-size:13px;font-weight:750}.trade-sheet-actions{margin-top:12px;display:grid;grid-template-columns:1fr 1fr;gap:8px}.trade-sheet-actions button{border-radius:7px;border:1px solid #d8dee6;background:#fff;padding:11px 10px;font-size:14px;font-weight:900}.trade-sheet-actions .confirm-buy{background:#dcfce7;color:#166534;border-color:#86efac}.trade-sheet-actions .confirm-sell{background:#fee2e2;color:#b91c1c;border-color:#fecaca}input,textarea,select,.auth-input,.symbol-input{font-size:16px!important}.news-body-copy-collapsed{display:-webkit-box;-webkit-box-orient:vertical;line-clamp:10;-webkit-line-clamp:10;overflow:hidden}.news-show-more{margin-top:5px;border:0;background:transparent;color:var(--blue);padding:3px 0;font-size:12px;font-weight:900}.chart-loading{min-height:120px;display:grid;place-items:center;color:var(--muted);font-size:13px;font-weight:850}.chart-live-price{min-width:66px;color:#0f172a;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;font-variant-numeric:tabular-nums;text-align:right}.chart-clocks{display:grid;gap:1px;color:#64748b;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9px;font-weight:800;line-height:1.15;white-space:nowrap}.chart-clocks span{display:flex;justify-content:space-between;gap:5px}.chart-clocks b{color:#334155;font-weight:900;font-variant-numeric:tabular-nums}
