.toast-container[data-v-da2c6193]{z-index:99999;flex-direction:column;gap:8px;max-width:420px;display:flex;position:fixed;top:66px;right:20px}.toast-item[data-v-da2c6193]{color:#fff;cursor:pointer;border-radius:8px;align-items:center;gap:10px;padding:12px 18px;font-size:13px;animation:.25s ease-out slideIn-da2c6193;display:flex;box-shadow:0 4px 16px #0003}.toast-icon[data-v-da2c6193]{flex-shrink:0;font-size:15px;font-weight:700}.toast-msg[data-v-da2c6193]{flex:1;line-height:1.4}.toast-info[data-v-da2c6193]{background:var(--primary,#3b82f6)}.toast-warning[data-v-da2c6193]{background:#f59e0b}.toast-error[data-v-da2c6193]{background:#dc2626}@keyframes slideIn-da2c6193{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}.breadcrumb-bar[data-v-834c1c7e]{align-items:center;margin:0;display:flex}.breadcrumb-inner[data-v-834c1c7e]{flex-wrap:wrap;align-items:center;gap:.35rem;min-height:2rem;padding:.5rem 0;font-size:.8rem;display:flex}.breadcrumb-item[data-v-834c1c7e]{color:var(--text-secondary);white-space:nowrap;text-decoration:none;transition:color .2s}.breadcrumb-item[data-v-834c1c7e]:hover{color:var(--primary)}.breadcrumb-item.active[data-v-834c1c7e]{color:var(--text);font-weight:600}.breadcrumb-item.home[data-v-834c1c7e]{font-size:.9rem}.icon-home[data-v-834c1c7e]{vertical-align:middle;width:14px;height:14px}.breadcrumb-sep[data-v-834c1c7e]{color:var(--border);-webkit-user-select:none;user-select:none;font-size:1rem;line-height:1}@media (width<=768px){.breadcrumb-bar[data-v-834c1c7e]{-webkit-backdrop-filter:none;backdrop-filter:none;padding:0 .75rem;left:0}.breadcrumb-inner[data-v-834c1c7e]{min-height:1.75rem;padding:.4rem 0;font-size:.75rem}}.mobile-layout[data-v-f5a8455d]{padding-bottom:env(safe-area-inset-bottom,0px)}.mobile-header[data-v-f5a8455d]{height:48px!important;padding:0 12px!important}.body-layout[data-v-f5a8455d]{flex:auto;min-width:0;max-width:100%;display:flex;overflow:hidden}.mobile-body[data-v-f5a8455d]{flex-direction:column}.mobile-content[data-v-f5a8455d]{-webkit-overflow-scrolling:touch;overflow-y:auto;padding:0!important;padding-bottom:calc(60px + env(safe-area-inset-bottom,0px))!important;margin-left:0!important}.mobile-tabbar[data-v-f5a8455d]{z-index:200;height:56px;padding-bottom:env(safe-area-inset-bottom,0px);background:var(--bgColor-disabled);border-top:1px solid var(--border);-webkit-backdrop-filter:blur(10px);justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 12px #0000004d}.tabbar-item[data-v-f5a8455d]{height:100%;color:var(--text-secondary);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:10px;text-decoration:none;transition:color .2s;display:flex}.tabbar-item[data-v-f5a8455d]:hover{color:var(--text)}.tabbar-active[data-v-f5a8455d]{color:var(--primary)!important}.tabbar-icon[data-v-f5a8455d]{font-size:20px;line-height:1}.tabbar-label[data-v-f5a8455d]{font-size:10px;font-weight:500}@media (width<=768px){.switch-capsule-btn[data-v-f5a8455d]{padding:4px 10px!important;font-size:12px!important}.switch-capsule-btn .switch-flag[data-v-f5a8455d]{font-size:14px!important}.top-logo-icon[data-v-f5a8455d]{width:auto!important;height:34px!important}.top-header-left[data-v-f5a8455d]{width:auto!important}}.market-datetime[data-v-f5a8455d]{border:1px solid var(--border);color:var(--text-secondary);white-space:nowrap;background:#0e1117;border-radius:8px;align-items:center;gap:6px;padding:4px 10px;font-size:11px;display:flex}.datetime-icon[data-v-f5a8455d]{font-size:12px}.datetime-text[data-v-f5a8455d]{color:var(--text);letter-spacing:.3px;font-family:Courier New,Consolas,monospace;font-size:11px;font-weight:500}.datetime-tz[data-v-f5a8455d]{color:var(--color-accent-fg);background:var(--bgColor-accent-muted);border-radius:3px;padding:1px 5px;font-size:10px;font-weight:600}.feed-status[data-v-f5a8455d]{white-space:nowrap;border-radius:12px;align-items:center;gap:6px;margin-left:16px;padding:2px 10px;font-size:11px;display:flex}.feed-status.ws[data-v-f5a8455d]{color:#10b981;background:#10b98126}.feed-status.http[data-v-f5a8455d]{color:#f59e0b;background:#f59e0b26}.feed-status.offline[data-v-f5a8455d]{color:#ef4444;background:#ef44441a}.feed-dot[data-v-f5a8455d]{border-radius:50%;width:7px;height:7px;animation:1.5s infinite pulse-f5a8455d}.feed-dot.ws[data-v-f5a8455d]{background:#10b981}.feed-dot.http[data-v-f5a8455d]{background:#f59e0b}.feed-dot.offline[data-v-f5a8455d]{background:#ef4444;animation:none}.feed-text[data-v-f5a8455d]{font-weight:500}.feed-rtt[data-v-f5a8455d]{opacity:.7}@keyframes pulse-f5a8455d{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.2)}}.header-breadcrumb[data-v-f5a8455d]{align-items:center;display:flex;z-index:auto!important;background:0 0!important;border:none!important;margin:0 0 0 16px!important;padding:0!important;position:static!important;top:auto!important;left:auto!important;right:auto!important}.header-breadcrumb[data-v-f5a8455d] .breadcrumb-inner{gap:.2rem;min-height:auto;padding:0;font-size:12px}.header-breadcrumb[data-v-f5a8455d] .breadcrumb-item,.header-breadcrumb[data-v-f5a8455d] .breadcrumb-sep{font-size:12px}.header-breadcrumb[data-v-f5a8455d] .icon-home{width:12px;height:12px}@media (width<=768px){.header-breadcrumb[data-v-f5a8455d]{display:none}}[data-color-mode=dark]{--fgColor-default:#e6edf3;--fgColor-muted:#8b949e;--fgColor-subtle:#6e7681;--fgColor-onEmphasis:#fff;--fgColor-accent:#4493f8;--bgColor-default:#020409;--bgColor-muted:#151b23;--bgColor-disabled:#0e1117;--bgColor-emphasis:#3d444d;--bgColor-transparent:#0000;--bgColor-accent-emphasis:#1f6feb;--bgColor-accent-muted:#388bfd1a;--bgColor-success-emphasis:#238636;--bgColor-success-muted:#2ea04326;--bgColor-attention-emphasis:#9e6a03;--bgColor-attention-muted:#bb800926;--bgColor-danger-emphasis:#da3633;--bgColor-danger-muted:#f851491a;--bgColor-severe-emphasis:#bd561d;--bgColor-severe-muted:#db6d281a;--bgColor-done-emphasis:#8957e5;--bgColor-done-muted:#ab7df826;--bgColor-neutral-emphasis:#656c76;--bgColor-neutral-muted:#656c7633;--bgColor-sponsors-emphasis:#bf4b8a;--bgColor-sponsors-muted:#db61a21a;--borderColor-default:#3d444d;--borderColor-emphasis:#656c76;--borderColor-disabled:#656c761a;--borderColor-accent-emphasis:#1f6feb;--borderColor-accent-muted:#388bfd66;--borderColor-attention-emphasis:#9e6a03;--borderColor-attention-muted:#bb800966;--borderColor-danger-emphasis:#da3633;--borderColor-danger-muted:#f8514966;--borderColor-severe-emphasis:#bd561d;--borderColor-severe-muted:#db6d2866;--borderColor-done-emphasis:#8957e5;--borderColor-done-muted:#ab7df866;--color-accent-fg:#4493f8;--color-accent-emphasis:#1f6feb;--color-accent-muted:#388bfd66;--color-accent-subtle:#388bfd26;--color-success-fg:#3fb950;--color-success-emphasis:#238636;--color-attention-fg:#d29922;--color-attention-emphasis:#9e6a03;--color-danger-fg:#f85149;--color-danger-emphasis:#da3633;--color-severe-fg:#db6d28;--color-done-fg:#a371f7;--color-done-emphasis:#8957e5;--color-ansi-cyan:#39c5cf;--color-ansi-cyan-bright:#56d4dd;--button-primary-bgColor-active:#2e9a40;--button-primary-bgColor-hover:#29903b;--button-primary-bgColor-disabled:#105823;--button-primary-borderColor-disabled:#105823;--button-danger-fgColor-rest:#fa5e55;--control-checked-bgColor-active:#3685f3;--control-checked-bgColor-hover:#2a7aef;--reactionButton-selected-bgColor-hover:#3a8cfd5c;--avatar-shadow:0 0 0 2px #020409;--avatarStack-fade-bgColor-default:#3d444d;--avatarStack-fade-bgColor-muted:#2a313c;--shadow-resting-small:0 1px 1px 0 #1f232814, 0 1px 2px 0 #1f23280a;--shadow-floating-small:0 0 0 1px #d1d9e000, 0 6px 12px -3px #25292e0a, 0 6px 18px 0 #25292e1f;--shadow-floating-medium:0 0 0 1px #d1d9e000, 0 8px 16px -4px #25292e0a, 0 12px 32px 0 #25292e33;--shadow-inset:inset 0 1px 0 0 #1f232814;--qtp-text-up:#ef5350;--qtp-text-down:#26a69a;--qtp-market-cn:#f85149;--qtp-market-cn-rgb:248,81,73;--qtp-market-us:#79c0ff;--qtp-market-us-rgb:121,192,255;--qtp-risk-critical:#f85149;--qtp-risk-severe:#db6d28;--qtp-risk-moderate:#d29922;--qtp-risk-low:#4493f8;--qtp-risk-unknown:#8b949e;--qtp-meta-bg:var(--bgColor-muted);--qtp-meta-border:var(--borderColor-default);--qtp-text-up-blind:#4493f8;--qtp-text-down-blind:#f0883e;--transition-fast:.15s ease;--transition-normal:.25s cubic-bezier(.4,0,.2,1);--radius-md:6px;--radius-lg:12px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-8:48px;--font-xs:11px;--font-sm:12px;--font-md:14px;--font-lg:16px;--font-xl:20px;--sidebar-w:clamp(12rem,12vw,17rem);--sidebar-w-collapsed:3.75rem;--content-pad:1.5rem}:root{--primary:var(--color-accent-fg);--primary-rgb:68,147,248;--success:var(--color-success-fg);--warning:var(--color-attention-fg);--danger:var(--color-danger-fg);--bg-dark:var(--bgColor-default);--bg-card:var(--bgColor-disabled);--bg-hover:var(--bgColor-disabled);--bg:var(--bgColor-default);--border:var(--borderColor-default);--borderColor-muted:var(--borderColor-default);--text:var(--fgColor-default);--text-secondary:var(--fgColor-muted);--text-muted:var(--fgColor-subtle);--text-up:var(--qtp-text-up);--text-down:var(--qtp-text-down);--shadow-sm:var(--shadow-resting-small);--shadow-md:var(--shadow-floating-small);--shadow-lg:var(--shadow-floating-medium)}.page-enter-active,.page-leave-active{transition:opacity .2s,transform .2s}.page-enter-from{opacity:0;transform:translateY(8px)}.page-leave-to{opacity:0;transform:translateY(-8px)}button,.btn{transition:all var(--transition-fast)}button:hover,.btn:hover{transform:translateY(-1px)}button:active,.btn:active{transform:translateY(0)}button:focus-visible,.btn:focus-visible{outline:2px solid var(--color-accent-fg);outline-offset:2px}button:disabled,.btn:disabled{background:var(--bgColor-disabled);color:var(--fgColor-muted);cursor:not-allowed}tr{transition:background var(--transition-fast)}tr:hover{background:var(--bgColor-muted)}.meta-text{color:var(--fgColor-muted);background:var(--bgColor-muted);border:1px solid var(--borderColor-default);border-radius:var(--radius-md);align-items:center;padding:1px 6px;font-size:12px;display:inline-flex}::-webkit-scrollbar-track{background:var(--bgColor-default)}::-webkit-scrollbar-thumb{background:var(--borderColor-default);border-radius:3px}[data-loading=true] .data-card,[data-loading=true] table{filter:grayscale();opacity:.5;transition:all .15s}@keyframes flash-up{0%{background:#ef53502e}to{background:0 0}}@keyframes flash-down{0%{background:#26a69a2e}to{background:0 0}}.flash-up{animation:.6s ease-out flash-up}.flash-down{animation:.6s ease-out flash-down}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--color-accent-fg);outline-offset:2px}input,select,textarea{background:var(--bgColor-default);color:var(--fgColor-default);border:1px solid var(--borderColor-default);border-radius:var(--radius-md);font-size:var(--font-sm);transition:border-color var(--transition-fast);padding:6px 10px}input:hover,select:hover{border-color:var(--borderColor-emphasis)}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-dark);color:var(--text);width:100%;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;overflow-x:hidden}#app{width:100vw;max-width:100%;min-height:100vh;display:flex}#app-layout{flex-direction:column;flex:auto;min-width:0;min-height:100vh;padding-top:56px;display:flex}.top-header{border-bottom:1px solid var(--border);z-index:100;background:#020409;align-items:center;height:56px;padding:0 24px 0 0;display:flex;position:fixed;top:0;left:0;right:0}.top-header-left{width:var(--sidebar-w);flex-shrink:0;align-items:center;padding-left:24px;display:flex}.top-header-mid{flex:1;align-items:center;gap:12px;display:flex}.top-logo-icon{border-radius:6px;width:auto;height:40px;display:block}.market-switcher-global{align-items:center;gap:10px;margin-left:auto;display:flex}.switch-capsule{border:1px solid var(--border);background:#0e1117;border-radius:24px;gap:1px;padding:2px;display:flex}.switch-capsule-btn{color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:22px;align-items:center;gap:5px;padding:5px 14px;font-size:12px;font-weight:500;transition:all .2s;display:flex}.switch-capsule-btn:hover{color:var(--text);background:#ffffff0d}.switch-capsule-btn.active{background:var(--bgColor-accent-emphasis);color:#fff;box-shadow:none;font-weight:600}.switch-capsule-btn.active.market-closed{background:var(--bgColor-danger-emphasis);color:#fff}.switch-capsule-btn .switch-flag{font-size:14px}.switch-capsule-btn .switch-label{font-size:12px}.logout-btn{color:var(--text-secondary)!important}.logout-btn:hover{color:var(--color-danger-fg)!important;background:var(--bgColor-danger-muted)!important}.market-indicator{color:var(--text-secondary);white-space:nowrap;border:1px solid var(--border);background:#0e1117;border-radius:8px;align-items:center;gap:6px;padding:4px 10px;font-size:11px;display:flex}.market-dot{border-radius:50%;width:6px;height:6px;display:inline-block}.market-dot.dot-cn{background:#ef5350}.market-dot.dot-us{background:#4493f8}.market-detail{opacity:.6;font-size:10px}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.sidebar{width:var(--sidebar-w);background:var(--bgColor-disabled);border-right:1px solid var(--border);z-index:40;flex-direction:column;flex-shrink:0;height:calc(100vh - 56px);transition:width .2s;display:flex;position:fixed;top:56px;left:0;overflow-y:auto}.sidebar-toggle{border:none;border-bottom:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;align-items:center;gap:12px;width:100%;padding:12px 20px;transition:all .2s;display:flex}.sidebar-toggle:hover{background:var(--bg-hover);color:var(--text)}.sidebar-toggle .icon{text-align:center;width:20px;font-size:16px}.sidebar-logo{border-bottom:1px solid var(--border);color:var(--primary);align-items:center;gap:10px;padding:20px;font-size:18px;font-weight:700;display:flex}.sidebar-logo .logo-icon{background:linear-gradient(135deg,#4493f8,#238636);border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:18px;display:flex}.sidebar-nav{flex:1;padding:12px 0}.nav-item{color:var(--text-secondary);border-left:3px solid #0000;align-items:center;gap:12px;padding:12px 20px;font-size:14px;text-decoration:none;transition:all .2s;display:flex}.nav-item:hover{background:var(--bg-hover);color:var(--text)}.nav-item.active{background:var(--bg-hover);color:var(--primary);border-left-color:var(--primary)}.nav-item .icon{text-align:center;width:20px;font-size:16px}.sidebar-footer{border-top:1px solid var(--border);color:var(--text-secondary);padding:16px 20px;font-size:12px}.sidebar.collapsed{width:var(--sidebar-w-collapsed)}.sidebar.collapsed .sidebar-toggle{justify-content:center;padding:12px 0}.sidebar.collapsed .sidebar-nav .nav-item span{display:none}.sidebar.collapsed .nav-item{justify-content:center;padding:12px 0}.sidebar.collapsed .sidebar-footer{display:none}.sidebar.collapsed~.main-content{margin-left:var(--sidebar-w-collapsed)}.main-content{min-width:0;margin-left:var(--sidebar-w);flex:auto;margin-right:0;padding:0;overflow-y:auto}.content-body{padding:clamp(.75rem,1.5vw,1.5rem)}.page-header{margin-bottom:24px}.page-header h1{margin-bottom:4px;font-size:24px;font-weight:600}.page-header p{color:var(--text-secondary);font-size:14px}.market-badge{color:var(--primary);vertical-align:middle;background:#4493f81f;border:1px solid #4493f84d;border-radius:10px;margin-left:8px;padding:2px 10px;font-size:12px;display:inline-block}.feed-status{background:#3fb9501f;border:1px solid #3fb9504d;border-radius:10px;align-items:center;gap:6px;margin-left:12px;padding:2px 10px;font-size:12px;display:inline-flex}.feed-status.offline{background:#8b95a51a;border-color:#8b95a54d}.feed-status.ws{background:#3fb95026;border-color:#3fb95066}.feed-status.http{background:#d2992226;border-color:#d2992266}.feed-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.feed-dot.online{background:#3fb950}.feed-dot.ws{background:#3fb950;box-shadow:0 0 4px #3fb950}.feed-dot.http{background:#d29922}.feed-dot.offline{background:#8b949e}.feed-text{color:#3fb950}.feed-status.offline .feed-text{color:#8b949e}.feed-status.http .feed-text{color:#d29922}.feed-rtt{color:var(--text-muted);font-size:11px}.pipeline-status{background:var(--bgColor-accent-muted);border:1px solid var(--borderColor-accent-muted);border-radius:10px;align-items:center;gap:4px;margin-left:10px;padding:2px 10px;display:inline-flex}.pipeline-status.offline{background:var(--bgColor-neutral-muted);border-color:#8b95a51f}.pipe-dot{border:1px solid var(--borderColor-default);opacity:.4;border-radius:50%;flex-shrink:0;width:8px;height:8px;transition:all .3s}.pipe-dot.on{opacity:1;background:#3fb950;border-color:#3fb950;box-shadow:0 0 6px #3fb95080}.pipe-dot.warn{opacity:1;background:#d29922;border-color:#d29922;box-shadow:0 0 4px #d2992266}.pipe-dot.severe{opacity:1;background:#db6d28;border-color:#db6d28}.pipe-dot.off{opacity:.3;background:0 0;border-color:#484f58}.pipe-dot.signalr-on{opacity:1;background:#4493f8;border-color:#4493f8;box-shadow:0 0 6px #4493f880}.pipe-dot.signalr-off{opacity:.3;background:0 0;border-color:#484f58}.pipe-label{color:#3fb950;letter-spacing:.5px;margin-left:2px;font-size:10px;font-weight:600}.pipeline-status.offline .pipe-label{color:var(--text-muted)}.pipe-rtt{color:var(--text-muted);margin-left:4px;font-size:9px}.card{background:var(--bgColor-disabled);border:1px solid var(--border);border-radius:12px;margin-bottom:16px;padding:20px}.card-title{justify-content:space-between;align-items:center;margin-bottom:16px;font-size:16px;font-weight:600;display:flex}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(clamp(10rem,15vw,16rem),1fr));gap:clamp(.5rem,1.2vw,1rem);margin-bottom:clamp(.75rem,1.5vw,1.5rem);display:grid}.stat-card{background:var(--bgColor-disabled);border:1px solid var(--border);border-radius:12px;padding:clamp(.75rem,2vw,1.25rem)}.stat-card .stat-label{color:var(--text-secondary);margin-bottom:8px;font-size:clamp(.7rem,1vw,.85rem)}.stat-card .stat-value{margin-bottom:4px;font-size:clamp(1.2rem,2.5vw,1.75rem);font-weight:700}.stat-alert{color:var(--text-up)}.stat-normal{color:var(--text-down)}.stat-positive{color:var(--text-up)}.stat-negative{color:var(--text-down)}.ct-deep-down{color:#0d7a6e}.ct-down{color:#26a69a}.ct-light-down{color:#68c9ba}.ct-neutral{color:#8b949e}.ct-light-up{color:#f28b82}.ct-up{color:#ef5350}.ct-deep-up{color:#c62828}.cr-empty{color:#8b949e}.cr-low{color:#4493f8}.cr-mid{color:#8957e5}.cr-high{color:#db61a2}.cr-full,.cp-deep-loss{color:#da3633}.cp-loss{color:#f85149}.cp-neutral{color:#8b949e}.cp-gain{color:#3fb950}.cp-deep-gain{color:#238636}.crk-safe{color:#3fb950}.crk-caution{color:#d29922}.crk-warning{color:#db6d28}.crk-danger{color:#f85149}.crk-critical{color:#da3633}.ccf-unknown{color:#8b949e}.ccf-low{color:#4493f8}.ccf-mid{color:#2a7aef}.ccf-high{color:#1f6feb}.ccf-certain{color:#1158c7}.cs-weak{color:#8b949e}.cs-low{color:#d29922}.cs-mid{color:#db6d28}.cs-high{color:#db61a2}.cs-strong{color:#8957e5}.cs-max{color:#bf4b8a}.cv-overvalued{color:#f85149}.cv-high{color:#db6d28}.cv-fair{color:#3fb950}.cv-low{color:#4493f8}.cv-undervalued{color:#8957e5}.sem-ok{color:#3fb950}.sem-warn{color:#d29922}.sem-error{color:#f85149;font-weight:600}.sem-neutral{color:#8b949e}.badge-bg{background:#8b95a51f;border-radius:4px;padding:1px 6px;line-height:1.5;display:inline-block}.badge-bg-blue{background:#4493f81f}.badge-bg-red{background:#f851491f}.badge-bg-green{background:#3fb9501f}.badge-bg-amber{background:#d299221f}.badge-bg-purple{background:#8957e51f}.market-label-us{color:#79c0ff;background:#4493f81a;border-radius:4px;padding:1px 6px}.market-label-cn{color:#fca5a5;background:#ef44441a;border-radius:4px;padding:1px 6px}.stat-card .stat-change{font-size:clamp(.7rem,1vw,.85rem)}.data-table{border-collapse:collapse;width:100%}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--border);padding:12px 16px;font-size:14px}.data-table th{color:var(--text-secondary);background:var(--bg-hover);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:500}.data-table tr:hover td{background:var(--bg-hover)}.btn{cursor:pointer;border:none;border-radius:8px;align-items:center;gap:6px;padding:8px 20px;font-size:14px;font-weight:500;transition:all .2s;display:inline-flex}.btn-primary{color:#fff;background:#238636}.btn-primary:hover{background:var(--button-primary-bgColor-hover)}.btn-primary:active{background:var(--button-primary-bgColor-active)}.btn-primary:disabled{background:var(--button-primary-bgColor-disabled);border:1px solid var(--button-primary-borderColor-disabled);color:#fff6}.btn-success{background:var(--bgColor-success-emphasis);color:#fff}.btn-success:hover{background:#2ea043}.btn-danger{background:var(--bgColor-danger-emphasis);color:#fff}.btn-danger:hover{background:var(--button-danger-fgColor-rest)}.btn-outline{border:1px solid var(--border);color:var(--text);background:0 0}.btn-outline:hover{border-color:var(--primary);color:var(--primary)}.dir-active-buy{background:var(--bgColor-danger-emphasis)!important;color:#fff!important;border-color:var(--bgColor-danger-emphasis)!important}.dir-active-sell{background:var(--bgColor-success-emphasis)!important;color:#fff!important;border-color:var(--bgColor-success-emphasis)!important}.quick-ratio-btn{background:var(--bg-hover);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;text-align:center;border-radius:4px;flex:1;padding:4px 8px;font-size:11px;transition:all .15s}.quick-ratio-btn:hover{border-color:var(--primary);color:var(--primary);background:#2563eb0f}.quick-ratio-btn.active{border-color:var(--primary);color:#fff;background:var(--bgColor-accent-emphasis)}.tag{border-radius:4px;align-items:center;padding:2px 10px;font-size:12px;font-weight:500;display:inline-flex}.tag-positive{color:var(--text-up);background:#ef535026}.tag-partial{color:#f0a020;background:#f0a0202e}.tag-negative{color:var(--text-down);background:#26a69a26}.tag-neutral{color:var(--text-secondary);background:#8b95a526}.tag-buy{color:var(--text-up,#ef5350);background:#ef535026;border:1px solid #ef535040}.tag-sell{color:var(--text-down,#26a69a);background:#26a69a26;border:1px solid #26a69a40}.tag-warning{color:var(--warning);background:#d2992226}.tag-success{color:var(--success);background:#3fb95026}.tag-danger{color:var(--danger);background:#f8514926}.status-dot{vertical-align:middle;border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-right:4px;display:inline-block}.status-dot.done{background:#3fb950;box-shadow:0 0 4px #3fb95066}.status-dot.fail{background:#f85149;box-shadow:0 0 4px #f8514966}.status-dot.warn{background:#d29922;box-shadow:0 0 4px #d2992266}.status-dot.neutral{background:#8b949e}.status-dot.critical{background:#da3633;animation:1.5s infinite dotPulse}.status-dot.severe{background:#db6d28}.status-dot.moderate{background:#d29922}.status-dot.safe{background:#3fb950}.status-dot.pending{background:0 0;border:2px solid #4493f8;animation:1.5s infinite dotPulse}@media (pointer:coarse){.btn,.nav-item,.tabbar-item,.rank-item,.sector-item{cursor:default;-webkit-user-select:none;user-select:none;min-height:44px}.btn:active,.rank-item:active,.sector-item:active{opacity:.7}}@media (width<=64rem){.sidebar{width:var(--sidebar-w-collapsed)}.sidebar-logo span,.sidebar-nav .nav-item span,.sidebar-footer{display:none}.nav-item{justify-content:center;padding:.875rem .75rem}.nav-item .icon{margin:0;font-size:1.125rem}.main-content{margin-left:var(--sidebar-w-collapsed)}}@media (width<=48rem){#app{flex-direction:column}.sidebar{display:none!important}.body-layout{flex-direction:column}.main-content{margin-left:0!important}.top-header{height:3rem!important;padding:0 .75rem!important}.market-detail,.market-indicator{display:none}.switch-capsule-btn{padding:.25rem .625rem!important;font-size:.75rem!important}.ranking-grid{grid-template-columns:1fr!important}.sector-grid{grid-template-columns:repeat(2,1fr)!important}.backtest-config-grid{grid-template-columns:1fr 1fr!important}.backtest-chart-row{grid-template-columns:1fr!important}.modal-content,.dialog{width:calc(100vw - 2rem)!important;max-width:none!important;margin:1rem!important}input,select,textarea{font-size:1rem!important}}@supports (padding-bottom:env(safe-area-inset-bottom)){.mobile-tabbar{padding-bottom:env(safe-area-inset-bottom,0px)}}.mobile-content{-webkit-overflow-scrolling:touch;overscroll-behavior:contain}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes dotPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.3)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.card,.stat-card{animation:.3s ease-out fadeIn}.anim-slide{animation:.25s ease-out slideDown}.anim-pulse{animation:2s ease-in-out infinite pulse}.anim-spin{animation:.8s linear infinite spin}.loading-spinner{border:2px solid #fff3;border-top-color:var(--primary);border-radius:50%;width:16px;height:16px;animation:.6s linear infinite spin;display:inline-block}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0;border-radius:3px}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px;transition:background .2s}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}::-webkit-scrollbar-corner{background:0 0}.data-table::-webkit-scrollbar-thumb{background:var(--border)}.data-table::-webkit-scrollbar-thumb:hover{background:var(--primary);opacity:.7}.signal-list::-webkit-scrollbar{width:5px}.sector-grid::-webkit-scrollbar{width:5px}.tier-dot{vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-right:2px;display:inline-block}.tier-dot.tier-real{background:#3fb950}.tier-dot.tier-cache{background:#d29922}.tier-dot.tier-download{background:#8c8c8c}.tier-tag{cursor:help;border-radius:10px;padding:1px 6px;font-size:10px;font-weight:500}.tier-tag.tier-real{color:#3fb950;background:#3fb95026;border:1px solid #3fb9504d}.tier-tag.tier-cache{color:#d29922;background:#d2992226;border:1px solid #d299224d}.tier-tag.tier-download{color:#8c8c8c;background:#8c8c8c26;border:1px solid #8c8c8c4d}.form-input{background:var(--bg-card);border:1px solid var(--border);color:var(--text);border-radius:8px;outline:none;padding:8px 12px;font-size:14px;transition:border-color .2s}.form-input:focus{border-color:var(--primary)}.form-input::placeholder{color:var(--text-secondary)}
