@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&display=swap";:root{--bg: #0c0c0c;--fg: #d4d4d8;--muted: #71717a;--green: #4ade80;--red: #f87171;--yellow: #facc15;--border: rgba(255, 255, 255, .08)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;overflow:hidden;background:var(--bg);color:var(--fg);font-family:JetBrains Mono,ui-monospace,monospace;font-size:13px;line-height:1.5;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}.pw{height:100vh;display:grid;grid-template-rows:48px 40px 1fr 180px 32px;grid-template-columns:1fr}.pw-header{display:flex;align-items:center;justify-content:space-between;padding:0 16px;border-bottom:1px solid var(--border);gap:16px;overflow:hidden}.pw-header-left{display:flex;align-items:center;gap:12px;flex-shrink:0}.pw-logo{color:var(--green);font-weight:700;font-size:13px;letter-spacing:.05em}.pw-version{color:var(--muted);font-size:11px}.pw-header-center{display:flex;gap:24px;flex-shrink:0}.stat{display:flex;flex-direction:column;align-items:center;gap:0;line-height:1.2}.stat-label{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.stat-value{font-size:12px;color:var(--fg)}.pw-header-right{display:flex;align-items:center;gap:12px;flex-shrink:0}.connection-indicator{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted)}.dot{width:6px;height:6px;border-radius:50%;display:inline-block}.refresh-btn{background:none;border:1px solid var(--border);color:var(--muted);font-family:inherit;font-size:11px;padding:2px 8px;cursor:pointer;transition:color .1s,border-color .1s}.refresh-btn:hover{color:var(--fg);border-color:#fff3}.pw-ticker{border-bottom:1px solid var(--border);overflow:hidden;white-space:nowrap;display:flex;align-items:center;font-size:12px}.ticker-track{display:inline-flex;animation:ticker-scroll 60s linear infinite;will-change:transform}.ticker-track:hover{animation-play-state:paused}.ticker-content{padding-right:0}@keyframes ticker-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.pw-main{display:grid;grid-template-columns:7fr 5fr;overflow:hidden}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;border-bottom:1px solid var(--border);min-height:28px;flex-shrink:0}.panel-title{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:500}.pw-positions{border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.search-input{background:none;border:1px solid var(--border);color:var(--fg);font-family:inherit;font-size:11px;padding:2px 8px;width:120px;outline:none;transition:border-color .1s}.search-input:focus{border-color:var(--green)}.search-input::placeholder{color:var(--muted)}.table-wrap{flex:1;overflow-y:auto;overflow-x:hidden}table{width:100%;border-collapse:collapse}thead{position:sticky;top:0;z-index:1;background:var(--bg)}th{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:500;padding:4px 8px;text-align:left;border-bottom:1px solid var(--border)}.col-num{width:28px;text-align:center}.col-sym{width:56px}.col-name{width:100px}.col-right{text-align:right}.col-spark{width:88px;text-align:right}td{padding:4px 8px;font-size:12px;border-bottom:1px solid rgba(255,255,255,.03);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.data-row{height:28px;cursor:pointer;transition:background .1s}.data-row:hover{background:#ffffff08}.data-row.selected{background:#ffffff0d}.flash-up{animation:flash-green .6s ease-out}.flash-down{animation:flash-red .6s ease-out}@keyframes flash-green{0%{background:#4ade8033}to{background:transparent}}@keyframes flash-red{0%{background:#f8717133}to{background:transparent}}.skeleton-row td{padding:6px 8px}.skeleton-bar{height:12px;background:linear-gradient(90deg,#ffffff08 25%,#ffffff0f,#ffffff08 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.pw-detail{display:flex;flex-direction:column;padding:12px 16px;overflow-y:auto;gap:12px}.detail-price-block{display:flex;flex-direction:column;gap:2px}.detail-symbol{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.detail-price{font-size:clamp(2rem,4vw,3rem);font-weight:600;line-height:1.1}.detail-change{font-size:13px}.detail-sparkline{border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:8px 0}.detail-kv{display:flex;flex-direction:column;gap:4px}.kv-row{display:flex;justify-content:space-between;font-size:12px;padding:2px 0;border-bottom:1px solid rgba(255,255,255,.03)}.kv-key{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.05em}.kv-val{text-align:right}.detail-links{display:flex;gap:8px;padding-top:4px;font-size:11px}.link-item{color:var(--muted);cursor:default;text-decoration:underline;text-underline-offset:2px;transition:color .1s}.link-item:hover{color:var(--fg)}.link-sep{color:var(--muted)}.pw-log{display:flex;flex-direction:column;overflow:hidden;border-top:1px solid var(--border)}.log-count{font-size:10px;color:var(--muted)}.log-content{flex:1;overflow-y:auto;padding:4px 12px;font-size:11px;line-height:1.6}.log-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.log-time{color:var(--muted);margin-right:8px}.log-level{margin-right:8px;font-weight:500}.log-info{color:var(--muted)}.log-ok{color:var(--green)}.log-warn{color:var(--yellow)}.log-err{color:var(--red)}.log-muted{color:var(--muted)}.log-msg{color:var(--fg)}.pw-status{display:flex;align-items:center;justify-content:space-between;padding:0 12px;border-top:1px solid var(--border);font-size:11px;color:var(--muted);overflow:hidden}.status-left,.status-right{display:flex;align-items:center;gap:8px;flex-shrink:0;white-space:nowrap}.status-center{display:flex;align-items:center;flex-shrink:0}.status-sep{color:#ffffff26}.status-hints{color:var(--muted)}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1a}::-webkit-scrollbar-thumb:hover{background:#fff3}
