:root{--bg: #eef3f7;--bg-accent: #dbe7ee;--panel: #ffffff;--ink: #111827;--muted: #6b7280;--line: #d7e0e8;--brand: #111827;--brand-weak: #eef2f7;--brand-ink: #020617;--brand-accent: #475569;--up: #dc2626;--down: #059669;--flat: #6b7280;--shadow: 0 10px 30px rgba(17, 24, 39, .08)}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:radial-gradient(circle at 10% -10%,#f8fafc,#f8fafc00 52%),radial-gradient(circle at 90% 0%,#e5e7eb,#e5e7eb00 44%),linear-gradient(180deg,var(--bg-accent),var(--bg));font-family:Space Grotesk,IBM Plex Sans,Noto Sans SC,PingFang SC,sans-serif;overflow-x:hidden}h1,h2,h3,h4,p{margin:0}.app-shell{max-width:1580px;margin:0 auto;padding:calc(24px + env(safe-area-inset-top,0px)) calc(24px + env(safe-area-inset-right,0px)) calc(24px + env(safe-area-inset-bottom,0px)) calc(24px + env(safe-area-inset-left,0px))}.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px}.brand-lockup{flex:1;min-width:0;display:grid;gap:10px;padding:16px 18px;border-radius:22px;border:1px solid rgba(15,23,42,.1);background:radial-gradient(circle at 88% 18%,#94a3b829,#94a3b800 34%),linear-gradient(135deg,#fffffffa,#f8fafcf0 54%,#e2e8f0f5);box-shadow:inset 0 1px #ffffffc7,0 14px 36px #0f172a14}.brand-overline{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.brand-overline-badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 10px;border:1px solid rgba(15,23,42,.12);background:#fff9;color:var(--brand-ink);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.brand-overline-text{color:#64748b;font-size:12px;letter-spacing:.16em;text-transform:uppercase}.brand-title{display:flex;align-items:center;gap:16px}.brand-accent{width:10px;height:44px;flex:0 0 10px;border-radius:999px;background:linear-gradient(180deg,var(--brand) 0%,var(--brand-accent) 100%);box-shadow:0 0 0 6px #0f172a14,0 12px 28px #47556924}.brand-title h1{display:flex;align-items:center;gap:12px 14px;flex-wrap:wrap;margin:0;line-height:1}.brand-title-cn{font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,Noto Sans SC,sans-serif;color:#0f172a;font-size:40px;font-weight:800;letter-spacing:.12em;line-height:1}.brand-title-en{display:inline-flex;align-items:center;padding:7px 14px;border-radius:999px;border:1px solid rgba(15,23,42,.12);background:linear-gradient(135deg,#ffffffdb,#f1f5f9f5);color:#1f2937;font-family:Avenir Next,Segoe UI,sans-serif;font-size:11px;font-weight:800;letter-spacing:.28em;text-transform:uppercase;box-shadow:inset 0 1px #ffffffb3}.brand-subtitle{max-width:700px;color:#475569;font-size:14px;line-height:1.6}.topbar>.btn{margin-top:6px}.tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;min-width:0}.app-toast{position:sticky;top:12px;z-index:90;display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:16px;padding:12px 14px;border-radius:14px;border:1px solid #dbe4ed;box-shadow:0 14px 28px #0f172a1f;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.app-toast-info{background:#eff6fff5;border-color:#bfdbfe;color:#1d4ed8}.app-toast-success{background:#ecfdf5f5;border-color:#86efac;color:#166534}.app-toast-warning{background:#fffbebf7;border-color:#fcd34d;color:#92400e}.app-toast-error{background:#fef2f2f7;border-color:#fca5a5;color:#b91c1c}.app-toast-body{display:flex;flex-direction:column;gap:4px;min-width:0}.app-toast-body strong{font-size:13px;letter-spacing:.02em}.app-toast-body span{font-size:14px;line-height:1.5;word-break:break-word}.app-toast-side{display:inline-flex;align-items:center;gap:10px;flex-shrink:0}.app-toast-side small{font-size:12px;color:inherit;opacity:.78}.toast-close{border:none;background:transparent;color:inherit;font-weight:700;cursor:pointer;padding:0}.tab{border:1px solid var(--line);background:#ffffffd9;color:#334155;padding:9px 14px;border-radius:999px;cursor:pointer;font-weight:600;transition:all .2s ease;min-height:42px;white-space:nowrap}.tab:hover{border-color:#9fb7c8;transform:translateY(-1px)}.tab.active{border-color:var(--brand);background:var(--brand-weak);color:var(--brand-ink)}.card{background:var(--panel);border:1px solid #d8e3eb;box-shadow:var(--shadow);border-radius:18px;padding:18px;overflow:hidden}.research-card{overflow:visible}.section-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.section-head h2{font-size:22px;letter-spacing:.01em}.research-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-bottom:12px}.summary-card{display:grid;gap:6px;padding:12px;border:1px solid #dbe4ed;border-radius:14px;background:linear-gradient(180deg,#fff,#f8fbff)}.summary-card-accent{border-color:#0f766e47;background:linear-gradient(180deg,#effcf7,#fff)}.summary-card span{font-size:12px;color:#64748b}.summary-card strong{font-size:18px;color:#0f172a}.summary-card small{font-size:12px;color:#475569;line-height:1.4}.research-primary-actions{margin-top:0;margin-bottom:14px}.dashboard-heatmap-card{display:grid;gap:12px;padding:14px;border:1px solid #dbe4ed;border-radius:16px;background:linear-gradient(180deg,#f8fbfff5,#fff)}.dashboard-heatmap-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;align-items:start}.dashboard-heatmap-table{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0}.dashboard-heatmap-table th,.dashboard-heatmap-table td{border:1px solid #e2e8f0}.dashboard-heatmap-table th{position:sticky;top:0;z-index:2;padding:8px 10px;background:#f8fbff;color:#475569;font-size:12px;text-align:center;white-space:nowrap}.dashboard-heat-symbol-col{left:0;z-index:4;min-width:190px}.dashboard-heat-row{cursor:pointer}.dashboard-heat-row.focused .dashboard-heat-symbol-cell,.dashboard-heat-row.inspecting .dashboard-heat-symbol-cell{background:linear-gradient(180deg,#ecfeff,#fff)}.dashboard-heat-row.focused .dashboard-heat-symbol-cell{box-shadow:inset 0 0 0 1px #0e749047}.dashboard-heat-symbol-cell{position:sticky;left:0;z-index:1;min-width:190px;padding:10px 12px;background:linear-gradient(180deg,#fff,#f8fbff)}.dashboard-heat-symbol-main{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px}.dashboard-heat-symbol-main strong{font-size:14px;color:#0f172a}.dashboard-heat-symbol-cell small{display:block;color:#64748b;line-height:1.35}.dashboard-heat-cell{min-width:76px;padding:10px 8px;text-align:center;font-size:12px;font-weight:700;color:#0f172a;white-space:nowrap}.dashboard-heat-cell.ret-up,.dashboard-heatmap-highlight strong.ret-up{color:#991b1b}.dashboard-heat-cell.ret-down,.dashboard-heatmap-highlight strong.ret-down{color:#065f46}.dashboard-heat-cell.heat-volume-up,.dashboard-heatmap-highlight strong.heat-volume-up{color:#0c4a6e}.dashboard-heat-cell.heat-volume-down,.dashboard-heatmap-highlight strong.heat-volume-down{color:#475569}.dashboard-heat-cell.heat-vol-up,.dashboard-heatmap-highlight strong.heat-vol-up{color:#92400e}.dashboard-heat-cell.heat-vol-down,.dashboard-heatmap-highlight strong.heat-vol-down{color:#166534}.dashboard-heatmap-detail{display:grid;gap:12px;padding:12px;border:1px solid #dbe4ed;border-radius:14px;background:linear-gradient(180deg,#fffffff5,#f8fafcfa)}.dashboard-heatmap-detail-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.dashboard-heatmap-detail-head span,.dashboard-heatmap-highlight span,.dashboard-heatmap-detail-item span{font-size:12px;color:#64748b}.dashboard-heatmap-detail-head strong{display:block;font-size:20px;color:#0f172a}.dashboard-heatmap-detail-head small,.dashboard-heatmap-highlight small,.dashboard-heatmap-detail-item small{color:#475569;line-height:1.45}.dashboard-heatmap-detail-tags{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.dashboard-heatmap-highlight{display:grid;gap:4px;padding:12px;border:1px solid rgba(15,118,110,.16);border-radius:12px;background:linear-gradient(180deg,#f0fdfae6,#fff)}.dashboard-heatmap-highlight strong{font-size:24px;color:#0f172a}.dashboard-heatmap-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.dashboard-heatmap-detail-item{display:grid;gap:4px;padding:10px;border:1px solid #e2e8f0;border-radius:12px;background:#fff}.dashboard-heatmap-detail-item strong{font-size:15px;color:#0f172a;line-height:1.4}.pill-row{display:flex;flex-wrap:wrap;gap:8px}.section-gap-tight{margin-top:8px}.pill{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:5px 10px;font-size:12px;border:1px solid #dce5ec;background:#f8fafc;color:#475569}.pill.up{background:#fef2f2;border-color:#fecaca;color:#b91c1c}.pill.down{background:#ecfdf5;border-color:#bbf7d0;color:#047857}.pill.flat{background:#f3f4f6;border-color:#e5e7eb;color:#4b5563}.pill.state-good{background:#ecfdf5;border-color:#86efac;color:#166534}.pill.state-warn{background:#fffbeb;border-color:#fcd34d;color:#92400e}.pill.state-bad{background:#fef2f2;border-color:#fca5a5;color:#b91c1c}.pill.state-info{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.signal-tag{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700;border:1px solid #dbe4ed;background:#f8fafc;color:#475569}.signal-tag.good{background:#ecfdf5;border-color:#86efac;color:#166534}.signal-tag.watch{background:#fef9c3;border-color:#fde047;color:#854d0e}.signal-tag.bad{background:#fef2f2;border-color:#fca5a5;color:#b91c1c}.quality-panel{border:1px solid #dbe4ed;border-radius:12px;background:#f8fafc;padding:12px}.beauty-query-layout{display:grid;grid-template-columns:minmax(420px,1.2fr) minmax(260px,.8fr);gap:12px}.beauty-query-panel,.beauty-status-panel{border:1px solid #dbe4ed;border-radius:12px;background:#f8fafc;padding:12px}.query-mode-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:10px}.beauty-advanced-panel{border:1px dashed #cbd5e1;border-radius:10px;padding:10px;background:#fff}.conclusion-card,.explain-card,.evidence-drawer{border:1px solid #dbe4ed;border-radius:12px;background:#f8fafc;padding:12px}.score-overview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.score-overview-item{text-align:left;border:1px solid #dbe4ed;border-radius:10px;background:#fff;padding:10px;cursor:pointer}.score-overview-item:hover{border-color:#94a3b8}.score-overview-head{display:flex;justify-content:space-between;gap:8px;margin-bottom:6px}.quality-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-top:8px}.risk-summary-panel,.intraday-report-panel{border:1px solid #dbe4ed;border-radius:12px;background:#f8fafc;padding:12px}.model-explain-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px}.quality-item{border:1px solid #dbe4ed;border-radius:10px;background:#fff;padding:8px 10px;display:grid;gap:4px}.quality-item span{font-size:12px;color:#64748b}.quality-item strong{font-size:16px;color:#0f172a}.quality-bar{margin:10px 0;width:100%;height:10px;border-radius:999px;overflow:hidden;background:#e2e8f0}.quality-bar-fill{height:100%;border-radius:999px;transition:width .2s ease}.quality-bar-fill.good{background:linear-gradient(90deg,#16a34a,#22c55e)}.quality-bar-fill.watch{background:linear-gradient(90deg,#ca8a04,#eab308)}.quality-bar-fill.bad{background:linear-gradient(90deg,#dc2626,#ef4444)}.control-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-bottom:12px}.strategy-params-card{border:1px solid #dbe4ed;border-radius:12px;background:#f8fafc;padding:12px;margin-bottom:12px}.strategy-params-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}.strategy-params-head h3{font-size:15px}.strategy-param-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.candidate-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:10px}.candidate-toolbar input{flex:1;min-width:240px}.candidate-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;max-height:260px;overflow:auto;padding:2px}.candidate-item{flex-direction:row;align-items:center;gap:10px;background:#fff;border:1px solid #dbe4ed;border-radius:10px;padding:8px 10px;cursor:pointer;-webkit-user-select:none;user-select:none}.candidate-item.selected{border-color:#0d948899;box-shadow:0 0 0 3px #0f766e1f}.candidate-item input[type=checkbox]{width:16px;height:16px;padding:0;border-radius:4px;accent-color:#0d9488}.candidate-item span{font-size:13px;color:#0f172a;font-weight:600}.param-item{background:#fff;border:1px solid #dbe4ed;border-radius:10px;padding:8px}.param-label{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;font-size:12px;color:#475569}.param-label-text{display:inline-flex;gap:4px;align-items:baseline;min-width:0;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.param-help{position:relative;--tooltip-shift: 0px;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:999px;border:1px solid #dbe4ed;background:#f8fafc;color:#64748b;font-size:12px;font-weight:800;line-height:1;cursor:help;flex:0 0 auto}.param-help:focus{outline:none;border-color:#0d948899;box-shadow:0 0 0 3px #0f766e1f}.param-tooltip{position:absolute;top:22px;right:0;transform:translate(var(--tooltip-shift));width:380px;max-width:calc(100vw - 48px);padding:10px 12px;border-radius:14px;background:#0f172af5;border:1px solid rgba(148,163,184,.2);box-shadow:0 18px 42px #0f172a47;color:#e2e8f0;display:none;z-index:50}.param-tooltip:before{content:"";position:absolute;top:-6px;right:10px;width:12px;height:12px;background:#0f172af5;border-left:1px solid rgba(148,163,184,.2);border-top:1px solid rgba(148,163,184,.2);transform:rotate(45deg)}.param-help:hover .param-tooltip,.param-help:focus .param-tooltip{display:block}.param-tooltip-title{display:block;font-size:12px;font-weight:800;color:#f8fafc;margin-bottom:8px;word-break:break-all}.param-tooltip-row{display:grid;grid-template-columns:88px 1fr;gap:10px;padding:6px 0;border-top:1px solid rgba(148,163,184,.14)}.param-tooltip-row:first-of-type{border-top:none;padding-top:0}.param-tooltip-key{font-size:11px;color:#e2e8f0d9;font-weight:800}.param-tooltip-val{font-size:12px;color:#e2e8f0f0;line-height:1.35;white-space:pre-wrap}label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:#334155}input,select,textarea{border:1px solid #d2dde7;border-radius:10px;padding:8px 10px;font-size:14px;background:#fff}input:focus,select:focus,textarea:focus{outline:none;border-color:#7aa5bf;box-shadow:0 0 0 3px #0f766e1f}textarea{resize:vertical;min-height:96px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;line-height:1.35}.action-row{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0 10px}.btn{border:1px solid #d1dbe4;background:#fff;border-radius:10px;padding:8px 12px;color:#334155;font-weight:600;cursor:pointer;transition:all .2s ease}.btn:hover:not(:disabled){border-color:#94a3b8;transform:translateY(-1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{border-color:var(--brand-ink);color:#fff;background:linear-gradient(135deg,var(--brand),var(--brand) 42%,var(--brand-accent))}.btn.warning{border-color:#fbbf24;background:#fffbeb;color:#92400e}.btn.danger{border-color:#fca5a5;background:#fef2f2;color:#b91c1c}.hint{color:var(--muted);font-size:13px}.execution-status-strip{margin-top:12px;padding:12px;border-radius:14px;border:1px solid #dbe5ed;background:linear-gradient(180deg,#f8fbff,#fff)}.table-wrap{overflow-x:auto;border:1px solid #dbe5ed;border-radius:12px}table{width:100%;border-collapse:collapse;font-size:13px;background:#fff}thead th{position:sticky;top:0;z-index:1;background:#f8fafc;color:#334155;font-weight:700}th,td{border-bottom:1px solid #e5ebf1;text-align:left;padding:8px;white-space:nowrap}.reason-cell{white-space:normal;max-width:360px;line-height:1.25;word-break:break-word}.runs-error-cell{width:320px;min-width:240px;max-width:320px}.runs-error-text{display:-webkit-box;overflow:hidden;white-space:normal;word-break:break-word;line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:2}.dashboard-table tbody tr:nth-child(odd){background:#fcfdff}.selected-row{background:#ecfeff}.clickable-row{cursor:pointer;transition:background-color .15s ease}.clickable-row:hover{background:#f1f7ff}.intraday-factor-row{position:relative}.intraday-factor-row:hover{background:#f8fbff}.intraday-factor-feature-cell{position:relative;min-width:180px}.intraday-factor-tooltip{position:absolute;left:0;top:calc(100% + 4px);z-index:40;display:none;width:min(560px,calc(100vw - 48px));padding:10px 12px;border-radius:12px;background:#0f172af7;border:1px solid rgba(148,163,184,.26);box-shadow:0 14px 34px #0f172a47;color:#e2e8f0;pointer-events:none;white-space:normal}.intraday-factor-row:hover .intraday-factor-tooltip{display:block}.intraday-factor-tooltip-title{font-size:12px;font-weight:800;color:#f8fafc;margin-bottom:8px;line-height:1.3}.intraday-factor-tooltip-row{display:grid;grid-template-columns:72px 1fr;gap:10px;padding:5px 0;border-top:1px solid rgba(148,163,184,.14)}.intraday-factor-tooltip-row:first-of-type{border-top:none;padding-top:0}.intraday-factor-tooltip-key{font-size:11px;font-weight:800;color:#e2e8f0d6}.intraday-factor-tooltip-val{font-size:12px;color:#e2e8f0f5;line-height:1.36}.monthly-heatmap-table th,.monthly-heatmap-table td{text-align:center;min-width:72px;font-variant-numeric:tabular-nums}.monthly-heatmap-table .year-col{text-align:left;font-weight:700;min-width:84px}.monthly-heatmap-legend{display:flex;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}.monthly-heatmap-table td.heat-compare-cell{min-width:124px;text-align:left;padding:6px 8px;vertical-align:top;font-size:13px;cursor:default}.heat-compare-line{display:flex;align-items:center;justify-content:space-between;gap:6px;line-height:1.2}.heat-compare-line+.heat-compare-line{margin-top:4px;padding-top:4px;border-top:1px dashed rgba(148,163,184,.4)}.heat-compare-tag{display:inline-flex;align-items:center;border-radius:999px;padding:1px 6px;font-size:10px;font-weight:700;color:#334155;background:#94a3b842}.heat-compare-tag.strategy{color:#0e7490;background:#0e74902b}.heat-compare-tag.sh-index{color:#4338ca;background:#4338ca26}.heat-compare-diff{margin-top:4px;padding-top:4px;border-top:1px solid rgba(148,163,184,.45);text-align:right;font-size:12px;font-weight:700}.heatmap-hover-card{position:fixed;z-index:50;width:min(360px,calc(100vw - 20px));border-radius:12px;border:1px solid rgba(148,163,184,.5);background:#fffffff5;box-shadow:0 16px 40px #0f172a38;padding:12px;pointer-events:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.heatmap-hover-title{font-size:15px;font-weight:800;color:#0f172a}.heatmap-hover-summary{margin-top:8px;display:flex;flex-wrap:wrap;gap:8px 12px;font-size:13px}.heatmap-hover-subtitle{margin-top:10px;font-size:13px;font-weight:700;color:#334155}.heatmap-hover-list{margin-top:6px;display:grid;grid-template-columns:1fr auto;gap:5px 10px;font-size:13px}.heatmap-hover-row{display:contents}.heatmap-hover-total{margin-top:8px;padding-top:7px;border-top:1px dashed rgba(148,163,184,.55);font-size:13px;font-weight:700;color:#334155}.up{color:var(--up);font-weight:700}.down{color:var(--down);font-weight:700}.flat{color:var(--flat)}.section-gap{margin-top:16px}.section-gap h3{font-size:16px;margin-bottom:10px}.section-head-inline{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.section-head-inline h3{margin-bottom:0}.overfit-section{border:1px solid #dbe4ed;border-radius:12px;padding:12px;background:#f8fafc}.overfit-help{font-size:13px;color:#475569;line-height:1.5}.overfit-panel{margin-top:10px;border:1px solid #dbe4ed;border-radius:10px;background:#fff;padding:8px 10px}.overfit-panel-head{width:100%;border:none;background:transparent;padding:0;display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;font-size:14px;font-weight:700;color:#0f172a}.overfit-panel-head span:last-child{color:#64748b;font-size:12px;font-weight:600}.pagination-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:10px}.pagination-actions{display:inline-flex;gap:8px;flex-wrap:wrap}.candles-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.candles-grid.single-column{grid-template-columns:minmax(0,1fr)}.symbol-card{border:1px solid #d8e4ed;border-radius:14px;padding:10px;background:linear-gradient(180deg,#fff,#f8fbff)}.symbol-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:4px}.symbol-head h4{font-size:15px;font-weight:700}.symbol-head small{color:var(--muted);font-weight:500}.symbol-meta{display:flex;gap:6px}.mini-chip{border-radius:999px;padding:2px 8px;font-size:11px;border:1px solid #dce4eb;background:#f8fafc}.mini-chip-row{display:flex;flex-wrap:wrap;gap:6px}.pill-button{border:none;cursor:pointer;font:inherit}.reference-card{border-color:#d6deef;background:linear-gradient(180deg,#fff,#f5f8ff)}.reference-card.reference-index{border-left:4px solid #2563eb}.reference-card.reference-rotation{border-left:4px solid #7c3aed}.ref-chip.index{border-color:#2563eb59;background:#2563eb1f;color:#1d4ed8}.ref-chip.rotation{border-color:#7c3aed59;background:#7c3aed1f;color:#6d28d9}.ref-chip.held{border-color:#05966959;background:#05966924;color:#047857}.ref-chip.neutral{border-color:#94a3b866;background:#94a3b829;color:#475569}.chart-wrap{margin-top:14px;border:1px solid #d9e4ec;border-radius:12px;padding:10px;background:#fff}.chart-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.chart-toolbar-title{font-size:13px;color:#334155;font-weight:700}.chart-toolbar-actions{display:flex;gap:8px;flex-wrap:wrap}.result-detail-grid{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(420px,1.1fr);gap:14px;align-items:stretch}.scheme-library-layout{display:grid;grid-template-columns:minmax(280px,.85fr) minmax(0,1.15fr);gap:12px;align-items:start}.scheme-list-panel,.scheme-detail-panel{border:1px solid #dbe4ed;border-radius:14px;background:#f8fafc;padding:12px}.scheme-list,.scheme-run-list{display:grid;gap:10px}.scheme-list-item,.scheme-run-item{width:100%;display:grid;gap:6px;text-align:left;font:inherit;color:inherit;border:1px solid #dbe4ed;border-radius:12px;background:#fff;padding:12px;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.scheme-list-item:hover,.scheme-run-item:hover{border-color:#94a3b8;transform:translateY(-1px)}.scheme-list-item.active{border-color:#0f766e66;box-shadow:0 0 0 3px #0f766e1a;background:linear-gradient(180deg,#effcf7,#fff)}.scheme-list-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.scheme-list-item strong,.scheme-run-item strong{font-size:15px;color:#0f172a}.scheme-list-item small,.scheme-run-item small{color:#475569;line-height:1.45}.scheme-meta-grid{margin-bottom:12px}.scheme-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}.scheme-code-block{margin-top:12px;max-height:360px}.scheme-version-item{cursor:default}.results-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}.results-hero-main{display:grid;gap:6px}.results-run-title{overflow-wrap:anywhere;word-break:break-word}.results-meta-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.results-control-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.95fr);gap:12px;align-items:start;margin-bottom:12px}.results-action-card,.results-link-card{display:grid;gap:10px}.results-toolbar-group{display:flex;flex-wrap:wrap;gap:10px}.results-link-controls{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.results-link-controls select{min-width:220px}.results-link-card small{color:#64748b;line-height:1.45}.workspace-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:12px;align-items:start}.workspace-stack,.workspace-panel,.workspace-market-overview{display:grid;gap:12px}.workspace-market-focus{display:grid;gap:12px;padding:12px;border:1px solid rgba(15,118,110,.18);border-radius:14px;background:linear-gradient(180deg,#f0fdfaeb,#fff)}.workspace-market-focus-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.workspace-market-focus-card{display:grid;gap:4px;padding:12px;border:1px solid #dbe4ed;border-radius:12px;background:#fff}.workspace-market-focus-card span,.workspace-market-reason-card span{font-size:12px;color:#64748b}.workspace-market-focus-card strong{font-size:20px;color:#0f172a}.workspace-market-focus-card small{color:#475569;line-height:1.45}.workspace-market-reason-card{display:grid;gap:8px;padding:12px;border:1px solid #dbe4ed;border-radius:12px;background:#fff}.workspace-market-reason-card-warning{border-color:#f59e0b47;background:linear-gradient(180deg,#fffbebeb,#fff)}.workspace-market-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.workspace-market-stat{display:grid;gap:4px;padding:12px;border:1px solid #dbe4ed;border-radius:12px;background:linear-gradient(180deg,#f8fbff,#fff)}.workspace-market-stat span{font-size:12px;color:#64748b}.workspace-market-stat strong{font-size:20px;color:#0f172a}.workspace-market-stat small{color:#475569;line-height:1.45}.workspace-market-columns{display:grid;grid-template-columns:minmax(220px,.9fr) repeat(2,minmax(0,1fr));gap:10px;align-items:start}.workspace-market-block{display:grid;gap:10px;padding:12px;border:1px solid #dbe4ed;border-radius:12px;background:#fff}.workspace-market-block h4{font-size:15px;color:#0f172a}.workspace-market-list{display:grid;gap:8px}.workspace-market-row{display:grid;gap:6px;padding:10px 12px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc}.workspace-market-row-anchor{background:linear-gradient(180deg,#f8fbff,#fff)}.workspace-market-row-main{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.workspace-market-row-main strong{font-size:14px;color:#0f172a}.workspace-market-row-main small{color:#64748b;text-align:right}.workspace-market-row-metrics{display:flex;flex-wrap:wrap;gap:8px;font-size:13px}.workspace-market-observations{display:flex;flex-wrap:wrap;gap:8px}.workspace-list{display:grid;gap:10px}.workspace-list-item{display:grid;gap:6px;padding:12px;border:1px solid #dbe4ed;border-radius:12px;background:#fff}.workspace-list-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.workspace-list-item strong{font-size:15px;color:#0f172a}.workspace-list-item small{color:#475569;line-height:1.45}.decision-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.decision-column{display:grid;gap:8px}.decision-column h4{font-size:14px;color:#0f172a}.decision-list{margin:0;padding-left:18px;display:grid;gap:6px;color:#334155;line-height:1.5;font-size:14px}.results-decision-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}.results-decision-stack{display:grid;gap:12px}.results-risk-card{border-color:#f59e0b47;background:linear-gradient(180deg,#fffbebe6,#fff)}.results-risk-empty{border-color:#dbe4ed;background:#fff}.results-review-card{display:grid;gap:10px}.results-ops-board{display:grid;gap:12px}.results-ops-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.results-ops-card,.results-next-plan{border:1px solid #dbe4ed;border-radius:12px;background:#fff;padding:12px;display:grid;gap:10px}.results-ops-card h4,.results-next-plan h4{font-size:16px;color:#0f172a}.results-ops-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}.results-ops-metric{display:grid;gap:4px}.results-ops-metric span{font-size:12px;color:#64748b}.results-ops-metric strong{font-size:15px;color:#0f172a}.results-ops-contribution-list{display:grid;gap:8px}.results-ops-contribution-row{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px;color:#334155}.results-ops-contribution-row strong{font-size:14px}.results-ops-note-list{margin:0;padding-left:18px;display:grid;gap:6px;color:#475569;font-size:13px;line-height:1.45}.empty-position-panel{margin-top:12px;border:1px solid #d9e4ec;border-radius:12px;padding:12px;background:#fff}.empty-position-panel h3{font-size:16px;margin-bottom:10px}.empty-position-table-wrap{margin-top:10px;max-height:260px;overflow:auto}.calendar-panel,.report-panel{border:1px solid #d9e4ec;border-radius:12px;padding:12px;background:#fff;min-width:0}.result-detail-grid>.report-panel{display:flex;flex-direction:column;min-height:100%}.result-detail-grid>.report-panel .report-rendered{flex:1 1 auto;min-height:0;max-height:none}.calendar-panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.calendar-panel-head h3,.report-panel h3{font-size:16px}.month-select{display:inline-flex;align-items:center;gap:6px;font-size:13px}.month-select select{min-width:120px}.calendar-legend{display:flex;gap:8px;margin:10px 0}.calendar-hover-tip{border:1px solid #dbe4ed;border-radius:10px;background:#f8fafc;padding:10px 12px;margin-bottom:10px;min-height:92px}.calendar-hover-title{display:flex;align-items:center;gap:8px;margin-bottom:8px}.calendar-hover-grid{display:grid;grid-template-columns:1fr auto;column-gap:16px;row-gap:6px;font-size:13px}.calendar-holdings{margin-top:10px;padding-top:10px;border-top:1px dashed #cfd9e2}.calendar-holdings-title{font-size:12px;color:#334155;font-weight:700;margin-bottom:6px}.holding-chip-row{display:flex;flex-wrap:wrap;gap:6px}.holding-chip{border-radius:999px;border:1px solid #cfe0f2;background:#f4f8ff;color:#1e3a8a;font-size:12px;padding:3px 10px}.ret-up{color:#dc2626;font-weight:700}.ret-down{color:#059669;font-weight:700}.ret-flat{color:#64748b}.legend-chip{border-radius:999px;padding:2px 10px;font-size:12px;border:1px solid #dce4eb}.calendar-week-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-bottom:6px}.calendar-week-cell{text-align:center;font-size:12px;color:#64748b;font-weight:600}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.calendar-cell{min-height:62px;border:1px solid #dbe4ed;border-radius:10px;background:#f8fafc;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:4px}button.calendar-cell{cursor:pointer;transition:all .15s ease}button.calendar-cell:hover{transform:translateY(-1px);border-color:#9fb6c7}.calendar-cell.empty{background:transparent;border-style:dashed;border-color:#edf2f7}.calendar-cell .day{font-size:13px;font-weight:700}.calendar-cell .state{font-size:11px;font-weight:600}.calendar-cell.selected{box-shadow:0 0 0 2px #2563eb33}.calendar-cell.compare-trading-day{color:#1f2937;border-color:#c9d8e4;background:#f8fbff}.calendar-cell.compare-non-trading-day{color:#94a3b8;border-color:#e2e8f0;background:#f8fafc;cursor:not-allowed;opacity:.55}button.calendar-cell.compare-non-trading-day:hover{transform:none;border-color:#e2e8f0}.state-on{color:#065f46;border-color:#a7f3d0;background:#ecfdf5}.state-reduce{color:#9a3412;border-color:#fed7aa;background:#fff7ed}.state-off{color:#991b1b;border-color:#fecaca;background:#fef2f2}.state-unknown{color:#475569;border-color:#cbd5e1;background:#f8fafc}.report-rendered{margin-top:10px;max-height:420px;overflow:auto;background:#fff;color:#1f2937;border-radius:10px;border:1px solid #dbe4ed;padding:14px;font-size:13px;line-height:1.65}.report-rendered.empty{color:#64748b}.report-rendered h1,.report-rendered h2,.report-rendered h3{margin:0 0 8px;line-height:1.35}.report-rendered p,.report-rendered ul,.report-rendered ol,.report-rendered blockquote{margin:0 0 10px}.report-rendered ul,.report-rendered ol{padding-left:20px}.report-rendered code{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;padding:1px 5px;font-size:12px}.report-rendered pre{background:#0f172a;color:#e2e8f0;border-radius:8px;padding:10px;overflow:auto}.report-rendered table{width:100%;border-collapse:collapse}.report-rendered th,.report-rendered td{border:1px solid #dbe4ed;padding:6px 8px}.result-box{background:#0f172a;color:#dbeafe;border-radius:10px;padding:12px;overflow:auto;font-size:12px}.overfit-log-box{max-height:260px;line-height:1.45;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace}.inline-check{display:inline-flex;align-items:center;gap:8px;font-size:14px}.table-actions{display:inline-flex;flex-wrap:wrap;gap:8px}.compare-holding-groups{display:flex;flex-direction:column;gap:12px}.compare-holding-group{border:1px solid #d9e4ec;border-radius:12px;background:#fff;padding:10px}.compare-holding-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;flex-wrap:wrap}.compare-holding-head h4{font-size:14px;margin:0}.compare-holding-head small{color:#64748b;font-weight:500}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:20px;z-index:1000}.modal-card{width:min(1320px,96vw);max-height:88vh;overflow:hidden;border-radius:14px;border:1px solid #dbe4ed;background:#fff;box-shadow:0 20px 48px #0f172a4d;display:flex;flex-direction:column}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid #e2e8f0;background:#f8fafc}.modal-body{padding:16px 18px;display:flex;flex-direction:column;gap:10px}.modal-body p{margin:0;line-height:1.6}.modal-actions{display:flex;justify-content:flex-end;gap:10px;padding:0 18px 18px;flex-wrap:wrap}.confirm-modal{width:min(640px,96vw);max-height:unset}.trade-log-modal .modal-table-wrap{max-height:calc(88vh - 66px);overflow:auto;padding:10px}.trade-log-lines{display:flex;flex-direction:column;gap:4px}.trade-log-line{font-size:12px;color:#334155;white-space:nowrap}.message-bar{margin-top:12px;min-height:22px;color:#475569;font-size:12px}@media (max-width: 1180px){.candles-grid,.result-detail-grid{grid-template-columns:1fr}.result-detail-grid>.report-panel{min-height:auto}.result-detail-grid>.report-panel .report-rendered{max-height:560px}.workspace-grid,.scheme-library-layout,.scheme-detail-grid,.decision-grid,.results-decision-grid,.results-ops-grid,.results-control-grid,.workspace-market-stats,.workspace-market-focus-grid,.workspace-market-columns,.dashboard-heatmap-layout{grid-template-columns:1fr}.results-hero{flex-direction:column}}@media (max-width: 800px){.app-shell{padding:calc(14px + env(safe-area-inset-top,0px)) calc(14px + env(safe-area-inset-right,0px)) calc(16px + env(safe-area-inset-bottom,0px)) calc(14px + env(safe-area-inset-left,0px))}.topbar{flex-direction:column}.topbar>.btn{width:100%}.tabs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px;margin-left:-2px;margin-right:-2px}.tabs::-webkit-scrollbar{display:none}.tab{flex:0 0 auto}.workspace-market-row-main{flex-direction:column;align-items:flex-start}.dashboard-heatmap-detail-grid{grid-template-columns:1fr}.brand-lockup{width:100%;padding:14px 14px 16px}.app-toast{top:8px;flex-direction:column;align-items:flex-start}.app-toast-side{width:100%;justify-content:space-between}.brand-title{align-items:flex-start;gap:12px}.brand-accent{width:8px;height:36px;flex-basis:8px}.brand-title h1{align-items:flex-start;gap:8px 10px}.brand-title-cn{font-size:28px;letter-spacing:.1em}.brand-title-en{padding:6px 11px;font-size:10px;letter-spacing:.22em}.brand-subtitle{font-size:13px}.card,.quality-panel,.scheme-list-panel,.scheme-detail-panel,.workspace-market-focus,.results-ops-card,.results-next-plan,.calendar-panel,.report-panel,.empty-position-panel{padding:10px;border-radius:12px}.section-head,.section-head-inline{align-items:flex-start}.table-actions{width:100%}.table-actions>.btn{flex:1 1 180px}th,td{font-size:12px;padding:6px}.result-detail-grid{gap:10px}.beauty-query-layout{grid-template-columns:1fr}.calendar-panel,.report-panel{padding:10px;border-radius:10px}.calendar-panel-head{flex-direction:column;align-items:stretch;gap:8px}.month-select{width:100%;justify-content:space-between}.month-select select{min-width:0;width:100%}.calendar-hover-title{flex-wrap:wrap;overflow-wrap:anywhere}.calendar-hover-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:8px}.calendar-hover-grid>div{min-width:0;overflow-wrap:anywhere}.calendar-week-row,.calendar-grid{gap:4px}.calendar-cell{min-height:54px;border-radius:8px;padding:2px}.calendar-cell .day{font-size:12px}.calendar-cell .state{font-size:10px}.candidate-toolbar input,.results-link-controls select{min-width:0;width:100%}.dashboard-heat-symbol-col,.dashboard-heat-symbol-cell{min-width:156px}.dashboard-heat-cell{min-width:70px;padding:8px 6px}.results-toolbar-group,.results-link-controls,.action-row{width:100%}.results-toolbar-group>.btn,.results-link-controls>.btn,.table-actions>.btn{width:100%}.report-panel .hint{overflow-wrap:anywhere}.report-rendered{max-height:65vh;overflow:auto;-webkit-overflow-scrolling:touch;padding:10px}.report-rendered table{width:max-content;min-width:100%}.report-rendered thead th{position:static}.report-rendered th,.report-rendered td{white-space:normal;word-break:break-word}}@media (max-width: 430px){.app-shell{padding:calc(12px + env(safe-area-inset-top,0px)) calc(12px + env(safe-area-inset-right,0px)) calc(16px + env(safe-area-inset-bottom,0px)) calc(12px + env(safe-area-inset-left,0px))}.brand-lockup{padding:12px;border-radius:18px}.brand-title-cn{font-size:24px;letter-spacing:.08em}.brand-title-en{font-size:10px;letter-spacing:.18em;padding:5px 10px}.section-head h2{font-size:20px}.section-head-inline{flex-direction:column;align-items:flex-start}.results-hero-main,.workspace-panel,.workspace-market-overview,.results-action-card,.results-link-card,.results-review-card{min-width:0}.results-meta-row,.pill-row,.workspace-market-observations,.calendar-legend{gap:6px}.pill,.tab{font-size:11px}.btn{min-height:44px;padding:10px 12px}.workspace-market-focus-card strong,.workspace-market-stat strong{font-size:18px}.workspace-market-row,.workspace-list-item,.scheme-list-item,.scheme-run-item{padding:10px}.candidate-toolbar{align-items:stretch}.candidate-toolbar input{flex-basis:100%}.dashboard-heatmap-card,.dashboard-heatmap-detail{padding:10px}.dashboard-heatmap-detail-head{flex-direction:column}.dashboard-heatmap-detail-tags{justify-content:flex-start}.strategy-param-grid,.control-grid,.score-overview-grid,.quality-grid,.model-explain-grid,.calendar-hover-grid{grid-template-columns:1fr}.calendar-cell{min-height:48px}.calendar-cell .state{line-height:1.05}.report-rendered{font-size:12px}}
