.backtest-spec-sidebar,.backtest-spec-sidebar *{box-sizing:border-box}.backtest-spec-sidebar,.backtest-spec-drawer{--spec-space-2xs:.25rem;--spec-space-xs:.375rem;--spec-space-sm:.5rem;--spec-space-md:.75rem}.backtest-spec-sidebar{border:1px solid var(--accent);background:var(--accent-soft);border-radius:18px;grid-template-rows:auto minmax(0,1fr);width:100%;min-width:0;min-height:0;display:grid;overflow:hidden;box-shadow:0 8px 24px #00000014}.spec-panel-head{justify-content:space-between;align-items:center;gap:var(--spec-space-sm);border-bottom:1px solid var(--accent);padding:var(--spec-space-md);display:flex}.spec-panel-head p{color:var(--accent);margin:0;font-size:.76rem;font-weight:600}.spec-panel-head strong{color:var(--accent);letter-spacing:-.01em;font-size:1.02rem}.spec-panel-body{min-width:0;min-height:0;padding:var(--spec-space-md);align-content:start;gap:var(--spec-space-md);display:grid;overflow:hidden auto}.spec-panel-body>*{min-width:0;max-width:100%}.spec-mobile-open-btn{display:none}.spec-card{border:1px solid var(--accent);background:var(--accent-soft);width:100%;min-width:0;padding:var(--spec-space-md);gap:var(--spec-space-sm);border-radius:14px;display:grid}.spec-card h3{color:var(--accent);margin:0;font-size:.86rem;font-weight:700}.spec-card-meta{color:var(--accent);overflow-wrap:anywhere;margin:0;font-size:.74rem;line-height:1.4}.spec-fieldset{align-content:start;gap:var(--spec-space-md);border:0;min-width:0;margin:0;padding:0;display:grid}.spec-fieldset:disabled{opacity:.72}.spec-prerequisite-card{border:1px solid var(--accent);background:var(--accent-soft);padding:var(--spec-space-sm);gap:var(--spec-space-xs);border-radius:10px;display:grid}.spec-prerequisite-card p{color:var(--accent);margin:0;font-size:.72rem;line-height:1.4}.spec-prerequisite-actions{gap:var(--spec-space-xs);display:flex}.spec-prerequisite-actions button{border:1px solid var(--accent);min-height:30px;color:var(--text-strong);cursor:pointer;background:#fff;border-radius:999px;padding:0 .58rem;font-size:.72rem;font-weight:700}.spec-sync-card{border:1px solid var(--accent);padding:var(--spec-space-sm);gap:var(--spec-space-xs);background:#fff;border-radius:10px;display:grid}.spec-sync-head{justify-content:space-between;align-items:center;gap:var(--spec-space-sm);display:flex}.spec-sync-head p{color:var(--accent);overflow-wrap:anywhere;margin:0;font-size:.72rem;line-height:1.35}.spec-sync-btn{border:1px solid var(--accent);background:var(--accent-soft);min-height:30px;color:var(--text-strong);cursor:pointer;border-radius:999px;padding:0 .58rem;font-size:.7rem;font-weight:700}.spec-sync-btn:disabled{opacity:.6;cursor:not-allowed}.spec-sync-cost{border:1px solid var(--accent);background:color-mix(in srgb,var(--accent-soft)88%,#fff 12%);padding:var(--spec-space-sm);gap:var(--spec-space-xs);border-radius:10px;display:grid}.spec-sync-cost-title{color:var(--accent);margin:0;font-size:.72rem;font-weight:700}.spec-sync-cost-grid{gap:var(--spec-space-xs);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.spec-sync-cost-grid p{border:1px solid var(--accent);background:#fff;border-radius:8px;gap:.12rem;margin:0;padding:.3rem .34rem;display:grid}.spec-sync-cost-grid span{color:var(--accent);font-size:.64rem}.spec-sync-cost-grid strong{color:var(--text-strong);overflow-wrap:anywhere;font-size:.7rem;line-height:1.35}@media (max-width:480px){.spec-sync-cost-grid{grid-template-columns:1fr}}.spec-prompt-preview{border:1px solid var(--accent);padding:var(--spec-space-md);gap:var(--spec-space-md);background:#fff;border-radius:10px;min-width:0;display:grid;overflow-x:hidden}.spec-prompt-preview-head{justify-content:space-between;align-items:center;gap:var(--spec-space-sm);row-gap:var(--spec-space-xs);flex-wrap:wrap;display:flex}.spec-prompt-preview-title{color:var(--accent);margin:0;font-size:.76rem;font-weight:700;line-height:1.4}.spec-prompt-preview-copy{border:1px solid var(--accent);background:var(--accent-soft);min-height:30px;color:var(--text-strong);white-space:nowrap;cursor:pointer;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;padding:0 .68rem;font-size:.72rem;font-weight:700;line-height:1;display:inline-flex}.spec-prompt-preview-meta{color:var(--accent);white-space:normal;overflow-wrap:anywhere;word-break:normal;min-width:0;max-width:100%;margin:0;font-size:.72rem;line-height:1.5}.spec-prompt-summary{gap:var(--spec-space-sm);min-width:0;max-width:100%;display:grid}.spec-prompt-summary-section{border:1px solid var(--accent);background:color-mix(in srgb,var(--accent-soft)70%,#fff 30%);padding:var(--spec-space-xs)var(--spec-space-sm);gap:var(--spec-space-xs);border-radius:8px;min-width:0;max-width:100%;display:grid}.spec-prompt-summary-section h4{color:var(--accent);margin:0;font-size:.7rem;font-weight:800}.spec-prompt-summary-list,.spec-prompt-summary-section ul{gap:var(--spec-space-2xs);min-width:0;max-width:100%;margin:0;padding:0;list-style:none;display:grid}.spec-prompt-summary-item,.spec-prompt-summary-section li{color:var(--text-strong);overflow-wrap:anywhere;word-break:normal;grid-template-columns:.56rem minmax(0,1fr);align-items:start;column-gap:.42rem;min-width:0;max-width:100%;margin:0;font-size:.68rem;line-height:1.4;display:grid}.spec-prompt-summary-section li:before{content:"•";color:currentColor;line-height:1.45;transform:translateY(-.01rem)}.spec-prompt-summary-bullet{color:currentColor;line-height:1.45;transform:translateY(-.01rem)}.spec-prompt-summary-item>span:last-child{white-space:normal;overflow-wrap:anywhere;word-break:break-word;min-width:0;max-width:100%;display:block}.spec-prompt-advanced{border:1px dashed var(--accent);padding:var(--spec-space-sm)var(--spec-space-md);gap:var(--spec-space-md);background:#fff;border-radius:10px;display:grid}.spec-prompt-advanced summary{cursor:pointer;color:var(--accent);padding-block:var(--spec-space-2xs);align-items:center;gap:var(--spec-space-xs);margin:0;font-size:.74rem;font-weight:700;line-height:1.45;list-style:none;display:flex}.spec-prompt-advanced:not([open]){gap:0}.spec-prompt-advanced summary::-webkit-details-marker{display:none}.spec-prompt-advanced summary::marker{content:""}.spec-prompt-advanced summary:before{content:"▶";color:currentColor;transform-origin:50%;flex-shrink:0;font-size:.78em;line-height:1;transition:transform .14s}.spec-prompt-advanced[open] summary:before{transform:rotate(90deg)}.spec-prompt-preview pre{border:1px solid var(--accent);background:color-mix(in srgb,var(--accent-soft)80%,#fff 20%);max-height:220px;color:var(--text-strong);padding:var(--spec-space-sm);white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;border-radius:10px;margin:0;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.69rem;line-height:1.45;overflow:hidden auto}.spec-field-row{gap:var(--spec-space-xs);min-width:0;display:grid}.spec-field-row-head{justify-content:space-between;align-items:center;gap:var(--spec-space-sm);z-index:1;min-width:0;color:var(--accent);font-size:.75rem;font-weight:600;display:flex;position:relative}.spec-field-row-head>span:first-child{overflow-wrap:anywhere;min-width:0}.spec-field-row-head>.spec-field-status{flex-shrink:0}.spec-field-row input,.spec-field-row select,.spec-field-row textarea{border:1px solid var(--accent);background:var(--error-bg);width:100%;min-width:0;max-width:100%;min-height:34px;color:var(--error-fg);border-radius:10px;padding:.36rem .46rem;font-size:.82rem}.spec-field-row textarea{resize:vertical;min-height:68px}.spec-symbol-combobox{position:relative}.spec-symbol-input{width:100%;padding-right:4.8rem!important}.spec-combobox-actions{align-items:center;gap:.18rem;display:inline-flex;position:absolute;top:50%;right:.3rem;transform:translateY(-50%)}.spec-combobox-clear{color:var(--accent);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:.14rem .2rem;font-size:.84rem;line-height:1}.spec-combobox-clear:hover{background:var(--accent-soft)}.spec-symbol-toggle{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:.16rem .25rem;font-size:.9rem;line-height:1}.spec-symbol-menu{z-index:16;border:1px solid var(--accent);background:var(--error-bg);border-radius:12px;max-height:320px;margin:0;padding:.28rem;list-style:none;position:absolute;top:calc(100% + .24rem);left:0;right:0;overflow-y:auto;box-shadow:0 10px 24px #0000001f}.spec-symbol-option{background:var(--error-bg);width:100%;color:var(--error-fg);text-align:left;cursor:pointer;border:0;border-radius:9px;gap:.08rem;padding:.4rem .46rem;display:grid}.spec-symbol-option strong{font-size:.82rem;font-weight:700}.spec-symbol-option span{color:var(--accent);font-size:.72rem}.spec-symbol-empty{color:var(--accent);padding:.46rem .52rem;font-size:.73rem}.spec-datetime-box{border:1px solid var(--accent);background:var(--error-bg);padding:var(--spec-space-sm);gap:var(--spec-space-sm);border-radius:10px;display:grid}.spec-datetime-row{gap:var(--spec-space-sm);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.spec-datetime-row input{border:1px solid var(--accent);background:var(--accent-soft);width:100%;min-width:0;min-height:34px;color:var(--text-strong);border-radius:9px;padding:.34rem .42rem;font-size:.8rem}.spec-datetime-quick{gap:var(--spec-space-xs);flex-wrap:wrap;display:flex}.spec-datetime-chip{border:1px solid var(--accent);background:var(--accent-soft);color:var(--text-strong);cursor:pointer;border-radius:999px;padding:.16rem .52rem;font-size:.7rem;font-weight:700}.spec-datetime-chip:disabled{cursor:not-allowed;opacity:.52;background:var(--accent-soft)}.spec-datetime-chip.danger{border-color:var(--error-bg);background:var(--error-bg);color:var(--error-fg)}.spec-datetime-hint{color:var(--accent);margin:0;font-size:.68rem}.spec-number-input-wrap{position:relative}.spec-indicator-panel,.spec-ai-model-panel{border:1px solid var(--accent);background:color-mix(in srgb,var(--accent-soft)88%,#fff 12%);padding:var(--spec-space-sm);gap:var(--spec-space-sm);border-radius:10px;width:100%;min-width:0;max-width:100%;display:grid;overflow-x:hidden}.spec-ai-model-row{gap:var(--spec-space-xs);width:100%;min-width:0;max-width:100%;display:grid}.spec-ai-model-row>span{color:var(--accent);font-size:.68rem}.spec-ai-model-row select{width:100%;min-width:0;max-width:100%}.spec-ai-sort-toggle{gap:var(--spec-space-xs);flex-wrap:wrap;display:flex}.spec-ai-sort-btn{border:1px solid var(--accent);min-height:30px;color:var(--text-strong);cursor:pointer;background:#fff;border-radius:999px;padding:0 .56rem;font-size:.68rem;font-weight:700}.spec-ai-sort-btn.active{background:var(--accent);color:var(--text-on-accent)}.spec-ai-model-grid{gap:var(--spec-space-sm);grid-template-columns:1fr;width:100%;min-width:0;max-width:100%;max-height:320px;padding-top:.12rem;padding-bottom:.12rem;padding-right:.08rem;display:grid;overflow:hidden auto}.spec-ai-model-card{border:1px solid var(--accent);text-align:left;cursor:pointer;z-index:0;background:#fff;border-radius:11px;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:.42rem;width:100%;min-width:0;max-width:100%;padding:.34rem;transition:border-color .16s,box-shadow .18s,background-color .18s;display:grid;position:relative}.spec-ai-model-card:hover,.spec-ai-model-card:focus-visible{border-color:var(--accent);background:color-mix(in srgb,#fff 92%,var(--accent-soft)8%);z-index:1;box-shadow:0 6px 14px #0f172a14}.spec-ai-model-card.active{border-color:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent)45%,#fff 55%),0 2px 6px #0f172a0f;z-index:1}.spec-ai-model-logo-wrap{border:1px solid var(--accent);background:#f8fafc;border-radius:9px;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex;overflow:hidden}.spec-ai-model-logo{object-fit:contain;width:100%;height:100%}.spec-ai-model-card-content{gap:.08rem;min-width:0;display:grid}.spec-ai-model-card-title-wrap{justify-content:space-between;align-items:center;gap:.34rem;display:flex}.spec-ai-model-card-title-wrap strong{color:var(--text-strong);overflow-wrap:anywhere;word-break:break-word;font-size:.74rem;font-weight:800;line-height:1.24}.spec-ai-model-selected-badge{border:1px solid var(--accent);background:var(--accent-soft);color:var(--accent);white-space:nowrap;border-radius:999px;padding:.08rem .34rem;font-size:.62rem;font-style:normal;font-weight:700}.spec-ai-model-provider{color:var(--accent);overflow-wrap:anywhere;word-break:break-word;font-size:.66rem;font-weight:700}.spec-ai-model-card-price{color:var(--text-strong);overflow-wrap:anywhere;word-break:break-word;font-size:.66rem;font-weight:700}.spec-ai-model-card-detail{color:var(--accent);overflow-wrap:anywhere;word-break:break-word;font-size:.62rem}.spec-indicator-head{gap:var(--spec-space-sm);flex-wrap:wrap;display:flex}.spec-indicator-catalog{border:1px solid var(--accent);background:#fff;border-radius:10px;width:100%;min-width:0;max-width:100%;padding:.3rem .38rem}.spec-indicator-catalog summary{cursor:pointer;color:var(--accent);overflow-wrap:anywhere;word-break:break-word;font-size:.72rem;font-weight:700}.spec-indicator-catalog-list{margin:var(--spec-space-sm)0 0;gap:var(--spec-space-xs);width:100%;min-width:0;max-width:100%;max-height:280px;padding:0;list-style:none;display:grid;overflow:hidden auto}.spec-indicator-catalog-item{border:1px solid var(--accent);background:color-mix(in srgb,var(--accent-soft)90%,#fff 10%);border-radius:9px;gap:.3rem;width:100%;min-width:0;max-width:100%;padding:.3rem .36rem;display:grid}.spec-indicator-catalog-main{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.4rem;min-width:0;display:grid}.spec-indicator-catalog-main>div:first-child{min-width:0}.spec-indicator-catalog-item strong{color:var(--text-strong);overflow-wrap:anywhere;word-break:break-word;font-size:.74rem;font-weight:700;display:block}.spec-indicator-catalog-item p{color:var(--accent);overflow-wrap:anywhere;word-break:break-word;margin:0;font-size:.68rem}.spec-indicator-catalog-actions{flex-shrink:0;align-items:center;gap:.26rem;display:inline-flex}.spec-indicator-catalog-actions .spec-datetime-chip{white-space:nowrap;word-break:keep-all;writing-mode:horizontal-tb;flex-shrink:0}.spec-indicator-help-toggle{border:1px solid var(--accent);min-width:26px;min-height:26px;color:var(--accent);cursor:pointer;background:#fff;border-radius:999px;font-size:.72rem;font-weight:700;line-height:1}.spec-indicator-help{border:1px dashed var(--accent);background:#fff;border-radius:8px;gap:.18rem;padding:.24rem .34rem;display:grid}.spec-indicator-help p{color:var(--accent);margin:0;font-size:.66rem}.spec-indicator-selected-list{gap:var(--spec-space-sm);width:100%;min-width:0;max-width:100%;display:grid}.spec-indicator-selected-item{border:1px solid var(--accent);padding:var(--spec-space-sm);gap:var(--spec-space-sm);background:#fff;border-radius:10px;width:100%;min-width:0;max-width:100%;display:grid}.spec-indicator-selected-item header{align-items:center;gap:var(--spec-space-xs);grid-template-columns:minmax(0,1fr) auto;min-width:0;display:grid}.spec-indicator-selected-actions{align-items:center;gap:var(--spec-space-xs);flex-shrink:0;display:inline-flex}.spec-indicator-selected-item header strong{color:var(--text-strong);overflow-wrap:anywhere;word-break:break-word;min-width:0;font-size:.75rem;font-weight:700}.spec-indicator-param-list{gap:var(--spec-space-xs);display:grid}.spec-indicator-param-item{gap:.18rem;display:grid}.spec-indicator-param-item span{color:var(--accent);font-size:.68rem}.spec-indicator-param-item input{border:1px solid var(--accent);width:100%;min-height:32px;color:var(--text-strong);background:#fff;border-radius:8px;padding:.28rem .38rem;font-size:.76rem}.spec-number-input{border:1px solid var(--accent);background:var(--error-bg);width:100%;min-height:34px;color:var(--error-fg);border-radius:10px;padding:.36rem 2rem .36rem .46rem;font-size:.82rem}.spec-number-input::placeholder{color:#9ca3af}.spec-number-input-wrap .spec-combobox-clear{position:absolute;top:50%;right:.34rem;transform:translateY(-50%)}.spec-mode-toggle{grid-template-columns:repeat(2,minmax(0,1fr));gap:.34rem;display:grid}.spec-mode-option{border:1px solid var(--accent);background:var(--accent-soft);min-height:34px;color:var(--text-strong);cursor:pointer;border-radius:10px;padding:.2rem .46rem;font-size:.74rem;font-weight:700}.spec-mode-option.active{background:var(--accent);color:var(--text-on-accent)}.spec-field-status{z-index:2;justify-content:flex-end;align-items:center;gap:.28rem;min-width:34px;display:inline-flex;position:relative}.spec-status-dot{opacity:.28;cursor:default;border:1px solid #0000;border-radius:999px;width:11px;height:11px;transition:opacity .14s,transform .14s,box-shadow .14s;position:relative;transform:scale(.92)}.spec-status-dot.is-empty{background:#ef4444;border-color:#dc2626}.spec-status-dot.is-empty.active{opacity:1;transform:scale(1);box-shadow:0 0 0 2px #ef444433}.spec-status-dot.is-filled{background:#22c55e;border-color:#16a34a}.spec-status-dot.is-filled.active{opacity:1;transform:scale(1);box-shadow:0 0 0 2px #22c55e33}.spec-status-dot:before,.spec-status-dot:after{opacity:0;pointer-events:none;transition:opacity .14s,transform .14s}.spec-status-dot:before{content:"";z-index:1201;border:5px solid #0000;border-top-color:#111827;position:absolute;bottom:calc(100% + 2px);right:2px;transform:translateY(2px)}.spec-status-dot:after{content:attr(data-tooltip);color:#f9fafb;white-space:normal;z-index:1200;background:#111827;border-radius:8px;min-width:160px;max-width:220px;padding:.34rem .42rem;font-size:.66rem;font-weight:600;line-height:1.35;position:absolute;bottom:calc(100% + 8px);right:0;transform:translateY(2px);box-shadow:0 6px 18px #0000003d}.spec-status-dot:hover:before,.spec-status-dot:hover:after,.spec-status-dot:focus-visible:before,.spec-status-dot:focus-visible:after{opacity:1;transform:translateY(0)}.spec-status-dot:hover,.spec-status-dot:focus-visible{z-index:1202}.spec-status-dot:focus-visible{outline-offset:2px;outline:2px solid #2563eb}.spec-execute-btn{border:1px solid var(--accent);background:linear-gradient(135deg,var(--accent),var(--accent));min-height:36px;color:var(--text-on-accent);letter-spacing:-.01em;cursor:pointer;border-radius:10px;padding:.38rem .6rem;font-size:.78rem;font-weight:700;transition:transform .14s,box-shadow .14s,filter .14s}.spec-execute-btn:hover:not(:disabled){filter:saturate(1.05);transform:translateY(-1px);box-shadow:0 6px 16px #00000047}.spec-execute-btn:disabled{border-color:var(--accent);background:var(--accent-soft);color:var(--text-strong);cursor:not-allowed;box-shadow:none;transform:none}.spec-sidebar-loading .spec-panel-head{align-items:center}.spec-sidebar-loading-head-title{border-radius:999px;width:96px;height:12px}.spec-sidebar-loading-head-value{border-radius:999px;width:58px;height:12px}.spec-sidebar-loading-line-md{border-radius:999px;width:62%;height:12px}.spec-sidebar-loading-line-sm{border-radius:999px;width:46%;height:10px}.spec-sidebar-loading-progress{border-radius:999px;width:100%;height:8px}.spec-sidebar-loading-fields{gap:.38rem}.spec-sidebar-loading-row{border-radius:10px;height:34px}.spec-sidebar-loading-actions{gap:.34rem}.spec-sidebar-loading-action{border-radius:10px;height:36px}.spec-sidebar-loading-action.primary{background:#e4e8ee;border-color:#d7dce4}.backtest-spec-drawer,.spec-drawer-backdrop,.spec-mobile-launch{display:none}.spec-conflict-banner{border:1px solid var(--accent);background:var(--accent-soft);border-radius:14px;gap:.42rem;padding:.62rem .72rem;display:grid}.spec-conflict-banner>p{color:var(--accent);margin:0;font-size:.78rem;line-height:1.45}.spec-conflict-list{gap:.24rem;display:grid}.spec-conflict-list p{border:1px solid var(--accent);background:var(--error-bg);color:var(--error-fg);border-radius:10px;gap:.1rem;margin:0;padding:.36rem .44rem;font-size:.74rem;display:grid}.spec-conflict-list strong{color:var(--accent);font-weight:700}.spec-conflict-actions{gap:.34rem;display:flex}.spec-conflict-actions button{border:1px solid var(--accent);background:var(--accent-soft);min-height:32px;color:var(--text-strong);cursor:pointer;border-radius:999px;padding:0 .64rem;font-size:.74rem;font-weight:700}.spec-conflict-actions button:hover{background:var(--accent-soft)}.backtest-spec-sidebar{border-color:var(--chat-border);box-shadow:none;background:#f8fafc}.spec-panel-head{border-bottom:1px solid var(--chat-border);background:#f8fafc}.spec-card{border-color:var(--chat-border);background:#fff}.spec-field-row input,.spec-field-row select,.spec-field-row textarea,.spec-datetime-box,.spec-datetime-row input,.spec-number-input,.spec-symbol-menu,.spec-symbol-option{color:#111827;background:#fff;border-color:#d1d5db}.spec-symbol-option:hover,.spec-symbol-option.highlighted{background:#f3f4f6}.spec-datetime-chip{background:#fff;border-color:#d1d5db}.spec-datetime-chip:hover{background:#f3f4f6}.spec-indicator-panel,.spec-ai-model-panel{background:#f8fafc;border-color:#d1d5db}.spec-ai-sort-btn{border-color:#d1d5db}.spec-ai-sort-btn.active{border-color:var(--accent)}.spec-ai-model-card{border-color:#d1d5db}.spec-ai-model-card:hover,.spec-ai-model-card:focus-visible{background:#f9fafb;box-shadow:0 6px 14px #0f172a14}.spec-ai-model-card.active{border-color:var(--accent);box-shadow:0 0 0 1px #bfdbfe,0 2px 6px #0f172a0f}.spec-ai-model-card.active:hover,.spec-ai-model-card.active:focus-visible{box-shadow:0 0 0 1px #bfdbfe,0 8px 18px #3b82f629}.spec-ai-model-logo-wrap{background:#f9fafb;border-color:#d1d5db}.spec-ai-model-card-title-wrap strong{color:#111827}.spec-ai-model-provider,.spec-ai-model-card-detail{color:#4b5563}.spec-ai-model-selected-badge{color:#1e40af;background:#eff6ff;border-color:#93c5fd}.spec-indicator-catalog{background:#fff;border-color:#d1d5db}.spec-indicator-catalog summary{color:#111827}.spec-indicator-catalog-item{background:#f9fafb;border-color:#d1d5db}.spec-indicator-catalog-item strong,.spec-indicator-selected-item header strong{color:#111827}.spec-indicator-catalog-item p,.spec-indicator-param-item span,.spec-indicator-help p{color:#4b5563}.spec-indicator-selected-item,.spec-indicator-param-item input{color:#111827;background:#fff;border-color:#d1d5db}.spec-indicator-help{background:#fff;border-color:#d1d5db}.spec-indicator-help-toggle{color:#111827;border-color:#d1d5db}.spec-indicator-help-toggle:hover{background:#f3f4f6}.spec-prompt-preview{border-color:#93c5fd}.spec-prompt-preview-title,.spec-prompt-preview-meta{color:#1e3a8a}.spec-prompt-summary-section{background:#f8fbff;border-color:#bfdbfe}.spec-prompt-summary-section h4{color:#1e3a8a}.spec-prompt-summary-section li,.spec-prompt-summary-item{color:#1f2937}.spec-prompt-advanced{border-color:#93c5fd}.spec-prompt-advanced summary{color:#1e3a8a}.spec-prompt-preview-copy{color:#1e40af;background:#eff6ff;border-color:#93c5fd}.spec-prompt-preview-copy:hover{background:#dbeafe}.spec-prompt-preview pre{color:#1f2937;background:#f8fbff;border-color:#bfdbfe}@media (max-width:960px){.backtest-spec-sidebar{display:none}.spec-mobile-launch{z-index:26;border:1px solid var(--accent);background:var(--accent-soft);min-height:40px;color:var(--text-strong);cursor:pointer;border-radius:999px;align-items:center;gap:.3rem;padding:0 .72rem;font-size:.78rem;font-weight:700;display:inline-flex;position:fixed;bottom:.9rem;right:.82rem;box-shadow:0 8px 18px #00000029}.backtest-spec-drawer{border-left:1px solid var(--accent);background:var(--accent-soft);z-index:30;grid-template-rows:auto minmax(0,1fr);width:min(315px,92vw);transition:transform .17s;display:grid;position:fixed;inset:0 0 0 auto;transform:translate(104%);box-shadow:-12px 0 30px #0000002e}.backtest-spec-drawer.open{transform:translate(0)}.spec-drawer-head{justify-content:space-between;align-items:center;gap:var(--spec-space-md);border-bottom:1px solid var(--accent);padding:var(--spec-space-md);padding-top:calc(var(--spec-space-md) + env(safe-area-inset-top,0px));display:flex}.spec-drawer-head p{color:var(--accent);margin:0;font-size:.92rem;font-weight:700}.spec-drawer-head button{border:1px solid var(--accent);background:var(--accent-soft);min-height:32px;color:var(--text-strong);cursor:pointer;border-radius:10px;padding:0 .58rem;font-size:.78rem;font-weight:600}.spec-drawer-body{min-width:0;min-height:0;padding:var(--spec-space-md);padding-bottom:calc(var(--spec-space-md) + env(safe-area-inset-bottom,0px));color:var(--accent);font-size:.82rem;overflow:hidden auto}.spec-drawer-body>*{min-width:0;max-width:100%}.spec-drawer-backdrop{background:var(--overlay);opacity:0;pointer-events:none;z-index:29;border:0;transition:opacity .17s;display:block;position:fixed;inset:0}.spec-drawer-backdrop.open{opacity:1;pointer-events:auto}}@media (max-width:768px){.backtest-spec-drawer{width:min(300px,94vw)}}
.upbit-market-view{--upbit-rise:#b91c1c;--upbit-rise-soft:#b91c1c24;--upbit-fall:#1d4ed8;--upbit-fall-soft:#1d4ed824;--upbit-neutral-soft:#0f172a17;--upbit-border-soft:#11182729;--upbit-card-bg:#fff;--upbit-muted-bg:#f8fafc;--upbit-grid-pane-height:min(66vh,720px);--market-rise:var(--upbit-rise);--market-fall:var(--upbit-fall);gap:.28rem;min-height:100%;padding:.3rem;display:grid}.upbit-market-header,.upbit-market-controls,.upbit-market-heatmap,.upbit-market-rank-card,.upbit-market-chart-card{border:1px solid var(--upbit-border-soft);background:var(--upbit-card-bg);border-radius:12px;box-shadow:0 4px 10px #0f172a0a}.upbit-market-header{justify-content:space-between;align-items:flex-start;gap:.34rem;padding:.4rem .46rem;display:flex}.upbit-market-kicker{color:#0f172a;text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:.7rem;font-weight:700}.upbit-market-header h2{color:#0f172a;letter-spacing:-.015em;margin:.14rem 0 0;font-size:1.08rem}.upbit-market-header p{color:#475569;margin:.08rem 0 0;font-size:.74rem}.upbit-market-header-actions{justify-items:end;gap:.22rem;display:grid}.upbit-market-header-actions span{color:#334155;font-size:.68rem}.upbit-market-header-actions button{color:#0f172a;cursor:pointer;background:#fff;border:1px solid #1118274d;border-radius:999px;min-height:28px;padding:0 .56rem;font-size:.73rem;font-weight:620;transition:background-color .12s}.upbit-market-header-actions button:hover:not(:disabled){background:#f1f5f9}.upbit-market-error{border:1px solid var(--error-bg);background:var(--error-bg);color:var(--error-fg);border-radius:10px;margin:0;padding:.38rem .44rem;font-size:.76rem}.upbit-market-summary{grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:.22rem;display:grid}.upbit-market-summary article{border:1px solid var(--upbit-border-soft);background:#fff;border-radius:10px;padding:.3rem .36rem;box-shadow:0 4px 10px #0f172a0a}.upbit-market-summary span{color:#475569;font-size:.66rem;display:block}.upbit-market-summary strong{color:#0f172a;margin-top:.06rem;font-size:.96rem;display:block}.upbit-market-controls{gap:.24rem;padding:.32rem .36rem;display:grid}.upbit-market-tabs{flex-wrap:wrap;gap:.2rem;display:flex}.upbit-market-tabs button{border:1px solid var(--upbit-border-soft);color:#0f172a;cursor:pointer;background:#f8fafc;border-radius:999px;min-height:28px;padding:0 .5rem;font-size:.7rem;font-weight:620;transition:background-color .12s,border-color .12s}.upbit-market-tabs button:hover{background:#f1f5f9;border-color:#11182747}.upbit-market-tabs button.active{color:#fff;background:#0f172a;border-color:#0f172a}.upbit-market-toolbar{grid-template-columns:minmax(200px,1fr) minmax(140px,190px) minmax(0,1fr);align-items:end;gap:.22rem;display:grid}.upbit-market-search,.upbit-market-sort{gap:.14rem;display:grid}.upbit-market-search span,.upbit-market-sort span{color:#475569;font-size:.66rem;font-weight:600}.upbit-market-search input,.upbit-market-sort select{border:1px solid var(--upbit-border-soft);color:#0f172a;background:#fff;border-radius:8px;min-height:30px;padding:0 .44rem;font-size:.72rem}.upbit-market-search input::placeholder{color:#94a3b8}.upbit-market-filter-chips{flex-wrap:wrap;gap:.2rem;display:flex}.upbit-market-filter-chips button{border:1px solid var(--upbit-border-soft);color:#1e293b;cursor:pointer;background:#fff;border-radius:999px;min-height:28px;padding:0 .48rem;font-size:.69rem;font-weight:620}.upbit-market-filter-chips button.active{color:#0f172a;background:#e2e8f0;border-color:#0f172a}.upbit-market-grid{grid-template-columns:minmax(0,1.45fr) minmax(0,.95fr);align-items:start;gap:.24rem;min-height:0;display:grid}.upbit-market-heatmap{min-height:0;max-height:var(--upbit-grid-pane-height);grid-template-rows:auto minmax(0,1fr);align-self:start;gap:.24rem;padding:.34rem;display:grid}.upbit-market-panel-head{justify-content:space-between;align-items:flex-start;gap:.34rem;display:flex}.upbit-market-panel-head h3{color:#0f172a;margin:0;font-size:.84rem}.upbit-market-panel-head p{color:#64748b;margin:.08rem 0 0;font-size:.67rem}.upbit-market-panel-head strong{color:#334155;font-size:.68rem}.upbit-market-heatmap-grid{grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-flow:dense;grid-auto-rows:32px;gap:.08rem;min-height:0;display:grid;overflow:auto}.upbit-market-tile{--tile-strength:.2;--tile-scale:.14;text-align:center;cursor:pointer;border:1px solid #0000;border-radius:6px;min-width:0;padding:.12rem;transition:box-shadow 90ms,border-color 90ms;display:block;overflow:hidden}.upbit-market-tile-core{text-align:center;justify-content:center;align-items:center;gap:clamp(.04rem,calc(var(--tile-scale)*.22rem),.38rem);flex-direction:column;width:100%;min-width:0;height:100%;min-height:0;display:flex}.upbit-market-tile:hover{box-shadow:inset 0 0 0 1px #0f172a2e}.upbit-market-tile strong{color:#0f172a;min-width:0;font-size:clamp(.62rem,calc(.56rem + (var(--tile-scale)*.92rem)),1.48rem);white-space:nowrap;text-overflow:ellipsis;word-break:keep-all;max-width:100%;font-weight:700;line-height:1.04;display:block;overflow:hidden}.upbit-market-tile span{color:#1e293b;min-width:0;font-size:clamp(.5rem,calc(.44rem + (var(--tile-scale)*.48rem)),.92rem);white-space:nowrap;text-overflow:ellipsis;word-break:keep-all;opacity:.88;max-width:100%;line-height:1.03;display:block;overflow:hidden}.upbit-market-tile em{color:#0f172a;min-width:0;font-style:normal;font-weight:700;font-size:clamp(.56rem,calc(.48rem + (var(--tile-scale)*.62rem)),1.08rem);white-space:nowrap;text-overflow:ellipsis;word-break:keep-all;max-width:100%;line-height:1.02;display:block;overflow:hidden}.upbit-market-tile.compact span,.upbit-market-tile.micro span{display:none}.upbit-market-tile.micro{padding:.08rem}.upbit-market-tile.micro .upbit-market-tile-core{gap:.02rem}.upbit-market-tile.hero strong{letter-spacing:-.012em}.upbit-market-tile.rise{background:rgba(220,38,38,calc(.1 + (var(--tile-strength)*.34)));border-color:#b91c1c52}.upbit-market-tile.fall{background:rgba(37,99,235,calc(.1 + (var(--tile-strength)*.34)));border-color:#1d4ed857}.upbit-market-tile.neutral{background:rgba(15,23,42,calc(.05 + (var(--tile-strength)*.2)));border-color:#0f172a33}.upbit-market-screener-wrap{border:1px solid var(--upbit-border-soft);border-radius:10px;min-height:0;overflow:auto}.upbit-market-screener-table{border-collapse:collapse;background:#fff;width:100%;min-width:860px}.upbit-market-screener-table th,.upbit-market-screener-table td{color:#0f172a;white-space:nowrap;border-bottom:1px solid #94a3b838;padding:.3rem .36rem;font-size:.69rem}.upbit-market-screener-table th{z-index:1;color:#334155;text-align:left;background:#f8fafc;font-size:.64rem;position:sticky;top:0}.upbit-market-screener-table tbody tr:hover{background:#f8fafc}.upbit-market-screener-market{gap:.08rem;display:grid}.upbit-market-screener-market strong{color:#0f172a;font-size:.69rem}.upbit-market-screener-market span{color:#475569;font-size:.6rem}.upbit-market-screener-action{color:#0f172a;cursor:pointer;background:#fff;border:1px solid #11182747;border-radius:999px;min-height:24px;padding:0 .4rem;font-size:.62rem;font-weight:620}.upbit-market-screener-action:hover{background:#f1f5f9}.upbit-market-screener-table .rise,.upbit-market-rank-card em.rise,.upbit-market-chart-meta span.rise,.upbit-market-pulse-focus em.rise{color:var(--upbit-rise)}.upbit-market-screener-table .fall,.upbit-market-rank-card em.fall,.upbit-market-chart-meta span.fall,.upbit-market-pulse-focus em.fall{color:var(--upbit-fall)}.upbit-market-screener-table .neutral,.upbit-market-rank-card em.neutral,.upbit-market-chart-meta span.neutral,.upbit-market-pulse-focus em.neutral{color:#475569}.upbit-market-movers-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.24rem;min-height:0;display:grid}.upbit-market-ranks{min-height:0;max-height:var(--upbit-grid-pane-height);grid-template-rows:auto auto auto;align-content:start;align-self:start;gap:.24rem;display:grid;overflow:auto}.upbit-market-rank-card{grid-template-rows:auto minmax(0,1fr);gap:.2rem;min-height:0;padding:.32rem;display:grid}.upbit-market-rank-head{gap:.08rem;display:grid}.upbit-market-rank-card h3{color:#0f172a;margin:0;font-size:.78rem}.upbit-market-rank-head p{color:#64748b;margin:0;font-size:.62rem}.upbit-market-rank-card ul{gap:.16rem;min-height:0;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.upbit-market-rank-card li button{border:1px solid var(--upbit-border-soft);background:var(--upbit-muted-bg);text-align:left;cursor:pointer;border-radius:8px;justify-content:space-between;gap:.2rem;width:100%;padding:.28rem .34rem;transition:background-color .12s,border-color .12s;display:flex}.upbit-market-rank-card li button:hover{background:#f1f5f9;border-color:#11182747}.upbit-market-rank-main{align-content:start;gap:.1rem;display:grid}.upbit-market-rank-card strong{color:#0f172a;font-size:.7rem;display:block}.upbit-market-rank-card span{color:#334155;font-size:.62rem;display:block}.upbit-market-rank-metrics{align-content:center;gap:.08rem;display:grid}.upbit-market-rank-card em{text-align:right;font-size:.7rem;font-style:normal;font-weight:700;display:block}.upbit-market-pulse-card{align-content:start}.upbit-market-pulse-bar{background:#94a3b83d;border-radius:999px;height:8px;margin-top:.04rem;display:flex;overflow:hidden}.upbit-market-pulse-bar .rise{background:#b91c1c9e}.upbit-market-pulse-bar .fall{background:#1d4ed89e}.upbit-market-pulse-card p{color:#475569;margin:.2rem 0 0;font-size:.66rem}.upbit-market-pulse-focus{border:1px solid var(--upbit-border-soft);background:#f8fafc;border-radius:8px;justify-content:space-between;align-items:center;gap:.22rem;margin-top:.24rem;padding:.24rem .3rem;display:flex}.upbit-market-pulse-focus strong{margin:0;font-size:.68rem}.upbit-market-pulse-focus em{font-size:.69rem;font-style:normal;font-weight:700}.upbit-market-chart-card{gap:.32rem;padding:.46rem;display:grid}.upbit-market-chart-card header{justify-content:space-between;align-items:flex-start;gap:.3rem;display:flex}.upbit-market-chart-card h3{color:#0f172a;margin:0;font-size:.92rem}.upbit-market-chart-card p{color:#475569;margin:.12rem 0 0;font-size:.72rem}.upbit-market-warning-pill{color:#991b1b;letter-spacing:.01em;background:#b91c1c1a;border:1px solid #b91c1c66;border-radius:999px;justify-content:center;align-items:center;width:fit-content;min-height:16px;padding:0 .28rem;font-size:.58rem;font-weight:700;display:inline-flex}.upbit-market-chart-meta{text-align:right}.upbit-market-chart-meta span{font-size:.78rem;font-weight:700;display:block}.upbit-market-chart-meta strong{color:#0f172a;font-size:.96rem;display:block}.upbit-market-detail-metrics{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.2rem;display:grid}.upbit-market-detail-metrics article{border:1px solid var(--upbit-border-soft);background:#f8fafc;border-radius:10px;padding:.28rem .34rem}.upbit-market-detail-metrics span{color:#475569;font-size:.66rem;display:block}.upbit-market-detail-metrics strong{color:#0f172a;margin-top:.04rem;font-size:.78rem;display:block}.upbit-market-chart-toolbar{border:1px solid var(--upbit-border-soft);background:#f8fafc;border-radius:10px;gap:.2rem;padding:.3rem .34rem;display:grid}.upbit-market-chart-toolbar-main{gap:.14rem;display:grid}.upbit-market-chart-kline-info{color:#334155;font-size:.66rem;font-weight:700}.upbit-market-chart-ohlc{flex-wrap:wrap;align-items:center;gap:.16rem;display:flex}.upbit-market-chart-ohlc span{color:#334155;background:#fff;border:1px solid #0f172a24;border-radius:999px;padding:.2rem .38rem;font-size:.62rem;font-weight:620;line-height:1}.upbit-market-chart-ohlc span.rise{color:#991b1b;background:#fef2f2e0;border-color:#991b1b59}.upbit-market-chart-ohlc span.fall{color:#1e40af;background:#eff6ffe0;border-color:#1e40af59}.upbit-market-chart-ohlc-empty{color:#64748b;font-size:.64rem}.upbit-market-timeframe-chips{flex-wrap:wrap;gap:.16rem;display:flex}.upbit-market-timeframe-chips button{color:#334155;cursor:pointer;background:#fff;border:1px solid #0f172a2e;border-radius:999px;min-height:26px;padding:0 .42rem;font-size:.62rem;font-weight:700;line-height:1;transition:border-color .12s,background-color .12s,color .12s}.upbit-market-timeframe-chips button:hover:not(:disabled){background:#f1f5f9;border-color:#0f172a57}.upbit-market-timeframe-chips button.active{color:#fff;background:#0f172a;border-color:#0f172a}.upbit-market-timeframe-chips button:disabled{cursor:wait;opacity:.68}.upbit-market-mini-chart{border:1px solid var(--upbit-border-soft);background:#f8fafc;border-radius:12px;height:312px;padding:.34rem}.upbit-market-mini-chart svg{width:100%;height:100%}.upbit-market-chart-note,.upbit-market-empty{color:#475569;margin:0;font-size:.72rem}.upbit-market-view-loading .upbit-market-header{align-items:stretch}.upbit-market-loading-kicker{border-radius:999px;width:72px;height:10px}.upbit-market-loading-title{border-radius:999px;width:min(58%,340px);height:18px;margin-top:.4rem}.upbit-market-loading-subtitle{border-radius:999px;width:min(44%,250px);height:12px;margin-top:.28rem}.upbit-market-loading-action-label{border-radius:999px;width:74px;height:10px}.upbit-market-loading-action-button{border-radius:999px;width:88px;height:34px}.upbit-market-loading-card{align-content:start;gap:.34rem;display:grid}.upbit-market-loading-line-sm{border-radius:999px;width:56%;height:10px}.upbit-market-loading-line-md{border-radius:999px;width:64%;height:12px}.upbit-market-loading-line-lg{border-radius:999px;width:74%;height:14px}.upbit-market-heatmap-grid-loading{grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:44px;gap:.34rem}.upbit-market-loading-tile{border-radius:10px}.upbit-market-rank-loading-list{gap:.34rem;display:grid}.upbit-market-loading-rank-row{border-radius:10px;height:44px}.upbit-market-chart-card-loading{align-content:start}.upbit-market-chart-card-loading-head{gap:.32rem;display:grid}.upbit-market-loading-chart{border-radius:10px;min-height:168px}.upbit-market-confirm{border:1px solid var(--accent);background:var(--accent-soft);z-index:62;border-radius:18px;gap:.54rem;width:min(460px,100vw - 2rem);padding:.92rem;display:grid;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 22px 52px #00000047}.upbit-market-confirm h3{color:var(--accent);margin:0;font-size:1.02rem}.upbit-market-confirm p{color:var(--accent);margin:0;font-size:.86rem}.upbit-market-confirm-actions{gap:.38rem;display:grid}.upbit-market-confirm-actions .btn{width:100%}.upbit-market-confirm-backdrop{background:var(--overlay);z-index:58;border:0;position:fixed;inset:0}@media (max-width:1320px){.upbit-market-grid{grid-template-columns:1fr}.upbit-market-heatmap,.upbit-market-ranks{max-height:none}.upbit-market-ranks{grid-template-rows:1fr;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible}}@media (max-width:1120px){.upbit-market-toolbar{grid-template-columns:minmax(0,1fr);align-items:stretch}.upbit-market-movers-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:900px){.upbit-market-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.upbit-market-ranks,.upbit-market-movers-grid{grid-template-columns:1fr}.upbit-market-mini-chart{height:286px}}@media (max-width:768px){.upbit-market-view{padding:.22rem}.upbit-market-header{flex-direction:column;align-items:stretch}.upbit-market-header-actions{justify-items:flex-start}.upbit-market-summary{grid-template-columns:1fr}.upbit-market-chart-card header{flex-direction:column}.upbit-market-detail-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.upbit-market-chart-toolbar{gap:.24rem}.upbit-market-chart-ohlc{gap:.14rem}.upbit-market-mini-chart{height:248px;padding:.28rem}.upbit-market-confirm{width:calc(100vw - 1rem);padding:.75rem}}@media (max-width:560px){.upbit-market-detail-metrics{grid-template-columns:1fr}.upbit-market-tabs,.upbit-market-filter-chips{width:100%}.upbit-market-chart-ohlc span{padding:.18rem .34rem;font-size:.6rem}.upbit-market-mini-chart{height:216px;padding:.22rem}}
.chart-mini-candlestick{--chart-rise:var(--market-rise,#b91c1c);--chart-fall:var(--market-fall,#1d4ed8);--chart-neutral:#64748b;--price-axis-width:48px;grid-template-columns:minmax(0,1fr)var(--price-axis-width);border-radius:inherit;background:radial-gradient(circle at 18% 0,#ffffffb8 0,#fff0 48%),linear-gradient(#f9fbff 0%,#eef3f8 100%);border:1px solid #0f172a1a;grid-template-rows:minmax(0,3.45fr) minmax(0,1fr);gap:.08rem .18rem;width:100%;height:100%;padding:.2rem .14rem .14rem .22rem;display:grid;position:relative;overflow:hidden}.chart-mini-candlestick.is-rise{background:radial-gradient(circle at 16% 0,#fef2f2cc 0,#fff0 48%),linear-gradient(#fdf9fa 0%,#eff3fa 100%)}.chart-mini-candlestick.is-fall{background:radial-gradient(circle at 16% 0,#eff6ffe0 0,#fff0 48%),linear-gradient(#f7fbff 0%,#edf3fa 100%)}.chart-mini-candlestick.no-axis{grid-template-columns:minmax(0,1fr)}.chart-candle-svg,.chart-volume-svg{width:100%;height:100%;display:block}.chart-candle-grid-h line{stroke:#0f172a26;stroke-width:.64px;stroke-dasharray:1.45 2.45}.chart-volume-grid line{stroke:#0f172a1a;stroke-width:.56px;stroke-dasharray:1.2 2.1}.chart-mini-price-canvas{grid-area:1/1;min-width:0;height:100%;min-height:0;position:relative;overflow:hidden}.chart-mini-volume-canvas{border-top:1px solid #0f172a14;grid-area:2/1;min-width:0;height:100%;min-height:0;position:relative;overflow:hidden}.chart-mini-price-axis{grid-area:1/2;min-width:0;height:100%;padding:10px 2px 8px 4px;position:relative}.chart-mini-volume-axis{border-top:1px solid #0f172a14;grid-area:2/2;min-width:0;height:100%;padding:4px 2px 2px 4px;position:relative}.chart-mini-candlestick.no-axis .chart-mini-price-canvas,.chart-mini-candlestick.no-axis .chart-mini-volume-canvas{grid-column:1}.chart-mini-candlestick.no-axis .chart-mini-price-axis,.chart-mini-candlestick.no-axis .chart-mini-volume-axis{display:none}.chart-mini-volume-axis,.chart-mini-price-axis{width:var(--price-axis-width)}.chart-volume-series rect,.chart-candle-volume rect{shape-rendering:geometricPrecision}.chart-candle-last-price line{stroke-width:.95px;opacity:.75}.chart-candle-series line{stroke-linecap:round;opacity:.96}.chart-candle-series rect{shape-rendering:geometricPrecision}.chart-mini-price-scale{pointer-events:none;flex-direction:column;justify-content:space-between;align-items:flex-end;height:100%;display:flex;position:relative}.chart-mini-price-scale span{color:#475569;letter-spacing:.01em;text-shadow:0 1px #fffc;padding:.08rem 0;font-size:.62rem;font-weight:620;line-height:1}.chart-mini-volume-scale{pointer-events:none;flex-direction:column;justify-content:space-between;align-items:flex-end;height:100%;display:flex;position:relative}.chart-mini-volume-scale span{color:#64748b;letter-spacing:.01em;padding:.06rem 0;font-size:.56rem;font-weight:620;line-height:1}.chart-mini-last-price{--last-price-y:50%;right:1px;top:var(--last-price-y);z-index:3;pointer-events:none;color:#334155;background:#fff;border:1px solid #0f172a33;border-radius:999px;padding:.18rem .4rem;font-size:.62rem;font-weight:700;line-height:1;position:absolute;transform:translateY(-50%);box-shadow:0 1px 4px #0f172a1f}.chart-mini-last-price.is-rise{color:#991b1b;background:#fef2f2f2;border-color:#991b1b66}.chart-mini-last-price.is-fall{color:#1e40af;background:#eff6fff5;border-color:#1e40af66}.chart-mini-last-price.is-flat{color:#475569;background:#f8fafcfa;border-color:#47556959}.chart-lab-page{background:radial-gradient(circle at 0 0,#0e749014 0,#0000 42%),radial-gradient(circle at 100% 0,#b91c1c14 0,#0000 40%),#f8fafc;align-content:start;gap:1rem;min-height:100vh;padding:1.25rem;display:grid}.chart-lab-header{background:#fff;border:1px solid #0f172a1f;border-radius:14px;padding:.9rem 1rem;box-shadow:0 8px 22px #0f172a0f}.chart-lab-header p{color:#0f172a;letter-spacing:.02em;margin:0;font-size:.72rem;font-weight:700}.chart-lab-header h1{color:#0f172a;margin:.24rem 0 0;font-size:clamp(1.1rem,2vw,1.45rem)}.chart-lab-header span{color:#475569;margin-top:.3rem;font-size:.84rem;display:block}.chart-lab-grid{grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:.9rem;display:grid}.chart-lab-card{background:#fff;border:1px solid #0f172a24;border-radius:14px;gap:.6rem;padding:.9rem;display:grid;box-shadow:0 8px 18px #0f172a0f}.chart-lab-card-head{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.chart-lab-card-head h2{color:#0f172a;margin:0;font-size:.98rem}.chart-lab-card-head small{color:#334155;border:1px solid #0f172a33;border-radius:999px;padding:.12rem .42rem;font-size:.68rem;font-weight:700}.chart-lab-card-head small.trend-rise{color:#991b1b;background:#dc262614;border-color:#991b1b59}.chart-lab-card-head small.trend-fall{color:#1e40af;background:#2563eb14;border-color:#1e40af59}.chart-lab-card p{color:#475569;margin:0;font-size:.76rem}.chart-lab-preview{background:#f8fafc;border:1px solid #0f172a21;border-radius:10px;height:236px;padding:.42rem}.chart-lab-metrics{gap:.3rem;margin:0;display:grid}.chart-lab-metrics div{background:#f8fafc;border:1px solid #0f172a1a;border-radius:8px;justify-content:space-between;align-items:baseline;gap:.4rem;padding:.32rem .45rem;display:flex}.chart-lab-metrics dt{color:#475569;font-size:.68rem}.chart-lab-metrics dd{color:#0f172a;margin:0;font-size:.74rem;font-weight:700}.chart-decision-multipane{--decision-axis-width:72px;--decision-price-height:320px;--decision-volume-height:110px;--decision-sub-height:122px;background:radial-gradient(circle at 18% 0,#ffffffb8 0,#fff0 48%),linear-gradient(#f9fbff 0%,#edf3fa 100%);border:1px solid #0f172a1f;border-radius:12px;gap:.18rem;padding:.4rem .38rem .52rem;display:grid;overflow:hidden}.chart-decision-head{background:#ffffffb8;border:1px solid #0f172a1a;border-radius:9px;justify-content:space-between;align-items:center;gap:.44rem;min-height:28px;padding:0 .45rem;display:flex}.chart-decision-head strong{color:#0f172a;letter-spacing:.01em;font-size:.7rem;font-weight:700}.chart-decision-ohlc{gap:.36rem;display:inline-flex}.chart-decision-ohlc span{color:#475569;font-size:.66rem;font-weight:620}.chart-decision-empty{color:#64748b;justify-content:center;align-items:center;min-height:56px;margin:0;font-size:.76rem;display:flex}.chart-decision-pane{grid-template-columns:minmax(0,1fr)var(--decision-axis-width);align-items:stretch;column-gap:.18rem;display:grid}.chart-decision-pane.price .chart-decision-pane-plot{height:var(--decision-price-height)}.chart-decision-pane.volume .chart-decision-pane-plot{height:var(--decision-volume-height)}.chart-decision-pane.sub .chart-decision-pane-plot{height:var(--decision-sub-height)}.chart-decision-pane-plot{background:#ffffffb8;border:1px solid #0f172a1a;border-radius:8px;min-width:0;min-height:0;position:relative;overflow:hidden}.chart-decision-overlay-svg,.chart-decision-volume-svg,.chart-decision-sub-svg{width:100%;height:100%;display:block;position:absolute;inset:0}.chart-decision-overlay-svg,.chart-decision-volume-svg,.chart-decision-sub-svg,.chart-decision-overlay-svg *,.chart-decision-volume-svg *,.chart-decision-sub-svg *{pointer-events:none}.chart-decision-pane-axis{background:#ffffffa3;border:1px solid #0f172a1a;border-radius:8px;flex-direction:column;justify-content:space-between;align-items:flex-end;padding:.24rem .12rem .2rem .22rem;display:flex}.chart-decision-pane-axis span{color:#475569;letter-spacing:.01em;font-size:.58rem;font-weight:620;line-height:1}.chart-decision-series-group path{fill:none;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.chart-decision-crosshair line{stroke:#0f172a6b;stroke-width:.9px;stroke-dasharray:2.2 2.8}.chart-decision-trade-label-lines line{stroke-width:.9px;stroke-dasharray:1.2 2;opacity:.74}.chart-decision-trade-label-lines line.buy{stroke:#3bb267}.chart-decision-trade-label-lines line.sell{stroke:#e24949}.chart-decision-trade-label{letter-spacing:.02em;paint-order:stroke;stroke:#f8fafcf5;stroke-width:2.6px;stroke-linejoin:round;font-size:10px;font-weight:700}.chart-decision-trade-label.buy{fill:#15803d}.chart-decision-trade-label.sell{fill:#b91c1c}.chart-decision-zero-line line{stroke:#0f172a33;stroke-width:.8px;stroke-dasharray:1.8 2.4}.chart-decision-volume-grid line,.chart-decision-sub-grid line{stroke:#0f172a1f;stroke-width:.58px;stroke-dasharray:1.2 2}.chart-decision-volume-bars rect{shape-rendering:geometricPrecision}.chart-decision-volume-bars rect.rise{fill:color-mix(in srgb,var(--chart-rise,#b91c1c)76%,#fff 24%);opacity:.68}.chart-decision-volume-bars rect.fall{fill:color-mix(in srgb,var(--chart-fall,#1d4ed8)74%,#fff 26%);opacity:.66}.chart-decision-pointer-layer{z-index:4;cursor:crosshair;touch-action:none;position:absolute;inset:0}.chart-decision-time-axis{height:17px;margin-top:.05rem;position:relative}.chart-decision-time-axis span{color:#64748b;letter-spacing:.01em;font-size:.56rem;font-weight:600;line-height:1;position:absolute;transform:translate(-50%)}@media (max-width:768px){.chart-lab-page{padding:.72rem}.chart-lab-preview{height:196px}.chart-mini-candlestick{--price-axis-width:44px}.chart-decision-multipane{--decision-price-height:232px;--decision-volume-height:86px;--decision-sub-height:96px;--decision-axis-width:64px;padding:.32rem .3rem .42rem}.chart-decision-head{min-height:25px;padding:0 .34rem}.chart-decision-ohlc{gap:.2rem}.chart-decision-ohlc span{font-size:.6rem}.chart-decision-pane-axis span{font-size:.54rem}.chart-decision-trade-label{font-size:9px}.chart-decision-time-axis span{font-size:.52rem}}
