:root{--accent: #ED7C30;--accent-dark: #d2691e;--bg-header: #ffffff;--page-plane: #e7eaee;--surface: #ffffff;--chart-surface: #fcfcfb;--text-main: #16181b;--text-second: #4b4e53;--text-muted: #85888d;--hairline: #d7dade;--baseline: #b9bdc3;--series-1: #2a78d6;--series-2: #eb6834;--status-good: #0ca30c;--status-warn: #b57900;--status-serious:#ec835a;--status-crit: #d03b3b;--header-height: 42px;--sp-1: 2px;--sp-2: 4px;--sp-3: 6px;--sp-4: 8px;--sp-5: 12px;--sp-6: 16px;--sp-7: 24px;--r-sm: 3px;--r-md: 5px;--r-lg: 8px;--fs-xs: .68rem;--fs-sm: .78rem;--fs-base: .85rem;--fs-md: .95rem;--fs-lg: 1.1rem;--hover-bg: #eef1f5;--hover-warm: #f4ede6;--active-bg: #e3ecf7;--sel-bg: #fdf0e5;--sel-line: var(--accent);--focus-ring: 0 0 0 2px rgba(237, 124, 48, .35);--elev-1: 0 1px 2px rgba(16, 24, 40, .06);--elev-2: 0 4px 14px rgba(16, 24, 40, .14);--elev-3: 0 12px 34px rgba(16, 24, 40, .2);--tool-ink: #2c3036;--tool-ink-soft: #5a5f66;--disabled-ink: #b7bcc3}:where(button,select,input,.cs-menu-btn,.tb,.vtb,.stage-btn):focus-visible{outline:none;box-shadow:var(--focus-ring)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{font-size:13.5px;font-family:Poppins,system-ui,sans-serif;background:var(--page-plane);color:var(--text-main)}html,body{height:100%;overflow:hidden}.page{position:fixed;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:row;padding:0;overflow:hidden}.page-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;padding:.3rem .4rem .4rem;overflow:hidden}.page-stage{position:relative;flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.stage-nav{flex:0 0 66px;display:flex;flex-direction:column;align-items:stretch;gap:2px;padding:var(--sp-3) 0;background:#f2f4f7;border-right:1px solid var(--hairline);transition:flex-basis .14s ease}.stage-nav.collapsed{flex-basis:44px}.stage-btn{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;padding:var(--sp-4) 2px var(--sp-3);font-family:inherit;font-size:.66rem;font-weight:500;color:var(--tool-ink-soft);background:transparent;border:none;border-left:3px solid transparent;cursor:pointer;line-height:1.05;text-align:center;transition:background .11s ease,color .11s ease}.stage-btn:hover{color:var(--accent-dark);background:#e7ebf1}.stage-btn.active{color:var(--accent-dark);font-weight:600;background:var(--surface);border-left-color:var(--accent);box-shadow:inset -1px 0 0 var(--hairline)}.stage-btn.active:after{content:"";position:absolute;top:4px;right:4px;bottom:4px;left:0;border-radius:0 var(--r-sm) var(--r-sm) 0;background:#ed7c300f;pointer-events:none}.stage-btn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;transition:transform .14s ease}.stage-spacer{flex:1 1 auto}.stage-btn.stage-help{color:var(--text-muted)}.stage-btn.stage-help.active{color:var(--accent-dark)}.stage-btn.stage-collapse{color:var(--text-muted);border-top:1px solid var(--hairline);padding-top:var(--sp-3)}.stage-btn.stage-collapse svg{width:18px;height:18px}.stage-nav.collapsed .stage-btn span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.stage-nav.collapsed .stage-btn{padding-left:2px;padding-right:2px}.ws-label{align-self:center;font-size:.76rem;font-weight:600;color:var(--text-muted);padding-right:.6rem;letter-spacing:.03em}#app-menubar{margin-bottom:0;border-radius:0;border:none;border-bottom:1px solid var(--hairline)}.steps{display:flex;gap:2px;margin-bottom:.35rem;flex:0 0 auto}.step{font-family:inherit;font-size:.88rem;font-weight:500;padding:.32rem 1.05rem;border:1px solid var(--hairline);border-radius:3px 3px 0 0;background:#dde1e6;color:var(--text-second);cursor:pointer}.step.active{background:var(--surface);color:var(--text-main);border-bottom:2px solid var(--accent)}.status-bar{flex:0 0 auto}.tab{display:none}.tab.active{display:block;flex:1 1 auto;min-height:0;overflow-y:auto}#tab-model.active{display:flex;flex-direction:column;overflow:hidden}.model-work{flex:1 1 auto;min-height:0;display:grid;grid-template-columns:210px minmax(0,1fr);gap:.45rem;margin-top:.45rem;position:relative}.model-work.rail-closed{grid-template-columns:minmax(0,1fr)}.model-work.rail-closed .model-rail{display:none}.model-rail{display:flex;flex-direction:column;min-width:0;min-height:0}.rail-body{flex:1 1 auto;min-width:0;min-height:0;display:flex;flex-direction:column;gap:.45rem;overflow:hidden}.props-window{display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(820px,94%);height:auto;max-height:88%;z-index:60;background:var(--surface);border:1px solid var(--baseline);border-radius:6px;box-shadow:0 12px 40px #0f192847;flex-direction:column;overflow:hidden}.props-window.open{display:flex}.props-window.nav-open{width:min(1000px,96%);height:auto}.props-head{display:flex;align-items:center;gap:.4rem;padding:.35rem .55rem;background:#eef1f4;border-bottom:1px solid var(--hairline);font-size:.84rem;font-weight:600;flex:0 0 auto}.props-body{flex:1 1 auto;min-height:0;display:flex}.props-nav{display:none;flex:0 0 156px;min-height:0;overflow-y:auto;padding:.3rem;background:#f7f8fa;border-right:1px solid var(--hairline);flex-direction:column;gap:1px}.props-window.nav-open .props-nav{display:flex}.props-nav-item{font-family:inherit;font-size:.78rem;text-align:left;padding:.28rem .5rem;border:none;border-left:3px solid transparent;border-radius:4px;background:transparent;color:var(--text-second);cursor:pointer;white-space:nowrap}.props-nav-item:hover{background:#eceff3;color:var(--accent-dark)}.props-nav-item.active{background:var(--surface);color:var(--text-main);font-weight:600;border-left-color:var(--accent)}.props-window .model-forms{flex:1 1 auto;min-width:0;min-height:0;overflow-y:auto;padding:.6rem .7rem}.msec{display:none}.msec.active-sec{display:block;margin-bottom:0}.props-window .msec.card{background:transparent;border:none;border-radius:0;padding:0;margin:0}.props-window .msec h2{display:flex;align-items:center;gap:.4rem;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-second);background:transparent;border-bottom:1px solid var(--hairline);margin:0 0 .6rem;padding:0 0 .32rem}.props-window .msec h2.anon{border-bottom:none;padding:0;margin:0 0 .55rem}.props-window .msec h2 .btn{text-transform:none;letter-spacing:0;font-weight:500}.props-window.object-mode{width:min(820px,94%)}.props-window.object-mode .msec h2 button,.props-window.object-mode .msec h2 .btn-file{display:none}.picker-bar{display:flex;align-items:center;gap:.5rem;margin-bottom:.6rem}.picker-bar:empty{display:none}.picker-lbl{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em;color:var(--text-muted)}.picker-bar select{min-width:9rem}.picker-count{font-size:.76rem;color:var(--text-muted)}.rack-editor-body{display:flex;gap:1rem;align-items:stretch}.rack-preview{flex:0 0 200px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.6rem;border:1px solid var(--hairline);border-radius:8px;background:linear-gradient(180deg,#eef2f7,#dbe3ec)}.rack-svg{width:100%;height:auto;max-height:268px;display:block}.rack-dim{fill:#647079;font-size:12px;font-weight:700;font-family:Poppins,sans-serif}.rack-air{fill:#2a78d6;font-size:10.5px;font-weight:600;font-family:Poppins,sans-serif}.rack-cap{margin-top:.5rem;font-size:.72rem;font-weight:500;color:var(--text-second);text-align:center;font-variant-numeric:tabular-nums}.rack-controls{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:.6rem}.rack-controls .form-grid:last-child{margin-bottom:0}.form-grid{--label-w: 9.2rem;--unit-w: 3.1rem;--col-min: 20rem;display:grid;gap:.4rem .9rem;margin-bottom:.55rem}.form-grid.wide-unit{--unit-w: 4.4rem;--col-min: 21.5rem}.form-grid:last-child{margin-bottom:0}.form-grid.cols-1{grid-template-columns:minmax(0,1fr)}.form-grid.cols-2{grid-template-columns:repeat(auto-fill,minmax(min(var(--col-min),100%),1fr))}.form-field{display:grid;grid-template-columns:var(--label-w) minmax(0,1fr) var(--unit-w);align-items:center;gap:.45rem;min-width:0}.form-field.span-2,.form-field.span-full{grid-column:1 / -1}.f-label{font-size:.74rem;font-weight:500;color:var(--text-second);text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.f-unit{font-size:.72rem;color:var(--text-muted);white-space:nowrap}.form-field>input,.form-field>input[type=text],.form-field>input[type=number],.form-field>select{width:100%;min-width:0}input.num-input{text-align:right}.props-window input[type=text],.props-window input[type=number],.props-window select{font-size:.82rem;padding:.28rem .45rem;border-radius:3px}.props-window .hint{font-size:.72rem;line-height:1.4;margin-bottom:.45rem}.props-window .sub-card{padding:.6rem .65rem;margin-bottom:.55rem}.props-window .sub-card:last-child{margin-bottom:0}.props-window .sub-card h4{margin:.55rem 0 .3rem}.props-window .picker-bar{margin-bottom:.5rem}.rack-controls .form-grid{--label-w: 7.6rem;--col-min: 18.5rem}@media (max-width: 620px){.rack-editor-body{flex-direction:column}.rack-preview{flex:0 0 auto}.form-grid{--label-w: 7.5rem}}tbody.solo>tr{display:none}tbody.solo>tr.target{display:table-row}.vp-watermark{position:absolute;right:18px;bottom:10px;z-index:8;height:30px;width:auto;opacity:.6;pointer-events:none;-webkit-user-select:none;user-select:none}.cs-menu{position:relative}.cs-menu-btn{font-family:inherit;font-size:.8rem;padding:.3rem .75rem;border:none;background:transparent;color:var(--text-main);cursor:pointer;border-radius:4px}.cs-menubar-div{align-self:center;width:1px;height:16px;margin:0 .35rem;background:var(--hairline)}.cs-qa-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:24px;border:none;background:transparent;color:var(--tool-ink);border-radius:4px;cursor:pointer}.cs-qa-btn:hover{background:#eef1f5;color:var(--accent-dark)}.cs-qa-btn:disabled,.cs-qa-btn:disabled:hover{color:var(--text-muted);opacity:.5;cursor:default;background:transparent}.cs-qa-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.cs-menu-drop{display:none;position:absolute;top:100%;left:0;z-index:350;min-width:190px;background:var(--surface);border:1px solid var(--baseline);border-radius:0 6px 6px;box-shadow:0 4px 14px #00000024;padding:.25rem}.cs-menu.open .cs-menu-drop{display:block}.cs-menu-item{padding:.35rem .8rem;font-size:.82rem;border-radius:4px;cursor:pointer;white-space:nowrap}.cs-menu-item:hover{background:#f4f3ef;color:var(--accent-dark)}.cs-menu-item-disabled,.cs-menu-item-disabled:hover{color:var(--text-muted);opacity:.5;cursor:default;background:transparent}.cs-toolbar{display:flex;align-items:center;gap:1px;background:var(--surface);border:none;border-bottom:1px solid var(--hairline);border-radius:0;padding:.12rem .45rem;flex:0 0 auto;flex-wrap:wrap}.tb{display:flex;flex-direction:column;align-items:center;gap:1px;width:46px;padding:.18rem .05rem .14rem;font-family:inherit;font-size:.6rem;color:var(--tool-ink);background:transparent;border:none;border-radius:var(--r-sm);cursor:pointer;line-height:1.1;text-align:center;transition:background 90ms ease,color 90ms ease}.tb:hover{color:var(--accent-dark);background:var(--hover-warm)}.tb:active{background:#ece2d6}.tb-accent{color:var(--accent-dark)}.tb-accent svg{stroke-width:1.7}.tb svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.tb-sep{width:1px;align-self:stretch;margin:.25rem .3rem;background:var(--hairline)}.tb.tb-disabled{color:var(--disabled-ink);cursor:not-allowed;pointer-events:none}.tb.tb-disabled svg{stroke:var(--disabled-ink);opacity:.85}.vtb-group{display:flex;align-items:center;gap:2px}.vtb{display:flex;align-items:center;justify-content:center;width:27px;height:27px;padding:0;border:none;border-radius:3px;background:transparent;color:var(--text-second);cursor:pointer}.vtb:hover{background:#e9edf1;color:var(--accent-dark)}.vtb.toggle.on{background:#e3ecf7;color:var(--series-1)}.vtb svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.vtb-select{font-size:.8rem;padding:.18rem .3rem;border:1px solid var(--hairline);border-radius:3px}.model-rail{min-height:0}.model-rail .card{margin-bottom:0}.rail-card{padding:.6rem .75rem}.rail-btns{display:flex;flex-direction:column;gap:.35rem}.rail-btns .btn{width:100%;text-align:left}.lib-btn{font-weight:400}.tree-card{flex:1 1 auto;min-height:120px;display:flex;flex-direction:column;overflow:hidden}.model-tree{flex:1 1 auto;min-height:0;overflow-y:auto;font-size:.8rem}.model-tree details{margin-bottom:.1rem}.model-tree summary{cursor:pointer;font-weight:600;color:var(--text-second);padding:.18rem .2rem;border-radius:4px;list-style-position:inside;display:flex;align-items:center;gap:.3rem}.model-tree summary::-webkit-details-marker{order:-1}.model-tree summary .tsum-label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.model-tree summary:hover{color:var(--accent-dark)}.model-tree .tcount{font-weight:400;color:var(--text-muted)}.tree-search{padding:0 0 var(--sp-3)}.tree-search input{width:100%;font-family:inherit;font-size:var(--fs-sm);padding:3px var(--sp-3);border:1px solid var(--hairline);border-radius:var(--r-sm);background:var(--surface)}.tree-search input:focus{outline:none;box-shadow:var(--focus-ring)}.tnode .tname{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.teye{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:20px;height:18px;padding:0;border:none;background:transparent;color:var(--text-muted);border-radius:var(--r-sm);cursor:pointer;opacity:0;transition:opacity 90ms ease,color 90ms ease}.tnode:hover .teye,summary:hover .teye,.teye.off{opacity:1}.teye:hover{color:var(--accent-dark);background:var(--hover-bg)}.teye.off{color:var(--baseline)}.teye svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.tnode.hidden-node .tname{color:var(--text-muted);font-style:italic}.tpod>summary,.tpods-root>summary{color:var(--text-main)}.tpod-badge{display:inline-block;font-size:.56rem;font-weight:700;letter-spacing:.06em;color:var(--accent-dark);background:#fbe7d6;border-radius:2px;padding:0 3px;margin-right:3px;vertical-align:1px}.tpod{margin-left:.4rem;border-left:1px solid var(--hairline);padding-left:.2rem}.tnode{display:flex;align-items:center;gap:.35rem;padding:.14rem .3rem .14rem 1.1rem;border-radius:4px;cursor:pointer;color:var(--text-main);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tnode:hover{background:#f4f3ef}.tnode.sel{background:#fdf0e5;outline:1px solid var(--accent)}.tnode .dot{width:8px;height:8px;border-radius:2px;flex:0 0 auto}.tnode.tsetting{padding-left:.3rem;font-weight:500;color:var(--text-second)}.tnode.child{padding-left:2rem;font-size:.76rem}.app-statusbar{flex:0 0 auto;display:flex;align-items:center;gap:.7rem;margin-top:.35rem;padding:.3rem .5rem 0;border-top:1px solid var(--hairline);font-size:.74rem;color:var(--text-second);font-variant-numeric:tabular-nums}.sb-state{font-weight:600;color:var(--status-good);letter-spacing:.04em;min-width:2.6rem}.sb-state.busy{color:var(--status-warn)}.sb-msg{max-width:32rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sb-msg.is-idle{color:var(--text-muted)}.sb-msg.is-warn{color:var(--status-warn);font-weight:600}.sb-msg.is-error{color:var(--status-crit);font-weight:600}.sb-spring{flex:1}.sb-sep{width:1px;height:.9rem;background:var(--baseline)}#vp-coords{min-width:12rem}.sb-hint{color:var(--text-muted)}.sb-field{display:inline-flex;align-items:baseline;gap:.3rem;white-space:nowrap}.sb-key{font-size:.64rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.sb-val{font-weight:600;color:var(--text-main)}.sb-field .sb-val{max-width:16rem;overflow:hidden;text-overflow:ellipsis}.cmdp-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:700;display:flex;align-items:flex-start;justify-content:center;padding-top:12vh;background:#141a2247}.cmdp{width:min(620px,92vw);background:var(--surface);border:1px solid var(--baseline);border-radius:var(--r-lg);box-shadow:var(--elev-3);overflow:hidden;display:flex;flex-direction:column}.cmdp-input{font-family:inherit;font-size:var(--fs-md);padding:var(--sp-5) var(--sp-6);border:none;border-bottom:1px solid var(--hairline);outline:none}.cmdp-list{max-height:46vh;overflow-y:auto;padding:var(--sp-2)}.cmdp-empty{padding:var(--sp-5);color:var(--text-muted);font-size:var(--fs-sm)}.cmdp-item{display:flex;align-items:baseline;gap:var(--sp-4);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-sm);cursor:pointer}.cmdp-item.active{background:var(--sel-bg)}.cmdp-group{flex:0 0 68px;font-size:.62rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.cmdp-label{font-size:var(--fs-base);color:var(--text-main)}.cmdp-item.active .cmdp-label{color:var(--accent-dark);font-weight:600}.cmdp-foot{display:flex;gap:var(--sp-6);padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--hairline);background:#f7f8fa;font-size:var(--fs-xs);color:var(--text-muted)}.ctx-menu{position:fixed;z-index:400;min-width:170px;background:var(--surface);border:1px solid var(--baseline);border-radius:6px;box-shadow:0 4px 14px #00000024;padding:.25rem;font-size:.84rem}.ctx-item{padding:.35rem .7rem;border-radius:4px;cursor:pointer;color:var(--text-main)}.ctx-item:hover{background:#f4f3ef;color:var(--accent-dark)}.ctx-item.danger{color:var(--status-crit)}.ctx-sep{height:1px;margin:.25rem .4rem;background:var(--hairline)}.ctx-title{padding:.25rem .7rem;font-size:.74rem;font-weight:600;color:var(--text-muted);border-bottom:1px solid var(--hairline);margin-bottom:.2rem}.lib-catalog{margin-top:.6rem;padding-top:.6rem;border-top:1px solid var(--hairline);display:flex;flex-direction:column;gap:.35rem}.lib-catalog select{width:100%}.viewport-card{margin-bottom:0;display:flex;flex-direction:column;min-height:0;overflow:hidden;padding:.35rem .45rem .45rem}.vp-toolbar{display:flex;align-items:center;gap:.35rem;margin-bottom:.5rem;flex-wrap:wrap}.vp-title{font-size:.95rem;font-weight:600;margin-right:.4rem}.viewport-host{flex:1 1 auto;min-height:0;position:relative;border:1px solid var(--hairline);border-radius:6px;overflow:hidden;background:linear-gradient(180deg,#a9c9e4,#cfe0ef 45%,#eef4f9)}#vp-compass{position:absolute;right:10px;top:10px;width:56px;height:56px;pointer-events:none}#vp-compass .vp-compass-ring{fill:#ffffff8c;stroke:#8fa3b5;stroke-width:1}#vp-compass .vp-compass-n{fill:#c94040}#vp-compass .vp-compass-s{fill:#b3c0cb}#vp-compass .vp-compass-label{font-family:Poppins,sans-serif;font-size:10px;font-weight:700;fill:#33414d}.viewport-host canvas{display:block;width:100%;height:100%}.vp-hud{position:absolute;z-index:18;display:flex;align-items:center;gap:2px;padding:3px 5px;background:#fcfcfbf0;border:1px solid var(--baseline);border-radius:6px;box-shadow:0 2px 8px #0000001a}.vp-hud-tl{left:10px;top:10px}.vp-hud-bl{left:10px;bottom:10px}.vp-hud-cap{font-size:var(--fs-xs);letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);padding:0 4px 0 2px}.vp-hud-div{width:1px;align-self:stretch;margin:2px 5px;background:var(--hairline)}.vp-hud-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:24px;border:none;background:transparent;color:var(--tool-ink);border-radius:var(--r-sm);cursor:pointer}.vp-hud-btn:hover{background:var(--hover-warm);color:var(--accent-dark)}.vp-hud-btn.on{background:var(--active-bg);color:var(--series-1)}.vp-hud-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.vp-hud-select{font-family:inherit;font-size:var(--fs-sm);height:24px;padding:0 4px;border:1px solid var(--hairline);border-radius:var(--r-sm);background:#fff;color:var(--text-main);cursor:pointer}.tf-panel{position:absolute;left:10px;bottom:52px;z-index:20;min-width:200px;max-width:300px;background:#fcfcfbf0;border:1px solid var(--baseline);border-radius:6px;box-shadow:0 3px 10px #0000001f;padding:.35rem .45rem .4rem;font-size:.74rem}.tf-head{display:flex;align-items:center;gap:.5rem;font-weight:600;color:var(--text-second);padding-bottom:.25rem;margin-bottom:.3rem;border-bottom:1px solid var(--hairline)}.tf-name{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tf-more{flex:0 0 auto;padding:.1rem .35rem;border:1px solid var(--hairline);border-radius:3px;background:#fff;color:var(--text-muted);font-family:inherit;font-size:.68rem;font-weight:500;cursor:pointer}.tf-more:hover{background:#e9edf1;color:var(--accent-dark)}.tf-row{display:flex;align-items:center;gap:.3rem;margin-top:.25rem}.tf-sub{flex:0 0 auto;min-width:3.2rem;color:var(--text-muted);font-size:.7rem}.tf-field{display:flex;align-items:center;gap:.25rem;flex:1 1 0;min-width:0}.tf-field span{color:var(--text-muted);font-size:.7rem;flex:0 0 auto}.tf-field input,.tf-field select{width:100%;min-width:3.4rem;font-family:inherit;font-size:.74rem;font-variant-numeric:tabular-nums;padding:.14rem .25rem;border:1px solid var(--hairline);border-radius:3px;background:#fff}.tf-wide{max-width:9rem}.tf-btn{display:flex;align-items:center;justify-content:center;gap:.25rem;height:24px;min-width:26px;padding:0 .25rem;border:1px solid transparent;border-radius:3px;background:transparent;color:var(--text-second);cursor:pointer;font-size:.7rem}.tf-btn:hover{background:#e9edf1;color:var(--accent-dark);border-color:var(--hairline)}.tf-btn svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.tf-txt{flex:1 1 0;padding:.16rem .3rem;border:1px solid var(--hairline);border-radius:3px;background:#fff;color:var(--text-second);font-family:inherit;font-size:.7rem;cursor:pointer;white-space:nowrap}.tf-txt:hover{background:#e9edf1;color:var(--accent-dark)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:600;display:flex;align-items:center;justify-content:center;background:#141c2652}.modal{width:min(520px,92vw);max-height:88vh;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--baseline);border-radius:6px;box-shadow:0 12px 40px #0f19284d;overflow:hidden}.modal-head{display:flex;align-items:center;padding:.55rem .8rem;background:#f2f4f6;border-bottom:1px solid var(--hairline);font-size:.92rem;font-weight:600}.modal-x{margin-left:auto;border:none;background:transparent;color:var(--text-muted);font-size:1rem;cursor:pointer;line-height:1}.modal-x:hover{color:var(--text-main)}.modal-body{padding:.85rem 1rem;overflow-y:auto;font-size:.86rem;color:var(--text-second);line-height:1.55}.modal-body p{margin-bottom:.6rem}.modal-prompt{width:min(420px,92vw)}.prompt-field{display:flex;flex-direction:column;gap:.4rem}.prompt-field span{font-size:.84rem;color:var(--text-second);font-weight:500}.prompt-field input{width:100%}.welcome-steps{margin:.4rem 0 .7rem 1.2rem}.welcome-steps li{padding:.2rem 0;line-height:1.5}.modal-foot{display:flex;align-items:center;gap:.5rem;padding:.6rem .8rem;border-top:1px solid var(--hairline);background:#fafbfc}.toast-stack{position:fixed;right:14px;bottom:40px;z-index:500;display:flex;flex-direction:column;gap:6px;max-width:340px}.toast{display:flex;align-items:flex-start;gap:.5rem;background:var(--surface);border:1px solid var(--hairline);border-left:3px solid var(--baseline);border-radius:3px;box-shadow:0 4px 14px #0f192829;padding:.42rem .6rem;font-size:.8rem;color:var(--text-main);animation:toast-in .18s ease-out}.toast.ok{border-left-color:var(--status-good)}.toast.info{border-left-color:var(--series-1)}.toast.warn{border-left-color:var(--status-warn)}.toast.error{border-left-color:var(--status-crit)}.toast.out{opacity:0;transition:opacity .3s}.toast-msg{flex:1 1 auto;min-width:0}.toast-act{flex:0 0 auto;align-self:center;border:1px solid var(--hairline);border-radius:3px;background:#fff;color:var(--accent-dark);font-family:inherit;font-size:.74rem;font-weight:600;cursor:pointer;padding:.12rem .45rem;white-space:nowrap}.toast-act:hover{background:#f2ede7}.toast-x{border:none;background:transparent;color:var(--text-muted);font-size:.8rem;cursor:pointer;padding:0 .1rem;line-height:1.2}.toast-x:hover{color:var(--text-main)}@keyframes toast-in{0%{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes card-flash{0%{box-shadow:0 0 0 3px var(--accent)}to{box-shadow:0 0 #ed7c3000}}.flash{animation:card-flash 1.6s ease-out 1}tr.flash td{background:#fdf3ea;transition:background 1.5s ease-out}.model-nav{display:flex;flex-direction:column;gap:.25rem;flex:0 0 auto}.mstep{font-family:inherit;font-size:.85rem;font-weight:500;text-align:left;padding:.55rem .8rem;border:1px solid transparent;border-left:3px solid transparent;border-radius:6px;background:transparent;color:var(--text-second);cursor:pointer}.mstep:hover{color:var(--accent-dark)}.mstep.active{background:var(--surface);border-color:var(--hairline);border-left:3px solid var(--accent);color:var(--text-main)}.model-forms{min-height:0;overflow-y:auto;padding-right:.25rem}.msec>h2{-webkit-user-select:none;user-select:none}@media (max-width: 1000px){#tab-model.active{display:block;overflow-y:auto}.model-rail{overflow:visible}.model-nav{flex-direction:row;flex-wrap:wrap;margin-bottom:.6rem}.rail-btns{flex-direction:row;flex-wrap:wrap}.viewport-host{height:380px}}.card{background:var(--surface);border:1px solid var(--hairline);border-radius:3px;padding:.6rem .75rem;margin-bottom:.45rem}.card h2{font-size:.88rem;font-weight:600;margin:-.6rem -.75rem .55rem;padding:.4rem .75rem;background:#f2f4f6;border-bottom:1px solid var(--hairline);display:flex;align-items:center;gap:.6rem}.card h3{font-size:.85rem;font-weight:600;margin:.9rem 0 .4rem}.status-bar{padding:.6rem 1rem;border-radius:6px;margin-bottom:1rem;font-size:.88rem;border:1px solid var(--hairline)}.status-bar.error{background:#fdeeee;border-color:var(--status-crit);color:#7c1f1f}.status-bar.ok{background:#eef7ee;border-color:var(--status-good);color:#1d4d1d}.status-bar.busy{background:#fdf3ea;border-color:var(--accent);color:#6e3b12}.hidden{display:none!important}.toolbar{display:flex;align-items:flex-end;gap:.75rem;flex-wrap:wrap}.toolbar-sep{flex:0 0 1px;align-self:stretch;background:var(--hairline)}.toolbar-hint{flex:1 1 12rem;align-self:center;font-size:.74rem;color:var(--text-muted);line-height:1.35}label{display:flex;flex-direction:column;gap:.2rem;font-size:.78rem;color:var(--text-second);font-weight:500}label.grow{flex:1}.check-label{flex-direction:row;align-items:center;gap:.4rem;padding-bottom:.5rem}input[type=text],input[type=number],select{font-family:inherit;font-size:.88rem;color:var(--text-main);padding:.4rem .55rem;border:1px solid var(--baseline);border-radius:5px;background:#fff;min-width:0}input:focus,select:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}input[type=number]{width:7.2rem}.field-row{display:flex;gap:.75rem;flex-wrap:wrap;align-items:flex-end;margin-bottom:.6rem}.eval-bar{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--sp-5) var(--sp-6);margin-bottom:var(--sp-4)}.eval-selects{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--sp-5);min-width:0}.eval-selects>label{min-width:0}.eval-selects select{min-width:150px;max-width:240px}.eval-avg input{width:110px}.eval-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3)}.eval-sep{width:1px;height:22px;margin:0 var(--sp-2);background:var(--hairline)}.eval-adv>summary{cursor:pointer}.eval-card>.eval-adv{margin-top:var(--sp-2)}.btn{font-family:inherit;font-size:.86rem;font-weight:500;padding:.34rem .9rem;border:1px solid var(--baseline);border-radius:3px;background:linear-gradient(#fff,#f3f4f6);color:var(--text-main);cursor:pointer}.btn:hover{border-color:var(--accent);color:var(--accent-dark)}.btn:disabled,.btn:disabled:hover{opacity:.45;cursor:not-allowed;border-color:var(--baseline);color:var(--text-muted)}.btn-primary:disabled,.btn-primary:disabled:hover{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-dark);color:#fff}.btn-small{font-size:.78rem;padding:.3rem .7rem}.btn-danger{color:var(--status-crit)}.btn-file{display:inline-flex;align-items:center;cursor:pointer}.hint{font-size:.76rem;color:var(--text-muted);margin-bottom:.5rem}.error-details{margin-top:.6rem;padding:.5rem .6rem;max-height:30vh;overflow:auto;background:#f7f8f9;border:1px solid var(--hairline);border-radius:3px;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:.72rem;line-height:1.45;color:var(--text-second);white-space:pre-wrap;word-break:break-word}.sub-card{border:1px solid var(--hairline);border-radius:6px;padding:.75rem;margin-bottom:.75rem;background:var(--chart-surface)}.sub-card .sub-head{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:.85rem;font-weight:600}.sub-head-actions{display:flex;gap:.4rem;flex:0 0 auto}.sub-card h4{font-size:.76rem;font-weight:600;color:var(--text-second);margin:.5rem 0 .3rem}.table-scroll.table-window{overflow-y:auto;max-height:60vh}.table-scroll.table-window thead th{position:sticky;top:0;z-index:1;background:var(--surface)}.edit-table{width:100%;border-collapse:collapse}.edit-table th{font-size:.74rem;color:var(--text-muted);text-align:left;font-weight:500;padding:.25rem .4rem;border-bottom:1px solid var(--hairline);white-space:nowrap}.edit-table td{padding:.25rem .4rem}.edit-table input,.edit-table select{width:100%}.props-window .edit-table th,.props-window .edit-table td{padding:.18rem .28rem}.props-window .edit-table input[type=number]{min-width:4.4rem}.props-window .edit-table select{min-width:8rem}.edit-table td:last-child,.edit-table th:last-child{width:1%}.edit-table td:last-child .btn{white-space:nowrap}.preview-stats{font-size:.85rem}.preview-stats table{border-collapse:collapse;width:100%}.preview-stats td{padding:.28rem .4rem;border-bottom:1px solid var(--hairline)}.preview-stats td:last-child{text-align:right;font-variant-numeric:tabular-nums;color:var(--text-main)}.preview-stats td:first-child{color:var(--text-second)}.warn-text{color:#8a5a00}.note-list{list-style:none;font-size:.8rem;color:var(--text-second)}.note-list li{padding:.25rem 0;border-bottom:1px solid var(--hairline)}.note-list li:last-child{border-bottom:none}.notes-collapsed{margin-top:.3rem;max-height:200px;overflow-y:auto}.cmd-block{font-family:Consolas,Cascadia Mono,monospace;font-size:.82rem;background:#f4f3ef;border:1px solid var(--hairline);border-radius:6px;padding:.75rem 1rem;margin:.4rem 0 .6rem;overflow-x:auto;white-space:pre}.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.75rem;margin-bottom:1rem}.stat-tile{background:var(--surface);border:1px solid var(--hairline);border-radius:8px;padding:.8rem 1rem}.stat-label{font-size:.76rem;color:var(--text-second);font-weight:500}.stat-value{font-size:1.7rem;font-weight:600;color:var(--text-main);line-height:1.25}.stat-sub{font-size:.72rem;color:var(--text-muted)}.chip{display:inline-flex;align-items:center;gap:.3rem;font-size:.72rem;font-weight:600;padding:.1rem .5rem;border-radius:10px;margin-top:.25rem;border:1px solid}.chip-good{color:#075207;border-color:var(--status-good);background:#eef7ee}.chip-warn{color:#6e4a00;border-color:var(--status-warn);background:#fdf6e3}.chip-serious{color:#77341a;border-color:var(--status-serious);background:#fdefe9}.chip-crit{color:#6e1f1f;border-color:var(--status-crit);background:#fdeeee}.chip-neutral{color:var(--text-second);border-color:var(--baseline);background:#f4f3ef}.chip-note{font-weight:700;opacity:.75}.charts-2col{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:1rem}.viz-root{background:var(--chart-surface);border-radius:6px;padding:.5rem}.viz-root svg{display:block;width:100%;height:auto}.resid-chart.fill,.eng-chart.fill,.viz-root.fill{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.resid-chart.fill .resid-plot-wrap,.eng-chart.fill .resid-plot-wrap,.viz-root.fill .chart-plot{flex:1 1 auto;min-height:0;overflow:hidden}.viz-root.fill .chart-plot>svg{height:100%}.chart-legend{display:flex;gap:1.25rem;padding:.3rem .5rem 0;font-size:.76rem;color:var(--text-second)}.legend-key{display:inline-flex;align-items:center;gap:.35rem}.legend-swatch{width:10px;height:10px;border-radius:50%;display:inline-block}.table-scroll{overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:.82rem}.data-table th{text-align:right;font-weight:500;color:var(--text-muted);font-size:.74rem;padding:.35rem .55rem;border-bottom:1px solid var(--baseline)}.data-table th:first-child,.data-table td:first-child{text-align:left}.data-table th i{font-style:italic}.data-table th sub{font-style:normal;font-size:.8em;line-height:0;vertical-align:baseline;position:relative;bottom:-.28em}.data-table td{text-align:right;padding:.32rem .55rem;border-bottom:1px solid var(--hairline);font-variant-numeric:tabular-nums;color:var(--text-main)}.data-table tbody tr:nth-child(2n) td{background:#fafbfc}.data-table tbody tr:hover td{background:var(--hover-bg)}.table-tall{max-height:420px;overflow-y:auto}.table-tall .data-table thead th{position:sticky;top:0;z-index:1;background:var(--surface)}.data-table.sortable th{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.data-table.sortable th:hover{color:var(--accent-dark)}.sort-caret{display:inline-block;width:0;height:0;margin-left:.3rem;vertical-align:middle;border-left:3.5px solid transparent;border-right:3.5px solid transparent;opacity:0}.data-table.sortable th.sorted{color:var(--accent-dark)}.data-table.sortable th.sorted .sort-caret{opacity:1}.data-table.sortable th.sorted.asc .sort-caret{border-bottom:4px solid var(--accent)}.data-table.sortable th.sorted.desc .sort-caret{border-top:4px solid var(--accent)}.card-count{margin-left:.5rem;font-size:var(--fs-xs);font-weight:400;color:var(--text-muted)}.chart-note{margin:.3rem 0 0;padding:0 .5rem;font-size:var(--fs-xs);color:var(--text-muted)}#tab-generate.active{display:grid;grid-template-columns:clamp(300px,24%,420px) minmax(0,1fr);gap:.9rem;overflow:hidden}#tab-generate.active.left-collapsed{grid-template-columns:2.4rem minmax(0,1fr)}.gen-reopen{display:flex;flex-direction:column;align-items:center;gap:.45rem;padding:.55rem 0;border:1px solid var(--hairline);border-radius:6px;background:var(--surface);color:var(--text-second);cursor:pointer;min-height:0;align-self:start}.gen-reopen:hover{background:var(--hover-bg);color:var(--text-main)}.gen-reopen-chevron{font-size:1.15rem;line-height:1}.gen-reopen-label{writing-mode:vertical-rl;text-orientation:mixed;font-size:.72rem;letter-spacing:.03em}.gen-collapse{margin-left:.25rem}.run-head-sep{display:inline-block;width:1px;height:1.2rem;background:var(--hairline);margin:0 .2rem}.gen-col{min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:.75rem;padding-right:.25rem}.gen-col .card{margin-bottom:0}.gen-run-col{min-height:0;margin-bottom:0;display:flex;flex-direction:column;overflow:hidden}#run-panel:not(.hidden){display:flex;flex-direction:column;flex:1 1 auto;min-height:0}#run-panel .run-body{flex:1 1 auto;min-height:0;overflow-y:auto;display:flex;flex-direction:column}#run-panel .run-warnings{flex:0 0 auto;display:flex;flex-direction:column;gap:6px;margin-bottom:8px}#run-panel .run-warning{display:flex;align-items:flex-start;gap:8px;padding:8px 11px;font-size:12.5px;line-height:1.45;color:#7a4a04;background:#fdf4e3;border:1px solid #f0d49a;border-left:3px solid #d98c1f;border-radius:5px}#run-panel .run-warning-icon{flex:0 0 auto;width:15px;height:15px;margin-top:1px;fill:none;stroke:#d98c1f;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}#run-panel .run-body.has-monitor{overflow:hidden}#run-panel .run-body>#run-log{flex:1 1 auto;min-height:120px;max-height:none;overflow-y:auto}#run-panel .run-details #run-log{max-height:260px;overflow-y:auto}#run-panel:not(.hidden)+#run-empty{display:none}.gen-local>summary{cursor:pointer;font-size:.78rem;color:var(--text-second);margin-top:.4rem}@media (max-width: 1000px){#tab-generate.active{display:block;overflow-y:auto}.gen-run-col{overflow:visible;margin-top:.75rem}#run-panel .run-body>#run-log{max-height:240px}#run-panel .run-body{overflow-y:visible}#run-panel .run-body.has-monitor{overflow:visible}.monitor-panel{overflow-y:visible}.monitor-log{max-height:240px}}.subtabs{display:flex;align-items:stretch;gap:2px;flex:0 0 auto;border-bottom:1px solid var(--hairline)}.subtab{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .85rem;border:1px solid transparent;border-bottom:none;border-radius:3px 3px 0 0;margin-bottom:-1px;background:none;font:inherit;font-size:.82rem;color:var(--text-second);cursor:pointer;white-space:nowrap}.subtab:hover:not(:disabled){color:var(--accent-dark);background:#f2f4f6}.subtab.on{background:var(--surface);border-color:var(--hairline);border-bottom:1px solid var(--surface);color:var(--text);font-weight:600;box-shadow:inset 0 2px 0 var(--accent)}.subtab:disabled{opacity:.45;cursor:default}.subtab-count{font-size:.72rem;font-weight:400;color:var(--text-second);background:#eef1f4;border-radius:8px;padding:0 .35rem}.subtabs-right{margin-left:auto;display:flex;align-items:center}.solver-monitor{display:flex;flex-direction:column;gap:.65rem;padding-bottom:.5rem;container-type:inline-size;flex:1 1 auto;min-height:0}.monitor-panel{flex:1 1 auto;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:.65rem;padding-top:.15rem;padding-right:.25rem}.monitor-log{flex:1 1 auto;min-height:160px;max-height:none;overflow-y:auto;margin:0}.monitor-setup{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:start;gap:.65rem}.monitor-block{border:1px solid var(--hairline);border-radius:3px;background:var(--surface);min-width:0;overflow-x:auto}.monitor-block.grow{grid-column:1 / -1}.monitor-block-title{font-size:.82rem;font-weight:600;margin:0;padding:.35rem .7rem;background:#f2f4f6;border-bottom:1px solid var(--hairline)}.monitor-block>:not(.monitor-block-title){padding:.5rem .7rem}.monitor-block .mesh-stats-grid{padding:.5rem .7rem}.monitor-main{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.65rem .9rem;align-items:start}.monitor-table-col,.monitor-chart-col{min-width:0}.monitor-table-col{overflow-x:auto}@container (max-width: 980px){.monitor-main{grid-template-columns:1fr}}.monitor-panel>.monitor-main{flex:1 1 auto;min-height:0;align-items:stretch}.monitor-panel>.monitor-main>.monitor-chart-col{min-height:0;overflow:hidden;display:flex;flex-direction:column}.monitor-panel>.monitor-main>.monitor-table-col{align-self:start;max-height:100%;overflow-y:auto}.monitor-fill{flex:1 1 auto;min-height:0;overflow:hidden;display:flex;flex-direction:column}@container (max-width: 980px){.monitor-panel>.monitor-main{flex:0 0 auto}.monitor-panel>.monitor-main>.monitor-chart-col{overflow:visible}}.run-summary-strip{display:flex;flex-wrap:wrap;border:1px solid var(--hairline);border-radius:6px;overflow:hidden}.run-summary-cell{flex:1 1 auto;display:flex;flex-direction:column;gap:.1rem;padding:.45rem .8rem;border-right:1px solid var(--hairline);background:var(--surface);min-width:7rem}.run-summary-cell:last-child{border-right:none}.run-summary-label{font-size:.72rem;color:var(--text-muted)}.run-summary-value{font-size:.92rem;font-weight:600;color:var(--text-main);white-space:nowrap}.solver-table{border-collapse:collapse;width:100%;font-size:.8rem;background:var(--surface)}.solver-table th,.solver-table td{border:1px solid var(--hairline);padding:.28rem .65rem;text-align:left;color:var(--text-second)}.solver-table th{background:#f4f3ef;font-weight:600;color:var(--text-main)}.solver-table td.num,.solver-table th.num{text-align:right;font-variant-numeric:tabular-nums}.solver-table td:first-child{color:var(--text-main);font-weight:500}.solver-table.eq-table td.num,.solver-table.eq-table th.num{white-space:nowrap}.drop-risen{color:var(--status-warn)}.cont-strip strong{color:var(--text-main);margin-right:.15rem}.cont-strip .cont-val{margin-left:.7rem;font-variant-numeric:tabular-nums;white-space:nowrap}.mesh-stats-grid{display:flex;flex-wrap:wrap;gap:.6rem;align-items:flex-start;margin-top:.5rem}.mesh-stats-grid .solver-table{width:auto;min-width:15rem;flex:1 1 15rem}.run-details>summary{cursor:pointer;font-size:.8rem;font-weight:500;color:var(--text-second)}.run-details[open]>summary{margin-bottom:.3rem}.resid-chart{border:1px solid var(--hairline);border-radius:6px;background:var(--chart-surface);padding:.55rem .6rem .4rem}.resid-head{display:flex;align-items:baseline;gap:.6rem;margin-bottom:.2rem}.resid-title{font-size:.84rem;font-weight:600;color:var(--text-main)}.resid-plot-wrap{position:relative}.resid-tick{fill:var(--text-muted);font-size:.7rem;font-variant-numeric:tabular-nums;font-family:inherit}.resid-empty{padding:1.2rem .4rem;margin:0}.resid-key{display:inline-block;width:12px;height:3px;border-radius:2px;flex:none}.resid-legend{display:flex;flex-wrap:wrap;gap:.25rem .9rem;padding:.3rem .2rem .1rem}.resid-legend-item{display:inline-flex;align-items:center;gap:.35rem;font-size:.75rem;color:var(--text-second)}.resid-tip{position:absolute;top:8px;background:var(--surface);border:1px solid var(--hairline);border-radius:6px;box-shadow:0 2px 10px #16181b1f;padding:.4rem .6rem;pointer-events:none;z-index:5;min-width:10.5rem}.resid-tip-time{font-size:.75rem;font-weight:600;color:var(--text-main);margin-bottom:.2rem}.resid-tip-row{display:flex;align-items:center;gap:.4rem;font-size:.74rem;color:var(--text-second);line-height:1.5}.resid-tip-name{flex:1 1 auto}.resid-tip-val{font-variant-numeric:tabular-nums;color:var(--text-main)}.resid-tools{margin-left:auto;display:inline-flex;gap:4px}.resid-tool{border:1px solid var(--hairline);background:var(--surface);color:var(--text-second);font:inherit;font-size:.68rem;padding:2px 7px;border-radius:3px;cursor:pointer}.resid-tool:hover{border-color:var(--accent);color:var(--accent-dark)}.resid-ref-txt{fill:var(--text-muted);font-size:.64rem;font-weight:600;font-variant-numeric:tabular-nums}button.resid-legend-item{border:none;background:none;font:inherit;cursor:pointer;padding:0}.resid-legend-item.off{opacity:.4;text-decoration:line-through}.fld{white-space:nowrap}.fld-sub{font-size:.72em;line-height:0;position:relative;bottom:-.22em;vertical-align:baseline;letter-spacing:.01em}.status-pill{display:inline-block;font-size:.6rem;font-weight:700;letter-spacing:.04em;padding:1px 5px;border-radius:3px;border:1px solid transparent;line-height:1.5;white-space:nowrap}.sp-pass{color:#075207;background:#eef7ee;border-color:#bfe3bf}.sp-warn{color:#6e4a00;background:#fdf6e3;border-color:#eddba0}.sp-fail{color:#6e1f1f;background:#fdeeee;border-color:#f0c4c4}.sp-pending{color:var(--text-muted);background:#f4f3ef;border-color:var(--hairline)}.assess-card{border:1px solid var(--hairline);border-left:3px solid var(--vc, var(--baseline));border-radius:6px;background:var(--surface);padding:.5rem .7rem}.verdict-good{--vc: var(--status-good)}.verdict-warn{--vc: var(--status-warn)}.verdict-crit{--vc: var(--status-crit)}.verdict-neutral{--vc: var(--accent)}.assess-head{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem}.assess-verdict-dot{width:9px;height:9px;border-radius:50%;background:var(--vc);flex:none}.assess-verdict{font-weight:700;font-size:.92rem;color:var(--text-main)}.assess-score{margin-left:auto;display:inline-flex;align-items:baseline;gap:.3rem;font-variant-numeric:tabular-nums;cursor:help}.infotip-box{position:fixed;z-index:9000;display:block;width:max-content;max-width:min(30rem,calc(100vw - 16px));padding:.45rem .6rem;border:1px solid var(--hairline);border-radius:4px;background:var(--surface, #fff);color:var(--text-second);font-size:.72rem;font-weight:400;line-height:1.45;text-align:left;white-space:normal;font-variant-numeric:normal;box-shadow:0 4px 14px #0f172a29;pointer-events:none}.infotip-box.measuring{visibility:hidden}.assess-score-label{font-weight:500;font-size:.72rem;color:var(--text-muted)}.assess-score-num{font-weight:700;font-size:1rem;color:var(--vc)}.assess-score-unit{font-weight:500;font-size:.72rem;color:var(--text-muted)}.assess-checks{display:flex;flex-direction:column;gap:.2rem}.assess-row{display:flex;align-items:center;gap:.5rem;font-size:.78rem}.assess-row .status-pill{min-width:3.4rem;text-align:center}.assess-label{font-weight:600;color:var(--text-main);min-width:9.5rem}.assess-detail{color:var(--text-second);flex:1 1 auto}.assess-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.65rem .9rem;align-items:start}@container (max-width: 980px){.assess-body{grid-template-columns:1fr}}.assess-body .assess-checks,.assess-fields{min-width:0}.assess-field-table{border-collapse:collapse;font-size:.72rem;width:100%}.assess-field-cap{caption-side:top;text-align:left;font-weight:600;font-size:.72rem;color:var(--text-main);padding-bottom:.2rem}.assess-field-table th,.assess-field-table td{padding:2px .5rem;text-align:left;white-space:nowrap}.assess-field-table th:first-child,.assess-field-table td:first-child{padding-left:0;width:1%}.assess-field-table th:last-child,.assess-field-table td:last-child{padding-right:0;text-align:right}.assess-field-table th{font-weight:600;color:var(--text-muted);border-bottom:1px solid var(--hairline)}.assess-field-table td{color:var(--text-second)}.assess-field-table tbody tr+tr td{border-top:1px solid color-mix(in srgb,var(--hairline) 45%,transparent)}.assess-field-table .num{text-align:right;font-variant-numeric:tabular-nums}.assess-field-table td.num{color:var(--text-main)}.assess-field-table .status-pill{min-width:3.4rem;text-align:center}.assess-field-table th[title]{cursor:help}.assess-field-name{font-weight:600}.assess-field-val{font-variant-numeric:tabular-nums}.eng-chart{border:1px solid var(--hairline);border-radius:6px;background:var(--chart-surface);padding:.55rem .6rem .4rem}.eng-seg{margin-left:auto;display:inline-flex;flex-wrap:wrap;gap:2px}.eng-seg-btn{border:1px solid var(--hairline);background:var(--surface);color:var(--text-second);font:inherit;font-size:.68rem;padding:2px 7px;border-radius:3px;cursor:pointer}.eng-seg-btn:hover{border-color:var(--accent);color:var(--accent-dark)}.eng-seg-btn.on{background:var(--accent);border-color:var(--accent);color:#fff}.kpi-panel{display:flex;flex-direction:column;gap:.5rem}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(8.5rem,1fr));gap:.4rem}.kpi-tile{border:1px solid var(--hairline);border-radius:5px;background:var(--surface);padding:.4rem .55rem;display:flex;flex-direction:column;gap:.15rem}.kpi-tile-top{display:flex;align-items:center;justify-content:space-between;gap:.3rem}.kpi-label{font-size:.68rem;color:var(--text-muted)}.kpi-value{font-size:1.05rem;font-weight:700;color:var(--text-main);font-variant-numeric:tabular-nums}.kpi-unit{font-size:.72rem;font-weight:500;color:var(--text-muted)}.kpi-detail{font-size:.66rem;color:var(--text-second)}.kpi-energy{border-top:1px dashed var(--hairline);padding-top:.45rem}.kpi-energy-head{font-size:.72rem;font-weight:600;color:var(--text-second);margin-bottom:.35rem}.kpi-foot{margin:.35rem 0 0}.def-table td:first-child{width:42%;color:var(--text-second);font-weight:500}.def-table td{color:var(--text-main)}.health-list{display:flex;flex-direction:column;gap:.25rem}.health-row{display:flex;align-items:center;gap:.5rem;font-size:.78rem}.health-row .status-pill{min-width:3.4rem;text-align:center}.health-label{font-weight:600;color:var(--text-main);min-width:8rem}.health-detail{color:var(--text-second);flex:1 1 auto}.bounding-note{display:flex;gap:.45rem;align-items:flex-start;font-size:.72rem;color:var(--text-second);margin-top:.35rem;padding:.35rem .45rem;border:1px solid var(--hairline);border-radius:5px;background:#f8f9fb}.bounding-note.warn{background:#fdf6e3;border-color:#eddba0}.bounding-note .status-pill{flex:none;margin-top:1px}.progress-track{height:10px;border-radius:5px;background:#eeede8;border:1px solid var(--hairline);overflow:hidden;margin:.4rem 0 .7rem}.progress-fill{height:100%;width:0%;background:var(--accent);transition:width .6s ease}.progress-track.indeterminate .progress-fill{width:32%;transition:none;background:linear-gradient(90deg,rgba(237,124,48,.15),var(--accent),rgba(237,124,48,.15));animation:sync-sweep 1.4s ease-in-out infinite}.run-steps{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2) 0;margin:.5rem 0 .35rem;padding:0;list-style:none}.run-step{display:flex;align-items:center;gap:var(--sp-3);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.run-step+.run-step:before{content:"";width:26px;height:1px;margin:0 var(--sp-4);background:var(--hairline)}.run-step-dot{width:8px;height:8px;border-radius:50%;border:1px solid var(--hairline);background:var(--surface)}.run-step.is-done{color:var(--text-second)}.run-step.is-done .run-step-dot,.run-step.is-active .run-step-dot,.run-step.is-held .run-step-dot{background:var(--accent);border-color:var(--accent)}.run-step.is-done+.run-step:before,.run-step.is-active+.run-step:before{background:#f0c6a2}.run-step.is-active,.run-step.is-held{color:var(--accent-dark);font-weight:600}.run-step.is-active .run-step-dot{animation:run-step-pulse 1.6s ease-out infinite}@keyframes run-step-pulse{0%{box-shadow:0 0 #ed7c3073}70%{box-shadow:0 0 0 6px #ed7c3000}to{box-shadow:0 0 #ed7c3000}}@media (prefers-reduced-motion: reduce){.run-step.is-active .run-step-dot{animation:none}.progress-track.indeterminate .progress-fill{animation:none;width:100%;opacity:.5}}details.card>summary{cursor:pointer;font-size:.88rem;font-weight:500;color:var(--text-second)}details>summary.hint{cursor:pointer}.viz-bar{flex:0 0 auto;display:flex;flex-wrap:wrap;align-items:flex-end;align-content:center;gap:.5rem .55rem;padding:.45rem .6rem;margin-bottom:.4rem;background:linear-gradient(#fff,#f4f5f7);border:1px solid var(--hairline);border-radius:6px}.viz-group{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.5rem .45rem;flex:0 0 auto}.viz-field{display:flex;flex-direction:column;justify-content:flex-end;gap:.2rem;flex:0 0 auto;min-width:0}.viz-inline{display:flex;align-items:center;gap:.3rem}.viz-lbl{font-size:.585rem;font-weight:700;text-transform:uppercase;letter-spacing:.055em;line-height:1;color:var(--text-muted);white-space:nowrap}.viz-bar select,.viz-bar input[type=number]{height:28px;padding:.05rem .4rem;font-size:.78rem;border:1px solid var(--baseline);border-radius:4px;background:#fff;color:var(--text-main);transition:border-color .12s ease,box-shadow .12s ease}.viz-bar select{min-width:5.4rem;max-width:13rem;padding-right:1.45rem;text-overflow:ellipsis;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="10" height="6" viewBox="0 0 10 6"><path d="M1 1l4 4 4-4" fill="none" stroke="%2385888d" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>');background-repeat:no-repeat;background-position:right .5rem center}.viz-bar select:hover,.viz-bar input[type=number]:hover{border-color:var(--text-muted)}.viz-bar select:focus-visible,.viz-bar input:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #ed7c302e}.viz-bar select:disabled{background:#f4f5f7;color:var(--text-muted)}.viz-field-name select{min-width:9.4rem}.viz-field-preset select{min-width:11.4rem}.viz-bar input[type=number]{width:3.8rem}.viz-bar #v-iso{width:3.4rem}.viz-field-num input[type=number]{width:4.4rem}.viz-bar .viz-btn{align-self:flex-end}.viz-bar .icon-btn{height:28px;width:28px}.viz-bar .btn-small.viz-btn{height:28px}.viz-inline .viz-play{align-self:center}.viz-play.playing{border-color:var(--accent);color:var(--accent-dark);background:var(--hover-warm)}.viz-field-slider input[type=range]{width:96px;flex:0 0 96px;height:28px;margin:0;accent-color:var(--accent);cursor:pointer}.viz-slider-val{flex:0 0 auto;min-width:2.4rem;text-align:right;font-size:.74rem;font-weight:600;color:var(--text-second);font-variant-numeric:tabular-nums}.viz-unit{font-size:.72rem;color:var(--text-muted)}.viz-sep{flex:0 0 auto;align-self:flex-end;width:1px;height:28px;background:var(--hairline);margin:0 .2rem}.viz-spacer{flex:1 1 auto;min-width:0}.viz-bar .btn.viz-act{flex:0 0 auto;align-self:flex-end;height:28px;min-width:5.6rem;padding:0 1rem;display:inline-flex;align-items:center;justify-content:center;font-size:.79rem;font-weight:600;white-space:nowrap}.viz-canvas-actions{position:absolute;top:10px;right:10px;z-index:5;display:flex;align-items:center;gap:.4rem}.viz-canvas-actions .btn,.viz-canvas-actions .icon-btn{background:#fff;box-shadow:0 1px 3px #10182824}.viz-canvas-actions .btn-outline:hover{background:#fff5ee}.viz-stage:has(#scene-wrap:not(.hidden)) .viz-canvas-actions{display:none}.viz-status{font-size:.73rem;color:var(--text-second);white-space:nowrap;max-width:16rem;overflow:hidden;text-overflow:ellipsis;background:#ffffffeb;border:1px solid var(--hairline);border-radius:4px;padding:.2rem .5rem;box-shadow:0 1px 3px #1018281a}.viz-status:empty{display:none}.btn-outline{background:#fff;border-color:var(--accent);color:var(--accent-dark)}.btn-outline:hover{background:#fff5ee;border-color:var(--accent-dark)}.icon-btn{height:30px;width:30px;flex:0 0 auto;align-self:center;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--baseline);border-radius:4px;background:linear-gradient(#fff,#f3f4f6);color:var(--text-second);cursor:pointer}.icon-btn:hover{border-color:var(--accent);color:var(--accent-dark)}.icon-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.viz-stage{flex:1 1 auto;min-height:0;position:relative;display:flex;overflow:hidden;border:1px solid var(--hairline);border-radius:8px;background:var(--chart-surface);box-shadow:0 1px 3px #10182812,0 1px 2px #1018280a}#v-image-box{flex:1 1 auto;min-height:0;display:flex;align-items:center;justify-content:center;padding:.4rem}#v-image-box img{max-width:100%;max-height:100%;object-fit:contain;display:block}#v-image-box.busy{opacity:.45}.empty-state.viz-empty{padding:1.2rem}.viz-empty .empty-icon{width:38px;height:38px;opacity:.6}.viz-empty .empty-title{margin-bottom:.2rem}.viz-empty-hint{margin:.25rem auto 0;max-width:34rem;font-size:.8rem;line-height:1.55;color:var(--text-muted)}.viz-empty-hint strong{color:var(--text-second);font-weight:600}.viz-info{position:absolute;left:10px;top:10px;z-index:3;background:#ffffffe6;border:1px solid var(--hairline);border-radius:4px;padding:.15rem .5rem;font-size:.74rem;color:var(--text-second)}.viz-info:empty{display:none}.viz-gallery{flex:0 0 auto;display:flex;gap:.4rem;overflow-x:auto;margin-top:.45rem;padding:6px;background:var(--surface);border:1px solid var(--hairline);border-radius:8px}.viz-gallery:empty{display:none}.viz-gallery img{width:116px;height:72px;flex:0 0 auto;object-fit:cover;border:1px solid var(--hairline);border-radius:4px;cursor:pointer}.viz-gallery img.active{border:2px solid var(--accent)}#scene-wrap:not(.hidden){position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;display:flex;flex-direction:column;background:var(--chart-surface)}.scene-viewport{position:relative;flex:1 1 auto;min-height:0;width:100%;display:flex}.scene-viewcube{position:absolute;top:8px;right:8px;z-index:6;display:flex;gap:2px;padding:2px;border-radius:var(--r-md);background:#ffffffd1;border:1px solid var(--hairline);box-shadow:var(--elev-1)}.vc-btn{font-family:inherit;font-size:var(--fs-xs);font-weight:500;color:var(--text-second);background:transparent;border:none;border-radius:var(--r-sm);padding:3px 8px;cursor:pointer}.vc-btn:hover{background:var(--hover-bg);color:var(--accent-dark)}.scene-host{position:relative;flex:1 1 auto;width:100%;min-height:0;overflow:hidden;background:linear-gradient(180deg,#a9c9e4,#cfe0ef 45%,#eef4f9);cursor:grab}.scene-host:active{cursor:grabbing}.scene-host canvas{display:block;width:100%;height:100%}.scene-colorbar{position:absolute;left:8px;top:8px;background:#ffffffd1;border:1px solid var(--hairline);border-radius:4px;padding:2px 3px;pointer-events:none}.scene-triad{position:absolute;left:10px;bottom:8px;width:74px;height:74px;pointer-events:none}.scene-triad text{font-family:Poppins,sans-serif;font-size:10px;font-weight:600}.sync-progress{position:absolute;left:50%;top:16px;transform:translate(-50%);z-index:8;width:min(460px,80%);padding:.5rem .7rem .55rem;background:#fffffff7;border:1px solid var(--hairline);border-radius:8px;box-shadow:0 4px 14px #10182824}.sync-progress.hidden{display:none}.sync-progress-head{display:flex;justify-content:space-between;align-items:baseline;gap:.6rem;font-size:.78rem;color:var(--text-second);margin-bottom:.4rem}.sync-progress-head #v-sync-progress-pct{font-weight:600;color:var(--accent-dark);font-variant-numeric:tabular-nums}.sync-progress-track{height:8px;background:#e9ecf0;border-radius:5px;overflow:hidden}.sync-progress-fill{height:100%;width:0;background:linear-gradient(90deg,var(--accent),var(--accent-dark));border-radius:5px;transition:width .35s ease}.sync-progress.indeterminate .sync-progress-fill{width:35%;animation:sync-sweep 1.1s ease-in-out infinite}@keyframes sync-sweep{0%{margin-left:-35%}to{margin-left:100%}}.render-progress{position:absolute;top:0;right:0;bottom:0;left:0;z-index:12;display:flex;align-items:center;justify-content:center;background:#f8fafc8c}.render-progress-card{width:min(420px,78%);padding:1rem 1.15rem 1.1rem;background:#fff;border:1px solid var(--hairline);border-radius:10px;box-shadow:0 8px 28px #1018282e}.render-progress-head{display:flex;justify-content:space-between;align-items:baseline;gap:.7rem;font-size:.85rem;color:var(--text-main);margin-bottom:.6rem}.render-progress-pct{font-weight:600;color:var(--accent-dark);font-variant-numeric:tabular-nums}.render-progress-track{height:10px;background:#e9ecf0;border-radius:6px;overflow:hidden}.render-progress-fill{height:100%;width:0;background:linear-gradient(90deg,var(--accent),var(--accent-dark));border-radius:6px;transition:width .3s ease}.render-progress-card.indeterminate .render-progress-fill{width:35%;animation:sync-sweep 1.1s ease-in-out infinite}.render-progress-foot{display:flex;justify-content:space-between;align-items:center;gap:.7rem;margin-top:.75rem;font-size:.76rem;color:var(--text-muted)}.tooltip{position:fixed;z-index:200;background:#fff;border:1px solid var(--baseline);border-radius:6px;box-shadow:0 2px 8px #0000001f;padding:.45rem .65rem;font-size:.78rem;color:var(--text-main);pointer-events:none;max-width:260px}.tooltip .tt-title{font-weight:600;margin-bottom:.15rem}.tooltip .tt-row{color:var(--text-second)}.guide{max-width:880px}.guide h3{margin:1.1rem 0 .35rem;font-size:1rem}.guide p,.guide li{font-size:.88rem;color:var(--text-second);line-height:1.55}.guide ul{margin:.3rem 0 .6rem 1.2rem}.guide code{background:#f2f4f7;border:1px solid var(--baseline);border-radius:4px;padding:.05rem .35rem;font-size:.82rem}.check-label{display:flex;align-items:center;gap:.4rem;align-self:end;padding-bottom:.35rem}.check-label input[type=checkbox]{width:auto}#tab-results.active,#tab-visualize.active{display:flex;flex-direction:column;overflow:hidden}#tab-results.active>.card:first-child,#tab-visualize.active>.card:first-child{flex:0 0 auto}.results-empty{flex:1 1 auto;min-height:0;display:flex}.results-empty .runs-card{flex:1 1 auto;min-height:0;margin-bottom:0;display:flex;flex-direction:column}.runs-list{flex:1 1 auto;min-height:0;overflow-y:auto}#results-body:not(.hidden){flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:hidden}.results-metrics{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:.5rem}.results-panel{flex:1 1 auto;min-height:0;overflow-y:auto;padding-top:.15rem;padding-right:.25rem;display:flex;flex-direction:column}.results-panel>.card{margin-bottom:0}.results-panel>.fill-card,.results-panel>.fill-2col>.fill-card{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.results-panel>.fill-2col{flex:1 1 auto;min-height:0;align-items:stretch}.chart-fill{flex:1 1 auto;min-height:0;overflow:hidden;display:flex;flex-direction:column}.fill-scroll{flex:1 1 auto;min-height:0;max-height:none;overflow-y:auto}@media (max-width: 950px){#tab-results.active{display:block;overflow-y:auto}.results-empty,.results-empty .runs-card{display:block}#results-body:not(.hidden){display:block;overflow:visible}.results-metrics{display:block}.results-panel{overflow-y:visible}.results-panel>.fill-card,.results-panel>.fill-2col>.fill-card{display:block}.chart-fill{overflow:visible}.fill-scroll{max-height:420px}.viz-stage{min-height:360px}}#tab-results.active{position:relative}.report-view{position:absolute;top:0;right:0;bottom:0;left:0;z-index:6;display:flex;flex-direction:column;background:var(--surface)}.report-view.hidden{display:none!important}.report-view-bar{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;border-bottom:1px solid var(--hairline);background:#f2f4f6;flex:0 0 auto}.report-frame{flex:1 1 auto;width:100%;border:none;background:#eef1f4}.report-progress{flex:0 0 auto;padding:.6rem .8rem .7rem;border-bottom:1px solid var(--hairline);background:#fff}.report-progress.hidden{display:none}.report-progress-head{display:flex;justify-content:space-between;align-items:baseline;gap:.6rem;font-size:.82rem;color:var(--text-main);margin-bottom:.4rem}.report-progress-head #report-progress-count{font-weight:600;color:var(--accent-dark);font-variant-numeric:tabular-nums}.report-progress-track{height:8px;background:#e9ecf0;border-radius:5px;overflow:hidden}#report-progress-fill{height:100%;width:0;background:linear-gradient(90deg,var(--accent),var(--accent-dark));border-radius:5px;transition:width .35s ease}.report-progress.indeterminate #report-progress-fill{width:35%;animation:sync-sweep 1.1s ease-in-out infinite}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:180px;text-align:center;padding:2rem 1.5rem;color:var(--text-muted)}.empty-icon{width:34px;height:34px;fill:none;stroke:var(--baseline);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;margin-bottom:.6rem}.empty-title{font-size:.95rem;font-weight:600;color:var(--text-second);margin-bottom:.3rem}.empty-sub{font-size:.8rem;line-height:1.5;max-width:30rem}.gen-run-col #run-empty{flex:1 1 auto}#remote-status:empty{display:none}#r-project,#r-remote-case,#v-project,#v-case{min-width:12rem}.tb-accent{color:#fff;background:var(--accent);border-radius:4px}.tb-accent:hover{color:#fff;background:var(--accent-dark)}.tb-accent svg{stroke-width:1.8}.runs-table th,.runs-table td{text-align:left}.runs-table td.runs-actions,.runs-table th:last-child{text-align:right}.runs-table .chip{margin-top:0}.runs-actions{white-space:nowrap}.runs-actions .btn{margin-left:.35rem}.run-act{display:inline-flex;vertical-align:middle;margin-left:.25rem}.run-act svg{width:15px;height:15px}.run-act.danger{color:var(--status-crit)}.run-act.danger:hover{background:#fbecec;color:var(--status-crit)}.run-act:disabled{color:var(--disabled-ink);cursor:not-allowed;background:transparent}.runs-proj-row td{background:#f2f4f7;font-weight:600;color:var(--text-main);border-top:1px solid var(--hairline)}.runs-proj-count{font-weight:400;color:var(--text-muted)}.run-tree{display:grid;grid-template-columns:minmax(0,1fr) 90px auto;align-items:center;font-size:var(--fs-sm)}.run-tree-head{display:contents}.run-tree-head>span{padding:var(--sp-3) var(--sp-5);font-size:var(--fs-xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--hairline);white-space:nowrap}.run-tree-head>span:last-child{text-align:right}.run-row{display:contents}.run-row>span{min-height:34px;display:flex;align-items:center;padding:var(--sp-2) var(--sp-5);border-bottom:1px solid var(--hairline)}.run-row:hover>span{background:var(--hover-bg)}.run-row-project,.run-row-model{cursor:pointer}.run-row-project>span{background:#f2f4f7;font-weight:600;color:var(--text-main)}.run-row-model>span{background:#fafbfc;font-weight:600;color:var(--text-second)}.run-row-name{gap:var(--sp-3);min-width:0}.run-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.run-namecol{display:flex;flex-direction:column;min-width:0;gap:1px}.run-when{display:flex;flex-wrap:wrap;gap:2px var(--sp-4);font-size:var(--fs-xs);color:var(--text-muted);white-space:nowrap}.run-when-k{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);opacity:.75;margin-right:2px}.run-d1{padding-left:1.5rem;box-shadow:inset 1px 0 0 var(--hairline)}.run-d2{padding-left:3rem;box-shadow:inset 1px 0 0 var(--hairline)}.run-tw{display:inline-flex;align-items:center;justify-content:center;flex:0 0 14px;width:14px;color:var(--text-muted);transition:transform .12s ease}.run-tw svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2}.run-row.is-open .run-tw{transform:rotate(90deg)}.run-ic{display:inline-flex;flex:0 0 16px;color:var(--tool-ink-soft)}.run-ic svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.run-row-project .run-ic{color:var(--accent)}.run-count{font-size:var(--fs-xs);font-weight:400;color:var(--text-muted);white-space:nowrap}.run-row-acts{justify-content:flex-end;gap:var(--sp-2);white-space:nowrap}.run-act-sep{width:1px;height:16px;margin:0 var(--sp-2);background:var(--hairline)}.run-readonly{font-size:var(--fs-xs);color:var(--text-muted);font-style:italic}.home-chip-ok{margin-left:var(--sp-4);padding:1px var(--sp-4);font-size:var(--fs-xs);font-weight:500;color:var(--status-good);background:#eef8ee;border:1px solid #c9e6c9;border-radius:999px;vertical-align:2px}.dlg-list{margin:var(--sp-4) 0 0;padding-left:var(--sp-6);list-style:disc}.dlg-list li{font-size:var(--fs-sm);color:var(--text-main);padding:1px 0}.run-infolder{font-size:var(--fs-xs);color:var(--status-good);white-space:nowrap}.guide-layout{display:flex;gap:1.2rem;align-items:flex-start}.guide-toc{flex:0 0 200px;position:sticky;top:0;align-self:flex-start;padding:.6rem .4rem}.toc-title{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:.45rem;padding:0 .4rem}.guide-toc a{display:block;padding:.22rem .4rem;border-radius:4px;border-left:2px solid transparent;color:var(--text-second);text-decoration:none;font-size:.8rem;line-height:1.3}.guide-toc a:hover{color:var(--accent-dark);background:#f4f3ef;border-left-color:var(--accent)}.guide-toc a.toc-h3{padding-left:.9rem;font-size:.75rem;color:var(--text-muted)}@media (max-width: 1000px){.guide-toc{display:none}}.page{top:0}.tab-loading{padding:1.2rem;color:var(--text-muted);font-size:.85rem}.loading-overlay{position:fixed;top:27px;left:0;right:0;bottom:0;z-index:500;display:flex;align-items:center;justify-content:center;background:#ffffffb8}.loading-box{display:flex;align-items:center;gap:.6rem;padding:.75rem 1.1rem;background:var(--surface);border:1px solid var(--hairline);border-radius:6px;box-shadow:0 4px 18px #0000001f;font-size:.85rem;color:var(--text-main)}.loading-box .spinner{width:14px;height:14px;border-radius:50%;border:2px solid var(--hairline);border-top-color:var(--accent);animation:loading-spin .7s linear infinite}@keyframes loading-spin{to{transform:rotate(360deg)}}.cs-menubar{display:flex;align-items:stretch;gap:0;background:var(--surface);border:none;border-bottom:1px solid var(--hairline);border-radius:0;padding:0 .35rem;height:26px;flex:0 0 auto}.cs-brand{display:inline-flex;align-items:center;align-self:center;padding:0 .5rem 0 .3rem;font-size:.78rem;font-weight:700;letter-spacing:.05em;line-height:1;color:var(--tool-ink);white-space:nowrap;cursor:default;-webkit-user-select:none;user-select:none}.brand-mark{color:var(--accent)}.cs-menu-btn{font-size:.78rem;padding:0 .6rem;height:100%;border-radius:0;color:var(--text-main)}.cs-menu-btn:hover,.cs-menu.open .cs-menu-btn{background:#eef1f5;color:var(--accent-dark)}.cs-menu-drop{top:100%;border-radius:0 0 4px 4px;min-width:208px}.cs-menu-div{height:1px;margin:.22rem .4rem;background:var(--hairline)}.cs-menu-item{padding-left:1.6rem;position:relative}.cs-menu-item-on:before{content:"";position:absolute;left:.66rem;top:50%;width:5px;height:9px;margin-top:-6px;border:solid var(--accent);border-width:0 2px 2px 0;transform:rotate(40deg)}.cs-menu-item{display:flex;align-items:center;justify-content:space-between;gap:1.4rem}.cs-menu-kbd{color:var(--text-muted);font-size:.72rem;letter-spacing:.02em;font-variant-numeric:tabular-nums}.cs-menubar .ws-label{align-self:center}.cs-menubar-fill{flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding-left:8px;overflow:hidden}.menubar-viz{display:flex;align-items:center;gap:12px;min-width:0}.menubar-viz-time{display:flex;align-items:center;gap:8px;min-width:0}.menubar-viz-btn{height:20px;padding:0 .6rem;font-size:.72rem;white-space:nowrap;flex:0 0 auto}.menubar-viz-time-lb{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);white-space:nowrap}.menubar-viz-time input[type=range]{width:200px;min-width:90px;height:20px;margin:0;accent-color:var(--accent);cursor:pointer}.menubar-viz-time .viz-slider-val{white-space:nowrap}.ribbon{display:flex;align-items:stretch;justify-content:space-between;gap:.4rem;background:linear-gradient(#fff,#f7f8fa);border-bottom:1px solid var(--baseline);padding:3px .5rem 2px;flex:0 0 auto;min-height:60px}.ribbon-cmds,.ribbon-view{display:flex;align-items:stretch;gap:.2rem}.ribbon-cmds{flex-wrap:wrap}.rib-group{display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:0 .15rem}.rib-btns{display:flex;align-items:flex-start;gap:1px;flex:1 1 auto}.rib-btns-compact{align-items:center;padding-top:4px}.rib-glabel{font-size:.56rem;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);text-align:center;padding-top:2px;white-space:nowrap}.rib-sep{width:1px;align-self:stretch;margin:3px .15rem;background:var(--hairline)}.tb-accent-icon{display:contents}#tb-room{color:var(--accent-dark)}#tb-room svg{stroke-width:1.7}#tb-room:hover{background:#f6e6d6}.rib{display:flex;align-items:stretch;gap:.2rem;background:linear-gradient(#fff,#f7f8fa);border-bottom:1px solid var(--baseline);padding:3px .4rem 2px;flex:0 0 auto;min-height:74px;position:relative}.rib-row{display:flex;flex-wrap:nowrap;align-items:stretch;flex:1 1 auto;min-width:0;overflow:hidden}.rib-g{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;flex:0 0 auto;padding:2px 8px 0;border-right:1px solid var(--hairline)}.rib-row>.rib-g:last-child{border-right:none}.rib-g.accent{background:linear-gradient(#fff,#fbf3ec);border-radius:var(--r-md) var(--r-md) 0 0}.rib-g-body{display:flex;align-items:flex-start;gap:2px;flex:1 1 auto}.rib-g-cap{font-size:var(--fs-xs);letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);text-align:center;padding-top:3px;white-space:nowrap;line-height:1}.rib-g-div{width:1px;align-self:stretch;margin:3px 4px;background:var(--hairline)}.rib-btn{font-family:inherit;display:flex;border:none;background:transparent;color:var(--tool-ink);cursor:pointer;border-radius:var(--r-sm);transition:background 90ms ease,color 90ms ease}.rib-btn:hover{background:var(--hover-warm);color:var(--accent-dark)}.rib-btn:active{background:#ece2d6}.rib-btn.on{background:var(--active-bg);color:var(--series-1)}.rib-btn.accent{color:var(--accent-dark)}.rib-btn.accent svg{stroke-width:1.7}.rib-btn.disabled{color:var(--disabled-ink);cursor:not-allowed;pointer-events:none}.rib-btn.disabled svg{stroke:var(--disabled-ink);opacity:.85}.rib-btn svg{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.rib-btn.lg{flex-direction:column;align-items:center;justify-content:flex-start;gap:2px;width:52px;padding:4px 2px 2px}.rib-btn.lg .rib-btn-ic svg{width:24px;height:24px}.rib-btn.lg .rib-btn-lb{font-size:var(--fs-xs);line-height:1.05;text-align:center}.rib-btn.sm{flex-direction:row;align-items:center;gap:4px;height:24px;padding:0 6px}.rib-btn.sm .rib-btn-ic{display:inline-flex}.rib-btn.sm .rib-btn-ic svg{width:16px;height:16px}.rib-btn.sm .rib-btn-lb{font-size:var(--fs-sm);white-space:nowrap}.rib-rows{display:flex;flex-direction:column;gap:2px}.rib-rows-line{display:flex;align-items:center;gap:2px}.rib-cluster{display:grid;grid-template-columns:auto auto;gap:1px;align-content:center}.rib-select{display:inline-flex;flex-direction:column;gap:2px;justify-content:center}.rib-select-lb,.rib-field-lb{font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.rib-select-box{position:relative;display:inline-flex;align-items:center}.rib-select-box select,.rib-field-ctl input,.rib-field-ctl select{font-family:inherit;font-size:var(--fs-sm);height:26px;border:1px solid var(--hairline);border-radius:var(--r-sm);background:var(--surface);color:var(--text-main)}.rib-select-box select{padding:0 22px 0 8px;-moz-appearance:none;appearance:none;-webkit-appearance:none;cursor:pointer}.rib-select-box select:focus,.rib-field-ctl input:focus,.rib-field-ctl select:focus{outline:none;box-shadow:var(--focus-ring)}.rib-select-chev{position:absolute;right:6px;color:var(--text-muted);pointer-events:none}.rib-field{display:inline-flex;flex-direction:column;gap:2px;justify-content:center}.rib-field-ctl{display:flex;align-items:center;gap:4px;height:26px}.rib-field-ctl input{padding:0 6px}.rib-field-ctl input[type=range]{padding:0}.rib-of{position:relative;display:flex;align-items:center;flex:0 0 auto;padding:0 2px}.rib-of-btn{display:flex;flex-direction:column;align-items:center;gap:2px;font-family:inherit;font-size:var(--fs-xs);color:var(--tool-ink);border:1px solid var(--hairline);border-radius:var(--r-sm);background:var(--surface);cursor:pointer;padding:5px 7px}.rib-of-btn:hover,.rib-of-btn.on{background:var(--hover-warm);color:var(--accent-dark)}.rib-of-back{position:fixed;top:0;right:0;bottom:0;left:0;z-index:340}.rib-of-pop{position:absolute;top:calc(100% + 1px);right:0;z-index:350;display:flex;flex-wrap:wrap;align-items:stretch;gap:4px;max-width:min(560px,90vw);background:var(--surface);border:1px solid var(--baseline);border-radius:0 0 var(--r-md) var(--r-md);box-shadow:var(--elev-2);padding:6px 8px}.rib-of-pop .rib-g{border-right:1px solid var(--hairline)}.rib-of-pop .rib-g:last-child{border-right:none}.viz-ribbon .rib-g-body{align-items:flex-end;gap:6px}.viz-ribbon .rib-select-box select{min-width:6.5rem;max-width:11rem}.viz-ribbon .rib-row>.rib-g:first-child .rib-select-box select{min-width:7rem;max-width:13rem}.viz-ribbon .rib-row{overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}.viz-ribbon .rib-g{flex:0 1 auto;min-width:0}.viz-ribbon .rib-g-body,.viz-ribbon .rib-select,.viz-ribbon .rib-select-box,.viz-ribbon .rib-field,.viz-ribbon .rib-field-ctl{min-width:0}.viz-ribbon .rib-select,.viz-ribbon .rib-select-box select{flex:0 1 auto}.viz-ribbon .rib-row>.rib-g:first-child .rib-select-box select{flex:0 1 auto}@media (max-width: 1680px){.viz-ribbon .rib-g{padding-left:6px;padding-right:6px}.viz-ribbon .rib-select-box select{min-width:5rem;max-width:9rem}.viz-ribbon .rib-row>.rib-g:first-child .rib-select-box select{min-width:5.5rem;max-width:10rem}.viz-ribbon .rib-field-ctl input[type=range]{min-width:6rem}}.viz-ribbon .rib-g.viz-params .rib-g-body{min-width:20rem}.viz-ribbon .rib-g.viz-output{margin-left:auto}.viz-ribbon .rib-g.viz-output .rib-g-body{gap:6px}.rib-act{height:28px;align-self:flex-end;white-space:nowrap}.rib-act-icon{align-self:flex-end;margin-bottom:1px}.rib-field-ctl input[type=range]{border:none;background:transparent;height:auto;padding:0;min-width:8rem}.viz-ribbon .viz-slider-val{font-size:var(--fs-sm);color:var(--text-second);min-width:2.6rem}.viz-ribbon .viz-unit{font-size:var(--fs-sm);color:var(--text-muted)}.viz-params-empty{font-size:var(--fs-xs);color:var(--text-muted);align-self:flex-end;padding-bottom:5px}.modal.proj-modal{width:min(560px,94vw)}.proj-actions{display:flex;gap:var(--sp-3);margin-bottom:var(--sp-5)}.proj-list-head{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:var(--sp-2)}.proj-list{display:flex;flex-direction:column;gap:var(--sp-2);max-height:46vh;overflow-y:auto}.proj-row{display:flex;align-items:center;gap:var(--sp-3);border:1px solid var(--hairline);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3);background:var(--surface)}.proj-row.active{border-color:var(--accent);background:var(--sel-bg)}.proj-open{flex:1 1 auto;display:flex;flex-direction:column;gap:1px;text-align:left;border:none;background:transparent;cursor:pointer;min-width:0}.proj-name{font-size:var(--fs-base);font-weight:600;color:var(--text-main)}.proj-desc{font-size:var(--fs-xs);color:var(--text-second);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proj-row-acts{display:flex;gap:var(--sp-1);flex:0 0 auto}.proj-row-acts button{font-family:inherit;font-size:var(--fs-xs);color:var(--text-second);border:1px solid var(--hairline);border-radius:var(--r-sm);background:var(--surface);padding:2px var(--sp-3);cursor:pointer}.proj-row-acts button:hover{background:var(--hover-bg);color:var(--accent-dark)}.proj-row-acts button.danger:hover{background:#fbecec;color:var(--status-crit);border-color:#eec4c4}.proj-tag{font-size:var(--fs-xs);color:var(--text-muted);font-style:italic}.proj-form{display:flex;flex-direction:column;gap:var(--sp-4)}.proj-form label{display:flex;flex-direction:column;gap:2px;font-size:var(--fs-sm);color:var(--text-second)}.proj-form input{font-family:inherit;font-size:var(--fs-base);padding:var(--sp-2) var(--sp-3);border:1px solid var(--hairline);border-radius:var(--r-sm);background:var(--surface);color:var(--text-main)}.proj-form input:focus{outline:none;box-shadow:var(--focus-ring)}.ws-project{font-family:inherit;font-size:var(--fs-sm);font-weight:600;color:var(--accent-dark);background:transparent;border:none;cursor:pointer;padding:0 0 0 var(--sp-3);align-self:center}.ws-project:hover{text-decoration:underline}.ws-project:after{content:"/";color:var(--text-muted);font-weight:400;margin-left:var(--sp-3)}.ws-model{font-size:var(--fs-sm);color:var(--text-second);padding:0 0 0 var(--sp-3);align-self:center}.ws-model:after{content:"/";color:var(--text-muted);margin-left:var(--sp-3)}.gen-proj-row{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4);padding:var(--sp-2) var(--sp-3);border:1px solid var(--hairline);border-radius:var(--r-sm);background:var(--chart-surface)}.gen-proj-key{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.gen-proj-name{flex:1 1 auto;min-width:0;font-weight:600;color:var(--text-main);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gen-no-project{padding:var(--sp-2) 0}.gen-existing{margin-bottom:var(--sp-4)}.gen-case-acts{display:flex;gap:var(--sp-2);margin-top:var(--sp-2)}.gen-case-acts .btn{flex:1 1 auto}.context-ribbon{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;flex:0 0 auto;padding:var(--sp-2) var(--sp-4);background:#f6f4f1;border-bottom:1px solid var(--hairline);min-height:30px}.crib-title{font-size:var(--fs-sm);font-weight:600;color:var(--text-main);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crib-note{font-size:var(--fs-xs);color:var(--text-muted)}.crib-grp{display:inline-flex;align-items:center;gap:var(--sp-1)}.crib-sep{width:1px;align-self:stretch;margin:var(--sp-1) var(--sp-2);background:var(--hairline)}.crib-btn{font-family:inherit;font-size:var(--fs-sm);color:var(--tool-ink);background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-sm);padding:2px var(--sp-3);cursor:pointer;white-space:nowrap;transition:background 90ms ease,color 90ms ease,border-color 90ms ease}.crib-btn:hover{background:var(--hover-warm);color:var(--accent-dark);border-color:#e0cdba}.crib-btn.danger{color:var(--status-crit)}.crib-btn.danger:hover{background:#fbecec;color:var(--status-crit);border-color:#eec4c4}.modal-unsaved{width:min(560px,94vw)}.modal-unsaved .modal-foot{gap:.45rem}.dlg{width:min(560px,94vw)}.dlg-body{display:flex;align-items:flex-start;gap:.85rem}.dlg-text{flex:1 1 auto;min-width:0}.dlg-text p:last-child{margin-bottom:0}.dlg-icon{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;margin-top:.05rem}.dlg-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.dlg-icon-error{color:var(--status-crit);background:#fdecec}.dlg-icon-warning{color:var(--status-warn);background:#fdf4e3}.dlg-icon-success{color:var(--status-good);background:#e8f7e8}.dlg-icon-info{color:var(--series-1);background:#e9f1fb}.dlg-icon-question{color:var(--accent-dark);background:#fbeee2}.dlg .modal-foot{gap:.45rem}.dlg .prompt-field{margin-top:.15rem}.dlg-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem .7rem;margin-top:.35rem}.dlg-form .prompt-field{margin-top:0;gap:.22rem}.dlg-form .prompt-field span{font-size:.78rem}.dlg-form .prompt-field input,.dlg-form .prompt-field select{width:100%}.dlg-form .prompt-field:last-child:nth-child(odd){grid-column:1 / -1}.home{position:relative;display:flex;height:100vh;background:var(--surface);color:var(--text-main)}.home-signout{position:absolute;top:var(--sp-5);right:var(--sp-6);z-index:3}.home-main{position:relative;flex:1;overflow-y:auto;display:grid;justify-items:center;align-content:center;align-content:safe center;padding:var(--sp-7) 40px;background:radial-gradient(120% 90% at 50% 0%,#fff,#f7f9fb 55%,#eef2f6)}.home-main:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;background:radial-gradient(54% 48% at 50% 46%,#fffffff2,#ffffffdb 42%,#fff0 74%)}.home-center{position:relative;z-index:2;width:min(880px,100%)}.home-bg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:0;opacity:.55;pointer-events:none}.home-bg-flow path{stroke-dasharray:90 1550;animation:home-flow 16s linear infinite}@keyframes home-flow{to{stroke-dashoffset:-1640}}.home-bg-cells{animation:home-heat 18s linear infinite;will-change:opacity}@keyframes home-heat{0%{opacity:1}25%{opacity:0}75%{opacity:0}to{opacity:1}}.home-bg-plume{transform-origin:1010px 250px;animation:home-plume 18s ease-in-out infinite}@keyframes home-plume{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.home-bg-iso{opacity:.3;transform-origin:1010px 250px;animation:home-iso 18s ease-in-out infinite}@keyframes home-iso{0%,to{transform:scale(.97)}50%{transform:scale(1.06)}}.home-bg-tris{opacity:.55}.home-bg-bar{opacity:.75}.home-bg-room{opacity:.4}@media (prefers-reduced-motion: reduce){.home-bg-flow{display:none}.home-bg-cells{animation:none;opacity:0}.home-bg-still{opacity:1}.home-bg-plume,.home-bg-iso{animation:none}}.home-hero{text-align:center;margin-bottom:var(--sp-7)}.home-wordmark{font-size:2.4rem;font-weight:700;letter-spacing:.06em;line-height:1.1;color:var(--tool-ink)}.home-suite{margin-top:var(--sp-3);font-size:var(--fs-sm);letter-spacing:.02em;color:var(--text-second)}.home-specstrip{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--sp-3) var(--sp-5);margin-top:var(--sp-4);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.home-specstrip span{display:inline-flex;align-items:center}.home-specstrip span+span:before{content:"";width:4px;height:4px;margin-right:var(--sp-5);border-radius:50%;background:var(--accent);opacity:.55}.home-launch{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-5);margin-bottom:var(--sp-7)}.home-launch-btn{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-2);padding:var(--sp-6);text-align:left;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-lg);box-shadow:0 1px 2px #18202a0d;cursor:pointer;transition:box-shadow .15s ease,border-color .15s ease,transform .15s ease}.home-launch-btn:hover{border-color:var(--accent);box-shadow:0 6px 18px #18202a1a;transform:translateY(-1px)}.home-launch-btn:disabled{opacity:.55;cursor:default}.home-launch-icon{width:22px;height:22px;margin-bottom:var(--sp-3);color:var(--tool-ink-soft)}.home-launch-btn:hover .home-launch-icon{color:var(--accent)}.home-launch-name{font-size:var(--fs-md);font-weight:600;color:var(--tool-ink)}.home-launch-sub{font-size:var(--fs-sm);color:var(--text-muted)}.home-head{font-size:var(--fs-sm);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-second);margin:var(--sp-7) 0 var(--sp-5);padding-bottom:var(--sp-3);border-bottom:1px solid var(--hairline)}.home-main .home-head:first-child{margin-top:0}.home-head-inline{flex:1;margin:0;padding-bottom:0;border-bottom:none}.home-back-row{display:flex;align-items:center;gap:var(--sp-4);margin-bottom:var(--sp-6);padding-bottom:var(--sp-3);border-bottom:1px solid var(--hairline)}.home-back{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;font-size:var(--fs-md);color:var(--tool-ink);background:var(--surface);border:1px solid var(--hairline);border-radius:50%;cursor:pointer}.home-back:hover{background:var(--hover-bg);color:var(--accent-dark)}.home-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--sp-5)}.home-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-2);padding:var(--sp-5) var(--sp-6);text-align:left;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-lg);box-shadow:0 1px 2px #18202a0d;cursor:pointer;overflow:hidden}.home-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent);transform:scaleX(0);transform-origin:left}.home-card:hover{border-color:var(--accent);background:var(--surface);box-shadow:0 4px 14px #18202a1a}.home-card:hover:before{transform:scaleX(1)}.home-card:disabled{opacity:.55;cursor:default}.home-card-name{font-size:var(--fs-md);font-weight:600;color:var(--tool-ink);overflow-wrap:anywhere}.home-card-sub{font-size:var(--fs-sm);color:var(--text-muted)}.home-card-wide{flex:1}.home-continue{display:flex;align-items:stretch;gap:var(--sp-4)}.home-chip{margin-left:var(--sp-4);padding:1px var(--sp-4);font-size:var(--fs-xs);font-weight:500;color:var(--status-warn);background:#fdf6e7;border:1px solid #ecd9a8;border-radius:999px;vertical-align:2px}.ws-bar{display:flex;align-items:center;gap:var(--sp-4);flex-wrap:wrap;margin-top:var(--sp-6);padding:var(--sp-4) var(--sp-5);background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-md);font-size:var(--fs-sm)}.ws-bar-unset{border-left:3px solid var(--accent)}.ws-bar-muted{color:var(--text-second)}.ws-bar-label{font-weight:600;letter-spacing:.04em;text-transform:uppercase;font-size:var(--fs-xs);color:var(--text-second)}.ws-bar-value{flex:1;min-width:0;color:var(--text-main)}.ws-bar-name{font-weight:600}.ws-bar-hint{color:var(--text-second)}.ws-bar-error{flex-basis:100%;color:var(--status-crit);font-size:var(--fs-xs)}.home-discard{align-self:center;padding:var(--sp-3) var(--sp-5);font-size:var(--fs-sm);color:var(--text-second);background:none;border:1px solid var(--hairline);border-radius:var(--r-md);cursor:pointer}.home-discard:hover{color:var(--status-crit);border-color:var(--status-crit)}.home-actions{display:flex;gap:var(--sp-4);margin-bottom:var(--sp-6)}.home-form{display:flex;flex-direction:column;gap:var(--sp-5);max-width:420px}.home-form label{display:flex;flex-direction:column;gap:var(--sp-2);font-size:var(--fs-sm);color:var(--text-second)}.home-form input{padding:var(--sp-3) var(--sp-4);font-size:var(--fs-base);border:1px solid var(--hairline);border-radius:var(--r-md)}.home-form .btn{align-self:flex-start}.home-hint{font-size:var(--fs-sm);color:var(--text-muted)}.home-models{display:flex;flex-direction:column;gap:var(--sp-6);max-width:640px}.home-model{display:flex;flex-direction:column}.home-model .home-card-wide{width:100%}.home-cases{display:flex;flex-direction:column;margin:0 0 0 var(--sp-7);border-left:1px solid var(--hairline)}.home-case{display:flex;align-items:center;gap:var(--sp-5);padding:var(--sp-3) var(--sp-5);text-align:left;font-size:var(--fs-sm);color:var(--text-second);background:none;border:none;border-bottom:1px solid var(--hairline);cursor:pointer}.home-case:last-child{border-bottom:none}.home-case:hover{background:var(--hover-bg);color:var(--accent-dark)}.home-case:disabled{opacity:.55;cursor:default}.home-case-name{flex:1;overflow-wrap:anywhere}.home-case-state{padding:0 var(--sp-4);font-size:var(--fs-xs);font-weight:500;color:var(--text-muted);border:1px solid var(--hairline);border-radius:999px}.home-case-state.st-done{color:var(--status-good);border-color:#bfe3bf;background:#f2faf2}.home-case-state.st-running{color:var(--status-warn);border-color:#ecd9a8;background:#fdf6e7}.home-case-state.st-failed{color:var(--status-crit);border-color:#eec3c3;background:#fdf1f1}.home-error{margin-top:var(--sp-6);font-size:var(--fs-sm);color:var(--status-crit)}.login-screen{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:1.5rem;background:radial-gradient(120% 90% at 50% 0%,#fff,#f7f9fb 55%,#eef2f6)}.login-screen:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;background:radial-gradient(54% 48% at 50% 46%,#fffffff2,#ffffffdb 42%,#fff0 74%)}.login-card{position:relative;z-index:2;width:100%;max-width:340px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-lg);box-shadow:0 8px 30px #14181b1a;padding:1.6rem 1.5rem;display:flex;flex-direction:column;gap:.7rem}.login-wordmark{font-size:1.85rem;font-weight:700;letter-spacing:.06em;line-height:1.1;color:var(--tool-ink)}.login-suite{font-size:var(--fs-sm);color:var(--text-muted);margin-top:-.35rem;padding-bottom:.7rem;border-bottom:1px solid var(--hairline)}.login-title{font-size:var(--fs-lg);font-weight:600;color:var(--text-main)}.login-note{font-size:var(--fs-sm);color:var(--text-second);background:var(--hover-bg);border:1px solid var(--hairline);border-radius:var(--r-md);padding:.55rem .65rem;line-height:1.4}.login-note code{font-size:var(--fs-xs);word-break:break-all}.login-field{display:flex;flex-direction:column;gap:.25rem;font-size:var(--fs-sm);color:var(--text-second)}.login-field input{font-size:var(--fs-base);padding:.5rem .6rem;border:1px solid var(--hairline);border-radius:var(--r-md);background:var(--surface);color:var(--text-main)}.login-field input:focus{outline:none;box-shadow:var(--focus-ring);border-color:var(--accent)}.login-error{font-size:var(--fs-sm);color:var(--status-crit)}.login-btn{margin-top:.4rem;padding:.55rem .6rem;font-size:var(--fs-base);font-weight:600;color:#fff;background:var(--accent);border:1px solid var(--accent-dark);border-radius:var(--r-md);cursor:pointer}.login-btn:hover:not(:disabled){background:var(--accent-dark)}.login-btn:disabled{opacity:.55;cursor:default}.login-loading{width:26px;height:26px;border:3px solid var(--hairline);border-top-color:var(--accent);border-radius:50%;animation:login-spin .8s linear infinite}@keyframes login-spin{to{transform:rotate(360deg)}}
