    :root {
      color-scheme: light;
      --bg: #ffffff;
      --subtle: #f6f8fa;
      --muted: #59636e;
      --text: #1f2328;
      --border: #d1d9e0;
      --blue: #0969da;
      --blue-soft: #ddf4ff;
      --green: #1a7f37;
      --green-soft: #dafbe1;
      --red: #cf222e;
      --shadow: 0 1px 0 rgba(31,35,40,.04), 0 1px 3px rgba(31,35,40,.08);
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans SC", Helvetica, Arial, sans-serif;
    }
    * { box-sizing: border-box; }
    html { background: var(--bg); scrollbar-gutter:stable; }
    body { margin: 0; color: var(--text); font-size: 14px; line-height: 1.5; }
    button, input, select { font: inherit; }
    button { color: inherit; }
    .topbar {
      height: 64px; display: flex; align-items: center; padding: 0 20px;
      background: var(--subtle); border-bottom: 1px solid var(--border); gap: 16px;
      position: sticky; top: 0; z-index: 20;
    }
    .brand-logo { width: 42px; height: 36px; display:block; object-fit:contain; flex:0 0 auto; }
    .brand { display: flex; align-items: center; gap: 9px; min-width: 220px; }
    .brand-copy { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; min-width:0; line-height:1.15; white-space:nowrap; }
    .brand-copy strong { font-weight:700; letter-spacing:-.2px; }
    .brand small { color: var(--muted); font-size:11px; font-weight:400; margin:3px 0 0; }
    .global-search-wrap { position:relative; margin-left:auto; width:min(350px,34vw); }
    .global-search {
      width:100%; height:36px; border:1px solid #d0d7de;
      border-radius:6px; background:#fff; display:flex; align-items:center; padding:0 8px; gap:6px; color:#57606a;
    }
    .global-search:hover { border-color:#8c959f; }
    .global-search:focus-within { border-color:#0969da; box-shadow:0 0 0 1px #0969da; }
    .global-search > svg { width:16px; height:16px; flex:0 0 auto; fill:currentColor; }
    .global-search input { height:34px; border:0; outline:0; min-width:0; width:100%; padding:0; background:transparent; color:var(--text); font-size:13px; }
    .global-search input::placeholder { color:#6e7781; opacity:1; }
    .global-search .kbd { min-width:18px; height:20px; display:grid; place-items:center; padding:0 4px; border-color:#d0d7de; border-radius:4px; background:#f6f8fa; color:#57606a; line-height:18px; }
    .global-search-popover { position:absolute; z-index:80; top:44px; right:0; width:min(640px,calc(100vw - 24px)); overflow:hidden; border:1px solid #d0d7de; border-radius:6px; background:#fff; box-shadow:0 8px 24px rgba(140,149,159,.2); }
    .global-search-popover[hidden] { display:none; }
    .global-search-head { display:flex; align-items:center; justify-content:space-between; min-height:44px; padding:10px 12px; border-bottom:1px solid var(--border); }
    .global-search-head > svg { width:16px; height:16px; fill:#57606a; }
    .global-search-query { max-width:70%; overflow:hidden; color:var(--muted); font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
    .global-search-results { max-height:min(460px,60vh); overflow:auto; padding:6px; }
    .global-search-group-title { padding:7px 8px 5px; color:var(--muted); font-size:12px; font-weight:600; }
    .global-search-group-head { display:flex; align-items:center; justify-content:space-between; padding:7px 8px 5px; }
    .global-search-group-head .global-search-group-title { padding:0; }
    .global-search-clear { border:0; padding:2px 4px; background:transparent; color:var(--blue); font-size:12px; cursor:pointer; }
    .global-search-clear:hover { text-decoration:underline; }
    .global-search-group-empty { padding:4px 8px 9px; color:var(--muted); font-size:12px; }
    .global-search-option { width:100%; display:grid; grid-template-columns:24px minmax(0,1fr) auto; align-items:center; gap:8px; padding:8px; border:0; border-radius:6px; background:#fff; text-align:left; cursor:pointer; }
    .global-search-option:hover,.global-search-option.active { background:var(--blue-soft); }
    .global-search-option.active { box-shadow:inset 2px 0 0 var(--blue); }
    .global-search-option-icon { width:24px; height:24px; display:grid; place-items:center; color:var(--muted); }
    .global-search-option-main { min-width:0; }
    .global-search-option-main strong,.global-search-option-main small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .global-search-option-main strong { font-size:13px; }
    .global-search-option-main small,.global-search-option-kind { color:var(--muted); font-size:12px; font-weight:400; }
    .global-search-empty { padding:28px 18px; color:var(--muted); text-align:center; }
    .global-search-foot { display:flex; align-items:center; gap:14px; min-height:38px; padding:8px 12px; border-top:1px solid var(--border); color:var(--muted); font-size:11px; }
    .global-search-foot .kbd { background:var(--subtle); }
    .kbd { border: 1px solid var(--border); border-radius: 4px; padding: 0 5px; font-size: 11px; color: var(--muted); }
    .icon-btn, .avatar { width: 36px; height: 36px; border: 1px solid var(--border); border-radius: 7px; background: transparent; display: grid; place-items: center; cursor: pointer; }
    .icon-btn:hover { background: #fff; }
    #sidebarToggle { position:absolute; left:calc(max(0px,(100% - 1480px) / 2) + 284px); }
    #sidebarToggle svg { width:16px; height:16px; display:block; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
    .sidebar-collapsed #sidebarToggle svg { transform:scaleX(-1); }
    .sidebar-collapsed #sidebarToggle { left:256px; }
    .avatar { border-radius: 50%; background: #eaeef2; font-weight: 700; color: #57606a; }
    .shell { max-width: 1480px; margin: 0 auto; display: grid; grid-template-columns: 270px minmax(0, 1fr); gap: 48px; padding: 34px 32px 64px; }
    .sidebar-collapsed .shell { grid-template-columns:minmax(0,1fr); gap:0; }
    .sidebar-collapsed aside { display:none; }
    .sidebar-collapsed main { width:100%; max-width:none; }
    .nav-label { color: var(--muted); font-size: 12px; font-weight: 600; padding: 14px 12px 7px; border-top: 1px solid var(--border); margin-top: 8px; }
    .nav { display: grid; gap: 2px; }
    .nav button {
      width: 100%; border: 0; background: transparent; padding: 8px 12px; border-radius: 6px; text-align: left;
      display: flex; align-items: center; gap: 10px; cursor: pointer; position: relative;
    }
    .nav button:hover { background: var(--subtle); }
    .nav button.active { background: var(--subtle); font-weight: 600; }
    .nav button.active::before { content: ""; position: absolute; left: -1px; top: 7px; bottom: 7px; width: 3px; background: #fd8c73; border-radius: 2px; }
    .nav-icon { width: 18px; color: var(--muted); text-align: center; }
    .nav-submenu { display:grid; gap:2px; margin:2px 0 4px 30px; }
    .nav-submenu[hidden] { display:none; }
    .nav-submenu button { color:var(--muted); font-size:12px; padding:7px 10px; }
    .nav-submenu button.active { color:var(--text); font-weight:600; }
    .nav-caret { margin-left:auto; color:var(--muted); font-size:11px; }
    .sidebar-foot { color: var(--muted); font-size: 12px; padding: 22px 12px; border-top: 1px solid var(--border); margin-top: 18px; }
    main { min-width: 0; max-width: 1060px; }
    .page { display: none; }
    .page.active { display: block; animation: reveal .16s ease-out; }
    @keyframes reveal { from { opacity: .4; transform: translateY(3px); } }
    .page-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin-bottom: 22px; }
    h1 { font-size: 24px; line-height: 1.25; margin: 0 0 5px; font-weight: 500; letter-spacing: -.25px; }
    h2 { font-size: 20px; margin: 0; font-weight: 500; }
    h3 { margin: 0; font-size: 15px; }
    p { margin: 0; }
    .muted { color: var(--muted); }
    .section { margin-top: 28px; }
    .section-title { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; padding-bottom: 8px; border-bottom: 1px solid var(--border); margin-bottom: 16px; }
    .section-title p { color: var(--muted); font-size: 12px; }
    .btn { min-height: 32px; border: 1px solid var(--border); border-radius: 6px; padding: 5px 12px; background: var(--subtle); font-weight: 600; font-size: 13px; cursor: pointer; box-shadow: 0 1px 0 rgba(31,35,40,.04); }
    .btn:hover { background: #eef1f4; border-color: #afb8c1; }
    .btn.primary { background: #1f883d; color: #fff; border-color: rgba(31,35,40,.15); }
    .btn.primary:hover { background: #1a7f37; }
    .live-today-actions .btn:disabled { border-color:#d8dee4; background:#f6f8fa; box-shadow:none; color:#8c959f; cursor:not-allowed; opacity:1; }
    .live-today-actions .btn:disabled:hover { border-color:#d8dee4; background:#f6f8fa; }
    #analyzeDataset.is-searching { display:inline-flex; align-items:center; justify-content:center; gap:8px; color:#fff; background:#238636; border-color:rgba(31,35,40,.2); box-shadow:inset 0 0 0 1px rgba(255,255,255,.12); }
    #analyzeDataset.is-searching:hover { color:#fff; background:#1f7a32; border-color:rgba(31,35,40,.25); }
    #analyzeDataset.is-searching::after { content:"■"; width:17px; height:17px; display:inline-grid; flex:0 0 17px; place-items:center; margin:0; border:1.5px solid rgba(255,255,255,.92); border-radius:50%; color:#fff; font-size:8px; line-height:1; }
    .btn.ghost { background: #fff; }
    .btn.danger { color: var(--red); background: #fff; }
    .card { border: 1px solid var(--border); border-radius: 7px; background: #fff; box-shadow: var(--shadow); overflow: hidden; }
    .quality-report-card { border:0; box-shadow:none; }
    .quality-report-card .card-body { width:100%; padding:0; }
    .card-head { min-height: 48px; padding: 12px 16px; display: flex; align-items: center; justify-content: space-between; gap: 16px; background: var(--subtle); border-bottom: 1px solid var(--border); }
    .card-body { padding: 16px; }
    .form-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 16px; }
    .field { display: grid; gap: 6px; }
    .field label { font-weight: 600; font-size: 12px; }
    .field input, .field select { width: 100%; min-width: 0; height: 34px; border: 1px solid var(--border); border-radius: 6px; background: #fff; padding: 5px 9px; color: var(--text); outline: none; }
    .field input:focus, .field select:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(9,105,218,.15); }
    .run-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-top: 16px; border-top: 1px solid var(--border); margin-top: 16px; }
    .llm-settings-grid { grid-template-columns:minmax(220px,1fr) minmax(360px,2fr); }
    .toggle-field { display:inline-flex; align-items:center; gap:8px; color:var(--text); font-size:13px; font-weight:600; cursor:pointer; }
    .toggle-field input { position:absolute; opacity:0; pointer-events:none; }
    .toggle-track { position:relative; width:32px; height:18px; border:1px solid #8c959f; border-radius:999px; background:#8c959f; transition:.15s ease; }
    .toggle-track::after { content:""; position:absolute; top:2px; left:2px; width:12px; height:12px; border-radius:50%; background:#fff; box-shadow:0 1px 2px rgba(31,35,40,.25); transition:.15s ease; }
    .toggle-field input:checked + .toggle-track { border-color:var(--green); background:var(--green); }
    .toggle-field input:checked + .toggle-track::after { transform:translateX(14px); }
    .toggle-field input:focus-visible + .toggle-track { outline:2px solid var(--blue); outline-offset:2px; }
    .toggle-field input:disabled + .toggle-track { opacity:.5; cursor:not-allowed; }
    .check { display: flex; gap: 8px; align-items: center; color: var(--muted); }
    .table { width: 100%; border-collapse: collapse; }
    .table th, .table td { padding: 11px 16px; border-bottom: 1px solid var(--border); text-align: left; white-space: nowrap; }
    .table th { color: var(--muted); font-size: 12px; background: var(--subtle); font-weight: 600; }
	.dataset-table { width:100%; min-width:820px; table-layout:fixed; }
	.dataset-table th,.dataset-table td { padding:8px; overflow:hidden; }
	.dataset-table th:nth-child(1) { width:40px; }
	.dataset-table th:nth-child(2) { width:165px; }
	.dataset-table th:nth-child(3) { width:180px; }
	.dataset-table th:nth-child(4) { width:125px; }
	.dataset-table th:nth-child(5) { width:65px; }
	.dataset-table th:nth-child(6),.dataset-table th:nth-child(7) { width:96px; }
	.dataset-table th:nth-child(8) { width:68px; }
	.dataset-taxonomy { min-width:0; line-height:18px; }
	.dataset-taxonomy-main,.dataset-taxonomy-source { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
	.dataset-taxonomy-source { color:var(--muted); font-size:12px; }
	.dataset-range { line-height:18px; }
	.dataset-range-end { color:var(--muted); font-size:12px; }
    .dataset-table th:nth-child(4),
    .dataset-table td:nth-child(4),
    .dataset-table th:nth-child(6),
    .dataset-table td:nth-child(6),
    .dataset-table th:nth-child(7),
    .dataset-table td:nth-child(7),
    .dataset-table th:nth-child(8),
    .dataset-table td:nth-child(8) { text-align:center; }
    .dataset-table td:nth-child(6) .state-cell-actions,
    .dataset-table td:nth-child(7) .state-cell-actions,
    .dataset-table td:nth-child(8) .dataset-row-actions { justify-content:center; }
    .dataset-table th:nth-child(5),
    .dataset-table td:nth-child(5) { text-align:right; }
    .table tr:last-child td { border-bottom: 0; }
    .table tbody tr:hover td { background: #f6f8fa; }
    .link { color: var(--blue); font-weight: 600; cursor: pointer; }
    .strategy-name-btn { border:0; padding:0; background:transparent; color:var(--blue); font-weight:600; cursor:pointer; text-align:left; }
    .strategy-name-btn:hover { text-decoration:underline; }
    .backtest-strategy-link { display:block; margin-top:2px; color:var(--blue); font-size:12px; font-weight:400; }
    .strategy-table { min-width:760px; }
    .strategy-table th:first-child { width:40px; }
    .strategy-table th:last-child { width:68px; }
    .strategy-toolbar .primary { margin-left:auto; }
    .delete-strategy-btn { color:var(--muted); border-color:transparent; background:transparent; }
    .delete-strategy-btn svg { width:16px; height:16px; display:block; fill:currentColor; }
    .delete-strategy-btn:hover { color:var(--red); background:#ffebe9; border-color:transparent; }
    .restore-strategy-btn { color:var(--blue); }
    .restore-strategy-btn:hover { color:#0550ae; background:var(--blue-soft); }
    .strategy-frame-wrap { min-height:320px; background:transparent; }
    .strategy-frame-loading { padding:32px; color:var(--muted); text-align:center; }
    .template-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(310px,1fr)); gap:16px; }
    .template-card { padding:20px; display:flex; flex-direction:column; gap:14px; }
    .template-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
    .template-card h3 { margin:0 0 4px; font-size:17px; }
    .template-card p { margin:0; color:var(--muted); line-height:1.65; }
    .template-meta { display:flex; flex-wrap:wrap; gap:7px; }
    .template-chip { padding:2px 8px; border:1px solid var(--border); border-radius:999px; color:var(--muted); font-size:12px; }
    .strategy-template-overview { display:grid; grid-template-columns:minmax(220px,.78fr) minmax(420px,1.22fr); align-items:stretch; gap:clamp(24px,4vw,48px); }
    .strategy-template-copy { min-width:0; }
    .strategy-template-description { display:grid; gap:12px; }
    .strategy-template-description p { margin:0; line-height:1.75; }
    .strategy-template-figure { order:-1; display:flex; min-width:0; height:100%; margin:0; overflow:hidden; border:1px solid var(--border); border-radius:7px; background:#fff; }
    .strategy-template-illustration { display:block; width:100%; height:100%; object-fit:contain; object-position:center; }
    .template-data-list { margin:0; padding-left:18px; color:var(--muted); font-size:13px; line-height:1.7; }
    .template-card-foot { margin-top:auto; display:flex; align-items:center; justify-content:space-between; gap:12px; }
    .strategy-entity-bar { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; margin-bottom:18px; overflow:hidden; border:1px solid var(--border); border-radius:6px; background:var(--border); }
    .strategy-entity-item { padding:12px 14px; background:#fff; }
    .strategy-entity-item span { display:block; margin-bottom:4px; color:var(--muted); font-size:12px; }
    .strategy-entity-item strong { font-size:13px; font-weight:600; }
    .strategy-binding-link { border:0; padding:0; background:transparent; color:var(--blue); font:inherit; font-weight:600; cursor:pointer; text-decoration:none; }
    .strategy-binding-link:hover { color:#0550ae; text-decoration:underline; }
    .strategy-binding-link:focus-visible { border-radius:2px; outline:2px solid var(--blue); outline-offset:2px; }
    .strategy-workspace { min-width:0; }
    .strategy-tree-pane { min-width:0; overflow:hidden; border:1px solid var(--border); border-radius:7px; background:#fff; box-shadow:var(--shadow); }
    .strategy-tree-toolbar { display:none; }
    .strategy-tree-list-head { display:grid; grid-template-columns:minmax(250px,360px) minmax(250px,1fr) 92px; align-items:center; gap:12px; padding:7px 16px; border-bottom:1px solid var(--border); background:var(--subtle); color:var(--muted); font-size:12px; font-weight:600; }
    .strategy-tree-list-title { display:flex; align-items:center; gap:7px; }
    .strategy-tree-collapse-toggle { width:26px; height:26px; display:grid; place-items:center; flex:0 0 auto; border:1px solid var(--border); border-radius:6px; background:#fff; color:var(--muted); cursor:pointer; }
    .strategy-tree-collapse-toggle:hover { border-color:#afb8c1; background:#f3f4f6; color:var(--text); }
    .strategy-tree-collapse-toggle:focus-visible { outline:2px solid var(--blue); outline-offset:2px; }
    .strategy-tree-collapse-toggle svg { width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; transition:transform .16s ease; }
    .strategy-tree-pane.is-collapsed .strategy-tree-collapse-toggle svg { transform:rotate(180deg); }
    .strategy-tree-pane.is-collapsed .strategy-tree-list-head { grid-template-columns:1fr; border-bottom:0; }
    .strategy-tree-pane.is-collapsed .strategy-tree-list-head>span:not(.strategy-tree-list-title),.strategy-tree-pane.is-collapsed .strategy-resource-tree { display:none; }
    .strategy-tree-list-head>span:nth-child(2) { text-align:left; }
    .strategy-tree-list-head>span:last-child { text-align:center; }
    /* Five compact rows plus half of the next row signal more scrollable content. */
    .strategy-resource-tree { max-height:175px; overflow:auto; }
    .strategy-tree-template { position:relative; min-width:0; padding:6px 16px; }
    .strategy-tree-template+.strategy-tree-template { border-top:1px solid var(--border); }
    .strategy-tree-template.is-dragging,.strategy-item-line.is-dragging { opacity:.42; }
    .strategy-tree-template.tree-drop-before::before,.strategy-tree-template.tree-drop-after::after { content:""; position:absolute; z-index:3; right:16px; left:16px; height:2px; border-radius:2px; background:var(--blue); pointer-events:none; }
    .strategy-tree-template.tree-drop-before::before { top:0; }
    .strategy-tree-template.tree-drop-after::after { bottom:0; }
    .strategy-item-line.tree-drop-before { box-shadow:inset 0 2px var(--blue); }
    .strategy-item-line.tree-drop-after { box-shadow:inset 0 -2px var(--blue); }
    .strategy-template-line,.strategy-item-line { display:grid; grid-template-columns:minmax(250px,360px) minmax(250px,1fr) 92px; align-items:center; gap:12px; min-height:28px; }
    .strategy-template-identity,.strategy-item-identity { display:flex; align-items:center; min-width:0; gap:4px; }
    .strategy-item-identity { padding-left:38px; }
    .strategy-template-identity>.strategy-tree-row,.strategy-item-identity>.strategy-tree-row { min-width:0; }
    .strategy-template-toggle { width:22px; height:26px; display:grid; place-items:center; flex:0 0 auto; border:0; border-radius:5px; background:transparent; color:var(--muted); cursor:pointer; font-size:12px; }
    .strategy-template-toggle:hover { background:var(--subtle); color:var(--text); }
    .strategy-template-toggle:disabled { visibility:hidden; }
    .strategy-template-runs,.strategy-template-actions,.strategy-item-actions { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
    .strategy-item-runs { display:grid; grid-template-columns:126px 84px; align-items:center; gap:6px; }
    .strategy-template-runs,.strategy-item-runs { justify-content:flex-start; }
    .strategy-template-actions,.strategy-item-actions { justify-content:center; }
    .strategy-template-actions,.strategy-item-actions { gap:2px; }
    .strategy-template-actions .mini-icon-btn,.strategy-item-actions .mini-icon-btn { flex:0 0 24px; }
    .mini-icon-btn.strategy-drag-handle { color:var(--muted); border-color:transparent; background:transparent; cursor:grab; }
    .mini-icon-btn.strategy-drag-handle:hover { color:var(--text); border-color:transparent; background:var(--subtle); }
    .mini-icon-btn.strategy-drag-handle:active { cursor:grabbing; }
    .mini-icon-btn.strategy-drag-handle[aria-disabled="true"] { opacity:.42; cursor:not-allowed; }
    .mini-icon-btn.strategy-drag-handle svg { width:16px; height:16px; display:block; fill:currentColor; }
    .strategy-template-identity>.strategy-tree-row,.strategy-item-identity>.strategy-tree-row { background:transparent; }
    .strategy-template-line .strategy-tree-select strong,.strategy-item-line .strategy-tree-select strong { color:var(--blue); }
    .strategy-template-line .strategy-tree-select:hover strong,.strategy-item-line .strategy-tree-select:hover strong { text-decoration:underline; }
    .strategy-template-create { display:inline-flex; align-items:center; gap:5px; border:1px solid var(--border); border-radius:6px; padding:3px 9px; background:#fff; color:var(--text); font:inherit; font-size:12px; cursor:pointer; }
    .strategy-template-create:hover,.strategy-template-create:focus-visible { border-color:#afb8c1; background:var(--subtle); }
    .strategy-item-line { position:relative; margin-left:-14px; }
    .strategy-item-line::before { content:''; position:absolute; left:14px; top:50%; width:17px; border-top:1px solid var(--border); }
    .strategy-item-line:last-child::after { content:''; position:absolute; left:13px; top:calc(50% + 1px); bottom:0; width:2px; background:#fff; }
    .strategy-template-line .strategy-tree-arrow,.strategy-item-line .strategy-tree-arrow { display:none; }
    .strategy-run-link { height:28px; display:inline-flex; align-items:center; justify-content:flex-start; gap:5px; border:1px solid var(--border); border-radius:6px; padding:3px 9px; background:#fff; color:var(--text); font:inherit; font-size:12px; cursor:pointer; white-space:nowrap; }
    .strategy-run-icon { width:14px; height:14px; flex:0 0 auto; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
    .strategy-run-link:hover,.strategy-run-link.active { border-color:#afb8c1; background:var(--subtle); }
    .strategy-run-link.active { color:var(--blue); }
    .strategy-operation-link.danger { color:var(--red); }
    .strategy-tree-row { display:flex; align-items:center; min-width:0; border-radius:6px; }
    .strategy-tree-row:hover,.strategy-tree-row.active { background:#eaeef2; }
    .strategy-tree-row.active { color:var(--blue); }
    .strategy-tree-select { min-width:0; flex:1; display:flex; align-items:center; gap:7px; border:0; padding:2px 7px; background:transparent; color:inherit; font:inherit; text-align:left; cursor:pointer; }
    .strategy-tree-select strong,.strategy-tree-select span:first-of-type { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .strategy-entity-icon { width:14px; height:14px; flex:0 0 auto; fill:none; stroke:currentColor; stroke-width:1.45; stroke-linecap:round; stroke-linejoin:round; color:var(--muted); }
    .strategy-word-glyph { width:24px; height:24px; display:inline-flex; align-items:center; justify-content:center; flex:0 0 24px; padding:0; overflow:hidden; border:1px solid rgba(84,142,230,.22); border-radius:6px; background:linear-gradient(145deg,#edf4ff 0%,#fff 48%,#e5efff 100%); box-shadow:inset 0 1px 0 rgba(255,255,255,.9); color:transparent; font-size:0; line-height:1; }
    .strategy-word-glyph::before { display:block; background:linear-gradient(145deg,#82b9f5 0%,#4d86ed 72%,#3e78e5 100%); background-clip:text; -webkit-background-clip:text; color:transparent; font-size:16px; line-height:1; font-weight:650; }
    .strategy-template-glyph::before { content:'模'; }
    .strategy-strategy-glyph::before { content:'策'; }
    .strategy-tree-arrow { width:12px; color:var(--muted); font-size:11px; text-align:center; flex:0 0 auto; }
    .strategy-tree-count { margin-left:auto; color:var(--muted); font-size:11px; }
    .strategy-tree-children { margin-left:14px; padding:0 0 2px; border-left:1px solid var(--border); }
    .strategy-tree-children:empty { display:none; }
    .strategy-tree-strategy>.strategy-tree-row .strategy-tree-select { font-weight:600; }
    .strategy-tree-category .strategy-tree-select { padding-block:5px; color:var(--muted); font-size:12px; font-weight:400; }
    .strategy-tree-category .running-dot { width:6px; height:6px; border-radius:50%; background:#8c959f; }
    .strategy-workspace-path { display:none; }
    .strategy-workspace-path strong { color:var(--text); font-weight:600; }
    .strategy-workspace-path span { margin:0 7px; color:#afb8c1; }
    .strategy-workspace-detail { min-width:0; margin-top:20px; padding:22px 24px 32px; border:1px solid var(--border); border-radius:7px; background:#fff; box-shadow:var(--shadow); }
    .strategy-workspace-detail[hidden] { display:none; }
    .strategy-workspace-detail.strategy-mode { padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
    .strategy-workspace-detail.backtest-mode,
    .strategy-workspace-detail.live-list-mode { padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
    .strategy-workspace-detail.live-create-mode,
    .strategy-workspace-detail.live-detail-mode { padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
    .strategy-node-detail-head.live-plan-list-head h3 { font-size:20px; font-weight:500; }
    .strategy-workspace-detail.backtest-mode #strategyRunNodeDetail > .strategy-node-detail-head h3 { font-size:20px; font-weight:500; line-height:30px; }
    .strategy-detail-identity-card { margin-bottom:0; padding:22px 18px 18px; border:1px solid var(--border); border-bottom:0; border-radius:7px 7px 0 0; background:#fff; box-shadow:none; }
    .strategy-detail-identity-card .strategy-entity-bar { margin-bottom:0; }
    #strategyIntroMount:empty { display:none; }
    #strategyIntroMount .strategy-intro-section { margin:0 0 16px; }
    #strategyIntroMount .strategy-intro-section p { margin:0; color:var(--muted); font-size:13px; line-height:1.8; }
    #strategyIntroMount .strategy-more-link { border:0; padding:0; background:transparent; color:var(--blue); font:inherit; cursor:pointer; white-space:nowrap; }
    #strategyIntroMount .strategy-more-link:hover { color:#0550ae; text-decoration:underline; }
    .strategy-detail-actions { display:flex; align-items:center; gap:8px; }
    .strategy-detail-title-row { min-width:0; display:flex; align-items:center; gap:6px; }
    .strategy-detail-title-row h2 { min-width:0; }
    .strategy-detail-name-edit-btn svg { width:16px; height:16px; display:block; fill:none; stroke:currentColor; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; }
    .strategy-detail-actions .btn { display:inline-flex; align-items:center; gap:6px; }
    #strategyDetailReturn[hidden] { display:none!important; }
    #saveStrategyCopy { background:#fff; }
    #saveStrategyCopy:not(:disabled):hover { background:#eef1f4; }
    #saveStrategyCopy:disabled { border-color:#d8dee4; background:#f6f8fa; box-shadow:none; color:#8c959f; cursor:not-allowed; opacity:.78; }
    #saveStrategyCopy:disabled .action-icon { opacity:.65; }
    .field input[aria-invalid="true"] { border-color:var(--red); box-shadow:0 0 0 3px rgba(207,34,46,.12); }
    .field-error { min-height:18px; color:var(--red); font-size:12px; }
    .strategy-detail-actions .action-icon { width:15px; height:15px; flex:0 0 auto; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
    .strategy-workspace-welcome { display:grid; min-height:520px; place-content:center; text-align:center; color:var(--muted); }
    .strategy-workspace-welcome[hidden], #strategyTemplateNodeDetail[hidden], #strategyRunNodeDetail[hidden], #strategyInlineDetail[hidden], #strategyLiveStash[hidden], #strategyLiveContent[hidden] { display:none !important; }
    .strategy-workspace-welcome h3 { margin-bottom:8px; color:var(--text); }
    .strategy-node-detail-head { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; margin-bottom:20px; padding-bottom:14px; border-bottom:1px solid var(--border); }
    .strategy-node-detail-head h3 { margin:0 0 5px; font-size:19px; }
    .strategy-backtest-create { align-self:flex-end; }
    .strategy-node-detail-section { margin-top:22px; }
    .strategy-node-detail-section h4 { margin:0 0 10px; font-size:14px; }
    .strategy-run-placeholder { display:grid; min-height:420px; place-content:center; max-width:560px; margin:auto; text-align:center; color:var(--muted); }
    .strategy-run-placeholder h3 { color:var(--text); margin-bottom:8px; }
    .backtest-result-head { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; margin-bottom:20px; padding-bottom:14px; border-bottom:1px solid var(--border); }
    .backtest-result-actions { display:flex; align-items:center; gap:8px; }
    .backtest-delete-button { display:inline-flex; align-items:center; justify-content:center; gap:6px; }
    .backtest-delete-button .action-icon { width:15px; height:15px; flex:0 0 auto; fill:currentColor; }
    .backtest-result-head h3 { margin:0 0 6px; font-size:19px; }
    .backtest-result-head p { margin:0; }
    .backtest-context-link { border:0; padding:0; background:transparent; color:var(--blue); font:inherit; cursor:pointer; }
    .backtest-context-link:hover { text-decoration:underline; }
    .backtest-mode .backtest-result-head { box-sizing:border-box; margin:0; padding:20px 18px 14px; border:1px solid var(--border); border-bottom:0; border-radius:7px 7px 0 0; background:#fff; }
    #strategyChartFrame,.backtest-result-frame { display:block; width:100%; min-height:320px; border:0; background:#fff; }
    .status { display: inline-flex; align-items: center; gap: 6px; border-radius: 999px; padding: 2px 8px; background: var(--green-soft); color: var(--green); font-size: 12px; font-weight: 600; }
    .status::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
    .status.gray { color: var(--muted); background: #eaeef2; }
    .empty-note { text-align: center; padding: 32px; color: var(--muted); }
    .toast { position: fixed; left: 50%; bottom: 28px; transform: translate(-50%, 18px); background: #24292f; color: #fff; padding: 10px 15px; border-radius: 7px; opacity: 0; pointer-events: none; transition: .2s; box-shadow: 0 8px 24px rgba(31,35,40,.25); z-index: 50; }
    .toast.show { opacity: 1; transform: translate(-50%, 0); }
    .data-toolbar { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-bottom:12px; }
    .data-toolbar input, .data-toolbar select { height:32px; border:1px solid var(--border); border-radius:6px; padding:4px 9px; background:#fff; }
    .data-toolbar .search-input { min-width:220px; }
    .data-toolbar #openAddDataset { margin-left:auto; }
    .selection-count { color:var(--muted); font-size:12px; }
    .dataset-actions { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:12px; }
    .dataset-actions-left, .dataset-actions-right { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
    .sync-range-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
    .sync-range-shortcuts { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-top:12px; }
    .sync-range-shortcuts span { color:var(--muted); font-size:12px; }
    .sync-range-shortcuts button { border:0; padding:0; background:transparent; color:var(--blue); font:inherit; font-size:12px; cursor:pointer; }
    .sync-range-shortcuts button:hover,.sync-range-shortcuts button:focus-visible { text-decoration:underline; }
	.state-btn { min-width:58px; min-height:28px; padding:3px 5px; border:1px solid var(--border); border-radius:999px; background:#fff; font-size:12px; font-weight:600; cursor:pointer; }
    .state-btn.ok { color:var(--green); background:var(--green-soft); border-color:#82d89b; }
    .state-btn.warn { color:#7d4e00; background:#fff8c5; border-color:#d4a72c; }
    .state-btn.error { color:var(--red); border-color:#ff8182; }
    .state-btn.running { color:var(--blue); background:var(--blue-soft); border-color:#80ccff; cursor:wait; }
    .state-btn:disabled { opacity:.72; }
	.state-cell-actions { display:flex; align-items:center; gap:4px; white-space:nowrap; }
	.mini-icon-btn { width:24px; height:28px; padding:0; display:inline-grid; place-items:center; border:1px solid var(--border); border-radius:6px; background:#fff; color:var(--muted); cursor:pointer; font-size:15px; line-height:1; }
    .mini-icon-btn:hover { color:var(--text); background:var(--subtle); }
    .task-banner { display:none; margin-bottom:12px; padding:10px 13px; border:1px solid #80ccff; border-radius:7px; background:var(--blue-soft); }
    .task-banner.show { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
    .task-current { display:flex; flex-direction:column; gap:3px; }
    .task-detail { color:var(--muted); font-size:12px; }
    .overlay { display:none; position:fixed; inset:0; z-index:60; background:rgba(140,149,159,.28); align-items:center; justify-content:center; padding:16px; }
    .overlay.show { display:flex; }
    .dialog { width:min(704px,calc(100vw - 32px)); max-height:calc(100vh - 32px); display:flex; flex-direction:column; overflow:hidden; background:#fff; border:1px solid var(--border); border-radius:12px; box-shadow:0 8px 24px rgba(31,35,40,.2); }
    .dialog.small { width:min(704px,calc(100vw - 32px)); }
	.discard-backtest-dialog { width:min(440px,calc(100vw - 32px))!important; }
	.dialog.strategy-details-dialog { width:min(900px,94vw); }
    .dialog > form { min-height:0; display:flex; flex:1; flex-direction:column; }
    .dialog-head,.dialog-foot { flex:0 0 auto; display:flex; align-items:center; justify-content:space-between; padding:12px 16px; }
    .dialog-head { min-height:52px; border-bottom:1px solid var(--border); }
    .dialog-head h3 { font-size:14px; font-weight:600; }
    .dialog-head > .icon-btn { width:32px; height:32px; flex:0 0 32px; border:0; border-radius:6px; background:var(--subtle); color:var(--muted); }
    .dialog-head > .icon-btn:hover { color:var(--text); background:#eaeef2; }
    .dialog-head > .icon-btn svg { width:16px; height:16px; fill:currentColor; }
    .dialog-foot { min-height:64px; justify-content:flex-end; gap:8px; }
    .dialog-body { min-height:0; flex:1 1 auto; overflow:auto; padding:20px 16px; }
    .delete-impact { margin-top:10px; line-height:1.65; }
    .danger-confirm { margin-top:16px; padding:12px; border:1px solid #ff8182; border-radius:8px; background:#fff1f0; }
    .danger-confirm[hidden] { display:none!important; }
    .danger-confirm strong { display:block; color:var(--red); margin-bottom:8px; }
    .danger-confirm label { display:block; margin-bottom:6px; font-size:12px; font-weight:600; }
    .danger-confirm input { width:100%; }
	#strategyDetailsBody { padding:20px 24px 24px; background:#fff; }
	.strategy-details-content { display:flex; flex-direction:column; gap:22px; color:var(--muted); font-size:13px; line-height:1.75; }
	.strategy-details-section { min-width:0; }
	.strategy-details-section h4 { margin:0 0 12px; padding:0 0 8px; border-bottom:1px solid var(--border); color:var(--text); font-size:15px; line-height:22px; }
	.strategy-details-section p { margin:0 0 9px; }
	.strategy-details-section p:last-child { margin-bottom:0; }
	.strategy-details-section ul { display:grid; gap:7px; margin:0; padding-left:20px; }
	.strategy-details-section li { padding-left:2px; }
	.strategy-details-section li::marker { color:var(--blue); }
	.strategy-details-section strong { color:var(--text); font-weight:650; }
    .dialog-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
    .drawer { width:min(1100px,calc(100vw - 48px)); max-height:calc(100vh - 48px); display:flex; flex-direction:column; overflow:hidden; background:#fff; border:1px solid var(--border); border-radius:12px; box-shadow:0 8px 24px rgba(31,35,40,.2); }
    .drawer .dialog-head { flex:0 0 auto; background:#fff; }
    .drawer-body { min-height:0; flex:1 1 auto; overflow:auto; padding:20px 24px 24px; }
    .drawer .table-wrap { width:100%; }
    .browse-meta-row { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:10px 0 16px; }
    .browse-meta { color:var(--muted); font-size:12px; }
    .browse-actions { display:flex; align-items:center; gap:10px; margin-left:auto; }
    .browse-actions .btn { min-height:38px; display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:7px 14px; border-color:#d0d7de; border-radius:10px; background:#fff; color:var(--text); font-weight:500; line-height:20px; text-decoration:none; box-shadow:0 1px 2px rgba(31,35,40,.08); transition:background-color .15s,border-color .15s,box-shadow .15s,transform .05s; }
    .browse-actions .btn:hover { background:#f6f8fa; border-color:#afb8c1; box-shadow:0 2px 5px rgba(31,35,40,.1); }
    .browse-actions .btn:active { background:#eef1f4; box-shadow:inset 0 1px 2px rgba(31,35,40,.08); transform:translateY(1px); }
    .browse-actions .btn:focus-visible { outline:2px solid #0969da; outline-offset:2px; }
    .browse-actions .action-icon { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; flex:0 0 auto; }
    .browse-chart-panel { margin-bottom:16px; padding:14px 16px 10px; }
    .browse-chart-head { display:flex; justify-content:space-between; gap:12px; margin-bottom:8px; }
    .start-page { display:grid; gap:24px; }
    .start-hero { display:flex; align-items:flex-end; justify-content:space-between; gap:32px; padding:2px 0 22px; border-bottom:1px solid var(--border); }
    .start-hero-copy { max-width:670px; }
    .start-eyebrow { display:flex; align-items:center; gap:7px; margin-bottom:8px; color:var(--green); font-size:12px; font-weight:700; }
    .start-eyebrow::before { content:""; width:7px; height:7px; border-radius:50%; background:var(--green); box-shadow:0 0 0 3px var(--green-soft); }
    .start-hero h1 { margin-bottom:8px; font-size:28px; font-weight:600; letter-spacing:-.5px; }
    .start-hero p { color:var(--muted); font-size:14px; }
    .start-hero-actions { display:flex; flex:0 0 auto; gap:8px; }
    .start-overview { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(260px,.85fr); gap:18px; align-items:stretch; }
    .start-focus { padding:22px; border-color:#b6d3ee; background:linear-gradient(135deg,#f7fbff 0%,#fff 52%); }
    .start-card-label { margin-bottom:8px; color:var(--muted); font-size:12px; font-weight:600; }
    .start-focus h2 { margin-bottom:8px; font-size:20px; font-weight:600; }
    .start-focus-copy { max-width:650px; color:var(--muted); }
    .start-focus-meta { display:flex; flex-wrap:wrap; gap:8px 16px; margin-top:16px; color:var(--muted); font-size:12px; }
    .start-focus-meta span { display:inline-flex; align-items:center; gap:6px; }
    .start-focus-meta span::before { content:""; width:4px; height:4px; border-radius:50%; background:#8c959f; }
    .start-focus-actions { display:flex; gap:8px; margin-top:20px; }
    .start-health { display:grid; grid-template-rows:auto 1fr auto; padding:20px; }
    .start-health-score { display:flex; align-items:baseline; gap:7px; margin:8px 0 2px; }
    .start-health-score strong { font-size:30px; font-weight:600; letter-spacing:-1px; }
    .start-health-score span { color:var(--muted); font-size:12px; }
    .start-health-bar { height:6px; margin:14px 0 12px; overflow:hidden; border-radius:999px; background:#eaeef2; }
    .start-health-bar span { display:block; width:0; height:100%; border-radius:inherit; background:var(--green); transition:width .25s ease; }
    .start-health-detail { color:var(--muted); font-size:12px; }
    .start-health-link { justify-self:start; margin-top:15px; border:0; padding:0; background:transparent; color:var(--blue); cursor:pointer; }
    .start-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border:1px solid var(--border); border-radius:7px; background:#fff; box-shadow:var(--shadow); }
    .start-stat { min-width:0; padding:15px 18px; border-right:1px solid var(--border); }
    .start-stat:last-child { border-right:0; }
    .start-stat span,.start-stat small { display:block; color:var(--muted); font-size:12px; }
    .start-stat strong { display:block; margin:2px 0; font-size:22px; font-weight:600; }
    .start-path { padding-top:2px; }
    .start-section-head { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:12px; }
    .start-section-head h2 { margin-bottom:2px; font-size:17px; font-weight:600; }
    .start-section-head p { color:var(--muted); font-size:12px; }
    .start-path-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); overflow:hidden; border:1px solid var(--border); border-radius:7px; background:#fff; box-shadow:var(--shadow); }
    .start-step { position:relative; min-width:0; padding:18px; border-right:1px solid var(--border); }
    .start-step:last-child { border-right:0; }
    .start-step-top { display:flex; align-items:center; justify-content:space-between; gap:12px; }
    .start-step-number { width:24px; height:24px; display:grid; place-items:center; border:1px solid var(--border); border-radius:50%; color:var(--muted); font-size:12px; font-weight:700; }
    .start-step.complete .start-step-number { border-color:#4ac26b; background:var(--green-soft); color:var(--green); }
    .start-step-state { color:var(--muted); font-size:11px; }
    .start-step.complete .start-step-state { color:var(--green); }
    .start-step h3 { margin:12px 0 4px; }
    .start-step p { min-height:38px; color:var(--muted); font-size:12px; }
    .start-step button { margin-top:12px; border:0; padding:0; background:transparent; color:var(--blue); cursor:pointer; }
    .start-recent { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
    .start-list-card { min-width:0; }
    .start-list-head { display:flex; align-items:center; justify-content:space-between; min-height:46px; padding:11px 14px; border-bottom:1px solid var(--border); background:var(--subtle); }
    .start-list-head h3 { font-size:14px; }
    .start-list-head button { border:0; padding:0; background:transparent; color:var(--blue); cursor:pointer; }
    .start-list { display:grid; }
    .start-list-item { width:100%; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:14px; padding:12px 14px; border:0; border-bottom:1px solid var(--border); background:#fff; text-align:left; cursor:pointer; }
    .start-list-item:last-child { border-bottom:0; }
    .start-list-item:hover { background:var(--subtle); }
    .start-list-main { min-width:0; }
    .start-list-main strong,.start-list-main span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .start-list-main strong { font-size:13px; }
    .start-list-main span,.start-list-side { color:var(--muted); font-size:12px; }
    .start-empty { padding:24px 14px; color:var(--muted); font-size:12px; text-align:center; }
    .start-loading { color:var(--muted); }
    .dataset-row-actions { display:flex; align-items:center; gap:2px; }
    .dataset-row-actions .mini-icon-btn { flex:0 0 24px; }
    .backtest-table { min-width:1040px; }
    .backtest-table th:last-child,.backtest-table td:last-child { position:sticky; right:0; width:58px; min-width:58px; background:#fff; }
    .backtest-table th:last-child { z-index:2; background:var(--subtle); }
    .backtest-table td:last-child { z-index:1; }
    .backtest-table tbody tr:hover td:last-child { background:#f6f8fa; }
    .backtest-table .dataset-row-actions { flex-wrap:nowrap; justify-content:flex-start; }
    .backtest-table th.backtest-drawdown-column { min-width:84px; white-space:nowrap; }
    #strategyRunNodeDetail .backtest-table { min-width:760px; table-layout:fixed; }
    #strategyRunNodeDetail .backtest-table th,
    #strategyRunNodeDetail .backtest-table td { padding:8px 10px; overflow:hidden; text-overflow:ellipsis; }
    #strategyRunNodeDetail .backtest-table th:nth-child(1) { width:15%; }
    #strategyRunNodeDetail .backtest-table th:nth-child(2) { width:21%; }
    #strategyRunNodeDetail .backtest-table th:nth-child(3) { width:11%; }
    #strategyRunNodeDetail .backtest-table th:nth-child(4) { width:11%; }
    #strategyRunNodeDetail .backtest-table th:nth-child(5) { width:10%; }
    #strategyRunNodeDetail .backtest-table th:nth-child(6) { width:16%; }
    #strategyRunNodeDetail .backtest-table th:nth-child(7) { width:9%; min-width:76px; }
    #strategyRunNodeDetail .backtest-table th:nth-child(8) { width:7%; min-width:64px; }
    #strategyRunNodeDetail .backtest-table th:nth-child(2),
    #strategyRunNodeDetail .backtest-table td:nth-child(2) { text-align:center; }
    #strategyRunNodeDetail .backtest-table th:nth-child(3),
    #strategyRunNodeDetail .backtest-table td:nth-child(3),
    #strategyRunNodeDetail .backtest-table th:nth-child(4),
    #strategyRunNodeDetail .backtest-table td:nth-child(4),
    #strategyRunNodeDetail .backtest-table th:nth-child(5),
    #strategyRunNodeDetail .backtest-table td:nth-child(5),
    #strategyRunNodeDetail .backtest-table th:nth-child(6),
    #strategyRunNodeDetail .backtest-table td:nth-child(6),
    #strategyRunNodeDetail .backtest-table th:nth-child(7),
    #strategyRunNodeDetail .backtest-table td:nth-child(7) { text-align:right; }
    #strategyRunNodeDetail .backtest-table th:nth-child(8),
    #strategyRunNodeDetail .backtest-table td:nth-child(8) { text-align:center; }
    #strategyRunNodeDetail .backtest-table .dataset-row-actions { justify-content:center; }
    #strategyRunNodeDetail .live-plan-list-table { min-width:860px; table-layout:fixed; }
    #strategyRunNodeDetail .live-plan-list-table th,
    #strategyRunNodeDetail .live-plan-list-table td { padding:9px 10px; overflow:hidden; text-overflow:ellipsis; }
    #strategyRunNodeDetail .live-plan-list-table th:nth-child(1) { width:18%; }
    #strategyRunNodeDetail .live-plan-list-table th:nth-child(2) { width:8%; }
    #strategyRunNodeDetail .live-plan-list-table th:nth-child(3) { width:15%; }
    #strategyRunNodeDetail .live-plan-list-table th:nth-child(4) { width:11%; }
    #strategyRunNodeDetail .live-plan-list-table th:nth-child(5) { width:10%; }
    #strategyRunNodeDetail .live-plan-list-table th:nth-child(6) { width:15%; }
    #strategyRunNodeDetail .live-plan-list-table th:nth-child(7) { width:10%; }
    #strategyRunNodeDetail .live-plan-list-table th:nth-child(8) { width:8%; }
    #strategyRunNodeDetail .live-plan-list-table th:nth-child(9) { width:8%; }
    #strategyRunNodeDetail .live-plan-list-table th:nth-child(n+2),
    #strategyRunNodeDetail .live-plan-list-table td:nth-child(n+2) { text-align:center; }
    .live-plan-list-name { display:block; }
    .live-plan-list-id { display:block; margin-top:2px; color:var(--muted); font-size:11px; }
    .strategy-node-detail-head.live-plan-list-head { align-items:flex-end; }
    .strategy-node-detail-head.live-plan-list-head > .btn { align-self:flex-end; margin-bottom:-1px; }
    .live-plan-date-range { display:inline-grid; gap:2px; text-align:left; line-height:1.35; }
    .live-plan-date-range span { display:block; white-space:nowrap; }
    .live-plan-backtest-id { display:block; max-width:100%; margin:2px auto 0; overflow:hidden; border:0; padding:0; background:transparent; color:var(--blue); font:inherit; font-size:11px; cursor:pointer; white-space:nowrap; text-overflow:ellipsis; }
    .live-plan-backtest-id:hover { text-decoration:underline; }
    .live-plan-backtest-twr { display:block; color:var(--text); font-size:inherit; white-space:nowrap; }
    #strategyRunNodeDetail .live-plan-list-table .dataset-row-actions { justify-content:center; flex-wrap:nowrap; }
    .favorite-dataset-btn { color:#8c959f; border:0; background:transparent; }
    .favorite-dataset-btn svg { width:16px; height:16px; display:block; fill:none; stroke:currentColor; stroke-width:1.25; stroke-linejoin:round; }
    .favorite-dataset-btn:hover { color:var(--text); border-color:transparent; background:var(--subtle); }
    .favorite-dataset-btn.is-favorite { color:#bf8700; }
    .favorite-dataset-btn.is-favorite svg { fill:currentColor; stroke:currentColor; }
    .favorites-section { margin-top:24px; }
    .favorites-section:first-of-type { margin-top:0; }
    .favorites-table .favorite-name { border:0; padding:0; background:transparent; color:var(--blue); font-weight:600; cursor:pointer; text-align:left; }
    .favorites-table .favorite-name:hover { text-decoration:underline; }
    .favorites-table th:last-child { width:52px; }
    .favorites-empty { color:var(--muted); font-size:13px; }
    #browseChartCanvas { display:block; width:100%; height:250px; }
    .syncer-row { display:flex; justify-content:flex-start; margin-top:12px; }
    .syncer-toggle { display:inline-flex; align-items:center; gap:6px; border:0; padding:4px 0 6px; background:transparent; color:#98a0ac; font:inherit; font-size:14px; line-height:20px; font-weight:600; cursor:pointer; user-select:none; }
    .syncer-toggle:hover { color:#2f7de1; }
    .syncer-arrow { width:10px; height:10px; display:inline-flex; align-items:center; justify-content:center; color:currentColor; }
    .syncer-arrow::before { content:''; width:6px; height:6px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(-45deg); transition:transform .2s; }
    .syncer-toggle[aria-expanded="true"] .syncer-arrow::before { transform:rotate(45deg); }
    .syncer-code-panel { margin-top:8px; }
    .syncer-code-panel pre { margin:0; padding:14px 16px; max-height:360px; overflow:auto; white-space:pre; font:12px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace; background:var(--subtle); }
    .operation-report { width:100%; }
    .operation-report-summary { display:flex; align-items:center; gap:9px; margin-bottom:12px; }
    .operation-report-status { display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:600; }
    .operation-report-status::before { content:''; width:7px; height:7px; border-radius:50%; background:currentColor; }
    .operation-report-status.ok { color:var(--green); }
    .operation-report-status.error { color:var(--red); }
    .operation-report-status.running { color:var(--blue); }
    .operation-report-id { color:var(--muted); font:11px/1.4 ui-monospace,SFMono-Regular,Consolas,monospace; }
    .operation-report-grid { display:grid; grid-template-columns:110px minmax(0,1fr) 110px minmax(0,1fr); gap:8px 14px; font-size:13px; }
    .operation-report-grid dt { color:var(--muted); }
    .operation-report-grid dd { margin:0; overflow-wrap:anywhere; }
    .sync-report-dialog-body .operation-report-grid { grid-template-columns:110px minmax(0,1fr); }
    .operation-report-detail { margin-top:12px; padding:10px 12px; border-radius:6px; background:var(--subtle); white-space:pre-wrap; overflow-wrap:anywhere; font:12px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace; }
    .operation-report-detail.error { background:#ffebe9; color:#82071e; }
    .operation-report-empty { color:var(--muted); font-size:13px; }
    .pager { display:flex; justify-content:flex-end; align-items:center; gap:10px; padding:12px; border-top:1px solid var(--border); flex-wrap:wrap; }
    .pager-link,.pager-pages button,.pager-jump button { border:0; padding:2px 3px; background:transparent; color:var(--blue); font:inherit; font-size:13px; cursor:pointer; }
    .pager-link:hover:not(:disabled),.pager-pages button:hover,.pager-jump button:hover { text-decoration:underline; }
    .pager-link:disabled { color:#8c959f; cursor:default; }
    .pager-pages { display:flex; align-items:center; gap:7px; }
    .pager-pages button[aria-current="page"] { color:var(--text); font-weight:700; cursor:default; text-decoration:none; }
    .pager-ellipsis { color:var(--muted); }
    .pager-jump { display:flex; align-items:center; gap:5px; color:var(--muted); font-size:12px; }
    .pager-jump input { width:54px; height:28px; border:1px solid var(--border); border-radius:5px; padding:3px 6px; text-align:center; }
	.row-name { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; border:0;background:none;padding:0;color:var(--blue);font-weight:600;cursor:pointer;text-align:left; }
	.row-name-line { min-width:0; display:flex; align-items:center; gap:6px; }
    .edit-name-btn { width:26px; height:26px; display:inline-grid; place-items:center; border:0; border-radius:5px; background:transparent; color:var(--muted); cursor:pointer; font-size:15px; }
    .edit-name-btn:hover { color:var(--text); background:var(--subtle); }
    .inline-name-editing { outline:none; cursor:text; background:#fff; box-shadow:inset 0 -2px var(--blue); }
    .row-name.inline-name-editing,.strategy-tree-select strong.inline-name-editing { overflow:visible; text-overflow:clip; }
    .delete-dataset-btn,.delete-strategy-btn { color:var(--muted); border-color:transparent; background:transparent; }
    .delete-dataset-btn svg,.delete-strategy-btn svg { width:16px; height:16px; display:block; fill:currentColor; }
    .delete-dataset-btn:hover,.delete-strategy-btn:hover { color:var(--red); background:#ffebe9; border-color:transparent; }
    .log-meta { display:grid; grid-template-columns:110px 1fr; gap:9px 12px; font-size:13px; }
    .log-message { margin-top:14px; padding:12px; min-height:70px; white-space:pre-wrap; overflow-wrap:anywhere; border:1px solid var(--border); border-radius:6px; background:var(--subtle); font:12px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace; }
    .create-dataset { max-width:900px; }
    .create-intro { margin-bottom:28px; }
    .step-flow { position:relative; margin-left:12px; padding-left:36px; }
    .step-flow::before { content:""; position:absolute; left:0; top:18px; bottom:24px; width:2px; background:var(--border); }
    .step-block { position:relative; padding:0 0 34px; }
    .step-number { position:absolute; z-index:1; left:-49px; top:-4px; width:28px; height:28px; display:grid; place-items:center; border-radius:50%; background:var(--subtle); color:var(--muted); font-size:12px; border:1px solid var(--border); box-shadow:0 0 0 3px #fff; }
    .step-block h2 { margin:0 0 14px; font-size:18px; }
    .step-card { border:0; border-radius:0; padding:0; background:transparent; }
    .discovery-input { width:100%; min-height:calc(4.5em + 22px); height:auto; resize:none; overflow-y:hidden; border:1px solid var(--border); border-radius:6px; padding:10px 12px; font:inherit; line-height:1.5; }
    .discovery-input:focus, .discovery-input:focus-visible { outline:none; border-color:var(--blue); box-shadow:0 0 0 3px rgba(9,105,218,.15); }
    .discovery-input:disabled { color:var(--muted); background:var(--subtle); cursor:wait; }
    .candidate-list { display:grid; gap:8px; margin-top:14px; }
    .candidate-option { width:100%; display:flex; align-items:flex-start; justify-content:space-between; gap:14px; padding:12px; text-align:left; border:1px solid var(--border); border-radius:7px; background:#fff; cursor:pointer; }
    .candidate-option.selected { border-color:var(--blue); box-shadow:0 0 0 1px var(--blue); background:var(--blue-soft); }
    .candidate-option small { color:var(--muted); display:block; margin-top:3px; }
    .candidate-title-row { display:flex; align-items:center; flex-wrap:wrap; gap:7px; }
    .candidate-origin { display:inline-flex; align-items:center; min-height:20px; padding:1px 7px; border:1px solid; border-radius:999px; font-size:11px; font-weight:600; line-height:1.4; }
    .candidate-origin.local { color:#1a7f37; background:#dafbe1; border-color:#82e596; }
    .candidate-origin.internet { color:#8250df; background:#fbefff; border-color:#d8b9ff; }
    .discovery-alternative { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:11px 12px; border:1px dashed var(--border); border-radius:7px; background:var(--subtle); }
    .discovery-alternative span { color:var(--muted); font-size:12px; }
    #analysisMessage .analysis-search-link { border:0; padding:0; background:transparent; color:var(--blue); font:inherit; cursor:pointer; }
    #analysisMessage .analysis-search-link:hover,#analysisMessage .analysis-search-link:focus-visible { color:#0550ae; text-decoration:underline; outline:none; }
    .sample-wrap { margin-top:16px; }
    .sample-title-copy { display:flex; flex-direction:column; gap:0; }
    .sample-title-copy h2 { margin:0; padding:0; font-size:14px; line-height:20px; }
    .sample-title-copy #sampleMeta { margin:0; padding:0; line-height:16px; }
    .crawler-code-details { margin-top:12px; }
    .crawler-code-details > summary { display:inline-flex; align-items:center; gap:6px; padding:4px 0 6px; list-style:none; color:#98a0ac; font-size:14px; line-height:20px; font-weight:600; cursor:pointer; user-select:none; }
    .crawler-code-details > summary::-webkit-details-marker { display:none; }
    .crawler-code-details > summary::before { content:''; width:6px; height:6px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(-45deg); transition:transform .2s; }
    .crawler-code-details[open] > summary::before { transform:rotate(45deg); }
    .crawler-code-details > summary:hover,.crawler-code-details > summary:focus-visible { color:#2f7de1; outline:none; }
    .llm-stream { margin-top:12px; border:1px solid var(--border); border-radius:6px; background:var(--subtle); overflow:hidden; }
    .llm-stream-head { width:100%; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:5px 7px 5px 10px; border-bottom:1px solid transparent; color:var(--muted); font-size:12px; font-weight:600; line-height:1.4; }
    #llmStreamStatus { color:var(--muted); font-weight:400; }
    .llm-stream-actions { display:flex; align-items:center; gap:4px; }
    .llm-stream-action { padding:3px 7px; border:0; border-radius:5px; background:transparent; color:var(--muted); font:inherit; font-size:12px; cursor:pointer; }
    .llm-stream-action:hover:not(:disabled) { color:var(--text); background:var(--canvas-subtle); }
    .llm-stream-action:disabled { opacity:.45; cursor:not-allowed; }
    .llm-stream-latest { height:32px; padding:7px 10px; font:12px/18px ui-monospace,SFMono-Regular,Consolas,monospace; }
    .llm-stream-latest, .llm-stream pre { color:var(--muted); }
    .llm-stream-latest-clip { width:100%; height:18px; display:flex; justify-content:flex-end; overflow:hidden; white-space:nowrap; }
    .llm-stream-latest-clip span { flex:0 0 auto; }
    .llm-stream pre { display:none; margin:0; padding:10px; max-height:240px; overflow:auto; white-space:pre-wrap; overflow-wrap:anywhere; font:12px/18px ui-monospace,SFMono-Regular,Consolas,monospace; }
    .llm-stream.expanded .llm-stream-head { border-bottom-color:var(--border); }
    .llm-stream.expanded .llm-stream-latest { display:none; }
    .llm-stream.expanded pre { display:block; }
    .llm-debug { margin-top:12px; border:1px solid var(--border); border-radius:7px; background:#fff; overflow:hidden; }
    .llm-debug-title { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 12px; background:var(--subtle); border-bottom:1px solid var(--border); }
    .llm-debug-title strong { font-size:13px; }
    .llm-debug-title span { color:var(--muted); font-size:12px; }
    .llm-debug-timeline { display:grid; gap:0; max-height:560px; overflow:auto; }
    .llm-debug-entry { position:relative; padding:12px 14px 12px 30px; border-bottom:1px solid var(--border); }
    .llm-debug-entry:last-child { border-bottom:0; }
    .llm-debug-entry::before { content:""; position:absolute; left:14px; top:17px; width:7px; height:7px; border-radius:50%; background:var(--muted); }
    .llm-debug-entry.stream::before { background:var(--blue); }
    .llm-debug-entry.error::before { background:var(--red); }
    .llm-debug-entry-head { display:flex; justify-content:space-between; gap:12px; margin-bottom:7px; }
    .llm-debug-entry-head strong { font-size:12px; }
    .llm-debug-entry-head time { color:var(--muted); font-size:11px; }
    .llm-debug-entry pre { margin:0; padding:9px 10px; max-height:300px; overflow:auto; border:1px solid var(--border); border-radius:5px; background:var(--subtle); white-space:pre-wrap; overflow-wrap:anywhere; font:12px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace; }
    .llm-debug-meta { display:grid; grid-template-columns:100px minmax(0,1fr); gap:5px 12px; margin:0 0 10px; font-size:12px; }
    .llm-debug-meta dt { color:var(--muted); }
    .llm-debug-meta dd { margin:0; overflow-wrap:anywhere; }
    .llm-debug-subtitle { margin:10px 0 6px; color:var(--muted); font-size:11px; font-weight:600; text-transform:uppercase; }
    .llm-debug-search-meta { margin:0 0 10px; color:var(--muted); font-size:12px; line-height:1.55; white-space:pre-line; overflow-wrap:anywhere; }
    .llm-debug-results { display:grid; gap:8px; margin:0; padding:0; list-style:none; }
    .llm-debug-results li { padding:9px 10px; border:1px solid var(--border); border-radius:5px; font-size:12px; }
    .llm-debug-results a { display:block; margin-bottom:3px; font-weight:600; }
    .llm-debug-dialog { width:min(940px,96vw); }
    .step-form { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
    .dataset-config-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .dataset-config-grid .config-main,.dataset-config-grid .config-date { grid-column:auto; }
    .dataset-config-grid .dataset-date-shortcuts { grid-column:1 / -1; margin-top:-2px; }
    .step-locked { pointer-events:none; }
    .step-locked > :not(.step-number) { opacity:.55; }
    @media (max-width: 980px) {
      .shell { grid-template-columns: 220px minmax(0,1fr); gap: 28px; padding-inline: 20px; }
      #sidebarToggle { left:256px; }
      .form-grid { grid-template-columns: repeat(2, 1fr); }
      .start-overview,.start-recent { grid-template-columns:1fr; }
    }
    @media (max-width: 720px) {
      .topbar { padding: 0 12px; } .brand { min-width: 0; } .brand small, .global-search-wrap { display: none; }
      #sidebarToggle, .sidebar-collapsed #sidebarToggle { position:static; }
      .shell { display: block; padding: 18px 14px 40px; }
      aside { margin-bottom: 24px; } .nav-label, .sidebar-foot { display: none; }
      .nav { grid-template-columns: repeat(3,1fr); border-bottom: 1px solid var(--border); padding-bottom: 8px; }
      .nav[aria-label="主菜单"] { grid-template-columns: repeat(4,1fr); }
      .nav-submenu { display:none !important; }
      .nav button { justify-content: center; gap:6px; } .nav button.active::before { inset: auto 12px -9px; width: auto; height: 2px; }
      .nav-caret { display:none; }
      .page-head { align-items: center; } .form-grid { grid-template-columns: 1fr; }
      .table-wrap { overflow-x: auto; } .section-title { align-items: flex-start; }
      .dataset-actions { align-items:flex-start; flex-direction:column; }
      .step-form { grid-template-columns:1fr; }
      .dataset-config-grid { grid-template-columns:1fr; }
      .dataset-config-grid .config-main,.dataset-config-grid .config-date { grid-column:auto; }
      .llm-settings-grid { grid-template-columns:1fr; }
      .operation-report-grid { grid-template-columns:100px minmax(0,1fr); }
      .strategy-template-overview { grid-template-columns:1fr; gap:18px; }
      .strategy-template-figure { height:auto; }
      .strategy-template-illustration { height:auto; object-fit:contain; }
      .strategy-resource-tree { max-height:175px; }
      .strategy-tree-list-head,.strategy-template-line,.strategy-item-line { grid-template-columns:minmax(210px,250px) minmax(230px,1fr) 64px; gap:8px; }
      .strategy-item-line { align-items:flex-start; flex-wrap:wrap; }
      .drawer { width:calc(100vw - 24px); max-height:calc(100vh - 24px); border-radius:8px; }
      .drawer-body { padding:16px 12px 20px; }
      #llmSettingsForm .run-row { align-items:flex-start; }
      .start-hero { align-items:flex-start; flex-direction:column; gap:16px; }
      .start-hero-actions { width:100%; }
      .start-hero-actions .btn { flex:1; }
      .start-stats,.start-path-grid { grid-template-columns:1fr; }
      .start-stat,.start-step { border-right:0; border-bottom:1px solid var(--border); }
      .start-stat:last-child,.start-step:last-child { border-bottom:0; }
    }
    .live-plan-summary,.live-plan-actions,.live-section-title,.live-ledger-toolbar,.live-today-main,.live-today-actions,.live-form-actions { display:flex; align-items:center; justify-content:space-between; gap:14px; }
    #editLivePlan,#toggleLivePlan { display:inline-flex; align-items:center; gap:6px; background:#fff; }
    #editLivePlan:hover,#toggleLivePlan:hover { background:#f6f8fa; }
    .live-plan-button-icon { width:15px; height:15px; flex:0 0 15px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
    .live-plan-button-icon[hidden] { display:none!important; }
    #strategyLiveContent.live-create-active { padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
    .live-empty-intro h2,.live-plan-summary h2,.live-ledger h3 { margin:0 0 5px; }
    .live-create { width:100%; max-width:none; margin:0; }
    .live-empty-intro { display:flex; gap:16px; align-items:center; margin:18px 0; }
    .live-empty-intro>div { min-width:0; }
    .live-empty-intro .live-back-list { margin-left:auto; flex:0 0 auto; }
    .live-back-list { background:#fff; }
    .live-back-list:hover { background:#fff; }
    .live-radio-mark { width:48px; height:48px; display:grid; place-items:center; border-radius:50%; background:#fff1e5; color:#bc4c00; font-size:24px; }
    .live-plan-form { padding:0; }
    .live-form-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
    .live-form-grid .live-wide { grid-column:span 2; }
    .live-position-details { margin:20px 0; padding:13px 15px; border:1px solid var(--border); border-radius:8px; }
    .live-position-details summary { cursor:pointer; font-weight:600; }
    .live-position-row { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-top:15px; }
    .live-estimate-preview { margin:0 0 18px; }
    .live-estimate-preview[hidden] { display:none!important; }
    .live-backtest-overview-frame { display:block; width:100%; height:145px; border:0; background:#fff; }
    .live-trade-strategy { margin:0 0 18px; padding:16px 16px 8px; border:1px solid var(--border); border-radius:8px; background:#fff; }
    .live-trade-strategy[hidden] { display:none!important; }
    .live-trade-strategy-head { display:flex; align-items:flex-end; justify-content:space-between; gap:12px; margin-bottom:12px; padding:10px 0 0; }
    .live-trade-strategy-head h3 { margin:0; }
    .live-trade-strategy-head span { color:var(--muted); font-size:12px; }
    .live-trade-strategy-frame { display:block; width:100%; height:360px; border:0; background:#fff; }
    .live-plan-summary { display:grid; grid-template-columns:minmax(0,1fr) auto; padding:20px 22px; align-items:start; }
    .live-kicker { color:var(--muted); font-size:12px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; margin-bottom:6px; }
    .live-plan-context-row { grid-column:1/-1; min-width:0; color:var(--muted); font-size:13px; line-height:1.75; }
    .live-meta { display:flex; flex-wrap:wrap; margin:0; color:inherit; font:inherit; line-height:inherit; white-space:nowrap; }
    .live-meta>span { padding:0; border:0; border-radius:0; background:transparent; color:inherit; font:inherit; }
    .live-meta>span+span::before { content:"·"; margin:0 8px; color:#afb8c1; }
    .live-meta>span.live-meta-reference { flex-basis:100%; margin-top:0; }
    .live-meta>span.live-meta-reference::before { content:none; margin:0; }
    .live-meta-backtest-link,.live-meta-strategy-link { min-height:0; border:0; padding:0; background:transparent; color:var(--blue); font:inherit; cursor:pointer; box-shadow:none; }
    .live-meta-backtest-link:hover,.live-meta-strategy-link:hover { text-decoration:underline; }
    .live-overview-columns { display:grid; grid-template-columns:1fr; gap:16px; margin:16px 0; }
    .live-plan-summary>.live-overview-columns { grid-column:1/-1; margin:8px 0 0; padding-top:0; }
    .live-section-title { align-items:flex-start; margin-bottom:16px; }
    .live-overview-columns .live-section-title { margin-bottom:12px; padding-bottom:10px; border-bottom:1px solid var(--border); }
    .live-section-title h3 { margin:0; }
    .live-section-title>span { color:var(--muted); font-size:12px; }
    .live-metric-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:0; border:1px solid var(--border); border-radius:7px; overflow:hidden; }
    .live-metric { min-width:0; padding:15px 16px; border-right:1px solid var(--border); background:#fff; text-align:left; }
    .live-metric:last-child { border-right:0; }
    .live-metric .k { display:block; color:var(--muted); font-size:12px; margin-bottom:4px; }
    .live-metric .v { display:block; color:#1f2d3d; font-size:21px; font-weight:600; letter-spacing:-.4px; overflow:hidden; text-overflow:ellipsis; }
    .live-metric .sub { min-height:15px; margin-top:3px; color:#9aa3af; font-size:11px; font-weight:400; }
    .live-metric .up { color:#d9363e; }
    .live-metric .down { color:#00b42a; }
    .live-metric-unit { margin-top:5px; color:#9aa3af; font-size:12px; }
    .live-notice { color:var(--muted); font-size:11px; margin:14px 0 0; }
    .live-today { margin:16px 0; padding:22px; border:1px solid #bfdadc; border-left:6px solid #1f883d; border-radius:9px; background:#f6fbf8; }
    .live-today.action-sell { border-left-color:#cf222e; background:#fff8f8; }
    .live-today.action-hold { border-left-color:#8c959f; background:#f6f8fa; }
    .live-today h2 { margin:0 0 7px; font-size:25px; }
    .live-today p { margin:0 0 5px; }
    .live-today small { color:var(--muted); }
    .live-signal-badge { width:80px; height:80px; border-radius:18px; display:grid; place-items:center; background:#1f883d; color:#fff; font-size:28px; font-weight:800; }
    .action-sell .live-signal-badge { background:#cf222e; }
    .action-hold .live-signal-badge { background:#8c959f; }
    .live-today-actions { justify-content:flex-end; margin-top:16px; }
    .live-visualization { margin-top:16px; padding:18px; }
    .live-visualization-frame { display:block; width:100%; height:820px; border:0; background:#fff; }
    .live-ledger { margin-top:16px; }
    .live-ledger-toolbar { margin-bottom:12px; }
    .live-ledger-toolbar h3 { margin:0; }
    .live-ledger-toolbar>div:last-child { display:flex; gap:8px; }
    .live-ledger-table { min-width:920px; table-layout:fixed; }
    .live-ledger-row-not-executed td { background:#f6f8fa; color:#8c959f; }
    .live-ledger-row-not-executed .mini-icon-btn { color:#8c959f; }
    .live-ledger-table th,.live-ledger-table td { padding:8px; overflow:hidden; text-overflow:ellipsis; }
    .live-ledger-table th:last-child,.live-ledger-table td:last-child { width:68px; text-align:center; }
    .live-action-buttons { display:flex; justify-content:center; gap:2px; }
    .live-action-buttons .mini-icon-btn { width:24px; height:24px; min-height:24px; padding:0; border-color:transparent; background:transparent; color:var(--muted); box-shadow:none; }
    .live-action-buttons .mini-icon-btn svg { display:block; width:16px; height:16px; fill:currentColor; }
    .live-action-buttons .mini-icon-btn:hover { color:var(--text); background:var(--subtle); border-color:transparent; }
    .live-action-buttons .delete-dataset-btn:hover { color:var(--red); background:#ffebe9; }
    .live-ledger-total td { border-top:2px solid var(--border); background:var(--subtle); font-weight:700; }
    .live-dialog { width:min(640px,calc(100vw - 32px))!important; }
    .live-dialog-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
    .live-dialog-grid .wide { grid-column:1/-1; }
    .auth-gate { position:fixed; inset:0; z-index:1000; display:grid; place-items:center; padding:24px; background:linear-gradient(145deg,#f6f8fa,#fff8f6); }
    .auth-gate[hidden] { display:none; }
    .auth-card { width:min(420px,100%); max-height:calc(100vh - 48px); overflow:auto; padding:30px; border:1px solid var(--border); border-radius:14px; background:#fff; box-shadow:0 18px 50px rgba(31,35,40,.12); }
    .auth-brand { display:flex; align-items:center; gap:12px; margin-bottom:24px; }.auth-brand img{width:38px;height:38px}.auth-brand h1{font-size:20px;margin:0}.auth-brand p{margin:3px 0 0;color:var(--muted);font-size:13px}
    .auth-form { display:grid; gap:14px; }.auth-form[hidden]{display:none!important}.auth-form h2{margin:0;font-size:18px}.auth-form>p{margin:-5px 0 2px;color:var(--muted);font-size:13px}.auth-error{min-height:20px;color:var(--red);font-size:13px;margin:0!important}
    .account-popover { position:fixed; z-index:300; right:16px; top:58px; width:280px; padding:14px; background:#fff; border:1px solid var(--border); border-radius:10px; box-shadow:0 12px 30px rgba(31,35,40,.14); }.account-popover[hidden]{display:none}.account-popover small{display:block;color:var(--muted);margin:3px 0 12px}.account-name-row{display:flex;align-items:center;gap:5px;height:25px}.account-name-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-name-input{display:block;min-width:0;flex:1;height:25px;padding:2px 3px;margin:0;border:1px solid var(--accent);border-radius:4px;background:#fff;color:var(--text);font:inherit;font-weight:700;outline:none;box-shadow:0 0 0 2px rgba(9,105,218,.15)}.account-name-input[hidden]{display:none!important}.account-name-edit{width:24px;height:24px;padding:4px;border:0;background:transparent;color:var(--muted);flex:0 0 24px}.account-name-edit:hover{color:var(--text);background:var(--subtle)}.account-name-edit svg{display:block;width:15px;height:15px}.account-actions{display:grid;gap:7px}
    #adminUsersOverlay{align-items:flex-start;padding-top:64px}.admin-users-dialog{width:min(820px,calc(100vw - 32px))!important;height:auto!important;max-height:calc(100vh - 96px)}.admin-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin:-4px 0 18px}.admin-tab{appearance:none;border:0;border-bottom:2px solid transparent;background:transparent;padding:10px 16px;color:var(--muted);font-weight:600;cursor:pointer}.admin-tab:hover{color:var(--text)}.admin-tab.active{color:var(--text);border-bottom-color:var(--accent)}.admin-tab-panel[hidden]{display:none!important}.invite-row{display:grid;grid-template-columns:minmax(120px,180px) auto;gap:10px;align-items:end;margin-bottom:18px}.invite-result{padding:10px;background:var(--subtle);border-radius:7px;word-break:break-all;margin-bottom:14px}.admin-user-list{display:block;overflow:visible;border-top:1px solid var(--border)}.admin-user-row{display:flex;gap:12px;align-items:center;min-height:40px;padding:8px 4px;border:0;border-bottom:1px solid var(--border);border-radius:0;white-space:nowrap}.admin-user-row>div:first-child{display:flex;align-items:center;gap:8px;min-width:0;overflow:hidden;flex:1}.admin-user-row strong{flex:0 0 auto}.admin-user-row small{display:inline;min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--muted);margin:0}.admin-user-actions{display:flex;gap:6px;margin-left:auto}.invitation-list-toolbar{display:flex;justify-content:flex-end;align-items:center;height:32px}.refresh-invitations{width:28px;height:28px;padding:5px;border-color:transparent;background:transparent;color:var(--muted)}.refresh-invitations:hover{color:var(--text);background:var(--subtle)}.refresh-invitations svg{display:block;width:16px;height:16px;fill:currentColor}.refresh-invitations.is-loading svg{animation:invitation-refresh-spin .7s linear infinite}@keyframes invitation-refresh-spin{to{transform:rotate(360deg)}}.invitation-list{max-height:480px;overflow:auto;border-top:1px solid var(--border)}.invitation-list-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;min-height:42px;padding:8px 4px;border-bottom:1px solid var(--border)}.invitation-list-row.is-inactive{color:var(--muted);background:var(--subtle)}.invitation-summary{display:flex;align-items:center;gap:12px;min-width:0}.invitation-code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.04em;white-space:nowrap}.invitation-meta{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:12px}.invitation-status{font-size:12px;font-weight:600;white-space:nowrap}.copy-code-btn{width:28px;height:28px;padding:5px;border-color:transparent;background:transparent;color:var(--muted)}.copy-code-btn:hover{color:var(--text);background:var(--subtle)}.copy-code-btn svg{display:block;width:16px;height:16px;fill:currentColor}.admin-activity-list{max-height:480px;overflow:auto;border-top:1px solid var(--border)}.admin-activity-row{display:flex;align-items:center;gap:8px;min-height:40px;padding:8px 4px;border-bottom:1px solid var(--border);white-space:nowrap;overflow:hidden}.admin-activity-row strong{flex:0 0 auto}.admin-activity-action{flex:0 0 auto;font-weight:600}.admin-activity-meta{min-width:0;margin-left:auto;overflow:hidden;text-overflow:ellipsis;color:var(--muted);font-size:12px}.admin-users-dialog .dialog-body{display:block;overflow:auto}.admin-tab-panel{min-height:0}.admin-tab-panel:not([hidden]){display:block}.admin-tab-panel .admin-user-list,.admin-tab-panel .invitation-list,.admin-tab-panel .admin-activity-list{max-height:none;overflow:visible}.auth-switch{width:100%}
    body.member #settingsMenu,body.member #settingsSubmenu,body.member #batchDeleteDatasets,body.member #datasetRows .delete-dataset-btn,body.member #datasetRows .edit-name-btn,body.member .template-admin-only{display:none!important}
    @media(max-width:900px){.live-form-grid,.live-position-row{grid-template-columns:1fr 1fr}.live-overview-columns{grid-template-columns:1fr}.live-metric-grid{grid-template-columns:1fr 1fr}.live-metric:nth-child(2n){border-right:0}.live-metric:nth-child(n+3){border-top:1px solid var(--border)}.live-plan-summary{grid-template-columns:1fr}.live-plan-actions{justify-content:flex-start;flex-wrap:wrap}.live-meta{white-space:normal}.live-today-main,.live-ledger-toolbar{align-items:flex-start;flex-direction:column}}
    .admin-user-actions .btn:disabled{display:none}
