:root{--bg:#0a1320;--panel:#0f1b2d;--panel-2:#12233a;--line:#1f314a;--text:#e6f1ff;--muted:#93a6c2;--accent:#14d4a2;--pos:#34d07f;--neg:#ff6b6b;--warn:#f7a600;--bin:#f0b90b;--byb:#f7a600;--bit:#2d6dff;--gat:#17b5a0}*{box-sizing:border-box}html,body{width:100%;margin:0}body{color:var(--text);font-family:Space Grotesk,IBM Plex Sans,Segoe UI,sans-serif;background:radial-gradient(circle at top,#0f2d2c,var(--bg));overflow-x:hidden}.app{width:min(100%,1920px);margin:0 auto;padding:clamp(10px,1.2vw,18px)}.hero{background:linear-gradient(120deg,#10443fd9,#0a1826d9);border:1px solid #1b3640;border-radius:16px;padding:16px 18px;display:flex;gap:16px;flex-wrap:wrap;align-items:center;justify-content:space-between;box-shadow:0 10px 30px #0000004d}.title{font-size:20px;font-weight:600;letter-spacing:.3px;display:inline-flex;align-items:center;gap:10px}.wave-logo{display:inline-flex;align-items:center;justify-content:center;flex:0 0 28px}.wave-logo-img{width:28px;height:28px;display:block;border-radius:9px;box-shadow:0 6px 18px #00000059}.title-text{line-height:1.1}.subtitle{font-size:12px;color:var(--muted);margin-top:4px}.filters{display:flex;gap:10px;flex-wrap:wrap}.filter{background:#0c172399;border:1px solid var(--line);border-radius:12px;padding:8px 10px;display:flex;flex-direction:column;gap:4px;min-width:140px}.filter label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.6px}.filter input,.filter select{background:#0d1a2a;border:1px solid #1c2b42;color:var(--text);padding:6px 8px;border-radius:8px;font-size:13px;outline:none}.filter .link-btn{text-decoration:none;color:var(--text);background:#0d1a2a;border:1px solid #1c2b42;padding:6px 8px;border-radius:8px;font-size:13px;display:inline-flex;align-items:center;justify-content:center;min-height:31px}.meta-bar{margin-top:12px;display:flex;gap:14px;flex-wrap:wrap;color:var(--muted);font-size:12px}.table-wrap{margin-top:14px;background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;max-height:calc(100vh - 220px)}.table-header-wrap{flex:0 0 auto;overflow:hidden}.table-header-wrap table{width:100%;border-collapse:collapse;table-layout:fixed}.table-body-wrap{flex:1 1 auto;overflow-y:auto;overflow-x:hidden;position:relative}.table-body-wrap table{width:100%;border-collapse:collapse;table-layout:fixed}.vs-spacer{width:100%}.vs-content{position:relative;width:100%}.table-wrap table{width:100%;border-collapse:collapse;table-layout:fixed}thead th{text-align:left;font-size:11px;color:var(--muted);padding:12px;border-bottom:1px solid var(--line);letter-spacing:.4px;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}tbody td{padding:12px;border-bottom:1px solid #16263d;font-size:13px;vertical-align:middle;height:96px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}tbody tr{height:96px;box-sizing:border-box}tbody tr:hover{background:#14233799}.token{font-weight:600;text-align:center;overflow:hidden}.token .token-link{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.sortable:after{content:" ⇅";color:var(--muted);font-weight:400}.sortable.asc:after{content:" ↑";color:var(--text)}.sortable.desc:after{content:" ↓";color:var(--text)}.spread{font-weight:600}.pos{color:var(--pos)}.neg{color:var(--neg)}.ex{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;border:1px solid rgba(255,255,255,.1);margin-right:6px}.ex-link{display:inline-flex;align-items:center;text-decoration:none;color:inherit}.ex-link:hover .ex{filter:brightness(1.08)}.ex-name-link{color:inherit;text-decoration:none;border-bottom:1px dotted rgba(147,166,194,.55)}.ex-name-link:hover{color:var(--text);border-bottom-color:#e6f1ffb3}.ex .ex-icon-img{width:12px;height:12px;display:block;flex:0 0 12px}.ex-binance{color:#0d0d0d;border-color:#f0b90b8c;background:linear-gradient(135deg,#f7d047 0%,var(--bin) 58%,#8e6c05 100%)}.ex-bybit{color:#f8fbff;border-color:#f7a6008c;background:linear-gradient(135deg,#0d1423 0%,#111a2f 48%,var(--byb) 100%)}.ex-bitget{color:#dce8ff;border-color:#2d6dff94;background:linear-gradient(135deg,#070d17 0%,#111d34 45%,var(--bit) 100%)}.ex-bitfinex{color:#d9fff6;border-color:#03ca9b94;background:linear-gradient(135deg,#061713,#0b332a 48%,#03ca9b)}.ex-coinw{color:#eeeaff;border-color:#4f29ff9e;background:linear-gradient(135deg,#0b071d,#1b0f47 48%,#4f29ff)}.ex-toobit{color:#eef4ff;border-color:#2a64fbad;background:linear-gradient(135deg,#04102d,#092566 48%,#2a64fb)}.ex-kraken{color:#f4efff;border-color:#7132f5ad;background:linear-gradient(135deg,#100625,#29105c 48%,#7132f5)}.ex-gate,.ex-gateio{color:#e0fff6;border-color:#17b5a08c;background:linear-gradient(135deg,#0a1a1e 0%,#0f2e30 48%,var(--gat) 100%)}.ex-hyperliquid{color:#d0ffe8;border-color:#41c9b48c;background:linear-gradient(135deg,#071a17,#0f2e28 48%,#41c9b4)}.ex-bingx{color:#dce8ff;border-color:#2354e68c;background:linear-gradient(135deg,#070d1a,#0f1d3a 48%,#2354e6)}.ex-okx{color:#f0f0f0;border-color:#ffffff59;background:linear-gradient(135deg,#0d0d0d,#1a1a1a 48%,#333)}.ex-aster{color:#f8e0ff;border-color:#e040fb8c;background:linear-gradient(135deg,#140718,#1f0d2e 48%,#e040fb)}.ex-mexc{color:#e0ebff;border-color:#1972f58c;background:linear-gradient(135deg,#060c1a,#0d1a36 48%,#1972f5)}.ex-blofin{color:#fff1e6;border-color:#ff7a1a8c;background:linear-gradient(135deg,#1a0d04,#33190a 48%,#ff7a1a)}.filter-exchanges{min-width:auto}.ex-chips{display:flex;gap:4px;flex-wrap:wrap}.ex-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:8px;font-size:12px;font-weight:600;color:var(--muted);background:#0c172399;border:1px solid var(--line);cursor:pointer;transition:all .15s ease;font-family:inherit}.ex-chip:hover{border-color:#fff3}.ex-chip.active{color:var(--text);background:#14d4a21f;border-color:var(--accent)}.ex-chip-icon{width:14px;height:14px;display:block;flex:0 0 14px;border-radius:3px}.ex-chip:not(.active) .ex-chip-icon{opacity:.4}.price{font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.empty{padding:18px;text-align:center;color:var(--muted)}.cell{display:flex;flex-direction:column;gap:6px;min-height:72px;justify-content:center}.cell .row{display:flex;align-items:center;gap:6px;font-weight:600;min-height:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cell .row .ex-link{min-width:0;overflow:hidden}.cell .row .ex{overflow:hidden;text-overflow:ellipsis}.cell .row .price{margin-left:auto;flex:0 0 auto;font-variant-numeric:tabular-nums}td[data-label="Buy / Sell"] .cell .row{display:grid;grid-template-columns:minmax(0,max-content) minmax(0,1fr) max-content;align-items:center}td[data-label="Buy / Sell"] .cell .row .price{margin-left:0;text-align:right}td[data-label="Buy / Sell"] .cell .row .ex-link+.price{grid-column:3}.cell .sub{color:var(--muted);font-size:12px}.pill{display:inline-flex;align-items:center;justify-content:center;padding:4px 10px;border-radius:999px;font-weight:600;font-size:12px;background:#ffffff0f;border:1px solid rgba(255,255,255,.08);min-width:82px;font-variant-numeric:tabular-nums}.pill.warn{color:var(--warn);border-color:#f7a60073;background:#f7a6001f}.pill.neg{color:var(--neg);border-color:#ff6b6b73;background:#ff6b6b24}.cell .sub.warn{color:var(--warn)}.cell .sub.neg{color:var(--neg)}.token-link{color:inherit;text-decoration:none}.token-link:hover{text-decoration:underline}.alias-tag{font-size:10px;color:var(--muted);opacity:.7;margin-left:4px;max-width:72px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:0 1 auto;min-width:0}@media(min-width:981px){thead th:nth-child(1),tbody td:nth-child(1){width:8%}thead th:nth-child(2),tbody td:nth-child(2){width:13%}thead th:nth-child(3),tbody td:nth-child(3){width:7%}thead th:nth-child(4),tbody td:nth-child(4){width:7%}thead th:nth-child(5),tbody td:nth-child(5){width:9%}thead th:nth-child(6),tbody td:nth-child(6){width:10%}thead th:nth-child(7),tbody td:nth-child(7){width:6%}thead th:nth-child(8),tbody td:nth-child(8){width:5%}thead th:nth-child(9),tbody td:nth-child(9){width:5%}thead th:nth-child(10),tbody td:nth-child(10){width:6%}thead th:nth-child(11),tbody td:nth-child(11){width:6%}thead th:nth-child(12),tbody td:nth-child(12){width:6%}thead th:nth-child(13),tbody td:nth-child(13){width:6%}thead th:nth-child(14),tbody td:nth-child(14){width:6%}}@media(max-width:1500px)and (min-width:981px){.hero{padding:14px;gap:12px}.filter{min-width:128px}thead th{padding:10px 8px;font-size:10px}tbody td{padding:10px 8px;font-size:12px;height:90px}tbody tr{height:90px}.cell{min-height:66px}.cell .sub{font-size:11px}.pill{min-width:76px;padding:3px 8px;font-size:11px}}@media(max-width:1220px)and (min-width:981px){.title{font-size:18px}.subtitle{font-size:11px}.filter{min-width:118px}}@media(max-width:980px){.hero{flex-direction:column;align-items:flex-start}.filters{width:100%}.filter{flex:1;min-width:140px}.table-wrap{max-height:none;display:block;overflow:auto}.table-header-wrap{display:none}.table-body-wrap{overflow:visible}.vs-spacer{height:auto!important}table{table-layout:auto}thead{display:none}tbody tr{display:block;padding:10px 12px;position:static!important;top:auto!important;width:auto!important}tbody tr{height:auto}tbody td{display:flex;justify-content:space-between;gap:12px}tbody td{height:auto;white-space:normal;overflow:visible;text-overflow:clip}tbody td:before{content:attr(data-label);color:var(--muted)}tbody td .cell{align-items:flex-end;text-align:right}}.detail-header{display:flex;align-items:center;gap:16px;margin-bottom:16px;flex-wrap:wrap}.detail-header h2{margin:0;font-size:22px;font-weight:700}.back-link{color:var(--accent);text-decoration:none;font-size:14px;font-weight:600}.back-link:hover{text-decoration:underline}.detail-pair{display:flex;align-items:center;gap:8px}.detail-badge{padding:4px 14px;border-radius:8px;font-size:13px;font-weight:600;border:2px solid;background:#ffffff0a}.detail-arrow{color:var(--muted);font-size:18px}.detail-status{color:var(--muted);font-size:12px;margin-left:auto}.detail-error{padding:40px;text-align:center;color:var(--muted)}.detail-error a{color:var(--accent)}.detail-spread-bar{display:flex;gap:16px;flex-wrap:wrap;background:linear-gradient(120deg,#10443f99,#0a182699);border:1px solid #1b3640;border-radius:12px;padding:14px 18px;margin-bottom:16px}.spread-metric{display:flex;flex-direction:column;gap:4px;min-width:120px}.spread-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.spread-value{font-size:18px;font-weight:700;font-variant-numeric:tabular-nums}.detail-legs{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.leg-card{background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--accent);border-radius:12px;padding:14px}.leg-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.leg-label{font-size:12px;font-weight:700;text-transform:uppercase;color:var(--muted);letter-spacing:.6px}.leg-exchange{color:var(--text);text-decoration:none;font-weight:600;font-size:14px}.leg-exchange:hover{text-decoration:underline}.leg-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.leg-grid>div{display:flex;justify-content:space-between;align-items:center;padding:4px 0;border-bottom:1px solid rgba(31,49,74,.3)}.lg-label{font-size:12px;color:var(--muted)}.lg-value{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}.detail-books{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.detail-book{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px}.detail-book h3{margin:0 0 10px;font-size:14px;font-weight:600}.mini-ob{font-size:12px;font-variant-numeric:tabular-nums}.mini-ob-empty{padding:20px;text-align:center;color:var(--muted)}.ob-head{display:flex;gap:8px;padding:4px 8px;color:var(--muted);font-size:11px;text-transform:uppercase}.ob-head span{flex:1}.ob-row{display:flex;gap:8px;padding:2px 8px;position:relative}.ob-row span{flex:1;position:relative;z-index:1}.ob-bar{position:absolute;top:0;right:0;height:100%;opacity:.12;border-radius:2px}.ob-row.ask .ob-bar{background:var(--neg)}.ob-row.bid .ob-bar{background:var(--pos)}.ob-row.ask span:first-child{color:var(--neg)}.ob-row.bid span:first-child{color:var(--pos)}.ob-spread-line{text-align:center;padding:6px;color:var(--muted);font-size:11px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:4px 0}@media(max-width:768px){.detail-legs,.detail-books{grid-template-columns:1fr}}.pos-app{max-width:min(100%,2400px);width:100%;margin:0 auto;padding:clamp(10px,1.2vw,18px);box-sizing:border-box}.pos-hero{background:linear-gradient(120deg,#10443fd9,#0a1826d9);border:1px solid #1b3640;border-radius:16px;padding:16px 20px;display:flex;gap:16px;flex-wrap:wrap;align-items:center;justify-content:space-between;box-shadow:0 10px 30px #0000004d;margin-bottom:14px}.pos-title{display:flex;align-items:center;gap:10px}.pos-title-text{font-size:20px;font-weight:600;letter-spacing:.3px}.pos-count{background:#14d4a226;color:var(--accent, #14d4a2);padding:2px 10px;border-radius:12px;font-size:14px;font-weight:600}.pos-stats{display:flex;gap:14px;flex-wrap:wrap}.pos-stat{background:#0c172399;border:1px solid var(--line, #1f314a);border-radius:10px;padding:6px 12px;display:flex;flex-direction:column;align-items:center;min-width:80px}.pos-stat-total{border-color:var(--accent, #14d4a2)}.pos-stat-label{font-size:10px;color:var(--muted, #93a6c2);text-transform:uppercase;letter-spacing:.5px}.pos-stat span:last-child{font-size:14px;font-weight:600;font-family:Space Mono,IBM Plex Mono,monospace}.pos-nav{display:flex;gap:10px}.pos-nav a{color:var(--accent, #14d4a2);text-decoration:none;font-size:13px;padding:4px 12px;border:1px solid var(--line, #1f314a);border-radius:8px;transition:background .15s}.pos-nav a:hover{background:#14d4a21a}.pos-toast{padding:8px 14px;background:var(--panel-2, #12233a);border:1px solid var(--line, #1f314a);border-radius:8px;margin-bottom:12px;font-size:13px;color:var(--text, #e6f1ff);animation:fadeIn .2s}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.pos-empty{text-align:center;padding:60px 20px;color:var(--muted, #93a6c2);font-size:16px}.pos-table-wrap{background:var(--panel, #0f1b2d);overflow-x:auto;overflow-y:visible;max-width:100%;border-radius:10px}.pos-table{border-collapse:collapse;font-size:clamp(10px,.7vw,12px);min-width:max-content;white-space:nowrap}.pos-table th{padding:6px 5px;text-align:left;font-weight:500;font-size:10px;text-transform:uppercase;letter-spacing:.3px;color:var(--muted, #93a6c2);border-bottom:1px solid var(--line, #1f314a);white-space:nowrap;position:sticky;top:0;background:var(--panel, #0f1b2d)}.pos-table th.r,.pos-table td.r{text-align:right}.pos-app .pos-table td{padding:clamp(12px,1vw,18px) clamp(6px,.5vw,10px)!important;border-bottom:1px solid rgba(31,49,74,.4);white-space:nowrap;vertical-align:middle;height:auto!important;overflow:visible!important;text-overflow:unset!important;font-size:clamp(11px,.75vw,13px)!important;width:auto!important;color:var(--text, #e6f1ff)}.pos-app .pos-table tr{height:auto!important}.pos-app .pos-table thead th{width:auto!important;height:auto!important;padding:clamp(8px,.55vw,11px) clamp(6px,.5vw,10px)!important;font-size:clamp(10px,.7vw,12px)!important}.pos-table .ex-badge{color:var(--text, #e6f1ff)}.pos-table th:last-child,.pos-table td:last-child{position:sticky;right:0;background:var(--panel, #0f1b2d);box-shadow:-2px 0 0 var(--line, #1f314a);z-index:2}.pos-table tr:hover td:last-child{background:#0f2035}.pos-app .pos-table th:nth-child(1),.pos-app .pos-table td:nth-child(1){position:sticky;left:0;background:var(--panel, #0f1b2d);z-index:2;min-width:90px!important}.pos-app .pos-table th:nth-child(2),.pos-app .pos-table td:nth-child(2){position:sticky;left:90px;background:var(--panel, #0f1b2d);z-index:2;min-width:110px!important}.pos-app .pos-table th:nth-child(3),.pos-app .pos-table td:nth-child(3){position:sticky;left:200px;background:var(--panel, #0f1b2d);z-index:2;min-width:95px!important}.pos-app .pos-table th:nth-child(4),.pos-app .pos-table td:nth-child(4){position:sticky;left:295px;background:var(--panel, #0f1b2d);z-index:2;min-width:95px!important;box-shadow:2px 0 0 var(--line, #1f314a)}.pos-app .pos-table tr:hover td:nth-child(1),.pos-app .pos-table tr:hover td:nth-child(2),.pos-app .pos-table tr:hover td:nth-child(3),.pos-app .pos-table tr:hover td:nth-child(4){background:#0f2035}.pos-table tbody tr:hover{background:#14d4a20a}.pos-table .mono{font-family:Space Mono,IBM Plex Mono,monospace;font-size:clamp(10px,.7vw,12px)}.pos-symbol a{color:var(--text, #e6f1ff);font-weight:600;text-decoration:none;font-size:clamp(11px,.75vw,13px)}.pos-symbol a:hover{color:var(--accent, #14d4a2)}.pos-server{white-space:nowrap}.server-badge{display:inline-block;padding:2px 6px;border-radius:4px;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;border:1px solid}.server-tokyo{background:#ff6b571a;color:#ff8a72;border-color:#ff6b5766}.server-sg{background:#4ec4771a;color:#79e3a3;border-color:#4ec47766}.server-local{background:#adadad1a;color:#cbcbcb;border-color:#adadad66}.server-unknown{background:#7878780d;color:#888;border-color:#7878784d}.closing-badge{display:inline-block;margin-left:6px;padding:1px 5px;border-radius:4px;font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#ffb86c;border:1px solid rgba(255,184,108,.4);background:#ffb86c14}.ex-badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border:1px solid;border-radius:6px;font-size:12px;font-weight:500;color:var(--text, #e6f1ff);text-decoration:none;transition:background .15s}.ex-badge:hover{background:#ffffff0d}.ex-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.pos-app .pos-table td.val-pos,.pos-app .pos-table .val-pos{color:#3fe58a!important;font-weight:700}.pos-app .pos-table td.val-neg,.pos-app .pos-table .val-neg{color:#ff8080!important;font-weight:700}.pos-app .pos-table td.val-warn,.pos-app .pos-table .val-warn{color:#ffc857!important;font-weight:700}.pos-hero .val-pos{color:#3fe58a;font-weight:700}.pos-hero .val-neg{color:#ff8080;font-weight:700}.pos-actions{display:flex;flex-direction:row;gap:3px;flex-shrink:0}.btn-force-close,.btn-close-bl,.btn-bl{padding:3px 6px;border:none;border-radius:3px;cursor:pointer;font-size:10px;font-weight:600;white-space:nowrap;transition:all .15s;flex-shrink:0;text-align:center}.btn-force-close{background:#da3633;color:#fff}.btn-force-close:hover{background:#f85149;box-shadow:0 4px 14px #f8514980}.btn-close-bl{background:#d29922;color:#000}.btn-close-bl:hover{background:#e6ac00}.btn-bl{background:#30363d;color:#e6edf3;border:1px solid #484f58}.btn-bl:hover{background:#484f58;color:#fff}.pos-bl-section{margin-top:18px;padding:14px 16px;background:var(--panel, #0f1b2d);border:1px solid var(--line, #1f314a);border-radius:12px}.pos-bl-title{font-size:13px;color:var(--muted, #93a6c2);margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.pos-bl-tags{display:flex;gap:6px;flex-wrap:wrap}.pos-bl-tag{padding:3px 10px;background:#9e6a0333;border:1px solid rgba(158,106,3,.4);color:#f0b90b;border-radius:6px;font-size:12px;font-family:Space Mono,IBM Plex Mono,monospace}.pos-mode{display:inline-block;padding:2px 8px;border-radius:6px;font-size:12px;font-family:Space Mono,IBM Plex Mono,monospace;border:1px solid transparent;white-space:nowrap}.pos-mode.mode-bad{background:#ff4e4e1f;color:#ff6b6b;border-color:#ff4e4e59}.pos-mode.mode-warn{background:#ffaa001f;color:#fc5;border-color:#ffaa0059}.pos-mode.mode-good{background:#2ecc711f;color:#63e2a0;border-color:#2ecc7159}.pos-mode.mode-normal{background:#64b4ff14;color:#8bb8ef;border-color:#64b4ff40}.pos-mode.mode-muted{background:#c8c8c80f;color:#93a6c2;border-color:#c8c8c82e}.exit-prog-cell{padding:0 6px!important;vertical-align:middle;overflow:visible!important}.exit-prog-wrap{position:relative;width:170px;display:flex;flex-direction:column;gap:2px;cursor:default}.exit-prog-bar-row{display:flex;align-items:center;gap:5px}.exit-prog-track{position:relative;flex:1;height:8px;background:#1f314acc;border-radius:4px;box-shadow:inset 0 1px 3px #0006;overflow:visible}.exit-prog-track.exit-prog-na{background:#1f314a66}.exit-prog-track.exit-prog-thin{box-shadow:inset 0 1px 3px #0006,0 0 0 1px #ffc85780;background-image:repeating-linear-gradient(45deg,rgba(255,200,87,.14) 0,rgba(255,200,87,.14) 4px,transparent 4px,transparent 8px)}.exit-prog-fill{position:absolute;left:0;top:0;height:100%;border-radius:4px;transition:width .5s ease,background .5s ease;min-width:0}.exit-prog-marker{position:absolute;top:-2px;bottom:-2px;width:2px;background:#ffc857b3;border-radius:1px;transform:translate(-50%);box-shadow:0 0 4px #ffc85780}.exit-prog-marker-hist{width:0;background:transparent;border-left:2px dotted rgba(122,162,247,.75);box-shadow:none;border-radius:0}.exit-prog-marker-cap{width:0;background:transparent;border-left:2px dashed rgba(255,200,87,.45);box-shadow:none;border-radius:0}.exit-prog-label{font-family:Space Mono,IBM Plex Mono,monospace;font-size:11px;font-weight:600;min-width:30px;text-align:right;transition:color .5s ease;flex-shrink:0}.exit-prog-gap{font-family:Space Mono,IBM Plex Mono,monospace;font-size:10px;color:var(--muted, #93a6c2);line-height:1;padding-left:1px;display:flex;align-items:center;gap:6px}.exit-prog-thin-badge{color:#ffc857;font-weight:700;white-space:nowrap}.exit-prog-muted{color:var(--muted, #93a6c2)}.exit-prog-tooltip{position:fixed;z-index:9999;background:var(--panel-2, #12233a);border:1px solid var(--line, #1f314a);border-radius:8px;padding:8px 11px;min-width:160px;box-shadow:0 4px 18px #0000008c;pointer-events:none;animation:exitProgTipIn .12s ease-out}@keyframes exitProgTipIn{0%{opacity:0}to{opacity:1}}.exit-prog-tooltip-row{display:flex;justify-content:space-between;gap:14px;padding:2px 0}.exit-prog-tooltip-label{font-family:Space Mono,IBM Plex Mono,monospace;font-size:10px;color:var(--muted, #93a6c2);text-transform:uppercase;letter-spacing:.3px;white-space:nowrap}.exit-prog-tooltip-val{font-family:Space Mono,IBM Plex Mono,monospace;font-size:11px;color:var(--text, #e6f1ff);font-weight:600;white-space:nowrap}.inc-app{max-width:min(100%,2400px);margin:0 auto;padding:clamp(10px,1.2vw,18px)}.inc-hero{background:linear-gradient(120deg,#10443fd9,#0a1826d9);border:1px solid #1b3640;border-radius:16px;padding:16px 20px;display:flex;gap:16px;flex-wrap:wrap;align-items:center;justify-content:space-between;box-shadow:0 10px 30px #0000004d;margin-bottom:14px}.inc-hero-title{font-size:20px;font-weight:600;letter-spacing:.3px;display:flex;align-items:center;gap:10px}.inc-hero-sub{font-size:12px;color:var(--muted, #93a6c2);margin-left:6px}.inc-nav{display:flex;gap:10px}.inc-nav a{color:var(--accent, #14d4a2);text-decoration:none;font-size:13px;padding:4px 12px;border:1px solid var(--line, #1f314a);border-radius:8px}.inc-nav a.active,.inc-nav a:hover{background:#14d4a226}.inc-widget{background:linear-gradient(180deg,#0f1c2dd9,#0a121ed9);border:1px solid #1b3a55;border-radius:14px;padding:14px 18px;margin-bottom:14px;box-shadow:0 6px 18px #00000040}.inc-widget-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.inc-widget-title{font-size:15px;font-weight:600;letter-spacing:.3px}.inc-widget-title .inc-widget-help{color:var(--muted, #93a6c2);font-weight:400;margin-left:8px;font-size:12px}.inc-period-tabs{display:flex;gap:4px;background:#0c172399;border:1px solid var(--line, #1f314a);border-radius:10px;padding:3px}.inc-period-tab{background:transparent;border:none;color:var(--text, #e6f1ff);font-size:12px;padding:5px 12px;border-radius:7px;cursor:pointer}.inc-period-tab.active{background:#14d4a233;color:var(--accent, #14d4a2)}.inc-widget-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}.inc-widget-assets{display:flex;flex-direction:column;gap:14px}.inc-widget-asset-title{margin-bottom:6px;color:var(--accent, #14d4a2);font-size:12px;font-weight:600;letter-spacing:.4px;text-transform:uppercase}.inc-widget-card{background:#0c172399;border:1px solid var(--line, #1f314a);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:4px}.inc-widget-card.total{border-color:var(--accent, #14d4a2);background:#14d4a214}.inc-widget-label{font-size:11px;color:var(--muted, #93a6c2);text-transform:uppercase;letter-spacing:.5px}.inc-widget-value{font-size:18px;font-weight:600;font-family:Space Mono,IBM Plex Mono,monospace}.inc-widget-meta{font-size:11px;color:var(--muted, #93a6c2)}.inc-filters{background:#0c172399;border:1px solid var(--line, #1f314a);border-radius:12px;padding:12px 14px;margin-bottom:14px;display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}.inc-field{display:flex;flex-direction:column;gap:4px;min-width:140px;max-width:280px}.inc-field label{font-size:11px;color:var(--muted, #93a6c2);text-transform:uppercase;letter-spacing:.6px}.inc-field input,.inc-field select{background:#0d1a2a;border:1px solid #1c2b42;color:var(--text, #e6f1ff);padding:6px 8px;border-radius:8px;font-size:13px;outline:none}.inc-field input[type=datetime-local]{font-size:12px}.inc-chip-row{display:flex;flex-wrap:wrap;gap:4px;max-width:320px}.inc-chip{background:#14d4a21a;border:1px solid rgba(20,212,162,.3);color:var(--accent, #14d4a2);font-size:11px;border-radius:999px;padding:2px 8px;display:inline-flex;align-items:center;gap:4px;cursor:default}.inc-chip-x{background:transparent;border:none;color:inherit;cursor:pointer;font-size:12px;padding:0;line-height:1}.inc-chip-toggle{background:#0c172399;border:1px solid var(--line, #1f314a);color:var(--text, #e6f1ff);font-size:11px;border-radius:999px;padding:3px 9px;cursor:pointer}.inc-chip-toggle.active{border-color:var(--accent, #14d4a2);color:var(--accent, #14d4a2);background:#14d4a226}.inc-actions{display:flex;gap:8px;margin-left:auto}.inc-btn{background:#14d4a233;color:var(--accent, #14d4a2);border:1px solid var(--accent, #14d4a2);border-radius:8px;padding:7px 16px;font-size:13px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:6px}.inc-btn:hover{background:#14d4a259}.inc-btn-ghost{background:transparent;color:var(--muted, #93a6c2);border:1px solid var(--line, #1f314a)}.inc-btn-ghost:hover{border-color:var(--text, #e6f1ff);color:var(--text, #e6f1ff)}.inc-table-wrap{background:#0c172399;border:1px solid var(--line, #1f314a);border-radius:12px;overflow:auto;max-height:calc(100vh - 380px);min-height:280px}.inc-table{width:100%;border-collapse:separate;border-spacing:0;font-size:12.5px}.inc-table th,.inc-table td{padding:7px 10px;border-bottom:1px solid #182840;text-align:left;vertical-align:middle;white-space:nowrap}.inc-table th{position:sticky;top:0;background:#0f1c2df2;font-weight:500;font-size:11px;color:var(--muted, #93a6c2);text-transform:uppercase;letter-spacing:.5px;z-index:1}.inc-table tbody tr:hover{background:#14283c4d}.inc-table td.r{text-align:right}.inc-table td.mono{font-family:Space Mono,IBM Plex Mono,monospace}.inc-table td.comment-cell{white-space:normal;max-width:360px;color:var(--muted, #93a6c2)}.inc-pos{color:var(--pos, #34d07f)}.inc-neg{color:var(--neg, #ff6b6b)}.inc-type-badge{font-size:10px;padding:2px 7px;border-radius:6px;font-weight:500;letter-spacing:.4px;background:#7be0ff1a;color:#7be0ff;border:1px solid rgba(123,224,255,.25);display:inline-block}.inc-type-badge.realized{background:#34d07f1f;color:#34d07f;border-color:#34d07f4d}.inc-type-badge.commission{background:#ff6b6b1f;color:#ff6b6b;border-color:#ff6b6b4d}.inc-type-badge.funding{background:#f7a6001f;color:#f7a600;border-color:#f7a6004d}.inc-ex-pill{font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;border:1px solid;text-transform:capitalize}.inc-empty{padding:60px 20px;text-align:center;color:var(--muted, #93a6c2)}.inc-meta-row{display:flex;align-items:center;justify-content:space-between;padding:8px 4px 12px;font-size:12px;color:var(--muted, #93a6c2)}.inc-meta-row .pulse{color:var(--accent, #14d4a2)}.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#0b0e14}.auth-card{width:320px;padding:28px;background:#141925;border:1px solid #232a3a;border-radius:12px;display:flex;flex-direction:column;gap:14px}.auth-title{margin:0 0 6px;color:#e6edf7;font-size:20px}.auth-label{display:flex;flex-direction:column;gap:6px;color:#9aa7bd;font-size:13px}.auth-input{padding:9px 11px;border-radius:7px;border:1px solid #2b3447;background:#0e1320;color:#e6edf7;font-size:14px}.auth-input:focus{outline:none;border-color:#3b82f6}.auth-btn{margin-top:6px;padding:10px;border:none;border-radius:7px;background:#3b82f6;color:#fff;font-weight:600;cursor:pointer}.auth-btn:disabled{opacity:.6;cursor:default}.auth-error{color:#f87171;font-size:13px}.auth-loading,.auth-denied{min-height:60vh;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#9aa7bd;gap:8px}.user-badge{position:fixed;top:10px;right:12px;z-index:1000;display:flex;align-items:center;gap:10px;padding:6px 10px;background:#141925e6;border:1px solid #232a3a;border-radius:8px;font-size:13px}.user-badge-name{color:#e6edf7;font-weight:600}.user-badge-role{color:#9aa7bd;text-transform:uppercase;font-size:11px;padding:2px 6px;background:#1c2333;border-radius:4px}.user-badge-link{color:#7be0ff;text-decoration:none}.user-badge-logout{background:none;border:1px solid #2b3447;color:#9aa7bd;padding:3px 9px;border-radius:6px;cursor:pointer}.user-badge-logout:hover{border-color:#f87171;color:#f87171}.admin-wrap{max-width:760px;margin:0 auto;padding:24px 16px;color:#e6edf7}.admin-head{display:flex;align-items:center;justify-content:space-between}.admin-back{color:#7be0ff;text-decoration:none}.admin-create{display:flex;gap:8px;margin:16px 0;flex-wrap:wrap}.admin-create input,.admin-create select{padding:8px 10px;border-radius:6px;border:1px solid #2b3447;background:#0e1320;color:#e6edf7}.admin-create button,.admin-table button{padding:8px 12px;border:none;border-radius:6px;background:#3b82f6;color:#fff;cursor:pointer}.admin-table{width:100%;border-collapse:collapse;margin-top:12px}.admin-table th,.admin-table td{text-align:left;padding:9px 8px;border-bottom:1px solid #232a3a;font-size:14px}.admin-table tr.inactive{opacity:.5}.admin-table select{padding:5px 8px;border-radius:6px;border:1px solid #2b3447;background:#0e1320;color:#e6edf7}.admin-table button{background:#1c2333;color:#9aa7bd}.admin-table button:hover{color:#e6edf7}.ctl-app{max-width:min(100%,1200px);width:100%;margin:0 auto;padding:clamp(10px,1.2vw,18px);box-sizing:border-box}.ctl-hero{background:linear-gradient(120deg,#10443fd9,#0a1826d9);border:1px solid #1b3640;border-radius:16px;padding:16px 20px;display:flex;gap:16px;flex-wrap:wrap;align-items:center;justify-content:space-between;box-shadow:0 10px 30px #0000004d;margin-bottom:14px}.ctl-title-text{font-size:20px;font-weight:600;letter-spacing:.3px}.ctl-nav{display:flex;gap:14px;font-size:14px}.ctl-nav a{color:#7be0ff;text-decoration:none}.ctl-nav a:hover{text-decoration:underline}.ctl-card{background:#0a182699;border:1px solid #1b3640;border-radius:14px;padding:16px 20px;margin-bottom:14px}.ctl-card h2{margin:0 0 4px;font-size:16px;font-weight:600}.ctl-card-hint{margin:0 0 14px;font-size:13px;color:#8fa8b8;line-height:1.5}.ctl-status{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:20px;font-size:14px;font-weight:600}.ctl-status-running{background:#14d4a226;color:#14d4a2}.ctl-status-paused{background:#f0b90b26;color:#f0b90b}.ctl-status-unknown{background:#8ca0af26;color:#8fa8b8}.ctl-dot{width:8px;height:8px;border-radius:50%;background:currentColor}.ctl-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:12px}.ctl-reason{flex:1 1 260px;min-width:200px;background:#0000004d;border:1px solid #1b3640;border-radius:8px;color:#e6f1f5;padding:8px 12px;font-size:14px;font-family:inherit}.ctl-reason:focus{outline:none;border-color:#14d4a2}.ctl-btn{border:none;border-radius:8px;padding:9px 18px;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit}.ctl-btn:disabled{opacity:.5;cursor:not-allowed}.ctl-btn-pause{background:#f0b90b;color:#121b21}.ctl-btn-resume{background:#14d4a2;color:#06231c}.ctl-detail{margin-top:14px;font-size:13px;color:#b9ccd8;line-height:1.7}.ctl-detail dt{color:#8fa8b8;display:inline}.ctl-detail dd{display:inline;margin:0 0 0 6px}.ctl-detail div+div{margin-top:2px}.ctl-note{margin-top:14px;padding:10px 14px;border-left:3px solid #f0b90b;background:#f0b90b14;border-radius:0 8px 8px 0;font-size:13px;color:#d9c890;line-height:1.6}.ctl-error{margin-top:12px;padding:10px 14px;border-left:3px solid #ff6b6b;background:#ff6b6b14;border-radius:0 8px 8px 0;font-size:13px;color:#ffb0b0}.ctl-soon{color:#8fa8b8;font-size:13px;font-style:italic}.cfg-toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.cfg-search{flex:1 1 320px;min-width:220px;background:#0000004d;border:1px solid #1b3640;border-radius:8px;color:#e6f1f5;padding:9px 14px;font-size:14px;font-family:inherit}.cfg-search:focus{outline:none;border-color:#14d4a2}.cfg-file{font-size:12px;color:#6f8899;font-family:ui-monospace,monospace}.cfg-pending{margin-bottom:12px;font-size:13px;color:#d9c890;display:flex;gap:6px;flex-wrap:wrap;align-items:center}.cfg-chip{background:#f0b90b1f;border:1px solid rgba(240,185,11,.35);color:#f0b90b;border-radius:12px;padding:2px 10px;font-size:12px;cursor:pointer;font-family:ui-monospace,monospace}.cfg-chip:hover{background:#f0b90b38}.cfg-group{border:1px solid #1b3640;border-radius:10px;margin-bottom:8px}.cfg-group-head{width:100%;text-align:left;background:#0a1826b3;border:none;border-radius:9px 9px 0 0;color:#e6f1f5;font-size:14px;font-weight:600;padding:9px 14px;cursor:pointer;display:flex;align-items:center;gap:10px;font-family:inherit}.cfg-group-head:only-child{border-radius:9px}.cfg-group-head:hover{background:#102c3ccc}.cfg-group-arrow{color:#14d4a2;width:10px}.cfg-group-count{margin-left:auto;background:#7be0ff1f;color:#7be0ff;border-radius:10px;padding:0 8px;font-size:11px;font-weight:600}.cfg-group-body{padding:2px 0}.cfg-row{display:grid;grid-template-columns:minmax(220px,1.6fr) minmax(150px,1fr) minmax(110px,.7fr) 64px;gap:10px;align-items:center;padding:5px 14px;border-top:1px solid rgba(27,54,64,.5);font-size:13px}.cfg-row:first-child{border-top:none}.cfg-row:hover{background:#7be0ff08}.cfg-row-dirty{background:#f0b90b12}.cfg-name{display:flex;align-items:baseline;gap:6px;min-width:0}.cfg-title{color:#e6f1f5;font-weight:500;white-space:nowrap}.cfg-path{font-size:10.5px;color:#52697a;font-family:ui-monospace,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.cfg-tip{position:relative;color:#7be0ff;cursor:help;font-size:12px;flex:none}.cfg-tip-box{display:none;position:absolute;left:0;top:18px;z-index:30;width:420px;max-width:60vw;background:#0c1a24;border:1px solid #244a58;border-radius:8px;padding:10px 12px;color:#c8dae5;font-size:12.5px;line-height:1.55;white-space:pre-wrap;box-shadow:0 12px 30px #0000008c;font-weight:400}.cfg-tip:hover .cfg-tip-box,.cfg-tip:focus .cfg-tip-box{display:block}.cfg-row-wrap:nth-last-child(-n+4) .cfg-tip-box{top:auto;bottom:18px}.cfg-control{min-width:0}.cfg-input{background:#0000004d;border:1px solid #1b3640;border-radius:6px;color:#e6f1f5;padding:4px 8px;font-size:12.5px;font-family:inherit;width:100%;box-sizing:border-box}.cfg-input-num{max-width:130px}.cfg-json{font-family:ui-monospace,monospace;font-size:11.5px}.cfg-json-bad{border-color:#ff6b6b}.cfg-input:focus{outline:none;border-color:#14d4a2}.cfg-switch{display:inline-flex;align-items:center;cursor:pointer}.cfg-switch input{width:15px;height:15px;accent-color:#14d4a2;margin:0}.cfg-tri{display:inline-flex;border:1px solid #1b3640;border-radius:6px;overflow:hidden}.cfg-tri-btn{background:transparent;border:none;color:#8fa8b8;padding:3px 9px;font-size:11.5px;cursor:pointer;font-family:inherit}.cfg-tri-btn+.cfg-tri-btn{border-left:1px solid #1b3640}.cfg-tri-on{background:#14d4a22e;color:#14d4a2;font-weight:600}.cfg-now{display:flex;align-items:baseline;gap:6px;min-width:0;font-family:ui-monospace,monospace;font-size:11.5px}.cfg-now-set{color:#14d4a2;overflow:hidden;text-overflow:ellipsis}.cfg-now-default{color:#6f8899;overflow:hidden;text-overflow:ellipsis}.cfg-now-tag{color:#52697a;font-size:10px;font-family:inherit;white-space:nowrap}.cfg-now-special{color:#f0b90b;font-size:10px;font-family:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cfg-tip-special{display:block;margin-top:10px;padding-top:8px;border-top:1px solid #244a58}.cfg-tip-special b{display:block;color:#8fa8b8;font-weight:600;margin-bottom:4px}.cfg-tip-special span{display:block;margin-top:2px}.cfg-tip-special code{color:#f0b90b;background:#f0b90b1a;padding:0 5px;border-radius:4px;font-size:11.5px}.cfg-reset{background:none;border:none;color:#7be0ff;cursor:pointer;font-size:13px;padding:0 2px;line-height:1}.cfg-badge{font-size:10.5px;padding:1px 7px;border-radius:9px;white-space:nowrap;text-align:center}.cfg-badge-hot{background:#14d4a226;color:#14d4a2}.cfg-badge-restart{background:#7be0ff1a;color:#6aa9bd}.cfg-badge-boot{background:#ff6b6b26;color:#ff8a8a}.cfg-field-error{margin:0 14px 8px;padding:6px 10px;border-left:3px solid #ff6b6b;background:#ff6b6b14;color:#ffb0b0;font-size:12.5px}.cfg-ok{margin-bottom:12px;padding:10px 14px;border-left:3px solid #14d4a2;background:#14d4a214;border-radius:0 8px 8px 0;font-size:13px;color:#9fe8d4;position:relative}.cfg-close{position:absolute;right:8px;top:6px;background:none;border:none;color:inherit;cursor:pointer;font-size:14px;opacity:.6}.cfg-modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:50;padding:20px}.cfg-modal{background:#0c1a24;border:1px solid #1b3640;border-radius:14px;padding:20px 24px;max-width:860px;width:100%;max-height:84vh;overflow:auto;box-shadow:0 20px 60px #00000080}.cfg-modal h3{margin:0 0 14px;font-size:17px}.cfg-diff{width:100%;border-collapse:collapse;font-size:13px}.cfg-diff th{text-align:left;color:#6f8899;font-weight:500;font-size:12px;border-bottom:1px solid #1b3640;padding:6px 8px}.cfg-diff td{padding:7px 8px;border-bottom:1px solid rgba(27,54,64,.5);vertical-align:top}.cfg-diff td:first-child{display:flex;flex-direction:column}.cfg-diff code{font-size:12px;color:#b9ccd8}.cfg-apply-hot{color:#14d4a2}.cfg-apply-restart{color:#7be0ff}.cfg-apply-boot{color:#ff8a8a}.cfg-modal-boot{margin-top:14px;padding:10px 14px;border-left:3px solid #ff6b6b;background:#ff6b6b14;font-size:13px;color:#ffb0b0;line-height:1.6}.cfg-modal-warn{margin-top:14px;padding:10px 14px;border-left:3px solid #f0b90b;background:#f0b90b14;font-size:13px;color:#d9c890;line-height:1.6}.cfg-modal-warn div+div{margin-top:6px}.cfg-modal-note{margin-top:14px;font-size:13px;color:#b9ccd8;line-height:1.6}.cfg-modal-actions{margin-top:18px;display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}.cfg-btn-ghost{background:transparent;border:1px solid #1b3640;color:#8fa8b8}@media(max-width:900px){.cfg-row{grid-template-columns:1fr 1fr;row-gap:4px}.cfg-now,.cfg-badge{grid-column:span 1}}.log-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:10px}.log-tabs{display:inline-flex;border:1px solid #1b3640;border-radius:8px;overflow:hidden}.log-tab{background:transparent;border:none;color:#8fa8b8;padding:7px 16px;font-size:13px;cursor:pointer;font-family:inherit}.log-tab+.log-tab{border-left:1px solid #1b3640}.log-tab-on{background:#14d4a226;color:#14d4a2;font-weight:600}.log-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#14d4a2;margin-left:6px;vertical-align:middle}.log-select,.log-search,.log-btn{background:#0000004d;border:1px solid #1b3640;border-radius:8px;color:#e6f1f5;padding:7px 12px;font-size:13px;font-family:inherit}.log-search{flex:1 1 260px;min-width:180px}.log-btn{cursor:pointer}.log-btn:hover{border-color:#14d4a2}.log-check{font-size:12.5px;color:#8fa8b8;display:inline-flex;align-items:center;gap:6px;cursor:pointer}.log-check input{accent-color:#14d4a2}.log-dropped{margin-bottom:10px;padding:8px 12px;border-left:3px solid #f0b90b;background:#f0b90b14;font-size:12.5px;color:#d9c890;line-height:1.5}.log-body{background:#00000059;border:1px solid #1b3640;border-radius:10px;padding:10px 12px;height:460px;overflow:auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.log-journal{margin:0;white-space:pre-wrap;word-break:break-word;color:#b9ccd8}.log-line{padding:2px 0;line-height:1.5;border-bottom:1px solid rgba(27,54,64,.35);word-break:break-word}.log-time{color:#5f7889;margin-right:8px}.log-level{display:inline-block;min-width:46px;margin-right:8px;font-weight:600}.log-debug .log-level{color:#6f8899}.log-info .log-level{color:#7be0ff}.log-warn .log-level{color:#f0b90b}.log-error .log-level{color:#ff6b6b}.log-error{background:#ff6b6b0f}.log-msg{color:#e6f1f5}.log-attrs{margin-left:10px}.log-attr{color:#8fa8b8;margin-right:10px}.log-attr-k{color:#5f7889}.svc-status{margin-bottom:14px}.svc-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.svc-unit{font-size:12px;color:#6f8899;font-family:ui-monospace,monospace}.svc-subject{color:#b9ccd8}.svc-bad{color:#ff8a8a}.svc-warn{color:#f0b90b}.svc-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.ctl-btn-stop{background:#ff6b6b;color:#2a0b0b}.ctl-btn-build{background:#7be0ff;color:#062231}.svc-hint{margin-top:8px;font-size:12.5px;color:#8fa8b8;line-height:1.55}.svc-modal .svc-warn-list{margin:0 0 4px;padding-left:20px}.svc-warn-list li{font-size:13.5px;color:#d9c890;line-height:1.65;margin-bottom:6px}.svc-steps{width:100%;margin-top:10px;border-collapse:collapse;font-size:12px}.svc-steps td{padding:4px 8px;border-bottom:1px solid rgba(27,54,64,.5);vertical-align:top}.svc-step-bad{color:#ffb0b0}.svc-step-ms{color:#6f8899;text-align:right;white-space:nowrap}.svc-step-out{color:#8fa8b8;font-family:ui-monospace,monospace;word-break:break-all}*{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #0d1117;--bg-secondary: #161b22;--bg-tertiary: #21262d;--border: #30363d;--text-primary: #e6edf3;--text-secondary: #8b949e;--green: #3fb950;--red: #f85149;--blue: #58a6ff;--yellow: #d29922}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.5}.app{min-height:100vh}header{padding:16px 24px;border-bottom:1px solid var(--border);background:var(--bg-secondary);display:flex;align-items:center;gap:32px}header nav{display:flex;gap:16px}header nav a{color:var(--text-secondary);text-decoration:none;font-size:14px}header nav a:hover{color:var(--text-primary)}.logo{color:var(--text-primary);text-decoration:none;font-size:18px;font-weight:600}main{padding:24px;max-width:1400px;margin:0 auto}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.dashboard-header h1{font-size:24px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}.exchange-section{margin-bottom:32px}.exchange-section h2{font-size:16px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border)}.stats-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:20px}.stats-card h3{font-size:14px;text-transform:uppercase;color:var(--text-secondary);margin-bottom:12px;letter-spacing:.5px}.stats-row{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--border)}.stats-row:last-child{border-bottom:none}.stats-row dt{color:var(--text-secondary);font-size:13px}.stats-row dd{font-weight:500;font-size:13px;font-variant-numeric:tabular-nums}.exchange-tabs{display:flex;gap:8px;margin-bottom:16px}.exchange-tab{padding:6px 16px;border:1px solid var(--border);border-radius:6px;background:var(--bg-secondary);color:var(--text-secondary);font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;transition:all .15s}.exchange-tab:hover{color:var(--text-primary);border-color:var(--text-secondary)}.exchange-tab.active{color:var(--text-primary);border-color:var(--blue);background:var(--bg-tertiary)}.exchange-label{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);margin-bottom:16px}.token-detail .token-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:16px}.token-content{display:grid;grid-template-columns:320px 1fr;gap:16px}.token-sidebar>*{margin-bottom:16px}.orderbook{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:20px}.orderbook h3{font-size:14px;text-transform:uppercase;color:var(--text-secondary);margin-bottom:12px}.orderbook-header{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;font-size:11px;color:var(--text-secondary);text-transform:uppercase;padding:4px 8px;margin-bottom:4px}.orderbook-row{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;padding:2px 8px;font-size:12px;font-variant-numeric:tabular-nums;position:relative}.orderbook-bar{position:absolute;right:0;top:0;bottom:0;opacity:.15}.orderbook-row.ask .orderbook-bar{background:var(--red)}.orderbook-row.bid .orderbook-bar{background:var(--green)}.orderbook-row.ask .price{color:var(--red)}.orderbook-row.bid .price{color:var(--green)}.orderbook-spread{text-align:center;padding:8px;font-size:12px;color:var(--text-secondary);border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin:4px 0}.price-info,.funding-info{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:20px}.price-info h3,.funding-info h3{font-size:14px;text-transform:uppercase;color:var(--text-secondary);margin-bottom:12px}.positive{color:var(--green)}.negative{color:var(--red)}.countdown{font-variant-numeric:tabular-nums;color:var(--yellow)}.symbol-search{position:relative;display:flex;align-items:center;gap:12px}.symbol-search input{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:6px;padding:8px 12px;color:var(--text-primary);font-size:14px;width:240px;outline:none}.symbol-search input:focus{border-color:var(--blue)}.current-symbol{font-size:20px;font-weight:700}.search-dropdown{position:absolute;top:100%;left:0;width:240px;max-height:300px;overflow-y:auto;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:6px;margin-top:4px;list-style:none;z-index:100}.search-dropdown li{padding:8px 12px;cursor:pointer;font-size:13px}.search-dropdown li:hover{background:var(--bg-secondary)}.connection-status{display:flex;align-items:center;gap:6px;font-size:12px;white-space:nowrap}.connection-status .dot{width:8px;height:8px;border-radius:50%}.connection-status.connected .dot{background:var(--green)}.connection-status.disconnected .dot{background:var(--red)}.chart-container{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:20px;margin-top:16px}.chart-container h3{font-size:14px;text-transform:uppercase;color:var(--text-secondary);margin-bottom:12px;letter-spacing:.5px}.loading,.empty{color:var(--text-secondary);text-align:center;padding:40px}@media(max-width:768px){.token-content,.stats-grid{grid-template-columns:1fr}}
