:root{--bg: #0a0a0a;--bg-elevated: #111113;--sidebar: #0e0e10;--card: #161618;--card-hover: #1a1a1d;--border: #2a2a2e;--border-strong: #10b981;--text: #fafafa;--text-muted: #71717a;--emerald: #10b981;--emerald-dim: #059669;--emerald-glow: rgba(16, 185, 129, .15);--orange: #f59e0b;--orange-muted: rgba(245, 158, 11, .2);--blue: #3b82f6;--blue-muted: rgba(59, 130, 246, .2);--red: #ef4444;--red-muted: rgba(239, 68, 68, .12);--radius: 10px;--radius-lg: 12px;--font: "Plus Jakarta Sans", system-ui, sans-serif;--mono: "JetBrains Mono", monospace;--sidebar-w: 240px}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased}#app{min-height:100vh}.shell{display:flex;min-height:100vh}.nav-toggle,.nav-backdrop{display:none}.sidebar{width:var(--sidebar-w);flex-shrink:0;background:var(--sidebar);border-right:1px solid var(--border);padding:1.25rem 0;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:.65rem;padding:0 1.25rem 1.5rem;border-bottom:1px solid var(--border);margin-bottom:1rem}.brand-mark{width:36px;height:36px;border-radius:8px;background:linear-gradient(135deg,#10b981,#059669,#047857);display:grid;place-items:center;font-size:.65rem;font-weight:800;color:#fff;letter-spacing:-.02em}.brand-text{font-weight:700;font-size:1rem;letter-spacing:-.03em;line-height:1.2}.brand-text small{display:block;font-size:.65rem;font-weight:500;color:var(--text-muted);margin-top:.1rem}.nav{display:flex;flex-direction:column;gap:.2rem;padding:0 .75rem;flex:1}.nav a{display:flex;align-items:center;gap:.65rem;padding:.55rem .75rem;border-radius:8px;color:var(--text-muted);text-decoration:none;font-size:.875rem;font-weight:500;transition:background .15s,color .15s}.nav a:hover{color:var(--text);background:#ffffff0a}.nav a.active{color:var(--emerald);background:var(--emerald-glow)}.nav a svg{width:18px;height:18px;opacity:.85}.main{flex:1;min-width:0;padding:1.5rem 1.75rem 2.5rem;overflow-x:hidden}.main.page-hidden{display:none}.back-link{display:inline-flex;align-items:center;gap:.35rem;margin-bottom:.65rem;font-size:.8125rem;font-weight:600;color:var(--emerald);text-decoration:none}.back-link:hover{color:var(--emerald-dim)}.mono-inline{font-family:var(--mono);font-size:.88em;font-weight:500;color:var(--emerald);background:#10b9811a;padding:.12em .4em;border-radius:4px}.main-top{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.main-title{margin:0;font-size:1.5rem;font-weight:700;letter-spacing:-.03em}.main-sub{margin:.35rem 0 0;font-size:.875rem;color:var(--text-muted)}.main-sub .hl-ok{color:var(--emerald);font-weight:600}.main-sub .hl-warn{color:var(--orange);font-weight:600}.main-sub .hl-idle{color:var(--text-muted);font-weight:500}.header-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-radius:8px;padding:.55rem 1rem;font-family:var(--font);font-size:.8125rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;transition:background .15s,border-color .15s,opacity .15s,transform .05s}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:active:not(:disabled){transform:scale(.98)}.btn-primary{background:var(--emerald);color:#042f2e}.btn-primary:hover:not(:disabled){background:var(--emerald-dim);color:#fff}.btn-outline{background:transparent;color:var(--text);border:1px solid var(--border)}.btn-outline:hover:not(:disabled){border-color:var(--text-muted);background:#ffffff08}.btn-stop{background:transparent;color:var(--red);border:1px solid rgba(239,68,68,.45)}.btn-stop:hover:not(:disabled){background:var(--red-muted)}.btn .spinner{width:.9em;height:.9em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.icon-refresh{width:18px;height:18px}.status-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem 1.35rem;margin-bottom:1.25rem}.status-card-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.status-card-id{display:flex;align-items:flex-start;gap:.85rem}.pm-badge{width:44px;height:44px;border-radius:10px;background:var(--orange-muted);color:var(--orange);display:grid;place-items:center;font-size:.7rem;font-weight:800;letter-spacing:.02em;flex-shrink:0}.status-card-titles h2{margin:0;font-size:1.05rem;font-weight:700;letter-spacing:-.02em}.status-card-titles .interval-line{margin:.2rem 0 0;font-size:.8125rem;color:var(--text-muted)}.run-indicator{display:inline-flex;align-items:center;gap:.45rem;font-size:.8125rem;font-weight:600;color:var(--emerald)}.run-indicator.off{color:var(--text-muted)}.pulse{width:8px;height:8px;border-radius:50%;background:var(--emerald);box-shadow:0 0 #10b98180;animation:pulse 2s ease-out infinite}.run-indicator.off .pulse{background:var(--text-muted);box-shadow:none;animation:none}@keyframes pulse{0%{box-shadow:0 0 #10b98173}70%{box-shadow:0 0 0 8px #10b98100}to{box-shadow:0 0 #10b98100}}.wallet-strip{display:flex;align-items:center;gap:.5rem;padding:.65rem .85rem;border-radius:8px;border:1px solid var(--border-strong);background:#10b9810f;font-family:var(--mono);font-size:.78rem;color:var(--emerald);margin-bottom:1rem;word-break:break-all}.wallet-strip.missing{border-color:var(--border);color:var(--text-muted);background:#ffffff05}.metrics-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;margin-bottom:1rem}@media(min-width:640px){.metrics-grid{grid-template-columns:repeat(4,1fr)}}.metric{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:.75rem .85rem}.metric-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:.35rem}.metric-value{font-size:.9375rem;font-weight:700;letter-spacing:-.02em}.metric-value.emerald{color:var(--emerald)}.metric-value.muted{color:var(--text-muted);font-weight:600}.tag-row{display:flex;flex-wrap:wrap;gap:.5rem}.tag{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:.3rem .55rem;border-radius:6px}.tag-ok{color:var(--emerald);background:var(--emerald-glow);border:1px solid rgba(16,185,129,.35)}.tag-warn{color:var(--orange);background:var(--orange-muted);border:1px solid rgba(245,158,11,.35)}.tag-info{color:var(--blue);background:var(--blue-muted);border:1px solid rgba(59,130,246,.35)}.section-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.15rem 1.35rem;margin-bottom:1rem}.section-card h3{margin:0 0 1rem;font-size:.8125rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.settings-row{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}.settings-row label{font-size:.875rem;color:var(--text-muted)}.settings-stack{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.25rem}.settings-field label{display:block;font-size:.8125rem;color:var(--text-muted);margin-bottom:.35rem}.settings-field--inline{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}.settings-field--inline label{margin-bottom:0}.settings-input,.settings-select{width:100%;max-width:32rem;padding:.5rem .65rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-family:var(--mono);font-size:.8125rem}.settings-select{max-width:16rem;font-family:var(--font)}.settings-input:focus,.settings-select:focus{outline:none;border-color:var(--emerald-dim)}.settings-actions{display:flex;gap:.75rem}input[type=number]{width:4.5rem;padding:.5rem .55rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-family:var(--mono);font-size:.875rem}input[type=number]:focus{outline:none;border-color:var(--emerald)}.actions-row{display:flex;flex-wrap:wrap;gap:.5rem}.table-wrap{overflow-x:auto;border-radius:8px;border:1px solid var(--border);background:var(--bg)}table{width:100%;border-collapse:collapse;font-size:.8125rem}th,td{padding:.65rem .85rem;text-align:left;border-bottom:1px solid var(--border)}th{color:var(--text-muted);font-weight:600;font-size:.65rem;text-transform:uppercase;letter-spacing:.05em}tr:last-child td{border-bottom:none}.empty{text-align:center;padding:2rem 1rem;color:var(--text-muted);font-size:.875rem}.empty.hidden,table.hidden{display:none}.log-list{list-style:none;margin:0;padding:0;max-height:260px;overflow-y:auto;font-family:var(--mono);font-size:.72rem;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:.5rem .75rem}.log-list li{padding:.45rem 0;border-bottom:1px solid var(--border);color:var(--text-muted)}.log-list li:last-child{border-bottom:none}.log-list li.success{color:var(--emerald)}.log-list li.error{color:var(--red)}.log-list--page{max-height:min(520px,calc(100vh - 240px))}.log-page-card h3{margin-bottom:.75rem}.empty--log{margin-top:0;padding:1.5rem 1rem}.pf-notes{margin:0 0 1rem;font-size:.8125rem;color:var(--text-muted);line-height:1.45}.pf-metrics{margin-bottom:1.25rem}.pf-subheading{margin:0 0 .35rem;font-size:.8125rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.pf-hint{margin:0 0 .75rem;font-size:.75rem;color:var(--text-muted)}.pf-table{font-size:.75rem}.table-wrap--scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.pf-table th,.pf-table td{white-space:nowrap}.pf-table td:first-child{white-space:normal;max-width:220px}.trades-table td:nth-child(3){white-space:normal;max-width:min(320px,42vw)}.closed-table td:nth-child(2){white-space:normal;max-width:min(280px,38vw)}.trade-side-buy{color:var(--emerald);font-weight:600}.trade-side-sell{color:var(--red);font-weight:600}.tx-link{color:var(--blue);text-decoration:none}.tx-link:hover{text-decoration:underline}.trades-pager{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.trades-pager-info{font-size:.8125rem;color:var(--text-muted)}.trades-pager-btns{display:flex;gap:.5rem}.pnl-pos{color:var(--emerald)}.pnl-neg{color:var(--red)}.log-time{color:var(--text-muted);margin-right:.45rem}#toast-root{position:fixed;bottom:1rem;right:1rem;z-index:1000;display:flex;flex-direction:column;gap:.5rem;max-width:min(360px,calc(100vw - 2rem));pointer-events:none}.toast{pointer-events:auto;padding:.75rem 1rem;border-radius:var(--radius);background:var(--card);border:1px solid var(--border);box-shadow:0 12px 40px #00000080;font-size:.875rem;animation:toastIn .2s ease}.toast.err{border-color:#ef444473}@keyframes toastIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.nav-toggle{display:flex;position:fixed;top:.65rem;right:.65rem;z-index:1002;width:2.75rem;height:2.75rem;align-items:center;justify-content:center;border-radius:10px;border:1px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;padding:0;box-shadow:0 4px 14px #00000059}.nav-toggle svg{width:1.35rem;height:1.35rem}.nav-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#00000080;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,visibility .2s}.shell.sidebar-open .nav-backdrop{opacity:1;visibility:visible;pointer-events:auto}.shell{flex-direction:column;min-height:100vh;min-height:100dvh}.sidebar{position:fixed;top:0;left:0;width:min(17.5rem,88vw);height:100vh;height:100dvh;flex-direction:column;align-items:stretch;padding:1rem .75rem 1.25rem;border-right:1px solid var(--border);border-bottom:none;transform:translate(-105%);transition:transform .22s ease;z-index:1001;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;flex-shrink:0}.shell.sidebar-open .sidebar{transform:translate(0)}.brand{position:static;margin:0 0 .75rem;padding:0 .5rem .75rem;border:none;border-bottom:1px solid var(--border);flex:none}.nav{flex-direction:column;flex-wrap:nowrap;flex:none;width:100%;padding:0 .25rem;gap:.2rem}.nav a{flex:none;min-width:unset;justify-content:flex-start}.main{padding:3.35rem 1rem 1rem;flex:1;min-height:0;width:100%}.main .header-actions{padding-right:3.15rem}}
