:root{--bg-app: #080B10;--bg-panel: #0E131B;--bg-panel-raised: #141C27;--bg-input: #0A0E15;--bg-hover: rgba(255, 255, 255, .045);--border: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .16);--text-primary: #F8FAFC;--text-secondary: #94A3B8;--text-muted: #64748B;--accent: #3B82F6;--accent-soft: rgba(59, 130, 246, .15);--accent-glow: rgba(59, 130, 246, .25);--pnl-up: #10B981;--pnl-up-bright: #34D399;--pnl-down: #EF4444;--pnl-down-bright: #F87171;--pnl-up-soft: rgba(16, 185, 129, .12);--pnl-down-soft: rgba(239, 68, 68, .12);--warn: #F59E0B;--warn-soft: rgba(245, 158, 11, .12);--danger: #EF4444;--danger-soft: rgba(239, 68, 68, .15);--book-real: #F59E0B;--book-paper: #38BDF8;--book-combined: #A78BFA;--book-overall: #C084FC;--book-accent: var(--book-real);--font-sans: "Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "SF Mono", Menlo, Consolas, monospace;--radius: 8px;--radius-sm: 5px;--radius-lg: 12px;--shadow-panel: 0 4px 20px -2px rgba(0, 0, 0, .5)}body[data-book=real]{--book-accent: var(--book-real)}body[data-book=paper]{--book-paper: #38BDF8;--book-accent: var(--book-paper)}body[data-book=combined]{--book-accent: var(--book-combined)}body[data-book=overall]{--book-accent: var(--book-overall)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg-app);color:var(--text-primary);font-family:var(--font-sans);font-size:13px;line-height:1.5;overflow:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.tnum,table td,table th,.console-line{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.mono{font-family:var(--font-mono)}.panel{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-panel);transition:border-color .2s ease}.panel:hover{border-color:#ffffff1c}.panel-head{padding:12px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:#ffffff04}.panel-title{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);display:flex;align-items:center;gap:8px}.panel-body{padding:14px 16px}.tile-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.tile{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;display:flex;flex-direction:column;gap:5px;min-width:0;box-shadow:0 2px 8px #00000040;transition:border-color .15s ease,transform .15s ease}.tile:hover{border-color:#ffffff1f}.tile-label{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);display:flex;align-items:center;gap:6px}.tile-scope{font-size:9px;font-weight:700;letter-spacing:.06em;padding:1px 5px;border-radius:3px;background:#ffffff0f;color:var(--text-secondary)}.tile-value{font-size:20px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:var(--font-mono)}.tile-sub{font-size:11px;color:var(--text-muted)}.dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex:none}.dot.running{background:var(--pnl-up);box-shadow:0 0 8px var(--pnl-up);animation:breathe 2s ease-in-out infinite}.dot.idle{background:var(--warn);box-shadow:0 0 8px var(--warn)}.dot.error{background:var(--danger);box-shadow:0 0 8px var(--danger);animation:breathe 1s ease-in-out infinite}.dot.stopped,.dot.unknown{background:var(--text-muted)}@keyframes breathe{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.9)}}.badge{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:2px 7px;border-radius:4px;border:1px solid transparent;white-space:nowrap}.badge-real{background:#f59e0b1f;color:var(--book-real);border-color:#f59e0b4d}.badge-paper{background:#38bdf81f;color:var(--book-paper);border-color:#38bdf84d}.badge-neutral{background:#ffffff0a;color:var(--text-secondary);border-color:var(--border)}.badge-warn{background:var(--warn-soft);color:var(--warn);border-color:#f59e0b4d}.badge-danger{background:var(--danger-soft);color:var(--danger);border-color:#ef44444d}.badge-up{background:var(--pnl-up-soft);color:var(--pnl-up-bright);border-color:#10b9814d}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-panel)}table.data{width:100%;border-collapse:collapse;font-size:12px}table.data th{position:sticky;top:0;z-index:1;background:var(--bg-panel-raised);color:var(--text-muted);font-size:9.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;text-align:left;padding:9px 12px;border-bottom:1px solid var(--border-strong);white-space:nowrap}table.data td{padding:8px 12px;border-bottom:1px solid var(--border);white-space:nowrap}table.data tbody tr:last-child td{border-bottom:none}table.data tbody tr:hover{background:var(--bg-hover)}table.data th.num,table.data td.num{text-align:right}table.data tbody tr.attention{background:#ef44441f}table.data tbody tr.attention:hover{background:#ef44442e}.row-click{cursor:pointer}.input,.select{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);padding:6px 10px;font-size:12px;font-family:inherit;outline:none;min-width:0;transition:border-color .15s}.input:focus,.select:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.input::placeholder{color:var(--text-muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--bg-panel-raised);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);padding:6px 12px;font-size:11.5px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .15s ease;white-space:nowrap}.btn:hover{border-color:var(--border-strong);background:#ffffff14}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 1px 4px #3b82f64d}.btn-primary:hover{background:#2563eb;border-color:#2563eb;box-shadow:0 2px 8px #3b82f666}.btn-danger{color:var(--danger);border-color:#ef444452;background:var(--danger-soft)}.btn-danger:hover{background:#ef444438}.segmented{display:flex;width:100%;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);padding:2px;gap:2px;box-sizing:border-box}.segmented button{flex:1 1 0;min-width:0;background:transparent;border:none;color:var(--text-secondary);padding:6px 2px;font-size:9.5px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;font-family:inherit;border-radius:4px;cursor:pointer;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .15s,color .15s}.segmented button:hover{color:var(--text-primary)}.segmented button[aria-pressed=true]{background:var(--book-accent);color:#0a0f16}.chip{background:transparent;border:1px solid var(--border);border-radius:999px;color:var(--text-secondary);padding:3px 11px;font-size:11px;font-weight:600;font-family:inherit;cursor:pointer}.chip:hover{border-color:var(--border-strong);color:var(--text-primary)}.chip[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.nav-link{display:flex;align-items:center;gap:10px;width:100%;padding:8px 12px;border-radius:var(--radius-sm);border:1px solid transparent;background:transparent;color:var(--text-secondary);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;text-align:left;transition:background .15s,color .15s}.nav-link:hover{background:#ffffff0a;color:var(--text-primary)}.nav-link[aria-current=page]{background:color-mix(in srgb,var(--book-accent) 14%,transparent);border-color:color-mix(in srgb,var(--book-accent) 32%,transparent);color:var(--book-accent)}.book-btn{display:flex;align-items:center;gap:9px;width:100%;padding:9px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-input);color:var(--text-secondary);font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;font-family:inherit;cursor:pointer;transition:all .15s}.book-btn:hover{border-color:var(--border-strong);color:var(--text-primary)}.book-btn[aria-pressed=true]{background:color-mix(in srgb,var(--btn-color) 15%,transparent);border-color:color-mix(in srgb,var(--btn-color) 45%,transparent);color:var(--btn-color)}.console{background:#05080c;border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px;font-family:var(--font-mono);font-size:12px;line-height:1.65;overflow-y:auto}.console-line{white-space:pre-wrap;word-break:break-word}.console-line.info{color:#7dd3fc}.console-line.warn{color:var(--warn)}.console-line.error{color:var(--pnl-down)}.console-line.success{color:var(--pnl-up)}.console-line.trace{color:var(--text-muted)}.banner{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:var(--radius);border:1px solid;font-size:13px;font-weight:500}.banner-danger{background:var(--danger-soft);border-color:#ef44444d;color:#fca5a5}.banner-warn{background:var(--warn-soft);border-color:#fbbf2447;color:#fde68a}.banner-info{background:var(--accent-soft);border-color:#3b82f647;color:#93c5fd}.toast{display:flex;align-items:center;gap:9px;padding:9px 13px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-panel-raised);font-size:12px;font-weight:500;box-shadow:0 8px 24px #00000073;animation:toast-in .14s ease-out}.toast-success{color:var(--pnl-up)}.toast-error{color:var(--pnl-down)}.toast-warning{color:var(--warn)}.toast-info{color:var(--text-secondary)}@keyframes toast-in{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1c;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#fff3}*{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.11) transparent}.empty{padding:36px 16px;text-align:center;color:var(--text-muted);font-size:13px}.muted{color:var(--text-muted)}.secondary{color:var(--text-secondary)}.up{color:var(--pnl-up)}.down{color:var(--pnl-down)}.warn{color:var(--warn)}.stale{opacity:.55}@keyframes spin{to{transform:rotate(360deg)}}.mobile-only{display:none}.desktop-only{display:inline}.mobile-scrim{display:none}.combined-grid{display:grid;grid-template-columns:minmax(0,1fr) 1px minmax(0,1fr);gap:16px;align-items:start}.combined-divider{align-self:stretch;background:var(--border);min-height:100%}@supports (height: 100dvh){html,body,#root{height:100dvh}}@media (max-width: 1180px){.split{grid-template-columns:minmax(0,1fr)!important}.combined-grid{grid-template-columns:minmax(0,1fr)}.combined-divider{min-height:0;height:1px;width:100%}}@media (min-width: 861px) and (max-width: 1180px){.sidebar{width:196px!important}.panel-body{padding:13px}.tile-value{font-size:19px}}@media (max-width: 860px){.mobile-only{display:inline-flex}.desktop-only{display:none}.mobile-scrim{display:block}.sidebar{position:fixed;inset:0 auto 0 0;width:min(84vw,290px)!important;transform:translate(-100%);transition:transform .22s ease;padding-bottom:env(safe-area-inset-bottom);box-shadow:0 0 32px #0009}.sidebar.open{transform:translate(0)}.tile-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.tile{padding:11px 12px;gap:4px}.tile-value{font-size:17px}.tile-label{font-size:9px;letter-spacing:.05em}.tile-sub{font-size:10px}.panel-body{padding:11px}.panel-head{padding:11px 12px;gap:9px}.btn,.chip,.select,.input{min-height:44px}.btn{padding:10px 14px}.chip{padding:9px 15px;font-size:12px}.segmented button{min-height:40px;padding:9px 14px}.nav-link{padding:12px;font-size:14px}.book-btn{padding:12px}.input,.select{font-size:16px}.table-wrap{overflow-x:visible;border:none;border-radius:0}table.data{display:block}table.data thead{display:none}table.data tbody{display:flex;flex-direction:column;gap:8px}table.data tr{display:flex;flex-direction:column;background:var(--bg-panel-raised);border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 2px}table.data tr.attention{border-color:#ef444473;background:var(--danger-soft)}table.data td{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 11px;border-bottom:1px solid var(--border);white-space:normal;text-align:right}table.data tr td:last-child{border-bottom:none}table.data td[data-label]:before{content:attr(data-label);flex:0 0 auto;margin-right:auto;font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);text-align:left}table.data td[data-primary]{order:-1;justify-content:flex-start;text-align:left;font-size:14px;font-weight:650;padding-top:9px}table.data td[data-primary]:before{content:none}.table-wrap.keep-table td[data-primary]{order:0}table.data td.num{text-align:right}table.data tbody tr:hover{background:var(--bg-panel-raised)}.table-wrap.keep-table{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);-webkit-overflow-scrolling:touch}.table-wrap.keep-table table.data{display:table}.table-wrap.keep-table thead{display:table-header-group}.table-wrap.keep-table tbody{display:table-row-group}.table-wrap.keep-table tr{display:table-row;background:none;border:none;padding:0}.table-wrap.keep-table td{display:table-cell;white-space:nowrap;text-align:left;padding:9px 12px}.table-wrap.keep-table td:before{content:none}.table-wrap.keep-table td.num{text-align:right}.console{font-size:11px;padding:9px}.chart-box{margin:0 -4px}}@media (max-width: 400px){.tile-row{grid-template-columns:minmax(0,1fr)}.tile-value{font-size:19px}}@media (max-height: 480px) and (orientation: landscape){.panel-head{padding:8px 12px}.tile{padding:8px 11px}.tile-value{font-size:16px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}@media (max-width: 860px){.hide-phone{display:none!important}}.header-bar{height:54px;flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 16px;background:var(--bg-panel);border-bottom:1px solid var(--border)}.header-left{display:flex;align-items:center;gap:10px;min-width:0;flex:1 1 auto;overflow:hidden}.header-right{display:flex;align-items:center;gap:12px;flex:none}.header-title{font-size:14px;font-weight:650;min-width:0;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 860px){.header-bar{gap:8px;padding:0 10px}.header-left{gap:7px}.header-right{gap:8px}.header-title{font-size:13px}.header-right .btn{padding:9px 11px}}@media (max-width: 430px){.header-title{display:none}}@media (max-width: 860px){.header-left .badge,.header-right .badge{padding:3px 6px;font-size:9px;letter-spacing:.03em}}@media (max-width: 640px){.header-bar{padding:0 8px;height:48px}.panel{padding:14px 12px}.segmented{flex-wrap:wrap;gap:3px}.segmented button{font-size:10px;min-height:36px;padding:6px 8px}.input,.select{width:100%!important;min-width:0!important}.table-wrap{margin:0 -4px;width:calc(100% + 8px)}}.switch-btn{position:relative;display:inline-flex;align-items:center;gap:6px;background:#ffffff0f;border:1px solid var(--border);border-radius:999px;padding:3px 8px 3px 4px;cursor:pointer;transition:all .2s ease;-webkit-user-select:none;user-select:none;font-size:11px;font-weight:600;color:var(--text-muted)}.switch-btn:hover:not(:disabled){border-color:#fff3}.switch-btn[aria-checked=true]{background:#10b98126;border-color:#10b98166;color:#34d399}.switch-btn[aria-checked=false]{background:#ef44441f;border-color:#ef44444d;color:#f87171}.switch-track{width:28px;height:16px;background:#ffffff26;border-radius:999px;position:relative;transition:background .2s ease;flex-shrink:0}.switch-btn[aria-checked=true] .switch-track{background:#10b981}.switch-btn[aria-checked=false] .switch-track{background:#ffffff1f}.switch-thumb{position:absolute;top:2px;left:2px;width:12px;height:12px;background:#fff;border-radius:50%;transition:transform .2s cubic-bezier(.4,0,.2,1);box-shadow:0 1px 3px #0006}.switch-btn[aria-checked=true] .switch-thumb{transform:translate(12px)}.segmented-toggle{display:inline-flex;background:var(--bg-input);border:1px solid var(--border);border-radius:6px;padding:2px;gap:2px}.segmented-toggle button{background:transparent;border:none;border-radius:4px;padding:3px 7px;font-size:10px;font-weight:700;letter-spacing:.03em;color:var(--text-muted);cursor:pointer;transition:all .15s ease;white-space:nowrap}.segmented-toggle button:hover:not(:disabled){color:var(--text-primary)}.segmented-toggle button.active-auto{background:#ffffff1f;color:#fff}.segmented-toggle button.active-real{background:#ef444440;border:1px solid rgba(239,68,68,.4);color:#f87171}.segmented-toggle button.active-paper{background:#3b82f640;border:1px solid rgba(59,130,246,.4);color:#60a5fa}
