:root{--bg: #ffffff;--text: #0f172a;--muted: #6b7280;--card-bg: #f8fafc;--surface: #ffffff;--border: #e5e7eb;--button-bg: #4f46e5;--button-text: #ffffff;--link: #2563eb;--ring: 60 100% 50%;--shadow: 0 1px 2px rgba(0,0,0,.06), 0 4px 10px rgba(0,0,0,.06);--shadow-lg: 0 10px 30px rgba(0,0,0,.1);--nav-bg: #ffffff;--nav-text: #0b1220;--muted-contrast: #334155;--accent: #2563eb;--accent-contrast: #ffffff;--accent-border: transparent;--focus-ring: #93c5fd;--focus-ring-width: 2px;--tab-bg: transparent;--tab-text: var(--muted-contrast);--tab-border: var(--border);--tab-selected-bg: var(--accent);--tab-selected-text: var(--accent-contrast);--tab-selected-border: var(--accent-border)}html[data-theme=dark]{--bg: #0b1220;--text: #e5e7eb;--muted: #9ca3af;--card-bg: #111827;--surface: #0f172a;--border: #1f2937;--button-bg: #6366f1;--button-text: #f9fafb;--link: #60a5fa;--ring: 214 95% 68%;--shadow: 0 1px 2px rgba(0,0,0,.35), 0 6px 14px rgba(0,0,0,.35);--shadow-lg: 0 20px 40px rgba(0,0,0,.45);--nav-bg: rgba(11,18,32,.94);--nav-text: #e5e7eb;--muted-contrast: #cbd5e1;--accent: #60a5fa;--accent-contrast: #0b1220;--accent-border: transparent;--focus-ring: #93c5fd;--focus-ring-width: 2px;--tab-bg: transparent;--tab-text: var(--muted-contrast);--tab-border: var(--border);--tab-selected-bg: var(--accent);--tab-selected-text: var(--accent-contrast);--tab-selected-border: var(--accent-border)}html[data-theme=solarized]{--bg: #fdf6e3;--text: #073642;--muted: #657b83;--card-bg: #eee8d5;--surface: #fffdf5;--border: #e9e2c6;--button-bg: #b58900;--button-text: #fff;--link: #268bd2;--ring: 205 69% 45%;--shadow: 0 1px 2px rgba(7,54,66,.05), 0 6px 14px rgba(7,54,66,.08);--shadow-lg: 0 20px 40px rgba(7,54,66,.12);--nav-bg: #fdf6e3;--nav-text: #002b36;--muted-contrast: #425b67;--accent: #268bd2;--accent-contrast: #ffffff;--accent-border: transparent;--focus-ring: #268bd2;--focus-ring-width: 2px;--tab-bg: transparent;--tab-text: var(--muted-contrast);--tab-border: var(--border);--tab-selected-bg: var(--accent);--tab-selected-text: var(--accent-contrast);--tab-selected-border: var(--accent-border)}html[data-theme=high-contrast]{--bg: #000;--text: #fff;--muted: #cfcfcf;--card-bg: #0d0d0d;--surface: #000;--border: #2a2a2a;--button-bg: #ff0000;--button-text: #ffffff;--link: #00ffff;--ring: 180 100% 50%;--shadow: none;--shadow-lg: none;--nav-bg: #000;--nav-text: #fff;--muted-contrast: #d1d5db;--accent: #ffff00;--accent-contrast: #000000;--accent-border: #00ffff;--focus-ring: #00ffff;--focus-ring-width: 3px;--tab-bg: transparent;--tab-text: var(--muted-contrast);--tab-border: #888;--tab-selected-bg: var(--accent);--tab-selected-text: var(--accent-contrast);--tab-selected-border: var(--accent-border)}@media (prefers-contrast: more){html[data-theme=dark]{--accent: #a7f3d0;--accent-contrast: #052e2b;--focus-ring: #22d3ee;--focus-ring-width: 3px}}*,*:before,*:after{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Inter,Helvetica Neue,Arial,"Apple Color Emoji","Segoe UI Emoji";line-height:1.5;background:radial-gradient(1200px 800px at 20% -10%,rgba(99,102,241,.08),transparent 60%),radial-gradient(1000px 600px at 120% 10%,rgba(96,165,250,.08),transparent 60%),var(--bg);color:var(--text);transition:background .25s ease,color .25s ease;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3{margin:0 0 .5rem;line-height:1.2;letter-spacing:-.01em}h1{font-size:clamp(1.4rem,1.2rem + 1vw,2rem)}h2{font-size:clamp(1.2rem,1.1rem + .6vw,1.5rem)}p{margin:.25rem 0 .75rem;color:var(--text)}.small{font-size:.875rem;color:var(--muted)}.container{width:min(1100px,92vw);margin:0 auto}.stack-8>*+*{margin-top:.5rem}.stack-12>*+*{margin-top:.75rem}.stack-16>*+*{margin-top:1rem}.card{background:linear-gradient(180deg,var(--surface),var(--card-bg));border:1px solid var(--border);border-radius:14px;padding:1rem;box-shadow:var(--shadow)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow)}button,.button,.button--ghost{background:var(--button-bg);color:var(--button-text);padding:.6rem 1rem;border:1px solid transparent;border-radius:10px;cursor:pointer;font-weight:600;letter-spacing:.01em;transition:transform .06s ease,box-shadow .2s ease,background .2s ease,border-color .2s ease,opacity .2s ease;box-shadow:0 1px #0000000a;text-decoration:none;display:inline-flex;align-items:center;gap:.5rem}button:hover,.button:hover{transform:translateY(-1px);box-shadow:var(--shadow)}button:active,.button:active{transform:translateY(0)}.button--secondary{background:linear-gradient(180deg,#6366f11f,#6366f10f);color:var(--text);border-color:var(--border)}.button--ghost{background:transparent;color:var(--text);border:1px solid var(--border)}button:focus-visible,.button:focus-visible{outline:none;box-shadow:0 0 0 3px hsla(var(--ring)/.35),0 0 0 6px hsla(var(--ring)/.22);text-decoration:none}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}a:focus-visible{outline:none;box-shadow:0 0 0 3px hsla(var(--ring)/.35);border-radius:6px}input,select,textarea{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:.55rem .75rem;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;width:100%}input::placeholder,textarea::placeholder{color:var(--muted)}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;border-color:hsla(var(--ring)/.5);box-shadow:0 0 0 3px hsla(var(--ring)/.3)}.table{width:100%;border-collapse:separate;border-spacing:0;background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden;box-shadow:var(--shadow)}.table thead th{text-align:left;font-size:.85rem;color:var(--muted);background:linear-gradient(180deg,rgba(0,0,0,.02),transparent);padding:.75rem .9rem;border-bottom:1px solid var(--border)}.table tbody td{padding:.75rem .9rem;border-bottom:1px solid var(--border)}.table tbody tr:hover{background:#6366f10f}.app-header{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:linear-gradient(180deg,rgba(99,102,241,.08),transparent);border-bottom:1px solid var(--border);-webkit-backdrop-filter:saturate(140%) blur(6px);backdrop-filter:saturate(140%) blur(6px);position:sticky;top:0;z-index:10}.tabs{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--border);background:var(--surface)}.tabs button{background:transparent;color:var(--text);border:none;padding:.9rem .5rem;border-radius:0}.tabs button.active{box-shadow:inset 0 -3px hsla(var(--ring)/.65);font-weight:700}.bottom-tabs{background:var(--nav-bg);color:var(--nav-text);border-top:1px solid var(--border)}.bottom-tabs button,.bottom-tabs .tab-btn{color:var(--nav-text)!important;background:transparent!important;border:none!important;font-weight:800;letter-spacing:.01em;text-shadow:none;opacity:1}.bottom-tabs button[aria-pressed=true],.bottom-tabs .tab-btn[aria-pressed=true]{box-shadow:inset 0 -3px hsla(var(--ring)/.75)}.watchlist{margin:0;padding:0;list-style:none}.watchlist li{display:grid;grid-template-columns:1fr auto;align-items:center;gap:.4rem;height:60px;padding:0 3.5rem 0 .75rem;border-bottom:1px solid var(--border);cursor:pointer;transition:background .15s ease,transform .06s ease,height .12s ease}.watchlist li>:first-child{min-width:0}.watchlist .name{font-size:.9rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.1}.watchlist .symbol{opacity:.75;font-weight:600;margin-left:.35rem;font-size:.8rem}.watchlist .meta{font-size:.75rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.watchlist.compact li{height:16px}.watchlist.compact .name{font-size:.78rem}.watchlist.compact .symbol{font-size:.7rem}.watchlist.compact .meta{font-size:.68rem}.watchlist li:hover{background:#6366f114}.watchlist li:active{transform:scale(.995)}.change-pos{color:#10b981;font-weight:700}.change-neg{color:#ef4444;font-weight:700}.watchlist li{position:relative}.watchlist .row-actions{position:absolute;right:8px;top:50%;transform:translateY(-50%);display:flex;gap:6px;opacity:0;transition:opacity .15s ease;pointer-events:none;z-index:20}.watchlist li:hover .row-actions{opacity:1;pointer-events:auto}.icon-btn{background:transparent;border:1px solid var(--border);border-radius:8px;padding:6px;cursor:pointer}.icon-btn:hover{background:#6366f114}.icon-btn.danger{border-color:#ef4444;color:#ef4444}.modal-backdrop{position:fixed;inset:0;background:#00000080;display:grid;place-items:center;z-index:50}.modal{width:min(520px,92vw);background:var(--surface);border-radius:14px;border:1px solid var(--border);box-shadow:var(--shadow-lg);padding:14px}.sheet-backdrop{position:fixed;inset:0;background:#00000080;display:grid;place-items:end center}.sheet{width:100%;max-width:520px;background:var(--surface);border-top-left-radius:14px;border-top-right-radius:14px;border:1px solid var(--border);box-shadow:var(--shadow-lg);padding:14px}.avatar-btn{width:40px;height:40px;border-radius:999px;border:2px solid var(--border);background:linear-gradient(180deg,var(--surface),var(--card-bg));color:var(--text);display:grid;place-items:center;font-weight:900;font-size:.95rem;cursor:pointer;box-shadow:var(--shadow);transition:transform .06s ease,box-shadow .2s ease,border-color .2s ease}.avatar-btn--xl{width:48px;height:48px;font-size:1.05rem}.avatar-btn:hover,.avatar-btn:focus-visible{outline:none;border-color:hsla(var(--ring)/.6);box-shadow:0 0 0 4px hsla(var(--ring)/.25),var(--shadow-lg);transform:translateY(-1px)}.avatar-btn--accent{background:linear-gradient(135deg,#6366f138,#60a5fa2e)}.dropdown{background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);padding:6px;position:absolute;z-index:2000}.dropdown .item{display:flex;align-items:center;gap:8px;padding:10px;border-radius:8px;color:var(--text);text-decoration:none;background:transparent;border:none;width:100%;text-align:left;cursor:pointer}.dropdown .item:hover{background:#6366f114}.dropdown .item.danger{color:#ef4444}.dropdown .sep{height:1px;background:var(--border);margin:6px 4px}.submenu{position:relative}.subtrigger{display:flex;align-items:center;gap:8px;padding:10px;border-radius:8px;width:100%;background:transparent;border:none;color:var(--text);cursor:pointer}.subtrigger:hover{background:#6366f114}.subcontent{position:absolute;left:calc(100% + 8px);top:0;min-width:220px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);padding:6px}.dropdown .subcontent{display:none}.dropdown .submenu:hover .subcontent{display:block}.settings-grid{display:grid;grid-template-columns:1fr;gap:16px;align-items:start}@media (min-width: 960px){.settings-grid{grid-template-columns:1fr 1fr;gap:18px 18px}}.settings-card{padding:1rem;border-radius:14px;background:linear-gradient(180deg,var(--surface),var(--card-bg));border:1px solid var(--border);box-shadow:var(--shadow)}.settings-card h2{margin:0 0 .75rem;font-size:1.1rem}.settings-form{display:grid;gap:10px}.settings-inline{display:grid;grid-template-columns:1fr auto;gap:10px}.settings-row{display:grid;gap:8px}.settings-row label{font-weight:600;font-size:.92rem}.settings-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:6px}.form-error{color:#ef4444}.form-ok{color:#10b981}.segmented{display:inline-flex;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:linear-gradient(180deg,var(--surface),var(--card-bg));box-shadow:var(--shadow)}.segmented .btn3d{border-radius:0;border:none}.btn3d{appearance:none;background:linear-gradient(180deg,var(--surface),var(--card-bg));color:var(--text);border:1px solid var(--border);padding:.5rem .9rem;font-weight:700;cursor:pointer;box-shadow:0 2px #00000026,inset 0 0 #0000;transition:transform .05s ease,box-shadow .15s ease,background .2s ease,border-color .2s ease}.btn3d:hover{transform:translateY(-1px);box-shadow:0 3px #0000002e,var(--shadow);border-color:hsla(var(--ring)/.4)}.btn3d:active,.btn3d.active{transform:translateY(0);background:linear-gradient(180deg,#6366f11a,#6366f10a);box-shadow:inset 0 2px 6px #00000026;border-color:hsla(var(--ring)/.6)}.btn3d[aria-pressed=true]{transform:translateY(0);box-shadow:inset 0 2px 6px #00000026}.select3d{font-weight:700;border-radius:10px;box-shadow:0 2px #00000026}.select3d:hover{border-color:hsla(var(--ring)/.4)}.loading-overlay{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(180deg,transparent,transparent);z-index:5}.spinner-wheel{width:42px;height:42px;border-radius:999px;border:4px solid rgba(100,116,139,.25);border-top-color:#6366f1e6;animation:spin .9s linear infinite;box-shadow:0 1px 4px #0000001f,inset 0 0 0 1px #ffffff0f}@keyframes spin{to{transform:rotate(360deg)}}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}#split-container>*{min-width:0}.chart-area{width:100%}.chart-tabs{background:linear-gradient(180deg,var(--surface),var(--card-bg));border:1px solid var(--border);border-radius:14px;margin:8px 12px;padding:8px;box-shadow:var(--shadow)}.chart-tabs .segmented{border-radius:999px;padding:3px;background:linear-gradient(180deg,var(--surface),var(--card-bg));border:1px solid var(--border);box-shadow:inset 0 0 0 1px #00000008}.chart-tabs .segmented .btn3d{border-radius:999px;padding:.45rem .9rem;border:none;background:transparent;box-shadow:none;transition:background .15s ease,color .15s ease,transform .05s ease}.chart-tabs .segmented .btn3d[aria-selected=true],.chart-tabs .segmented .btn3d.active{background:var(--tab-selected-bg, var(--accent));color:var(--tab-selected-text, var(--accent-contrast));border:1px solid var(--tab-selected-border, transparent);box-shadow:inset 0 2px 6px #0000001f}.chart-graph .panel,.chart-graph .card{border-image:linear-gradient(90deg,rgba(99,102,241,.45),transparent) 1}.chart-stats .panel{border-image:linear-gradient(90deg,rgba(16,185,129,.45),transparent) 1}.chart-desc .panel,.chart-desc .card{border-image:linear-gradient(90deg,rgba(96,165,250,.45),transparent) 1}.section-chip{display:inline-flex;align-items:center;gap:8px;font-weight:800;letter-spacing:.02em;padding:.35rem .6rem;border-radius:999px;font-size:.8rem;border:1px solid var(--border);background:linear-gradient(180deg,var(--surface),var(--card-bg));box-shadow:var(--shadow);margin:0 0 8px}.section-chip--graph{border-color:hsla(var(--ring)/.45)}.section-chip--stats{border-color:#10b98173}.section-chip--desc{border-color:#60a5fa73}.chart-stats .table thead th{background:linear-gradient(180deg,rgba(16,185,129,.08),transparent)}.chart-stats .table tbody tr:hover{background:#10b98114}.chart-desc .card{line-height:1.6;font-size:.95rem;background:linear-gradient(180deg,var(--surface),var(--card-bg));border:1px solid var(--border);box-shadow:var(--shadow)}.chart-graph .plot-wrap{border-radius:12px;border:1px solid var(--border);background:linear-gradient(180deg,var(--surface),var(--card-bg));box-shadow:var(--shadow);overflow:hidden}.chart-sticky-shadow{position:sticky;top:0;z-index:50}html[data-theme=dark] .chart-sticky-shadow{box-shadow:0 6px 20px #00000059}.compact-bar{padding:4px 8px;display:flex;align-items:center;gap:6px;border-bottom:1px solid var(--border)}.compact-bar select,.compact-bar button{margin:0}.segmented--sm{border-radius:10px}.segmented--sm .btn3d,.btn3d--sm,.select3d--sm{padding:.35rem .55rem;font-size:.85rem}.chart-toolbar.panel{padding:6px;margin-bottom:6px;gap:6px}.chart-toolbar .btn3d,.chart-toolbar .button--secondary{padding:.35rem .6rem;font-size:.85rem}.chart-tabs{margin:6px 8px;padding:6px;border-radius:12px}.plot-wrap{border-radius:12px;border:1px solid var(--border);background:linear-gradient(180deg,var(--surface),var(--card-bg));box-shadow:var(--shadow);overflow:visible;z-index:0;position:relative}.js-plotly-plot .modebar{z-index:20}.chart-graph .plot-wrap{border-image:linear-gradient(90deg,rgba(99,102,241,.45),transparent) 1}@media (max-width: 640px){.section-chip{display:none}}@media (max-width: 640px){.table thead th,.table tbody td{padding:.5rem .6rem}}.btn-pill{padding:.4rem .7rem;border-radius:.75rem;border:1px solid var(--tab-border, var(--border));background:var(--tab-bg, transparent);color:var(--tab-text, var(--muted-contrast));font-weight:600;transition:background .15s,color .15s,border-color .15s,box-shadow .15s}.btn-pill--lg{padding:.6rem 1rem;font-size:1rem;border-radius:999px;font-weight:700}.tab-wide{min-width:8.5rem;justify-content:center}.btn-pill[aria-selected=true],.btn-pill.is-selected{background:var(--tab-selected-bg, var(--accent));color:var(--tab-selected-text, var(--accent-contrast));border-color:var(--tab-selected-border, transparent);box-shadow:inset 0 2px 6px #0000001f}.btn-pill:hover{background:color-mix(in oklab,var(--tab-selected-bg, var(--accent)) 14%,transparent),var(--tab-bg, transparent)}.btn-pill:focus-visible{outline:none;box-shadow:0 0 0 var(--focus-ring-width, 2px) hsl(var(--ring) / .9)}html[data-theme=high-contrast] .btn-pill{border-width:2px}html[data-theme=high-contrast] .btn-pill[aria-selected=true]{text-decoration:underline;text-decoration-thickness:2px}.is-dragging .chart-area{pointer-events:none}.is-dragging .watchlist,.is-dragging .watchlist *{pointer-events:auto!important}.chart-graph .plot-wrap,.plot-wrap{overflow:visible!important;height:auto!important;min-height:0!important;max-height:none!important}.chart-graph,.chart-graph .plot-wrap>.js-plotly-plot{min-height:0;height:auto}.chart-area,.chart-graph,.plot-wrap,.js-plotly-plot{box-sizing:border-box;width:100%!important;max-width:100vw!important;height:auto!important;min-height:0!important;max-height:none!important;overflow-x:hidden!important;overflow-y:visible!important}html,body,#root,.app-root{overflow-x:hidden!important;height:auto!important;min-height:100%!important;max-height:none!important}.chart-area,.chart-graph{display:flex!important;flex-direction:column!important;flex:1 1 auto!important;align-items:stretch!important}.plot-wrap{overflow-y:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;box-sizing:border-box;max-height:none!important}.js-plotly-plot{width:100%!important;min-height:0!important;height:auto!important;max-height:none!important}[class*=chart],.chart-tabs,.chart-toolbar,.chart-desc,.chart-stats{overflow:visible!important}html,body,#root{overflow-x:hidden!important;box-sizing:border-box!important}.chart-area,.chart-graph,.plot-wrap,.plot-wrap>.js-plotly-plot,.js-plotly-plot{width:100%!important;max-width:100vw!important;box-sizing:border-box!important;overflow-x:hidden!important}#split-container>*{min-width:0!important}.plot-wrap,.chart-area,.chart-graph{box-sizing:border-box;width:100%!important;max-width:100vw!important}.mobile-scrollbar{position:absolute;width:8px;border-radius:6px;background:#0000005c;transition:opacity .18s ease,background .18s ease;z-index:120;box-shadow:0 1px 4px #00000026}html[data-theme=dark] .mobile-scrollbar{background:#ffffff2e;box-shadow:0 1px 6px #0000005c}.plot-wrap[data-mobile="1"]>*:not(.mobile-scrollbar){padding-right:12px}html,body,#root,.app-root{overflow-x:hidden!important;box-sizing:border-box!important}.chart-area,.chart-graph,.plot-wrap,.plot-wrap>.js-plotly-plot,.js-plotly-plot{box-sizing:border-box;width:100%!important;max-width:100vw!important;height:auto!important;min-height:0!important;max-height:none!important;overflow-x:hidden!important;overflow-y:visible!important}.plot-wrap[style*=height],.chart-area[style*=height],.chart-graph[style*=height]{height:auto!important;overflow-y:visible!important;overflow-x:hidden!important}.plot-wrap[data-mobile="1"]{overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;position:relative}.scroll-fade-top,.scroll-fade-bottom{pointer-events:none;position:absolute;left:0;right:0;height:28px;z-index:60;transition:opacity .16s ease}.scroll-fade-top{top:0;background:linear-gradient(to bottom,#0000001f,#0000)}.scroll-fade-bottom{bottom:0;background:linear-gradient(to top,#0000001f,#0000)}html[data-theme=dark] .scroll-fade-top,html[data-theme=dark] .scroll-fade-bottom{background:linear-gradient(to bottom,#ffffff0f,#fff0)}.mobile-scrollbar{position:absolute;width:12px;border-radius:8px;right:8px;background:#0000006b;box-shadow:0 2px 6px #0000002e;transition:opacity .16s ease,background .16s ease;z-index:140;pointer-events:none}html[data-theme=dark] .mobile-scrollbar{background:#ffffff38;box-shadow:0 2px 6px #0000005c}.plot-wrap[data-mobile="1"]>*:not(.mobile-scrollbar){padding-right:18px}*{box-sizing:border-box}
