.layout-switcher{flex:none;display:inline-flex;position:relative}.ls-trigger{border:1px solid var(--color-border);background:var(--color-bg-surface);cursor:pointer;border-radius:7px;align-items:center;gap:3px;height:30px;padding:0 5px 0 6px;transition:background .12s,border-color .12s;display:inline-flex}.ls-trigger:hover,.ls-trigger.open{background:var(--color-bg-elevated);border-color:var(--color-border-strong,var(--color-border))}.ls-chev{width:12px;height:12px;color:var(--color-text-muted);flex:none}.ls-pop{z-index:60;border:1px solid var(--color-border);background:var(--color-bg-surface);border-radius:9px;gap:3px;padding:4px;display:inline-flex;position:absolute;top:calc(100% + 5px);left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0006}.ls-opt{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;width:50px;height:34px;padding:0;transition:background .12s;display:inline-flex}.ls-opt:hover{background:var(--color-bg-elevated)}.ls-opt.is-active{background:var(--color-accent-bg-soft,var(--color-bg-elevated));border-color:var(--color-accent,var(--color-border-strong))}.ls-glyph{width:30px;height:20px;display:block}.ls-opt .ls-glyph{width:38px;height:25px}.ls-a{stroke:none}.ls-a-chart{fill:#5b7aa6}.ls-a-editor{fill:#8175a3}.ls-a-tester{fill:#5f9890}.ls-opt:not(.is-active) .ls-glyph{opacity:.7}.ls-opt:not(.is-active):hover .ls-glyph{opacity:1}.shortcuts-groups{flex-direction:column;gap:18px;display:flex}.shortcuts-group h3{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin:0 0 8px;font-size:.72rem}.shortcuts-group dl{margin:0}.shortcuts-row{border-bottom:1px solid var(--color-border-faint);align-items:baseline;gap:16px;padding:5px 0;display:flex}.shortcuts-row:last-child{border-bottom:none}.shortcuts-row dt{flex:0 0 200px}.shortcuts-row dd{color:var(--color-text-secondary);margin:0;font-size:13px}.shortcuts-row kbd{background:var(--color-bg-surface-2);border:1px solid var(--color-border);color:var(--color-text-primary);white-space:nowrap;border-radius:5px;padding:2px 6px;font-family:inherit;font-size:11.5px}.watchlist{align-items:center;display:inline-flex;position:relative}.watchlist-star,.watchlist-toggle{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;padding:2px 4px;font-size:13px;line-height:1}.watchlist-star-on{color:#f5a623}.watchlist-star:disabled{opacity:.4;cursor:default}.watchlist-toggle{font-size:10px}.watchlist-pop{background:var(--color-bg-surface);border:1px solid var(--color-border);z-index:60;border-radius:8px;min-width:180px;max-height:320px;margin-top:4px;padding:6px;position:absolute;top:100%;left:0;overflow-y:auto;box-shadow:0 10px 30px #00000059}.watchlist-section-title{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);padding:6px 8px 3px;font-size:10px}.watchlist-empty{color:var(--color-text-muted);padding:4px 8px 8px;font-size:11.5px}.watchlist-row{border-radius:6px;justify-content:space-between;align-items:center;display:flex}.watchlist-row:hover{background:var(--color-bg-row-hover)}.watchlist-row-current .watchlist-pick{color:var(--color-accent);font-weight:600}.watchlist-pick{text-align:left;cursor:pointer;color:var(--color-text-primary);font-variant-numeric:tabular-nums;background:0 0;border:none;flex:1;padding:6px 8px;font-size:13px}.watchlist-unstar{cursor:pointer;color:#f5a623;background:0 0;border:none;padding:4px 8px;font-size:12px}.watchlist-addstar{color:var(--color-text-muted)}.help-lead{color:var(--color-text-secondary);margin:0 0 14px;font-size:14px;line-height:1.5}.help-links{align-items:center;gap:12px;margin-bottom:18px;display:flex}.help-version{color:var(--color-text-muted);font-size:11.5px}.help-section{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin:0 0 10px;font-size:.72rem}.help-changelog{flex-direction:column;gap:14px;display:flex}.help-entry-date{color:var(--color-text-muted);margin-bottom:4px;font-size:11px;font-weight:600}.help-entry ul{margin:0;padding-left:18px}.help-entry li{color:var(--color-text-secondary);margin-bottom:3px;font-size:13px;line-height:1.5}.help-foot{color:var(--color-text-muted);margin:16px 0 0;font-size:12.5px}.help-foot kbd{background:var(--color-bg-surface-2);border:1px solid var(--color-border);border-radius:5px;padding:1px 5px;font-family:inherit;font-size:11px}.noti-bell-wrap{display:inline-flex;position:relative}.noti-bell{position:relative}.noti-badge{background:var(--color-error);color:#fff;text-align:center;border-radius:999px;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:700;line-height:16px;position:absolute;top:-4px;right:-4px}.noti-pop{background:var(--color-bg-surface);border:1px solid var(--color-border);z-index:1000;border-radius:10px;width:320px;max-height:60vh;margin-top:6px;position:absolute;top:100%;right:0;overflow-y:auto;box-shadow:0 12px 36px #00000059}.noti-pop-head{border-bottom:1px solid var(--color-border-faint);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;justify-content:space-between;align-items:center;padding:10px 12px;font-size:12px;font-weight:600;display:flex}.noti-clear{color:var(--color-accent);cursor:pointer;text-transform:none;letter-spacing:0;background:0 0;border:none;font-size:11px}.noti-empty{text-align:center;color:var(--color-text-muted);padding:18px;font-size:13px}.noti-list{margin:0;padding:0;list-style:none}.noti-item{border-bottom:1px solid var(--color-border-faint);gap:10px;padding:10px 12px;display:flex}.noti-item:last-child{border-bottom:none}.noti-item-icon{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:11px;display:flex}.noti-success .noti-item-icon,.toast-success .toast-icon{background:var(--color-success)}.noti-error .noti-item-icon,.toast-error .toast-icon{background:var(--color-error)}.noti-info .noti-item-icon,.toast-info .toast-icon{background:var(--color-accent)}.noti-item-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.noti-item-title{color:var(--color-text-primary);font-size:13px;font-weight:500}.noti-item-body{color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.noti-item-time{color:var(--color-text-muted);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:11px}.toast-stack{z-index:1100;flex-direction:column;gap:8px;max-width:360px;display:flex;position:fixed;bottom:16px;right:16px}.toast{background:var(--color-bg-surface);border:1px solid var(--color-border);border-left-width:3px;border-radius:8px;align-items:flex-start;gap:10px;padding:10px 12px;animation:.18s ease-out toast-in;display:flex;box-shadow:0 8px 24px #0000004d}.toast-success{border-left-color:var(--color-success)}.toast-error{border-left-color:var(--color-error)}.toast-info{border-left-color:var(--color-accent)}.toast-icon{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:11px;display:flex}.toast-main{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.toast-title{color:var(--color-text-primary);font-size:13px;font-weight:600}.toast-body{color:var(--color-text-muted);font-size:12px}.toast-close{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;padding:0 2px;font-size:12px}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.app{background:var(--color-bg-app);width:100vw;height:100dvh;color:var(--color-text-primary);flex-direction:column;display:flex;overflow:hidden}.appbar{background:var(--color-bg-panel);border-bottom:1px solid var(--color-border);flex-shrink:0;align-items:center;gap:8px;min-height:48px;padding:0 12px;display:flex}.appbar-left{align-items:center;gap:6px;min-width:0;display:flex}.appbar-right{align-items:center;gap:6px;display:flex}.appbar-center{flex:0 auto;justify-content:center;align-items:center;min-width:0;display:flex}.appbar-center .appbar-search{width:38vw;min-width:300px;max-width:440px}.appbar-spacer{flex:1 1 0;min-width:12px}.appbar-logo{flex:none;width:24px;height:24px;display:block}.appbar-vdiv{background:var(--color-border);flex:none;width:1px;height:22px;margin:0 3px}.appbar-menubtn{height:30px;color:var(--color-text-primary);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:6px;padding:0 10px;font-size:13px;font-weight:500;display:inline-flex}.appbar-menubtn:hover,.appbar-menubtn.open{background:var(--color-bg-elevated)}.appbar-menubtn .chev{color:var(--color-text-muted);font-size:10px}.appbar .templates-menu-wrap>.btn{height:30px;color:var(--color-text-primary);background:0 0;border:1px solid #0000;border-radius:6px;padding:0 10px;font-size:13px;font-weight:500}.appbar .templates-menu-wrap>.btn:hover{background:var(--color-bg-elevated)}.appbar-name{border-radius:6px;align-items:center;gap:8px;max-width:300px;height:30px;padding:0 8px;display:inline-flex;overflow:hidden}.appbar-name b{color:var(--color-text-primary);white-space:nowrap;font-size:13px;font-weight:600}.appbar-name .muted{color:var(--color-text-muted);white-space:nowrap;font-size:13px}.appbar-status{color:var(--color-text-muted);align-items:center;gap:5px;font-size:11px;display:inline-flex}.appbar-status .dot{border-radius:50%;flex:none;width:6px;height:6px}.appbar-status.saved .dot{background:var(--color-success)}.appbar-status.warn{color:var(--color-warning)}.appbar-status.warn .dot{background:var(--color-warning)}.appbar-dirty{color:var(--color-warning);margin-left:1px;font-size:15px;font-weight:700;line-height:1}.appbar-avatar-btn img{display:block}.appbar-igrp{align-items:center;gap:2px;display:inline-flex}.appbar-ibtn{width:30px;height:30px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.appbar-ibtn:hover:not(:disabled),.appbar-ibtn.open{background:var(--color-bg-elevated);color:var(--color-text-primary)}.appbar-ibtn:disabled{opacity:.4;cursor:default}.appbar-ibtn svg{width:16px;height:16px}.appbar-search{border:1px solid var(--color-border);background:var(--color-bg-app);height:30px;color:var(--color-text-muted);cursor:pointer;min-width:176px;font:inherit;border-radius:7px;align-items:center;gap:8px;padding:0 9px 0 10px;display:inline-flex}.appbar-search:hover{border-color:var(--color-accent)}.appbar-search svg{flex:none;width:14px;height:14px}.appbar-search .ph{text-align:left;white-space:nowrap;flex:1;font-size:12.5px}.appbar-toggle{border:1px solid var(--color-border);height:30px;color:var(--color-text-muted);font:inherit;cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:7px;padding:0 11px;font-size:13px;font-weight:500;display:inline-flex}.appbar-toggle:hover{background:var(--color-bg-elevated);color:var(--color-text-primary)}.appbar-toggle .led{background:var(--color-text-muted);border-radius:50%;flex:none;width:7px;height:7px}.appbar-toggle.on{color:var(--color-error);border-color:color-mix(in srgb, var(--color-error) 50%, transparent);animation:1.8s ease-in-out infinite live-pulse}.appbar-toggle.on .led{background:var(--color-error);box-shadow:0 0 7px var(--color-error)}.hmenu-wrap{display:inline-flex;position:relative}.hmenu{z-index:200;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:10px;padding:6px;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 18px 50px -12px #0009,0 0 0 1px #00000040}.hmenu-right{left:auto;right:0}.hmenu-item{width:100%;height:32px;color:var(--color-text-primary);font:inherit;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:11px;padding:0 9px;font-size:13px;display:flex}.hmenu-item:hover:not(:disabled){background:var(--color-accent);color:#fff}.hmenu-item:hover:not(:disabled) .hmenu-ic svg,.hmenu-item:hover:not(:disabled) .hmenu-kbd{color:#fff}.hmenu-item:disabled{opacity:.4;cursor:default}.hmenu-item.danger{color:var(--color-error)}.hmenu-item.danger:hover:not(:disabled){background:var(--color-error);color:#fff}.hmenu-ic{flex:none;display:inline-flex}.hmenu-ic svg{width:15px;height:15px;color:var(--color-text-muted)}.hmenu-lbl{white-space:nowrap;flex:1}.hmenu-kbd{font-family:var(--font-mono,ui-monospace, monospace);color:var(--color-text-muted);font-size:11px}.hmenu-sep{background:var(--color-border);height:1px;margin:6px 4px}.ct-menu{max-height:60vh;overflow-y:auto}.ct-empty{color:var(--color-text-muted);text-align:center;padding:8px 9px;font-size:12px}.ct-error{color:var(--color-error);padding:4px 9px 2px;font-size:11px}.ct-row{align-items:center;gap:2px;display:flex}.ct-apply{min-width:0;height:32px;color:var(--color-text-primary);font:inherit;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px;flex:1;align-items:center;gap:11px;padding:0 9px;font-size:13px;display:flex}.ct-apply:hover{background:var(--color-accent);color:#fff}.ct-apply:hover .hmenu-ic svg{color:#fff}.ct-apply .hmenu-lbl{text-overflow:ellipsis;overflow:hidden}.ct-delete{width:26px;height:32px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:none;font-size:16px;line-height:1}.ct-delete:hover{background:var(--color-error);color:#fff}.ct-save-row{align-items:center;gap:4px;padding:2px;display:flex}.ct-save-input{background:var(--color-bg-base,#0e1116);border:1px solid var(--color-border);min-width:0;height:30px;color:var(--color-text-primary);font:inherit;border-radius:6px;flex:1;padding:0 8px;font-size:13px}.ct-save-input:focus{border-color:var(--color-accent);outline:none}.ct-save-confirm{background:var(--color-accent);color:#fff;cursor:pointer;border:none;border-radius:6px;flex:none;width:30px;height:30px;font-size:14px}.ct-save-confirm:hover{filter:brightness(1.1)}.appbar .error-badge{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;max-width:240px;overflow:hidden}@media (width<=1080px){.appbar-status{display:none}.appbar-name{max-width:180px}}@media (width<=900px){.appbar-name{max-width:140px}.appbar-vdiv{margin:0 2px}.appbar .error-badge{max-width:160px}}@media (width<=768px){.appbar-grp-edit,.appbar-vdiv-edit{display:none}}@media (width<=760px){.appbar-tlabel{display:none}.appbar-toggle{padding:0 9px}}@media (width<=600px){.appbar{gap:4px;padding:0 8px}.appbar-grp-file,.appbar-vdiv-file,.appbar-grp-share,.appbar-vdiv-share,.appbar-theme-btn,.appbar-vdiv-theme,.templates-menu-wrap,.appbar-vdiv,.appbar-name,.appbar .error-badge{display:none}}.appbar-save-btn{position:relative}.appbar-dirty-dot{display:none}@media (width<=600px){.appbar-save-btn.has-dirty .appbar-dirty-dot{background:var(--color-warning);pointer-events:none;border-radius:50%;width:6px;height:6px;display:block;position:absolute;top:4px;right:4px}}.templates-menu-wrap{position:relative}.templates-menu-status{color:var(--color-text-muted);padding:8px 12px;font-size:12px}.templates-menu-status.tone-bad{color:var(--color-error)}.tpl-gallery{flex-direction:column;display:flex}.tpl-gallery-search{width:100%}.tpl-gallery-note{color:var(--color-text-muted);margin:8px 0 4px;font-size:11px;line-height:1.45}.tpl-cat-label{text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-section);align-items:center;gap:7px;margin:14px 0 8px;font-size:11px;font-weight:700;display:flex}.tpl-cat-dot{border-radius:50%;flex:none;width:8px;height:8px}.tpl-cat-count{color:var(--color-text-muted);margin-left:2px;font-weight:500}.tpl-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;display:grid}.tpl-tile{text-align:left;background:var(--color-bg-surface);border:1px solid var(--color-border);cursor:pointer;border-radius:8px;align-items:flex-start;gap:10px;padding:10px;transition:border-color .12s,background .12s,transform 60ms;display:flex}.tpl-tile:hover{border-color:var(--color-accent);background:var(--color-bg-item-hover)}.tpl-tile:active{transform:translateY(1px)}.tpl-tile-icon{border:1px solid;border-radius:8px;flex:none;justify-content:center;align-items:center;width:34px;height:34px;font-size:17px;line-height:1;display:flex}.tpl-tile-body{flex-direction:column;gap:2px;min-width:0;display:flex}.tpl-tile-title{color:var(--color-text);font-size:13px;font-weight:600}.tpl-tile-desc{color:var(--color-text-muted);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-size:11px;line-height:1.35;display:-webkit-box;overflow:hidden}.tpl-tag-filter{flex-wrap:wrap;gap:6px;margin:8px 0 4px;display:flex}.tpl-tag-chip{border:1px solid var(--color-border);background:var(--color-surface-2,transparent);color:var(--color-text-muted);cursor:pointer;border-radius:999px;padding:3px 10px;font-size:11px;font-weight:600;transition:background .12s,color .12s,border-color .12s}.tpl-tag-chip:hover{color:var(--color-text);border-color:var(--color-accent)}.tpl-tag-chip.active{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.tpl-tag-clear{opacity:.8;font-weight:500}.tpl-tile-tags{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.tpl-tile-tag{background:var(--color-surface-2,#ffffff0f);border:1px solid var(--color-border);color:var(--color-text-muted);border-radius:999px;padding:1px 6px;font-size:9.5px;font-weight:600;line-height:1.5}.tpl-tile-tag.active{background:color-mix(in srgb, var(--color-accent) 22%, transparent);border-color:var(--color-accent);color:var(--color-text)}@media (width<=560px){.tpl-grid{grid-template-columns:1fr}}.modal-backdrop{z-index:1000;background:#0000008c;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal-panel{background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:8px;outline:none;flex-direction:column;max-height:80vh;display:flex;overflow:hidden;box-shadow:0 12px 48px #0000008c}.modal-header{border-bottom:1px solid var(--color-border-faint);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.modal-title{color:var(--color-text);margin:0;font-size:14px;font-weight:600}.modal-close{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:2px 6px;font-size:14px}.modal-close:hover{background:var(--color-bg-item-hover);color:var(--color-text)}.modal-body{color:var(--color-text);flex-direction:column;gap:10px;padding:16px;font-size:12px;display:flex;overflow-y:auto}@media (height<=540px){.modal-backdrop{padding:6px}.modal-panel{max-height:95vh}.modal-body{padding:12px}}.modal-footer{border-top:1px solid var(--color-border-faint);background:var(--color-bg-surface);justify-content:flex-end;gap:8px;padding:10px 16px;display:flex}.dialog-label{color:var(--color-text-section);text-transform:uppercase;letter-spacing:.5px;flex-direction:column;gap:4px;font-size:11px;display:flex}.dialog-input{background:var(--color-bg-input);border:1px solid var(--color-border);color:var(--color-text);border-radius:4px;outline:none;padding:6px 10px;font-size:13px}.dialog-input:focus{border-color:var(--color-accent)}.dialog-hint{color:var(--color-text-muted);font-size:11px;font-style:italic}.dialog-hint.tone-bad{color:var(--color-error);font-style:normal}.dialog-hint.tone-warn{color:var(--color-warning);font-style:normal}.dialog-empty{text-align:center;color:var(--color-text-muted);padding:18px 8px;font-style:italic}.dialog-section{flex-direction:column;gap:6px;margin-top:4px;display:flex}.dialog-section-label{text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-section);font-size:10px}.share-clone-toggle{border:1px solid var(--color-border);background:var(--color-bg-input,#ffffff05);cursor:pointer;border-radius:8px;align-items:flex-start;gap:8px;margin:10px 0 2px;padding:9px 11px;font-size:13px;display:flex}.share-clone-toggle input{cursor:pointer;flex:none;width:15px;height:15px;margin-top:2px}.share-clone-toggle .account-muted{font-size:12px}.ba-empty{font-style:normal;line-height:1.5}.ba-textarea{resize:vertical;min-height:38px;font-family:inherit}.ba-row{align-items:center;gap:8px;padding:4px 0;display:flex}.ba-row.is-off{opacity:.55}.ba-check{flex:none;display:inline-flex}.ba-check input{cursor:pointer;width:15px;height:15px}.ba-flex{flex:1;min-width:0}.ba-select{text-transform:capitalize;flex:none;width:110px}.ba-param-src{width:130px;color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;flex:none;font-size:11px;overflow:hidden}.ba-param-dot{opacity:.5;margin:0 4px}.ba-default{flex:none;width:92px}.ba-default-bool{justify-content:center;align-items:center;display:inline-flex}.ba-default-bool input{width:15px;height:15px}.ba-default-color{border:1px solid var(--color-border);background:var(--color-bg-input);cursor:pointer;border-radius:4px;width:40px;height:30px;padding:2px}.ba-manage-row{justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;display:flex}.ba-manage-meta{flex-direction:column;gap:1px;min-width:0;display:flex}.ba-manage-name{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.ba-manage-sub{color:var(--color-text-muted);font-size:11px}.ba-manage-actions{flex:none;gap:6px;display:flex}.ba-manage-del{color:var(--color-error)}.dialog-strategy-list{border:1px solid var(--color-border-faint);border-radius:4px;flex-direction:column;gap:2px;max-height:320px;display:flex;overflow-y:auto}.dialog-strategy-row{text-align:left;cursor:pointer;color:inherit;border:none;border-bottom:1px solid var(--color-border-faint);background:0 0;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;font-size:12px;display:flex}.dialog-strategy-row:last-child{border-bottom:none}.dialog-strategy-row:hover:not(:disabled){background:var(--color-bg-item-hover)}.dialog-strategy-row:disabled{cursor:not-allowed;opacity:.5}.dialog-strategy-row.selected{background:var(--color-accent-soft)}.dialog-strategy-row.current{border-left:3px solid var(--color-accent)}.dialog-strategy-name{align-items:center;gap:8px;font-weight:500;display:flex}.dialog-strategy-tag{text-transform:uppercase;letter-spacing:.4px;background:var(--color-accent);color:var(--color-bg-app);border-radius:8px;padding:1px 6px;font-size:9px;display:inline-block}.dialog-strategy-meta{color:var(--color-text-muted);font-variant-numeric:tabular-nums;font-size:10px}.btn-primary{background:var(--color-accent);color:var(--color-text-on-vivid)}.btn-primary:hover:not(:disabled){background:var(--color-accent-strong)}.btn-primary:disabled,.btn-secondary:disabled,.btn-danger:disabled{opacity:.45;cursor:not-allowed}.btn-danger{background:var(--color-error-bg);color:var(--color-error-text)}.btn-danger:hover{background:var(--color-error-bg-hover)}.engine-banner{color:var(--color-error);background:var(--color-error-bg-mid);border-bottom:1px solid var(--color-error);align-items:center;gap:8px;padding:8px 16px;font-size:13px;display:flex}.engine-banner-dot{background:var(--color-error);border-radius:50%;flex:none;width:8px;height:8px}.error-badge{color:var(--color-error);background:var(--color-error-bg-mid);text-overflow:ellipsis;white-space:nowrap;border-radius:4px;max-width:300px;padding:4px 10px;font-size:12px;overflow:hidden}.btn{cursor:pointer;border:none;border-radius:4px;padding:6px 16px;font-size:13px;font-weight:500;transition:background .15s}.btn-secondary{background:var(--color-border);color:var(--color-text-button)}.btn-secondary:hover{background:var(--color-border-strong)}.theme-toggle{width:32px;padding:6px 0;font-size:14px;line-height:1}.main-root{flex:1;min-height:0;position:relative;overflow:hidden}.main-content{transition:margin-right .2s;position:absolute;inset:0;overflow:hidden}.main-content.dragging{transition:none}.main-stack,.main-root-vstack{width:100%;height:100%}.main-content-panel{min-height:0;position:relative;overflow:hidden}.tester-bottom-panel{background:var(--color-bg-surface-2);border-top:1px solid var(--color-border-pane);flex-direction:column;min-height:0;display:flex;overflow:hidden}.work-panel{background:var(--color-bg-pane);flex-direction:column;min-height:0;display:flex;overflow:hidden}.panel-header{background:var(--color-bg-header);border-bottom:1px solid var(--color-border-pane);text-transform:uppercase;letter-spacing:.6px;height:40px;color:var(--color-text-muted-2);flex-shrink:0;justify-content:space-between;align-items:center;padding:0 8px;font-size:11px;font-weight:600;display:flex}.panel-title{-webkit-user-select:none;user-select:none}.panel-header-slot{text-transform:none;letter-spacing:normal;flex:auto;align-items:center;gap:8px;min-width:0;margin-left:12px;display:flex}.panel-header-slot .symbol-picker-bare .symbol-picker-row{border:1px solid var(--color-border);background:var(--color-bg-app);border-radius:8px;gap:7px;height:30px;padding:0 9px;transition:border-color .12s}.panel-header-slot .symbol-picker-bare .symbol-picker-row:hover{border-color:var(--color-border-strong,#39455c)}.panel-header-slot .symbol-picker-bare .symbol-picker-row:focus-within{border-color:var(--color-accent)}.symbol-asset-glyph{flex:none;width:16px;height:16px}.panel-header-slot .symbol-picker-bare select{appearance:none;min-width:88px;height:100%;color:var(--color-text-primary);letter-spacing:-.01em;cursor:pointer;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%239AA4B2' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>") right 1px center no-repeat;border:none;padding:0 19px 0 0;font-size:14px;font-weight:700}.panel-header-slot .symbol-picker-bare select:focus{outline:none}.chart-head-div{background:var(--color-border);flex:none;width:1px;height:22px}.chart-head-spacer{flex:auto;min-width:8px}.tf-seg{border:1px solid var(--color-border);background:var(--color-bg-app);border-radius:8px;flex:none;gap:2px;padding:2px;display:inline-flex}.tf-seg-btn{font:inherit;letter-spacing:-.02em;text-transform:none;color:var(--color-text-muted);cursor:pointer;font-size:12px;font-weight:600;font-family:var(--font-mono,ui-monospace, monospace);background:0 0;border:none;border-radius:6px;padding:4px 9px}.tf-seg-btn:hover{color:var(--color-text-primary)}.tf-seg-btn.on{background:var(--color-bg-elevated);color:var(--color-accent)}.tf-select{font:inherit;font-size:12px;font-weight:600;font-family:var(--font-mono,ui-monospace, monospace);border:1px solid var(--color-border);background:var(--color-bg-app);height:28px;color:var(--color-text-primary);cursor:pointer;border-radius:7px;flex:none;padding:0 6px}.tf-select:hover{border-color:var(--color-accent)}.chart-tools{border:1px solid var(--color-border);background:var(--color-bg-app);border-radius:8px;flex:none;gap:2px;padding:2px;display:inline-flex}.chart-tool{width:28px;height:26px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:0;display:inline-flex}.chart-tool:hover{background:var(--color-bg-elevated);color:var(--color-text-primary)}.chart-tool.on{background:var(--color-bg-elevated);color:var(--color-accent)}.chart-tool svg{width:15px;height:15px}.chart-tool.chart-tz{width:auto;font:inherit;appearance:none;padding:0 6px;font-size:12px;line-height:26px}.chart-tool.chart-tz:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.chart-tool.chart-tz option{color:var(--color-text-primary);background:var(--color-bg-elevated)}@media (width<=1100px){.panel-header-slot{gap:6px}.tf-seg-btn{padding:4px 7px}}@media (width<=880px){.chart-head-div{display:none}.panel-header-slot .symbol-picker-bare select{min-width:76px;font-size:13px}}.chart-clock{z-index:4;pointer-events:none;font-variant-numeric:tabular-nums;letter-spacing:.3px;color:var(--color-text-muted);opacity:.75;-webkit-user-select:none;user-select:none;font-size:12px;font-weight:500;position:absolute;bottom:32px;right:70px}.chart-data-loading{pointer-events:none;z-index:5;opacity:0;background:#0f10148c;justify-content:center;align-items:center;animation:.25s .8s forwards chart-data-loading-fade;display:flex;position:absolute;inset:0}@keyframes chart-data-loading-fade{to{opacity:1}}.chart-data-loading-text{color:var(--color-text-bright,#ececec);letter-spacing:.4px;background:#0f1014d9;border-radius:4px;padding:6px 12px;font-size:12px;font-weight:500}.panel-header-btn{background:var(--color-bg-elevated);border:1px solid var(--color-border-pane);color:var(--color-text-secondary);cursor:pointer;border-radius:5px;justify-content:center;align-items:center;width:24px;height:22px;padding:0;line-height:1;transition:background .12s,color .12s,border-color .12s;display:flex}.panel-header-btn:hover{background:var(--color-accent-bg-soft,var(--color-bg-hover));color:var(--color-accent-bright,var(--color-text-bright));border-color:var(--color-accent,var(--color-border-strong))}.panel-header-btn svg{width:14px;height:14px;display:block}.panel-body{flex:1;min-height:0;position:relative;overflow:hidden}.chart-container{background:var(--color-bg-pane);width:100%;height:100%}.chart-wrap{width:100%;height:100%;min-height:200px;position:relative}.object-tree-panel{background:var(--color-bg-elevated);border:1px solid var(--color-border);z-index:6;width:280px;max-height:calc(100% - 64px);box-shadow:var(--shadow-popover);border-radius:6px;flex-direction:column;display:flex;position:absolute;top:44px;right:8px;overflow:hidden}.drawing-context-menu{z-index:8;background:#131722f7;border:1px solid #ffffff1a;border-radius:4px;width:180px;padding:4px 0;font-size:12px;position:absolute;box-shadow:0 6px 18px #00000080}.drawing-context-row{border-bottom:1px solid #ffffff0f;justify-content:space-between;align-items:center;padding:6px 10px;display:flex}.drawing-context-label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:11px}.drawing-context-item{width:100%;color:var(--color-text-primary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:6px 10px;display:flex}.drawing-context-item:hover:not(:disabled){background:#ffffff0f}.drawing-context-item:disabled{opacity:.4;cursor:not-allowed}.drawing-context-icon{text-align:center;width:16px;font-size:13px;display:inline-block}.drawing-context-divider{background:#ffffff0f;height:1px;margin:4px 0}.drawing-context-danger:not(:disabled){color:#ef5350}.object-tree-header{background:var(--color-bg-surface-2);border-bottom:1px solid var(--color-border-faint);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary);justify-content:space-between;align-items:center;padding:8px 10px;font-size:11px;font-weight:600;display:flex}.object-tree-close{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:16px;line-height:1}.object-tree-close:hover{color:var(--color-text-primary)}.object-tree-body{flex-direction:column;display:flex;overflow-y:auto}.object-tree-section-title{text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-faint);background:var(--color-bg-surface-2);border-bottom:1px solid var(--color-border-faint);z-index:1;padding:7px 10px 5px;font-size:10px;font-weight:600;position:sticky;top:0}.object-tree-empty{color:var(--color-text-dim);text-align:center;padding:12px;font-size:11px}.object-tree-pane-label{letter-spacing:.04em;color:var(--color-text-faint);padding:4px 10px;font-size:10px}.object-tree-row{border-bottom:1px solid var(--color-border-faint);align-items:center;gap:5px;padding:5px 8px;transition:background .1s;display:flex}.object-tree-row.is-drawing{cursor:pointer}.object-tree-row.is-output{padding-left:26px}.object-tree-row:hover{background:var(--color-overlay-light)}.object-tree-row.is-selected{background:var(--color-accent-faint)}.object-tree-caret{width:14px;height:18px;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0;font-size:10px;line-height:1}.object-tree-caret:hover{color:var(--color-text-primary)}.object-tree-swatch{border:1px solid var(--color-overlay-strong);border-radius:2px;flex-shrink:0;width:11px;height:11px}.object-tree-swatch.is-button{cursor:pointer;padding:0}.object-tree-swatch.is-button:hover{outline:1px solid var(--color-border-strong)}.object-tree-icon{text-align:center;flex-shrink:0;width:16px;font-size:13px;display:inline-block}.object-tree-label{color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;overflow:hidden}.object-tree-row.is-output .object-tree-label{color:var(--color-text-secondary);font-size:11px}.object-tree-toggle{width:19px;height:19px;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:11px;line-height:1;display:inline-flex}.object-tree-toggle:hover{background:var(--color-overlay-light);color:var(--color-text-primary)}.object-tree-toggle.is-on{color:var(--color-accent)}.object-tree-toggle.is-off{opacity:.5}.object-tree-remove{width:19px;height:19px;color:var(--color-error);opacity:.8;cursor:pointer;background:0 0;border:none;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:15px;line-height:1;display:inline-flex}.object-tree-remove:hover:not(:disabled){background:var(--color-danger-bg);color:var(--color-error);opacity:1}.object-tree-remove:disabled{opacity:.3;cursor:not-allowed}.ai-credits-meter{flex-direction:column;gap:4px;min-width:150px;display:flex}.ai-credits-meter-inline{flex:1;min-width:130px}.ai-credits-meter-head{justify-content:space-between;align-items:baseline;gap:8px;font-size:11px;display:flex}.ai-credits-meter-label{color:var(--color-text-faint);text-transform:uppercase;letter-spacing:.05em}.ai-credits-meter-value{color:var(--color-text-muted);font-variant-numeric:tabular-nums}.ai-credits-meter-track{background:var(--color-bg-input);border:1px solid var(--color-border);border-radius:3px;height:6px;overflow:hidden}.ai-credits-meter-fill{border-radius:inherit;background:var(--color-accent);height:100%;transition:width .25s}.ai-credits-meter-fill.is-low{background:var(--color-error)}.ai-credits-meter-fill.is-unlimited{background:var(--color-success)}.session-legend{background:var(--color-bg-elevated);border:1px solid var(--color-border);box-shadow:var(--shadow-popover);z-index:5;pointer-events:none;border-radius:5px;flex-direction:column;gap:3px;padding:6px 8px;font-size:11px;display:flex;position:absolute;bottom:30px;left:8px}.session-legend-item{align-items:center;gap:6px;display:flex}.session-legend-swatch{border:1px solid var(--color-border-strong);border-radius:2px;flex-shrink:0;width:11px;height:11px}.session-legend-name{color:var(--color-text-primary);min-width:58px}.session-legend-window{color:var(--color-text-faint);font-variant-numeric:tabular-nums}.drawing-toolbar{background:color-mix(in srgb, var(--color-bg-elevated) 92%, transparent);border:1px solid var(--color-border);z-index:5;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:10px;flex-direction:column;gap:3px;padding:5px;display:flex;position:absolute;top:10px;left:10px;box-shadow:0 8px 22px -12px #0009}.drawing-tool-btn{width:30px;height:30px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;justify-content:center;align-items:center;font-size:15px;line-height:1;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.drawing-tool-btn:hover:not(:disabled){background:var(--color-bg-surface);color:var(--color-text-primary)}.drawing-tool-btn:disabled{opacity:.35;cursor:not-allowed}.drawing-tool-btn.is-active{background:color-mix(in srgb, var(--color-accent) 18%, transparent);color:var(--color-accent,#4fc3f7);border-color:#0000}.drawing-toolbar-sep{background:var(--color-border-faint,#ffffff14);height:1px;margin:3px 4px}.drawing-tool-wrap{width:30px;height:30px;position:relative}.drawing-tool-wrap .drawing-tool-btn{width:100%;height:100%}.drawing-tool-arrow{color:#ffffff73;cursor:pointer;background:0 0;border:none;border-radius:0 0 4px;justify-content:center;align-items:center;width:10px;height:10px;padding:0;font-size:8px;line-height:1;transition:color .12s,background .12s;display:inline-flex;position:absolute;bottom:0;right:0}.drawing-tool-arrow:hover{color:var(--color-text-primary);background:#ffffff14}.drawing-tool-arrow.is-open{color:var(--color-accent,#4fc3f7)}.drawing-tool-flyout{z-index:6;white-space:nowrap;background:#131722f7;border:1px solid #ffffff1a;border-radius:6px;flex-direction:row;gap:4px;padding:4px;display:flex;position:absolute;top:-4px;left:calc(100% + 6px);box-shadow:0 4px 12px #0006}.chart-wrap.is-placing-drawing,.chart-wrap.is-placing-drawing canvas{cursor:crosshair!important}.drawing-inspector{z-index:5;background:#131722eb;border:1px solid #ffffff14;border-radius:6px;flex-direction:column;gap:6px;min-width:160px;padding:8px 10px;display:flex;position:absolute;top:44px;right:8px;box-shadow:0 4px 12px #0000004d}.drawing-inspector-title{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:600}.drawing-inspector-row{color:var(--color-text-primary);align-items:center;gap:8px;font-size:12px;display:flex}.drawing-inspector-label{width:50px;color:var(--color-text-secondary)}.drawing-inspector-range{flex:1;margin:0}.drawing-inspector-readout{text-align:right;width:18px;color:var(--color-text-faint);font-variant-numeric:tabular-nums}.drawing-inspector-text{color:var(--color-text-primary);background:#ffffff0a;border:1px solid #ffffff1a;border-radius:3px;outline:none;flex:1;padding:3px 6px;font-size:12px}.drawing-inspector-text:focus{border-color:var(--color-accent,#4fc3f7);background:#ffffff0f}.drawing-inspector-delete{color:#ef5350e6;cursor:pointer;background:0 0;border:1px solid #ef535066;border-radius:4px;margin-top:4px;padding:4px 8px;font-size:11px;transition:background .12s,color .12s}.drawing-inspector-delete:hover:not(:disabled){color:#ef5350;background:#ef535026}.drawing-inspector-delete:disabled{opacity:.4;cursor:not-allowed}.drawing-inspector-actions{align-items:center;gap:6px;margin-top:4px;display:flex}.drawing-inspector-actions .drawing-inspector-delete{margin-top:0;margin-left:auto}.drawing-inspector-toggle{width:26px;height:26px;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:1px solid #ffffff1a;border-radius:4px;justify-content:center;align-items:center;font-size:13px;line-height:1;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.drawing-inspector-toggle:hover{color:var(--color-text-primary);background:#ffffff0f}.drawing-inspector-toggle.is-on{color:var(--color-accent,#4fc3f7);background:#4fc3f72e;border-color:#4fc3f780}.drawing-inspector-row .drawing-inspector-toggle{width:auto;min-width:38px;padding:0 8px;font-size:11px;font-weight:600}.drawing-inspector-ladder{background:#4caf500f;border:1px solid #4caf502e;border-radius:5px;flex-direction:column;gap:4px;margin:2px 0 4px;padding:6px;display:flex}.drawing-inspector-rung{align-items:center;gap:5px;display:flex}.drawing-inspector-rung-tag{color:#9ad79ef2;letter-spacing:.02em;width:30px;font-size:10px;font-weight:700}.drawing-inspector-num{min-width:0;color:var(--color-text-primary);font-variant-numeric:tabular-nums;background:#ffffff0a;border:1px solid #ffffff1a;border-radius:3px;outline:none;flex:1;padding:3px 5px;font-size:11px}.drawing-inspector-num:focus{border-color:var(--color-accent,#4fc3f7);background:#ffffff0f}.drawing-inspector-num-pct{text-align:right;flex:0 0 42px}.drawing-inspector-rung-pct{color:var(--color-text-faint);margin-left:-2px;font-size:10px}.drawing-inspector-rung-del{color:#ef5350d9;cursor:pointer;background:0 0;border:1px solid #ef535059;border-radius:3px;justify-content:center;align-items:center;width:20px;height:20px;font-size:13px;line-height:1;display:inline-flex}.drawing-inspector-rung-del:hover:not(:disabled){background:#ef535026}.drawing-inspector-rung-del:disabled{opacity:.35;cursor:not-allowed}.drawing-inspector-rung-add{color:#9ad79ef2;cursor:pointer;background:0 0;border:1px dashed #4caf5073;border-radius:4px;margin-top:2px;padding:4px 8px;font-size:11px}.drawing-inspector-rung-add:hover{background:#4caf501f}.drawing-inspector-chip{left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));background:var(--color-bg-elevated);border:1px solid var(--color-border);color:var(--color-text-primary);text-align:left;cursor:pointer;z-index:20;border-radius:10px;align-items:center;gap:10px;padding:10px 14px;font-size:14px;display:flex;position:absolute;box-shadow:0 4px 16px #0000004d}.drawing-inspector-chip-dot{border:1px solid var(--color-border-strong);border-radius:3px;flex:none;width:14px;height:14px}.drawing-inspector-chip-label{color:var(--color-text-primary);font-weight:600}.drawing-inspector-chip-hint{color:var(--color-text-faint);font-size:12px}.drawing-inspector-chip-caret{color:var(--color-accent);margin-left:auto;font-size:13px}.drawing-inspector-collapse{cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:0;display:flex}.drawing-inspector-collapse .drawing-inspector-title{flex:1}.drawing-inspector-collapse .drawing-inspector-chip-caret{color:var(--color-text-faint)}@media (width<=768px){.drawing-inspector{min-width:0;padding:12px 14px calc(12px + env(safe-area-inset-bottom));background:var(--color-bg-elevated);border:none;border-top:1px solid var(--color-border);z-index:20;border-radius:12px 12px 0 0;gap:10px;max-height:45vh;inset:auto 0 0;overflow-y:auto;box-shadow:0 -6px 20px #00000059}.drawing-inspector-title{font-size:12px}.drawing-inspector-row,.drawing-inspector-actions{gap:12px;font-size:14px}.drawing-inspector-label{width:84px}.drawing-inspector-range{height:28px}.drawing-inspector-toggle{width:36px;height:36px;font-size:16px}.drawing-inspector-row .drawing-inspector-toggle{min-width:52px;height:36px;font-size:13px}.drawing-inspector-delete{padding:9px 16px;font-size:13px}.drawing-inspector-text,.drawing-inspector-num{padding:7px 8px;font-size:14px}}.resize-handle-horizontal{background:var(--color-border-pane);cursor:row-resize;height:5px;transition:background .12s;position:relative}.resize-handle-horizontal:after{content:"";background:var(--color-border-strong);border-radius:2px;width:32px;height:2px;transition:background .12s,opacity .12s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.resize-handle-horizontal:hover,.resize-handle-horizontal[data-resize-handle-active]{background:var(--color-accent)}.resize-handle-horizontal:hover:after,.resize-handle-horizontal[data-resize-handle-active]:after{opacity:0}.resize-handle-vertical{background:var(--color-border-pane);cursor:col-resize;width:5px;transition:background .12s;position:relative}.resize-handle-vertical:after{content:"";background:var(--color-border-strong);border-radius:2px;width:2px;height:32px;transition:background .12s,opacity .12s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.resize-handle-vertical:hover,.resize-handle-vertical[data-resize-handle-active]{background:var(--color-accent)}.resize-handle-vertical:hover:after,.resize-handle-vertical[data-resize-handle-active]:after{opacity:0}@keyframes live-pulse{0%,to{box-shadow:0 0 #ef535080}50%{box-shadow:0 0 0 4px #ef535000}}@media (prefers-reduced-motion:reduce){.appbar-toggle.on{animation:none}}.tester-sidebar{background:var(--color-bg-surface-2);border-left:1px solid var(--color-border-pane);z-index:100;box-shadow:var(--shadow-sidebar);flex-direction:column;transition:width .2s;display:flex;position:absolute;top:0;bottom:0;right:0}.tester-sidebar.dragging{transition:none}.tester-sidebar.closed{box-shadow:none}.tester-resize-handle{cursor:col-resize;z-index:11;background:0 0;width:6px;transition:background .12s;position:absolute;top:0;bottom:0;left:-3px}.tester-resize-handle:hover,.tester-resize-handle:active{background:var(--color-accent-bright)}.tester-collapse-btn{border:1px solid var(--color-border-strong);background:var(--color-bg-elevated);width:26px;height:22px;color:var(--color-text-secondary);cursor:pointer;border-radius:5px;justify-content:center;align-items:center;padding:0;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.tester-collapse-btn:hover{background:var(--color-accent-bg-soft,var(--color-bg-hover));color:var(--color-accent-bright,var(--color-text-bright));border-color:var(--color-accent,var(--color-border-strong))}.tester-collapse-btn svg{width:15px;height:15px;display:block}.collapsed-rail{border:none;border-left:1px solid var(--color-border-strong);background:var(--color-bg-header);cursor:pointer;width:100%;height:100%;color:var(--color-text-muted-2);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:0;transition:background .12s,color .12s;display:flex}.collapsed-rail:hover{background:var(--color-bg-hover);color:var(--color-accent-bright,var(--color-text-bright))}.rail-chevron{flex:none;width:16px;height:16px;display:block}.rail-label{writing-mode:vertical-rl;text-transform:uppercase;letter-spacing:1.2px;color:inherit;white-space:nowrap;font-size:10px;font-weight:600;transform:rotate(180deg)}.node-editor-wrapper{width:100%;height:100%;display:flex;position:relative;overflow:hidden}.editor-tools{align-items:center;gap:3px;margin-left:auto;display:inline-flex}.editor-undo-group{align-items:center;gap:3px;display:none}.editor-undo-div{background:var(--color-border);width:1px;height:18px;margin:0 3px}@media (width<=768px){.editor-undo-group{display:inline-flex}}.editor-tool{border:1px solid var(--color-border-pane);background:var(--color-bg-elevated);width:28px;height:24px;color:var(--color-text-secondary);cursor:pointer;border-radius:5px;justify-content:center;align-items:center;padding:0;transition:background .12s,color .12s,border-color .12s;display:inline-flex;position:relative}.editor-tool:hover:not(:disabled),.editor-tool.open{background:var(--color-accent-bg-soft,var(--color-bg-hover));color:var(--color-accent-bright,var(--color-text-bright));border-color:var(--color-accent,var(--color-border-strong))}.editor-tool:disabled{opacity:.45;cursor:default}.editor-tool svg{width:15px;height:15px;display:block}.editor-tool-menu{display:inline-flex;position:relative}.editor-ai-menu{flex-direction:column;min-width:0;padding:4px;display:flex}.editor-ai-item{text-align:left;cursor:pointer;color:var(--color-text-primary);background:0 0;border:none;border-radius:7px;flex-direction:row;align-items:flex-start;gap:10px;padding:8px 10px;display:flex}.editor-ai-ic{background:color-mix(in srgb, currentColor 15%, transparent);border-radius:7px;flex:none;justify-content:center;align-items:center;width:26px;height:26px;margin-top:1px;display:inline-flex}.editor-ai-ic svg{width:16px;height:16px}.ai-ic-generate{color:#a78bfa}.ai-ic-edit{color:#38bdf8}.ai-ic-explain{color:#fbbf24}.editor-ai-item-body{flex-direction:column;gap:2px;min-width:0;display:flex}.explain-head{border:1px solid var(--color-border);background:var(--color-bg-surface);border-radius:10px;align-items:flex-start;gap:12px;margin-bottom:10px;padding:12px 14px;display:flex}.explain-summary{margin:0;line-height:1.5}.explain-section{border:1px solid var(--color-border);background:var(--color-bg-surface);border-radius:10px;margin:0 0 10px;padding:12px 14px}.explain-section-title{text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted);align-items:center;gap:6px;margin-bottom:5px;font-size:11px;font-weight:700;display:flex}.explain-section-how .ai-section-icon{color:#38bdf8}.explain-section-when .ai-section-icon{color:#34d399}.explain-section-watch .ai-section-icon,.explain-section-watch .explain-section-title{color:#f0a83a}.explain-points{margin:0;padding-left:18px}.explain-points li{margin:3px 0;line-height:1.45}.explain-foot{margin-top:14px;font-size:11px}.editor-ai-item:hover:not(:disabled){background:var(--color-bg-surface)}.editor-ai-item:disabled{opacity:.45;cursor:not-allowed}.editor-ai-item-title{align-items:center;gap:6px;font-size:12.5px;font-weight:600;display:inline-flex}.editor-ai-item-desc{color:var(--color-text-faint);font-size:11px}.editor-ai-lock{font-size:10px}.editor-tool-count{background:var(--color-accent,#4f8cff);color:#fff;text-align:center;border-radius:999px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-5px}.editor-tool-menu .palette-pop{left:auto;right:0}.palette-pop.palette-pop-fixed{position:fixed;left:auto}.palette-pop{z-index:20;border:1px solid var(--color-border);background:var(--color-bg-elevated);border-radius:9px;width:234px;max-height:380px;padding:6px;position:absolute;top:calc(100% + 5px);left:0;overflow-y:auto;box-shadow:0 10px 28px #00000073}.palette-pop-foot{border-top:1px solid var(--color-border-faint);color:var(--color-text-dim);margin-top:6px;padding:6px 4px 2px;font-size:10px}@media (width<=768px){.palette-pop,.palette-pop.palette-pop-fixed{max-width:calc(100vw - 16px)}.hmenu{max-width:calc(100vw - 16px);max-height:calc(100vh - 72px);overflow-y:auto}.editor-ai-item-desc{white-space:normal}.noti-pop{max-width:calc(100vw - 16px)}}.palette-section-empty{color:var(--color-text-dim);padding:4px 6px 8px;font-size:11px;line-height:1.4}.palette-flat-list{flex-direction:column;gap:2px;display:flex}.palette-item{background:var(--color-bg-surface);color:var(--color-text-control);cursor:grab;-webkit-user-select:none;user-select:none;border-radius:4px;align-items:center;gap:8px;min-width:0;margin:3px 0;padding:6px 10px;transition:background .12s;display:flex}.palette-item:hover{background:var(--color-bg-item-hover)}.palette-item:active{cursor:grabbing}.palette-item-active{background:var(--color-bg-active);box-shadow:var(--shadow-ring-active)}.palette-item-icon{flex-shrink:0;justify-content:center;align-items:center;font-size:14px;line-height:1;display:inline-flex}.palette-item-icon svg{width:14px;height:14px;display:block}.abm-ico svg{width:1em;height:1em;display:block}.palette-item-title{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.palette-item-category{text-transform:uppercase;letter-spacing:.5px;opacity:.8;flex-shrink:0;font-size:9px}.palette-item-fav{color:var(--color-favorite-inactive);cursor:pointer;opacity:0;background:0 0;border:none;flex-shrink:0;padding:0 2px;font-size:13px;line-height:1;transition:opacity .1s,color .1s}.palette-item:hover .palette-item-fav{opacity:1}.palette-item-fav:hover{color:var(--color-favorite)}.palette-item-fav.active{color:var(--color-favorite);opacity:1}.palette-item-favorited{box-shadow:var(--shadow-ring-fav)}.palette-footer{color:var(--color-text-dim);border-top:1px solid var(--color-border-faint);margin-top:14px;padding:6px;font-size:10px;line-height:1.5}.abm-scrim{z-index:1000;background:color-mix(in srgb, var(--color-bg-app) 60%, transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);justify-content:center;align-items:flex-start;padding:9vh 16px 16px;display:flex;position:fixed;inset:0}.abm{background:var(--color-bg-elevated);border:1px solid var(--color-border-strong,var(--color-border));border-radius:14px;flex-direction:column;width:560px;max-width:100%;max-height:78vh;display:flex;overflow:hidden;box-shadow:0 28px 64px -20px #000c,0 0 0 1px #00000040}.abm-search{border-bottom:1px solid var(--color-border-faint);align-items:center;gap:10px;padding:13px 15px;display:flex}.abm-search svg{width:17px;height:17px;color:var(--color-text-muted);flex:none}.abm-search input{min-width:0;color:var(--color-text-primary);font:inherit;background:0 0;border:none;outline:none;flex:1;font-size:15px}.abm-search input::placeholder{color:var(--color-text-muted)}.abm-search input::-webkit-search-cancel-button{-webkit-appearance:none}.abm-seg{background:var(--color-bg-app);border:1px solid var(--color-border);border-radius:8px;flex:none;gap:3px;padding:2px;display:flex}.abm-seg button{font:inherit;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 11px;font-size:11px;font-weight:600}.abm-seg button.on{background:var(--color-bg-elevated);color:var(--color-text-primary)}.abm-body{flex:1;min-height:0;padding:5px 0 7px;overflow-y:auto}.abm-group{padding-bottom:2px}.abm-ghead{letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-muted);align-items:center;gap:7px;padding:9px 16px 3px;font-size:10px;font-weight:700;display:flex}.abm-gdot{border-radius:50%;flex:none;width:6px;height:6px}.abm-gglyph{font-size:11px;line-height:1}.abm-row{width:100%;color:var(--color-text-primary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:11px;padding:8px 16px;display:flex}.abm-row.sel{background:linear-gradient(90deg, color-mix(in srgb, var(--color-accent) 16%, transparent), transparent 70%);box-shadow:inset 2px 0 0 var(--color-accent)}.abm-ico{border-radius:6px;flex:none;justify-content:center;align-items:center;width:26px;height:26px;font-size:14px;line-height:1;display:inline-flex}.abm-meta{flex-direction:column;gap:1px;min-width:0;display:flex}.abm-nm{color:var(--color-text-primary);font-size:13.5px}.abm-ds{color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;max-width:320px;font-size:11px;overflow:hidden}.abm-tag{color:var(--color-text-dim);background:var(--color-bg-app);border:1px solid var(--color-border);border-radius:5px;flex:none;margin-left:auto;padding:2px 7px;font-size:10px}.abm-ent{color:var(--color-text-muted);flex:none;margin-left:8px;font-size:12px}.abm-empty{text-align:center;color:var(--color-text-dim);padding:26px 16px;font-size:12px}.abm-chips{border-bottom:1px solid var(--color-border-faint);flex-wrap:wrap;gap:6px;padding:11px 16px 5px;display:flex}.abm-chip{font:inherit;border:1px solid var(--color-border);background:var(--color-bg-app);color:var(--color-text-muted);cursor:pointer;border-radius:20px;align-items:center;gap:6px;padding:4px 11px;font-size:11px;font-weight:600;display:inline-flex}.abm-chip:hover{color:var(--color-text-primary)}.abm-chip .d{border-radius:50%;flex:none;width:6px;height:6px}.abm-chip .n{color:var(--color-text-dim);font-weight:500}.abm-grid{grid-template-columns:1fr 1fr;gap:7px;padding:9px 16px 12px;display:grid}.abm-tile{border:1px solid var(--color-border);background:var(--color-bg-app);color:var(--color-text-primary);font:inherit;text-align:left;cursor:grab;border-radius:9px;align-items:center;gap:9px;padding:9px 10px;display:flex}.abm-tile:hover{border-color:var(--color-border-strong,var(--color-border));background:var(--color-bg-surface)}.abm-tmeta{flex-direction:column;min-width:0;display:flex}.abm-tnm{white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;overflow:hidden}.abm-tsub{color:var(--color-text-muted);font-size:10px}.abm-foot{border-top:1px solid var(--color-border-faint);color:var(--color-text-muted);background:var(--color-bg-app);align-items:center;gap:16px;padding:9px 16px;font-size:11px;display:flex}.abm-foot .abm-count{margin-left:auto}.abm-foot kbd{font-family:var(--font-mono,ui-monospace, monospace);background:var(--color-bg-elevated);border:1px solid var(--color-border);color:var(--color-text-dim);border-radius:4px;margin-right:4px;padding:1px 5px;font-size:10px}@media (width<=620px){.abm-grid{grid-template-columns:1fr}.abm-scrim{padding:5vh 10px 10px}}@media (width<=768px){.abm-scrim{flex-direction:column;justify-content:flex-end;align-items:stretch;padding:0}.abm{border-bottom:none;border-radius:16px 16px 0 0;width:100%;max-width:100%;max-height:88vh;animation:.18s ease-out bsheet-rise}.abm-search input{font-size:16px}.abm-row{padding:12px 16px}.abm-tile{padding:12px}.abm-body{padding-bottom:calc(8px + env(safe-area-inset-bottom,0))}.react-flow__handle:before{content:"";border-radius:50%;position:absolute;inset:-9px}}.node-editor-wrapper>.react-flow{flex:1;min-width:0}.node-editor-wrapper .react-flow__pane{background:var(--color-bg-canvas)}.run-button{z-index:10;background:linear-gradient(135deg, var(--color-action), var(--color-action-dark));color:var(--color-text-on-action);cursor:pointer;box-shadow:var(--shadow-action);border:none;border-radius:6px;padding:10px 32px;font-size:14px;font-weight:600;transition:all .2s;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.run-button:hover:not(:disabled){background:linear-gradient(135deg, var(--color-action-hover), var(--color-action));box-shadow:var(--shadow-action-hover);transform:translate(-50%)translateY(-1px)}.run-button:disabled{opacity:.6;cursor:not-allowed}.strategy-node{background:var(--color-bg-surface);min-width:220px;box-shadow:var(--shadow-node);border:1px solid var(--color-border);border-radius:11px;font-size:13px;transition:opacity .1s,transform .1s}.strategy-node.collapsed-drag .node-body,.strategy-node.collapsed-drag .node-ports{display:none}.strategy-node.collapsed-drag{opacity:.9;box-shadow:var(--shadow-popover);transform:scale(.85)}.node-header{letter-spacing:-.01em;color:var(--color-text-primary);border-bottom:1px solid var(--color-border-faint);background:0 0;border-radius:10px 10px 0 0;align-items:center;gap:8px;padding:7px 11px 7px 15px;font-size:12.5px;font-weight:600;display:flex;position:relative}.node-header:before{content:"";background:var(--node-accent,var(--color-accent));border-radius:10px 0 0;width:3px;position:absolute;top:0;bottom:0;left:0}.node-header-icon{background:color-mix(in srgb, var(--node-accent,var(--color-accent)) 18%, transparent);width:18px;height:18px;color:var(--node-accent,var(--color-accent));border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;line-height:1;display:inline-flex}.node-header-icon svg{width:13px;height:13px;display:block}.node-header-title{text-overflow:ellipsis;white-space:nowrap;cursor:text;border-radius:3px;flex:1;min-width:0;margin:-1px -4px;padding:1px 4px;overflow:hidden}.node-header-title:hover{background:#ffffff1f}.node-header-input{min-width:0;font:inherit;letter-spacing:inherit;text-transform:inherit;color:var(--color-text-strong);background:#ffffff2e;border:1px solid #fff6;border-radius:3px;outline:none;flex:1;margin:-1px 0;padding:1px 4px}.node-header-input[aria-invalid=true]{border-color:var(--color-error);background:#dc26262e}.node-header-error{text-transform:none;letter-spacing:0;color:var(--color-error);background:var(--color-bg-elevated);border-radius:3px;flex-shrink:0;padding:2px 6px;font-size:10px;font-weight:500}.node-help{flex-shrink:0;align-items:center;display:inline-flex;position:relative}.node-help-btn{background:var(--color-overlay-dark);width:16px;height:16px;color:var(--color-text-strong);text-align:center;text-transform:none;letter-spacing:0;cursor:pointer;-webkit-user-select:none;user-select:none;border:none;border-radius:50%;padding:0;font-family:inherit;font-size:11px;font-weight:700;line-height:16px;transition:background .12s}.node-help:hover .node-help-btn,.node-help.is-open .node-help-btn,.node-help:focus-within .node-help-btn{background:var(--color-overlay-strong)}.node-help-popover{z-index:100;background:var(--color-bg-elevated);min-width:240px;max-width:320px;color:var(--color-text-control);border:1px solid var(--color-border-popover);box-shadow:var(--shadow-help);letter-spacing:0;text-transform:none;text-align:left;white-space:normal;border-radius:6px;flex-direction:column;gap:10px;padding:10px 12px;font-size:11px;font-weight:400;line-height:1.45;display:none;position:absolute;top:calc(100% + 6px);right:0}.node-help:hover .node-help-popover,.node-help.is-open .node-help-popover{display:flex}.node-help-title{color:var(--color-text-strong);letter-spacing:.4px;font-size:12px;font-weight:600}.node-help-desc{color:var(--color-text-help-desc)}.node-help-docs{color:var(--color-accent,#4fc3f7);cursor:pointer;margin-top:8px;font-size:11px;font-weight:600;text-decoration:none;display:inline-block}.node-help-docs:hover{text-decoration:underline}.node-help-section{flex-direction:column;gap:6px;display:flex}.node-help-section-title{text-transform:uppercase;letter-spacing:.6px;color:var(--color-text-section-help);font-size:10px;font-weight:600}.node-help-row{align-items:flex-start;gap:8px;display:flex}.node-help-dot{border:2px solid var(--color-bg-surface);border-radius:50%;flex-shrink:0;width:10px;height:10px;margin-top:3px}.node-help-row-body{flex-direction:column;gap:2px;min-width:0;display:flex}.node-help-row-name{color:var(--color-text-help-name);font-weight:500}.node-help-row-type{color:var(--color-text-section-help);font-weight:400}.node-help-row-desc{color:var(--color-text-help-desc-faint)}.param-group{border:1px solid var(--color-overlay-light);border-radius:4px;padding:4px 8px;font-size:11px}.param-group>summary{cursor:pointer;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;-webkit-user-select:none;user-select:none;padding:2px 0}.param-group[open]{padding-bottom:8px}.param-group>:not(summary){margin-top:8px}.param-group2{flex-direction:column;display:flex}.param-group2-head{border:1px solid var(--color-overlay-light);cursor:pointer;letter-spacing:.5px;text-transform:uppercase;width:100%;color:var(--color-text-muted);background:0 0;border-radius:5px;align-items:center;gap:6px;padding:6px 8px;font-family:inherit;font-size:10px;font-weight:600;display:flex}.param-group2-head:hover:not(:disabled){border-color:var(--color-overlay-strong,var(--color-overlay-light));color:var(--color-text-secondary)}.param-group2-head:disabled{cursor:default}.param-group2.is-open .param-group2-head{border-bottom-right-radius:0;border-bottom-left-radius:0}.pg2-chev{flex:none;width:12px;height:12px;transition:transform .12s}.param-group2.is-open .pg2-chev{transform:rotate(90deg)}.pg2-name{text-align:left;flex:auto}.pg2-summary,.pg2-wired{text-transform:none;letter-spacing:0;flex:none;font-size:10px;font-weight:500}.pg2-summary{color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:60%;overflow:hidden}.pg2-wired{color:var(--color-accent)}.param-group2-body{flex-direction:column;gap:10px;padding:10px 0 4px;display:flex}.param-color-row{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;justify-content:space-between;align-items:center;gap:8px;padding:0;font-size:11px;display:flex}.param-color-label{flex:auto}.color-swatch-btn{border:1px solid var(--color-border);cursor:pointer;border-radius:3px;flex:none;width:28px;height:18px;padding:0;transition:transform 80ms,box-shadow 80ms}.color-swatch-btn:hover:not(:disabled){box-shadow:0 0 0 2px var(--color-bg-elevated), 0 0 0 3px var(--color-text-muted);transform:scale(1.08)}.color-swatch-btn:disabled{opacity:.4;cursor:not-allowed}.color-modal-picker{justify-content:center;display:flex}.color-modal-picker .react-colorful{width:100%;height:200px}.color-modal-palette{grid-template-columns:repeat(8,1fr);gap:4px;display:grid}.color-modal-swatch{border:1px solid var(--color-border);cursor:pointer;border-radius:3px;height:24px;padding:0;transition:transform 80ms}.color-modal-swatch:hover{transform:scale(1.1)}.color-modal-swatch.active{border:2px solid var(--color-text)}.color-modal-hex{text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-section);align-items:center;gap:8px;font-size:11px;display:flex}.color-modal-hex input{font-size:13px;font-family:var(--font-mono,monospace);background:var(--color-bg-input);color:var(--color-text);border:1px solid var(--color-border);border-radius:3px;outline:none;flex:auto;padding:4px 8px}.color-modal-hex input:focus{border-color:var(--color-accent)}.color-modal-preview{text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted);align-items:center;gap:8px;font-size:10px;display:flex}.color-modal-preview-label{font-weight:600}.color-modal-preview-chip{border:1px solid var(--color-border);border-radius:3px;flex:none;width:36px;height:18px}.color-modal-preview-arrow{color:var(--color-text-section)}.color-picker{flex-direction:column;gap:6px;display:flex}.color-picker-grid{grid-template-columns:repeat(6,1fr);gap:4px;display:grid}.color-swatch{border:1px solid var(--color-overlay-mid);cursor:pointer;border-radius:3px;height:18px;padding:0;transition:transform 80ms,box-shadow 80ms}.color-swatch:hover{transform:scale(1.1)}.color-swatch.active{border-color:var(--color-text-strong);box-shadow:var(--shadow-ring-white)}.color-picker-wheel{border:1px solid var(--color-overlay-mid);cursor:pointer;background:0 0;border-radius:3px;width:100%;height:20px;padding:0}.param-socketed{position:relative}.react-flow__handle.param-socket-dot{z-index:3;border:2px solid var(--color-bg-surface)!important;cursor:crosshair!important;border-radius:50%!important;width:20px!important;min-width:20px!important;height:20px!important;min-height:20px!important;top:50%!important;left:-14px!important;transform:translate(-50%,-50%)!important}.param-wired{color:var(--color-text-muted);background:var(--color-accent-bg-hover);border:1px dashed var(--color-accent-strong);border-radius:3px;justify-content:space-between;align-items:center;gap:8px;padding:4px 6px;font-size:11px;display:flex}.param-wired-label{text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-section)}.param-wired-badge{color:var(--color-accent);background:var(--color-accent-soft);letter-spacing:.3px;border-radius:10px;padding:1px 6px;font-size:10px}.param-disabled{opacity:.45;cursor:not-allowed}.param-disabled input,.param-disabled select{cursor:not-allowed}.param-label-row{align-items:center;gap:6px;display:flex}.param-enable-toggle{cursor:pointer;opacity:1;margin:0}.param-number-row{flex:none;align-items:stretch;gap:0;width:116px;display:flex}.param-number{text-align:right;font-variant-numeric:tabular-nums;background:var(--color-bg-input);min-width:0;color:var(--color-text);border:1px solid var(--color-border);border-left:none;border-right:none;border-radius:0;outline:none;flex:auto;padding:3px 6px;font-size:12px}.param-number:focus{border-color:var(--color-accent);z-index:1}.param-number::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.param-number::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.param-number{-moz-appearance:textfield}.param-spin-btn{background:var(--color-bg-input);width:22px;color:var(--color-text-muted);border:1px solid var(--color-border);cursor:pointer;-webkit-user-select:none;user-select:none;flex:none;padding:0;font-size:14px;font-weight:600;line-height:1}.param-spin-btn:first-child{border-radius:3px 0 0 3px}.param-spin-btn:last-child{border-radius:0 3px 3px 0}.param-spin-btn:hover:not(:disabled){background:var(--color-bg-item-hover);color:var(--color-text)}.param-spin-btn:active:not(:disabled){background:var(--color-bg-active)}.param-spin-btn:disabled{opacity:.4;cursor:not-allowed}.param-number-row.param-disabled{opacity:.45}.param-number-row.param-disabled .param-spin-btn,.param-number-row.param-disabled .param-number{cursor:not-allowed}.param-wired-disabled{opacity:.55;border-color:var(--color-border)!important;background:var(--color-bg-input)!important}.param-wired-disabled .param-wired-badge{color:var(--color-text-muted);background:var(--color-bg-surface)}.node-wrap{width:100%;height:100%;position:relative}.node-actions{background:var(--color-bg-elevated);border:1px solid var(--color-border);opacity:0;pointer-events:none;z-index:10;border-radius:4px;gap:4px;padding:2px 4px;transition:opacity .12s,transform .12s;display:flex;position:absolute;top:-22px;right:0;transform:translateY(4px);box-shadow:0 2px 8px #00000059}.node-actions.visible{opacity:1;pointer-events:auto;transform:translateY(0)}.node-action-btn{width:22px;height:22px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:3px;justify-content:center;align-items:center;padding:0;font-size:13px;line-height:1;display:inline-flex}.node-action-btn:hover{background:var(--color-bg-item-hover);color:var(--color-text);border-color:var(--color-border)}.node-action-danger:hover{background:var(--color-error);color:var(--color-bg-app);border-color:var(--color-error)}.node-body{flex-direction:column;gap:10px;padding:12px 14px;display:flex}.node-body label{color:var(--color-text-muted);text-transform:none;letter-spacing:0;flex-direction:row;justify-content:space-between;align-items:center;gap:10px;font-size:11.5px;display:flex}.param-label-row{flex:auto;min-width:0}.node-body label>select,.node-body label>input[type=text]{box-sizing:border-box;flex:none;width:116px}.node-body label>input[type=checkbox]{flex:none;margin:0}.node-body select,.node-body input[type=number]{background:var(--color-bg-canvas);color:var(--color-text-primary);border:1px solid var(--color-border-strong);border-radius:4px;outline:none;padding:5px 8px;font-size:13px}.node-body select:focus,.node-body input[type=number]:focus{border-color:var(--color-accent)}.node-body input[type=range]{accent-color:var(--color-accent);width:100%;margin-top:2px}.node-info{color:var(--color-text-info);margin:0;font-size:12px}.node-handle{border:2px solid var(--color-bg-surface)!important;width:10px!important;height:10px!important}.node-ports{background:var(--color-bg-ports);flex-direction:column;gap:4px;padding:6px 0;display:flex}.node-ports-in{border-bottom:1px solid var(--color-border-faint)}.node-ports-out{border-top:1px solid var(--color-border-faint)}.port-row{min-height:22px;color:var(--color-text-port);align-items:center;gap:8px;padding:2px 10px;font-size:11px;line-height:1;display:flex}.port-in{justify-content:flex-start}.port-out{justify-content:flex-end}.port-label{white-space:nowrap;align-items:center;line-height:1;display:inline-flex}.chart-legend{z-index:4;background:color-mix(in srgb, var(--color-bg-elevated) 72%, transparent);border:1px solid var(--color-border-faint,#ffffff0d);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:auto;width:max-content;color:var(--color-text-secondary);border-radius:9px;flex-direction:column;gap:2px;max-width:232px;padding:5px 8px;font-size:11px;display:flex;position:absolute;top:10px;left:58px}@media (width<=768px){.chart-legend{overscroll-behavior:contain;max-width:calc(100vw - 68px);max-height:60vh;overflow-y:auto}}.chart-legend-collapse{width:18px;height:15px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-self:flex-end;align-items:center;margin:-1px -3px 1px 0;padding:0;display:inline-flex}.chart-legend-collapse:hover{background:var(--color-overlay-mid);color:var(--color-text-primary)}.chart-legend-collapse svg{width:13px;height:13px}.chart-legend-fab{z-index:4;border:1px solid var(--color-border-faint,#ffffff0d);background:color-mix(in srgb, var(--color-bg-elevated) 72%, transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);width:28px;height:28px;color:var(--color-text-muted);cursor:pointer;pointer-events:auto;border-radius:8px;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:10px;left:58px}.chart-legend-fab:hover{color:var(--color-text-primary)}.chart-legend-fab svg{width:16px;height:16px}.chart-legend-ohlc{border-bottom:1px solid var(--color-border-faint);font-variant-numeric:tabular-nums;color:var(--color-text-muted);flex-wrap:wrap;align-items:baseline;gap:4px 8px;margin-bottom:4px;padding-bottom:4px;font-size:11px;display:flex}.chart-legend-ohlc b{color:var(--color-text-strong);font-weight:600}.chart-legend-ohlc-time{color:var(--color-text-faint)}.chart-legend-ohlc[data-hover=true] .chart-legend-ohlc-time{color:var(--color-accent)}.chart-legend-trade{border-top:1px solid var(--color-border-faint);font-variant-numeric:tabular-nums;text-transform:capitalize;align-items:baseline;gap:8px;margin-top:4px;padding-top:4px;font-size:11px;display:flex}.chart-legend-value{font-variant-numeric:tabular-nums;color:var(--color-text-secondary);margin-left:auto;padding-left:8px;font-size:11px}.chart-legend-row{align-items:center;gap:7px;min-height:22px;display:flex}.chart-legend-swatch{appearance:none;cursor:pointer;border:0;border-radius:2px;flex-shrink:0;width:10px;height:10px;padding:0}.chart-legend-swatch:disabled{cursor:default}.chart-legend-swatch:not(:disabled):hover{outline:1px solid var(--color-border-strong);outline-offset:1px}.chart-legend-label{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.chart-legend-output{color:var(--color-text-muted);margin-left:4px;font-size:10px}.chart-legend-btn{appearance:none;width:20px;height:20px;color:var(--color-text-muted);cursor:pointer;opacity:.6;background:0 0;border:0;border-radius:5px;justify-content:center;align-items:center;padding:0;font-size:11px;line-height:1;transition:background .12s,opacity .12s,color .12s;display:inline-flex}.chart-legend-btn:hover{opacity:1;background:var(--color-bg-surface)}.chart-legend-btn-danger:hover{color:#ef5350}.chart-legend-btn[data-off=true]{opacity:.35}.chart-legend-card{border-radius:7px;flex-direction:column;gap:2px;padding:1px 4px;transition:background .12s;display:flex}.chart-legend-card:hover{background:color-mix(in srgb, var(--color-bg-surface) 60%, transparent)}.chart-legend-card[data-off=true]>.chart-legend-row .chart-legend-label,.chart-legend-card[data-off=true]>.chart-legend-row .chart-legend-swatch,.chart-legend-card[data-off=true] .chart-legend-components{opacity:.4}.chart-legend-card[data-expanded=true]>.chart-legend-row{border-bottom:1px dashed var(--color-border-faint);margin-bottom:2px;padding-bottom:2px}.chart-legend-btn-expand{font-size:12px}.chart-legend-components{flex-direction:column;gap:1px;padding-left:14px;display:flex}.chart-legend-component{color:var(--color-text-muted);align-items:center;gap:5px;font-size:10.5px;display:flex}.chart-legend-component[data-kind=level] .chart-legend-swatch-sm{background-image:linear-gradient(90deg,currentColor 50%,#0000 50%);background-repeat:repeat-x;background-size:4px 100%}.chart-legend-swatch-sm{width:8px;height:8px}.chart-legend-component-label{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.chart-legend-component-hint{color:var(--color-text-faint)}.chart-legend-btn-sm{font-size:10px}.port-eye{appearance:none;cursor:pointer;color:var(--color-text-port);opacity:.5;background:0 0;border:0;margin:0;padding:0 2px;font-size:10px;line-height:1;transition:opacity 80ms}.port-eye:hover{opacity:1}.port-eye-on{opacity:.85}.port-eye-off{opacity:.35}.port-primary-fallback{color:var(--color-text-port);opacity:.55;white-space:nowrap;pointer-events:auto;margin-left:6px;font-size:10px}.port-primary-fallback:hover{opacity:.85}.port-row.port-in>.socket-tip{margin-right:-20px}.port-row.port-out>.socket-tip{margin-left:-20px}.socket-tip{display:inline-flex;position:relative}.socket-tip-popover,.param-socket-tip{z-index:100;background:var(--color-bg-elevated);min-width:180px;max-width:260px;color:var(--color-text-control);border:1px solid var(--color-border-popover);box-shadow:var(--shadow-popover);letter-spacing:0;text-transform:none;text-align:left;white-space:normal;pointer-events:none;visibility:hidden;opacity:0;border-radius:6px;flex-direction:column;gap:4px;padding:8px 10px;font-size:11px;font-weight:400;line-height:1.45;transition:opacity .12s,visibility 0s linear .12s;display:flex;position:absolute}.socket-tip-name{color:var(--color-text-strong);font-size:11px;font-weight:600}.socket-tip-desc{color:var(--color-text-help-desc)}.socket-tip[data-side=input] .socket-tip-popover,.socket-pill[data-side=input] .socket-tip-popover{top:calc(100% + 6px);left:0}.socket-tip[data-side=output] .socket-tip-popover,.socket-pill[data-side=output] .socket-tip-popover{top:calc(100% + 6px);right:0}.socket-tip:hover .socket-tip-popover,.socket-pill:hover .socket-tip-popover{visibility:visible;opacity:1;transition:opacity .12s .4s,visibility 0s linear .4s}.param-socket-tip{top:22px;left:8px}.react-flow__handle.param-socket-dot:hover+.param-socket-tip{visibility:visible;opacity:1;transition:opacity .12s .4s,visibility 0s linear .4s}.stats-panel{background:var(--color-bg-panel);box-sizing:border-box;height:100%;padding:16px 20px}.stats-empty{color:var(--color-text-dim);justify-content:center;align-items:center;font-size:14px;display:flex}.stats-panel h3{color:var(--color-text-button);text-transform:uppercase;letter-spacing:.5px;margin:0 0 12px;font-size:14px;font-weight:600}.stats-grid{gap:24px;display:flex}.stats-section{flex:1}.stats-section h4{color:var(--color-text-section);text-transform:uppercase;letter-spacing:.5px;margin:0 0 8px;font-size:12px;font-weight:500}.stats-panel table{border-collapse:collapse;width:100%;font-size:13px}.stats-panel td{padding:3px 0}.stats-panel td:first-child{color:var(--color-text-table-cell)}.stats-panel td:last-child{text-align:right;color:var(--color-text-control);font-weight:500}.stat-win{color:var(--color-success)!important}.stat-loss{color:var(--color-error)!important}.react-flow__controls button{background:var(--color-bg-surface)!important;color:var(--color-text-button)!important;border-color:var(--color-border)!important;fill:var(--color-text-button)!important}.react-flow__controls button:hover{background:var(--color-border)!important}.react-flow__controls button svg{fill:var(--color-text-button)!important}.react-flow__edge-path{stroke-width:3px;vector-effect:non-scaling-stroke;transition:none!important}.react-flow__edge.edge-drop-hover .react-flow__edge-path{stroke:var(--color-favorite)!important;stroke-width:5px!important;filter:drop-shadow(0 0 6px var(--color-favorite))!important}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selected.edge-drop-hover .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:var(--color-edge-selected)!important;stroke-width:4px!important;filter:drop-shadow(0 0 8px var(--color-edge-selected-glow))!important}.react-flow__edge-interaction{stroke-width:20px}.react-flow__node.selected .strategy-node{border-color:var(--color-accent);box-shadow:var(--shadow-ring-accent)}.node-editor-wrapper.selecting .react-flow__node .strategy-node{pointer-events:none}.group-node{border-color:var(--group-color,var(--color-accent,#3b82f6));background:color-mix(in srgb, var(--group-color,#3b82f6) 16%, var(--color-bg-surface))}.group-node .node-ports{background:color-mix(in srgb, var(--group-color,#3b82f6) 16%, var(--color-bg-ports))}.group-node-head{border-bottom:1px solid var(--color-border,#333);justify-content:space-between;align-items:center;gap:8px;padding:6px 8px;display:flex}.group-node-title{color:var(--color-text,#e6e6e6);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:700;overflow:hidden}.group-node-actions{flex:none;gap:6px;display:flex}.group-node-btn{color:#cbd5e1;cursor:pointer;background:#2a2e39;border:1px solid #3a3f4b;border-radius:5px;padding:2px 8px;font-size:11px;font-weight:600}.group-node-btn:hover{color:#fff;border-color:var(--color-accent,#3b82f6)}.group-node-pill{opacity:.92;border-style:dashed;min-width:0}.group-node-pill .group-node-head{border-bottom:none}.group-node-title-input{width:110px;color:var(--color-text,#e6e6e6);border:1px solid var(--color-accent,#3b82f6);background:#11111a;border-radius:4px;padding:1px 5px;font-size:12px;font-weight:700}.group-node-title{cursor:text}.react-flow__node.group-member .strategy-node{outline:1px dashed color-mix(in srgb, var(--group-color,#3b82f6) 70%, transparent);outline-offset:3px}.react-flow__node.group-frame-node{pointer-events:none;box-shadow:none;background:0 0;border:none}.group-frame{pointer-events:none;border:1.5px dashed color-mix(in srgb, var(--group-color,#3b82f6) 55%, transparent);background:color-mix(in srgb, var(--group-color,#3b82f6) 7%, transparent);border-radius:16px;width:100%;height:100%}.group-node-body{flex-direction:column;display:flex}.replay-overlay{z-index:6;position:absolute;bottom:36px;left:50%;transform:translate(-50%)}.chart-replay-cta{border:1px solid color-mix(in srgb, var(--color-accent) 55%, var(--color-border));background:color-mix(in srgb, var(--color-accent) 22%, var(--color-bg-elevated));width:34px;height:30px;color:var(--color-accent);cursor:pointer;border-radius:8px;flex:none;justify-content:center;align-items:center;padding:0;transition:background .12s,border-color .12s,color .12s;display:inline-flex;box-shadow:0 2px 12px #0006}.chart-replay-cta:hover{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.chart-replay-cta svg{fill:currentColor;width:17px;height:17px;display:block}.replay-active{background:var(--color-bg-elevated);gap:1px;box-shadow:0 2px 12px #0006}.replay-speed{background:var(--color-bg-elevated);height:22px;color:var(--color-text-secondary);border:1px solid var(--color-border);cursor:pointer;border-radius:5px;margin:0 1px;padding:0 2px;font-size:11px;font-weight:600}.replay-speed:focus{border-color:var(--color-accent);outline:none}.output-style-grid{flex-direction:column;gap:12px;display:flex}.output-style-field{flex-direction:column;gap:4px;font-size:12px;display:flex}.output-style-field>span{opacity:.8}.output-style-field select,.output-style-field input[type=range]{width:100%}.output-style-field select:disabled,.output-style-field input:disabled{opacity:.4}.output-style-color input[type=color]{border:1px solid var(--border,#ffffff1f);cursor:pointer;background:0 0;border-radius:4px;width:48px;height:26px;padding:0}.mobile-root{flex-direction:column;flex:1 1 0;min-height:0;display:flex;position:relative;overflow:hidden}.mobile-pane{flex-direction:column;flex:1 1 0;min-height:0;display:none;overflow:hidden}.mobile-root[data-mtab=chart] .mp-chart,.mobile-root[data-mtab=build] .mp-build,.mobile-root[data-mtab=test] .mp-test{display:flex}.mobile-pane-head{border-bottom:1px solid var(--color-border-pane);background:var(--color-bg-panel);align-items:center;gap:8px;min-height:44px;padding:6px 10px;display:flex;overflow-x:auto}.mobile-tabbar{border-top:1px solid var(--color-border-pane);background:var(--color-bg-panel);height:56px;padding-bottom:env(safe-area-inset-bottom,0);flex:none;display:flex}.mobile-tab{color:var(--color-text-muted);letter-spacing:.2px;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:3px;font-size:11px;font-weight:500;display:flex}.mobile-tab svg{width:22px;height:22px}.mobile-tab.is-active{color:var(--color-accent)}.mobile-tab:active{background:var(--color-bg-surface-2)}.is-landscape-compact .appbar{gap:4px;min-height:36px;padding:0 8px}.is-landscape-compact .appbar-ibtn{height:28px}.is-landscape-compact .appbar-logo,.is-landscape-compact .appbar-grp-file,.is-landscape-compact .appbar-vdiv-file,.is-landscape-compact .appbar-save-btn,.is-landscape-compact .appbar-grp-share,.is-landscape-compact .appbar-vdiv-share,.is-landscape-compact .appbar-grp-tools,.is-landscape-compact .appbar-vdiv-tools,.is-landscape-compact .appbar-toggle,.is-landscape-compact .appbar-theme-btn,.is-landscape-compact .appbar-vdiv-theme,.is-landscape-compact .templates-menu-wrap,.is-landscape-compact .appbar-vdiv,.is-landscape-compact .appbar-name,.is-landscape-compact .appbar .error-badge{display:none}.is-landscape-compact .appbar-center{flex:auto;justify-content:flex-start;min-width:0}.is-landscape-compact .appbar-center .panel-header-slot{margin-left:0}.is-landscape-compact .appbar-spacer{flex:0 0 4px;min-width:4px}.is-landscape-compact .mobile-tabbar{height:42px}.is-landscape-compact .mobile-tab{gap:0}.is-landscape-compact .mobile-tab span{display:none}.is-landscape-compact .mobile-tab svg{width:20px;height:20px}.is-landscape-compact .mobile-pane-head{min-height:34px;padding:3px 8px}.is-landscape-compact .editor-tool{width:28px;height:28px}.is-landscape-compact .appbar-center .editor-tools{gap:4px}.is-landscape-compact #appbar-tester-slot .tester-runbar{background:0 0;border:none;gap:6px;padding:0}.is-landscape-compact #appbar-tester-slot .tester-run-btn{padding:6px 12px;font-size:12.5px}.is-landscape-compact #appbar-tester-slot .tester-account-bar{padding:0}.chart-view-menu{flex:none;display:inline-flex;position:relative}.chart-view-menu-pop{z-index:50;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:10px;max-width:min(280px,90vw);padding:8px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 24px #00000059}.chart-view-menu-pop .chart-tools{flex-wrap:wrap}.bsheet-backdrop{z-index:60;background:color-mix(in srgb, var(--color-bg-app) 55%, transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);flex-direction:column;justify-content:flex-end;display:flex;position:fixed;inset:0}.bsheet{background:var(--color-bg-surface);border-top:1px solid var(--color-border-strong,var(--color-border));border-radius:16px 16px 0 0;flex-direction:column;max-height:80vh;animation:.18s ease-out bsheet-rise;display:flex;box-shadow:0 -8px 28px #0006}@keyframes bsheet-rise{0%{transform:translateY(100%)}to{transform:translateY(0)}}.bsheet-grip{background:var(--color-border-strong,var(--color-border));border-radius:2px;flex:none;width:36px;height:4px;margin:8px auto 4px}.bsheet-head{border-bottom:1px solid var(--color-border-pane);flex:none;align-items:center;gap:8px;padding:4px 12px 10px;display:flex}.bsheet-title{color:var(--color-text-bright);white-space:nowrap;text-overflow:ellipsis;flex:auto;font-size:15px;font-weight:600;overflow:hidden}.bsheet-head-right{flex:none}.bsheet-close{background:var(--color-bg-surface-2);width:32px;height:32px;color:var(--color-text-muted);cursor:pointer;border:none;border-radius:8px;flex:none;justify-content:center;align-items:center;font-size:14px;display:inline-flex}.bsheet-close:active{background:var(--color-bg-elevated)}.bsheet-body{overscroll-behavior:contain;padding:12px 14px calc(14px + env(safe-area-inset-bottom,0));flex:auto;overflow-y:auto}.msheet-actions{gap:6px;display:inline-flex}.msheet-action{border:1px solid var(--color-border);background:var(--color-bg-surface-2);width:34px;height:34px;color:var(--color-text-primary);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;font-size:15px;display:inline-flex}.msheet-action:active{background:var(--color-bg-elevated)}.msheet-action-danger{color:var(--color-error)}.bsheet-body .node-body{flex-direction:column;gap:12px;padding:0;font-size:14px;display:flex}.bsheet-body .node-body label{flex-direction:row;justify-content:space-between;align-items:center;gap:12px;font-size:13px}.bsheet-body .node-body label>select,.bsheet-body .node-body label>input[type=text],.bsheet-body .param-number-row{flex:none;width:160px}.bsheet-body .node-body label>select,.bsheet-body .node-body label>input[type=text],.bsheet-body .node-body .param-number{box-sizing:border-box;min-height:40px;font-size:15px}.bsheet-body .param-number-row{gap:6px}.bsheet-body .node-body label>input[type=checkbox]{width:22px;height:22px}.bsheet-body .param-spin-btn{min-width:40px;min-height:40px;font-size:18px}.bsheet-body .param-group>summary{padding:8px 0;font-size:13px}
