:root{--bg-base: #06080c;--bg-panel: rgba(12, 14, 22, .85);--bg-card: rgba(18, 21, 32, .7);--bg-input: rgba(24, 28, 42, .6);--bg-hover: rgba(255, 255, 255, .03);--border: rgba(255, 255, 255, .06);--border-active: rgba(0, 212, 170, .3);--text-primary: #ffffff;--text-secondary: #e0e4f0;--text-muted: #b0b8cc;--accent: #00d4aa;--accent-hover: #00e8bc;--accent-dim: rgba(0, 212, 170, .12);--success: #00d68f;--success-dim: rgba(0, 214, 143, .12);--warning: #ffbe0b;--warning-dim: rgba(255, 190, 11, .12);--danger: #ff4d6d;--danger-dim: rgba(255, 77, 109, .12);--font-mono: "JetBrains Mono", "Fira Code", "SF Mono", monospace;--font-sans: "Inter", -apple-system, system-ui, sans-serif;--radius: 12px;--radius-sm: 8px;--radius-xs: 4px;--shadow: 0 1px 3px rgba(0, 0, 0, .3), 0 8px 32px rgba(0, 0, 0, .25);--shadow-lg: 0 4px 12px rgba(0, 0, 0, .4), 0 16px 48px rgba(0, 0, 0, .3);--blur: blur(20px)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;background:var(--bg-base);color:var(--text-primary);font-family:var(--font-sans);font-size:14px;line-height:1.55;font-weight:500;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.unified-root{display:flex;flex-direction:column;height:100%;background:var(--bg-base)}.unified-fill{flex:1;min-height:0;display:flex;align-items:center;justify-content:center}.site-footer{flex-shrink:0;padding:8px 16px 14px;text-align:center}.site-footer-caption{margin:0;font-size:11px;font-weight:400;letter-spacing:.02em;color:var(--text-muted)}.site-footer-caption a{color:var(--text-secondary);text-decoration:none}.site-footer-caption a:hover{color:var(--accent);text-decoration:underline}.site-footer-sep{margin:0 .4em;-webkit-user-select:none;user-select:none;opacity:.45;pointer-events:none}.unified-header{display:flex;align-items:center;padding:0 16px;height:44px;background:var(--bg-panel);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border-bottom:1px solid var(--border);flex-shrink:0;gap:8px;position:relative;z-index:200}.tenant-bootstrap-fail-banner{flex-shrink:0;padding:10px 16px;background:#dc50501f;border-bottom:1px solid var(--danger, #c44)}.tenant-bootstrap-fail-inner{display:flex;flex-direction:column;gap:8px;max-width:960px}.tenant-bootstrap-fail-title{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--danger, #e07070)}.tenant-bootstrap-fail-msg{font-size:12px;line-height:1.45;color:var(--text-secondary)}.tenant-bootstrap-fail-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.header-tabs{display:flex;gap:2px}.tab-btn{padding:6px 14px;font-size:13px;font-weight:500;font-family:var(--font-sans);letter-spacing:.3px;border:none;border-radius:6px;cursor:pointer;background:transparent;color:var(--text-secondary);transition:all .2s ease;position:relative}.tab-btn:hover{color:var(--text-primary);background:var(--bg-hover)}.tab-btn.active{color:var(--accent);background:var(--accent-dim)}.header-health{font-size:11px;color:var(--text-secondary);font-family:var(--font-mono);white-space:nowrap}.header-spacer{flex:1}.tab-panel{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.tab-panel.hidden{display:none}.logo-badge{background:var(--accent);color:var(--bg-base);font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:1.5px;padding:4px 10px;border-radius:5px;flex-shrink:0}.trading-controls{display:flex;gap:6px}.btn-logout{font-size:11px;font-family:var(--font-sans);font-weight:600;padding:4px 12px;border-radius:6px;border:1px solid rgba(255,77,109,.3);background:#ff4d6d14;color:var(--danger);cursor:pointer;transition:all .2s ease}.btn-logout:hover{background:#ff4d6d26;border-color:#ff4d6d80}.log-dropdown-wrap{position:relative}.log-dropdown{position:absolute;top:100%;right:0;margin-top:4px;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);padding:4px;z-index:100;min-width:120px}.log-dropdown button{display:block;width:100%;text-align:left;padding:6px 12px;font-size:11px;font-family:var(--font-sans);color:var(--text-primary);background:transparent;border:none;border-radius:var(--radius-xs);cursor:pointer}.log-dropdown button:hover{background:var(--bg-hover);color:var(--accent)}.status-dot{width:7px;height:7px;border-radius:50%;background:var(--text-muted);transition:all .3s}.status-dot.connected{background:var(--success);box-shadow:0 0 8px #00d68f80}.status-dot.error{background:var(--danger);box-shadow:0 0 8px #ff4d6d80}.pnl-pills{display:flex;gap:6px}.pnl-pill{font-size:11px;font-family:var(--font-mono);font-weight:600;padding:3px 10px;border-radius:20px;background:var(--bg-input);border:1px solid var(--border)}.pnl-pill.pos{color:var(--success);border-color:#00d68f33}.pnl-pill.neg{color:var(--danger);border-color:#ff4d6d33}.pnl-pill.neutral{color:var(--text-secondary)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:6px 14px;font-size:12px;font-weight:500;font-family:var(--font-sans);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:var(--bg-input);color:var(--text-secondary);transition:all .15s ease;white-space:nowrap;outline:none}.btn:hover:not(:disabled){color:var(--text-primary);border-color:#ffffff1f;background:#ffffff0d}.btn:disabled{opacity:.35;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--bg-base);border-color:var(--accent);font-weight:600}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);color:var(--bg-base)}.btn-ghost{background:transparent;border-color:var(--border);color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.btn-success{background:var(--success);color:var(--bg-base);border-color:var(--success);font-weight:600}.btn-success:hover:not(:disabled){background:#00e8a0;border-color:#00e8a0;color:var(--bg-base)}.btn-danger{background:transparent;color:var(--danger);border-color:#ff4d6d4d}.btn-danger:hover:not(:disabled){background:var(--danger-dim)}.btn-warning{background:var(--warning-dim);color:var(--warning);border-color:#ffbe0b4d}.btn-sm{padding:4px 10px!important;font-size:11px!important;height:28px!important}.btn-xs{padding:2px 8px!important;font-size:10px!important;height:24px!important;border-radius:var(--radius-xs)!important}.emergency-btn{font-weight:700;letter-spacing:.5px}.log-dl-btn{font-family:var(--font-mono);font-size:10px!important}.panel{background:var(--bg-panel);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;min-height:0;overflow:hidden;box-shadow:var(--shadow)}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--border);flex-shrink:0}.panel-title{font-size:13px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--text-primary)}.panel-badge{font-family:var(--font-mono);font-size:11px;padding:2px 8px;border-radius:20px;background:var(--bg-input);color:var(--text-secondary);border:1px solid var(--border)}.panel-body{flex:1;overflow-y:auto;padding:0}.token-list-table td{padding:4px 10px}.dashboard{padding:4px 8px 8px;flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column}.monitor-layout{display:flex;flex-direction:column;gap:6px;padding:6px;overflow-y:auto}.panel-header-clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.panel-header-clickable:hover{background:var(--bg-hover)}.collapse-toggle{color:var(--text-muted);font-size:12px;flex-shrink:0}.wallets-panel{flex-shrink:0}.wallets-panel>.wallet-row{display:flex;gap:6px;padding:6px}.wallets-panel>.wallet-row>.wallet-card{flex:1;min-width:0;max-height:200px;overflow-y:auto}.monitor-mid-row{display:flex;gap:6px;height:calc(100vh - 56px);flex-shrink:0}.monitor-mid-row>.panel{flex:1;min-width:0;min-height:0;overflow:hidden;display:flex;flex-direction:column}.monitor-layout>.tx-feed-panel{flex-shrink:0;height:50vh;overflow:hidden;display:flex;flex-direction:column}.spread-status-bar{display:flex;align-items:center;gap:6px;padding:5px 12px;font-size:10px;color:var(--text-secondary);border-bottom:1px solid var(--border)}.spread-status-bar.active{background:var(--success-dim)}.spread-status-bar.inactive{background:var(--bg-input)}.spread-status-indicator{width:6px;height:6px;border-radius:50%;flex-shrink:0}.spread-status-bar.active .spread-status-indicator{background:var(--success);box-shadow:0 0 8px #00d68f99;animation:pulse-glow 2s infinite}.spread-status-bar.inactive .spread-status-indicator{background:var(--text-muted)}@keyframes pulse-glow{0%,to{opacity:1}50%{opacity:.5}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.feed-pulse{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);margin-right:6px;animation:pulse-glow 1.5s infinite}.feed-empty{text-align:center;padding:20px 12px;color:var(--text-secondary);font-size:13px}.feed-list{list-style:none;padding:4px 6px;display:flex;flex-direction:column;gap:2px}.feed-item{padding:5px 8px;border-radius:var(--radius-xs);background:var(--bg-card);border:1px solid var(--border);font-size:11px;transition:border-color .15s}.feed-item:hover{border-color:#ffffff1a}.feed-item.highlighted{border-color:var(--border-active);background:#00d4aa0a}.feed-ticker{font-weight:600;font-size:13px;display:flex;align-items:center;gap:4px;margin-bottom:1px;color:var(--text-primary)}.feed-spread{font-family:var(--font-mono);font-weight:700;font-size:12px;margin-bottom:2px}.feed-spread.highlighted{color:var(--accent)}.feed-spread.normal{color:var(--text-secondary)}.feed-dex-row{display:flex;align-items:center;gap:4px;font-size:10px;color:var(--text-secondary);line-height:1.3}.feed-dex-label{font-weight:500;color:var(--text-muted);width:28px}.feed-dex-arrow{color:var(--text-muted);font-size:10px;margin-right:3px}.feed-dex-price{font-family:var(--font-mono);font-size:10px;color:var(--text-muted)}.feed-addr-link{font-family:var(--font-mono);font-size:10px;color:var(--accent);text-decoration:none;opacity:.7}.feed-addr-link:hover{opacity:1;text-decoration:underline}.feed-detail{font-size:10px;color:var(--success);font-family:var(--font-mono);margin-top:1px}.feed-time{font-size:10px;color:var(--text-muted);font-family:var(--font-mono)}.dex-tag{font-size:10px;font-weight:600;letter-spacing:.4px;text-transform:uppercase;padding:2px 6px;border-radius:var(--radius-xs);background:var(--bg-input);color:var(--text-primary);border:1px solid var(--border)}.tx-feed-body{display:flex;flex-direction:column;gap:2px;overflow-y:auto;flex:1;padding:4px 6px}.tx-feed-empty{color:var(--text-muted);font-size:11px;text-align:center;padding:16px 0}.tx-feed-count{font-size:10px;font-family:var(--font-mono);color:var(--text-muted);background:var(--bg-input);padding:1px 7px;border-radius:10px}.tx-row{display:flex;flex-direction:column;gap:1px;padding:4px 6px;border-radius:var(--radius-xs);border-left:2px solid transparent;background:var(--bg-card);font-size:11px;transition:background .15s}.tx-row:hover{background:#ffffff08}.tx-row.tx-status-ok{border-left-color:var(--success)}.tx-row.tx-status-paper{border-left-color:var(--accent)}.tx-row.tx-status-warn{border-left-color:var(--warning)}.tx-row.tx-status-err{border-left-color:var(--danger)}.tx-row.tx-status-muted{border-left-color:var(--text-muted);opacity:.5}.tx-row-top{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.tx-status-badge{font-size:9px;font-weight:700;letter-spacing:.5px;padding:1px 5px;border-radius:3px;flex-shrink:0}.tx-status-badge.tx-status-ok{background:var(--success-dim);color:var(--success)}.tx-status-badge.tx-status-paper{background:var(--accent-dim);color:var(--accent)}.tx-status-badge.tx-status-warn{background:var(--warning-dim);color:var(--warning)}.tx-status-badge.tx-status-err{background:var(--danger-dim);color:var(--danger)}.tx-status-badge.tx-status-muted{background:var(--bg-input);color:var(--text-muted)}.tx-pair{font-weight:600}.tx-chain{font-size:9px}.tx-spread{color:var(--text-secondary);font-family:var(--font-mono);font-size:11px}.tx-profit{font-family:var(--font-mono);font-weight:600;font-size:11px;margin-left:auto}.tx-profit.pos{color:var(--success)}.tx-profit.neg{color:var(--danger)}.tx-time{color:var(--text-muted);font-size:10px;margin-left:auto}.tx-row-dex{display:flex;align-items:center;gap:4px}.tx-arrow{color:var(--text-muted);font-size:10px}.tx-row-hashes{display:flex;gap:8px;flex-wrap:wrap}.tx-hash-link{font-family:var(--font-mono);font-size:10px;color:var(--accent);text-decoration:none;opacity:.7}.tx-hash-link:hover{opacity:1;text-decoration:underline}.tx-reason{font-size:10px;color:var(--text-muted);font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.price-table{width:100%;border-collapse:collapse}.price-table th{position:sticky;top:0;background:var(--bg-panel);padding:6px 10px;text-align:left;font-size:11px;font-weight:600;letter-spacing:.8px;color:var(--text-secondary);text-transform:uppercase;border-bottom:1px solid var(--border);z-index:1}.price-table td{padding:5px 10px;border-bottom:1px solid var(--border);font-family:var(--font-mono);font-size:12px;vertical-align:middle}.price-table tr:hover td{background:var(--bg-hover)}.price-table tr:last-child td{border-bottom:none}.pair-name{font-size:13px;font-weight:600;font-family:var(--font-sans);color:var(--text-primary)}.pair-chain{font-size:11px;font-family:var(--font-mono);color:var(--text-secondary);margin-top:1px}.price-val{color:var(--text-primary)}.price-val.null{color:var(--text-muted);font-size:11px}.spread-pct{font-weight:600;padding:2px 7px;border-radius:4px;font-size:11px}.spread-pct.positive{color:var(--success);background:var(--success-dim)}.spread-pct.neutral{color:var(--text-muted)}.config-page{display:flex;flex-direction:column;gap:6px;flex:1;min-height:0;overflow-y:auto}.config-middle{display:grid;grid-template-columns:1.4fr 1fr;gap:6px;min-height:65vh}.config-middle .panel{overflow:hidden;display:flex;flex-direction:column}.config-middle .panel-body{flex:1;overflow-y:auto;min-height:0}.load-wallets-panel{padding:10px 14px 12px;flex-shrink:0}.load-wallets-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px 24px;margin-bottom:8px}.load-wallets-head-main{flex:1;min-width:0}.load-wallets-head-main .load-wallets-hint{margin-bottom:0}.load-wallets-source-toggle-wrap{flex-shrink:0;display:flex;align-items:center;gap:10px;padding-top:2px}.wallet-source-caption{font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);-webkit-user-select:none;user-select:none}.wallet-source-caption--active{color:var(--accent)}.wallet-source-switch{position:relative;width:52px;height:28px;flex-shrink:0;border-radius:14px;border:1px solid var(--border);background:var(--bg-input);cursor:pointer;padding:0;transition:background .2s ease,border-color .2s ease,box-shadow .2s ease}.wallet-source-switch:hover:not(:disabled){border-color:var(--border-active)}.wallet-source-switch:disabled{opacity:.55;cursor:wait}.wallet-source-switch--on{background:var(--accent-dim);border-color:var(--accent);box-shadow:0 0 0 1px #00d4aa26}.wallet-source-knob{position:absolute;top:50%;left:3px;width:22px;height:22px;margin-top:-11px;border-radius:50%;background:var(--text-secondary);box-shadow:0 1px 4px #00000059;transition:transform .22s ease,background .2s ease;pointer-events:none}.wallet-source-switch--on .wallet-source-knob{transform:translate(24px);background:var(--accent);box-shadow:0 1px 6px #00d4aa59}.load-wallets-hint{font-size:11px;color:var(--text-muted);margin:0 0 10px;line-height:1.45}.load-wallets-status{display:flex;flex-wrap:wrap;gap:14px;font-size:11px;margin-bottom:10px;color:var(--text-secondary)}.load-wallets-fields{margin-bottom:10px}.load-wallets-actions{display:flex;gap:8px;align-items:center}.load-wallets-msg{margin-top:10px;font-size:12px;line-height:1.4}.load-wallets-msg.ok{color:var(--success)}.load-wallets-msg.err{color:var(--danger)}.config-bottom{display:grid;grid-template-columns:1.4fr 1fr;gap:6px;flex:1;min-height:0;overflow:hidden}.config-bottom .panel{overflow:hidden;display:flex;flex-direction:column}.tenant-users-panel{margin-top:10px;padding:12px 14px 14px;flex-shrink:0;overflow:visible;min-height:min-content}.tenant-users-title{font-size:11px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--text-secondary);margin:0 0 8px}.tenant-users-table-wrap{overflow-x:auto;max-width:100%}.tenant-users-table{width:100%;border-collapse:collapse;font-size:12px}.tenant-users-table th,.tenant-users-table td{border:1px solid var(--border);padding:6px 8px;text-align:left}.tenant-users-table th{background:var(--bg-elevated);color:var(--text-secondary);font-weight:600;font-size:10px;text-transform:uppercase;letter-spacing:.5px}.cfg-bar-panel{flex-shrink:0}.cfg-bar-loading{display:flex;align-items:center;justify-content:center;padding:14px}.cfg-header-bar{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;border-bottom:1px solid var(--border)}.cfg-header-title{font-size:11px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--text-secondary)}.cfg-bar-actions{display:flex;align-items:center;gap:8px}.cfg-sections{display:flex;gap:0;padding:0}.cfg-section{flex:1;padding:10px 14px 12px;border-right:1px solid var(--border)}.cfg-section:last-child{border-right:none}.cfg-section-title{font-size:9px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--accent);margin-bottom:10px}.cfg-section-fields{display:flex;flex-wrap:wrap;gap:8px 12px}.cfg-field{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1 1 100px}.cfg-field-label{font-size:10px;font-weight:500;color:var(--text-muted);white-space:nowrap;cursor:help;overflow:hidden;text-overflow:ellipsis}.cfg-bar-input{width:100%!important;padding:5px 8px!important;font-size:12px!important;height:30px!important}.cfg-bar-disabled{opacity:.45}.config-input,.config-select{width:100%;padding:6px 10px;font-size:12px;font-family:var(--font-mono);background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-xs);color:var(--text-primary);outline:none;transition:border-color .2s}.config-input:focus,.config-select:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-dim)}.config-input::placeholder{color:var(--text-muted)}.config-label{font-size:11px;font-weight:500;color:var(--text-secondary);margin-bottom:2px}.config-field{display:flex;flex-direction:column;gap:4px}.config-body{flex:1;overflow-y:auto;padding:10px 14px;display:flex;flex-direction:column;gap:6px}.config-section-label{font-size:10px;font-weight:600;letter-spacing:.8px;text-transform:uppercase;color:var(--accent);margin-top:4px}.config-divider{height:1px;background:var(--border);margin:8px 0}.config-actions{display:flex;gap:6px;align-items:center;margin-top:4px}.cfg-hint{font-size:11px;color:var(--text-muted)}.cfg-hint code{background:var(--bg-input);padding:1px 5px;border-radius:3px;font-size:10px}.save-status{font-size:11px;font-family:var(--font-mono);padding:2px 8px;border-radius:var(--radius-xs)}.save-status.ok{color:var(--success)}.save-status.err{color:var(--danger)}.cfg-rot-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 0}.cfg-rot-left{display:flex;align-items:center;gap:8px}.cfg-rot-label{font-size:11px;font-family:var(--font-mono);font-weight:500;color:var(--text-secondary)}.cfg-rot-val{font-size:11px;color:var(--text-primary)}.cfg-rot-input{width:200px}.wallet-info-grid{display:flex;flex-direction:column;gap:6px}.wallet-info-grid .wallet-info-row{display:flex;align-items:center;gap:8px;font-size:11px}.wallet-label{font-weight:600;color:var(--text-secondary);width:64px;flex-shrink:0}.wallet-addr{font-family:var(--font-mono);font-size:11px}.wallet-badge-a{background:var(--success-dim);color:var(--success)}.wallet-badge-b{background:var(--accent-dim);color:var(--accent)}.wallet-badge-off{background:var(--bg-input);color:var(--text-muted)}.pool-list{display:flex;flex-direction:column;gap:3px}.pool-row{display:flex;align-items:center;justify-content:space-between;padding:6px 8px;border-radius:var(--radius-xs);background:var(--bg-card);border:1px solid var(--border);transition:background .15s}.pool-row:hover{background:var(--bg-hover)}.pool-row.pool-inactive{opacity:.45}.pool-row-info{display:flex;align-items:center;gap:6px;flex:1;min-width:0}.pool-pair{font-weight:600;font-size:12px}.pool-addr-link{font-family:var(--font-mono);font-size:10px;color:var(--accent);text-decoration:none;opacity:.7}.pool-addr-link:hover{opacity:1;text-decoration:underline}.pool-add-grid{display:grid;grid-template-columns:1fr 100px 120px 80px 80px;gap:6px}.config-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.autobuy-toggle{display:flex;align-items:center;gap:6px;cursor:pointer;-webkit-user-select:none;user-select:none}.autobuy-toggle input[type=checkbox]{width:12px;height:12px;accent-color:var(--accent);cursor:pointer}.autobuy-label{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.5px;color:var(--text-muted);transition:color .15s}.autobuy-label.on{color:var(--accent)}.token-state-table{width:100%;border-collapse:collapse}.token-state-table th{position:sticky;top:0;background:var(--bg-panel);padding:6px 10px;text-align:left;font-size:10px;font-weight:600;letter-spacing:.5px;color:var(--text-muted);text-transform:uppercase;border-bottom:1px solid var(--border);z-index:1}.token-state-table td{padding:5px 10px;border-bottom:1px solid var(--border);font-size:12px}.token-state-table tr:hover td{background:var(--bg-hover)}.token-state-table tr:last-child td{border-bottom:none}.ts-row{transition:background .15s}.ts-symbol{font-weight:600;font-size:13px}.ts-addr{font-family:var(--font-mono);font-size:10px;color:var(--text-muted);margin-top:1px}.ts-status-badge{font-size:9px;font-weight:700;letter-spacing:.5px;padding:2px 8px;border-radius:var(--radius-xs)}.ts-status-badge.ts-active{background:var(--success-dim);color:var(--success)}.ts-status-badge.ts-inactive{background:var(--bg-input);color:var(--text-muted)}.ts-status-badge.ts-excluded{background:var(--danger-dim);color:var(--danger)}.ts-num{font-family:var(--font-mono);font-size:12px;color:var(--text-secondary)}.ts-small{font-size:11px}.ts-subtext{font-size:10px;color:var(--text-muted)}.ts-pnl.pos{color:var(--success)}.ts-pnl.neg{color:var(--danger)}.ts-actions{display:flex;gap:4px;align-items:center}.ts-btn-active{background:var(--accent-dim)!important;color:var(--accent)!important;border-color:#00d4aa33!important}.ts-btn-active:hover:not(:disabled){background:#00d4aa33!important}.ts-flash{font-size:14px;font-weight:700;margin-right:4px}.ts-flash.ok{color:var(--success)}.ts-flash.err{color:var(--danger)}.rotation-panel .panel-body{padding:0}.rot-panel-body{flex:1;overflow-y:auto;padding:6px}.rot-status-badge{display:inline-flex;align-items:center;font-size:10px;font-weight:600;padding:3px 10px;border-radius:20px;border:1px solid;background:transparent}.rot-pending-info{font-size:11px;color:var(--warning);padding:6px 10px;background:var(--warning-dim);border-radius:var(--radius-xs);margin-bottom:8px}.rot-token-list{display:flex;flex-direction:column;gap:4px}.rot-token-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px;transition:border-color .2s}.rot-token-card:hover{border-color:#ffffff1a}.rot-token-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.rot-token-symbol{font-weight:700;font-size:14px;margin-right:6px}.rot-token-addr{font-family:var(--font-mono);font-size:10px;color:var(--text-muted)}.rot-single-rotate-btn{color:var(--accent)!important;border-color:#00d4aa33!important}.rot-token-stats{display:flex;flex-direction:column;gap:3px}.rot-stat-row{display:flex;justify-content:space-between;align-items:center;padding:2px 0}.rot-stat-label{font-size:11px;color:var(--text-muted)}.rot-stat-val{font-family:var(--font-mono);font-size:11px;color:var(--text-secondary)}.rot-profit-pos{color:var(--success)!important}.rot-profit-neg{color:var(--danger)!important}.rot-urgent{color:var(--danger)!important;font-weight:600}.rot-balance{color:var(--text-primary)!important;font-weight:500}.rot-idle-bar{height:3px;border-radius:3px;background:var(--bg-input);margin-top:4px;overflow:hidden}.rot-idle-fill{height:100%;border-radius:3px;transition:width 1s linear}.rot-idle-fill.safe{background:var(--success)}.rot-idle-fill.warning{background:var(--warning)}.rot-idle-fill.danger{background:var(--danger)}.rot-queue-section{margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.rot-queue-title{font-size:10px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px}.rot-queue-list{display:flex;flex-wrap:wrap;gap:5px}.rot-queue-chip{font-size:11px;font-family:var(--font-mono);padding:3px 10px;border-radius:20px;background:var(--bg-input);color:var(--text-secondary);border:1px solid var(--border)}.rot-queue-chip.waiting{border-color:#00d4aa26}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000}.confirm-dialog{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);padding:24px;max-width:420px;box-shadow:var(--shadow-lg)}.confirm-dialog h3{font-size:16px;font-weight:600;margin-bottom:12px}.confirm-dialog p{font-size:13px;color:var(--text-secondary);margin-bottom:20px;line-height:1.6}.confirm-actions{display:flex;gap:8px;justify-content:flex-end}.snap-panel .panel-body{padding:0}.snap-body{flex:1;overflow-y:auto;padding:6px 10px;display:flex;flex-direction:column;gap:8px}.snap-block-title{font-size:10px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px}.snap-empty{font-size:11px;color:var(--text-muted);text-align:center;padding:12px}.snap-rows{display:flex;flex-direction:column;gap:2px}.snap-row{display:flex;align-items:center;gap:6px;padding:1px 0;font-size:11px}.snap-time{width:50px;font-family:var(--font-mono);font-size:10px;color:var(--text-muted);flex-shrink:0}.snap-bar-wrap{flex:1;height:4px;border-radius:4px;background:var(--bg-input);overflow:hidden}.snap-bar{height:100%;background:linear-gradient(90deg,var(--accent),#00e8bc);border-radius:4px;transition:width .5s ease}.snap-usd{font-family:var(--font-mono);font-size:11px;color:var(--text-primary);width:90px;text-align:right;flex-shrink:0}.snap-profit{font-family:var(--font-mono);font-size:10px;width:70px;text-align:right;flex-shrink:0}.snap-profit-pos{color:var(--success)}.snap-profit-neg{color:var(--danger)}.snap-profit-zero{color:var(--text-muted)}.snap-divider{height:1px;background:var(--border)}.snap-header-total{font-family:var(--font-mono);font-size:14px;font-weight:600;color:var(--text-primary)}.snap-header-profit{font-family:var(--font-mono);font-size:12px;font-weight:500}.snap-header-profit.snap-profit-pos{color:var(--success)}.snap-header-profit.snap-profit-neg{color:var(--danger)}.snap-header-profit.snap-profit-zero{color:var(--text-muted)}.wallet-card{display:flex;flex-direction:column}.wallet-card-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--bg-card);cursor:pointer;transition:background .15s;border-bottom:1px solid var(--border)}.wallet-card-header:hover{background:#ffffff08}.wallet-total{font-family:var(--font-mono);font-size:13px;font-weight:600;color:var(--text-primary);margin-left:auto;margin-right:8px}.wallet-toggle{color:var(--text-muted);font-size:12px}.wallet-card-body{padding:4px 0;overflow-y:auto}.wallet-empty{font-size:11px;color:var(--text-muted);text-align:center;padding:12px}.wallet-token-row{display:flex;align-items:center;justify-content:space-between;padding:3px 10px;font-size:11px;transition:background .1s}.wallet-token-row:hover{background:var(--bg-hover)}.wallet-token-info{display:flex;align-items:center;gap:6px}.wallet-token-symbol{font-weight:500}.wallet-token-badge{font-size:9px;font-weight:600;letter-spacing:.3px;padding:1px 5px;border-radius:3px;text-transform:uppercase}.badge-native{background:#ffbe0b1f;color:var(--warning)}.badge-stable{background:var(--success-dim);color:var(--success)}.badge-rotation{background:var(--accent-dim);color:var(--accent)}.wallet-token-values{display:flex;gap:12px;align-items:center}.wallet-token-balance{font-family:var(--font-mono);font-size:11px;color:var(--text-secondary)}.wallet-token-usd{font-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--text-primary);min-width:70px;text-align:right}.wallet-pool-tag{font-size:9px;padding:1px 5px;border-radius:3px;background:#6366f12e;color:var(--accent);font-family:var(--font-mono);white-space:nowrap}.wallet-sell-btn{font-size:10px;padding:2px 7px;white-space:nowrap}.profit-tracker-panel{flex-shrink:0}.profit-tracker-body{overflow-y:auto;padding:6px;max-height:180px}.profit-tables-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.profit-table-wrap{display:flex;flex-direction:column}.profit-table-header{font-size:10px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px}.profit-table-scroll{max-height:220px;overflow-y:auto}.profit-table{width:100%;border-collapse:collapse}.profit-table th{position:sticky;top:0;background:var(--bg-panel);padding:4px 8px;text-align:right;font-size:9px;font-weight:600;letter-spacing:.3px;color:var(--text-muted);text-transform:uppercase;border-bottom:1px solid var(--border);z-index:1}.profit-table th:first-child{text-align:left}.profit-table td{padding:3px 8px;border-bottom:1px solid var(--border);font-size:11px}.profit-table tr:hover td{background:var(--bg-hover)}.profit-table tr:last-child td{border-bottom:none}.profit-time{font-family:var(--font-mono);font-size:10px;color:var(--text-muted)}.profit-num{font-family:var(--font-mono);font-size:11px;text-align:right;color:var(--text-secondary)}.profit-total{color:var(--text-primary);font-weight:500}.profit-pos{color:var(--success)!important}.profit-neg{color:var(--danger)!important}.profit-zero{color:var(--text-muted)!important}.profit-empty{text-align:center!important;color:var(--text-muted);padding:16px!important}.rotation-state-page{padding:8px;flex:1;overflow-y:auto}.rs-section{padding:10px 14px}.rs-section+.rs-section{border-top:1px solid var(--border)}.rs-section-title{font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--text-secondary);margin-bottom:10px;display:flex;align-items:center;gap:8px}.rs-section-count{font-size:10px;font-family:var(--font-mono);background:var(--bg-input);padding:1px 8px;border-radius:10px;color:var(--text-muted)}.rs-empty{font-size:11px;color:var(--text-muted);padding:12px 0}.rs-table{width:100%;border-collapse:collapse}.rs-table th{padding:5px 10px;text-align:left;font-size:10px;font-weight:600;letter-spacing:.5px;color:var(--text-muted);text-transform:uppercase;border-bottom:1px solid var(--border)}.rs-table td{padding:5px 10px;border-bottom:1px solid var(--border);font-size:12px}.rs-table tr:hover td{background:var(--bg-hover)}.rs-table tr:last-child td{border-bottom:none}.rs-ticker{font-weight:600;font-size:13px}.rs-uuid{font-family:var(--font-mono);font-size:10px;color:var(--text-muted)}.rs-net-badge{font-size:9px;font-weight:600;letter-spacing:.4px;text-transform:uppercase;padding:2px 6px;border-radius:var(--radius-xs);background:var(--bg-input);color:var(--text-secondary)}.rs-num{font-family:var(--font-mono);font-size:12px}.rs-removed-row td{opacity:.5}.login-wrap{display:flex;align-items:center;justify-content:center;flex:1;background:var(--bg-base);background-image:radial-gradient(ellipse at 20% 50%,rgba(0,212,170,.05) 0%,transparent 50%),radial-gradient(ellipse at 80% 50%,rgba(0,100,200,.04) 0%,transparent 50%)}.login-card{background:var(--bg-panel);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--border);border-radius:16px;padding:40px;width:360px;box-shadow:var(--shadow-lg)}.login-brand{text-align:center;margin-bottom:32px}.login-brand .logo-badge{font-size:12px;padding:6px 14px;letter-spacing:2px;margin-bottom:12px;display:inline-block}.login-brand h2{font-size:16px;font-weight:500;color:var(--text-secondary);margin-top:12px;letter-spacing:.5px}.login-form{display:flex;flex-direction:column;gap:16px}.login-form .config-input{height:42px;font-size:13px;border-radius:var(--radius-sm)}.login-form .btn-primary{height:42px;font-size:13px;border-radius:var(--radius-sm);margin-top:4px}.login-error{font-size:12px;color:var(--danger);text-align:center;padding:8px;background:var(--danger-dim);border-radius:var(--radius-xs)}.pl-page{display:flex;flex-direction:column;gap:6px;padding:8px;flex:1;min-height:0;overflow-y:auto}.pl-steps{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.pl-steps-label{font-size:11px;font-weight:500;color:var(--text-muted);margin-right:4px}.pl-step-btn{padding:10px 20px!important;font-size:13px;font-weight:600}.spin{display:inline-block;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.pl-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;min-height:450px}.pl-panel{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow)}.pl-panel-hd{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;border-bottom:1px solid var(--border)}.pl-panel-title{font-size:13px;font-weight:600;letter-spacing:.8px;text-transform:uppercase;color:var(--text-primary)}.pl-status{font-size:10px;font-family:var(--font-mono);color:var(--text-muted)}.pl-status.ok{color:var(--success)}.pl-status.err{color:var(--danger)}.pl-tab-row{display:flex;align-items:center;gap:2px;padding:6px 10px;border-bottom:1px solid var(--border);background:var(--bg-card)}.pl-tab{padding:4px 12px;font-size:12px;font-family:var(--font-mono);font-weight:500;border:none;border-radius:var(--radius-xs);cursor:pointer;background:transparent;color:var(--text-secondary);transition:all .15s}.pl-tab:hover{color:var(--text-primary)}.pl-tab.active{background:var(--accent-dim);color:var(--accent)}.pl-editor{flex:1;width:100%;padding:12px 16px;font-family:var(--font-mono);font-size:12px;line-height:1.6;background:transparent;border:none;color:var(--text-primary);resize:none;outline:none}.pl-terminal{flex:1;overflow-y:auto;padding:12px 16px;font-family:var(--font-mono);font-size:11px;line-height:1.7;white-space:pre-wrap;word-break:break-all}.pl-apply-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.pl-apply-info{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px}.pl-apply-stat{color:var(--text-secondary)}.pl-apply-stat strong{color:var(--text-primary)}.pl-apply-arrow{color:var(--text-muted)}.pl-apply-result{font-size:11px;padding:2px 10px;border-radius:20px}.pl-apply-result.ok{background:var(--success-dim);color:var(--success)}.pl-apply-result.warn{background:var(--warning-dim);color:var(--warning)}.pl-apply-btn{font-weight:600}.pl-pools{display:flex;flex-direction:column;gap:8px}.pl-stats-row{display:flex;gap:16px}.pl-stat{padding:6px 12px;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-sm);flex:1}.pl-stat-lbl{font-size:11px;font-weight:500;letter-spacing:.3px;color:var(--text-secondary);text-transform:uppercase;margin-bottom:2px}.pl-stat-val{font-family:var(--font-mono);font-size:16px;font-weight:600;color:var(--text-primary)}.pl-bulk-bar{display:flex;align-items:center;gap:8px;padding:8px 14px;background:var(--bg-panel);border:1px solid rgba(255,77,109,.15);border-radius:var(--radius-sm);flex-wrap:wrap}.pl-bulk-title{font-size:11px;font-weight:600;color:var(--danger);white-space:nowrap}.pl-bulk-input{width:120px;padding:5px 8px;font-size:11px;font-family:var(--font-mono);background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-xs);color:var(--text-primary);outline:none}.pl-bulk-input:focus{border-color:var(--danger)}.pl-bulk-input::placeholder{color:var(--text-muted)}.pl-info-bar{background:var(--bg-panel)!important;border:1px solid var(--border)}.pl-toolbar{display:flex;align-items:center;gap:8px}.pl-search{flex:1;padding:8px 14px;font-size:12px;font-family:var(--font-sans);background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);outline:none;transition:border-color .2s}.pl-search:focus{border-color:var(--accent)}.pl-search::placeholder{color:var(--text-muted)}.pl-mln{width:140px;padding:8px 12px;font-size:12px;font-family:var(--font-mono);background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);outline:none}.pl-mln:focus{border-color:var(--accent)}.pl-mln::placeholder{color:var(--text-muted)}.pl-table-wrap{overflow:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-panel)}.pl-table-wrap table{width:100%;border-collapse:collapse}.pl-table-wrap th{position:sticky;top:0;background:var(--bg-panel);padding:6px 10px;text-align:left;font-size:11px;font-weight:600;letter-spacing:.5px;color:var(--text-secondary);text-transform:uppercase;border-bottom:1px solid var(--border);z-index:2;white-space:nowrap}.pl-table-wrap th.sort-asc:after{content:" ↑";color:var(--accent)}.pl-table-wrap th.sort-desc:after{content:" ↓";color:var(--accent)}.pl-table-wrap td{padding:5px 10px;border-bottom:1px solid var(--border);font-size:12px;white-space:nowrap}.pl-table-wrap tr:hover td{background:var(--bg-hover)}.pl-table-wrap tr:last-child td{border-bottom:none}.pl-cell-pair{font-weight:600;font-size:13px;display:flex;align-items:center;gap:6px}.pl-live-badge{font-size:8px;font-weight:700;letter-spacing:1px;padding:1px 5px;border-radius:3px;background:var(--success-dim);color:var(--success);border:1px solid rgba(0,214,143,.2)}.pl-cell-addr a{font-family:var(--font-mono);font-size:11px;color:var(--accent);text-decoration:none;opacity:.7}.pl-cell-addr a:hover{opacity:1;text-decoration:underline}.pl-cell-num{font-family:var(--font-mono);font-size:12px;color:var(--text-primary);text-align:right}.pl-del-btn{background:transparent;border:1px solid var(--border);border-radius:var(--radius-xs);color:var(--text-muted);cursor:pointer;padding:2px 6px;font-size:10px;transition:all .15s}.pl-del-btn:hover{color:var(--danger);border-color:var(--danger);background:var(--danger-dim)}.pl-del-btn:disabled{opacity:.3;cursor:not-allowed}.pl-sync-result{padding:8px 16px;font-size:13px;font-weight:500;color:var(--text-primary);background:var(--accent-dim);border:1px solid var(--border-active);border-radius:var(--radius-sm)}.pl-view-toggle{display:flex;gap:2px}.pl-pool-count{font-size:13px;font-weight:500;color:var(--text-primary)}.pl-terminal-empty{color:var(--text-secondary);font-size:12px}.badge{font-size:9px;font-weight:600;letter-spacing:.5px;padding:3px 8px;border-radius:var(--radius-xs);color:#fff;text-transform:uppercase}.pl-score-badge{font-family:var(--font-mono);font-size:11px;font-weight:600;padding:1px 6px;border-radius:var(--radius-xs)}.pl-score-badge.ok{background:var(--success-dim);color:var(--success)}.pl-score-badge.warn{background:var(--warning-dim);color:var(--warning)}.pl-score-badge.bad{background:var(--danger-dim);color:var(--danger)}.center-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:24px;color:var(--text-muted);font-size:12px}.spinner{width:18px;height:18px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.settings-panel .panel-body{padding:0}.tenant-trading-panel{margin-bottom:16px}.tenant-trading-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.tenant-trading-label{font-weight:600;font-size:13px}.tenant-trading-scan-warning{font-size:12px;line-height:1.45;margin:0 0 12px;padding:10px 12px;border-radius:8px;color:var(--danger);background:var(--danger-dim);border:1px solid rgba(255,77,109,.25)}button.tenant-trading-scan-warning--action{display:block;width:100%;box-sizing:border-box;font:inherit;text-align:left;cursor:pointer}button.tenant-trading-scan-warning--action:hover:not(:disabled){border-color:#ff4d6d73;filter:brightness(1.03)}button.tenant-trading-scan-warning--action:disabled{cursor:default;opacity:.85}.tenant-trading-scan-info{color:var(--accent)}.auth-hint{font-size:12px;color:var(--text-muted);margin:0 0 12px;line-height:1.45}.auth-hint code{font-family:var(--font-mono);font-size:11px}.auth-alt-link{margin:14px 0 0;text-align:center}.btn-link{background:none;border:none;color:var(--accent);cursor:pointer;font-size:13px;text-decoration:underline;padding:0}.btn-link:hover{color:var(--accent-hover)}.unified-header .role-badge{font-size:11px;color:var(--text-muted);margin-right:8px;font-family:var(--font-mono)}
