.auth-screen{background:var(--bg);flex-direction:column;min-height:100%;display:flex}.auth-screen-bar{align-items:center;gap:var(--sp-2);height:48px;padding:0 var(--sp-3);border-bottom:1px solid var(--border);background:var(--surface);display:flex}.auth-screen-main{padding:var(--sp-6) var(--sp-4);flex:auto;justify-content:center;align-items:center;display:flex}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:min(400px,100%);box-shadow:var(--shadow);padding:var(--sp-5)}.auth-card .brand{margin-bottom:var(--sp-4)}.auth-card h1{font-size:var(--fs-lg);margin-bottom:var(--sp-2)}.auth-card-hint{margin:0 0 var(--sp-4);font-size:var(--fs-sm);color:var(--text-muted);line-height:1.55}.auth-card .field:last-of-type{margin-bottom:var(--sp-4)}.auth-section+.auth-section{margin-top:var(--sp-5);padding-top:var(--sp-4);border-top:1px solid var(--border)}.auth-section h4{font-size:var(--fs-md);margin-bottom:var(--sp-2)}.auth-status-row{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3);font-size:var(--fs-sm);color:var(--text-muted);display:flex}.auth-status-row strong{color:var(--text);font-weight:600}.auth-section .toolbar{margin-top:var(--sp-3)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.card-header{justify-content:space-between;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border);background:var(--surface-2);display:flex}.card-header h2,.card-header h3{font-size:var(--fs-md);letter-spacing:.01em;font-weight:600}.card-body{padding:var(--sp-4)}.btn{justify-content:center;align-items:center;gap:var(--sp-2);min-height:var(--h-md);padding:0 var(--sp-3);border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font-size:var(--fs-md);cursor:pointer;white-space:nowrap;transition:background var(--dur-1) var(--ease), border-color var(--dur-1) var(--ease), color var(--dur-1) var(--ease), box-shadow var(--dur-1) var(--ease), transform var(--dur-1) var(--ease);font-weight:500;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-2);border-color:var(--text-faint)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg);box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn-danger{border-color:color-mix(in srgb, var(--danger) 45%, transparent);color:var(--danger);background:0 0}.btn-danger:hover:not(:disabled){background:var(--danger-bg);border-color:var(--danger)}.btn-ghost{color:var(--text-muted);background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text);border-color:#0000}.btn-sm{min-height:var(--h-sm);padding:0 var(--sp-2);font-size:var(--fs-sm);gap:var(--sp-1)}.btn-icon{width:var(--h-md);min-width:var(--h-md);padding:0}.btn-icon.btn-sm{width:var(--h-sm);min-width:var(--h-sm)}.btn-block{width:100%}.btn svg{flex:none;display:block}.segmented{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);gap:2px;padding:2px;display:inline-flex}.segmented-btn{justify-content:center;align-items:center;gap:var(--sp-1);min-height:22px;padding:0 var(--sp-2);color:var(--text-muted);font-size:var(--fs-xs);cursor:pointer;transition:background var(--dur-1) var(--ease), color var(--dur-1) var(--ease);background:0 0;border:none;border-radius:3px;font-weight:600;display:inline-flex}.segmented-btn:hover:not(.active){background:var(--surface-3);color:var(--text)}.segmented-btn.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.field{gap:var(--sp-1);margin-bottom:var(--sp-3);flex-direction:column;display:flex}.field label{font-size:var(--fs-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint);font-weight:600}.field input,.field select,.field textarea{min-height:var(--h-md);padding:0 var(--sp-2);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:var(--fs-md);transition:border-color var(--dur-1) var(--ease), box-shadow var(--dur-1) var(--ease)}.field textarea{padding:var(--sp-2);min-height:72px}.field input:hover:not(:disabled),.field select:hover:not(:disabled){border-color:var(--text-faint)}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring);outline:none}.field input::placeholder,.field textarea::placeholder{color:var(--text-faint)}.field input.invalid,.field select.invalid{border-color:var(--danger)}.field input.invalid:focus,.field select.invalid:focus{box-shadow:0 0 0 3px var(--danger-bg)}.input-group{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);transition:border-color var(--dur-1) var(--ease), box-shadow var(--dur-1) var(--ease);align-items:stretch;display:flex;overflow:hidden}.input-group:hover{border-color:var(--text-faint)}.input-group:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.field .input-group input,.field .input-group select{background:0 0;border:none;border-radius:0;min-width:0}.field .input-group input:focus,.field .input-group select:focus{box-shadow:none;outline:none}.field .input-group input{flex:auto}.field .input-group select{border-left:1px solid var(--border);color:var(--text-muted);padding-right:var(--sp-1);flex:none}.field .input-group .input-unit{padding:0 var(--sp-2);border-left:1px solid var(--border);background:var(--surface-2);font-size:var(--fs-sm);color:var(--text-muted);align-items:center;display:flex}.field-row{gap:var(--sp-2);display:flex}.field-row>select,.field-row>input{flex:auto;min-width:0}.field-wide{grid-column:1/-1}.field-hint{font-size:var(--fs-xs);color:var(--text-faint);margin:0;line-height:1.45}.field-error{font-size:var(--fs-xs);color:var(--danger)}.form-grid{gap:0 var(--sp-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.form-grid-3{gap:0 var(--sp-4);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.checkbox-row{align-items:center;gap:var(--sp-2);font-size:var(--fs-md);margin-bottom:var(--sp-3);cursor:pointer;display:flex}input[type=checkbox],input[type=radio]{accent-color:var(--accent);cursor:pointer}.month-picker{gap:var(--sp-1);grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.month-chip{min-height:var(--h-sm);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-muted);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--dur-1) var(--ease), border-color var(--dur-1) var(--ease), color var(--dur-1) var(--ease);justify-content:center;align-items:center;display:flex;position:relative}.month-chip:hover{background:var(--surface-2);border-color:var(--text-faint)}.month-chip.active{border-color:var(--accent);background:var(--accent);color:var(--accent-fg);font-weight:600}.month-chip input{opacity:0;width:0;height:0;margin:0;position:absolute}.month-chip input:focus-visible+span{box-shadow:0 0 0 3px var(--accent-ring);border-radius:2px;outline:none}@media (width<=560px){.month-picker{grid-template-columns:repeat(6,minmax(0,1fr))}}.dtable-wrap{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);overflow:auto}table.dtable{font-size:var(--fs-md)}.dtable th{text-align:left;padding:var(--sp-2) var(--sp-3);color:var(--text-faint);font-weight:600;font-size:var(--fs-xs);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;z-index:1;background:var(--surface-2);box-shadow:inset 0 -1px 0 var(--border);position:sticky;top:0}.dtable td{padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border);white-space:nowrap}.dtable tbody tr:last-child td{border-bottom:none}.dtable tbody tr{transition:background var(--dur-1) var(--ease)}.dtable tbody tr:hover{background:var(--surface-2)}.dtable tbody tr:focus-visible{box-shadow:inset 0 0 0 2px var(--accent-ring);outline:none}.dtable .col-num{text-align:right;font-variant-numeric:tabular-nums}.dtable tbody tr.row-selectable td{-webkit-user-select:none;user-select:none}.dtable tbody tr.row-open{background:var(--accent-bg)}.dtable tbody tr.row-open td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.dtable tbody tr.row-static{cursor:default}.dtable tbody tr.row-expand,.dtable tbody tr.row-expand:hover{background:0 0}.dtable tbody tr.row-expand>td{white-space:normal;border-bottom:1px solid var(--border);padding:0}.dtable tbody tr.row-expand .dtable-wrap{border:none;border-radius:0}.alert-expand{padding:var(--sp-2) var(--sp-3) var(--sp-3)}.alert-expand-bar{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-2);flex-wrap:wrap;display:flex}.alerts-panel{gap:var(--sp-3);flex-direction:column;display:flex}.alerts-toolbar{flex-wrap:nowrap}.alert-composer-actions{margin-top:var(--sp-2)}.alert-row-actions,.alert-signal-summary{align-items:center;gap:var(--sp-1);flex-wrap:wrap;display:flex}.alert-row-actions{flex-wrap:nowrap}.alert-strategy{font-family:var(--mono);font-size:var(--fs-sm)}.alert-signal{min-height:22px;padding:0 var(--sp-2);border:1px solid color-mix(in srgb, var(--accent) 25%, transparent);border-radius:var(--radius-pill);background:var(--accent-bg);color:var(--accent);font-size:var(--fs-xs);align-items:center;font-weight:600;display:inline-flex}.alert-signal.op-close,.alert-signal.op-reverse,.alert-operation.op-close,.alert-operation.op-reverse{color:var(--danger)}.alert-signal.op-close,.alert-signal.op-reverse{border-color:color-mix(in srgb, var(--danger) 25%, transparent);background:var(--danger-bg)}.alert-operation{color:var(--accent);font-weight:600}.alert-no-action,.alert-summary-empty{color:var(--text-faint)}.alert-params-summary{max-width:52ch;color:var(--text-muted);font-family:var(--mono);font-size:var(--fs-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.alert-batch-progress{color:var(--text-muted);font-size:var(--fs-xs);font-variant-numeric:tabular-nums;white-space:nowrap}.alert-empty-preview{padding:var(--sp-4)}.num-pos{color:var(--success)}.num-neg{color:var(--danger)}.tabs{gap:var(--sp-1);display:flex}.tabs-bar{border-bottom:1px solid var(--border);margin-bottom:var(--sp-3)}.tab{padding:var(--sp-2) var(--sp-3);font-size:var(--fs-md);color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm) var(--radius-sm) 0 0;transition:color var(--dur-1) var(--ease), background var(--dur-1) var(--ease);background:0 0;border:none;font-weight:500;position:relative}.tab:after{content:"";left:var(--sp-2);right:var(--sp-2);height:2px;transition:background var(--dur-1) var(--ease);background:0 0;border-radius:2px 2px 0 0;position:absolute;bottom:0}.tab:hover:not(.active){color:var(--text);background:var(--surface-2)}.tab.active{color:var(--text);font-weight:600}.tab.active:after{background:var(--accent)}.badge{align-items:center;gap:var(--sp-1);padding:1px var(--sp-2);border-radius:var(--radius-pill);font-size:var(--fs-xs);white-space:nowrap;border:1px solid #0000;font-weight:600;line-height:1.6;display:inline-flex}.badge-success{background:var(--success-bg);border-color:color-mix(in srgb, var(--success) 25%, transparent);color:var(--success)}.badge-danger{background:var(--danger-bg);border-color:color-mix(in srgb, var(--danger) 25%, transparent);color:var(--danger)}.badge-warning{background:var(--warning-bg);border-color:color-mix(in srgb, var(--warning) 30%, transparent);color:var(--warning)}.badge-neutral{background:var(--surface-2);border-color:var(--border);color:var(--text-muted)}.badge-accent{background:var(--accent-bg);border-color:color-mix(in srgb, var(--accent) 25%, transparent);color:var(--accent)}.badge .dot{background:currentColor;border-radius:50%;flex:none;width:5px;height:5px}.badge-accent .dot{animation:pulse 1.8s var(--ease) infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.stat-grid{gap:var(--sp-2);grid-template-columns:repeat(auto-fill,minmax(132px,1fr));display:grid}.stat-tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--sp-2) var(--sp-3);transition:border-color var(--dur-1) var(--ease), box-shadow var(--dur-1) var(--ease)}.stat-tile:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.stat-tile-primary{background:var(--surface-2);border-color:var(--border-strong)}.stat-tile-primary .value{font-size:var(--fs-xl)}.stat-tile .label{font-size:var(--fs-xs);color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;margin-bottom:2px;font-weight:500;overflow:hidden}.stat-tile .value{font-size:var(--fs-lg);letter-spacing:-.015em;font-weight:600}.stat-tile .value.positive{color:var(--success)}.stat-tile .value.negative{color:var(--danger)}.empty-state{justify-content:center;align-items:center;gap:var(--sp-2);padding:var(--sp-6) var(--sp-5);text-align:center;color:var(--text-muted);font-size:var(--fs-md);flex-direction:column;display:flex}.empty-state-icon{background:var(--surface-2);width:40px;height:40px;color:var(--text-faint);border-radius:50%;justify-content:center;align-items:center;display:flex}.empty-state-title{color:var(--text);font-weight:600}.empty-state-hint{max-width:42ch;font-size:var(--fs-sm);color:var(--text-faint);margin:0}.spinner{border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;width:14px;height:14px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--surface-2) 25%, var(--surface-3) 37%, var(--surface-2) 63%);animation:shimmer 1.4s var(--ease) infinite;background-size:400% 100%}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}.progress-bar{background:var(--surface-3);border-radius:var(--radius-pill);height:5px;overflow:hidden}.progress-bar .fill{border-radius:var(--radius-pill);background:var(--accent);height:100%;transition:width var(--dur-3) var(--ease)}.job-log{font-family:var(--mono);font-size:var(--fs-xs);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--sp-2) var(--sp-3);white-space:pre-wrap;word-break:break-word;max-height:200px;color:var(--text-muted);line-height:1.7;overflow-y:auto}.hint-banner{align-items:flex-start;gap:var(--sp-2);background:var(--accent-bg);border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);border-left-width:3px;border-left-color:var(--accent);border-radius:var(--radius-sm);padding:var(--sp-2) var(--sp-3);font-size:var(--fs-sm);color:var(--text);margin-bottom:var(--sp-3);line-height:1.55;display:flex}.hint-banner svg{flex:none;margin-top:2px}.hint-banner .btn{flex:none;align-self:center;margin-left:auto}.hint-banner.warning{background:var(--warning-bg);border-color:color-mix(in srgb, var(--warning) 35%, transparent);border-left-color:var(--warning)}.hint-banner.danger{background:var(--danger-bg);border-color:color-mix(in srgb, var(--danger) 35%, transparent);border-left-color:var(--danger)}.toolbar{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.spacer{flex:1}.grid-2{gap:var(--sp-4);grid-template-columns:1fr 1fr;display:grid}@media (width<=900px){.grid-2,.form-grid,.form-grid-3{grid-template-columns:1fr}}.drawer-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:var(--z-backdrop);animation:fade-in var(--dur-2) var(--ease);background:#0a0a0873;position:fixed;inset:0}.drawer{background:var(--surface);border-left:1px solid var(--border);width:min(560px,100vw);z-index:var(--z-modal);box-shadow:var(--shadow-lg);animation:slide-in var(--dur-3) var(--ease);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0}.drawer-header{justify-content:space-between;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border);display:flex}.drawer-header h3{font-size:var(--fs-lg)}.drawer-body{padding:var(--sp-4);flex:1;overflow-y:auto}.drawer-footer{padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--border);background:var(--surface-2);justify-content:flex-end;align-items:center;gap:var(--sp-2);display:flex}.modal{width:min(420px, calc(100vw - 2 * var(--sp-4)));background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:var(--z-modal);animation:pop-in var(--dur-2) var(--ease);position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.modal-body{padding:var(--sp-4)}.modal-body h3{font-size:var(--fs-lg);margin-bottom:var(--sp-2)}.modal-body p{font-size:var(--fs-md);color:var(--text-muted);margin:0;line-height:1.6}.modal-footer{justify-content:flex-end;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--border);background:var(--surface-2);border-radius:0 0 var(--radius-lg) var(--radius-lg);display:flex}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-in{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}@keyframes pop-in{0%{opacity:0;transform:translate(-50%,-48%)scale(.97)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.toast-stack{right:var(--sp-4);bottom:var(--sp-4);z-index:var(--z-toast);gap:var(--sp-2);max-width:min(360px, calc(100vw - 2 * var(--sp-4)));pointer-events:none;flex-direction:column;display:flex;position:fixed}.toast{align-items:flex-start;gap:var(--sp-2);padding:var(--sp-3);border:1px solid var(--border);border-left:3px solid var(--text-faint);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-lg);font-size:var(--fs-md);pointer-events:auto;animation:toast-in var(--dur-3) var(--ease);line-height:1.5;display:flex}.toast-success{border-left-color:var(--success)}.toast-error{border-left-color:var(--danger)}.toast-info{border-left-color:var(--accent)}.toast-icon{flex:none;margin-top:1px}.toast-success .toast-icon{color:var(--success)}.toast-error .toast-icon{color:var(--danger)}.toast-info .toast-icon{color:var(--accent)}.toast-text{word-break:break-word;flex:auto;min-width:0}.toast-title{font-weight:600}.toast-message{color:var(--text-muted);font-size:var(--fs-sm)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.kbd{min-width:20px;padding:1px var(--sp-1);border:1px solid var(--border-strong);background:var(--surface-2);font-family:var(--mono);font-size:var(--fs-xs);color:var(--text-muted);white-space:nowrap;border-bottom-width:2px;border-radius:4px;justify-content:center;align-items:center;display:inline-flex}:root{--bg:#efeee9;--surface:#fcfcfb;--surface-2:#f5f4f0;--surface-3:#eceae3;--border:#e1e0d9;--border-strong:#cdccc2;--text:#16160f;--text-muted:#52514e;--text-faint:#898781;--accent:#2a78d6;--accent-hover:#2069c2;--accent-fg:#fff;--accent-bg:#2a78d61a;--accent-bg-strong:#2a78d62e;--accent-ring:#2a78d652;--danger:#cc3a3a;--danger-bg:#cc3a3a1a;--success:#0c8f3f;--success-bg:#0c8f3f1a;--warning:#a9740a;--warning-bg:#fab21929;--up:#e34948;--down:#1baf7a;--shadow-sm:0 1px 2px #18160e0f;--shadow:0 1px 2px #18160e0d, 0 2px 8px #18160e0f;--shadow-lg:0 2px 4px #18160e0f, 0 12px 32px #18160e1f;--shadow-inset:inset 0 1px 0 #fff9;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--radius-sm:5px;--radius:8px;--radius-lg:12px;--radius-pill:999px;--fs-xs:11px;--fs-sm:12px;--fs-md:13px;--fs-base:14px;--fs-lg:16px;--fs-xl:20px;--h-sm:26px;--h-md:32px;--dur-1:.11s;--dur-2:.18s;--dur-3:.28s;--ease:cubic-bezier(.2, 0, .13, 1);--z-sticky:20;--z-pop:30;--z-backdrop:40;--z-modal:41;--z-toast:60;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "PingFang SC", "Microsoft YaHei", sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#100f0e;--surface:#1a1a19;--surface-2:#232321;--surface-3:#2c2c2a;--border:#2c2c2a;--border-strong:#3d3d39;--text:#f3f2ec;--text-muted:#b3b1a8;--text-faint:#898781;--accent:#4a92ea;--accent-hover:#63a2f0;--accent-fg:#07131f;--accent-bg:#4a92ea29;--accent-bg-strong:#4a92ea42;--accent-ring:#4a92ea66;--danger:#ef6b6b;--danger-bg:#ef6b6b26;--success:#4cc77d;--success-bg:#4cc77d26;--warning:#f0b429;--warning-bg:#f0b42926;--up:#e66767;--down:#199e70;--shadow-sm:0 1px 2px #0006;--shadow:0 1px 2px #00000059, 0 2px 10px #0000004d;--shadow-lg:0 2px 6px #0006, 0 16px 40px #00000080;--shadow-inset:inset 0 1px 0 #ffffff0a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#100f0e;--surface:#1a1a19;--surface-2:#232321;--surface-3:#2c2c2a;--border:#2c2c2a;--border-strong:#3d3d39;--text:#f3f2ec;--text-muted:#b3b1a8;--text-faint:#898781;--accent:#4a92ea;--accent-hover:#63a2f0;--accent-fg:#07131f;--accent-bg:#4a92ea29;--accent-bg-strong:#4a92ea42;--accent-ring:#4a92ea66;--danger:#ef6b6b;--danger-bg:#ef6b6b26;--success:#4cc77d;--success-bg:#4cc77d26;--warning:#f0b429;--warning-bg:#f0b42926;--up:#e66767;--down:#199e70;--shadow-sm:0 1px 2px #0006;--shadow:0 1px 2px #00000059, 0 2px 10px #0000004d;--shadow-lg:0 2px 6px #0006, 0 16px 40px #00000080;--shadow-inset:inset 0 1px 0 #ffffff0a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font:var(--fs-base) / 1.5 var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none;margin:0}#root{flex-direction:column;display:flex}h1,h2,h3,h4{color:var(--text);letter-spacing:-.01em;margin:0;font-weight:600}a{color:var(--accent);-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);text-underline-offset:2px}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{box-shadow:0 0 0 3px var(--accent-ring);border-radius:var(--radius-sm);outline:none}::selection{background:var(--accent-bg-strong)}table{border-collapse:collapse;width:100%}code,pre{font-family:var(--mono)}.num,.dtable td,.stat-tile .value{font-variant-numeric:tabular-nums}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-pill);background-clip:content-box;border:3px solid #0000}::-webkit-scrollbar-thumb:hover{background:var(--text-faint);background-clip:content-box}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-corner{background:0 0}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.workspace-root{flex-direction:column;flex:auto;height:100%;min-height:0;display:flex}.workspace{grid-template-columns:1fr var(--sidebar-w,300px);grid-template-rows:1fr var(--drawer-h,360px);background:var(--bg);min-height:0;transition:grid-template-columns var(--dur-2) var(--ease), grid-template-rows var(--dur-2) var(--ease);flex:auto;display:grid}body.drawer-resizing .workspace{transition:none}.topbar{border-bottom:1px solid var(--border);background:var(--surface);z-index:var(--z-sticky);flex:none}.topbar-inner{align-items:center;gap:var(--sp-2);height:48px;padding:0 var(--sp-3);display:flex}.brand{align-items:center;gap:var(--sp-2);font-weight:650;font-size:var(--fs-md);letter-spacing:-.01em;color:var(--text);white-space:nowrap;-webkit-user-select:none;user-select:none;display:flex}.brand-mark{background:var(--accent);width:24px;height:24px;color:var(--accent-fg);box-shadow:var(--shadow-sm);border-radius:6px;justify-content:center;align-items:center;display:flex}.topbar-divider{background:var(--border);width:1px;height:20px;margin:0 var(--sp-1)}.topbar-symbol{align-items:baseline;gap:var(--sp-2);padding:3px var(--sp-2);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);font-size:var(--fs-sm);max-width:260px;display:flex}.topbar-symbol strong{font-family:var(--mono);font-size:var(--fs-md);letter-spacing:.02em;font-weight:700}.topbar-symbol-name{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.topbar-jobs,.topbar-actions{align-items:center;gap:var(--sp-2);min-width:0;display:flex}.topbar-actions{padding-left:var(--sp-1);border-left:1px solid var(--border);flex:none}.job-pill{min-width:108px;padding:3px var(--sp-2) 4px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:border-color var(--dur-1) var(--ease), background var(--dur-1) var(--ease);flex-direction:column;gap:3px;display:flex}.job-pill:hover{border-color:var(--accent);background:var(--accent-bg)}.job-pill-head{align-items:center;gap:var(--sp-1);font-size:var(--fs-xs);color:var(--text-muted);font-weight:600;display:flex}.job-pill-pct{font-variant-numeric:tabular-nums;color:var(--text);margin-left:auto}.job-pill .progress-bar{height:3px}.chart-area{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;grid-area:1/1;min-width:0;min-height:0;display:flex}.chart-toolbar{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border);background:var(--surface);flex:none;display:flex}.chart-symbol-title{align-items:baseline;gap:var(--sp-2);min-width:0;display:flex}.chart-symbol-title strong{font-family:var(--mono);font-size:var(--fs-base);letter-spacing:.02em;font-weight:700}.chart-symbol-name{color:var(--text-muted);font-size:var(--fs-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.super-chart-canvas{flex:auto;min-height:0}.drawer-resizing .super-chart-canvas{pointer-events:none}.chart-notices{padding:var(--sp-2) var(--sp-3) 0;flex:none}.chart-notices .hint-banner{margin-bottom:var(--sp-2)}.indicator-picker{position:relative}.indicator-menu{top:calc(100% + var(--sp-1));z-index:var(--z-pop);width:max-content;min-width:268px;max-width:min(440px,100vw - 32px);max-height:60vh;padding:var(--sp-1);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);animation:pop-down var(--dur-2) var(--ease);position:absolute;right:0;overflow-y:auto}@keyframes pop-down{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.indicator-menu-head{justify-content:space-between;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2) var(--sp-2);border-bottom:1px solid var(--border);font-size:var(--fs-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint);font-weight:600;display:flex}.indicator-menu-rule{margin:var(--sp-1) var(--sp-2);border-top:1px solid var(--border)}.indicator-menu-empty{padding:var(--sp-2);font-size:var(--fs-sm);color:var(--text-muted)}.indicator-row{border-radius:var(--radius-sm);transition:background var(--dur-1) var(--ease);align-items:center;display:flex}.indicator-row:hover,.indicator-row.is-editing{background:var(--surface-2)}.indicator-row-main{align-items:center;gap:var(--sp-2);min-width:0;padding:var(--sp-2);font-size:var(--fs-md);cursor:pointer;flex:auto;display:flex}.indicator-row-label{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;min-width:0;overflow:hidden}.indicator-row-params{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--fs-xs);font-variant-numeric:tabular-nums;color:var(--text-faint);flex:1 1000 auto;overflow:hidden}.indicator-row-params.is-custom{color:var(--accent)}.indicator-row-pane{font-size:var(--fs-xs);color:var(--text-faint);padding:0 var(--sp-1);border:1px solid var(--border);background:var(--surface-2);border-radius:3px;margin-left:auto}.indicator-row-edit,.indicator-row-edit-slot{margin-right:var(--sp-1);flex:none}.indicator-row-edit-slot{width:var(--h-sm)}.indicator-row-edit{opacity:0;pointer-events:none;transition:opacity var(--dur-1) var(--ease)}.indicator-row:hover .indicator-row-edit,.indicator-row:focus-within .indicator-row-edit,.indicator-row.is-editing .indicator-row-edit{opacity:1;pointer-events:auto}.indicator-row.is-broken{opacity:.6}.indicator-row.is-broken .indicator-row-main{cursor:not-allowed}.indicator-row-error{font-size:var(--fs-xs);color:var(--danger)}.indicator-params{contain:inline-size;margin:var(--sp-1) var(--sp-1) var(--sp-2);padding:var(--sp-2) var(--sp-2) var(--sp-1);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.indicator-params-grid{gap:0 var(--sp-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.indicator-params .field{margin-bottom:var(--sp-2)}.indicator-params .field label{font-family:var(--mono);letter-spacing:0;text-transform:none;color:var(--text-muted);font-weight:500}.indicator-params .field input,.indicator-params .field select{min-height:var(--h-sm);font-size:var(--fs-sm)}.indicator-params-error{margin-bottom:var(--sp-2)}.indicator-params-actions{align-items:center;gap:var(--sp-1);padding-bottom:var(--sp-1);display:flex}.sidebar{background:var(--surface);border-left:1px solid var(--border);flex-direction:column;grid-area:1/2/3;min-height:0;display:flex}.sidebar-backdrop{display:none}.sidebar-rail{align-items:center;gap:var(--sp-2);padding-top:var(--sp-2);background:var(--surface);border-left:1px solid var(--border);flex-direction:column;grid-area:1/2/3;display:flex}.sidebar-rail-count{font-size:var(--fs-xs);font-variant-numeric:tabular-nums;color:var(--accent);font-weight:700}.sidebar-header{align-items:center;gap:var(--sp-1);padding:var(--sp-2);border-bottom:1px solid var(--border);flex:none;display:flex}.search{flex:auto;align-items:center;min-width:0;display:flex;position:relative}.search-icon{left:var(--sp-2);color:var(--text-faint);pointer-events:none;display:flex;position:absolute}.sidebar-search{width:100%;min-width:0;min-height:var(--h-md);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text);font-size:var(--fs-md);transition:border-color var(--dur-1) var(--ease), box-shadow var(--dur-1) var(--ease), background var(--dur-1) var(--ease);padding:0 28px}.sidebar-search::placeholder{color:var(--text-faint)}.sidebar-search:focus{background:var(--surface);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring);outline:none}.search-clear{right:var(--sp-1);border-radius:var(--radius-pill);width:20px;height:20px;color:var(--text-faint);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex;position:absolute}.search-clear:hover{background:var(--surface-3);color:var(--text)}.search-hint{right:var(--sp-2);pointer-events:none;position:absolute}.sidebar-meta{align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-3);border-bottom:1px solid var(--border);font-size:var(--fs-xs);color:var(--text-faint);background:var(--surface-2);flex:none;display:flex}.sidebar-list{min-height:0;padding:var(--sp-1) 0;flex:auto;overflow-y:auto}.sidebar-action,.sidebar-clear{min-height:20px;padding:0 var(--sp-1);font-size:var(--fs-xs);margin:-3px 0}.sidebar-footer{border-top:1px solid var(--border);padding:var(--sp-2);gap:var(--sp-2);background:var(--surface);flex-direction:column;flex:none;display:flex}.product-row{align-items:center;gap:var(--sp-2);padding:6px var(--sp-2) 6px var(--sp-1);margin:0 var(--sp-1);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--fs-md);transition:background var(--dur-1) var(--ease);border-left:3px solid #0000;display:flex}.product-row:hover:not(.is-charted){background:var(--surface-2)}.universe-toggle{cursor:pointer;flex:none;justify-content:center;align-items:center;display:flex;position:relative}.universe-toggle input{opacity:0;width:15px;height:15px;margin:0;position:absolute;inset:0}.universe-toggle input:focus-visible+.universe-box{box-shadow:0 0 0 3px var(--accent-ring)}.universe-toggle input:disabled{cursor:not-allowed}.product-row .universe-box{border:1px solid var(--border-strong);background:var(--surface);color:#0000;width:15px;height:15px;transition:background var(--dur-1) var(--ease), border-color var(--dur-1) var(--ease), color var(--dur-1) var(--ease);border-radius:4px;flex:none;justify-content:center;align-items:center;display:flex}.product-row.is-in-universe .universe-box{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}.product-row.is-active{box-shadow:inset 0 0 0 1px var(--accent)}.product-row.is-charted{background:var(--accent-bg);border-left-color:var(--accent)}.product-row .code{font-family:var(--mono);font-weight:700;font-size:var(--fs-sm);letter-spacing:.02em;min-width:30px}.product-row .name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-muted);font-size:var(--fs-sm);flex:1;overflow:hidden}.product-row .coverage-dot{border-radius:50%;flex:none;width:6px;height:6px}.coverage-dot.is-fresh{background:var(--success)}.coverage-dot.is-stale{background:var(--warning)}.coverage-dot.is-empty{border:1px solid var(--border-strong);background:0 0}.product-row .row-actions{opacity:0;pointer-events:none;transition:opacity var(--dur-1) var(--ease);gap:2px;display:flex}.product-row:hover .row-actions,.product-row:focus-within .row-actions{opacity:1;pointer-events:auto}.product-row-skeleton{align-items:center;gap:var(--sp-2);padding:7px var(--sp-3);display:flex}.product-row-skeleton .skeleton{height:10px}.bdrawer{background:var(--surface);border-top:1px solid var(--border);border-right:1px solid var(--border);flex-direction:column;grid-area:2/1;min-height:0;display:flex;position:relative}.bdrawer-collapsed{height:40px}.bdrawer-collapsed .bdrawer-tabbar{border-bottom:none;flex:auto}.bdrawer-collapsed .tabs{align-self:stretch}.bdrawer-collapsed .tab{padding-top:var(--sp-1);padding-bottom:var(--sp-1)}.bdrawer-handle{cursor:row-resize;touch-action:none;z-index:1;background:0 0;border:none;height:9px;padding:0;position:absolute;top:-4px;left:0;right:0}.bdrawer-handle:after{content:"";border-radius:var(--radius-pill);background:var(--border-strong);opacity:0;width:44px;height:3px;transition:opacity var(--dur-1) var(--ease), background var(--dur-1) var(--ease);position:absolute;top:3px;left:50%;transform:translate(-50%)}.bdrawer-handle:hover:after,.bdrawer-handle:focus-visible:after,body.drawer-resizing .bdrawer-handle:after{opacity:1;background:var(--accent)}.bdrawer-handle:focus-visible{box-shadow:none}.bdrawer-tabbar{align-items:center;gap:var(--sp-2);padding:0 var(--sp-2);border-bottom:1px solid var(--border);background:var(--surface-2);flex:none;display:flex}.bdrawer-toggle svg{transition:transform var(--dur-2) var(--ease)}.bdrawer-toggle.is-collapsed svg{transform:rotate(180deg)}.bdrawer-body{min-height:0;padding:var(--sp-3);flex:auto;overflow:auto}.panel-split{gap:var(--sp-4);grid-template-columns:minmax(250px,300px) 1fr;align-items:start;min-height:100%;display:grid}.panel-rail{min-width:0;padding:var(--sp-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2)}.panel-main{min-width:0;min-height:0}.backtest-form{gap:var(--sp-3);flex-direction:column;display:flex}.form-section+.form-section{padding-top:var(--sp-3);border-top:1px solid var(--border)}.form-section-title{margin:0 0 var(--sp-2);color:var(--text-muted);font-size:var(--fs-xs);letter-spacing:.05em;text-transform:uppercase;font-weight:650}.field-label-row{justify-content:space-between;align-items:center;gap:var(--sp-2);display:flex}.field-label-row .btn{margin-top:calc(-1 * var(--sp-1))}.universe-chip-list{gap:var(--sp-1);margin-bottom:var(--sp-2);flex-wrap:wrap;display:flex}.universe-chip{align-items:center;gap:var(--sp-1);min-height:24px;padding:0 var(--sp-2);border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface);color:var(--text-muted);font-family:var(--mono);font-size:var(--fs-xs);cursor:pointer;display:inline-flex}button.universe-chip:hover{border-color:var(--danger);background:var(--danger-bg);color:var(--danger)}.universe-chip.is-locked{border-color:color-mix(in srgb, var(--accent) 25%, transparent);background:var(--accent-bg);color:var(--accent);cursor:default}.backtest-run-dock{margin-top:var(--sp-1);padding-top:var(--sp-3);border-top:1px solid var(--border)}.backtest-run-summary{margin-bottom:var(--sp-2);color:var(--text-muted);font-size:var(--fs-xs);flex-direction:column;gap:2px;display:flex}.backtest-run-summary .num{color:var(--text-faint)}.run-block-reason{margin:var(--sp-2) 0 0;color:var(--warning);font-size:var(--fs-xs);line-height:1.45}.job-progress-block,.result-equity,.result-details{margin-top:var(--sp-4)}.shortcut-list{gap:var(--sp-2);margin-top:var(--sp-3);flex-direction:column;display:flex}.shortcut-row{justify-content:space-between;align-items:center;gap:var(--sp-4);font-size:var(--fs-md);color:var(--text-muted);display:flex}.shortcut-keys{align-items:center;gap:var(--sp-1);flex:none;display:flex}@media (width<=900px){.workspace{grid-template-columns:1fr;grid-template-rows:1fr min(var(--drawer-h,360px), 50vh)}.sidebar-backdrop{background:color-mix(in srgb, var(--bg) 62%, transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:var(--z-backdrop);cursor:default;border:none;padding:0;display:block;position:fixed;inset:48px 0 0}.sidebar{grid-column:unset;grid-row:unset;width:min(320px,86vw);z-index:var(--z-modal);box-shadow:var(--shadow-lg);position:fixed;top:48px;bottom:0;right:0}.sidebar-rail{grid-column:unset;grid-row:unset;z-index:var(--z-pop);position:fixed;top:48px;bottom:0;right:0}.product-row .row-actions{opacity:1;pointer-events:auto}.chart-area,.bdrawer{grid-column:1}.panel-split{grid-template-columns:1fr}.topbar-symbol{max-width:150px}.topbar-symbol-name{display:none}.topbar-jobs{overflow-x:auto}.job-pill{min-width:96px}.alerts-toolbar{flex-wrap:wrap}}@media (width<=640px){.topbar-inner{gap:var(--sp-1);padding:0 var(--sp-2)}.brand-name,.topbar-divider{display:none}.topbar-actions{gap:var(--sp-1)}.bdrawer-body,.panel-rail{padding:var(--sp-2)}.alerts-toolbar .spacer{display:none}}
