:root{--bg: #0b1020;--panel: #151e30;--panel-2: #1a2539;--line: rgba(148, 163, 184, .14);--line-2: rgba(148, 163, 184, .24);--text: #f8fafc;--text-2: #cbd5e1;--muted: #8392ab;--buy: #22c55e;--sell: #ef4444;--hold: #f59e0b;--accent: #38bdf8;--demo: #c084fc;--radius: 12px;--font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:radial-gradient(1200px 600px at 85% -10%,rgba(56,189,248,.08),transparent 60%),radial-gradient(900px 500px at -10% 110%,rgba(34,197,94,.05),transparent 60%),var(--bg);color:var(--text);font-family:var(--font);font-size:13px;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}button,input,select{font:inherit;color:inherit}a{color:inherit}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.muted{color:var(--muted)}.mono{font-family:var(--mono);font-size:12px}.app{height:100vh;display:flex;flex-direction:column;overflow:hidden}.topbar{display:flex;align-items:center;gap:24px;height:58px;flex:none;padding:0 18px;background:#0b1020d9;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:10px;padding-right:22px;border-right:1px solid var(--line)}.brand strong{display:block;font-size:16px;letter-spacing:.22em;font-weight:800;line-height:1}.brand span{display:block;font-size:9.5px;letter-spacing:.28em;color:var(--accent);margin-top:4px;font-weight:600}.nav{display:flex;gap:4px;list-style:none;margin:0;padding:0}.nav button{display:flex;align-items:center;gap:8px;height:36px;padding:0 14px;background:transparent;border:1px solid transparent;border-radius:9px;color:var(--text-2);cursor:pointer;font-weight:500;transition:.15s}.nav button:hover{color:var(--text);background:#38bdf80f}.nav button.active{color:var(--accent);background:#38bdf81a;border-color:#38bdf859;box-shadow:0 0 18px #38bdf826 inset}.top-status{margin-left:auto;display:flex;align-items:center;gap:14px}.top-meta{display:flex;flex-direction:column;align-items:flex-end;line-height:1.25}.clock{font-family:var(--mono);font-size:13px;color:var(--text)}.top-meta .sub{font-size:11px;color:var(--muted)}.icon-btn{width:34px;height:34px;display:grid;place-items:center;border-radius:8px;background:var(--panel);border:1px solid var(--line-2);cursor:pointer;color:var(--text-2)}.icon-btn:hover{color:var(--accent);border-color:var(--accent)}.banner{display:flex;align-items:center;gap:8px;flex:none;padding:7px 18px;font-weight:600;font-size:12.5px;letter-spacing:.01em}.banner.demo{background:repeating-linear-gradient(-45deg,#c084fc2e 0,#c084fc2e 14px,#c084fc14 14px,#c084fc14 28px);color:#e9d5ff;border-bottom:1px solid rgba(192,132,252,.45)}.banner.bad{background:#ef444424;color:#fecaca;border-bottom:1px solid rgba(239,68,68,.45)}.grid{flex:1;min-height:0;display:grid;gap:12px;padding:12px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr) minmax(0,1fr)}.grid.view-markets,.grid.view-news,.grid.view-settings{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.grid.view-signals{grid-template-rows:minmax(0,1fr)}.panel{display:flex;flex-direction:column;min-height:0;min-width:0;background:linear-gradient(180deg,rgba(26,37,57,.9),var(--panel) 60%);border:1px solid var(--line-2);border-radius:var(--radius);box-shadow:0 0 0 1px #38bdf808,0 10px 30px #00000059;overflow:hidden}.panel-head{display:flex;align-items:center;gap:10px;flex:none;padding:10px 14px;border-bottom:1px solid var(--line);min-height:50px}.panel-icon{color:var(--accent);display:grid;place-items:center;filter:drop-shadow(0 0 6px rgba(56,189,248,.5))}.panel-head h2{margin:0;font-size:13.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text);white-space:nowrap}.panel-actions{margin-left:auto;display:flex;align-items:center;gap:8px}.panel-body{flex:1;min-height:0;overflow:auto;padding:4px 14px 10px;scrollbar-width:thin;scrollbar-color:rgba(148,163,184,.3) transparent}.panel-foot{flex:none;padding:7px 14px;border-top:1px solid var(--line);font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pill{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 9px;border-radius:999px;font-size:10.5px;font-weight:700;letter-spacing:.06em;white-space:nowrap;border:1px solid;flex:none}.pill .dot{width:6px;height:6px;border-radius:50%;background:currentColor}.pill .dot.pulse{animation:pulse 1.6s infinite}@keyframes pulse{0%{box-shadow:0 0 0 0 currentColor}70%{box-shadow:0 0 0 6px transparent}to{box-shadow:0 0 0 0 transparent}}.pill-live{color:var(--buy);border-color:#22c55e73;background:#22c55e1a}.pill-warn{color:var(--hold);border-color:#f59e0b80;background:#f59e0b1a}.pill-bad{color:var(--sell);border-color:#ef444480;background:#ef44441a}.pill-muted{color:var(--muted);border-color:var(--line-2);background:transparent}.pill-info{color:var(--accent);border-color:#38bdf873;background:#38bdf814}.pill-demo{color:var(--demo);border-color:#c084fc80;background:#c084fc1f}.tbl{width:100%;border-collapse:collapse}.tbl th{text-align:left;font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:8px 6px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--panel);z-index:1}.tbl td{padding:7px 6px;border-bottom:1px solid var(--line);vertical-align:middle}.tbl tr:last-child td{border-bottom:0}.tbl .num{text-align:right}.tbl .center{text-align:center}.row-dim td{opacity:.55}.inst{display:flex;align-items:center;gap:10px}.inst strong{display:block;font-size:13.5px;font-weight:700}.inst small{display:block;color:var(--muted);font-size:11px;margin-top:1px}.ibadge{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;font-weight:800;font-size:11px;flex:none;border:1px solid}.ibadge.gold{color:#fbbf24;border-color:#fbbf2466;background:linear-gradient(135deg,#fbbf2440,#b4530926)}.ibadge.usd{color:#86efac;border-color:#86efac59;background:#22c55e1a}.ibadge.oil{color:#e2e8f0;border-color:#e2e8f04d;background:#0f172ae6}.ibadge.bond{color:var(--accent);border-color:#38bdf866;background:#38bdf81a;font-size:10px}.markets .price{font-family:var(--mono);font-size:15px;font-weight:600;white-space:nowrap}.markets .price .unit{color:var(--muted);margin-left:1px;font-size:12px}.lastknown{display:block;font-family:var(--font);font-size:9.5px;color:var(--hold);font-weight:600;text-transform:uppercase;letter-spacing:.06em}.markets .chg{font-family:var(--mono);font-weight:600;white-space:nowrap}.markets .chg small{font-size:11px;opacity:.85}.up{color:var(--buy)}.down{color:var(--sell)}.warn{color:var(--hold)}.dir{width:18px;height:18px}.dir.up{filter:drop-shadow(0 0 4px rgba(34,197,94,.6))}.dir.down{filter:drop-shadow(0 0 4px rgba(239,68,68,.6))}.markets .upd{white-space:nowrap}.markets .upd small{display:block;color:var(--muted);font-size:10.5px;margin-top:3px;max-width:180px;overflow:hidden;text-overflow:ellipsis;margin-left:auto}.spark{display:inline-block;vertical-align:middle;overflow:visible}.spark-line{fill:none;stroke-width:1.6;stroke-linejoin:round}.spark-up .spark-line{stroke:var(--buy);filter:drop-shadow(0 0 3px rgba(34,197,94,.55))}.spark-down .spark-line{stroke:var(--sell);filter:drop-shadow(0 0 3px rgba(239,68,68,.55))}.spark-flat .spark-line,.spark-muted .spark-line{stroke:var(--muted)}.spark-area{stroke:none;opacity:.12}.spark-up .spark-area{fill:var(--buy)}.spark-down .spark-area{fill:var(--sell)}.spark-flat .spark-area,.spark-muted .spark-area{fill:var(--muted)}.spark-up .spark-dot{fill:var(--buy)}.spark-down .spark-dot{fill:var(--sell)}.spark-flat .spark-dot,.spark-muted .spark-dot{fill:var(--muted)}.seg{display:inline-flex;padding:3px;gap:2px;border-radius:9px;background:#0b1020b3;border:1px solid var(--line-2)}.seg button{border:0;background:transparent;padding:4px 11px;border-radius:6px;cursor:pointer;color:var(--text-2);font-weight:600;font-size:12px}.seg button:hover{color:var(--text)}.seg button.on{background:#38bdf82e;color:var(--accent);box-shadow:0 0 0 1px #38bdf880 inset,0 0 12px #38bdf840}.signals td strong{font-weight:700}.signals .reason{display:block;color:var(--muted);font-size:11px;margin-top:2px}.sig{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:76px;height:24px;border-radius:999px;font-weight:800;font-size:11.5px;letter-spacing:.06em;border:1px solid}.sig-buy{color:#bbf7d0;background:#22c55e33;border-color:var(--buy);box-shadow:0 0 12px #22c55e59}.sig-sell{color:#fecaca;background:#ef444433;border-color:var(--sell);box-shadow:0 0 12px #ef444459}.sig-hold{color:#fde68a;background:#f59e0b26;border-color:var(--hold);box-shadow:0 0 10px #f59e0b40}.sig-none{color:var(--muted);border-color:var(--line-2)}.sig-lg{min-width:120px;height:40px;font-size:17px}.overall{margin-top:10px;display:flex;align-items:center;gap:16px;padding:10px 14px;border-radius:10px;border:1px solid var(--line-2);background:#0b10208c}.overall.ov-buy{border-color:#22c55e80;box-shadow:0 0 22px #22c55e1f inset}.overall.ov-sell{border-color:#ef444480;box-shadow:0 0 22px #ef44441f inset}.overall.ov-hold{border-color:#f59e0b80;box-shadow:0 0 22px #f59e0b1a inset}.ov-left{display:flex;flex-direction:column;min-width:0}.ov-title{font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:13px}.ov-reason{color:var(--muted);font-size:11.5px;margin-top:2px}.votes{display:flex;gap:8px;margin-left:auto}.vote{position:relative;width:62px;padding:4px 8px 6px;border-radius:8px;background:#94a3b80f;border:1px solid var(--line);overflow:hidden}.vote span{display:block;font-size:9.5px;letter-spacing:.08em;color:var(--muted);font-weight:700}.vote b{font-size:16px;font-family:var(--mono)}.vote i{position:absolute;left:0;bottom:0;height:3px}.v-AL i{background:var(--buy)}.v-SAT i{background:var(--sell)}.v-BEKLE i{background:var(--hold)}.v-AL b{color:var(--buy)}.v-SAT b{color:var(--sell)}.v-BEKLE b{color:var(--hold)}.select select{height:30px;padding:0 30px 0 10px;border-radius:8px;background:#0b1020cc;border:1px solid var(--line-2);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--text-2) 50%),linear-gradient(135deg,var(--text-2) 50%,transparent 50%);background-position:calc(100% - 15px) 13px,calc(100% - 10px) 13px;background-size:5px 5px;background-repeat:no-repeat}.news{list-style:none;margin:0;padding:0}.news li{display:flex;gap:12px;padding:10px 10px 10px 12px;margin-top:8px;border-radius:9px;border:1px solid var(--line);border-left:3px solid rgba(56,189,248,.5);background:#0b102066;transition:background .3s}.news li.hi{border-left-color:var(--hold);background:linear-gradient(90deg,#f59e0b17,#0b102066 40%)}.news li.fresh{animation:flash 2s ease-out 1;box-shadow:0 0 0 1px #38bdf859}@keyframes flash{0%{background:#38bdf840}}.news-main{flex:1;min-width:0}.news-title{font-weight:700;font-size:13.5px;line-height:1.35}.news-title a{text-decoration:none}.news-title a:hover{color:var(--accent);text-decoration:underline}.impact{display:inline-flex;align-items:center;gap:3px;margin-right:6px;padding:1px 6px;border-radius:4px;font-size:9.5px;font-weight:800;letter-spacing:.06em;color:#111827;background:var(--hold);vertical-align:2px}.new-tag{margin-right:6px;padding:1px 6px;border-radius:4px;font-size:9.5px;font-weight:800;color:var(--bg);background:var(--accent);vertical-align:2px}.news p{margin:4px 0 6px;color:var(--text-2);font-size:12px;line-height:1.45}.news-meta{display:flex;flex-wrap:wrap;gap:10px;font-size:11px;color:var(--muted)}.news-meta .src{color:var(--accent);font-weight:600}.news-meta .tr{color:var(--muted);font-style:italic}.news-meta .tr.warn{color:var(--hold)}.news-meta .orig{display:inline-flex;align-items:center;gap:3px;color:var(--text-2)}.news-time{flex:none;text-align:right;display:flex;flex-direction:column;gap:2px}.news-time b{font-family:var(--mono);font-size:12px;padding:2px 7px;border-radius:6px;border:1px solid var(--line-2)}.news-time small{color:var(--muted);font-size:10.5px}.empty{margin:18px 4px;padding:16px;border:1px dashed var(--line-2);border-radius:10px;color:var(--text-2);text-align:center;line-height:1.5}.empty small{color:var(--muted)}.empty.bad{border-color:#ef444480;color:#fecaca}.decision-top{display:grid;grid-template-columns:minmax(230px,.9fr) 1.3fr;gap:10px;margin-top:8px}.decision{display:flex;align-items:center;gap:14px;padding:12px 16px;border-radius:11px;border:1px solid}.decision .d-label{display:block;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;opacity:.85}.decision strong{display:block;font-size:23px;font-weight:800;letter-spacing:.02em;line-height:1.15}.decision .d-dir{display:inline-block;margin-top:3px;font-size:11px;font-weight:800;letter-spacing:.1em;padding:2px 8px;border-radius:5px;background:#00000040}.decision.open{color:#dcfce7;border-color:var(--buy);background:linear-gradient(135deg,#22c55e59,#15803d26);box-shadow:0 0 26px #22c55e4d}.decision.open.short{color:#dcfce7}.decision.block{color:#fee2e2;border-color:var(--sell);background:linear-gradient(135deg,#ef444452,#7f1d1d26);box-shadow:0 0 26px #ef444447}.decision.wait{color:#fef3c7;border-color:var(--hold);background:linear-gradient(135deg,#f59e0b4d,#78350f26);box-shadow:0 0 24px #f59e0b38}.decision.none{color:var(--text-2);border-color:var(--line-2);background:#0b102080}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line-2);border-radius:11px;background:#0b102073}.metric{padding:9px 10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-left:1px solid var(--line);text-align:center}.metric:first-child{border-left:0}.metric span{font-size:10.5px;color:var(--muted);letter-spacing:.04em}.metric b{font-size:15px;font-weight:800;display:inline-flex;align-items:center;gap:4px}.metric small{font-size:10px;color:var(--muted);font-family:var(--mono)}.meter{display:block;width:80%;height:4px;border-radius:4px;background:#94a3b82e;overflow:hidden}.meter em{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--buy))}.rationale{margin-top:8px;padding:7px 12px;border-radius:9px;background:#0b102066;border:1px solid var(--line)}.r-head{font-size:10.5px;color:var(--accent);font-weight:700;letter-spacing:.1em;text-transform:uppercase}.rationale ul{margin:3px 0 0;padding-left:16px;font-size:11.5px;color:var(--text-2);line-height:1.5}.rationale li.blk{color:#fca5a5;list-style:none;margin-left:-16px;display:flex;align-items:center;gap:5px}.sr{margin-top:8px;border:1px solid rgba(56,189,248,.25);border-radius:10px;overflow:hidden}.sr-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:7px 12px;background:linear-gradient(90deg,rgba(56,189,248,.14),transparent);border-bottom:1px solid var(--line)}.sr-head span{font-weight:800;text-transform:uppercase;letter-spacing:.06em;font-size:12px}.sr-head small{color:var(--muted);font-size:10.5px}.srt th,.srt td{text-align:right;font-family:var(--mono);font-size:12px;padding:5px 8px}.srt thead th{font-family:var(--font);background:#121a2b}.srt th:first-child,.srt tbody th{text-align:left}.srt tbody th{color:var(--text);font-weight:700;position:static;background:transparent;font-size:12px;letter-spacing:0;text-transform:none;border-bottom:1px solid var(--line)}.srt td.sup{color:#86efac;background:#22c55e0f}.srt td.piv{color:#fcd34d;background:#f59e0b14}.srt td.res{color:#fca5a5;background:#ef444412}.srt td.near{outline:1px solid var(--accent);outline-offset:-2px;box-shadow:0 0 10px #38bdf859 inset}.srt td.ctime{color:var(--muted);font-size:10.5px;font-family:var(--font);white-space:nowrap}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px;padding-top:10px}fieldset{border:1px solid var(--line-2);border-radius:10px;padding:10px 14px 14px;margin:0;min-width:0}legend{padding:0 6px;color:var(--accent);font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:11.5px}.field{display:flex;flex-direction:column;gap:4px;margin-top:10px;min-width:0}.field>span{font-size:11.5px;color:var(--text-2);font-weight:600}.field small{color:var(--muted);font-size:10.5px}.field input,.field select,.pair input{height:32px;padding:0 10px;border-radius:7px;background:#0b1020cc;border:1px solid var(--line-2);width:100%;min-width:0}.field input:focus,.field select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #38bdf826}.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pair{display:grid;grid-template-columns:1fr 1fr;gap:6px}.pair.three{grid-template-columns:1fr 1fr 1fr}.src-status{margin-top:12px;padding:10px;border-radius:8px;background:#0b102080;font-size:11.5px;color:var(--text-2);line-height:1.6}.src-status ul{margin:4px 0 0;padding-left:16px;color:var(--muted)}.note{color:var(--muted);font-size:11.5px;line-height:1.5}.note code{color:var(--accent)}.btn-row{display:flex;gap:8px}.btn{height:32px;padding:0 14px;border-radius:8px;cursor:pointer;font-weight:600;border:1px solid var(--line-2);background:transparent}.btn:disabled{opacity:.4;cursor:default}.btn.primary{background:var(--accent);color:var(--bg);border-color:var(--accent)}.btn.ghost:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}@media (max-width: 1280px){.nav button span{display:none}.nav button{padding:0 10px}.top-meta .sub{display:none}}@media (max-width: 1100px),(max-height: 680px){.app{height:auto;min-height:100vh;overflow:visible}.grid,.grid.view-signals{grid-template-columns:minmax(0,1fr);grid-template-rows:none;grid-auto-rows:auto}.panel{max-height:none}.panel-body{overflow:visible}.panel-foot{white-space:normal}}@media (max-width: 720px){.topbar{flex-wrap:wrap;height:auto;padding:8px 12px;gap:8px}.brand{border:0;padding:0}.nav{order:3;width:100%;justify-content:space-between}.top-meta{display:none}.grid{padding:8px;gap:8px}.panel-head{flex-wrap:wrap}.panel-body{overflow-x:auto}.decision-top{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(2,1fr)}.metric:nth-child(3){border-left:0}.overall{flex-wrap:wrap}.votes{margin-left:0}.markets th:nth-child(5),.markets td:nth-child(5){display:none}.row2{grid-template-columns:1fr}}
