:root{--bg: #020617;--panel: #0e1223;--panel-2: #101528;--navy: #0f172a;--green: #16a34a;--green-bright: #22c55e;--red: #dc2626;--fg: #f8fafc;--muted: #94a3b8;--line: #334155;--line-soft: #1e293b;--accent-violet: #6366f1;--glass-navy: rgba(15, 23, 42, .72);--glass-navy-deep: rgba(15, 23, 42, .88);--glass-panel: rgba(14, 18, 35, .6);--glass-head: rgba(15, 23, 42, .55);--veil: rgba(2, 6, 23, .55);--blur: blur(14px) saturate(140%);--blur-soft: blur(8px) saturate(130%);--ease: cubic-bezier(.22, .61, .24, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--t-fast: .14s;--t-med: .26s;--t-slow: .48s;--shadow-float: 0 14px 40px rgba(0, 0, 0, .45), 0 2px 8px rgba(0, 0, 0, .35);--shadow-bar: 0 8px 24px rgba(0, 0, 0, .35);--sans: "IBM Plex Sans", -apple-system, "Segoe UI", sans-serif;--mono: "IBM Plex Mono", "SFMono-Regular", monospace;--t-micro: 13px;--t-data: 15px;--t-body: 16px;--t-panel: 20px;--t-display: 30px;--row-h: 44px}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--fg);font-family:var(--sans);font-size:var(--t-body);line-height:1.55;-webkit-font-smoothing:antialiased}#root{min-height:100vh}::selection{background:var(--green);color:#fff}a{color:inherit;text-decoration:none;transition:color var(--t-fast) var(--ease)}a:hover{color:var(--fg)}button{font-family:inherit}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--line);border:2px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:var(--muted)}.num,.mono{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.delta-up{color:var(--green-bright)}.delta-down{color:var(--red)}.delta-flat{color:var(--muted)}@keyframes tickUp{0%{background-color:#16a34a47;color:var(--green-bright)}to{background-color:transparent}}@keyframes tickDown{0%{background-color:#dc262642;color:var(--red)}to{background-color:transparent}}.tick-up{animation:tickUp .9s var(--ease-out) both;border-radius:1px}.tick-down{animation:tickDown .9s var(--ease-out) both;border-radius:1px}.app{display:grid;grid-template-rows:auto auto 1fr auto;min-height:100vh;background:repeating-linear-gradient(0deg,rgba(51,65,85,.07) 0 1px,transparent 1px 72px),repeating-linear-gradient(90deg,rgba(51,65,85,.07) 0 1px,transparent 1px 72px),var(--bg)}.shell{display:grid;grid-template-columns:216px 1fr;min-height:0}.main{min-width:0;padding:20px 24px 40px;display:flex;flex-direction:column;gap:20px}.main>*{animation:riseIn .46s var(--ease-out) both}.main>*:nth-child(1){animation-delay:0ms}.main>*:nth-child(2){animation-delay:60ms}.main>*:nth-child(3){animation-delay:.12s}.main>*:nth-child(4){animation-delay:.18s}.main>*:nth-child(5){animation-delay:.24s}.main>*:nth-child(n+6){animation-delay:.3s}@keyframes riseIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.statusbar{display:flex;align-items:stretch;height:46px;border-bottom:1px solid var(--line);background:var(--glass-navy);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--shadow-bar);font-size:var(--t-micro);position:sticky;top:0;z-index:40}.statusbar .brand{display:flex;align-items:center;gap:10px;padding:0 16px;border-right:1px solid var(--line);font-family:var(--sans);font-weight:700;font-size:16px;letter-spacing:.08em}.statusbar .brand img{width:22px;height:22px;display:block;border:1px solid var(--line);transition:transform var(--t-slow) var(--ease-out)}.statusbar .brand:hover img{transform:rotate(-4deg) scale(1.08)}.statusbar .metric{display:flex;align-items:center;gap:8px;padding:0 14px;border-right:1px solid var(--line-soft);color:var(--muted);white-space:nowrap;transition:background var(--t-fast) var(--ease)}.statusbar .metric:hover{background:#0e122380}.statusbar .metric b{color:var(--fg);font-weight:500}.statusbar .spacer{flex:1}.statusbar .kbtn{display:flex;align-items:center;gap:8px;padding:0 14px;border:none;border-left:1px solid var(--line-soft);background:transparent;color:var(--muted);font-size:var(--t-micro);cursor:pointer;transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.statusbar .kbtn:hover{color:var(--fg);background:#16a34a1f}.dot{width:7px;height:7px;display:inline-block;position:relative}.dot.on{background:var(--green)}.dot.on:after{content:"";position:absolute;inset:-4px;border:1px solid var(--green);opacity:.6;animation:ping 2.2s var(--ease-out) infinite}.dot.off{background:var(--red)}.dot.warn{background:#eab308}@keyframes ping{0%{transform:scale(.5);opacity:.7}70%{transform:scale(1.6);opacity:0}to{opacity:0}}.tickerbar{border-bottom:1px solid var(--line);background:var(--glass-panel);-webkit-backdrop-filter:var(--blur-soft);backdrop-filter:var(--blur-soft);overflow:hidden;height:34px;position:relative;z-index:30}.ticker-track{display:flex;width:max-content;animation:ticker 60s linear infinite}.tickerbar:hover .ticker-track{animation-play-state:paused}@keyframes ticker{0%{transform:translate(0)}to{transform:translate(-50%)}}.ticker-item{display:flex;align-items:center;gap:8px;padding:0 22px;height:34px;border-right:1px solid var(--line-soft);font-size:var(--t-micro);color:var(--muted);cursor:pointer;transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.ticker-item:hover{background:#16a34a1a;color:var(--fg)}.ticker-item .sym{color:var(--fg);font-weight:600;font-family:var(--mono)}.nav{border-right:1px solid var(--line);background:var(--glass-panel);-webkit-backdrop-filter:var(--blur-soft);backdrop-filter:var(--blur-soft);display:flex;flex-direction:column;padding:14px 0;gap:2px;position:sticky;top:0;height:fit-content;min-height:calc(100vh - 80px)}.nav a.item{display:flex;align-items:center;gap:12px;padding:10px 18px;color:var(--muted);font-size:var(--t-body);border-left:2px solid transparent;transition:color var(--t-fast) var(--ease),background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),transform var(--t-fast) var(--ease)}.nav a.item:hover{color:var(--fg);background:#0e12238c;transform:translate(2px)}.nav a.item.active{color:var(--fg);background:#16a34a1a;border-left-color:var(--green)}.nav a.item svg{flex:0 0 auto}.nav .navkey{margin-left:auto;font-family:var(--mono);font-size:var(--t-micro);color:var(--muted);border:1px solid var(--line);padding:0 5px;line-height:18px}.nav .navmeta{margin-top:auto;padding:12px 18px 0;font-size:var(--t-micro);color:var(--muted);border-top:1px solid var(--line-soft);line-height:1.7}.nav .nav-label{padding:14px 18px 4px;font-size:var(--t-micro);letter-spacing:.1em;color:var(--muted);text-transform:uppercase;opacity:.7}.panel{background:var(--panel);border:1px solid var(--line);display:flex;flex-direction:column;box-shadow:var(--shadow-float)}.panel>.panel-head{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line);background:var(--glass-head);-webkit-backdrop-filter:var(--blur-soft);backdrop-filter:var(--blur-soft)}.panel-head h2{margin:0;font-size:var(--t-body);font-weight:600;letter-spacing:.02em}.panel-head .sub{color:var(--muted);font-size:var(--t-micro)}.panel-head .right{margin-left:auto;display:flex;align-items:center;gap:8px}.panel-body{padding:16px}.panel-body.tight{padding:0}.page-title{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}.page-title h1{margin:0;font-size:var(--t-display);font-weight:700;letter-spacing:-.01em}.page-title .crumb{color:var(--muted);font-size:var(--t-body)}.grid{width:100%;border-collapse:collapse;font-size:var(--t-data)}.grid th{text-align:left;font-family:var(--sans);font-weight:600;font-size:var(--t-micro);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:var(--glass-navy-deep);padding:9px 14px;border-bottom:1px solid var(--line);white-space:nowrap;user-select:none;position:sticky;top:0;z-index:5}.grid th.sortable{cursor:pointer;transition:color var(--t-fast) var(--ease)}.grid th.sortable:hover{color:var(--fg)}.grid td{padding:9px 14px;border-bottom:1px solid var(--line-soft);white-space:nowrap}.grid tbody tr{height:var(--row-h);transition:background var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}.grid tbody tr:hover{background:#0e1223b3;box-shadow:inset 2px 0 0 var(--green)}.grid td.r,.grid th.r{text-align:right}.grid .num{font-size:var(--t-data)}.rowlink{cursor:pointer}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:38px;padding:0 16px;border:1px solid var(--line);background:var(--navy);color:#fff;font-size:var(--t-body);font-weight:500;cursor:pointer;white-space:nowrap;transition:transform var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),background var(--t-fast) var(--ease),box-shadow var(--t-med) var(--ease)}.btn:hover{border-color:var(--muted);transform:translateY(-1px);box-shadow:0 6px 18px #00000059}.btn:active{transform:translateY(0)}.btn:focus-visible{outline:2px solid var(--green);outline-offset:1px}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.btn.cta{background:var(--green);border-color:var(--green);color:#fff}.btn.cta:hover{background:#15803d;border-color:#15803d;box-shadow:0 8px 22px #16a34a4d}.btn.danger,.btn.sell-cta{background:var(--red);border-color:var(--red);color:#fff}.btn.ghost{background:transparent;color:var(--muted)}.btn.ghost:hover{color:var(--fg);border-color:var(--muted)}.btn.sm{height:30px;padding:0 10px;font-size:var(--t-micro)}.chip{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 8px;border:1px solid var(--line);color:var(--muted);font-size:var(--t-micro);font-family:var(--mono);white-space:nowrap;transition:color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),background var(--t-fast) var(--ease)}.chip.on{color:var(--green-bright);border-color:var(--green)}.chip.off{color:var(--red);border-color:var(--red)}button.chip:hover{color:var(--fg);border-color:var(--muted)}button.chip.on:hover{color:var(--green-bright);border-color:var(--green-bright)}input[type=text],input[type=number],select{background:#02061799;border:1px solid var(--line);color:var(--fg);font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:var(--t-data);padding:8px 12px;outline:none;width:100%;transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-med) var(--ease)}input:focus,select:focus{border-color:var(--green);box-shadow:0 0 0 3px #16a34a26}select{font-family:var(--sans)}label.field{display:block;color:var(--muted);font-size:var(--t-micro);letter-spacing:.06em;text-transform:uppercase;margin-bottom:6px}.side-toggle{display:flex;border:1px solid var(--line);width:100%}.side-toggle button{flex:1;height:42px;border:none;background:transparent;color:var(--muted);font-size:var(--t-body);font-weight:600;cursor:pointer;letter-spacing:.04em;transition:background var(--t-med) var(--ease),color var(--t-med) var(--ease)}.side-toggle button.on.buy{background:var(--green);color:#fff}.side-toggle button.on.sell{background:var(--red);color:#fff}.stat{padding:12px 0;border-bottom:1px solid var(--line-soft)}.stat:last-child{border-bottom:none}.stat .k{color:var(--muted);font-size:var(--t-micro);letter-spacing:.06em;text-transform:uppercase}.stat .v{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:20px;font-weight:500;margin-top:2px;display:inline-block;padding:0 4px;margin-left:-4px}.stat .v small{font-size:var(--t-micro);color:var(--muted);font-weight:400}.bignum{font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:600;font-size:var(--t-display);letter-spacing:-.02em}.rmbar{height:10px;background:var(--navy);border:1px solid var(--line);position:relative;overflow:hidden}.rmbar .fill{position:absolute;inset:0 auto 0 0;background:var(--green);transform-origin:left center;animation:barIn .7s var(--ease-out) both;transition:width var(--t-slow) var(--ease-out)}.rmbar .fill.alt{background:var(--muted)}.rmbar .fill.best{background:var(--green)}@keyframes barIn{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.overlay{position:fixed;inset:0;background:var(--veil);-webkit-backdrop-filter:var(--blur-soft);backdrop-filter:var(--blur-soft);display:flex;align-items:flex-start;justify-content:center;padding:10vh 20px 20px;z-index:60;animation:fadeIn .16s var(--ease-out) both}.modal{width:min(680px,100%);background:#0e1223eb;-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--line);box-shadow:var(--shadow-float);max-height:76vh;overflow:auto;animation:modalIn .22s var(--ease-out) both}.modal .modal-head{display:flex;align-items:center;padding:12px 16px;background:var(--glass-navy);border-bottom:1px solid var(--line);font-weight:600}.modal .modal-head .x{margin-left:auto}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalIn{0%{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.palette-input{width:100%;border:none;border-bottom:1px solid var(--line);background:transparent;padding:14px 16px;font-size:var(--t-body);color:var(--fg)}.palette-list{list-style:none;margin:0;padding:6px 0}.palette-list li{display:flex;align-items:center;gap:10px;padding:10px 16px;cursor:pointer;color:var(--muted);transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.palette-list li:hover,.palette-list li.sel{background:#16a34a1f;color:var(--fg)}.palette-list li .kbd{margin-left:auto}.kbd{font-family:var(--mono);font-size:var(--t-micro);border:1px solid var(--line);padding:1px 6px;color:var(--muted)}.toasts{position:fixed;right:16px;bottom:16px;display:flex;flex-direction:column;gap:8px;z-index:80}.toast{background:#0e1223eb;-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--line);border-left:3px solid var(--green);box-shadow:var(--shadow-float);padding:10px 14px;font-size:var(--t-data);max-width:380px;animation:toastIn .24s var(--ease-out) both}.toast.err{border-left-color:var(--red)}@keyframes toastIn{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}.skeleton-row{height:var(--row-h);border-bottom:1px solid var(--line-soft);position:relative;overflow:hidden}.skeleton-row:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,#94a3b80d 0 26%,#94a3b81f 38%,#94a3b80d 50% 100%);background-size:220% 100%;animation:shimmer 1.4s linear infinite}@keyframes shimmer{0%{background-position:120% 0}to{background-position:-120% 0}}.tag{font-family:var(--mono);font-size:var(--t-micro);color:var(--muted)}.muted{color:var(--muted)}.micro{font-size:var(--t-micro);color:var(--muted)}.gap{height:12px}.cols{display:grid;gap:20px}.cols.c2{grid-template-columns:1fr 1fr}.cols.c21{grid-template-columns:2fr 1fr}.cols.c12{grid-template-columns:1fr 2fr}.copyable{cursor:pointer;transition:color var(--t-fast) var(--ease)}.copyable:hover,.check-ok{color:var(--green-bright)}.check-bad{color:var(--red)}.stepper{display:flex;flex-direction:column;gap:0}.step{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--line-soft);align-items:flex-start;animation:riseIn .3s var(--ease-out) both}.step:last-child{border-bottom:none}.step .st-icon{width:20px;flex:0 0 auto;padding-top:2px}.step.pending{opacity:.45}.step.active{color:var(--fg)}.step.done{color:var(--muted)}.step.error{color:var(--red)}footer.foot{border-top:1px solid var(--line);color:var(--muted);font-size:var(--t-micro);padding:14px 24px;display:flex;gap:18px;flex-wrap:wrap;background:var(--glass-panel);-webkit-backdrop-filter:var(--blur-soft);backdrop-filter:var(--blur-soft)}footer.foot a{color:var(--muted)}footer.foot a:hover{color:var(--fg)}.scorefill{transition:width var(--t-slow) var(--ease-out)}@media (max-width: 1080px){.shell{grid-template-columns:60px 1fr}.nav a.item span.txt,.nav .navmeta,.nav .navkey,.nav .nav-label{display:none}.cols.c2,.cols.c21,.cols.c12{grid-template-columns:1fr}.statusbar .metric.optional{display:none}}.tour-step{border-left:2px solid var(--green);padding-left:14px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.ticker-track{animation:none}}
