/* Shared v3 shell for converted source pages. */
:root{--border:var(--line);--text-muted:var(--muted);--text-head:var(--text);--bg-panel:var(--panel);--bg-panel-h:var(--panel2);--accent:var(--brand);--green:var(--brand2)}
html.theme-dark{--border:var(--line);--text-muted:var(--muted);--text-head:var(--text);--bg-panel:var(--panel);--bg-panel-h:var(--panel2);--accent:var(--brand);--green:var(--brand2)}
.v3-converted .layout{display:flex;min-height:100vh;background:var(--bg)}
.v3-converted .v3-search-input:focus-visible{outline:3px solid var(--focus-ring);outline-offset:1px}
.v3-converted .app-content-wrapper{flex:1;min-width:0;margin-left:var(--sidebar-w);display:flex;flex-direction:column}
.v3-converted .app-topbar{position:sticky;top:0;z-index:1020;height:var(--topbar-h);display:flex;align-items:center;gap:14px;padding:0 22px;background:var(--topbar-bg);border-bottom:1px solid var(--line);backdrop-filter:blur(8px)}
.v3-converted .v3-mobile-menu{display:none;width:36px;height:36px;border:1px solid var(--line2);border-radius:9px;background:var(--panel);color:var(--muted)}
.v3-converted .v3-search{position:relative;flex:1;max-width:420px}
.v3-converted .v3-search>i{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--soft);font-size:16px}
.v3-converted .v3-search-input{width:100%;height:38px;padding:0 72px 0 36px;border:1px solid var(--line2);border-radius:9px;background:var(--panel2);color:var(--text);font:inherit;font-size:13.3px}
.v3-converted .v3-search-input::placeholder{color:var(--soft)}
.v3-converted .v3-search kbd{position:absolute;right:9px;top:50%;transform:translateY(-50%);padding:1px 6px;border:1px solid var(--line2);border-radius:5px;background:var(--panel);color:var(--soft);font-size:10.5px}
.v3-converted .v3-spacer{flex:1}
.v3-converted .v3-icon-btn{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--line2);border-radius:9px;background:var(--panel);color:var(--muted);font-size:17px}
.v3-converted .v3-icon-btn:hover{background:var(--panel2);color:var(--text)}
.v3-converted .v3-auth{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12.5px;font-weight:700}
.v3-converted .v3-auth .primary{padding:8px 12px;border-radius:8px;background:var(--brand);color:#fff}
.v3-converted .v3-user-menu{position:relative}
.v3-converted .v3-user-menu summary{display:flex;align-items:center;gap:8px;list-style:none;padding:4px 8px 4px 4px;border:1px solid var(--line2);border-radius:10px;background:var(--panel);color:var(--text);cursor:pointer}
.v3-converted .v3-user-menu summary::-webkit-details-marker{display:none}
.v3-converted .v3-user-menu summary>i{color:var(--soft);font-size:15px}
.v3-converted .v3-user-avatar{display:grid;place-items:center;width:30px;height:30px;overflow:hidden;border-radius:8px;background:var(--brand);color:#fff;font-size:12px;font-weight:800}
.v3-converted .v3-user-avatar img{width:100%;height:100%;object-fit:cover}
.v3-converted .v3-user-name{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:800}
.v3-converted .v3-user-dropdown{position:absolute;right:0;top:calc(100% + 8px);z-index:1100;display:grid;min-width:190px;padding:6px;border:1px solid var(--line2);border-radius:10px;background:var(--panel);box-shadow:0 16px 32px rgba(0,0,0,.24)}
.v3-converted .v3-user-dropdown a,.v3-converted .v3-user-dropdown button{display:flex;align-items:center;gap:9px;width:100%;padding:9px 10px;border:0;border-radius:6px;background:transparent;color:var(--text);font:700 12px var(--sans,Inter,sans-serif);text-align:left;text-decoration:none;cursor:pointer}
.v3-converted .v3-user-dropdown a:hover,.v3-converted .v3-user-dropdown button:hover{background:var(--panel2)}
.v3-converted .v3-user-dropdown button{color:#d56b6b}
.v3-converted .app-main{flex:1;width:100%;max-width:1360px;margin:0 auto;padding:22px 26px 40px}
.v3-converted .app-footer{display:flex;justify-content:space-between;gap:14px;padding:18px 26px 26px;max-width:1360px;width:100%;margin:0 auto;color:var(--muted);font-size:12px}
.v3-converted .app-footer a{color:var(--brand2);font-weight:700}
.v3-converted .v3-search-results{position:absolute;z-index:1040;top:calc(100% + 8px);left:0;width:420px;max-width:calc(100vw - 32px);overflow:hidden;border:1px solid var(--line2);border-radius:10px;background:var(--panel);box-shadow:var(--shadow-lg)}
.v3-converted .v3-search-results[hidden]{display:none}
.v3-converted .v3-search-item{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:10px;align-items:center;min-height:46px;padding:8px 12px;border-bottom:1px solid var(--line);color:var(--text);font-size:12px}
.v3-converted .v3-search-item:last-child{border-bottom:0}.v3-converted .v3-search-item:hover,.v3-converted .v3-search-item.selected{background:var(--brandSoft)}
.v3-converted .v3-search-symbol{color:var(--brand2);font-weight:800}.v3-converted .v3-search-name{overflow:hidden;color:var(--muted);font-weight:600;text-overflow:ellipsis;white-space:nowrap}.v3-converted .v3-search-exchange{padding:3px 6px;border-radius:5px;background:var(--panel2);color:var(--soft);font-size:9.5px;font-weight:800}
/* Chart keeps its native interaction model, with a static v3 frame around it. */
body[data-v3-chart-lite]{background:var(--bg);color:var(--text)}
body[data-v3-chart-lite] .layout{display:flex;min-height:100vh;background:var(--bg)}
body[data-v3-chart-lite] .main{min-width:0;flex:1;margin-left:var(--sidebar-w);background:var(--bg)}
body[data-v3-chart-lite] .topbar{position:sticky;top:0;z-index:1020;display:flex;align-items:center;gap:14px;height:var(--topbar-h);padding:0 22px;background:var(--topbar-bg);border-bottom:1px solid var(--line);box-shadow:none}
body[data-v3-chart-lite] .content{width:100%;max-width:none;margin:0;padding:22px 26px 40px}
body[data-v3-chart-lite] .chart-page{width:100%;max-width:none;margin:0}
body[data-v3-chart-lite] .topbar .search-wrap{flex:1;max-width:620px;margin:0}
body[data-v3-chart-lite] .topbar .search-box{height:38px;border:1px solid var(--line2);border-radius:9px;background:var(--panel2);box-shadow:none}
body[data-v3-chart-lite] .topbar .search-box input{color:var(--text);font:500 13px var(--sans,Inter,sans-serif)}
body[data-v3-chart-lite] .topbar .search-box input::placeholder{color:var(--soft)}
body[data-v3-chart-lite] .topbar .search-box #goBtn{height:28px;margin-right:4px;border-radius:6px;background:var(--brand);color:#fff;font:700 11px var(--sans,Inter,sans-serif)}
body[data-v3-chart-lite] .topbar .top-actions{margin-left:auto;display:flex;align-items:center;gap:8px}
body[data-v3-chart-lite] .topbar .v3-icon-btn{display:grid;place-items:center;width:38px;height:38px;padding:0;border:1px solid var(--line2);border-radius:9px;background:var(--panel);color:var(--muted);font-size:17px;cursor:pointer}
body[data-v3-chart-lite] .topbar .v3-icon-btn:hover{background:var(--panel2);color:var(--text)}
body[data-v3-chart-lite] .topbar .v3-auth{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12.5px;font-weight:700}
body[data-v3-chart-lite] .topbar .v3-auth .primary{padding:8px 12px;border-radius:8px;background:var(--brand);color:#fff}
body[data-v3-chart-lite] .topbar .v3-user-menu{position:relative}
body[data-v3-chart-lite] .topbar .v3-user-menu summary{display:flex;align-items:center;gap:8px;list-style:none;padding:4px 8px 4px 4px;border:1px solid var(--line2);border-radius:10px;background:var(--panel);color:var(--text);cursor:pointer}
body[data-v3-chart-lite] .topbar .v3-user-menu summary::-webkit-details-marker{display:none}
body[data-v3-chart-lite] .topbar .v3-user-menu summary>i{color:var(--soft);font-size:15px}
body[data-v3-chart-lite] .topbar .v3-user-avatar{display:grid;place-items:center;width:30px;height:30px;overflow:hidden;border-radius:8px;background:var(--brand);color:#fff;font-size:12px;font-weight:800}
body[data-v3-chart-lite] .topbar .v3-user-avatar img{width:100%;height:100%;object-fit:cover}
body[data-v3-chart-lite] .topbar .v3-user-name{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:800}
body[data-v3-chart-lite] .topbar .v3-user-dropdown{position:absolute;right:0;top:calc(100% + 8px);z-index:1100;display:grid;min-width:190px;padding:6px;border:1px solid var(--line2);border-radius:10px;background:var(--panel);box-shadow:var(--shadow-lg)}
body[data-v3-chart-lite] .topbar .v3-user-dropdown a,body[data-v3-chart-lite] .topbar .v3-user-dropdown button{display:flex;align-items:center;gap:9px;width:100%;padding:9px 10px;border:0;border-radius:6px;background:transparent;color:var(--text);font:700 12px var(--sans,Inter,sans-serif);text-align:left;text-decoration:none;cursor:pointer}
body[data-v3-chart-lite] .topbar .v3-user-dropdown a:hover,body[data-v3-chart-lite] .topbar .v3-user-dropdown button:hover{background:var(--panel2)}
body[data-v3-chart-lite] .topbar .v3-user-dropdown button{color:#d56b6b}
body[data-v3-chart-lite] .topbar .top-actions>a,body[data-v3-chart-lite] .topbar .theme-toggle button{height:34px;border:1px solid var(--line2);border-radius:8px;background:var(--panel);color:var(--muted);font:700 12px var(--sans,Inter,sans-serif)}
body[data-v3-chart-lite] .topbar .top-actions>a{display:inline-flex;align-items:center;padding:0 11px;text-decoration:none}
body[data-v3-chart-lite] .topbar .top-actions>a.primary{border-color:var(--brand);background:var(--brand);color:#fff}
body[data-v3-chart-lite] .topbar .theme-toggle{display:flex;gap:3px;padding:3px;border:1px solid var(--line2);border-radius:9px;background:var(--panel)}
body[data-v3-chart-lite] .topbar .theme-toggle button{height:26px;padding:0 8px;border:0;background:transparent}
body[data-v3-chart-lite] .topbar .theme-toggle button.active{background:var(--brandSoft);color:var(--brand2)}
@media(max-width:1080px){body[data-v3-chart-lite] .main{margin-left:0}body[data-v3-chart-lite] .content{padding:18px 16px 32px}}
/* Exact index.html sidebar styles, deliberately scoped to defeat legacy layout rules. */
/* Source pages still need legacy body tokens for their content.  The menu must not inherit them. */
html.theme-dark body.v3-menu-mounted .app-sidebar{--bg:#111419;--panel:#181c22;--panel2:#20252d;--line:#2b323c;--line2:#39424e;--text:#e7e9ed;--muted:#a4abb6;--soft:#77818e;--brand:#2f765a;--brand2:#93bca7;--brand-hover:#245c45;--brandSoft:#1c2a24;--brand-line:#385747;--brand-glow:rgba(47,118,90,.18);--focus-ring:rgba(88,145,117,.24);--focus-ring-strong:rgba(88,145,117,.30);--nav-text:#c7cdd5;--topbar-bg:rgba(24,28,34,.92);--shadow:0 10px 28px rgba(0,0,0,.24);--shadow-lg:0 18px 44px rgba(0,0,0,.38)}
html:not(.theme-dark) body.v3-menu-mounted .app-sidebar{--bg:#f4f7fb;--panel:#fff;--panel2:#f9fbfe;--line:#e6ecf3;--line2:#d7e0eb;--text:#172033;--muted:#697a92;--soft:#8390a4;--brand:#17803d;--brand2:#0f6d32;--brand-hover:#0f6d32;--brandSoft:#e8f6ee;--brand-line:#bfe3cc;--brand-glow:rgba(23,128,61,.28);--focus-ring:rgba(23,128,61,.20);--focus-ring-strong:rgba(23,128,61,.25);--nav-text:#3d4a60;--topbar-bg:rgba(255,255,255,.92);--shadow:0 10px 28px rgba(23,32,51,.06);--shadow-lg:0 18px 44px rgba(23,32,51,.10)}
body.v3-menu-mounted .app-sidebar .nav-group{margin:0}
body.v3-menu-mounted .app-sidebar .nav-link{display:flex;align-items:center;gap:11px;padding:9px 10px;margin:0 0 2px;border:0;border-radius:9px;background:transparent;color:var(--nav-text);font-size:13.6px;font-weight:600;line-height:normal;box-shadow:none;text-decoration:none;transform:none;transition:background .14s ease,color .14s ease}
body.v3-menu-mounted .app-sidebar .nav-link i{width:18px;font-size:17px;line-height:1;color:var(--soft);text-align:center;transition:color .14s ease}
body.v3-menu-mounted .app-sidebar .nav-link:hover,body.v3-menu-mounted .app-sidebar .nav-link:focus{background:var(--panel2);border:0;color:var(--text);box-shadow:none;text-decoration:none;transform:none}
body.v3-menu-mounted .app-sidebar .nav-link:hover i{color:var(--brand2)}
body.v3-menu-mounted .app-sidebar .nav-link.active{background:var(--brandSoft);border:0;color:var(--brand2);box-shadow:none}
body.v3-menu-mounted .app-sidebar .nav-link.active i{color:var(--brand2)}
body.v3-menu-mounted .app-sidebar .nav-link.active:after{content:"";position:absolute;left:-14px;top:8px;bottom:8px;width:3px;background:var(--brand);border-radius:0 3px 3px 0}
body.v3-menu-mounted .app-sidebar .nav-parent{width:100%;text-align:left;cursor:pointer}
body.v3-menu-mounted .app-sidebar .nav-parent:after{content:none!important;display:none!important}
body.v3-menu-mounted .app-sidebar .nav-parent .chev{width:auto;margin-left:auto;font-size:18px;color:var(--soft);transition:transform .18s ease,color .14s ease}
body.v3-menu-mounted .app-sidebar .nav-group.is-open .nav-parent{background:var(--panel2);color:var(--text)}
body.v3-menu-mounted .app-sidebar .nav-group.is-open .nav-parent>i:first-child{color:var(--brand2)}
body.v3-menu-mounted .app-sidebar .nav-group.is-open .nav-parent .chev{color:var(--brand2);transform:rotate(90deg)}
body.v3-menu-mounted .app-sidebar .nav-submenu{max-height:0;overflow:hidden;opacity:0;visibility:hidden;padding:0 0 0 39px;transition:max-height .22s ease,opacity .14s ease,visibility 0s linear .22s}
body.v3-menu-mounted .app-sidebar .nav-group.is-open .nav-submenu{max-height:360px;opacity:1;visibility:visible;padding-top:2px;padding-bottom:5px;transition:max-height .26s ease,opacity .16s ease,visibility 0s linear 0s}
body.v3-menu-mounted .app-sidebar .nav-sublink{display:block;position:relative;padding:6px 10px;border-radius:7px;background:transparent;color:var(--muted);font-size:12.5px;font-weight:600;line-height:1.35;text-decoration:none;transition:background .14s ease,color .14s ease}
body.v3-menu-mounted .app-sidebar .nav-sublink:before{content:"";position:absolute;left:-14px;top:50%;width:5px;height:5px;border-radius:50%;background:var(--line2);transform:translateY(-50%);transition:background .14s ease,transform .14s ease}
body.v3-menu-mounted .app-sidebar .nav-sublink:hover{background:var(--panel2);color:var(--text);text-decoration:none}
body.v3-menu-mounted .app-sidebar .nav-sublink:hover:before{background:var(--brand);transform:translateY(-50%) scale(1.15)}
body.v3-menu-mounted .app-sidebar .nav-sublink.active{background:var(--brandSoft);color:var(--brand2);font-weight:700}
body.v3-menu-mounted .app-sidebar .nav-sublink.active:before{background:var(--brand);box-shadow:0 0 0 3px var(--focus-ring)}
@media(max-width:1080px){.v3-converted .app-content-wrapper{margin-left:0}.v3-converted .v3-mobile-menu{display:grid;place-items:center}.v3-converted .v3-search{display:none}.v3-converted .app-main{padding:18px 16px 32px}}

/* Full v3 theme bridge for the editor-only workspaces.  Their fixed toolbar and
   Monaco layout remain intentionally native; only the surrounding shell tokens
   are normalized to the index.html palette. */
html.theme-dark body.v3-special-shell{--bg-body:#111419;--bg-panel:#181c22;--bg-panel-h:#20252d;--bg-input:#20252d;--bg-row-alt:rgba(255,255,255,.025);--bg-row-hov:#252c35;--border:#2b323c;--text:#e7e9ed;--text-muted:#a4abb6;--text-head:#e7e9ed;--accent:#2f765a;--green:#93bca7;--red:#df8585;--amber:#c9a66a;--blue:#8eabdb;--shadow:0 10px 28px rgba(0,0,0,.24)}
html:not(.theme-dark) body.v3-special-shell{--bg-body:#f4f7fb;--bg-panel:#fff;--bg-panel-h:#f9fbfe;--bg-input:#f9fbfe;--bg-row-alt:rgba(0,0,0,.018);--bg-row-hov:#edf5f0;--border:#e6ecf3;--text:#172033;--text-muted:#697a92;--text-head:#172033;--accent:#17803d;--green:#0f6d32;--red:#dc6262;--amber:#b7791f;--blue:#3569b6;--shadow:0 10px 28px rgba(23,32,51,.06)}
body.v3-special-shell .gs-header{background:var(--topbar-bg)!important;border-color:var(--line)!important;box-shadow:none}
body.v3-special-shell .gs-logo{color:var(--brand2)!important}body.v3-special-shell .gs-logo span{color:var(--text)!important}
body.v3-special-shell .tb-btn,body.v3-special-shell .btn-theme{border-color:var(--line2)!important;color:var(--muted)!important;background:var(--panel)}
body.v3-special-shell .tb-btn:hover,body.v3-special-shell .btn-theme:hover{border-color:var(--brand-line)!important;background:var(--panel2)!important;color:var(--text)!important}
body.v3-special-shell .btn-theme.active,body.v3-special-shell .tb-btn.primary{background:var(--brand)!important;border-color:var(--brand)!important;color:#fff!important}
body.v3-special-shell [data-theme="trader"]{display:none!important}
body.v3-special-shell [style*="background:#2a3a5a"],body.v3-special-shell [style*="background:#1e2c44"]{background:var(--line)!important}
html.theme-dark .v3-converted .ts-library-page{--bg-body:#111419;--bg-panel:#181c22;--bg-panel-h:#20252d;--border:#2b323c;--text:#e7e9ed;--text-muted:#a4abb6;--text-head:#e7e9ed;--accent:#2f765a;--green:#93bca7;--red:#df8585;--amber:#c9a66a;--blue:#8eabdb;--shadow:0 10px 28px rgba(0,0,0,.24)}
html:not(.theme-dark) .v3-converted .ts-library-page{--bg-body:#f4f7fb;--bg-panel:#fff;--bg-panel-h:#f9fbfe;--border:#e6ecf3;--text:#172033;--text-muted:#697a92;--text-head:#172033;--accent:#17803d;--green:#0f6d32;--red:#dc6262;--amber:#b7791f;--blue:#3569b6;--shadow:0 10px 28px rgba(23,32,51,.06)}
