:root{--navy:#0b2a4a;--navy-2:#12385f;--emerald:#10b981;--emerald-h:#0ba572;--emerald-d:#047857;--text:#4f6d8c;--ink:#0b2a4a;--soft:#f4f6f9;--line:#e3e8ef;--white:#fff;--amber:#f59e0b;--amber-d:#b45309;--amber-t:#fef3dc;--red:#e5484d;--red-t:#fdecec;--blue:#3b82f6;--blue-t:#eaf2fe;--green-t:#e7f8f1;--display:"Saira Condensed", "Arial Narrow", sans-serif;--body:"Raleway", "Segoe UI", sans-serif;--mono:Consolas, "Cascadia Mono", monospace;--dock-left:320px;--dock-right:380px;--dock-top:240px;--dock-bottom:320px;--top:56px;--foot:28px;--shadow:0 6px 24px #0b2a4a1f}*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%;font:13px/1.45 var(--body);color:var(--ink);background:var(--soft);margin:0;overflow:hidden}button,input,select{font:inherit;color:inherit}svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:18px;height:18px}#topbar{height:var(--top);background:var(--navy);color:#fff;z-index:20;align-items:center;gap:10px;padding:0 14px;display:flex;position:relative}#topbar .brand img{filter:brightness(0)invert();height:34px;display:block}#topbar .app-name{font:700 22px/1 var(--display);letter-spacing:1px;text-transform:uppercase;white-space:nowrap;padding-right:6px}#topbar .app-name span{font:600 11px/1.3 var(--body);letter-spacing:.3px;text-transform:none;color:#9fb7cf;display:block}#topbar .spacer{flex:0}.btn{cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:6px;height:34px;padding:0 12px;font-weight:600;display:inline-flex}.btn.primary{background:var(--emerald);color:#fff}.btn.primary:hover{background:var(--emerald-h)}.btn.ghost{color:#dbe7f3;border-color:#ffffff2e}.btn.ghost:hover{background:#ffffff14}.btn.icon{justify-content:center;width:34px;padding:0}#toolbar{scrollbar-width:none;flex:1;justify-content:safe center;gap:2px;margin-left:8px;display:flex;overflow-x:auto}#toolbar button{color:#b9cde0;cursor:pointer;background:0 0;border:0;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-width:62px;height:46px;padding:2px 6px;display:flex}#toolbar button span{font:600 10.5px/1 var(--body);letter-spacing:.2px;white-space:nowrap}#toolbar button:hover{color:#fff;background:#ffffff14}#toolbar button.on{color:#fff;box-shadow:inset 0 -3px 0 var(--emerald);background:#10b9812e}#workspace{top:var(--top);bottom:var(--foot);display:flex;position:absolute;left:0;right:0}.dock{width:var(--dock-left);background:var(--white);border-right:1px solid var(--line);flex-direction:column;flex:none;display:flex;overflow:hidden auto}#dock-right{width:var(--dock-right);border-right:0;border-left:1px solid var(--line)}.dock:empty,body.focus .dock,body.focus .resizer{display:none}.resizer{cursor:col-resize;z-index:5;background:0 0;flex:none;width:5px;margin:0 -2px}.resizer:hover,.resizer.drag{background:#10b98159}.dock:empty+.resizer{display:none}.resizer:has(+.dock:empty){display:none}#center{flex-direction:column;flex:1;min-width:0;display:flex}#stage{background:radial-gradient(at 50% 35%,#fff 0%,#eef2f6 60%,#e4e9ef 100%);flex:1;min-width:0;min-height:0;position:relative;overflow:hidden}.dock.hdock{width:auto;height:var(--dock-bottom);border-right:0;border-top:1px solid var(--line);flex-direction:row;overflow:auto hidden}#dock-top.hdock{height:var(--dock-top);border-top:0;border-bottom:1px solid var(--line)}.hdock>.panel{border-bottom:0;border-right:1px solid var(--line);flex:420px;min-width:320px;height:100%;overflow-y:auto}.hdock>.panel:last-child{border-right:0}.hdock>.panel.collapsed{flex:0 0 220px;min-width:0}.resizer.h{cursor:row-resize;width:auto;height:5px;margin:-2px 0}#floats{pointer-events:none;z-index:30;position:fixed;inset:0}.panel.floating{pointer-events:auto;background:var(--white);border:1px solid var(--line);resize:both;border-radius:12px;flex-direction:column;min-width:260px;min-height:120px;display:flex;position:absolute;overflow:hidden;box-shadow:0 14px 44px #0b2a4a3d}.panel.floating>header{cursor:move;border-bottom:1px solid var(--line);background:var(--soft)}.panel.floating>.body{flex:1;overflow:auto}.panel.floating.collapsed{resize:none;min-height:0;height:auto!important}.panel.floating.collapsed>header{border-bottom:0}body.focus #floats{display:none}body.dragging-panel,body.dragging-panel *{-webkit-user-select:none;user-select:none;cursor:move!important}#dock-hint{z-index:29;border:2px dashed var(--emerald);font:700 16px/1 var(--display);letter-spacing:1px;text-transform:uppercase;color:var(--emerald-d);pointer-events:none;background:#10b98129;border-radius:10px;place-items:center;display:grid;position:fixed}.dock-menu{z-index:70;background:var(--white);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:10px;flex-direction:column;min-width:210px;padding:4px;display:flex;position:fixed}.dock-menu button{cursor:pointer;text-align:left;color:var(--ink);background:0 0;border:0;border-radius:7px;align-items:center;gap:8px;padding:7px 10px;font-weight:600;display:flex}.dock-menu button:hover{background:var(--soft)}.dock-menu button.on{background:var(--green-t);color:var(--emerald-d)}.dock-menu svg{width:16px;height:16px;color:var(--emerald-d)}#xeokit-lens{transform-origin:0 0;box-shadow:var(--shadow);transform:scale(.7);border-color:var(--emerald-d)!important}.sk-fading-circle{display:none!important}#xv-canvas{outline:none;width:100%;height:100%;display:block;position:absolute;inset:0}#navcube{z-index:3;width:120px;height:120px;position:absolute;bottom:10px;right:10px}#labels{pointer-events:none;z-index:2;position:absolute;inset:0;overflow:hidden}#labels .lbl{white-space:nowrap;font:600 11px/1.2 var(--body);color:var(--navy);border:1px solid var(--line);background:#ffffffe0;border-radius:4px;padding:1px 5px;position:absolute;transform:translate(-50%,-100%)}#labels .lbl.amber{color:#fff;background:var(--amber-d);border-color:var(--amber-d)}#labels .lbl.green{color:#fff;background:var(--emerald-d);border-color:var(--emerald-d)}#labels .lbl.tick{color:var(--text);background:#ffffffb3;font-weight:500}.panel{border-bottom:1px solid var(--line);flex-direction:column;flex:none;display:flex}.panel>header{cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--white);z-index:1;align-items:center;gap:6px;padding:9px 10px 9px 12px;display:flex;position:sticky;top:0}.panel>header .t{font:700 15px/1 var(--display);letter-spacing:1px;text-transform:uppercase;color:var(--navy);flex:1;align-items:center;gap:7px;display:flex}.panel>header .t svg{color:var(--emerald-d)}.panel>header .t .badge{font:600 11px/1 var(--body);letter-spacing:0;text-transform:none}.panel>header button{color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;width:24px;height:24px;display:grid}.panel>header button:hover{background:var(--soft);color:var(--navy)}.panel>header button svg{width:15px;height:15px}.panel.collapsed>.body{display:none}.panel.collapsed>header .chev{transform:rotate(-90deg)}.panel>.body{padding:2px 12px 12px}.panel .hint{color:var(--text);margin:4px 0 8px;font-size:12px}.panel h4{font:700 13px/1.2 var(--display);letter-spacing:.8px;text-transform:uppercase;color:var(--text);margin:12px 0 6px}.badge{height:19px;font:600 11px/1 var(--body);background:var(--soft);color:var(--text);white-space:nowrap;border-radius:10px;align-items:center;padding:0 7px;display:inline-flex}.badge.green{background:var(--green-t);color:var(--emerald-d)}.badge.amber{background:var(--amber-t);color:var(--amber-d)}.badge.red{background:var(--red-t);color:var(--red)}.badge.blue{background:var(--blue-t);color:#1d5fd1}.badge.navy{background:var(--navy);color:#fff}.chip-std{color:var(--emerald-d)}.chip-own{color:var(--amber-d)}.row{align-items:center;gap:8px;display:flex}.grow{flex:1;min-width:0}.muted{color:var(--text)}.small{font-size:11.5px}.mono{font-family:var(--mono);font-size:12px}.ell{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sbtn{border:1px solid var(--line);background:var(--white);cursor:pointer;height:28px;color:var(--navy);white-space:nowrap;border-radius:7px;align-items:center;gap:5px;padding:0 10px;font-weight:600;display:inline-flex}.sbtn:hover{border-color:var(--emerald);color:var(--emerald-d)}.sbtn.primary{background:var(--emerald);border-color:var(--emerald);color:#fff}.sbtn.primary:hover{background:var(--emerald-h)}.sbtn.on{background:var(--green-t);border-color:var(--emerald);color:var(--emerald-d)}.sbtn svg{width:15px;height:15px}.ibtn{cursor:pointer;width:26px;height:26px;color:var(--text);background:0 0;border:0;border-radius:6px;flex:none;place-items:center;display:grid}.ibtn:hover{background:var(--soft);color:var(--navy)}.ibtn.off{opacity:.4}.ibtn svg{width:16px;height:16px}input[type=search],input[type=text],input[type=number],select{border:1px solid var(--line);background:var(--white);border-radius:7px;outline:none;min-width:0;height:30px;padding:0 9px}input[type=search]:focus,select:focus,input:focus{border-color:var(--emerald);box-shadow:0 0 0 3px #10b98126}label.chk{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;display:inline-flex}.kv{grid-template-columns:minmax(90px,40%) 1fr;gap:3px 10px;font-size:12.5px;display:grid}.kv>div:nth-child(odd){color:var(--text);overflow-wrap:anywhere}.kv>div:nth-child(2n){color:var(--ink);overflow-wrap:anywhere;font-weight:600}.card{border:1px solid var(--line);background:var(--white);border-radius:10px;margin:8px 0;padding:9px 10px}.card.soft{background:var(--soft);border-color:#0000}.card.green{background:var(--green-t);border-color:#0000}.card.amber{background:var(--amber-t);border-color:#0000}.card.red{background:var(--red-t);border-color:#0000}.card>.ttl{align-items:center;gap:6px;margin-bottom:4px;font-weight:700;display:flex}.tag-file{color:#fff;min-width:26px;height:20px;font:700 11px/1 var(--body);border-radius:6px;place-items:center;padding:0 5px;display:inline-grid}.scope{background:var(--soft);border-radius:8px;flex-wrap:wrap;align-items:center;gap:4px;margin:4px 0 8px;padding:5px 7px;display:flex}.scope-l{font:700 12px/1 var(--display);letter-spacing:.6px;text-transform:uppercase;color:var(--text);align-items:baseline;gap:5px;margin-right:3px;display:inline-flex}.scope-l b{font:600 11px/1 var(--body);letter-spacing:0;text-transform:none;color:var(--emerald-d)}.scope-chip{border:1.5px solid var(--c,var(--navy));background:var(--c,var(--navy));color:#fff;min-width:28px;height:22px;font:700 11px/1 var(--body);cursor:pointer;border-radius:6px;padding:0 6px}.scope-chip:not(.on){background:var(--white);color:var(--c,var(--navy));opacity:.55;text-decoration:line-through}.scope-chip.none{border-style:dashed}.scope-chip.none.on{opacity:.5}.scope-chip:hover{opacity:1;box-shadow:0 0 0 2px #0b2a4a24}.scope-acts{gap:4px;margin-left:auto;display:inline-flex}.scope-act{border:1px solid var(--line);background:var(--white);height:22px;color:var(--emerald-d);font:600 11px/1 var(--body);cursor:pointer;white-space:nowrap;border-radius:6px;padding:0 8px}.scope-act:hover{border-color:var(--emerald)}.scope-empty{background:var(--soft);color:var(--text);border-radius:8px;flex-wrap:wrap;align-items:center;gap:4px;margin:6px 0;padding:6px 8px;font-size:12px;display:flex}.scope-empty>span:first-child{margin-right:2px}.scope-empty .tag-file{min-width:24px;height:18px;font-size:10.5px}.scope-empty .scope-act{margin-left:auto}.model{border-bottom:1px dashed var(--line);align-items:center;gap:6px;padding:6px 0;display:flex}.model:last-child{border-bottom:0}.model .nm{font-weight:600}.model .sub{color:var(--text);font-size:11.5px}.tree{-webkit-user-select:none;user-select:none;font-size:12.5px}.tree .node{cursor:pointer;white-space:nowrap;border-radius:6px;align-items:center;gap:3px;height:24px;padding-right:4px;display:flex}.tree .node:hover{background:var(--soft)}.tree .node.sel{background:var(--green-t)}.tree .tw{width:16px;height:16px;color:var(--text);flex:none;place-items:center;display:grid}.tree .tw svg{width:12px;height:12px;transition:transform .12s}.tree .node.open>.tw svg{transform:rotate(90deg)}.tree .ic{width:15px;height:15px;color:var(--text);flex:none}.tree .ic.sp{color:var(--emerald-d)}.tree .lab{text-overflow:ellipsis;min-width:0;overflow:hidden}.tree .cls{color:var(--text);margin-left:4px;font-size:11px}.tree .pt{color:var(--emerald-d);margin-left:4px;font-size:10.5px;font-weight:700}.tree .eye{opacity:0;margin-left:auto}.tree .node:hover .eye,.tree .eye.off{opacity:1}.tree .kids{border-left:1px solid var(--line);margin-left:13px;padding-left:2px}.tree .cnt{color:var(--text);flex:none;margin-left:4px;font-size:10.5px}.tree .lab{flex:0 auto}.tree .cls{text-overflow:ellipsis;flex:0 auto;min-width:0;overflow:hidden}.tree .sw{border-radius:3px;flex:none;width:10px;height:10px;margin:0 2px;box-shadow:inset 0 0 0 1px #00000026}.tree .node.more{color:var(--emerald-d);padding-left:20px;font-weight:600}.plink{color:var(--emerald-d);cursor:pointer;font-weight:600;text-decoration:none}.plink.weblink{text-underline-offset:2px;overflow-wrap:anywhere;text-decoration:underline}.plink.weblink:after{content:" ↗";font-size:10px}.plink:hover{text-decoration:underline}.plink .ty{font-weight:400}.plinks{flex-wrap:wrap;gap:2px 10px;display:flex}.ent-cls{cursor:pointer;border-radius:6px;align-items:center;gap:4px;height:24px;padding:0 4px;font-size:12.5px;display:flex}.ent-cls:hover{background:var(--soft)}.ent-cls .tw{width:14px;height:14px;color:var(--text);flex:none;place-items:center;display:grid}.ent-cls .tw svg{width:12px;height:12px;transition:transform .12s}.ent-cls.open .tw svg{transform:rotate(90deg)}.ent-cls .cnt{color:var(--text);font-size:11px}.ent-list{border-left:1px solid var(--line);margin-left:14px;padding-left:4px}.ent-row{cursor:pointer;border-radius:6px;align-items:baseline;gap:6px;min-width:0;padding:2px 4px;font-size:12px;display:flex}.ent-row:hover{background:var(--soft)}.ent-row .mono{flex:none;font-size:11px}.elink{cursor:pointer;color:var(--emerald-d);overflow-wrap:anywhere;text-decoration:none}.elink:hover{text-decoration:underline}.elist>div{padding:1px 0}.enum{color:var(--amber-d)}pre.step{white-space:pre-wrap;word-break:break-all;font:11.5px/1.45 var(--mono);color:var(--navy);background:var(--soft);border-radius:6px;max-height:160px;margin:0;padding:6px 8px;overflow:auto}.inv{margin:4px 0 8px}.inv-h{align-items:baseline;gap:2px;margin-bottom:2px;font-size:12px;display:flex}.inv-h .cnt{color:var(--text);margin-left:auto;font-size:11px}.inv>div:not(.inv-h){padding-left:10px;font-size:12px}.gantt{--now:0%;font-size:12px;position:relative}.g-row{cursor:pointer;border-radius:5px;grid-template-columns:minmax(110px,44%) 1fr;align-items:center;height:22px;display:grid}.g-row:hover{background:var(--soft)}.g-row.sel{background:var(--green-t)}.g-head{background:var(--white);z-index:2;cursor:default;border-bottom:1px solid var(--line);height:26px;position:sticky;top:0}.g-head:hover{background:var(--white)}.g-head .g-name{font:700 12px/1 var(--display);letter-spacing:.6px;text-transform:uppercase;color:var(--text)}.g-name{white-space:nowrap;align-items:center;gap:3px;min-width:0;padding-right:6px;display:flex;overflow:hidden}.g-name .tw{width:14px;height:14px;color:var(--text);flex:none;place-items:center;display:grid}.g-name .tw svg{width:11px;height:11px;transition:transform .12s}.g-row.open .g-name .tw svg{transform:rotate(90deg)}.g-id{color:var(--text);flex:none;font-size:10.5px;font-weight:700}.g-bars{border-left:1px solid var(--line);height:100%;position:relative}.gantt.on .g-bars:after{content:"";top:0;bottom:0;left:var(--now);background:var(--red);pointer-events:none;z-index:1;width:2px;margin-left:-1px;position:absolute}.g-axis{cursor:pointer;overflow:hidden}.g-tick{border-left:1px solid var(--line);color:var(--text);white-space:nowrap;padding-left:3px;font-size:10px;line-height:26px;position:absolute;top:0;bottom:0}.g-bar{background:var(--emerald);border-radius:3px;min-width:3px;height:12px;position:absolute;top:5px;overflow:hidden}.g-bar.sum{background:var(--navy);border-radius:2px;height:8px;top:7px}.g-bar.rm{background:var(--red)}.g-bar.derived{opacity:.7}.g-bar.ms{background:var(--amber);border-radius:1px;min-width:10px;height:10px;top:6px;transform:translate(-5px)rotate(45deg);width:10px!important}.g-bar i{background:#00000040;height:100%;display:block}.g-none{color:#9aaabb;padding-left:4px;font-size:10.5px;line-height:22px}.g-file{align-items:center;gap:4px;padding:6px 0 2px;font-weight:700;display:flex}#t4d{color:#fff;z-index:4;max-width:780px;box-shadow:var(--shadow);background:#0b2a4af2;border-radius:12px;flex-direction:column;gap:6px;margin:0 auto;padding:8px 12px;display:flex;position:absolute;bottom:14px;left:14px;right:146px}#t4d .row{gap:8px}#t4d .row.small{flex-wrap:wrap;row-gap:4px}#t4d .tb{color:#fff;cursor:pointer;background:0 0;border:1px solid #ffffff40;border-radius:8px;flex:none;place-items:center;width:30px;height:30px;display:grid}#t4d .tb:hover{background:#ffffff1a}#t4d .d{font:700 18px/1 var(--display);letter-spacing:.5px;white-space:nowrap;min-width:124px}#t4d input[type=range]{accent-color:var(--emerald);min-width:60px;height:20px}#t4d select{color:#fff;background:#ffffff14;border-color:#ffffff40;height:26px;padding:0 6px;font-size:11.5px}#t4d select option{color:var(--ink)}#t4d .lg{color:#cfe0ef;white-space:nowrap;align-items:center;gap:4px;display:inline-flex}#t4d .lg i{border-radius:2px;width:10px;height:10px;margin-left:6px;display:inline-block}#t4d .now{color:#9fe7c9;text-align:right;flex:1;min-width:0}body.t4d #modebar{bottom:110px}#viewbar button.dim{color:#9aaabb}#labelmenu{background:var(--white);border:1px solid var(--line);width:280px;box-shadow:var(--shadow);z-index:6;border-radius:12px;padding:4px 12px 10px;font-size:12.5px;position:absolute;top:60px;transform:translate(-50%)}#labelmenu .lm-h{font:700 12px/1.2 var(--display);letter-spacing:.6px;text-transform:uppercase;color:var(--text);margin:10px 0 4px}#labelmenu label.chk{padding:3px 0;display:flex}#labelmenu .lm-sub{margin-left:18px}#labelmenu .cnt{color:var(--text);font-size:11px}#labelmenu .hint{color:var(--text);margin:2px 0;font-size:11.5px}.lp-row{flex-wrap:wrap;gap:6px;margin:4px 0}.lp-row label.chk{margin-right:4px}.lp-wrap{border:1px solid var(--line);background:#fff;border-radius:8px;margin:4px 0 2px;position:relative;overflow:hidden}.lp-svg{cursor:crosshair;touch-action:none;width:100%;height:100%}.lp-svg svg{stroke:none;stroke-width:1px;fill:#0b2a4a;stroke-linecap:butt;stroke-linejoin:miter;width:100%;height:100%;display:block}.lp-tip{z-index:2;pointer-events:none;color:#fff;white-space:nowrap;box-shadow:var(--shadow);background:#0b2a4af0;border-radius:8px;padding:6px 9px;font-size:11.5px;line-height:1.45;position:absolute}.lp-tip b{color:#9fe7c9}.lp-tip .muted{color:#b9cde0}.lp-tip .cell-ok{color:#6ee7b7}.lp-tip .cell-no{color:#fca5a5}.lp-info{margin-top:2px}.bcf-card{padding:0;overflow:hidden}.bcf-card.open{border-color:var(--emerald)}.bcf-head{cursor:pointer;align-items:flex-start;gap:9px;padding:8px 9px;display:flex}.bcf-head:hover{background:var(--soft)}.bcf-head .cl{flex-wrap:wrap;gap:4px;margin:3px 0;display:flex}.bcf-title{color:var(--navy);overflow-wrap:anywhere;font-weight:700}.bcf-thumb{object-fit:cover;border:1px solid var(--line);background:var(--soft);border-radius:6px;flex:none;width:76px;height:50px}.bcf-thumb.none{color:var(--text);place-items:center;display:grid}.bcf-body{border-top:1px solid var(--line);padding:4px 10px 10px}.bcf-desc{white-space:pre-wrap;margin:6px 0}.bcf-vps{flex-wrap:wrap;gap:6px;margin:8px 0 2px;display:flex}.bcf-vp{border:1px solid var(--line);background:var(--white);cursor:pointer;color:var(--text);border-radius:8px;flex-direction:column;align-items:center;gap:2px;padding:3px;font-size:10.5px;display:flex}.bcf-vp:hover{border-color:var(--emerald)}.bcf-vp img{object-fit:cover;border-radius:5px;width:84px;height:54px}.bcf-comments{margin:6px 0}.bcf-c{border-left:3px solid var(--line);white-space:pre-wrap;margin:6px 0;padding:2px 0 2px 8px}.bcf-c a{color:var(--emerald-d);cursor:pointer}.bcf-form .bcf-f,.bcf-card .bcf-f{color:var(--text);flex-direction:column;gap:2px;margin:4px 0;font-size:11.5px;display:flex}.bcf-grid{grid-template-columns:1fr 1fr;gap:0 10px;display:grid}.bcf-f input,.bcf-f select,.bcf-f textarea,.bcf-card textarea{width:100%;color:var(--ink);font-size:12.5px}textarea{border:1px solid var(--line);font:inherit;resize:vertical;border-radius:7px;outline:none;width:100%;padding:6px 9px}textarea:focus{border-color:var(--emerald);box-shadow:0 0 0 3px #10b98126}.set-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:2px 18px;display:grid}.set-row{color:var(--ink);align-items:flex-start;padding:4px 0;display:flex!important}.set-row input{margin-top:3px}.pgroup{border:1px solid var(--line);border-radius:10px;margin:8px 0;overflow:hidden}.pgroup>.ph{background:var(--soft);cursor:pointer;align-items:center;gap:6px;padding:6px 9px;font-size:12.5px;font-weight:700;display:flex}.pgroup>.ph .n{overflow-wrap:anywhere;flex:1}.pgroup.closed>.pb{display:none}.pgroup>.pb{padding:6px 9px}.ptable{border-collapse:collapse;width:100%;font-size:12px}.ptable td{vertical-align:top;overflow-wrap:anywhere;border-bottom:1px solid #f0f2f5;padding:2px 4px}.ptable td:first-child{color:var(--text);width:46%}.ptable td:last-child{font-weight:600}.ptable .ty{color:#9aaabb;margin-left:4px;font-size:10.5px;font-weight:400}.path{flex-wrap:wrap;align-items:center;gap:3px;margin:2px 0 6px;font-size:11.5px;display:flex}.path a{color:var(--emerald-d);cursor:pointer;text-decoration:none}.path a:hover{text-decoration:underline}.obj-head{padding:8px 0 2px}.obj-head .nm{font:700 20px/1.1 var(--display);letter-spacing:.4px;color:var(--navy);overflow-wrap:anywhere}.obj-head .cl{flex-wrap:wrap;gap:5px;margin-top:5px;display:flex}.tbl{border-collapse:collapse;width:100%;font-size:12px}.tbl th{text-align:left;font:700 12px/1.2 var(--display);letter-spacing:.6px;text-transform:uppercase;color:var(--text);border-bottom:2px solid var(--line);background:var(--white);padding:5px;position:sticky;top:0}.tbl td{vertical-align:top;border-bottom:1px solid #f0f2f5;padding:5px}.tbl tr.click{cursor:pointer}.tbl tr.click:hover td{background:var(--soft)}.tbl td.num,.tbl th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.tbl tfoot td{border-top:2px solid var(--line);font-weight:700}.cell-ok{color:var(--emerald-d);font-weight:700}.cell-txt{color:var(--amber-d);font-weight:700}.cell-no{color:var(--red);font-weight:700}.scroll{max-height:360px;overflow:auto}#viewbar{border:1px solid var(--line);box-shadow:var(--shadow);z-index:4;background:#fffffff0;border-radius:12px;gap:2px;padding:4px;display:flex;position:absolute;top:10px;left:50%;transform:translate(-50%)}#viewbar button{width:34px;height:34px;color:var(--navy);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;display:grid;position:relative}#viewbar button:hover{background:var(--soft)}#viewbar button.on{background:var(--green-t);color:var(--emerald-d)}#viewbar .sep{background:var(--line);width:1px;margin:5px 3px}#viewbar button[data-tip]:hover:after{content:attr(data-tip);background:var(--navy);color:#fff;font:600 11px/1 var(--body);white-space:nowrap;pointer-events:none;border-radius:6px;padding:6px 8px;position:absolute;top:40px;left:50%;transform:translate(-50%)}#modebar{background:var(--navy);color:#fff;z-index:4;box-shadow:var(--shadow);border-radius:10px;align-items:center;gap:12px;max-width:calc(100% - 160px);padding:8px 14px;display:flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}#modebar b{color:var(--emerald)}#modebar button{color:#fff;cursor:pointer;background:0 0;border:1px solid #ffffff4d;border-radius:7px;height:26px;padding:0 9px}.empty{pointer-events:none;z-index:1;place-items:center;display:grid;position:absolute;inset:0}.empty-card{border:1px solid var(--line);text-align:center;max-width:440px;box-shadow:var(--shadow);background:#ffffffe6;border-radius:16px;padding:22px 28px}.empty-card h2{font:700 30px/1 var(--display);letter-spacing:1px;text-transform:uppercase;color:var(--navy);margin:0 0 10px}.empty-card p{color:var(--text);margin:6px 0;font-size:14px}#dropzone{border:3px dashed var(--emerald);z-index:10;pointer-events:none;background:#10b98114;border-radius:18px;place-items:center;display:none;position:absolute;inset:10px}#dropzone div{font:700 34px/1 var(--display);letter-spacing:1px;color:var(--emerald-d);text-transform:uppercase}body.dragging #dropzone{display:grid}#statusbar{height:var(--foot);background:var(--white);border-top:1px solid var(--line);color:var(--text);align-items:center;gap:14px;padding:0 12px;font-size:12px;display:flex;position:absolute;bottom:0;left:0;right:0}#statusbar .spacer{flex:1}#coords{font-family:var(--mono);color:var(--navy)}#progress{align-items:center;gap:8px;display:flex}#progress .bar{background:var(--line);border-radius:3px;width:160px;height:6px;display:block;overflow:hidden}#progress .bar i{background:var(--emerald);width:0;height:100%;transition:width .2s;display:block}#modal{z-index:50;background:#0b2a4a73;place-items:center;display:grid;position:fixed;inset:0}.modal-card{width:min(720px,100vw - 32px);max-height:calc(100vh - 60px);box-shadow:var(--shadow);background:#fff;border-radius:16px;padding:22px 26px;position:relative;overflow:auto}.modal-card .x{cursor:pointer;color:var(--text);background:0 0;border:0;font-size:26px;position:absolute;top:10px;right:12px}.modal-card h2{font:700 26px/1.1 var(--display);letter-spacing:1px;text-transform:uppercase;color:var(--navy);margin:0 0 10px}.modal-card h3{font:700 16px/1.2 var(--display);letter-spacing:.8px;text-transform:uppercase;color:var(--navy);margin:16px 0 6px}.modal-card p,.modal-card li{color:var(--text)}.modal-card kbd{font-family:var(--mono);background:var(--soft);border:1px solid var(--line);border-radius:4px;padding:0 5px}#toast{left:50%;top:calc(var(--top) + 12px);background:var(--navy);color:#fff;z-index:60;box-shadow:var(--shadow);border-radius:10px;max-width:80vw;padding:9px 16px;position:fixed;transform:translate(-50%)}#toast.err{background:var(--red)}.svgchart{background:var(--soft);border-radius:8px;width:100%;height:160px;display:block}@media (max-width:1280px){#toolbar button{width:40px;min-width:40px;height:40px}#toolbar button span{display:none}#topbar .app-name{font-size:19px}}@media (max-width:900px){:root{--dock-left:270px;--dock-right:300px}#t4d{bottom:140px;right:14px}#topbar .app-name span,.demo-btn span,#btn-demo span,#btn-open span{display:none}}@media (max-width:640px){#topbar .app-name{display:none}.dock{z-index:8;box-shadow:var(--shadow);width:min(86vw,340px);position:absolute;top:0;bottom:0}#dock-left{left:0}#dock-right{right:0}.dock.hdock{width:auto;box-shadow:none;z-index:auto;position:static}.resizer{display:none}}#btn-menu{display:none}#phone-menu{top:calc(var(--top) + 4px);z-index:70;background:var(--white);border:1px solid var(--line);box-shadow:var(--shadow);width:min(300px,100vw - 16px);max-height:calc(100vh - var(--top) - 20px);border-radius:12px;flex-direction:column;padding:6px;display:flex;position:fixed;right:8px;overflow-y:auto}#phone-menu button{text-align:left;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-size:15px;font-weight:600;display:flex}#phone-menu button.on{background:var(--green-t);color:var(--emerald-d)}#phone-menu button svg,#phone-menu .ic{width:20px;height:20px;color:var(--emerald-d);text-align:center;font-weight:700}#phone-menu .sep{background:var(--line);height:1px;margin:4px 0}@media (max-width:700px){#toolbar,#btn-focus{display:none!important}#btn-menu{display:inline-flex}#topbar{gap:6px;padding:0 8px}#topbar .spacer{flex:1}#topbar .brand img{height:28px}.demo-btn span,#btn-open span{display:none}.demo-btn,#btn-open{padding:0 10px}.dock,.dock.hdock,#dock-left,#dock-right{top:auto;left:0;right:0;bottom:var(--foot);width:auto;height:var(--sheet-h,55vh);z-index:25;border:0;border-top:1px solid var(--line);border-radius:14px 14px 0 0;flex-direction:column;position:fixed;overflow:hidden auto;box-shadow:0 -8px 30px #0b2a4a40}.hdock>.panel{border-right:0;flex:none;min-width:0;height:auto;overflow:visible}.resizer{display:none!important}.panel.floating{right:0;bottom:var(--foot);resize:none;border-radius:14px 14px 0 0;position:fixed;width:auto!important;height:var(--sheet-h,55vh)!important;top:auto!important;left:0!important}.panel>header{cursor:ns-resize;touch-action:none;padding:16px 12px 10px 14px;position:sticky}.panel>header:before{content:"";background:#c9d3de;border-radius:3px;width:44px;height:5px;margin-left:-22px;position:absolute;top:5px;left:50%}.panel.floating.collapsed{height:auto!important}.dock:has(>.panel.collapsed){height:auto!important}.panel>header button[title^=Where]{display:none}#viewbar{scrollbar-width:none;top:8px;left:8px;right:8px;overflow-x:auto;transform:none}#viewbar button{flex:none;width:40px;height:40px}#viewbar button[data-tip]:hover:after{display:none}#navcube{width:84px;height:84px}.empty-card{margin:0 16px;padding:18px}.empty-card h2{font-size:24px}#statusbar{font-size:11px}}body>canvas{pointer-events:none;top:0;left:0;position:fixed!important}.set-locked{background:var(--soft);border-radius:10px;margin-top:6px;padding:8px 10px}.set-row.locked{color:#9aaabb;cursor:not-allowed}.set-note{color:var(--navy);margin:6px 0 2px;font-size:12.5px;font-weight:600}.set-note a{color:var(--emerald-d)}.fold-btns{flex:none;align-items:center;gap:0;display:inline-flex}.fold-btns .ibtn{width:24px;height:24px}.fold-btns .ibtn svg{width:15px;height:15px}.sbtn.danger{background:var(--red);border-color:var(--red);color:#fff}.sales-chip{background:var(--green-t);height:20px;color:var(--emerald-d);white-space:nowrap;text-overflow:ellipsis;pointer-events:auto;border-radius:10px;align-items:center;gap:5px;max-width:60vw;padding:0 9px;font-size:11.5px;text-decoration:none;display:inline-flex;overflow:hidden}.sales-chip:hover{background:var(--emerald);color:#fff}.sales-chip .dot{background:var(--emerald);border-radius:50%;flex:none;width:7px;height:7px}.sales-chip:hover .dot{background:#fff}.sales-line{margin-top:12px!important}#empty .sales-chip{white-space:normal;text-align:center;height:auto;padding:5px 14px;font-size:12.5px;line-height:1.5;display:inline-block}#empty .sales-chip .dot{vertical-align:1px;margin-right:6px;display:inline-block}.demo-dl{flex:none;text-decoration:none}@media (max-width:700px){#statusbar .sales-chip b{display:none}}.sales-card{right:14px;bottom:calc(var(--foot) + 12px);z-index:55;background:var(--white);border:1px solid var(--line);border-left:3px solid var(--emerald);max-width:300px;box-shadow:var(--shadow);color:var(--text);border-radius:10px;align-items:flex-start;gap:10px;padding:10px 8px 10px 12px;font-size:12.5px;transition:opacity .35s,transform .35s;animation:.35s ease-out sales-in;display:flex;position:fixed}.sales-card.out{opacity:0;transform:translateY(8px)}.sales-card .dot{background:var(--emerald);border-radius:50%;flex:none;width:8px;height:8px;margin-top:5px}.sales-card b{color:var(--emerald-d)}.sales-card .small{margin:2px 0 6px}.sales-card a{color:var(--emerald-d);font-weight:600;text-decoration:none}.sales-card a:hover{text-decoration:underline}.sales-card .btn.icon{flex:none;width:24px;height:24px;margin-top:-3px}@keyframes sales-in{0%{opacity:0;transform:translateY(8px)}}@media (max-width:700px){.sales-card{max-width:none;left:12px;right:12px;top:calc(var(--top) + 10px);bottom:auto}}
