*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.top-3{top:.75rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.flex-shrink{flex-shrink:1}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.break-all{word-break:break-all}.border{border-width:1px}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.underline{text-decoration-line:underline}.outline{outline-style:solid}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow{--tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / .1)) drop-shadow(0 1px 1px rgb(0 0 0 / .06));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: oklch(.1 .008 245);--surface: oklch(.14 .007 245);--surface-2: oklch(.18 .007 245);--border: oklch(.23 .007 245);--text: oklch(.93 .004 245);--text-muted: oklch(.52 .01 245);--text-dim: oklch(.33 .008 245);--buy: oklch(.56 .16 160);--sell: oklch(.58 .18 10);--amber: oklch(.7 .14 80);--accent: oklch(.64 .13 225);--mono: "JetBrains Mono", "IBM Plex Mono", ui-monospace, monospace;--accent: oklch(.66 .14 258);--accent-fg: oklch(.98 .005 258);--accent-soft: oklch(.26 .06 258);--accent-border: oklch(.42 .1 258);--green: oklch(.62 .13 152);--green-soft: oklch(.24 .05 152);--green-border: oklch(.5 .13 152);--amber-soft: oklch(.3 .07 80);--red: oklch(.66 .18 28);--red-soft: oklch(.27 .08 28);--row-hover: oklch(.2 .008 245);--row-selected: oklch(.23 .02 258)}.mappings-tbl{width:100%;border-collapse:separate;border-spacing:0}.mappings-tbl thead th{font-size:10.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-dim);text-align:left;padding:8px 12px;border-bottom:1px solid var(--border);background:var(--surface-2);position:sticky;top:0;z-index:1}.mappings-tbl tbody td{padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:middle;font-size:13px}.mappings-tbl tbody tr{cursor:pointer}.mappings-tbl tbody tr:hover td{background:var(--row-hover)}.mappings-tbl tbody tr.is-selected td{background:var(--row-selected)}.mappings-tbl tbody tr.is-muted td,.mappings-tbl tbody tr.is-muted td .merchant-label{color:var(--text-muted)}.ticker-pill{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:11.5px;font-weight:600;padding:2px 7px;border-radius:4px;border:1.5px solid var(--border);background:var(--surface);color:var(--text);white-space:nowrap}.ticker-pill.is-valid{border-color:var(--green-border);box-shadow:0 0 0 1px var(--green-border);background:var(--green-soft);color:#9fe4b1}.ticker-pill.is-invalid{border-color:var(--red);background:var(--red-soft);color:#ffbfb6;color:oklch(.86 .1 28)}.ticker-pill.is-empty{border-style:dashed;color:var(--text-dim);font-weight:500}.seg-control{display:inline-flex;border:1px solid var(--border);border-radius:6px;overflow:hidden;background:var(--surface)}.seg-control button{padding:5px 11px;font-size:12px;background:transparent;border:0;cursor:pointer;color:var(--text-muted);border-right:1px solid var(--border)}.seg-control button:last-child{border-right:0}.seg-control button.is-active{background:var(--surface-2);color:var(--text)}.inbox-banner{display:flex;align-items:center;gap:14px;padding:12px 16px;background:var(--accent-soft);border:1px solid var(--accent-border);border-radius:12px}.inbox-banner .inbox-count{font-family:var(--mono);font-weight:700;font-size:18px;color:var(--text);padding:2px 10px;border-radius:6px;background:var(--surface);border:1px solid var(--accent-border);font-variant-numeric:tabular-nums}.cat-chip{display:inline-flex;align-items:center;gap:5px;padding:2px 7px;font-size:11px;font-weight:500;border-radius:4px;background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted);white-space:nowrap}.cat-chip .chip-dot{width:6px;height:6px;border-radius:50%}.cat-chip.is-uncat{background:var(--amber-soft);border-color:var(--amber);color:var(--amber)}.library-drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:90;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.library-drawer{position:fixed;top:0;right:0;bottom:0;width:560px;max-width:100vw;background:var(--bg);border-left:1px solid var(--border);box-shadow:-8px 0 24px #0006;display:flex;flex-direction:column;z-index:91;animation:slideInRight .18s ease-out}@keyframes slideInRight{0%{transform:translate(20px);opacity:0}to{transform:translate(0);opacity:1}}html,body,#root{height:100%}body{font-family:Inter,system-ui,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}input,button,select,textarea{font-family:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes slideUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-5px)}80%{transform:translate(5px)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}table{border-collapse:collapse}th,td{border:none}[data-numeric]{font-family:var(--mono);font-variant-numeric:tabular-nums}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}:root{--viz-rh: oklch(.74 .17 145);--viz-tradebot: oklch(.74 .16 258);--viz-strategy: oklch(.78 .15 80);--viz-strategy-2: oklch(.72 .16 320);--viz-strategy-3: oklch(.75 .15 195);--viz-strategy-4: oklch(.72 .16 30);--viz-spy: oklch(.8 .15 315)}.v2-stacked-bar{display:flex;width:100%;height:8px;border-radius:999px;overflow:hidden;background:var(--surface-2)}.v2-stacked-bar>span{display:block;height:100%}.v2-tab-bar{display:flex;gap:2px;border-bottom:1px solid var(--border);padding:0 4px}.v2-tab{display:inline-flex;align-items:center;gap:8px;padding:12px 16px;border:0;background:transparent;color:var(--text-muted);font-size:13px;font-weight:500;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .1s;cursor:pointer}.v2-tab:hover{color:var(--text)}.v2-tab.is-active{color:var(--text);border-bottom-color:var(--accent)}.v2-tab-count{font-family:var(--mono);font-size:11px;padding:1px 6px;border-radius:999px;background:var(--surface-2);color:var(--text-muted);font-weight:500}.v2-tab.is-active .v2-tab-count{background:var(--accent-soft);color:var(--accent)}.v2-kpi-tile{padding:14px 16px;background:var(--surface);border:1px solid var(--border);border-radius:10px;display:flex;flex-direction:column;gap:4px;min-width:0}.v2-kpi-label{font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-dim);display:flex;align-items:center;gap:6px}.v2-kpi-value{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:22px;font-weight:500;letter-spacing:-.01em}.v2-kpi-sub{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:12px;color:var(--text-muted)}.v2-panel{background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden}.v2-table{width:100%;border-collapse:separate;border-spacing:0;font-size:12.5px}.v2-table thead th{font-size:10.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-dim);text-align:right;padding:10px 14px;border-bottom:1px solid var(--border);background:var(--surface);white-space:nowrap}.v2-table thead th.left{text-align:left}.v2-table thead th.center{text-align:center}.v2-table thead th.is-sortable{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.v2-table thead th.is-sortable:hover{color:var(--text)}.v2-table tbody td{padding:10px 14px;border-bottom:1px solid var(--border);font-size:13px;text-align:right;white-space:nowrap;vertical-align:middle}.v2-table tbody td.left{text-align:left}.v2-table tbody td.center{text-align:center}.v2-table tbody tr:hover td{background:var(--surface-2)}.v2-table tbody tr:hover .v2-row-actions{opacity:1}.v2-row-actions{display:inline-flex;gap:4px;opacity:.55;transition:opacity .12s}.v2-strategy-group-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--surface);border-bottom:1px solid var(--border);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.v2-strategy-group-header:hover{background:var(--surface-2)}.v2-strategy-group-header .v2-caret{display:inline-block;transition:transform .15s;color:var(--text-dim);font-size:9px}.v2-strategy-group-header.is-open .v2-caret{transform:rotate(90deg)}.v2-drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:80;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fadeIn .15s ease}.v2-drawer{position:fixed;top:0;right:0;bottom:0;width:460px;max-width:100vw;background:var(--bg);border-left:1px solid var(--border);box-shadow:-8px 0 32px #00000080;display:flex;flex-direction:column;z-index:81;animation:slideInRight .2s ease-out}@keyframes slideInRight{0%{transform:translate(40px);opacity:0}to{transform:translate(0);opacity:1}}.v2-btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:5px 10px;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:11px;font-weight:500;font-family:inherit;cursor:pointer;transition:all .1s}.v2-btn:hover:not(:disabled){background:var(--surface-2)}.v2-btn:disabled{opacity:.4;cursor:not-allowed}.v2-btn.buy{background:color-mix(in oklab,var(--buy) 14%,transparent);border-color:color-mix(in oklab,var(--buy) 35%,transparent);color:var(--buy)}.v2-btn.sell{background:color-mix(in oklab,var(--sell) 14%,transparent);border-color:color-mix(in oklab,var(--sell) 35%,transparent);color:var(--sell)}.v2-btn.amber{background:color-mix(in oklab,var(--amber) 14%,transparent);border-color:color-mix(in oklab,var(--amber) 32%,transparent);color:var(--amber)}.input{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:34px;padding:0 11px;border-radius:7px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:13px;font-family:inherit;line-height:1.2;transition:border-color .12s,box-shadow .12s}.input::-moz-placeholder{color:var(--text-dim)}.input::placeholder{color:var(--text-dim)}.input:hover:not(:disabled):not(:focus){border-color:var(--text-dim)}.input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in oklab,var(--accent) 22%,transparent)}.input:disabled{opacity:.5;cursor:not-allowed}.input[type=number]{-moz-appearance:textfield}.input[type=number]::-webkit-outer-spin-button,.input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:34px;padding:0 14px;border-radius:7px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:13px;font-weight:500;font-family:inherit;white-space:nowrap;cursor:pointer;transition:background .12s,border-color .12s,color .12s,opacity .12s}.btn:hover:not(:disabled){background:var(--surface-2);border-color:var(--text-dim)}.btn:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in oklab,var(--accent) 22%,transparent)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.buy{background:color-mix(in oklab,var(--buy) 16%,transparent);border-color:color-mix(in oklab,var(--buy) 38%,transparent);color:var(--buy)}.btn.buy:hover:not(:disabled){background:color-mix(in oklab,var(--buy) 24%,transparent);border-color:color-mix(in oklab,var(--buy) 50%,transparent)}.btn.sell{background:color-mix(in oklab,var(--sell) 16%,transparent);border-color:color-mix(in oklab,var(--sell) 38%,transparent);color:var(--sell)}.btn.sell:hover:not(:disabled){background:color-mix(in oklab,var(--sell) 24%,transparent);border-color:color-mix(in oklab,var(--sell) 50%,transparent)}.btn.icon{width:34px;padding:0;color:var(--text-muted)}.btn.icon:hover:not(:disabled){color:var(--text)}.v2-chip{display:inline-flex;align-items:center;gap:5px;padding:2px 7px;border-radius:4px;font-size:11px;font-weight:500;background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted);white-space:nowrap}.v2-chip.rh{background:color-mix(in oklab,var(--viz-rh) 14%,transparent);border-color:color-mix(in oklab,var(--viz-rh) 30%,transparent);color:var(--viz-rh)}.v2-chip.tradebot{background:color-mix(in oklab,var(--viz-tradebot) 14%,transparent);border-color:color-mix(in oklab,var(--viz-tradebot) 30%,transparent);color:var(--viz-tradebot)}.v2-chip.strategy{background:color-mix(in oklab,var(--viz-strategy) 14%,transparent);border-color:color-mix(in oklab,var(--viz-strategy) 30%,transparent);color:var(--viz-strategy)}.v2-chip-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;display:inline-block}:root{--elev-1: 0 1px 2px rgba(0, 0, 0, .3);--elev-2: 0 8px 24px rgba(0, 0, 0, .38);--elev-3: 0 24px 64px rgba(0, 0, 0, .55);--glass-bg: color-mix(in oklab, var(--surface) 72%, transparent);--glass-blur: 10px;--glass-border: color-mix(in oklab, var(--text) 8%, var(--border));--grad-accent: linear-gradient(135deg, color-mix(in oklab, var(--accent) 22%, transparent), transparent);--grad-surface: linear-gradient(180deg, color-mix(in oklab, var(--text) 3%, var(--surface)), var(--surface));--grad-buy: linear-gradient(180deg, color-mix(in oklab, var(--buy) 16%, transparent), transparent);--grad-sell: linear-gradient(180deg, color-mix(in oklab, var(--sell) 16%, transparent), transparent);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--dur-fast: .12s;--dur: .2s;--dur-slow: .4s}.elevated{background:var(--grad-surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--elev-1);transition:box-shadow var(--dur) var(--ease-out),transform var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out)}.elevated:hover{box-shadow:var(--elev-2);transform:translateY(-1px);border-color:var(--text-dim)}.glass{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border-color:var(--glass-border)}.v2-kpi-tile.premium{background:var(--grad-surface);box-shadow:var(--elev-1);transition:box-shadow var(--dur) var(--ease-out),transform var(--dur) var(--ease-out)}.v2-kpi-tile.premium:hover{box-shadow:var(--elev-2);transform:translateY(-1px)}.shimmer{position:relative;overflow:hidden;background:var(--surface-2)}.shimmer:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,color-mix(in oklab,var(--text) 6%,transparent),transparent);animation:sheen 1.6s var(--ease-out) infinite}@keyframes sheen{to{transform:translate(100%)}}@keyframes countUp{0%{opacity:0;filter:blur(6px);transform:translateY(4px)}to{opacity:1;filter:blur(0);transform:translateY(0)}}@keyframes popIn{0%{opacity:0;transform:scale(.96) translateY(4px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes drawLine{0%{stroke-dashoffset:var(--draw-len, 1000)}to{stroke-dashoffset:0}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.app-sidebar{width:200px;flex-shrink:0;border-right:1px solid var(--border);background:var(--grad-surface);box-shadow:inset -1px 0 0 var(--glass-border);display:flex;flex-direction:column;padding:12px 8px}.app-menu-btn{display:none;align-items:center;justify-content:center;width:34px;height:34px;padding:0;flex-shrink:0;background:transparent;border:1px solid var(--border);border-radius:6px;color:var(--text-muted)}.app-menu-btn:hover{color:var(--text);background:var(--surface-2)}.app-sidebar-overlay{display:none}@media (max-width: 768px){.app-menu-btn{display:inline-flex}.app-sidebar{position:fixed;top:0;left:0;bottom:0;z-index:81;transform:translate(-100%);transition:transform .22s ease;box-shadow:8px 0 32px #00000080}.app-sidebar.is-open{transform:translate(0)}.app-sidebar-overlay.is-open{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:80;animation:fadeIn .15s ease}}
