@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@300;400;500;600;700&display=swap";@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";*{box-sizing:border-box;margin:0;padding:0}.panel-label{background:#111827d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);color:var(--text-bright);text-align:center;padding:10px 12px;font-family:var(--font-ui);font-weight:600;letter-spacing:.5px;font-size:13px}:root{--bg: #0B0F19;--bg-panel: #111827;--bg-row: #1F2937;--bg-hover: #374151;--border: #374151;--border-hi: #4B5563;--text: #9CA3AF;--text-bright:#F3F4F6;--text-dim: #6B7280;--green: #10B981;--green-dim: #059669;--red: #EF4444;--red-dim: #DC2626;--yellow: #F59E0B;--blue: #3B82F6;--cyan: #06B6D4;--magenta: #8B5CF6;--orange: #F97316;--white: #ffffff;--font-ui: "Inter", sans-serif;--font-mono: "JetBrains Mono", "Cascadia Code", "Fira Code", "Consolas", monospace}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);font-size:13px;line-height:1.5;overflow-x:hidden;-webkit-font-smoothing:antialiased}.dashboard-shell{display:flex;width:100vw;height:100vh;padding:16px;gap:24px;overflow:hidden}.dashboard-col{flex:1;min-width:0;display:flex;flex-direction:column;overflow-y:auto}.bot-tabs{display:flex;background:#111827b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);padding:0 16px;gap:8px;position:sticky;top:0;z-index:1000}.tab-btn{background:transparent;border:none;color:var(--text-dim);font-size:14px;font-weight:600;font-family:var(--font-ui);cursor:pointer;padding:12px 24px;border-bottom:2px solid transparent;transition:all .2s ease;letter-spacing:.5px}.tab-btn:hover{color:var(--text-bright);background:#ffffff0d}.tab-btn.active{color:var(--green);border-bottom:2px solid var(--green);background:#10b9810d}.tab-content{display:none!important;flex-direction:column}.tab-content.active{display:flex!important}@media (max-width: 800px){.bot-tabs{position:fixed;bottom:0;left:0;right:0;top:auto;border-top:1px solid var(--border);border-bottom:none;padding:0;gap:0}.tab-btn{flex:1;padding:16px 0;border-bottom:none;border-top:2px solid transparent}.tab-btn.active{border-bottom:none;border-top:2px solid var(--green);background:#10b9811a}.dashboard-shell{padding-bottom:80px}}.panel-label-sticky{position:sticky;top:0;z-index:100}body:after{content:"";position:fixed;top:0;left:0;right:0;bottom:0;pointer-events:none;background:radial-gradient(circle at top right,rgba(16,185,129,.05),transparent 400px),radial-gradient(circle at bottom left,rgba(59,130,246,.05),transparent 600px);z-index:9999}.terminal{min-height:100vh;padding:4px}.terminal-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--border);border-radius:6px;margin-bottom:8px;background:#111827b3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.terminal-title{font-size:14px;font-weight:700;font-family:var(--font-ui);color:var(--text-bright);letter-spacing:1px;text-transform:uppercase;display:flex;align-items:center;gap:6px}.terminal-meta{display:flex;gap:20px;align-items:center;font-size:12px;font-family:var(--font-mono)}.terminal-meta span{color:var(--text-dim)}.terminal-meta .val{color:var(--text-bright);font-weight:500}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%}.status-dot.on{background:var(--green);box-shadow:0 0 6px var(--green);animation:blink 2s infinite}.status-dot.off{background:var(--red);box-shadow:0 0 6px var(--red)}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.grid-main{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.panel{background:var(--bg-panel);border:1px solid var(--border);border-radius:6px;overflow:hidden;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;display:flex;flex-direction:column;transition:border-color .2s ease,box-shadow .2s ease}.panel:hover{border-color:var(--border-hi)}.panel-head{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--bg-row);border-bottom:1px solid var(--border);font-size:11px;font-weight:600;font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.5px;color:var(--text-bright)}.panel-head .tag{font-size:10px;padding:3px 8px;border-radius:4px;font-weight:500;font-family:var(--font-mono);background:#ffffff0d;border:1px solid var(--border)}.panel-body{padding:14px;flex:1}.span-2{grid-column:span 2}.span-3{grid-column:span 3}.c-green{color:var(--green)!important}.c-red{color:var(--red)!important}.c-yellow{color:var(--yellow)!important}.c-blue{color:var(--blue)!important}.c-cyan{color:var(--cyan)!important}.c-mag{color:var(--magenta)!important}.c-orange{color:var(--orange)!important}.c-dim{color:var(--text-dim)!important}.c-white{color:var(--white)!important}.c-bright{color:var(--text-bright)!important}.react-grid-item>div>.panel,.react-grid-item>.panel{height:100%;margin:0}.big-num{font-size:24px;font-weight:700;font-family:var(--font-mono);font-variant-numeric:tabular-nums;line-height:1.2}.medium-num{font-size:15px;font-weight:600;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:4px}.stat-cell{padding:8px 10px;background:var(--bg-row);border-radius:4px;border:1px solid transparent;transition:border-color .2s ease}.stat-cell:hover{border-color:var(--border-hi)}.stat-cell .label{font-size:10px;color:var(--text-dim);font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.stat-cell .value{font-size:14px;font-weight:600;font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--text-bright)}.ind-row{display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px solid var(--border);align-items:center}.ind-row:last-child{border-bottom:none}.ind-row .name{color:var(--text-dim);flex:1;font-family:var(--font-ui);font-size:12px}.ind-row .val{text-align:right;font-variant-numeric:tabular-nums;min-width:60px;font-family:var(--font-mono);font-size:12px;font-weight:500}.bar-wrap{height:6px;background:var(--bg-row);border-radius:3px;overflow:hidden;margin-top:4px}.bar-fill{height:100%;transition:width .5s ease}.bar-fill.green{background:var(--green)}.bar-fill.yellow{background:var(--yellow)}.bar-fill.red{background:var(--red)}.bar-fill.blue{background:var(--blue)}.trade-table-wrap{max-height:280px;overflow-y:auto;border-radius:4px;border:1px solid var(--border)}.trade-table{width:100%;border-collapse:collapse;font-size:12px}.trade-table th{text-align:left;padding:8px 10px;color:var(--text-dim);font-weight:600;font-family:var(--font-ui);text-transform:uppercase;font-size:10px;letter-spacing:.5px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg-row);z-index:10}.trade-table td{padding:8px 10px;border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums;font-family:var(--font-mono)}.trade-table tr:hover td{background:var(--bg-hover);transition:background .15s ease}.chart-wrap{width:100%;height:140px;position:relative;border-radius:4px;overflow:hidden}.chart-wrap svg{width:100%;height:100%;display:block}.chart-labels{display:flex;justify-content:space-between;font-size:10px;font-family:var(--font-ui);color:var(--text-dim);padding:6px 0}.event-log{max-height:260px;overflow-y:auto;border:1px solid var(--border);border-radius:4px;padding:4px;background:#0003}.event-line{padding:3px 6px;font-size:11px;font-family:var(--font-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:2px}.event-line:hover{background:var(--bg-hover)}.event-line .ts{color:var(--text-dim);margin-right:8px}.event-line.ev-price .msg{color:var(--text)}.event-line.ev-decision .msg{color:var(--cyan)}.event-line.ev-trade .msg{color:var(--green)}.event-line.ev-error .msg{color:var(--red)}.event-line.ev-vol_state .msg{color:var(--magenta)}.event-line.ev-risk .msg{color:var(--orange)}.event-line.ev-tuning .msg,.event-line.ev-lesson .msg{color:var(--yellow)}.vol-badge{display:inline-block;padding:2px 8px;font-size:10px;font-family:var(--font-ui);font-weight:600;border-radius:12px;letter-spacing:.5px}.vol-badge.IDLE{background:#6b72801a;color:var(--text-bright);border:1px solid var(--border-hi)}.vol-badge.COMPRESSED{background:#3b82f61a;color:var(--blue);border:1px solid rgba(59,130,246,.3)}.vol-badge.ARMED{background:#f59e0b1a;color:var(--yellow);border:1px solid rgba(245,158,11,.3)}.vol-badge.TRIGGERED_SOFT{background:#8b5cf61a;color:var(--magenta);border:1px solid rgba(139,92,246,.3)}.vol-badge.TRIGGERED{background:#10b9811a;color:var(--green);border:1px solid rgba(16,185,129,.3)}.action-tag{display:inline-block;padding:3px 10px;font-weight:600;font-size:11px;font-family:var(--font-ui);letter-spacing:.5px;border-radius:4px}.action-tag.open_long{color:var(--green);background:#10b9811a;border:1px solid rgba(16,185,129,.2)}.action-tag.open_short{color:var(--red);background:#ef44441a;border:1px solid rgba(239,68,68,.2)}.action-tag.close{color:var(--orange);background:#f973161a;border:1px solid rgba(249,115,22,.2)}.action-tag.hold{color:var(--text-dim);background:#6b72801a;border:1px solid var(--border)}@keyframes glow-green{0%,to{box-shadow:inset 0 0 0 1px #10b98133}50%{box-shadow:inset 0 0 0 1px #10b98180,0 0 16px #10b9811a}}@keyframes glow-red{0%,to{box-shadow:inset 0 0 0 1px #ef444433}50%{box-shadow:inset 0 0 0 1px #ef444480,0 0 16px #ef44441a}}.pos-long{border-color:#10b9814d;animation:glow-green 4s infinite}.pos-short{border-color:#ef44444d;animation:glow-red 4s infinite}.pos-flat{border-color:var(--border)}.factors{list-style:none;margin-top:6px;padding:6px;background:#00000026;border-radius:4px}.factors li{padding:3px 0;font-size:11px;font-family:var(--font-mono);color:var(--text-dim)}.factors li:first-child{color:var(--text-bright)}.kv{display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px dashed var(--border)}.kv:last-child{border-bottom:none}.kv .k{color:var(--text-dim);font-size:12px;font-family:var(--font-ui)}.kv .v{color:var(--text-bright);font-variant-numeric:tabular-nums;font-family:var(--font-mono)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-hi);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}@media (max-width: 1400px){.grid-main{grid-template-columns:repeat(2,1fr)}.panel.span-2,.panel.span-3{grid-column:span 2}}@media (max-width: 800px){.grid-main{grid-template-columns:1fr}.panel.span-2,.panel.span-3{grid-column:span 1}.terminal{padding:2px}.terminal-header{flex-direction:column;align-items:flex-start;gap:6px}.terminal-title{font-size:12px;letter-spacing:1px}.terminal-meta{width:100%;flex-wrap:wrap;gap:8px}.trade-table-wrap{overflow-x:auto}.grid-main{grid-template-columns:1fr 1fr}.span-3{grid-column:span 2}}@media (max-width: 600px){body{font-size:11px}.panel-head{font-size:9px;padding:4px 6px}.panel-body{padding:5px 6px}.big-num{font-size:18px}.event-line{white-space:normal}.trade-table th:nth-child(3),.trade-table th:nth-child(4),.trade-table th:nth-child(5),.trade-table th:nth-child(8),.trade-table td:nth-child(3),.trade-table td:nth-child(4),.trade-table td:nth-child(5),.trade-table td:nth-child(8){display:none}}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.toast{border-radius:2px}.toast-success,.toast-error,.toast-warning,.toast-info{border-left-width:4px!important}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px}.modal-content{background:var(--bg-panel);border:1px solid var(--green);box-shadow:0 0 20px #00ff4126;width:100%;max-width:650px;max-height:90vh;display:flex;flex-direction:column}.modal-header{padding:12px 16px;border-bottom:1px solid var(--green);background:linear-gradient(180deg,#1a2a1a,#0a0a0a);display:flex;justify-content:space-between;align-items:center}.modal-body{padding:16px;overflow-y:auto;min-height:300px}.analysis-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.btn-close{background:transparent;border:none;color:var(--text-dim);font-size:24px;cursor:pointer;line-height:1;transition:color .2s ease}.btn-close:hover{color:var(--text-bright)}@media (max-width: 600px){.analysis-grid{grid-template-columns:1fr}.modal-overlay{padding:10px}}
