*{box-sizing:border-box}:root{--stock-up-color:#f22423;--stock-down-color:#00a000;--stock-bg-up:#e3534f;--stock-bg-down:#56b779;--font-12-size:12px;--font-12-5-size:12.5px;--font-13-size:13px;--font-13-5-size:13.5px;--font-14-size:14px;--theme-color:#6b3eee;--theme-bg-color:#ebe4fd;--theme-layout-left-bg-color:#fafafa;--color-border-2:#f0f1f2;--color-border-3:#f0f1f2;--icon-text-color:#727a85}html,body{background:#edf1f7;height:100%;margin:0;padding:0;font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,Noto Sans SC,sans-serif}body{min-height:100vh;font-size:var(--font-13-size);overflow:hidden}#root{width:min(100vw - 32px,1360px);height:calc(100vh - 32px);margin:16px auto}.app-shell{gap:16px;height:100%;display:flex}.left-tabbar{background:var(--theme-layout-left-bg-color);border:1px solid var(--color-border-2);width:72px;box-shadow:none;border-radius:6px;flex-direction:column;gap:8px;padding:16px 8px;display:flex;overflow:hidden}.left-tab-item{color:var(--icon-text-color);cursor:pointer;background:#fff;border:1px solid #0000;border-radius:8px;padding:11px 0;font-size:12px;line-height:1}.left-tab-item.active{background:var(--theme-bg-color);color:var(--theme-color);border-color:#d9cdfd;font-weight:600}.market-summary-panel{border-top:1px solid var(--color-border-3);flex-direction:column;gap:5px;margin-top:auto;padding-top:8px;font-size:11px;display:flex}.market-summary-item{text-align:center;flex-direction:column;gap:1px;display:flex}.summary-label{color:#7b8492;line-height:1.2}.market-summary-item span:last-child{font-size:13px;line-height:1.2}.summary-flat{color:#5e6f88}.name-link{color:#2058ba;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;background:0 0;border:none;max-width:100%;padding:0;font-size:13px;font-weight:600;line-height:1.25;display:inline-block;overflow:hidden}.name-link:hover{color:#1c4ea5}.name-link:focus-visible{outline-offset:1px;border-radius:2px;outline:1px solid #93b4f0}.board-page{border:1px solid var(--color-border-2);height:100%;box-shadow:none;background:#fff;border-radius:6px;flex-direction:column;flex:1;display:flex;overflow:hidden}.top-header{border-bottom:1px solid var(--color-border-2);background:#fff;justify-content:space-between;align-items:center;padding:16px;display:flex}.top-header h1{color:#1f2937;margin:0;font-size:16px;line-height:1.2}.top-header p{font-size:var(--font-12-size);color:#6b7280;margin:4px 0 0}.actions{align-items:center;gap:10px;display:flex}.watchlist-header{overflow:visible}.watchlist-actions{align-items:flex-start;position:relative}.watchlist-search-wrap{width:280px;position:relative}.watchlist-search-wrap input{color:#1f2937;background:#fff;border:1px solid #d6dce7;border-radius:6px;width:100%;padding:6px 9px;font-size:12px}.watchlist-search-panel{z-index:40;background:#fff;border:1px solid #dfe6f2;border-radius:6px;max-height:260px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:auto;box-shadow:0 8px 24px #0f172a1f}.watchlist-search-empty{color:#6b7280;padding:10px;font-size:12px}.watchlist-search-item{border-bottom:1px solid #eef2f7;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}.watchlist-search-item:last-child{border-bottom:none}.watchlist-search-item strong{color:#1f2937;font-size:13px;line-height:1.2;display:block}.watchlist-search-item span{color:#6b7280;font-size:11px}.refresh-config{color:#5f7291;align-items:center;gap:6px;font-size:12px;display:inline-flex}.refresh-config select{color:#2d4264;background:#fff;border:1px solid #cfdaeb;border-radius:8px;padding:6px 8px;font-size:12px}.actions button{background:var(--theme-color);color:#fff;font-size:var(--font-12-size);cursor:pointer;border:none;border-radius:6px;padding:6px 12px}.actions button:hover{background:#5f32e6}.market-overview{border-bottom:1px solid var(--color-border-2);font-size:var(--font-12-5-size);background:#fff;gap:16px;padding:10px 16px;font-weight:600;display:flex}.tabs{border-bottom:1px solid var(--color-border-2);gap:8px;padding:8px 16px;display:flex}.watchlist-groups{border-bottom:1px solid var(--color-border-2);background:#fff;gap:8px;padding:8px 16px;display:flex;overflow-x:auto}.watchlist-group-btn{color:#667085;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #d9dde5;border-radius:4px;padding:4px 10px;font-size:12px}.watchlist-group-btn.active{background:color-mix(in srgb, var(--theme-color) 8%, white);border-color:color-mix(in srgb, var(--theme-color) 35%, #d9dde5);color:var(--theme-color)}.watchlist-group-actions{align-items:center;gap:6px;margin-left:auto;display:inline-flex}.watchlist-group-actions button{color:#667085;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #d9dde5;border-radius:4px;padding:4px 8px;font-size:12px}.watchlist-group-actions button:hover{color:#48546a;border-color:#c5ccda}.watchlist-tip{color:#4b5563;padding:6px 16px 0;font-size:12px}.tab{color:#667085;background:#fff;border:1px solid #d9dde5;border-radius:4px;padding:4px 10px;font-size:12px}.tab.active{background:color-mix(in srgb, var(--theme-color) 8%, white);border-color:color-mix(in srgb, var(--theme-color) 35%, #d9dde5);color:var(--theme-color)}.table-card{flex-direction:column;flex:1;min-height:0;padding:0 16px 16px;display:flex}.table-scroll{min-height:0;overflow:hidden;overflow-x:auto!important}.table-card .table-scroll{flex:1;overflow:auto}.limitup-panel{flex-direction:column;flex:1;min-height:0;padding:0 16px 16px;display:flex}.limitup-filter{border-bottom:1px solid var(--color-border-2);color:#4b5563;align-items:center;gap:16px;padding:10px 0;font-size:13px;display:flex}.limitup-filter label{cursor:pointer;align-items:center;gap:6px;display:inline-flex}.limitup-scroll{flex:1;min-height:0;padding-top:8px;overflow:auto}.limitup-group{margin-bottom:12px}.limitup-group h3{color:#111827;margin:0 0 8px;font-size:20px;font-weight:500}.limitup-cards{flex-wrap:wrap;align-items:stretch;gap:8px;display:flex}.limitup-card{text-align:left;cursor:pointer;width:130px;min-width:130px;max-width:130px;font:inherit;background:#f5f7fb;border:1px solid #e7edf7;border-radius:2px;flex-direction:column;gap:3px;padding:7px 9px;display:flex;position:relative}.limitup-quick-add{z-index:2;position:absolute;top:-8px;right:-8px}.limitup-card:hover{background:#edf3fb;border-color:#d8e3f5}.limitup-name{color:#2058ba;font-size:13px;font-weight:600;line-height:1.15}.limitup-name-row{align-items:baseline;gap:4px;display:flex}.limitup-industry{color:#4d85d8;font-size:10px;line-height:1.15}.limitup-seal-time{color:#6b7280;font-size:12px;line-height:1.1}.limitup-code{color:#6b7280;font-size:11px}.limitup-card p{margin:0;font-size:14px;line-height:1.2}.empty-tab-panel{color:#6d809e;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;display:flex}.empty-tab-panel h2{color:#4d6386;margin:0;font-size:18px}.empty-tab-panel p{margin:0;font-size:13px}.settings-panel{flex:1;padding:16px}.settings-panel h2{color:#2f4568;margin:0;font-size:20px}.settings-panel p{color:#6f829f;margin:8px 0 0;font-size:13px}.settings-item{background:#f8fbff;border:1px solid #d9e2f0;border-radius:10px;justify-content:space-between;align-items:center;gap:14px;width:min(440px,100%);margin-top:16px;padding:14px 16px;display:flex}.settings-item span{color:#3f5375;font-size:14px;font-weight:500}.settings-item select{color:#2f4568;background:#fff;border:1px solid #ccd8eb;border-radius:8px;padding:7px 10px;font-size:13px}.settings-tip{color:#7588a7;flex-direction:column;gap:4px;margin-top:12px;font-size:12px;display:flex}.settings-ma-card{background:#f8fbff;border:1px solid #d9e2f0;border-radius:10px;width:min(440px,100%);margin-top:14px;padding:12px 14px}.settings-ma-card h3{color:#2f4568;margin:0;font-size:15px}.settings-ma-card p{color:#7588a7;margin:6px 0 0;font-size:12px}.settings-ma-list{flex-direction:column;gap:8px;margin-top:10px;display:flex}.settings-ma-item{color:#2f4568;justify-content:space-between;align-items:center;gap:10px;font-size:13px;display:flex}.settings-ma-left{align-items:center;gap:8px;display:inline-flex}.settings-ma-dot{border-radius:50%;width:8px;height:8px;display:inline-block}table{border-collapse:collapse;width:100%;min-width:1220px}thead th{z-index:2;text-align:left;font-size:var(--font-12-size);color:#495057;border-bottom:1px solid var(--color-border-2);white-space:nowrap;background:#fff;padding:8px;font-weight:600;position:sticky;top:0}.sort-head-btn{width:100%;font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;gap:6px;padding:0;display:inline-flex}.sort-head-btn.active{color:var(--theme-color);text-shadow:0 0 1px color-mix(in srgb, var(--theme-color) 45%, transparent)}.sort-icon{color:#b8bec6;opacity:.35;font-size:11px;line-height:1}.sort-head-btn.active .sort-icon{color:var(--theme-color);opacity:1}.sort-head-btn:hover .sort-icon{opacity:.88;color:color-mix(in srgb, var(--theme-color) 52%, #5f6f82)}tbody td{font-size:var(--font-13-size);color:#1f2937;white-space:nowrap;border-bottom:1px solid #f1f3f5;padding:8px}thead th:last-child,tbody td:last-child{min-width:110px}tbody tr:hover{background:#f8fafc}.name-with-action{align-items:center;gap:4px;min-width:0;display:flex}.name-with-action .name-link,.name-with-action .watch-disabled-name{flex:1;min-width:0}.quick-add-btn{color:#4b5a73;cursor:pointer;background:#fff;border:1px solid #d4dbe8;border-radius:4px;flex:0 0 18px;justify-content:center;align-items:center;width:18px;height:18px;padding:0;font-size:13px;line-height:1;display:inline-flex}.quick-add-btn:hover{color:#2f3f5f;border-color:#b9c6db}.quick-add-btn:disabled{color:#b6bfcc;cursor:not-allowed;border-color:#e2e7ef}.quick-add-btn.remove{color:#b91c1c}.table-card th.main-col-name{z-index:4;background:#fff;width:108px;min-width:108px;max-width:108px;position:sticky;left:0}.table-card td.main-col-name{z-index:1;background:#fff;width:108px;min-width:108px;max-width:108px;position:sticky;left:0}.table-card tbody tr:hover td.main-col-name{background:#f8fafc}.table-card th.watch-col-name{z-index:4;background:#fff;width:118px;min-width:118px;max-width:118px;position:sticky;left:0}.table-card td.watch-col-name{z-index:1;background:#fff;width:118px;min-width:118px;max-width:118px;position:sticky;left:0}.table-card tbody tr:hover td.watch-col-name{background:#f8fafc}.watch-disabled-name{color:#6b7280;text-overflow:ellipsis;white-space:nowrap;width:100%;display:inline-block;overflow:hidden}.watch-note-btn{font:inherit;color:#4b5563;cursor:pointer;background:0 0;border:none;margin:0;padding:0}.watch-note-btn:hover{color:#2563eb}.watch-pin-btn{color:#4b5a73;cursor:pointer;background:#fff;border:1px solid #d4dbe8;border-radius:4px;flex:0 0 18px;justify-content:center;align-items:center;width:18px;height:18px;padding:0;font-size:10px;line-height:1;display:inline-flex}.watch-pin-btn:hover{background:#f8fbff;border-color:#b6c6e3}.watch-pin-btn.active{color:#6f49e9;background:#f5f2ff;border-color:#6f49e9}.name-cell{color:#1b63d7;font-weight:500}.rise{color:var(--stock-up-color)}.fall{color:var(--stock-down-color)}.flat{color:#5f6b7b}.view-link{background:var(--theme-color);color:#fff;min-width:64px;font-size:var(--font-12-size);text-align:center;cursor:pointer;border:none;border-radius:4px;padding:6px 12px;line-height:1;display:inline-block}.view-link:hover{background:#5f32e6}.loading{text-align:center;color:#6b7280;padding:16px 8px}.error{color:#d82c4f;font-size:var(--font-12-5-size);background:#fff4f5;border:1px solid #ffd4da;border-radius:6px;margin:10px 4px 0;padding:10px 12px}.detail-mask{z-index:30;background:#0b142173;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.detail-modal{background:#fff;border-radius:8px;flex-direction:column;width:min(960px,100%);height:min(86vh,760px);display:flex;overflow:hidden;box-shadow:0 16px 48px #0a142847}.detail-header{border-bottom:1px solid var(--color-border-2);justify-content:space-between;align-items:flex-start;gap:12px;padding:16px;display:flex}.detail-header h2{color:#1f2937;margin:0;font-size:15px}.detail-header p{color:#6b7280;margin:4px 0 0;font-size:12px}.detail-filter{color:#4b5563;align-items:center;gap:12px;margin-top:6px;font-size:12px;display:flex}.detail-filter label{cursor:pointer;align-items:center;gap:4px;display:inline-flex}.close-btn{color:#4b5563;cursor:pointer;background:#fff;border:1px solid #d0d7e2;border-radius:4px;padding:5px 11px;font-size:12px}.close-btn:hover{background:#f7f8fa}.detail-content{flex:1;min-height:0;padding:0 16px 16px;position:relative;overflow:auto}.detail-content .table-scroll{overflow:visible}.detail-content thead th{z-index:6;position:sticky;top:0}.detail-content th.detail-col-name{z-index:8;background:#fff;position:sticky;left:0}.detail-content td.detail-col-name{z-index:5;background:#fff;position:sticky;left:0}.detail-content tbody tr:hover td.detail-col-name{background:#f8fafc}.detail-content th.detail-col-insideOutsideRatio,.detail-content td.detail-col-insideOutsideRatio{width:88px;min-width:88px;max-width:88px}.detail-table-wrap{min-height:100%}.detail-skeleton-row td{padding:8px}.detail-skeleton-line{background:linear-gradient(90deg,#eef2f7 0%,#e3eaf4 45%,#eef2f7 100%) 0 0/280% 100%;border-radius:4px;height:11px;animation:1.3s ease-in-out infinite detail-skeleton-shimmer;display:block}.detail-loading-overlay{color:#4b5563;pointer-events:none;background:#ffffffbd;justify-content:center;align-items:center;gap:8px;font-size:13px;display:inline-flex;position:absolute;inset:0}.detail-loading-spinner{border:2px solid #d7deea;border-top-color:var(--theme-color);border-radius:50%;width:16px;height:16px;animation:.75s linear infinite detail-spin}@keyframes detail-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes detail-skeleton-shimmer{0%{background-position:100% 0}to{background-position:0 0}}.quote-drawer-mask{z-index:45;background:#0f172a2e;position:fixed;inset:0}.quote-drawer{background:#fff;flex-direction:column;width:min(940px,100vw - 16px);height:100%;animation:.2s ease-out drawer-in;display:flex;position:absolute;top:0;right:0;box-shadow:-8px 0 24px #0f172a2e}@keyframes drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}.quote-drawer-header{border-bottom:1px solid var(--color-border-2);justify-content:space-between;align-items:flex-start;gap:10px;padding:12px 16px 8px;display:flex}.quote-title-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.quote-title-row strong{color:#111827;margin:0;font-size:16px;font-weight:600;line-height:1}.quote-title-row span{color:#374151;font-size:13.5px;line-height:1}.quote-title-row .quote-code-btn{cursor:pointer;background:0 0;border:none;margin:0;padding:0;line-height:1}.quote-title-row .quote-code-btn.copied .quote-code{color:var(--theme-color)}.quote-title-row .quote-code{color:#111827;font-size:15px;font-weight:600}.quote-title-row .quote-prefix{color:#374151;font-size:15px;font-weight:600}.quote-title-row .quote-last-price{font-size:18px;font-weight:600;line-height:1}.quote-title-row .rise,.quote-metrics .rise{color:var(--stock-up-color)}.quote-title-row .fall,.quote-metrics .fall{color:var(--stock-down-color)}.quote-title-row .flat,.quote-metrics .flat{color:#5f6b7b}.quote-links{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.quote-links a{color:var(--theme-color);font-size:12px;text-decoration:none}.quote-links a:hover{text-decoration:underline}.quote-links a.disabled{color:#9ca3af;cursor:not-allowed;text-decoration:none}.quote-links a.disabled:hover{text-decoration:none}.quote-metrics{border-bottom:1px solid var(--color-border-2);grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 16px;padding:10px 16px 8px;display:grid}.quote-metrics div{justify-content:space-between;align-items:baseline;gap:6px;display:flex}.quote-metrics span{font-size:var(--font-12-size);color:#4b5563;font-weight:600;line-height:1.25}.quote-metrics strong{color:#111827;font-size:14.5px;font-weight:400;line-height:1.2}.quote-chart{flex-direction:column;flex:1;min-height:0;padding:8px 16px;display:flex}.quote-chart-layout{flex-direction:column;flex:1;height:100%;min-height:0;display:flex}.quote-chart-layout.fenshi{grid-template-columns:minmax(0,1fr) 220px;gap:10px;height:100%;min-height:0;display:grid}.quote-chart-wrap{flex:1;min-height:0}.quote-fenshi-side{flex-direction:column;gap:8px;min-width:0;height:100%;min-height:0;display:flex}.quote-side-card{background:#fbfcff;border:1px solid #e5e9f2;border-radius:6px;flex-direction:column;min-height:0;display:flex;overflow:hidden}.quote-side-card:last-child{flex:1}.quote-side-card header{border-bottom:1px solid #edf1f7;padding:6px 8px}.quote-side-card header strong{color:#334155;font-size:12px;font-weight:600}.quote-tick-list{flex-direction:column;flex:1;gap:4px;min-height:0;padding:6px 8px;display:flex;overflow:auto}.quote-tick-row{grid-template-columns:60px minmax(48px,1fr) 74px;align-items:center;gap:12px;font-size:12px;line-height:1.3;display:grid}.quote-tick-row .tick-time{color:#64748b}.quote-tick-row .tick-volume{text-align:right}.quote-side-empty{color:#94a3b8;text-align:center;padding:8px 0;font-size:12px}.quote-echarts{width:100%;height:100%;min-height:436px}@media (width<=1120px){.quote-chart-layout.fenshi{grid-template-rows:minmax(360px,1fr) auto;grid-template-columns:minmax(0,1fr)}.quote-fenshi-side{display:block}}.quote-periods{border-top:1px solid var(--color-border-2);background:#fbfcfe;flex-wrap:nowrap;gap:4px;padding:8px 16px;display:flex;overflow-x:auto}.quote-period-btn{color:#4b5563;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #d9dee8;border-radius:4px;padding:3px 8px;font-size:12px}.quote-period-btn.active{border-color:color-mix(in srgb, var(--theme-color) 45%, #d9dee8);color:var(--theme-color);background:#fff;font-weight:600}.quote-day-minute-mask{z-index:60;background:#0f172a47;justify-content:center;align-items:center;padding:16px;display:flex;position:absolute;inset:0}.quote-day-minute-modal{background:#fff;border:1px solid #dce3ef;border-radius:8px;flex-direction:column;width:min(860px,100% - 20px);height:min(72vh,560px);display:flex;overflow:hidden;box-shadow:0 12px 30px #0f172a40}.quote-day-minute-header{border-bottom:1px solid #e7edf6;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.quote-day-minute-header strong{color:#1f2937;font-size:14px}.quote-day-minute-body{flex:1;min-height:0;padding:8px 10px 10px;display:flex}.quote-day-minute-chart-wrap{flex:1;min-height:0}
