:root{--navy:#000043;--cyan:#4fc6e0;--red:#f1562c;--blue:#000043;--btn:#000043;--line:#e3e6ea;--txt:#222;--muted:#6b7580;--hl:#ffd400}*{box-sizing:border-box}html,body{height:100%;color:var(--txt);background:#fff;margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Helvetica,Arial,sans-serif;font-size:14px}body{flex-direction:column;display:flex}#nav{background:var(--navy);color:#fff;flex:none;align-items:center;gap:18px;height:50px;padding:0 24px;display:flex}#nav .brand{align-items:center;margin-right:10px;display:flex}#nav .brand img{height:26px;display:block}#nav a,#nav button.nb{color:#fff;cursor:pointer;font:inherit;background:0 0;border:0;text-decoration:none}#nav button.new{background:var(--cyan);color:var(--navy);border-radius:4px;padding:7px 12px;font-weight:700}#nav .sp{flex:1}#title{flex:none;padding:8px 24px 0;font-size:20px;font-weight:600}#tabs{border-bottom:1px solid var(--line);flex:none;align-items:flex-end;gap:2px;padding:8px 24px 0;display:flex}#tabs .tab{color:var(--blue);cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #0000;border-bottom:0;border-radius:4px 4px 0 0;margin-bottom:-1px;padding:10px 16px}#tabs .tab.on{border-color:var(--line);border-top:3px solid var(--cyan);color:var(--navy);background:#fff;font-weight:600}#tabs .gap{width:24px}#view{flex:1;min-height:0;overflow:auto}.page{max-width:1380px;margin:0 auto;padding:18px 24px 80px}h1.big{color:var(--blue);margin:12px 0 4px;font-size:34px;font-weight:300}.rowhead{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;margin-bottom:10px;padding-bottom:6px;display:flex}.rowhead a{color:var(--blue);cursor:pointer;margin-left:14px}.btn{background:var(--btn);color:#fff;border:1px solid var(--btn);cursor:pointer;font:inherit;border-radius:4px;padding:7px 12px}.btn.ghost{color:var(--btn);background:#fff}.btn.sm{padding:4px 8px;font-size:12px}.btn.on{background:var(--hl);color:#222;border-color:#d9b500}.btns{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}table{border-collapse:collapse;width:100%}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;padding:9px 8px}th{text-transform:uppercase;color:var(--muted);font-size:12px}td.r,th.r{text-align:right}.mrow{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:9px 6px;display:flex}.mrow:hover,.mrow.hov{background:#fffbe0}.mrow.hl{outline:2px solid var(--hl);background:#fff3a8}.mrow .h{color:#888;cursor:grab;width:12px}.mrow .nm{flex:1}.mrow .qty{text-align:right;min-width:90px}.mrow .cr{cursor:pointer;color:#555;background:0 0;border:0;padding:2px 6px;font-size:15px}.mrow.drop{border-top:2px solid var(--btn)}.field{margin:10px 0}.field label{color:var(--muted);margin-bottom:3px;font-size:12px;display:block}.field input,.field textarea,.field select{width:100%;max-width:520px;font:inherit;border:1px solid #c9ced4;border-radius:4px;padding:7px}.pv{height:100%;display:flex}.side{border-right:1px solid var(--line);background:#fafbfc;flex:none;width:300px;overflow:auto}.side h3{text-transform:uppercase;color:var(--muted);margin:12px 12px 6px;font-size:12px}.side .mrow{cursor:pointer;padding:7px 10px}.side .mrow.active{outline:1px solid var(--btn);background:#ddf3f9}.pmain{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.tb{border-bottom:1px solid var(--line);background:#fff;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 10px;display:flex}.tb .sep{background:var(--line);width:1px;height:24px;margin:0 4px}.tb label{color:var(--muted);align-items:center;gap:4px;font-size:12px;display:flex}#stage{background:#8f969d;flex:1;min-height:0;position:relative;overflow:auto}#wrap{transform-origin:0 0;background:#fff;margin:10px;position:relative;box-shadow:0 2px 10px #0006}#pc{display:block}#ov{position:absolute;top:0;left:0}#ov.draw{cursor:crosshair}#ov.pan{cursor:grab}#ov.draw g[data-i],#ov.draw g[data-t],#ov.draw g[data-l]{pointer-events:none}.halo{fill:#ffe60099;stroke:#ff8f00;stroke-width:2px;vector-effect:non-scaling-stroke}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}.pulse{animation:1.1s infinite pulse}.popup{z-index:50;background:#fff;border:1px solid #c9ced4;border-radius:4px;min-width:200px;padding:4px 0;position:fixed;box-shadow:0 6px 20px #0003}.popup div{cursor:pointer;padding:8px 14px}.popup div:hover{background:#eef9fc}.popup hr{border:0;border-top:1px solid var(--line);margin:4px 0}.mask{z-index:60;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dlg{background:#fff;border-radius:6px;min-width:360px;max-width:92vw;max-height:88vh;padding:20px;overflow:auto}.dlg h3{margin:0 0 12px}.dlg .acts{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.dlg input[type=text],.dlg input[type=number]{font:inherit;border:1px solid #c9ced4;border-radius:4px;width:100%;padding:6px}.sw{flex-wrap:wrap;gap:6px;display:flex}.sw i{cursor:pointer;border:2px solid #fff;border-radius:4px;width:26px;height:26px;box-shadow:0 0 0 1px #aaa}.sw i.on{box-shadow:0 0 0 3px #000}.thumbs{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;margin-top:14px;display:grid}.card{border:1px solid var(--line);cursor:pointer;border-radius:6px;padding:8px}.card:hover{border-color:var(--btn)}.card canvas{background:#f4f4f4;width:100%;display:block}.plansp{max-width:1440px}.pbar{background:#f4f6f8;border:1px solid #eceff2;border-radius:6px;align-items:center;gap:6px;margin-bottom:14px;padding:8px 10px;display:flex}.pbar2{align-items:center;gap:10px;margin-bottom:10px;display:flex}.sp{flex:1}.pbtn{font:inherit;cursor:pointer;color:#222;background:#fff;border:1px solid #d5d9de;border-radius:5px;padding:7px 12px}.pbtn:hover{border-color:var(--btn)}.psearch{background:#fff;border:1px solid #d5d9de;border-radius:6px;align-items:center;gap:8px;width:380px;padding:3px 4px 3px 12px;display:flex}.psearch input{font:inherit;border:0;outline:0;flex:1;min-width:0}.seg{background:#eef0f3;border-radius:5px;padding:2px;font-size:12px;display:flex}.seg b{cursor:pointer;color:#666;border-radius:4px;padding:5px 10px;font-weight:400}.seg b.on{color:#111;background:#fff;font-weight:700;box-shadow:0 1px 2px #0002}.vseg{border:1px solid #d5d9de;border-radius:5px;display:inline-flex;overflow:hidden}.vseg button{font:inherit;cursor:pointer;background:#fff;border:0;padding:7px 12px}.vseg button+button{border-left:1px solid #d5d9de}.vseg button.on{background:#d9dde1;font-weight:700}.sech{border-bottom:1px solid #dfe3e7;justify-content:space-between;align-items:baseline;margin-top:22px;display:flex}.sech h2{color:var(--blue);margin:0;font-size:34px;font-weight:300}.sech h2 small{color:#7a8a99;font-size:18px}.sech .cc{color:var(--blue);cursor:pointer;vertical-align:middle;background:0 0;border:0;font-size:18px}.sech .hd{color:var(--blue);cursor:pointer}.tiles{flex-wrap:wrap;gap:22px;padding:18px 4px;display:flex}.tile{cursor:pointer;background:#fff;border:1px solid #19a3c4;border-radius:4px;width:322px;position:relative}.tile.cur{border:3px solid #1b5a85;margin:-2px}.tile.ghost{opacity:.45}.tth{background:#fff;border-bottom:1px dotted #bbb;justify-content:center;align-items:center;height:222px;padding:4px;display:flex;position:relative}.tth img{object-fit:contain;max-width:100%;max-height:100%}.tmn{cursor:pointer;background:#fffc;border:1px solid #ccd;border-radius:4px;display:none;position:absolute;top:4px;right:4px}.tile:hover .tmn{display:block}.tcap{justify-content:space-between;padding:10px 14px;font-size:14px;display:flex}.tcap span{color:#555;font-size:12px}.ptab{margin-top:10px}.trow{cursor:pointer}.trow:hover{background:#eef9fc}#assistBar{background:#e0f7fa;border-bottom:1px solid #00acc1;flex-wrap:wrap;align-items:center;gap:16px;padding:8px 12px;display:flex}#assistBar[hidden]{display:none}#assistBar input[type=range]{vertical-align:middle;width:160px}.dsub{border-bottom:1px solid var(--line);background:#f5f6f8;gap:6px;padding:10px 60px 0;display:flex}.dtab{color:var(--blue);cursor:pointer;border:1px solid #0000;border-bottom:0;border-radius:4px 4px 0 0;margin-bottom:-1px;padding:11px 18px}.dtab.on{border-color:var(--line);color:#222;background:#fff}.dwrap{grid-template-columns:270px 1fr;gap:24px;max-width:1500px;margin:0 auto;padding:20px 60px 80px;display:grid}.dside .createbtn{color:#000043;width:100%;font:inherit;cursor:pointer;background:#4fc6e0;border:0;border-radius:4px;margin-bottom:16px;padding:11px;font-size:16px}.dside a{color:var(--blue);cursor:pointer;gap:10px;padding:9px 12px;display:flex}.dside a.on{color:#111;font-weight:700}.dside a span{width:18px}.dside hr{border:0;border-top:1px solid var(--line);margin:8px 0}.dhead{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:10px;display:flex}.dhead h1{margin:0}.dsearch{display:flex}.dsearch input{width:260px;font:inherit;border:1px solid #c9ced4;border-radius:4px 0 0 4px;padding:9px 10px}.dsearch button{cursor:pointer;background:#fff;border:1px solid #c9ced4;border-left:0;border-radius:0 4px 4px 0;padding:0 12px}.dtools{flex-wrap:wrap;justify-content:space-between;gap:10px;margin-bottom:18px;display:flex}.pill{font:inherit;cursor:pointer;background:#fff;border:1px dashed #b9bfc6;border-radius:16px;padding:6px 12px}.plist{flex-direction:column;gap:18px;display:flex}.pcard{cursor:pointer;border-radius:6px;grid-template-columns:140px 1fr 150px;gap:24px;padding:12px 16px;display:grid}.pcard:hover{background:#eef9fc}.pcard.compact{border-bottom:1px solid var(--line);border-radius:0;grid-template-columns:70px 1fr 150px;gap:16px;padding:8px 16px}.ptile{color:#000043;text-align:center;background:#4fc6e0;flex-direction:column;justify-content:center;padding:14px 6px;display:flex;box-shadow:0 2px 5px #0003}.ptile.lost{background:#b0b7bd}.ptile b{font-size:54px;font-weight:700;line-height:1}.ptile span{margin-top:6px;font-size:19px;font-weight:700}.ptile small{margin-top:6px;font-size:12px}.pcard.compact .ptile{padding:6px}.pcard.compact .ptile b{font-size:22px}.pcard.compact .ptile span,.pcard.compact .ptile small{margin:0;font-size:10px}.pinfo h3{margin:0 0 6px;font-size:26px;font-weight:600}.pinfo h3 em{color:#7a8a99;font-size:16px;font-style:normal;font-weight:400}.pcard.compact .pinfo h3{font-size:18px}.lbl{vertical-align:middle;background:#ddf3f9;border-radius:10px;padding:2px 8px;font-size:12px;font-style:normal;font-weight:400}.pinfo .own{margin-bottom:12px}.pinfo h4{margin:0 0 6px;font-size:18px;font-weight:400}.act{color:#9aa3ab;justify-content:space-between;gap:20px;padding:2px 0;font-size:13px;display:flex}.pst{text-align:right}.pst small{color:#666;font-size:9px;display:block}.badge{color:#4fc6e0;border:2px solid #4fc6e0;border-radius:3px;margin-top:2px;padding:2px 8px;font-weight:700;display:inline-block}.badge.st-Lost{color:#777;border-color:#999}.badge.st-Won{color:#000043;background:#4fc6e0}.badge.st-Quoted{color:#000043;border-color:#000043}.badge.st-OnHold{color:#e65100;border-color:#fb8c00}.pm{cursor:pointer;color:#666;background:0 0;border:0;margin:10px 0 0 auto;font-size:20px;display:block}.calg{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:repeat(7,1fr);display:grid}.calh{border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#f5f6f8;padding:6px;font-size:12px;font-weight:700}.cal{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:96px;padding:4px 6px}.cal.off{background:#fafafa}.cal.today{background:#fffbe0}.chip{color:#000043;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:#4fc6e0;border-radius:3px;margin-top:3px;padding:2px 6px;font-size:12px;display:block;overflow:hidden}i.done{color:#2e7d32;margin-left:6px;font-size:12px;font-style:normal;font-weight:400}.muted{color:var(--muted)}.warn{color:#b3261e}.empty{text-align:center;color:var(--muted);padding:60px}.pvroot{flex-direction:column;height:100%;display:flex}.pvroot .pv{flex:1;height:auto;min-height:0;overflow:hidden}.tb1{border-bottom:1px solid var(--line);background:#fff;flex-wrap:wrap;flex:none;align-items:center;gap:8px;padding:8px 14px;display:flex}.tb1 .sp{flex:1}.addstage{color:#000043;font:inherit;cursor:pointer;background:#4fc6e0;border:0;border-radius:4px;padding:9px 14px;font-weight:600}.ibtn{cursor:pointer;background:#fff;border:1px solid #d5d9de;border-radius:5px;min-width:38px;height:36px;font-size:16px}.ibtn.on{border-color:var(--btn);background:#ddf3f9}.side.wide{width:420px}.sidesearch{padding:8px 8px 0}.sidesearch input{width:100%;font:inherit;border:1px solid #c9ced4;border-radius:4px;padding:8px}.stagecard{background:#fff;border:2px solid #000043;border-radius:3px;margin:10px 8px}.stagehead{color:#fff;cursor:pointer;-webkit-user-select:none;user-select:none;background:#000043;align-items:center;gap:12px;padding:10px 14px;display:flex}.sname{flex:1;font-size:20px;font-weight:600}.smult{font-size:13px;font-weight:700}.sact{color:#fff;letter-spacing:.6px;cursor:pointer;background:0 0;border:0;padding:2px 4px;font-size:11px}.stageadd{background:#eef1f4;justify-content:space-around;padding:4px 6px;display:flex}.stageadd button{color:#1a6ea5;font:inherit;cursor:pointer;background:0 0;border:0;padding:8px 10px}.mhead{color:#8a95a0;letter-spacing:.4px;justify-content:space-between;padding:10px 12px 4px;font-size:10px;display:flex}.side .mrow .qty.pair{white-space:nowrap;min-width:150px;font-size:13px}.jump{margin:6px 0 10px}.jump select{font:inherit;border:1px solid #c9ced4;border-radius:4px;min-width:260px;padding:6px}.wstage{background:#fff;border:2px solid #000043;border-radius:3px;margin:14px 0}.wstage .mrow{padding:9px 12px}.wstage .stagehead{cursor:default}#tabs .tab.fp{border-color:var(--line);background:#f4f6f8;align-items:stretch;padding:0;display:flex}#tabs .tab.fp.on{background:#fff}#tabs .tab.fp .lbl{padding:10px 14px}#tabs .tab.fp .caret{border-left:1px solid var(--line);color:#444;padding:10px 12px}.sympick .tabs2{border-bottom:1px solid #c9ced4;gap:2px;margin:12px 0 10px;display:flex}.sympick .tabs2 b{cursor:pointer;color:#000043;border:1px solid #0000;border-bottom:0;border-radius:4px 4px 0 0;margin-bottom:-1px;padding:7px 14px;font-weight:400}.sympick .tabs2 b.on{color:#222;background:#fff;border-color:#c9ced4}.sympick .bar{gap:8px;margin-bottom:10px;display:flex}.sympick .bar select,.sympick .bar input{font:inherit;border:1px solid #c9ced4;border-radius:4px;flex:1;min-width:0;padding:7px}.symgrid{grid-template-columns:repeat(14,1fr);align-content:start;gap:4px;min-height:160px;display:grid}.symgrid .sc{cursor:pointer;background:#fff;border:2px solid #0000;border-radius:4px;justify-content:center;align-items:center;height:40px;display:flex}.symgrid .sc:hover{background:#eef9fc}.symgrid .sc.on{background:#ddf3f9;border-color:#4fc6e0}.sympick .pager{border-top:1px solid #e3e6ea;justify-content:space-between;align-items:center;margin-top:10px;padding-top:8px;font-size:13px;display:flex}.sympick .pager a{cursor:pointer;color:#000043}.sympick .pager a.off{color:#aaa;pointer-events:none}.ibtn{color:#333;cursor:pointer;background:#fff;border:1px solid #d5d9de;border-radius:5px;justify-content:center;align-items:center;min-width:38px;height:36px;padding:0 8px;display:inline-flex}.ibtn:hover:not(:disabled){border-color:var(--btn)}.ibtn:disabled{opacity:.4;cursor:default}.ibtn.done{color:#fff;background:#7c7f84;border-color:#7c7f84}.pbtn{align-items:center;gap:5px;height:36px;padding:0 12px;display:inline-flex}.tb1 .grip{background:radial-gradient(#9aa 1.2px,#0000 1.4px) 0 0/6px 6px;width:6px;height:18px;margin:0 2px}.tbtn{color:#222;cursor:pointer;background:#fff;border:1px solid #d5d9de;border-radius:5px;justify-content:center;align-items:center;width:38px;height:36px;display:inline-flex}.tbtn:hover{border-color:var(--btn)}.tbtn.on{color:#fff;background:#000043;border-color:#000043}.toolhint{border-bottom:1px solid var(--line);color:#333;background:#f4f6f8;align-items:center;gap:12px;padding:10px 14px;font-size:13px;display:flex}.tbtn.sym{color:#fff;background:#000043;border-color:#000043}.partbox{border:1px solid #d5d9de;border-radius:5px;margin-bottom:10px}.parthead{background:#f4f6f8;border-bottom:1px solid #d5d9de;padding:9px 14px;font-weight:600}.partgrid{grid-template-columns:2fr 1fr 1fr;gap:4px 14px;padding:10px 14px;display:grid}.partgrid .c2{grid-column:span 1}.partgrid .field{margin:4px 0}.partgrid .radio span{align-items:center;gap:6px;display:flex}.partgrid .radio input[type=number]{flex:1}.symlinks{text-align:center;margin:10px 0;font-size:13px}.symlinks a{cursor:pointer;color:#000043}#root{flex-direction:column;flex:1;min-height:0;display:flex}.field.radio>span{align-items:center;gap:8px;display:flex}.field.radio input[type=radio]{flex:none;width:auto;margin:0}.field.radio input[type=number]{flex:1;min-width:0}.dlg .scalerow{align-items:center;gap:8px;margin:12px 0;display:flex}.dlg .scalerow label{white-space:nowrap;width:100px;color:var(--muted);flex:none;font-size:13px}.dlg .scalerow input{width:90px;font:inherit;border:1px solid #c9ced4;border-radius:4px;flex:none;padding:7px}.dlg .scalerow select{width:auto;font:inherit;background:#fff;border:1px solid #c9ced4;border-radius:4px;flex:none;padding:7px}svg.lucide{vertical-align:-.18em;flex:none}.popup .tick{margin-right:6px}
