.upgrade-dialog[data-v-9056607a]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:grid;place-items:center;padding:20px}.upgrade-dialog__backdrop[data-v-9056607a]{position:absolute;top:0;right:0;bottom:0;left:0;background:#0f172a7a;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.upgrade-dialog__card[data-v-9056607a]{position:relative;z-index:1;width:min(430px,100%);display:grid;gap:12px;padding:24px;border:1px solid rgba(203,213,225,.95);border-radius:16px;background:#fffffffa;box-shadow:0 28px 60px -32px #0f172a73}.upgrade-dialog__eyebrow[data-v-9056607a]{color:#64748b;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.upgrade-dialog__card h2[data-v-9056607a]{margin:0;color:#0f172a;font-size:22px}.upgrade-dialog__card p[data-v-9056607a],.upgrade-dialog__meta[data-v-9056607a]{margin:0;color:#475569;line-height:1.6}.upgrade-dialog__meta[data-v-9056607a]{display:grid;gap:4px;padding:10px 12px;border:1px solid rgba(226,232,240,.95);border-radius:10px;background:#f8fafc;font-size:13px;font-weight:700}.upgrade-dialog__actions[data-v-9056607a]{display:flex;justify-content:flex-end;gap:10px}.upgrade-dialog__actions a[data-v-9056607a],.upgrade-dialog__actions button[data-v-9056607a]{height:38px;display:inline-grid;place-items:center;padding:0 14px;border-radius:10px;font-weight:900;text-decoration:none}.upgrade-dialog__actions a[data-v-9056607a]{background:#2563eb;color:#fff}.upgrade-dialog__actions button[data-v-9056607a]{border:1px solid rgba(148,163,184,.55);background:#fff;color:#0f172a;cursor:pointer}:root{color-scheme:light;--landing-bg-top: #ffffff;--landing-bg-bottom: #f8fafc;--landing-text: #0f172a}html{scroll-behavior:smooth}body{margin:0;font-family:PingFang SC,Noto Sans SC,Helvetica Neue,Arial,sans-serif;background:radial-gradient(circle at top left,rgba(37,99,235,.08),transparent 26%),radial-gradient(circle at right 18%,rgba(14,165,233,.06),transparent 20%),linear-gradient(180deg,var(--landing-bg-top) 0%,var(--landing-bg-bottom) 100%);color:var(--landing-text);overflow-x:hidden;overflow-y:auto}html,body,#app{min-height:100%}*{box-sizing:border-box}a,button,input,textarea,select{font:inherit}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;background-color:#f0f2f5;color:#333;margin:0;padding:0}body.app-body{height:100vh;height:100dvh;overflow-x:auto;overflow-y:hidden}body.admin-body,body.auth-body,body.landing-page-body,body.account-body{height:auto;min-height:100vh;overflow-x:hidden;overflow-y:auto}.layout-container{display:grid;grid-template-areas:"header header header" "sidebar main inspector" "footer footer footer";grid-template-rows:auto 1fr 200px;grid-template-columns:280px minmax(0,1fr) 320px;height:100vh;height:100dvh;min-width:1480px;margin:0 auto;gap:2px;background-color:#e1e5e9}.mobile-workbench-nav,.mobile-workbench-drawer-backdrop{display:none}.layout-container.layout-collapse-header{grid-template-rows:0 1fr 200px}.layout-container.layout-collapse-sidebar{grid-template-columns:0 minmax(0,1fr) 320px}.layout-container.layout-collapse-inspector{grid-template-columns:280px minmax(0,1fr) 0}.layout-container.layout-collapse-footer{grid-template-rows:auto 1fr 0}.layout-container.layout-collapse-sidebar.layout-collapse-inspector{grid-template-columns:0 minmax(0,1fr) 0}.layout-container.layout-collapse-header.layout-collapse-footer{grid-template-rows:0 1fr 0}.layout-container.layout-sandbox-focus{grid-template-rows:auto 1fr 0;grid-template-columns:0 minmax(0,1fr) 0;min-width:0}.header-section,.sidebar-section,.main-section,.inspector-section,.footer-section{background-color:#fff;border:1px solid #e1e5e9;overflow:hidden}.layout-container.layout-collapse-header .header-section,.layout-container.layout-collapse-sidebar .sidebar-section,.layout-container.layout-collapse-inspector .inspector-section,.layout-container.layout-collapse-footer .footer-section,.layout-container.layout-sandbox-focus .sidebar-section,.layout-container.layout-sandbox-focus .inspector-section,.layout-container.layout-sandbox-focus .footer-section{border-width:0}.layout-container.layout-collapse-header .header-section>*,.layout-container.layout-collapse-sidebar .sidebar-section>*,.layout-container.layout-collapse-inspector .inspector-section>*,.layout-container.layout-collapse-footer .footer-section>*{display:none}.layout-container.layout-sandbox-focus .sidebar-section>*,.layout-container.layout-sandbox-focus .inspector-section>*,.layout-container.layout-sandbox-focus .footer-section>*{display:none}.header-section{grid-area:header;border-bottom:2px solid #e1e5e9;overflow:visible}.header-content{display:flex;flex-direction:column;gap:14px;padding:16px 20px 18px;height:100%}.header-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.header-top{border-bottom:1px solid #eef2f5;padding-bottom:4px}.header-bottom{display:grid;grid-template-columns:minmax(320px,1fr) minmax(220px,auto);align-items:center;gap:18px}.brand h1{color:#1a1a1a;font-size:20px;font-weight:600}.brand{display:flex;flex-direction:column;gap:2px}.brand-subtitle{margin-top:4px;font-size:12px;color:#6b7280;letter-spacing:.4px}.search-group{display:flex;flex-direction:column;gap:6px}.search-label{font-size:12px;color:#6b7280;font-weight:500}.search-field{display:flex;align-items:center;gap:10px}.search-field input{min-width:220px}.header-actions{display:flex;align-items:center;gap:12px}.auth-section{display:flex;align-items:center;gap:16px}.auth-actions,.auth-user{display:flex;align-items:center;gap:10px}.auth-user-info{display:flex;flex-direction:column;align-items:flex-start;line-height:1.2}.auth-username{font-weight:600;color:#1a1a1a}.auth-role-tag{display:inline-block;margin-top:2px;padding:2px 6px;border-radius:999px;background-color:#f0f4ff;color:#4263eb;font-size:10px;letter-spacing:.6px}.btn-text{border:none;background:none;color:#0969da;font-size:14px;cursor:pointer;padding:6px 8px;border-radius:4px;transition:background-color .2s}.btn-text:hover{background-color:#0969da14}.sidebar-section{grid-area:sidebar;display:flex;flex-direction:column}.sidebar-content{height:100%;display:flex;flex-direction:column}.stock-list-tabs{display:flex;flex-wrap:wrap;border-bottom:1px solid #e1e5e9}.stock-list-tabs .tab-btn{flex:1 1 33.333%;min-width:0;padding:9px 6px;white-space:nowrap}.stock-list-content{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0}.stock-list-content .tab-content{flex:1;min-height:0}.stock-list-content .tab-content.active{display:flex;flex-direction:column}.favorites-panel,.screener-panel{display:flex;flex-direction:column;gap:16px;height:100%;min-height:0}.main-section{grid-area:main;display:flex;flex-direction:column;min-height:0}.chart-header{display:flex;justify-content:space-between;align-items:center;padding:15px 20px;border-bottom:1px solid #e1e5e9;background-color:#fafbfc}.chart-title{font-size:18px;font-weight:600;color:#1a1a1a}.chart-controls{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.layout-toggle-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.layout-toggle-btn{min-width:88px;padding:8px 10px;font-size:12px}.layout-toggle-btn.active{border-color:#0d6efd;color:#0d6efd;background:#0d6efd14}.multi-mode-indicator{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.mode-chip{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:0 10px;border-radius:999px;background:#0f172a;color:#fff;font-size:12px;font-weight:700;letter-spacing:.3px}.mode-hint{font-size:12px;color:#64748b}.range-selection{display:flex;align-items:center;gap:10px}.sync-controls{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.sync-controls .sync-btn{min-width:150px;padding:10px 18px}.sync-controls .sync-status{min-width:200px}.selection-result{font-size:12px;color:#1a1a1a;min-width:160px}.selection-overlay{position:absolute;top:0;height:100%;background-color:#2196f326;border:1px solid rgba(33,150,243,.6);pointer-events:none;z-index:5}.sync-status{display:flex;align-items:center;gap:10px;min-width:220px}.sync-status.hidden{display:none}.sync-progress-bar{width:120px;height:6px;background:#0969da26;border-radius:999px;overflow:hidden;position:relative}.sync-progress-fill{position:absolute;left:0;top:0;bottom:0;width:0;background:linear-gradient(90deg,#0d6efd,#51a7ff);transition:width .3s ease}.sync-status-message{font-size:12px;color:#1a1a1a;white-space:nowrap}.selection-modal{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:10}.selection-modal.hidden{display:none}.selection-modal-content{min-width:280px;background:linear-gradient(160deg,#1976d2eb,#2196f3e6);border-radius:14px;box-shadow:0 18px 36px #0f235f4d;overflow:hidden;border:1px solid rgba(255,255,255,.25);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);animation:fadeInScale .2s ease-out}.selection-modal-header{display:flex;justify-content:space-between;align-items:flex-start;padding:16px 20px 10px;color:#fff}.selection-modal-title .title{font-size:16px;letter-spacing:1px;text-transform:uppercase;opacity:.85}.selection-modal-title .subtitle{display:block;font-size:20px;font-weight:600;margin-top:4px}.selection-modal-close{background:#ffffff2e;border:none;color:#fff;font-size:16px;cursor:pointer;line-height:1;width:28px;height:28px;border-radius:50%;transition:background .2s ease}.selection-modal-close:hover{background:#ffffff4d}.selection-modal-body{background:#ffffff1c;color:#fff;padding:18px 20px 20px}.selection-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}.metric-card{background:#ffffff24;border-radius:12px;padding:12px 10px;text-align:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.18)}.metric-card .label{font-size:12px;letter-spacing:.5px;opacity:.7}.metric-card .value{display:block;margin-top:6px;font-size:18px;font-weight:600}.metric-card.positive .value{color:#a6ffcb}.metric-card.negative .value{color:#ffb7b7}.selection-footer{display:flex;justify-content:space-between;gap:12px}.price-pill{flex:1;background:#ffffff26;border-radius:999px;padding:10px 14px;display:flex;justify-content:space-between;align-items:center;font-size:13px;letter-spacing:.3px}.price-pill span{opacity:.75}.price-pill strong{font-size:15px}@keyframes fadeInScale{0%{opacity:0;transform:translate(-50%,-50%) scale(.92)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.timeframe-selector{display:flex;gap:5px}.timeframe-btn{padding:6px 12px;border:1px solid #d0d7de;background-color:#f6f8fa;border-radius:4px;cursor:pointer;font-size:12px;transition:all .2s}.timeframe-btn.active{background-color:#0969da;color:#fff;border-color:#0969da}.indicator-toggles{display:flex;gap:15px;font-size:12px}.indicator-toggles label{display:flex;align-items:center;gap:4px;cursor:pointer}.chart-area{flex:1;position:relative;min-height:0}.inspector-section{grid-area:inspector;display:flex;flex-direction:column}.inspector-content{height:100%;display:flex;flex-direction:column}.inspector-tabs{display:flex;border-bottom:1px solid #e1e5e9}.inspector-tab-content{flex:1;overflow-y:auto;padding:15px}.quote-info{margin-bottom:20px}.price-display{text-align:center;margin-bottom:15px}.current-price{font-size:24px;font-weight:700;color:#1a1a1a}.price-change{font-size:14px;margin-left:10px}.quote-details{display:flex;flex-direction:column;gap:8px}.quote-item{display:flex;justify-content:space-between;padding:5px 0;border-bottom:1px solid #f1f3f4}.quote-item .label{color:#656d76;font-size:12px}.quote-item .value{font-size:12px;font-weight:600}.insight-section{margin-bottom:18px;border:1px solid #e5e8eb;border-radius:8px;padding:14px;background-color:#fafbfc}.insight-notice{margin-bottom:12px;padding:10px 12px;border-radius:6px;background-color:#fffbe6;color:#ad6800;font-size:12px;border:1px solid #ffe58f}.insight-notice.hidden{display:none}.insight-section h4{font-size:14px;font-weight:600;color:#1f2329;margin-bottom:10px}.insight-section-body{font-size:12px;color:#333;line-height:1.5}.insight-placeholder{color:#8c959f;font-style:italic}.insight-kv-list{list-style:none;display:flex;flex-direction:column;gap:8px}.insight-kv-item{display:flex;justify-content:space-between;gap:12px}.insight-kv-label{flex:0 0 88px;color:#656d76}.insight-kv-value{flex:1;text-align:right;color:#1f2329}.insight-hot-match{margin-bottom:10px}.insight-pill-container{display:flex;flex-wrap:wrap;gap:6px}.insight-pill{padding:4px 8px;border-radius:999px;background-color:#e6f4ff;color:#0958d9;font-size:11px}.insight-topic-list{list-style:none;display:flex;flex-direction:column;gap:8px;margin:0;padding:0}.insight-topic-item{display:flex;justify-content:space-between;gap:8px;padding:6px 8px;border-radius:6px;background-color:#fff;border:1px solid #ebeff2;font-size:12px;align-items:center}.insight-topic-item .topic-name{font-weight:600;color:#1f2329;flex:1}.insight-topic-item .topic-heat{color:#d4380d;font-weight:600;margin-left:12px}.insight-topic-item .topic-time{margin-left:8px;color:#8c959f}.trading-form{display:flex;flex-direction:column;gap:15px}.form-group{display:flex;flex-direction:column;gap:5px;width:100%;min-width:0;align-self:stretch}.form-group label{font-size:12px;font-weight:600;color:#656d76}.form-group input,.form-group select{padding:8px;border:1px solid #d0d7de;border-radius:4px;font-size:14px;width:100%;min-width:0;height:42px;line-height:1.2;box-sizing:border-box}.footer-section{grid-area:footer;display:flex;flex-direction:column;border-top:1px solid #e1e5e9}.footer-content{height:100%;display:flex;flex-direction:column}.footer-tabs{display:flex;border-bottom:1px solid #e1e5e9}.footer-tab-content{flex:1;overflow-y:auto}.log-container{padding:10px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:12px;line-height:1.4;background-color:#f6f8fa}.log-item{margin-bottom:5px;padding:3px 0}.timestamp{color:#656d76}.signal-type{color:#0969da;font-weight:600}.tab-btn{padding:10px 15px;border:none;background-color:#f6f8fa;border-bottom:3px solid transparent;cursor:pointer;font-size:12px;font-weight:600;color:#656d76;transition:all .2s}.tab-btn.active{background-color:#fff;color:#0969da;border-bottom-color:#0969da}.tab-btn:hover:not(.active){background-color:#f1f3f4}.tab-content{display:none;height:100%}.tab-content.active{display:block}.btn-primary{padding:8px 16px;background-color:#0969da;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:600;transition:background-color .2s}.btn-primary:hover{background-color:#0860ca}.btn-secondary{padding:8px 16px;background-color:#f6f8fa;color:#24292f;border:1px solid #d0d7de;border-radius:4px;cursor:pointer;font-size:14px;font-weight:600;transition:all .2s}.btn-secondary:hover{background-color:#f1f3f4}.btn-secondary.btn-loading{cursor:wait;opacity:.85}.btn-secondary .btn-spinner{display:inline-block;width:14px;height:14px;margin-right:8px;border:2px solid #6e7781;border-top-color:transparent;border-radius:50%;animation:btn-spinner .6s linear infinite;vertical-align:middle}.btn-secondary.btn-success-pulse{animation:btn-success-pulse .8s ease-out;background-color:#e6ffed;border-color:#86d28b;color:#135b2d}@keyframes btn-spinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes btn-success-pulse{0%{box-shadow:0 0 #33b36766}70%{box-shadow:0 0 0 6px #33b36700}to{box-shadow:0 0 #33b36700}}.btn-debug{padding:6px 12px;background-color:#e3ad00;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:12px;font-weight:500;transition:background-color .2s}.btn-debug:hover{background-color:#d4940a}.full-width{width:100%}input[type=text],input[type=number],input[type=email],input[type=password]{padding:8px 12px;border:1px solid #d0d7de;border-radius:4px;font-size:14px;transition:border-color .2s}input[type=text]:focus,input[type=number]:focus{outline:none;border-color:#0969da;box-shadow:0 0 0 3px #0969da1a}input[type=email]:focus,input[type=password]:focus{outline:none;border-color:#0969da;box-shadow:0 0 0 3px #0969da1a}.loading{display:none}.auth-modal{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:2000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.auth-modal-content{background-color:#fff;padding:28px 32px;border-radius:12px;width:360px;max-width:92vw;box-shadow:0 24px 48px #0f172a2e;position:relative}.auth-modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.auth-modal-header h2{font-size:20px;font-weight:600;color:#1f2328}.auth-modal-close{border:none;background:none;font-size:24px;line-height:1;cursor:pointer;color:#57606a;padding:4px 6px}.auth-modal-close:hover{color:#24292f}.auth-form{display:flex;flex-direction:column;gap:12px}.auth-form label{font-size:13px;color:#4b5563;font-weight:600}.auth-form input{width:100%}.auth-form-actions{margin-top:8px}.auth-helper-text{font-size:12px;color:#57606a;text-align:center}.auth-helper-text a{color:#0969da}.auth-error{background-color:#d73a491a;color:#d73a49;border-radius:6px;padding:8px 10px;font-size:12px}.auth-success{background-color:#2ea0431f;color:#2ea043;border-radius:6px;padding:8px 10px;font-size:12px}.auth-page{background:linear-gradient(135deg,#0a63ff,#1f2937);min-height:100vh;height:auto;display:flex;align-items:center;justify-content:center;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:#1f2328;margin:0;overflow:auto}.auth-container{width:100%;max-width:520px;padding:24px}.auth-card{background-color:#fff;border-radius:16px;padding:32px;box-shadow:0 24px 48px #0f172a40;animation:fadeInUp .4s ease}.auth-title{font-size:24px;font-weight:700;margin-bottom:8px;color:#0f172a}.auth-subtitle{font-size:14px;color:#475569;margin-bottom:24px}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.hidden{display:none!important}.validate-switch{display:flex;align-items:center;gap:5px;font-size:12px}.validate-switch input[type=checkbox]{margin:0}.price-change.positive{color:#d73a49}.price-change.negative{color:#28a745}.error-type{color:#d73a49;font-weight:600}.trade-type{color:#28a745;font-weight:600}.warning-type{color:#f57c00;font-weight:600}.analysis-summary{line-height:1.6;color:#24292f;font-size:13px}#screenerResultsList li.selected{background-color:#e6f7ff!important;border-left:3px solid #0969da!important}@media (max-width: 1200px){.layout-container{grid-template-columns:250px 1fr 280px;min-width:100%;margin:0}}@media (max-width: 1024px){body.app-body{overflow-x:hidden;overflow-y:hidden}.layout-container{grid-template-areas:"header" "main";grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr);min-width:100%;margin:0;padding-bottom:64px}.layout-container.layout-sandbox-focus,.layout-container.layout-collapse-sidebar.layout-collapse-inspector.layout-sandbox-focus{grid-template-areas:"header" "main";grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr)}.header-bottom{grid-template-columns:1fr;gap:14px}.sidebar-section,.inspector-section,.footer-section{display:none}.chart-header{padding:10px 12px;gap:10px;align-items:flex-start}.chart-controls{gap:8px}.chart-header .indicator-dropdown,.mode-hint,.layout-toggle-group{display:none}.chart-area{padding:8px}.layout-container.layout-sandbox-focus .chart-area{padding-bottom:70px}.mobile-workbench-nav{position:fixed;left:12px;right:12px;bottom:max(10px,env(safe-area-inset-bottom));z-index:80;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:6px;border:1px solid rgba(203,213,225,.95);border-radius:18px;background:#fffffff5;box-shadow:0 18px 42px #0f172a2e;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.mobile-workbench-nav button{min-width:0;height:42px;border:0;border-radius:13px;background:transparent;color:#475569;font-size:12px;font-weight:800}.mobile-workbench-nav button.active{background:#0f172a;color:#fff}.mobile-workbench-drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:flex;align-items:flex-end;justify-content:center;padding:0 10px max(78px,calc(env(safe-area-inset-bottom) + 78px));background:#0f172a57}.mobile-workbench-drawer{width:min(720px,100%);max-height:min(78dvh,720px);display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(203,213,225,.95);border-radius:20px;background:#fffffffa;box-shadow:0 28px 72px #0f172a47}.mobile-workbench-drawer__header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid rgba(226,232,240,.95)}.mobile-workbench-drawer__header strong{color:#0f172a;font-size:15px}.mobile-workbench-drawer__header button{height:32px;padding:0 12px;border:1px solid rgba(203,213,225,.95);border-radius:999px;background:#f8fafc;color:#334155;font-size:12px;font-weight:800}.mobile-workbench-drawer__body{min-height:0;flex:1;overflow:auto;padding:12px}.mobile-workbench-drawer__body .sidebar-content,.mobile-workbench-drawer__body .inspector-content{height:min(66dvh,620px);min-height:360px}.mobile-workbench-drawer__body .inspector-tab-content{padding:12px 0 0}.mobile-layer-settings{min-height:260px}.mobile-layer-settings .indicator-dropdown-toggle{display:none}.mobile-layer-settings .indicator-dropdown-panel{position:static;min-width:0;max-width:none;box-shadow:none;border-radius:14px}}@media (max-width: 768px){body.app-body{overflow-x:hidden;overflow-y:hidden}.layout-container{grid-template-areas:"header" "main";grid-template-rows:auto minmax(0,1fr);grid-template-columns:1fr;min-width:100%;margin:0;gap:0;padding-bottom:62px}.layout-container.layout-sandbox-focus,.layout-container.layout-collapse-sidebar.layout-collapse-inspector.layout-sandbox-focus{grid-template-areas:"header" "main";grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr)}.sidebar-section,.inspector-section,.footer-section{display:none}.header-content{padding:10px 12px;gap:8px}.header-row{gap:10px}.brand h1{font-size:16px}.brand-subtitle{display:none}.chart-header{align-items:stretch;flex-direction:column}.chart-controls{width:100%;align-items:stretch}.chart-area{padding:6px}.layout-container.layout-sandbox-focus .chart-area{padding-bottom:66px}.mobile-workbench-drawer-backdrop{padding:0 8px max(74px,calc(env(safe-area-inset-bottom) + 74px))}.mobile-workbench-drawer{max-height:min(76dvh,640px);border-radius:18px}.mobile-workbench-drawer__body .sidebar-content,.mobile-workbench-drawer__body .inspector-content{height:min(64dvh,560px);min-height:320px}.mobile-workbench-drawer__body .screener-panel,.mobile-workbench-drawer__body .limit-up-panel,.mobile-workbench-drawer__body .high-turnover-panel,.mobile-workbench-drawer__body .favorites-panel{gap:8px}.mobile-workbench-drawer__body .history-selector-container,.mobile-workbench-drawer__body .favorite-controls{flex:0 0 auto;gap:6px;padding:8px 10px;border-bottom:1px solid #e5e7eb;background:#f8fafc}.mobile-workbench-drawer__body .favorite-status{margin:0 10px 4px}.mobile-workbench-drawer__body .instrument-list__header{min-height:30px}.mobile-workbench-drawer__body .instrument-list__row{min-height:50px;padding-top:7px;padding-bottom:7px}}.log-container pre{white-space:pre-wrap;word-wrap:break-word}.backtest-grid{display:grid;gap:20px;grid-template-columns:minmax(300px,340px) minmax(0,1fr);align-items:start;margin-bottom:18px;width:100%;max-width:100%;overflow-x:hidden}@media (max-width: 1280px){.backtest-grid{grid-template-columns:minmax(0,1fr)}}.backtest-card{background:linear-gradient(135deg,#fffffffa,#f4f8fff0);border:1px solid rgba(209,213,224,.9);border-radius:18px;padding:24px;box-shadow:0 18px 40px -28px #1e40af59;animation:fadeInUp .25s ease;color:#1a1f36;min-width:0;max-width:100%}.card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:18px}.card-header h4{font-size:18px;color:#0f172a;margin-bottom:4px;letter-spacing:.02em}.card-subtitle{font-size:13px;color:#64748b}.card-body{display:flex;flex-direction:column;gap:20px;min-width:0}.settings-grid{display:grid;gap:16px 18px;grid-template-columns:1fr;width:100%}@media (min-width: 768px){.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-grid .span-2{grid-column:1 / -1}}.btn-ghost{background:#2563eb14;border:1px solid rgba(37,99,235,.32);color:#1d4ed8;border-radius:999px;padding:6px 16px;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-ghost:hover{background:#2563eb29;border-color:#2563eb7a;color:#1e3a8a}.backtest-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:4px}.backtest-actions .btn-primary{padding:10px 22px;border-radius:999px}.backtest-actions .btn-secondary{border-radius:999px}.backtest-actions .form-hint{margin-left:auto;font-size:12px;color:#6b7280}@media (max-width: 640px){.backtest-actions .form-hint{flex-basis:100%;margin:6px 0 0;text-align:left}}.backtest-settings-card input[type=number],.backtest-settings-card input[type=date]{background:#fffffff5;border:1px solid rgba(203,213,225,.9);border-radius:10px;padding:10px 12px;font-weight:500;color:#1f2937;transition:border-color .2s ease,box-shadow .2s ease;box-shadow:inset 0 1px #fffc}.backtest-settings-card select{background:#fffffff5;border:1px solid rgba(203,213,225,.9);border-radius:10px;padding:10px 12px;font-weight:500;color:#1f2937;transition:border-color .2s ease,box-shadow .2s ease;box-shadow:inset 0 1px #fffc;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,#475569 50%),linear-gradient(135deg,#475569 50%,transparent 50%),linear-gradient(to top,#cbd5e180,#cbd5e11a);background-position:calc(100% - 18px) calc(50% + 2px),calc(100% - 13px) calc(50% + 2px),100% 0;background-size:6px 6px,6px 6px,2.5em 100%;background-repeat:no-repeat}.backtest-settings-card input[type=number]:focus,.backtest-settings-card input[type=date]:focus,.backtest-settings-card select:focus{outline:none;border-color:#2563eba6;box-shadow:0 0 0 3px #3b82f62e}.backtest-settings-card select:disabled{background-color:#f8fafce6;color:#94a3b8;cursor:not-allowed}.strategy-info{padding:18px;border-radius:14px;border:1px dashed rgba(96,165,250,.65);background:#dbeafe66;display:flex;flex-direction:column;gap:14px;min-width:0}.strategy-info__header{display:flex;align-items:center;gap:10px}.strategy-info__header h5{font-size:15px;margin:0;color:#1d4ed8}.strategy-info__tag{display:inline-flex;align-items:center;border-radius:999px;padding:2px 10px;background:#3b82f62e;color:#1e3a8a;font-size:11px;font-weight:600;letter-spacing:.02em}.strategy-info__description{font-size:13px;color:#1f2937;line-height:1.6;margin:0}.strategy-rules-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.rules-block h6{font-size:13px;margin-bottom:6px;color:#0f172a}.rules-block ol,.strategy-info__notes ul{margin:0;padding-left:18px;color:#374151;font-size:13px;line-height:1.6}.strategy-info__notes h6{font-size:13px;margin-bottom:4px;color:#1f2937}.backtest-progress{margin-top:18px;padding:16px;border-radius:14px;border:1px solid rgba(191,219,254,.9);background:linear-gradient(135deg,#dbeafee6,#dbeafe99);display:flex;flex-direction:column;gap:12px}.backtest-progress-bar{position:relative;width:100%;height:10px;background:#94a3b847;border-radius:999px;overflow:hidden}.backtest-progress-fill{position:absolute;top:0;right:0;bottom:0;left:0;width:0;background:linear-gradient(90deg,#2563eb,#38bdf8);border-radius:inherit;transition:width .35s ease}.backtest-progress-fill.error{background:linear-gradient(90deg,#f97316,#ef4444)}.backtest-progress-label{font-size:13px;color:#1e293b;letter-spacing:.02em}.backtest-run-status{margin-top:14px;padding:12px 16px;border-radius:12px;font-size:13px;background:#16a34a1f;border:1px solid rgba(34,197,94,.3);color:#166534;display:flex;align-items:center;gap:10px}.backtest-run-status.error{background:#f871711f;border-color:#ef444447;color:#b91c1c}.backtest-placeholder-card{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f8fafff5,#e5ebffe6);border:1px dashed rgba(99,102,241,.35);text-align:left}.placeholder-content{max-width:480px;display:flex;flex-direction:column;gap:14px;color:#1a1f36}.placeholder-content h4{margin:0;font-size:20px;font-weight:600;color:#1e3a8a}.placeholder-content p{margin:0;font-size:14px;color:#475569;line-height:1.6}.placeholder-tips{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px;font-size:13px;color:#4c566a}.placeholder-tips li{position:relative;padding-left:18px}.placeholder-tips li:before{content:"•";position:absolute;left:6px;color:#2563eb}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:15px;margin-bottom:20px}.kpi-card{background-color:var(--background-light);padding:15px;border-radius:8px;text-align:center;border:1px solid var(--border-color)}.kpi-card .label{font-size:.9em;color:var(--text-secondary);display:block;margin-bottom:5px}.kpi-card .value{font-size:1.4em;font-weight:700;color:var(--text-primary)}.kpi-card .value.positive{color:var(--color-success)}.kpi-card .value.negative{color:var(--color-danger)}.equity-chart-container{width:100%;height:280px;margin-bottom:12px;border-radius:14px;background:radial-gradient(circle at 20% 20%,rgba(96,165,250,.18),transparent 55%),radial-gradient(circle at 80% 35%,rgba(14,116,144,.25),transparent 60%),#0f172aa6;border:1px solid rgba(148,163,184,.2);overflow:hidden}.trade-log-container{max-height:320px;overflow-y:auto;border-radius:12px;border:1px solid rgba(148,163,184,.25);background:#0f172a8c}.trade-log-table{width:100%;border-collapse:collapse}.trade-log-table th,.trade-log-table td{padding:10px 14px;text-align:left;border-bottom:1px solid rgba(148,163,184,.15)}.trade-log-table td:nth-child(3),.trade-log-table td:nth-child(4),.trade-log-table td:nth-child(5),.trade-log-table td:nth-child(6),.trade-log-table td:nth-child(7){text-align:right;font-variant-numeric:tabular-nums}.trade-log-table th{background-color:var(--background-light);position:sticky;top:0}.trade-log-table tbody tr:last-child td{border-bottom:none}.trade-log-table .buy{color:var(--color-success)}.trade-log-table .sell{color:var(--color-danger)}.placeholder{text-align:center;padding:40px;color:var(--text-secondary)}.backtest-card .placeholder{padding:20px;color:#cbd5f5}.dropdown{position:relative;display:inline-block}.dropdown-toggle .caret{display:inline-block;width:0;height:0;margin-left:5px;vertical-align:middle;border-top:4px dashed;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown-menu{display:none;position:absolute;top:100%;left:0;z-index:1000;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#fff;border:1px solid rgba(0,0,0,.15);border-radius:4px;box-shadow:0 6px 12px #0000002d;background-clip:padding-box}.dropdown-menu.show{display:block}.dropdown-menu>li>a{display:block;padding:8px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap;text-decoration:none}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu.screener-dropdown-menu{min-width:280px;padding:16px;box-sizing:border-box}.dropdown.screener-dropdown .dropdown-menu{right:0;left:auto;margin-right:0;transform:translate(0);max-width:calc(100vw - 16px)}.screener-dropdown-menu li+li{margin-top:6px}.screener-dropdown-menu .screener-controls{display:flex;flex-direction:column;gap:8px;margin-top:0}.screener-controls-label{font-weight:600;font-size:13px;color:#24292f}.screener-controls-row{display:flex;align-items:center;gap:8px}.screener-date-input{flex:1;padding:8px 12px;border:1px solid #d0d7de;border-radius:4px;font-size:14px;background-color:#fff;transition:border-color .2s;min-width:0}.screener-date-input:focus{outline:none;border-color:#0969da;box-shadow:0 0 0 3px #0969da1a}.screener-run-button{padding:8px 14px;font-weight:600;white-space:nowrap}.dropdown-menu .dropdown-divider{height:1px;margin:12px 0;background-color:#e1e5e9}.dropdown-menu .dropdown-section-title{font-size:12px;color:#6e7781;text-transform:uppercase;letter-spacing:.04em;padding:0 4px;cursor:default}.dropdown-menu.screener-dropdown-menu>li>a.active{font-weight:600;color:#0969da}.favorite-controls{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:15px 10px 0;flex-wrap:wrap}.favorite-controls .selector-group{flex:1;margin-bottom:0}.favorite-date-container,.favorite-date-container .date-picker{width:100%}.favorite-date-container label{font-weight:600;color:#24292f;font-size:13px}.favorite-controls button.btn-text{align-self:flex-start;margin-left:auto}.favorite-status{font-size:13px;color:#57606a;margin:0 10px 8px}.favorite-status.hidden{display:none}.favorite-status.error{color:#d32f2f}.history-selector-container{display:flex;flex-direction:column;gap:12px;padding:15px 10px;border-bottom:1px solid #e1e5e9;background-color:#f8f9fa}.selector-group{display:flex;flex-direction:column;gap:6px}.history-selector-container label{font-weight:600;color:#24292f;font-size:13px}.history-selector-container select{padding:8px 10px;border:1px solid #d0d7de;border-radius:6px;background-color:#fff;font-size:13px;width:100%;transition:border-color .2s,box-shadow .2s}.history-selector-container select:focus{outline:none;border-color:#0969da;box-shadow:0 0 0 3px #0969da1a}.selector-hint{font-size:12px;color:#e5533d}.date-picker{border:1px solid #d0d7de;border-radius:8px;background-color:#fff;padding:10px;box-shadow:0 6px 18px #0f172a14;width:100%}.date-picker-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.date-picker-label{font-weight:600;font-size:13px;color:#1f2328}.date-picker-nav{border:none;background-color:transparent;color:#0969da;font-size:18px;cursor:pointer;width:28px;height:28px;border-radius:50%;transition:background-color .2s ease,color .2s ease}.date-picker-nav:hover{background-color:#0969da1f}.date-picker-weekdays,.date-picker-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));text-align:center;gap:4px}.date-picker-weekdays span{font-size:11px;font-weight:600;color:#656d76;padding-bottom:4px}.date-picker-grid{min-height:160px;justify-items:center}.date-cell{position:relative;padding:6px 0;border-radius:6px;font-size:13px;font-weight:500;color:#8b949e;border:none;background:none;width:100%}.date-cell.available{cursor:pointer;color:#1f2328;background-color:#0969da14;transition:background-color .2s ease,color .2s ease}.date-cell.available:hover{background-color:#0969da2e;color:#0b3d91}.date-cell.selected{background-color:#0969da;color:#fff;box-shadow:0 6px 12px #0969da40}.date-cell.disabled{cursor:not-allowed;opacity:.35}.date-cell-placeholder{visibility:hidden}.strategy-validation-panel{display:flex;align-items:center;gap:16px;justify-content:flex-start;flex-wrap:wrap}.validation-toggle{display:flex;align-items:center;gap:8px}.toggle-switch{display:none}.toggle-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px;font-weight:500;color:#666;transition:color .3s ease}.toggle-slider{position:relative;width:44px;height:24px;background-color:#ccc;border-radius:12px;transition:background-color .3s ease;display:inline-block}.toggle-slider:before{content:"";position:absolute;width:20px;height:20px;border-radius:50%;background-color:#fff;top:2px;left:2px;transition:transform .3s ease;box-shadow:0 2px 4px #0003}.toggle-switch:checked+.toggle-label .toggle-slider{background-color:#007bff}.toggle-switch:checked+.toggle-label .toggle-slider:before{transform:translate(20px)}.toggle-switch:checked+.toggle-label{color:#007bff}.strategy-selector{display:flex;align-items:center;gap:10px;opacity:0;transform:translate(-20px);transition:all .3s ease}.strategy-selector.show{opacity:1;transform:translate(0)}.selector-label{font-size:13px;color:#666;white-space:nowrap}.custom-select{position:relative}.custom-select select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:6px;padding:6px 30px 6px 12px;font-size:13px;color:#495057;cursor:pointer;transition:all .2s ease;min-width:180px}.custom-select select:hover{border-color:#007bff;background-color:#e9ecef}.custom-select select:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.custom-select:after{content:"▼";position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:10px;color:#666;pointer-events:none}body.modal-open{overflow:hidden}.backtest-modal{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;z-index:60}.backtest-modal__overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0f172a8c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.backtest-modal__dialog{position:relative;width:min(92%,1080px);max-height:min(90vh,860px);overflow:hidden;background:linear-gradient(135deg,#fffffffa,#f3f7fff5);border-radius:24px;border:1px solid rgba(209,213,224,.75);box-shadow:0 28px 60px -24px #2563eb61;z-index:1;display:flex;flex-direction:column;animation:fadeInUp .3s ease}.backtest-modal__header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:24px 28px 20px;border-bottom:1px solid rgba(226,232,240,.8);background:#f8faffe6}.backtest-modal__header h3{margin:0;font-size:22px;color:#0f172a;letter-spacing:.02em}.modal-subtitle{margin:0;font-size:13px;color:#475569}.modal-close{background:transparent;border:none;color:#475569;font-size:26px;cursor:pointer;transition:color .2s ease}.modal-close:hover{color:#1d4ed8}.backtest-modal__body{padding:24px 28px 28px;overflow-y:auto;display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}@media (max-width: 960px){.backtest-modal__dialog{width:min(94%,720px)}.backtest-modal__body{grid-template-columns:minmax(0,1fr)}}body.backtest-modal-open{overflow:hidden}.auth-modal{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;z-index:50}.auth-modal.hidden{display:none}.auth-modal-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0f172ab8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.auth-modal-card{position:relative;width:min(90%,420px);background:#fff;color:#1f2937;border-radius:18px;box-shadow:0 32px 72px #0f172a59;padding:32px;z-index:1;animation:fadeInUp .3s ease}.auth-modal-close{position:absolute;top:18px;right:18px;background:transparent;border:none;font-size:22px;color:#334155;cursor:pointer}.auth-modal-header{margin-bottom:16px}.auth-modal-header h2{margin:0 0 8px;font-size:22px;color:#0f172a}.auth-modal-header p{margin:0;color:#64748b;font-size:14px}.auth-modal-tabs{display:flex;gap:12px;margin-bottom:20px}.auth-tab-btn{flex:1;padding:10px 0;border-radius:999px;border:1px solid transparent;background:#f1f5f9;font-weight:600;color:#475569;cursor:pointer;transition:all .2s ease}.auth-tab-btn.active{background:#0f172a;color:#fff;border-color:#0f172a}.auth-modal-body{display:flex;flex-direction:column;gap:24px}body.landing-page-body{--bg: oklch(98.5% .004 245);--surface: oklch(100% 0 0);--fg: oklch(18% .018 250);--font-body: -apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--fs-body: 16px;min-height:100vh;margin:0;padding:0;background:var(--surface);color:var(--fg);font-family:var(--font-body);font-size:var(--fs-body);line-height:1.55;overflow-x:visible;overflow-y:auto;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}body.landing-page-body #app{min-height:100vh;background:var(--surface);color:var(--fg);font-family:inherit}body.auth-body{--bg: oklch(98.5% .004 245);--surface: oklch(100% 0 0);--fg: oklch(18% .018 250);--font-body: -apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;min-height:100vh;margin:0;padding:0;background:var(--surface);color:var(--fg);font-family:var(--font-body);overflow-x:hidden;overflow-y:auto;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}body.auth-body #app{min-height:100vh;background:var(--surface);color:var(--fg);font-family:inherit}
