:root{--ui-scale: .9;--ui-scale-inverse: 1.111111;--sidebar-width: 280px;--content-max-width: 1520px;--space-page: 16px;--space-panel: 18px;--color-primary: #1e40af;--color-primary-strong: #1e3a8a;--color-on-primary: #ffffff;--color-secondary: #3b82f6;--color-accent: #d97706;--color-success: #15803d;--color-danger: #dc2626;--color-ink: #0f172a;--color-muted: #64748b;--color-soft: #f8fafc;--color-panel: #ffffff;--color-app-bg: #ffffff;--color-sidebar-bg: #111827;--color-surface-subtle: #f8fbff;--color-input-bg: #ffffff;--color-input-border: #cbd5e1;--color-table-border: #e8eef7;--color-row-hover: #f8fbff;--color-line: #dbeafe;--color-line-strong: #bfdbfe;--color-sidebar-ink: #e2e8f0;--color-sidebar-muted: #a8b7cf;--color-status-primary-text: #1e40af;--color-status-accent-text: #92400e;--color-status-success-text: #166534;--color-status-danger-text: #991b1b;--color-chart-bg: #f8fafc;--color-chart-ink: #0f172a;--color-chart-muted: #64748b;--shadow-panel: 0 14px 34px rgba(15, 23, 42, .08);--shadow-card: 0 8px 22px rgba(30, 64, 175, .08);--radius: 8px}:root[data-theme=dark]{--color-primary: #6f8eae;--color-primary-strong: #9fb6cc;--color-on-primary: #101820;--color-secondary: #7896b4;--color-accent: #c7924f;--color-success: #63a37c;--color-danger: #c97777;--color-ink: #bcc5cf;--color-muted: #8593a3;--color-soft: #1c2530;--color-panel: #182029;--color-app-bg: #121820;--color-sidebar-bg: #141a22;--color-surface-subtle: #1c2530;--color-input-bg: #151c25;--color-input-border: #374554;--color-table-border: #283440;--color-row-hover: #202a35;--color-line: #2a3745;--color-line-strong: #3a4a5c;--color-sidebar-ink: #aeb8c4;--color-sidebar-muted: #8492a2;--color-status-primary-text: #a6bdd3;--color-status-accent-text: #d2ad71;--color-status-success-text: #9cc4aa;--color-status-danger-text: #d2a0a0;--color-chart-bg: #121820;--color-chart-ink: #b9c3ce;--color-chart-muted: #8391a0;--shadow-panel: 0 16px 38px rgba(4, 8, 12, .24);--shadow-card: 0 10px 24px rgba(4, 8, 12, .2)}*{box-sizing:border-box}html{min-height:100%;overflow-x:hidden}body{margin:0;min-height:100%;overflow-x:hidden;font-family:Inter,Segoe UI,Microsoft YaHei,Arial,sans-serif;background:var(--color-app-bg);color:var(--color-ink)}#app{width:100%;min-height:calc(100dvh * var(--ui-scale-inverse));transform-origin:top left;zoom:var(--ui-scale)}@supports not (zoom: 1){:root{--ui-scale-inverse: 1}#app{width:100%;min-height:100dvh;font-size:90%}}button,input,select{font:inherit}button,a,input{transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease,color .18s ease,transform .18s ease}button{min-height:44px;border:1px solid var(--color-primary);border-radius:8px;background:var(--color-primary);color:var(--color-on-primary);padding:0 16px;font-weight:700;cursor:pointer;box-shadow:0 8px 18px #1e40af2e}.button-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border:1px solid var(--color-primary);border-radius:8px;padding:0 16px;color:var(--color-on-primary);background:var(--color-primary);box-shadow:0 8px 18px #1e40af2e;font-weight:700;text-decoration:none}button:hover{background:var(--color-primary-strong);transform:translateY(-1px)}.button-link:hover{color:var(--color-on-primary);background:var(--color-primary-strong);transform:translateY(-1px)}button:active{transform:translateY(0)}button:disabled{cursor:not-allowed;opacity:.64;transform:none}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid rgba(217,119,6,.28);outline-offset:2px}input{min-height:44px;border:1px solid var(--color-input-border);border-radius:8px;padding:8px 12px;color:var(--color-ink);background:var(--color-input-bg)}input:hover,input:focus{border-color:var(--color-secondary);box-shadow:0 0 0 4px #3b82f61f}.app-shell{display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);min-height:calc(100dvh * var(--ui-scale-inverse));background:linear-gradient(90deg,var(--color-sidebar-bg) 0 var(--sidebar-width),transparent var(--sidebar-width)),var(--color-app-bg)}.sidebar{position:fixed;top:0;left:0;z-index:20;display:flex;flex-direction:column;width:var(--sidebar-width);height:calc(100dvh * var(--ui-scale-inverse));min-height:calc(100dvh * var(--ui-scale-inverse));padding:24px 18px;color:var(--color-sidebar-ink);background:var(--color-sidebar-bg);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.brand-block{padding:2px 2px 18px;border-bottom:1px solid rgba(219,234,254,.18)}.brand-lockup{display:flex;gap:12px;align-items:center;min-width:0}.brand-icon{width:52px;height:52px;flex:0 0 52px;border:1px solid rgba(191,219,254,.26);border-radius:8px;padding:5px;object-fit:contain;background:#0f172a75;box-shadow:0 10px 24px #00000038}.brand-copy{min-width:0}.brand-kicker,.page-eyebrow,.section-kicker{display:inline-flex;color:var(--color-accent);font-size:12px;font-weight:800;text-transform:uppercase}.brand-block h1{margin:6px 0 0;font-size:28px;line-height:1.15}.brand-block p{margin:10px 0 0;color:var(--color-sidebar-muted);line-height:1.55}.sidebar-nav{display:grid;gap:7px;margin-top:18px}.nav-link{display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;align-items:center;min-height:58px;padding:8px 10px;border:1px solid transparent;border-radius:8px;color:var(--color-sidebar-ink);text-decoration:none}.nav-link:hover,.nav-link.active,.nav-link.router-link-active{border-color:#bfdbfe47;background:#1e40af61;color:color-mix(in srgb,var(--color-sidebar-ink) 92%,var(--color-primary))}.nav-mark{display:inline-grid;place-items:center;width:42px;height:42px;border:1px solid rgba(191,219,254,.28);border-radius:8px;color:var(--color-sidebar-ink);background:#0f172a75;font-weight:800}.nav-copy{display:grid;gap:3px;min-width:0}.nav-copy strong{font-size:15px}.nav-copy small{color:var(--color-sidebar-muted);font-size:12px}.mobile-bottom-nav{display:none}.mobile-nav-link{text-decoration:none}.content{grid-column:2;min-width:0;padding:20px clamp(18px,2.6vw,32px) 32px}.content-full-bleed{height:calc(100dvh * var(--ui-scale-inverse));padding:0;overflow:hidden}.content-topbar{display:flex;justify-content:space-between;gap:16px;align-items:center;max-width:var(--content-max-width);min-height:44px;margin:0 auto 14px;color:var(--color-muted);font-size:14px}.topbar-copy{display:grid;gap:3px;min-width:0}.content-topbar strong{color:var(--color-primary-strong)}.theme-segment{display:inline-grid;grid-template-columns:repeat(2,minmax(58px,1fr));gap:3px;min-height:44px;border:1px solid var(--color-line);border-radius:8px;padding:3px;background:var(--color-panel);box-shadow:var(--shadow-card)}.theme-segment button{min-height:36px;border:0;border-radius:6px;padding:0 12px;color:var(--color-muted);background:transparent;box-shadow:none;font-size:13px;white-space:nowrap}.theme-segment button:hover{color:var(--color-ink);background:var(--color-surface-subtle);transform:none}.theme-segment button.active,.theme-segment button[aria-pressed=true]{color:var(--color-on-primary);background:var(--color-primary)}.content-surface{min-width:0;max-width:var(--content-max-width);margin:0 auto}.content-surface-full-bleed{width:100%;max-width:none;height:100%;margin:0}.page-stack{display:grid;gap:var(--space-page);min-width:0}.page-header{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding:var(--space-panel);border:1px solid var(--color-line);border-radius:var(--radius);background:var(--color-panel);box-shadow:var(--shadow-panel)}.page-title-block{display:grid;gap:6px;min-width:0}.page-header h2,.page-title-block h2{margin:0;color:var(--color-ink);font-size:28px;line-height:1.2}.page-header p{margin:0;color:var(--color-muted);line-height:1.55}.toolbar,.metric-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.toolbar{align-items:flex-end;justify-content:flex-end}.field-control{display:grid;gap:6px;color:var(--color-muted);font-size:13px;font-weight:700}.toolbar input[type=date],.toolbar button[type=submit]{height:44px;min-height:44px}.toolbar input[type=date]{cursor:pointer}.metric-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.metric-tile{position:relative;overflow:hidden;min-height:104px;border:1px solid var(--color-line);border-radius:var(--radius);padding:14px 16px;background:var(--color-panel);box-shadow:var(--shadow-card)}.metric-tile:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:#94a3b8}.metric-tile.tone-primary:before{background:var(--color-primary)}.metric-tile.tone-accent:before{background:var(--color-accent)}.metric-tile.tone-success:before{background:var(--color-success)}.metric-tile.tone-danger:before{background:var(--color-danger)}.metric-label,.metric-tile span{display:block;color:var(--color-muted);font-size:13px;font-weight:800}.metric-tile strong{display:block;margin-top:6px;color:var(--color-ink);font-variant-numeric:tabular-nums;font-size:30px;line-height:1;overflow-wrap:anywhere}.metric-tile small{display:block;margin-top:9px;color:var(--color-muted);line-height:1.45}.section-block{display:grid;gap:10px;min-width:0;margin-top:4px}.daily-run-panel{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:16px 18px;border:1px solid var(--color-line);border-radius:var(--radius);background:var(--color-panel);box-shadow:var(--shadow-card)}.daily-run-panel h3{margin:4px 0 6px;font-size:19px}.daily-run-panel p{margin:0;color:var(--color-muted);line-height:1.55}.run-controls{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:12px;align-items:center}.daily-schedule-controls{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;align-items:center;min-width:260px}.daily-schedule-toggle{display:inline-flex;align-items:center;gap:8px;min-height:38px;color:var(--color-ink);font-size:13px;font-weight:800;white-space:nowrap}.daily-schedule-toggle input{width:18px;height:18px;min-height:auto;accent-color:var(--color-primary)}.daily-schedule-time{width:112px;min-height:38px;border:1px solid var(--color-line);border-radius:8px;padding:0 10px;color:var(--color-ink);background:var(--color-panel);font:inherit;font-weight:800}.daily-schedule-controls small{flex-basis:100%;color:var(--color-muted);text-align:right;font-size:12px;font-weight:800}.daily-schedule-controls small.error{color:var(--color-danger)}.secondary-action{border-color:var(--color-line-strong);color:var(--color-primary);background:var(--color-panel);box-shadow:none}.secondary-action:hover:not(:disabled){color:var(--color-on-primary);background:var(--color-primary)}.switch-control{display:inline-flex;align-items:center;gap:8px;min-height:44px;border:1px solid var(--color-line);border-radius:8px;padding:0 12px;color:var(--color-ink);background:var(--color-surface-subtle);font-size:13px;font-weight:800;white-space:nowrap}.switch-control input{min-height:auto;width:18px;height:18px;accent-color:var(--color-primary)}.job-state{display:flex;gap:10px;align-items:center;flex-wrap:wrap;border:1px solid #bbf7d0;border-radius:var(--radius);padding:12px 14px;color:#166534;background:#f0fdf4}.job-state strong{color:#14532d}.job-state.error{border-color:#fecaca;color:#991b1b;background:#fef2f2}.job-state.error strong{color:#7f1d1d}.job-progress-panel{display:grid;gap:12px;border:1px solid var(--color-line);border-radius:var(--radius);padding:14px;background:var(--color-panel);box-shadow:var(--shadow-card)}.job-progress-panel.is-collapsed{padding:12px 14px}.job-progress-head{display:flex;justify-content:space-between;gap:14px;align-items:center}.job-progress-head>div{display:grid;gap:3px;min-width:0}.job-progress-head strong{color:var(--color-ink);font-size:14px}.job-progress-head span{color:var(--color-muted);font-size:12px}.job-progress-toggle{min-height:34px;border-color:var(--color-line-strong);padding:0 12px;color:var(--color-primary);background:var(--color-panel);box-shadow:none;font-size:13px}.job-progress-toggle:hover{color:var(--color-on-primary);background:var(--color-primary)}.job-progress-panel ol{display:grid;gap:8px;margin:0;padding:0;list-style:none}.job-step{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;min-height:42px;border:1px solid var(--color-line);border-radius:8px;padding:8px 10px;background:var(--color-surface-subtle)}.job-step-index,.job-step-status{font-variant-numeric:tabular-nums;font-weight:900}.job-step-copy{display:grid;gap:2px;min-width:0}.job-step-copy strong{color:var(--color-ink);font-size:13px}.job-step-copy small{color:var(--color-muted);font-size:12px;line-height:1.35}.job-step-status{min-width:58px;border-radius:999px;padding:4px 8px;text-align:center;font-size:12px}.job-step-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:8px}.job-step-retry{min-height:30px;border-color:#fecaca;padding:0 10px;color:#991b1b;background:#fff7ed;box-shadow:none;font-size:12px}.job-step-retry:hover:not(:disabled){color:#fff;background:#dc2626}.job-step.is-pending .job-step-status{color:var(--color-muted);background:var(--color-panel)}.job-step.is-running{border-color:#bfdbfe}.job-step.is-running .job-step-status{color:#1e40af;background:#dbeafe}.job-step.is-success .job-step-status{color:#166534;background:#dcfce7}.job-step.is-failed{border-color:#fecaca}.job-step.is-failed .job-step-status{color:#991b1b;background:#fee2e2}.section-heading,.detail-strip{display:flex;justify-content:space-between;gap:16px;align-items:center}.section-heading h3,.detail-strip h3{margin:4px 0 0;font-size:19px;line-height:1.25}.section-heading>strong{min-width:64px;border:1px solid #fde68a;border-radius:999px;padding:6px 12px;color:#92400e;background:#fffbeb;text-align:center;font-size:13px}.section-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:10px}.section-actions>strong{min-width:64px;border:1px solid #fde68a;border-radius:999px;padding:6px 12px;color:#92400e;background:#fffbeb;text-align:center;font-size:13px}.table-export-button{min-height:36px;border-color:var(--color-line-strong);padding:0 12px;color:var(--color-primary);background:var(--color-panel);box-shadow:none;font-size:13px}.table-export-button:hover{color:var(--color-on-primary);background:var(--color-primary)}.detail-strip{padding:18px;border:1px solid var(--color-line);border-radius:var(--radius);background:var(--color-panel);box-shadow:var(--shadow-card)}.detail-strip h3 span{color:var(--color-muted);font-weight:700}.intraday-score-panel{display:grid;gap:12px;border:1px solid var(--color-line);border-radius:var(--radius);padding:16px;background:var(--color-panel);box-shadow:var(--shadow-card)}.intraday-score-head,.intraday-score-foot{display:flex;justify-content:space-between;gap:16px;align-items:center}.intraday-score-head h3{margin:4px 0 0;font-size:19px;line-height:1.25}.intraday-score-head p,.intraday-score-foot p,.intraday-score-warning{margin:0;color:var(--color-muted);line-height:1.55}.intraday-score-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(156px,1fr));gap:8px 14px;border-top:1px solid var(--color-table-border);border-bottom:1px solid var(--color-table-border);padding:12px 0;font-size:13px;font-variant-numeric:tabular-nums;font-weight:800}.cloud-map-page{position:relative;height:100%;min-height:calc(100dvh * var(--ui-scale-inverse));background:var(--color-panel)}.cloud-map-open-external{position:absolute;top:14px;right:14px;z-index:3;min-height:36px;padding:0 12px;font-size:13px}.cloud-map-panel{width:100%;height:100%;min-height:100%;overflow:hidden;border:0;border-radius:0;background:var(--color-panel);box-shadow:none}.cloud-map-frame{display:block;width:100%;height:100%;min-height:100%;border:0;background:var(--color-panel)}.market-overview-metrics{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.market-overview-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.market-overview-strip span{display:grid;gap:6px;min-height:76px;border:1px solid var(--color-line);border-radius:var(--radius);padding:14px;color:var(--color-muted);background:var(--color-panel);box-shadow:var(--shadow-card);font-size:13px;font-weight:800}.market-overview-strip strong{color:var(--color-ink);font-size:22px;font-variant-numeric:tabular-nums}.intraday-score-warning{border:1px solid #fde68a;border-radius:8px;padding:8px 10px;color:#92400e;background:#fffbeb;font-size:13px;font-weight:800}.kline-panel{display:grid;gap:14px;padding:18px;border:1px solid var(--color-line);border-radius:var(--radius);background:var(--color-panel);box-shadow:var(--shadow-card)}.kline-chart{display:grid;gap:10px}.market-kline-chart{border:1px solid var(--color-line);border-radius:var(--radius);padding:12px;background:var(--color-chart-bg)}.kline-meta{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;min-height:28px;color:var(--color-chart-muted);font-size:12px;font-variant-numeric:tabular-nums;font-weight:800}.kline-meta span:first-child{color:var(--color-chart-ink)}.kline-meta .ma-5{color:#f97373}.kline-meta .ma-10{color:#60a5fa}.kline-meta .ma-20{color:#34d399}.kline-meta .ma-30{color:#c084fc}.kline-chart svg{width:100%;aspect-ratio:720 / 260;min-height:220px;border:1px solid #e8eef7;border-radius:var(--radius);background:#f8fafc}.market-kline-chart svg{border-color:var(--color-line);background:var(--color-chart-bg)}.kline-price-plot{position:relative;min-width:0}.kline-price-plot>svg{display:block}.volume-turnover-panel{display:grid;gap:6px}.volume-turnover-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;min-height:22px;color:var(--color-chart-muted);font-size:12px;font-variant-numeric:tabular-nums;font-weight:800}.volume-chip{color:var(--color-chart-ink)}.turnover-chip{color:var(--color-status-accent-text)}.kline-chart .volume-turnover-chart{width:100%;aspect-ratio:720 / 112;min-height:104px;border:1px solid #1f2937;border-radius:4px;background:var(--color-chart-bg)}.intraday-chart{display:grid;gap:10px}.intraday-chart svg{width:100%;aspect-ratio:720 / 260;min-height:220px;border:1px solid #e8eef7;border-radius:var(--radius);background:#f8fafc;cursor:crosshair;touch-action:pan-y}.market-intraday-chart svg{border-color:var(--color-line);background:var(--color-chart-bg)}.kline-grid line{stroke:#dbeafe;stroke-width:1}.volume-turnover-grid line{stroke:#94a3b82e;stroke-width:1}.volume-turnover-grid text,.volume-turnover-labels text,.volume-turnover-empty{fill:#94a3b8;font-size:11px;font-weight:800;text-anchor:middle}.volume-turnover-grid text:first-of-type{text-anchor:start}.volume-turnover-grid text:last-of-type{text-anchor:end}.market-kline-chart .kline-grid line{stroke:#94a3b833}.market-intraday-chart .kline-grid line{stroke:#94a3b833}.kline-grid text,.kline-candle text,.intraday-labels text{fill:var(--color-muted);font-size:12px;font-weight:700;text-anchor:middle}.kline-grid text{text-anchor:start}.market-kline-chart .kline-grid text,.market-kline-chart .kline-candle text{fill:#94a3b8}.market-intraday-chart .kline-grid text,.market-intraday-chart .intraday-labels text{fill:#94a3b8}.kline-candle line{stroke-width:1;stroke-linecap:round}.kline-candle rect{stroke-width:.75}.kline-candle.up line,.kline-candle.up rect{fill:var(--color-danger);stroke:var(--color-danger)}.kline-candle.down line,.kline-candle.down rect{fill:var(--color-success);stroke:var(--color-success)}.market-kline-chart .kline-candle.up line,.market-kline-chart .kline-candle.up rect{fill:var(--color-danger);stroke:var(--color-danger)}.market-kline-chart .kline-candle.down line,.market-kline-chart .kline-candle.down rect{fill:var(--color-success);stroke:var(--color-success)}.volume-bars rect{opacity:.72}.volume-bars rect.up{fill:var(--color-danger)}.volume-bars rect.down{fill:var(--color-success)}.turnover-line{fill:none;stroke:var(--color-accent);stroke-linecap:round;stroke-linejoin:round}.ma-lines path{fill:none;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.ma-lines .ma-5,.ma-legend .ma-5{stroke:#dc2626;color:#dc2626}.ma-lines .ma-10,.ma-legend .ma-10{stroke:#2563eb;color:#2563eb}.ma-lines .ma-20,.ma-legend .ma-20{stroke:#15803d;color:#15803d}.ma-lines .ma-30,.ma-legend .ma-30{stroke:#7c3aed;color:#7c3aed}.ma-legend{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.ma-legend span{display:inline-flex;align-items:center;gap:6px;min-height:26px;border:1px solid var(--color-line);border-radius:999px;padding:3px 9px;background:var(--color-panel);font-size:12px;font-weight:800}.ma-legend span:before{content:"";width:18px;height:2px;border-radius:999px;background:currentColor}.market-kline-chart .ma-legend span{border-color:var(--color-line);background:var(--color-panel)}.kline-signals path,.kline-signals .kline-signal-shape{stroke:var(--color-chart-bg);stroke-width:1.5}.kline-signal{cursor:help;outline:none}.kline-signal-hit-area{fill:transparent;stroke:none;pointer-events:all}.kline-signal path,.kline-signal-shape{transform-box:fill-box;transform-origin:center;transition:filter .16s ease,transform .16s ease}.kline-signal:hover path,.kline-signal:hover .kline-signal-shape,.kline-signal:focus-visible path,.kline-signal:focus-visible .kline-signal-shape,.kline-signal.active path,.kline-signal.active .kline-signal-shape{filter:drop-shadow(0 0 4px color-mix(in srgb,var(--color-chart-ink) 60%,transparent));transform:scale(1.28)}.kline-signal:focus-visible .kline-signal-hit-area{stroke:var(--color-chart-ink);stroke-width:1.5}.kline-signal.bullish path{fill:var(--color-danger)}.kline-signal.bearish path{fill:var(--color-success)}.kline-signal.watch path{fill:var(--color-accent)}.kline-signal.mixed .kline-signal-shape{fill:var(--color-primary)}.kline-signal-tooltip{position:absolute;z-index:20;display:grid;gap:7px;width:max-content;max-width:min(260px,calc(100% - 24px));border:1px solid var(--color-line-strong);border-radius:9px;padding:9px 10px;background:color-mix(in srgb,var(--color-panel) 94%,transparent);box-shadow:var(--shadow-card);color:var(--color-chart-ink);pointer-events:none;line-height:1.35}.kline-signal-tooltip.align-left{transform:translate(12px,calc(-100% - 12px))}.kline-signal-tooltip.align-center{transform:translate(-50%,calc(-100% - 12px))}.kline-signal-tooltip.align-right{transform:translate(calc(-100% - 12px),calc(-100% - 12px))}.kline-signal-tooltip.place-below.align-left{transform:translate(12px,12px)}.kline-signal-tooltip.place-below.align-center{transform:translate(-50%,12px)}.kline-signal-tooltip.place-below.align-right{transform:translate(calc(-100% - 12px),12px)}.kline-signal-tooltip time{color:var(--color-chart-muted);font-size:11px;font-variant-numeric:tabular-nums;font-weight:800}.kline-signal-tooltip>div{display:flex;flex-wrap:wrap;gap:5px}.kline-signal-tooltip span{border-radius:999px;padding:3px 7px;font-size:12px;font-weight:800;white-space:nowrap}.kline-signal-tooltip span.bullish{color:var(--color-status-danger-text);background:color-mix(in srgb,var(--color-danger) 18%,var(--color-panel))}.kline-signal-tooltip span.bearish{color:var(--color-status-success-text);background:color-mix(in srgb,var(--color-success) 18%,var(--color-panel))}.kline-signal-tooltip span.watch{color:var(--color-status-accent-text);background:color-mix(in srgb,var(--color-accent) 18%,var(--color-panel))}@media (prefers-reduced-motion: reduce){.kline-signal path,.kline-signal-shape{transition:none}}.signal-summary{display:grid;gap:10px;border:1px solid var(--color-line);border-radius:12px;padding:12px;background:color-mix(in srgb,var(--color-panel) 84%,transparent)}.signal-summary-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.signal-summary-header strong{color:var(--color-chart-ink);font-size:13px}.signal-summary-header span{color:var(--color-chart-muted);font-size:12px;font-weight:700}.signal-date-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px}.signal-date-group{display:flex;align-items:flex-start;gap:8px;min-width:0;border:1px solid #263449;border-radius:9px;padding:7px 8px;background:#0b1220}.signal-date-group time{flex:0 0 auto;padding-top:3px;color:var(--color-chart-muted);font-size:12px;font-variant-numeric:tabular-nums;font-weight:900}.signal-date-tags{display:flex;flex-wrap:wrap;gap:5px;min-width:0}.signal-date-tags span{display:inline-flex;align-items:center;gap:4px;min-height:24px;border:1px solid var(--color-line);border-radius:999px;padding:3px 8px;background:var(--color-panel);color:var(--color-chart-ink);font-size:12px;font-weight:800;line-height:1.3;white-space:normal}.signal-date-tags span:before{font-size:10px;line-height:1}.signal-date-tags .bullish{color:var(--color-status-danger-text)}.signal-date-tags .bullish:before{content:"▲"}.signal-date-tags .bearish{color:var(--color-status-success-text)}.signal-date-tags .bearish:before{content:"▼"}.signal-date-tags .watch{color:var(--color-status-accent-text)}.signal-date-tags .watch:before{content:"◆"}.intraday-separators line{stroke:#cbd5e1;stroke-dasharray:5 5}.market-intraday-chart .intraday-separators line{stroke:#94a3b85c}.intraday-line{fill:none;stroke:var(--color-primary);stroke-linecap:round;stroke-linejoin:round;stroke-width:3}.market-intraday-chart .intraday-line{stroke:#3b82f6;stroke-width:2.5}.intraday-endpoint{fill:var(--color-accent);stroke:#fff;stroke-width:2}.market-intraday-chart .intraday-endpoint{stroke:#050816}.intraday-state-panel{min-height:190px}.intraday-state-message{display:flex;min-height:120px;align-items:center;justify-content:center;flex-direction:column;gap:12px;border:1px dashed var(--color-line);border-radius:var(--radius);padding:20px;text-align:center}.intraday-state-message p{margin:0;color:var(--color-muted)}.intraday-state-message.error p{color:var(--color-danger)}.intraday-hover{pointer-events:none}.intraday-hover-guide{stroke:#0f172a61;stroke-dasharray:4 4;stroke-width:1;vector-effect:non-scaling-stroke}.market-intraday-chart .intraday-hover-guide{stroke:color-mix(in srgb,var(--color-chart-muted) 48%,transparent)}.intraday-hover-point{fill:#f8fafc;stroke:#f59e0b;stroke-width:2}.market-intraday-chart .intraday-hover-point{fill:var(--color-chart-bg)}.intraday-hover-badge rect{fill:color-mix(in srgb,var(--color-panel) 94%,transparent);stroke:color-mix(in srgb,var(--color-chart-muted) 50%,transparent);stroke-width:1}.intraday-hover-badge text{fill:var(--color-chart-ink);font-size:10px;font-weight:800}.intraday-hover-change{fill:var(--color-chart-muted)}.intraday-hover.positive .intraday-hover-change{fill:var(--color-status-danger-text)}.intraday-hover.negative .intraday-hover-change{fill:var(--color-status-success-text)}.kline-summary,.kline-empty{margin:0;color:var(--color-muted);font-size:13px;line-height:1.55}.kline-empty{display:grid;place-items:center;min-height:180px;border:1px dashed var(--color-line-strong);border-radius:var(--radius);background:var(--color-surface-subtle);font-weight:700}.table-wrap{width:100%;min-width:0;overflow:visible;border:1px solid var(--color-line);border-radius:var(--radius);background:var(--color-panel);box-shadow:var(--shadow-card)}.table-scroll{width:100%;min-width:0;height:auto;overflow-x:auto;overflow-y:visible}.focus-watch-section .table-wrap,.focus-watch-section .table-scroll{height:auto;max-height:none;overflow-y:hidden}.focus-watch-section td{vertical-align:middle}.candidate-pool-section .table-scroll{height:auto;max-height:min(720px,calc(100dvh - 260px));overflow-y:auto;overscroll-behavior:contain}.data-table{width:100%;min-width:820px;border-collapse:collapse;font-size:14px}th,td{padding:13px 12px;border-bottom:1px solid var(--color-table-border);text-align:left;vertical-align:top;line-height:1.45}th{position:sticky;top:0;z-index:1;color:var(--color-ink);font-weight:800;background:var(--color-surface-subtle)}tbody tr:hover{background:var(--color-row-hover)}tbody tr:last-child td{border-bottom:0}.code-cell,.number-cell{font-variant-numeric:tabular-nums}.code-cell{color:var(--color-primary-strong);font-weight:800}.number-cell{white-space:nowrap;color:var(--color-ink);font-weight:700}.tracked-count-button{min-width:42px;min-height:32px;height:32px;border-color:var(--color-line-strong);border-radius:8px;padding:0 10px;color:var(--color-primary-strong);background:var(--color-surface-subtle);box-shadow:none;font-weight:900;font-variant-numeric:tabular-nums}.tracked-count-button:hover{border-color:var(--color-primary);color:var(--color-primary-strong);background:var(--color-line);transform:none}.tracked-count-button[aria-expanded=true]{border-color:var(--color-primary);color:var(--color-on-primary);background:var(--color-primary)}.return-value,.industry-stock-return{font-variant-numeric:tabular-nums;font-weight:900}.return-positive{color:var(--color-danger)}.return-negative{color:var(--color-success)}.return-flat{color:var(--color-muted)}.muted-code{display:block;margin-top:4px;color:var(--color-muted);font-size:12px;font-weight:800}.industry-detail-row:hover{background:transparent}.industry-detail-row>td{padding:0 12px 14px;background:var(--color-panel)}.industry-detail-row>td:before{display:none}.industry-detail-panel{overflow:hidden;border:1px solid var(--color-line);border-radius:8px;background:var(--color-panel)}.industry-stock-header,.industry-stock-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(88px,auto);gap:16px;align-items:center;padding:10px 12px}.industry-stock-header{color:var(--color-muted);background:var(--color-surface-subtle);font-size:12px;font-weight:900}.industry-stock-header span:last-child,.industry-stock-return{justify-self:end}.industry-stock-row+.industry-stock-row{border-top:1px solid var(--color-table-border)}.stock-return-detail+.industry-stock-row{border-top:1px solid var(--color-table-border)}.industry-stock-main{display:flex;gap:8px;align-items:baseline;min-width:0}.industry-stock-main strong{overflow:hidden;color:var(--color-ink);text-overflow:ellipsis;white-space:nowrap}.industry-stock-return-button{justify-self:end;min-height:32px;border:1px solid transparent;border-radius:8px;padding:0 10px;background:transparent;box-shadow:none;font-weight:900;font-variant-numeric:tabular-nums}.industry-stock-return-button:hover,.industry-stock-return-button:focus-visible,.industry-stock-return-button[aria-expanded=true]{border-color:var(--color-line-strong);background:var(--color-surface-subtle);transform:none}.stock-return-detail{border-top:1px solid var(--color-table-border);padding:10px 12px 12px;background:var(--color-surface-subtle)}.stock-return-detail-title{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:8px;color:var(--color-muted);font-size:12px;font-weight:900}.stock-return-detail-title strong{color:var(--color-ink)}.stock-return-grid{overflow:hidden;border:1px solid var(--color-line);border-radius:8px;background:var(--color-panel)}.stock-return-grid-header,.stock-return-grid-row{display:grid;grid-template-columns:minmax(92px,1fr) 54px repeat(5,minmax(76px,.8fr));gap:10px;align-items:center;padding:8px 10px;font-size:12px}.stock-return-grid-header{color:var(--color-muted);background:var(--color-panel-muted);font-weight:900}.stock-return-grid-row{color:var(--color-ink);font-weight:800;font-variant-numeric:tabular-nums}.stock-return-grid-row+.stock-return-grid-row{border-top:1px solid var(--color-table-border)}.stock-return-grid-header span:not(:first-child),.stock-return-grid-row span:not(:first-child){text-align:right}.stock-return-state{border:1px dashed var(--color-line-strong);border-radius:8px;padding:12px;color:var(--color-muted);background:var(--color-panel);font-size:13px;font-weight:800}.stock-return-state.error{color:var(--color-danger)}.table-pagination{display:flex;justify-content:space-between;gap:12px;align-items:center;color:var(--color-muted);font-size:13px;font-weight:800}.table-pagination>div{display:flex;gap:10px;align-items:center}.table-pagination button{min-height:34px;border-color:var(--color-line-strong);padding:0 12px;color:var(--color-primary);background:var(--color-panel);box-shadow:none;font-size:13px}.table-pagination button:hover:not(:disabled){color:var(--color-on-primary);background:var(--color-primary);transform:none}.table-pagination strong{min-width:88px;color:var(--color-ink);text-align:center;font-variant-numeric:tabular-nums}.inline-state{border:1px solid var(--color-line);border-radius:8px;padding:10px 12px;color:var(--color-muted);background:var(--color-surface-subtle);font-size:13px;font-weight:800}.inline-state.error{border-color:#fecaca;color:#991b1b;background:#fef2f2}.industry-stock-main span{color:var(--color-muted);font-size:12px;font-variant-numeric:tabular-nums;font-weight:800}.industry-stock-empty{padding:12px;color:var(--color-muted);font-weight:800}.score-detail-trigger{position:relative;display:inline-flex;align-items:center;outline:none}.score-detail-value{display:inline-flex;align-items:center;min-height:28px;border-bottom:1px dotted currentColor;cursor:help;font-variant-numeric:tabular-nums}.score-popover{position:absolute;top:calc(100% + 8px);left:0;z-index:20;display:none;gap:8px;min-width:260px;max-width:min(360px,80vw);border:1px solid var(--color-line-strong);border-radius:8px;padding:12px;color:var(--color-ink);background:var(--color-panel);box-shadow:0 18px 36px #0f172a2e;opacity:0;pointer-events:none;transform:translateY(-4px);transition:opacity .14s ease,transform .14s ease,visibility .14s ease;visibility:hidden;white-space:normal}.score-detail-trigger:hover .score-popover,.score-detail-trigger:focus .score-popover,.score-detail-trigger:focus-within .score-popover{display:grid;opacity:1;pointer-events:auto;transform:translateY(0);visibility:visible}.score-popover>strong{color:var(--color-primary-strong);font-size:13px}.score-detail-row{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;border-top:1px solid var(--color-table-border);padding-top:7px;font-size:12px}.score-detail-row span{display:grid;gap:2px}.score-detail-row b{font-weight:800}.score-detail-row small,.score-detail-note,.score-detail-empty{color:var(--color-muted);font-size:11px;font-weight:700}.score-detail-row em{min-width:48px;text-align:right;font-style:normal;font-variant-numeric:tabular-nums;font-weight:900}.score-detail-row em.positive{color:var(--color-danger)}.score-detail-row em.negative{color:var(--color-success)}.score-detail-row em.flat{color:var(--color-muted)}.nowrap-cell{white-space:nowrap}.risk-chip,.status-pill,.score-badge,.score-delta{display:inline-flex;align-items:center;justify-content:center;min-height:28px;border-radius:999px;padding:4px 10px;font-size:13px;font-weight:800;white-space:nowrap}.score-summary{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.risk-chip{color:#92400e;background:#fffbeb;border:1px solid #fde68a}.risk-chip.risk-low{border-color:#bbf7d0;color:#166534;background:#dcfce7}.risk-chip.risk-high{border-color:#fecaca;color:#991b1b;background:#fee2e2}.status-pill{color:#1e40af;background:#eff6ff;border:1px solid #bfdbfe}.tracking-status-cell{display:grid;justify-items:start;gap:5px;min-width:112px}.status-meta{color:var(--color-muted);font-size:12px;font-weight:700;line-height:1.35}.status-pill.is-focus-watch{color:#1e40af;background:#eff6ff;border-color:#bfdbfe}.status-pill.is-candidate-pool{color:#92400e;background:#fffbeb;border-color:#fde68a}.status-pill.is-out-of-pool{color:#166534;background:#f0fdf4;border-color:#bbf7d0}.status-pill.is-closed{color:#991b1b;background:#fef2f2;border-color:#fecaca}.score-badge{gap:8px;border:1px solid transparent}.score-badge small{border-radius:999px;padding:2px 7px;color:#92400e;background:#fef3c7}.score-badge.continue{background:#dcfce7;border-color:#bbf7d0;color:#166534}.score-badge.downgrade{background:#fffbeb;border-color:#fde68a;color:#92400e}.score-badge.stop{background:#fef2f2;border-color:#fecaca;color:#991b1b}.score-badge.low-score{background:#fffbeb;border-color:#facc15;color:#92400e}.score-badge.stop small{color:#991b1b;background:#fee2e2}.score-delta{flex-direction:column;align-items:stretch;gap:6px;border:1px solid var(--color-input-border);color:var(--color-ink);background:var(--color-surface-subtle);white-space:normal}.score-delta-summary,.score-delta-detail{display:inline-flex;align-items:center;justify-content:space-between;gap:8px;white-space:nowrap}.score-delta-details{display:grid;gap:3px;min-width:128px}.score-delta-detail{min-height:20px;border-top:1px solid color-mix(in srgb,currentColor 16%,transparent);padding-top:3px;font-size:11px}.score-delta-detail strong{font-variant-numeric:tabular-nums}.score-delta small{color:var(--color-muted)}.stop-reason-cell{min-width:220px;max-width:320px;color:var(--color-muted);white-space:normal;line-height:1.5}.score-delta.positive{border-color:#fecaca;color:#b91c1c;background:#fef2f2}.score-delta.negative{border-color:#bbf7d0;color:#15803d;background:#f0fdf4}.score-delta.flat{border-color:var(--color-line);color:var(--color-muted);background:var(--color-surface-subtle)}.score-low-row{background:#fffbeb}.score-low-row:hover{background:#fef3c7}.table-action{display:inline-flex;align-items:center;min-height:32px;border-radius:8px;padding:0 10px;color:var(--color-primary);background:#eff6ff;text-decoration:none;font-weight:800}.table-action:hover{color:var(--color-on-primary);background:var(--color-primary)}.stock-name-link{color:var(--color-primary-strong);font-weight:900;text-decoration:none}.stock-name-link:hover{color:var(--color-primary);text-decoration:underline;text-underline-offset:3px}.data-state{display:flex;align-items:center;gap:12px;min-height:86px;border:1px dashed var(--color-line-strong);border-radius:var(--radius);padding:18px;color:var(--color-muted);background:color-mix(in srgb,var(--color-panel) 84%,transparent)}.data-state strong{color:var(--color-ink)}.data-state.error{border-color:#fecaca;color:#991b1b;background:#fef2f2}.static-auth-shell{display:grid;place-items:center;min-height:calc(100dvh * var(--ui-scale-inverse));padding:24px;background:linear-gradient(180deg,rgba(17,24,39,.96) 0 34%,transparent 34%),var(--color-app-bg)}.static-auth-card{display:grid;gap:14px;width:min(100%,440px);border:1px solid var(--color-line);border-radius:var(--radius);padding:28px;background:var(--color-panel);box-shadow:var(--shadow-panel)}.static-auth-icon{width:62px;height:62px;border:1px solid rgba(191,219,254,.4);border-radius:8px;padding:6px;object-fit:contain;background:#111827}.static-auth-card h1{margin:0;color:var(--color-ink);font-size:30px;line-height:1.2}.static-auth-card p{margin:0;color:var(--color-muted);line-height:1.65}.static-auth-form{display:grid;gap:10px}.static-auth-form label{color:var(--color-muted);font-size:13px;font-weight:900}.static-auth-form button{width:100%}.static-auth-state{display:inline-flex;gap:10px;align-items:center;min-height:48px;color:var(--color-muted)}.static-auth-error{border:1px solid #fecaca;border-radius:8px;padding:10px 12px;color:#991b1b;background:#fef2f2;font-weight:800}:root[data-theme=dark] .job-state{border-color:color-mix(in srgb,var(--color-success) 38%,var(--color-line));color:var(--color-status-success-text);background:color-mix(in srgb,var(--color-success) 12%,var(--color-panel))}:root[data-theme=dark] .job-state strong{color:var(--color-status-success-text)}:root[data-theme=dark] .job-state.error,:root[data-theme=dark] .data-state.error,:root[data-theme=dark] .inline-state.error{border-color:color-mix(in srgb,var(--color-danger) 42%,var(--color-line));color:var(--color-status-danger-text);background:color-mix(in srgb,var(--color-danger) 12%,var(--color-panel))}:root[data-theme=dark] .job-state.error strong{color:var(--color-status-danger-text)}:root[data-theme=dark] .job-step.is-running{border-color:color-mix(in srgb,var(--color-primary) 42%,var(--color-line))}:root[data-theme=dark] .job-step.is-pending .job-step-status{color:var(--color-muted);background:var(--color-input-bg)}:root[data-theme=dark] .job-step.is-running .job-step-status{color:var(--color-status-primary-text);background:color-mix(in srgb,var(--color-primary) 18%,var(--color-panel))}:root[data-theme=dark] .job-step.is-success .job-step-status{color:var(--color-status-success-text);background:color-mix(in srgb,var(--color-success) 16%,var(--color-panel))}:root[data-theme=dark] .job-step.is-failed{border-color:color-mix(in srgb,var(--color-danger) 42%,var(--color-line))}:root[data-theme=dark] .job-step.is-failed .job-step-status{color:var(--color-status-danger-text);background:color-mix(in srgb,var(--color-danger) 16%,var(--color-panel))}:root[data-theme=dark] .section-heading>strong,:root[data-theme=dark] .section-actions>strong,:root[data-theme=dark] .risk-chip,:root[data-theme=dark] .score-badge.downgrade,:root[data-theme=dark] .score-badge.low-score{border-color:color-mix(in srgb,var(--color-accent) 38%,var(--color-line));color:var(--color-status-accent-text);background:color-mix(in srgb,var(--color-accent) 12%,var(--color-panel))}:root[data-theme=dark] .table-export-button{border-color:var(--color-line-strong);color:var(--color-status-primary-text);background:var(--color-input-bg)}:root[data-theme=dark] .table-export-button:hover{color:var(--color-on-primary);background:var(--color-primary)}:root[data-theme=dark] .risk-chip.risk-low{border-color:color-mix(in srgb,var(--color-success) 38%,var(--color-line));color:var(--color-status-success-text);background:color-mix(in srgb,var(--color-success) 12%,var(--color-panel))}:root[data-theme=dark] .risk-chip.risk-high{border-color:color-mix(in srgb,var(--color-danger) 42%,var(--color-line));color:var(--color-status-danger-text);background:color-mix(in srgb,var(--color-danger) 12%,var(--color-panel))}:root[data-theme=dark] .status-pill,:root[data-theme=dark] .table-action{border-color:color-mix(in srgb,var(--color-primary) 38%,var(--color-line));color:var(--color-status-primary-text);background:color-mix(in srgb,var(--color-primary) 12%,var(--color-panel))}:root[data-theme=dark] .status-pill.is-candidate-pool{border-color:color-mix(in srgb,var(--color-accent) 38%,var(--color-line));color:var(--color-status-accent-text);background:color-mix(in srgb,var(--color-accent) 12%,var(--color-panel))}:root[data-theme=dark] .status-pill.is-out-of-pool{border-color:color-mix(in srgb,var(--color-success) 38%,var(--color-line));color:var(--color-status-success-text);background:color-mix(in srgb,var(--color-success) 12%,var(--color-panel))}:root[data-theme=dark] .status-pill.is-closed{border-color:color-mix(in srgb,var(--color-danger) 42%,var(--color-line));color:var(--color-status-danger-text);background:color-mix(in srgb,var(--color-danger) 12%,var(--color-panel))}:root[data-theme=dark] .score-badge.continue{border-color:color-mix(in srgb,var(--color-success) 38%,var(--color-line));color:var(--color-status-success-text);background:color-mix(in srgb,var(--color-success) 12%,var(--color-panel))}:root[data-theme=dark] .score-badge.stop{border-color:color-mix(in srgb,var(--color-danger) 42%,var(--color-line));color:var(--color-status-danger-text);background:color-mix(in srgb,var(--color-danger) 12%,var(--color-panel))}:root[data-theme=dark] .score-badge small{color:var(--color-status-accent-text);background:color-mix(in srgb,var(--color-accent) 16%,var(--color-panel))}:root[data-theme=dark] .score-badge.stop small{color:var(--color-status-danger-text);background:color-mix(in srgb,var(--color-danger) 16%,var(--color-panel))}:root[data-theme=dark] .score-delta.positive{border-color:color-mix(in srgb,var(--color-danger) 42%,var(--color-line));color:var(--color-status-danger-text);background:color-mix(in srgb,var(--color-danger) 12%,var(--color-panel))}:root[data-theme=dark] .score-delta.negative{border-color:color-mix(in srgb,var(--color-success) 38%,var(--color-line));color:var(--color-status-success-text);background:color-mix(in srgb,var(--color-success) 12%,var(--color-panel))}:root[data-theme=dark] .score-low-row{background:color-mix(in srgb,var(--color-accent) 9%,var(--color-panel))}:root[data-theme=dark] .score-low-row:hover{background:color-mix(in srgb,var(--color-accent) 14%,var(--color-panel))}:root[data-theme=dark] .static-auth-error{border-color:color-mix(in srgb,var(--color-danger) 42%,var(--color-line));color:var(--color-status-danger-text);background:color-mix(in srgb,var(--color-danger) 12%,var(--color-panel))}:root[data-theme=dark] .kline-chart svg,:root[data-theme=dark] .intraday-chart svg{border-color:var(--color-line);background:var(--color-chart-bg)}:root[data-theme=dark] .kline-grid line{stroke:color-mix(in srgb,var(--color-chart-muted) 22%,transparent)}:root[data-theme=dark] .intraday-separators line{stroke:color-mix(in srgb,var(--color-chart-muted) 34%,transparent)}:root[data-theme=dark] .intraday-endpoint{stroke:var(--color-chart-bg)}:root[data-theme=dark] .intraday-hover-guide{stroke:color-mix(in srgb,var(--color-chart-muted) 48%,transparent)}:root[data-theme=dark] .intraday-hover-point{fill:var(--color-chart-bg)}.loading-ring{width:20px;height:20px;border:3px solid #bfdbfe;border-top-color:var(--color-primary);border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}@media (max-width: 900px){.app-shell{display:block;padding-bottom:calc(78px + env(safe-area-inset-bottom));background:var(--color-app-bg)}.sidebar{position:sticky;top:0;left:auto;z-index:30;width:auto;height:auto;min-height:auto;padding:max(12px,env(safe-area-inset-top)) 14px 12px;overflow:visible;box-shadow:0 10px 24px #0f172a24}.brand-block{border-bottom:0;padding:0}.brand-icon{width:42px;height:42px;flex-basis:42px;padding:4px}.brand-block h1{font-size:22px}.brand-block p,.nav-copy small,.sidebar-nav{display:none}.mobile-bottom-nav{position:fixed;right:0;bottom:0;left:0;z-index:40;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;border-top:1px solid var(--color-line);padding:8px max(10px,env(safe-area-inset-left)) calc(8px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-right));background:color-mix(in srgb,var(--color-panel) 94%,transparent);box-shadow:0 -14px 28px #0f172a1f;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.mobile-nav-link{display:grid;justify-items:center;gap:4px;min-height:58px;border:1px solid transparent;border-radius:8px;padding:7px 4px 6px;color:var(--color-muted);font-size:12px;font-weight:800;text-align:center}.mobile-nav-link.active,.mobile-nav-link.router-link-active{border-color:var(--color-line-strong);color:var(--color-primary-strong);background:var(--color-surface-subtle)}.mobile-nav-mark{display:inline-grid;place-items:center;width:26px;height:26px;border:1px solid var(--color-line);border-radius:8px;color:var(--color-primary-strong);background:var(--color-panel);font-size:12px;font-weight:900}.mobile-nav-link.active .mobile-nav-mark,.mobile-nav-link.router-link-active .mobile-nav-mark{border-color:var(--color-primary);color:var(--color-on-primary);background:var(--color-primary)}.content{grid-column:auto;padding:16px}.content-full-bleed{height:calc(100dvh * var(--ui-scale-inverse) - 66px - 78px - env(safe-area-inset-bottom));padding:0}#app button,#app .button-link,#app input:not([type=checkbox]):not([type=radio]),#app select{min-height:49px}input[type=checkbox],input[type=radio]{min-height:auto}.content-topbar{margin-bottom:12px}.page-header{display:grid;padding:18px}.toolbar{justify-content:flex-start}.daily-run-panel{align-items:flex-start;flex-direction:column}.run-controls{justify-content:flex-start}}@media (max-width: 760px){.content{padding:14px 12px 18px}.content-full-bleed{padding:0}.content-topbar{align-items:flex-start}.theme-segment{box-shadow:none}.page-stack{gap:14px}.page-header,.daily-run-panel,.detail-strip,.kline-panel,.job-progress-panel{padding:16px}.page-header,.daily-run-panel{gap:14px}.page-header h2,.page-title-block h2{font-size:25px}.toolbar,.run-controls,.toolbar button,.toolbar .button-link,.run-controls button{width:100%}.metric-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.metric-tile{min-height:96px;padding:14px}.metric-tile strong{font-size:26px}.section-heading,.detail-strip{align-items:flex-start;flex-direction:column}.section-actions{width:100%;justify-content:space-between}.table-wrap{border:0;background:transparent;box-shadow:none}.table-scroll,.focus-watch-section .table-scroll,.candidate-pool-section .table-scroll{max-height:none;overflow:visible}.data-table{display:block;min-width:0;width:100%;border-collapse:separate;border-spacing:0}.data-table thead{display:none}.data-table tbody{display:grid;gap:12px}.data-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;border:1px solid var(--color-line);border-radius:var(--radius);padding:14px;background:var(--color-panel);box-shadow:var(--shadow-card)}.data-table td{display:block;min-width:0;border-bottom:0;padding:0;white-space:normal}.data-table td:before{content:attr(data-label);display:block;margin-bottom:4px;color:var(--color-muted);font-size:11px;font-weight:900;line-height:1.2}.data-table .industry-detail-row{border:0;padding:0;background:transparent;box-shadow:none}.industry-detail-row td{grid-column:1 / -1}.industry-detail-row td:before,.industry-stock-header{display:none}.industry-stock-row{grid-template-columns:minmax(0,1fr) auto}.industry-stock-main{align-items:flex-start;flex-direction:column;gap:2px}.stock-return-detail{padding:10px}.stock-return-detail-title{align-items:flex-start;flex-direction:column;gap:4px}.stock-return-grid-header{display:none}.stock-return-grid-row{grid-template-columns:1fr 1fr;gap:6px 12px}.stock-return-grid-row span:nth-child(1),.stock-return-grid-row span:nth-child(2){text-align:left}.data-table td[data-label=停止原因],.data-table td[data-label=评分变化],.data-table td[data-label=详情],.data-table td[data-label=原因]{grid-column:1 / -1}.stop-reason-cell{max-width:none;min-width:0}.score-delta{align-items:stretch;width:100%}.table-action{justify-content:center;width:100%;min-height:44px}.job-step{grid-template-columns:auto minmax(0,1fr)}.job-step-actions{grid-column:1 / -1;justify-content:flex-start}.kline-chart svg,.intraday-chart svg{min-height:190px}.cloud-map-panel,.cloud-map-frame{height:100%;min-height:100%}}@media (max-width: 520px){.content{padding:12px}.content-full-bleed{padding:0}.static-auth-shell{align-items:start;padding:max(20px,env(safe-area-inset-top)) 14px 20px}.static-auth-card{padding:22px}.content-topbar{display:grid;gap:4px}.page-header h2,.page-title-block h2{font-size:24px}.metric-row{grid-template-columns:1fr}.section-heading,.detail-strip{align-items:flex-start;flex-direction:column}.section-actions{justify-content:flex-start}.data-table{min-width:0}.metric-row,.data-table tr{grid-template-columns:1fr}}.auction-section .section-heading p{margin:.35rem 0 0;color:var(--muted)}.empty-inline{padding:1rem;border:1px dashed var(--line);border-radius:.75rem;color:var(--muted);background:var(--surface-soft)}.risk-chip.auction-strong{color:#166534;border-color:#86efac;background:#dcfce7}.risk-chip.auction-neutral{color:#92400e;border-color:#fde68a;background:#fffbeb}.risk-chip.auction-weak{color:#991b1b;border-color:#fecaca;background:#fee2e2}:root[data-theme=dark] .job-step-retry{border-color:color-mix(in srgb,var(--color-danger) 42%,var(--color-line));color:var(--color-status-danger-text);background:color-mix(in srgb,var(--color-danger) 10%,var(--color-panel))}:root[data-theme=dark] .job-step-retry:hover:not(:disabled){color:var(--color-on-primary);background:var(--color-danger)}:root[data-theme=dark] .intraday-score-warning,:root[data-theme=dark] .risk-chip.auction-neutral{border-color:color-mix(in srgb,var(--color-accent) 38%,var(--color-line));color:var(--color-status-accent-text);background:color-mix(in srgb,var(--color-accent) 11%,var(--color-panel))}:root[data-theme=dark] .risk-chip.auction-strong{border-color:color-mix(in srgb,var(--color-success) 38%,var(--color-line));color:var(--color-status-success-text);background:color-mix(in srgb,var(--color-success) 11%,var(--color-panel))}:root[data-theme=dark] .risk-chip.auction-weak{border-color:color-mix(in srgb,var(--color-danger) 42%,var(--color-line));color:var(--color-status-danger-text);background:color-mix(in srgb,var(--color-danger) 11%,var(--color-panel))}.auction-actions,.focus-watch-actions{flex-wrap:wrap}.auction-actions{max-width:270px}.auction-toggle-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;border:1px solid var(--color-line-strong);padding:0 14px;color:var(--color-primary);background:var(--color-panel);box-shadow:none;font-size:13px}.auction-toggle-button:hover{color:var(--color-on-primary);background:var(--color-primary)}.auction-toggle-button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .16s ease}.auction-toggle-button[aria-expanded=true] svg{transform:rotate(180deg)}.auction-auto-note{width:100%;color:var(--color-muted);font-size:12px;font-weight:800;text-align:right}.auction-content{display:grid;gap:12px}.auction-section.is-collapsed{border-color:color-mix(in srgb,var(--color-line-strong) 78%,transparent)}.focus-export-buttons{display:inline-flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.focus-export-buttons .table-export-button{min-height:44px}.focus-export-feedback{margin:-4px 0 0;color:#166534;font-size:13px;font-weight:800;text-align:right}.focus-export-feedback.is-error{color:#b91c1c}@media (prefers-reduced-motion: reduce){.auction-toggle-button svg{transition:none}}@media (max-width: 760px){.auction-actions,.focus-watch-actions{width:100%;max-width:none;align-items:stretch}.auction-actions>strong,.focus-watch-actions>strong{align-self:center}.auction-auto-note{text-align:left}.focus-export-buttons{display:grid;flex:1;grid-template-columns:repeat(2,minmax(0,1fr))}.focus-export-buttons .table-export-button{width:100%;padding-inline:8px}.focus-export-feedback{text-align:left}}@media (max-width: 520px){.auction-actions,.focus-watch-actions{display:grid;grid-template-columns:1fr}.auction-actions>strong,.focus-watch-actions>strong{justify-self:start}.auction-toggle-button,.focus-export-buttons{width:100%}.focus-export-buttons{grid-template-columns:1fr}}
