:root{--bg:#101114;--panel:#16171a;--panel2:#1e2024;--line:#303338;--line2:#383b42;--txt:#e6e9ee;--dim:#aeb3bc;--dim2:#8d9299;--accent:#5b9bff;--accent2:#f0c74a;--good:#5fd08a;--warn:#f0c74a;--bad:#ff7b7b;--rowHover:#26282d;--rowSel:#2f333b;--onBg:#2f6fd0;--onBgHover:#3a7ee0;--onBorder:#3d7fe0;--onText:#fff;--badBg:#3a1d1d;--badBd:#6a2f2f;--badTx:#ffb0a8;--warnBg:#3a301a;--warnBd:#6a5a2f;--warnTx:#ffdca8;--goodBg:#1d3a2a;--goodBd:#2f6a4a;--goodTx:#a8ffd0;--noteBg:#2a1f1c;--noteTx:#f0d9bd;--errBg:#2c1a1a;--errTx:#f3c9c4;--scene:#16171a;--grid1:#303338;--grid2:#222429;--ghostEdge:#fff;--mono:"SF Mono",ui-monospace,"JetBrains Mono",Menlo,Consolas,monospace;--ui:"Inter Variable","Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}:root[data-theme=light]{--bg:#f4f5f7;--panel:#fff;--panel2:#f1f2f4;--line:#ebecef;--line2:#d8dade;--txt:#33363b;--dim:#63676e;--dim2:#8d9299;--accent:#2f6fd0;--accent2:#9a7413;--good:#1c8a4e;--warn:#9a7413;--bad:#c93b3b;--rowHover:#f4f5f7;--rowSel:#e6eefb;--onBg:#2f6fd0;--onBgHover:#2560b8;--onBorder:#2f6fd0;--onText:#fff;--badBg:#fdeeec;--badBd:#e7b9b4;--badTx:#8f2f2a;--warnBg:#fdf6e6;--warnBd:#e3d3a4;--warnTx:#6b5210;--goodBg:#e8f6ee;--goodBd:#a9d9be;--goodTx:#1c6b40;--noteBg:#fdf6e6;--noteTx:#6b5210;--errBg:#fdeeec;--errTx:#8f2f2a;--scene:#eef0f3;--grid1:#c9ced6;--grid2:#dfe3e9;--ghostEdge:#5a6472}@media (prefers-color-scheme:light){:root:not([data-theme=dark]):not([data-theme=light]){--bg:#f4f5f7;--panel:#fff;--panel2:#f1f2f4;--line:#ebecef;--line2:#d8dade;--txt:#33363b;--dim:#63676e;--dim2:#8d9299;--accent:#2f6fd0;--accent2:#9a7413;--good:#1c8a4e;--warn:#9a7413;--bad:#c93b3b;--rowHover:#f4f5f7;--rowSel:#e6eefb;--onBg:#2f6fd0;--onBgHover:#2560b8;--onBorder:#2f6fd0;--onText:#fff;--badBg:#fdeeec;--badBd:#e7b9b4;--badTx:#8f2f2a;--warnBg:#fdf6e6;--warnBd:#e3d3a4;--warnTx:#6b5210;--goodBg:#e8f6ee;--goodBd:#a9d9be;--goodTx:#1c6b40;--noteBg:#fdf6e6;--noteTx:#6b5210;--errBg:#fdeeec;--errTx:#8f2f2a;--scene:#eef0f3;--grid1:#c9ced6;--grid2:#dfe3e9;--ghostEdge:#5a6472}}:root[data-theme=light] #tooltip,:root:not([data-theme=dark]):not([data-theme=light]) #tooltip{color:#1a1c1f;background:#fffffff7}:root[data-theme=light] table.rep td,:root:not([data-theme=dark]):not([data-theme=light]) table.rep td,:root[data-theme=light] .miniTable td,:root:not([data-theme=dark]):not([data-theme=light]) .miniTable td{border-bottom-color:var(--line)}:root[data-theme=light] table.rep tr.crit,:root:not([data-theme=dark]):not([data-theme=light]) table.rep tr.crit{background:#fdf6e6}:root[data-theme=light] #overlay,:root:not([data-theme=dark]):not([data-theme=light]) #overlay{background:#5a64736b}*{box-sizing:border-box}button,.btn,.tool,.kbd,label,.levelBox,.pill{-webkit-user-select:none;user-select:none}html,body{background:var(--bg);height:100%;color:var(--txt);font-family:var(--ui);margin:0;font-size:13px;overflow:hidden}button,input,select{font-family:inherit;font-size:inherit;color:inherit}#app{flex-direction:column;height:100vh;display:flex}#body{flex:1;min-height:0;display:flex}#topbar{background:var(--panel);border-bottom:1px solid var(--line);scrollbar-width:none;flex:none;align-items:center;gap:10px;height:46px;padding:0 12px;display:flex;overflow-x:auto}#topbar::-webkit-scrollbar{display:none}.brand{letter-spacing:.2px;white-space:nowrap;flex:none;align-items:center;gap:8px;font-weight:650;display:flex}.brand b{color:var(--accent)}.brand .ver{font-family:var(--mono);color:var(--dim2);border:1px solid var(--line);border-radius:4px;margin-left:2px;padding:2px 6px;font-size:10px;font-weight:400}.brand small{color:var(--dim2);font-weight:400}.sysTabs{gap:4px;margin-left:6px;display:flex}.pick{background:var(--panel2);border:1px solid var(--line);border-radius:6px;align-items:center;gap:6px;padding:0 4px 0 8px;display:flex}.pick .dot{background:var(--accent);border-radius:50%;flex:none;width:9px;height:9px}.pick select{font-family:inherit;font-size:inherit;color:var(--txt);background:0 0;border:0;min-width:132px;padding:6px 4px}.pick select:focus{outline:none}#topbar select.btn{padding-right:6px}.sysTab{background:var(--panel2);border:1px solid var(--line);cursor:pointer;white-space:nowrap;border-radius:6px;align-items:center;gap:6px;padding:5px 10px;display:flex}.sysTab .dot{border-radius:50%;width:9px;height:9px}.sysTab.on{border-color:var(--accent);background:var(--rowSel)}.sysTab .eye{opacity:.45;font-size:11px}.sysTab .eye:hover{opacity:1}.spacer{flex:1}.tb{align-items:center;gap:6px;display:flex}.btn{background:var(--panel2);border:1px solid var(--line);cursor:pointer;white-space:nowrap;border-radius:6px;padding:6px 11px}.btn:hover{border-color:var(--line2);background:var(--rowHover)}.btn.primary{background:var(--onBg);border-color:var(--onBorder);color:var(--onText)}.btn.primary:hover{background:var(--onBgHover)}.btn.on{border-color:var(--accent);color:var(--accent)}.seg{border:1px solid var(--line);border-radius:6px;display:flex;overflow:hidden}.seg button{white-space:nowrap;background:var(--panel2);cursor:pointer;border:0;border-right:1px solid var(--line);padding:5px 9px}.seg button:last-child{border-right:0}.seg button.on{background:var(--onBg);color:var(--onText)}#toolbar{background:var(--panel);border-right:1px solid var(--line);flex-direction:column;flex:none;align-items:center;gap:6px;width:56px;padding:8px 0;display:flex}.tool{cursor:pointer;width:40px;height:40px;color:var(--dim);background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;display:flex;position:relative}.tool:hover{background:var(--panel2);color:var(--txt)}.tool.on{background:var(--onBg);border-color:var(--onBorder);color:var(--onText)}.tool svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.tool .kbd{color:var(--dim2);font-size:8px;position:absolute;bottom:1px;right:3px}.toolsep{background:var(--line);width:28px;height:1px;margin:4px 0}.levelBox{color:var(--dim);text-align:center;cursor:default;padding:4px 2px;font-size:9.5px;line-height:1.3}.levelBox.solo b{color:var(--accent);text-shadow:0 0 6px color-mix(in srgb, var(--accent) 45%, transparent)}.levelBox b{color:var(--accent2);font-family:var(--mono);font-size:11px;display:block}#viewport{flex:1;min-width:0;position:relative;overflow:hidden}#viewport canvas{width:100%;height:100%;display:block}.labels{pointer-events:none;position:absolute;inset:0;overflow:hidden}.lbl{border:1px solid var(--line2);font-family:var(--mono);color:var(--txt);white-space:nowrap;background:#0d1117db;border-radius:4px;padding:2px 6px;font-size:10.5px;position:absolute;transform:translate(-50%,-50%)}.lbl.size{border-color:var(--onBorder);color:var(--onText);background:#1c4a7aeb}.lbl.dim{color:var(--accent2)}.lbl.bad{color:#ffb3ab;background:#461414eb;border-color:#a33}.miniTable a{color:var(--accent);text-decoration:none}.miniTable a:hover{text-decoration:underline}#elevStrip{z-index:4;-webkit-user-select:none;user-select:none;touch-action:none;width:86px;position:absolute;top:10px;bottom:10px;left:16px}#elevStrip .inner{position:absolute;inset:14px 0}#elevStrip .inner>*{pointer-events:none;position:absolute}#elevStrip .col{background:var(--panel2);border:1px solid var(--line2);border-radius:2px;width:22px;top:0;bottom:0;left:44px}#elevStrip .lvl{border-top:1px solid var(--dim2);opacity:.7;width:40px;height:0;left:35px}#elevStrip .lvl.on{border-top-color:var(--accent2);opacity:1;border-top-width:2px}#elevStrip .lvl.warm{border-top-color:var(--accent);opacity:1}#elevStrip .lvlHot{border:1px solid var(--accent);opacity:.75;border-radius:3px;left:2px;right:2px}#elevStrip .stLbl{font-size:9px;font-family:var(--mono);color:var(--dim2);white-space:nowrap;background:0 0;border:0;padding:0;right:48px;transform:translateY(-50%)}#elevStrip .stLbl.on{color:var(--accent2);font-weight:600}#elevStrip .band{background:var(--accent);opacity:.22;border-radius:2px;width:44px;left:33px}#elevStrip .bandEdge{border-top:1.5px solid var(--accent);opacity:.85;width:48px;height:0;left:31px}#elevStrip .soffit{border-top:1.3px dashed var(--dim);opacity:.9;width:44px;height:0;left:33px}#elevStrip .delta{border-left:1px solid var(--accent2);opacity:.6;width:0;left:71px}#elevStrip .plane{border-top:2px solid var(--accent2);width:42px;height:0;left:30px}#elevStrip .plane .grip{background:var(--accent2);width:10px;height:10px;box-shadow:0 0 0 1.5px var(--bg);pointer-events:none;border-radius:50%;position:absolute;top:-5px;right:-5px}#elevStrip .plane .grip.on{width:13px;height:13px;box-shadow:0 0 0 1.5px var(--bg),0 0 0 5px color-mix(in srgb,var(--accent2) 35%,transparent);top:-7px;right:-7px}#elevStrip #elevSoffit{color:var(--dim2);white-space:nowrap;pointer-events:auto;flex-direction:column;align-items:flex-start;gap:0;margin-top:5px;font-size:8.5px;line-height:1.25;display:flex;position:absolute;left:0}#elevStrip #elevSoffit.off{display:none}#elevStrip #elevSoffit.above{margin-top:0;padding-bottom:5px;transform:translateY(-100%)}#elevSoffitIn{background:var(--panel2);border:1px solid var(--line2);width:46px;color:var(--txt);text-align:right;border-radius:4px;padding:0 4px;font-size:10px}#elevSoffitIn:focus{border-color:var(--onBorder);outline:none}.btn.icon{justify-content:center;align-items:center;padding:4px 7px;display:inline-flex}.btn.icon svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px;display:block}.btn.icon:hover{color:var(--bad)}.hoverTip{z-index:60;pointer-events:none;opacity:0;background:var(--panel2);color:var(--txt);border:1px solid var(--line2);border-radius:6px;max-width:290px;padding:7px 10px;font-size:11.5px;line-height:1.5;transition:opacity 90ms;position:fixed;top:0;left:0;box-shadow:0 6px 20px #00000059}.hoverTip.on{opacity:1}.hoverTip b{color:var(--accent2);font-weight:600}#tooltip{pointer-events:none;border:1px solid var(--line2);font-family:var(--mono);z-index:5;background:#0d1117f2;border-radius:6px;max-width:280px;padding:7px 9px;font-size:11px;line-height:1.55;display:none;position:absolute}#tooltip b{color:var(--accent2);font-family:var(--ui)}#legend{border:1px solid var(--line);background:#151b24e6;border-radius:7px;padding:8px 10px;font-size:11px;display:none;position:absolute;bottom:12px;left:116px}#legend .bar{background:linear-gradient(90deg,#2b6cb0,#2f9e6e,#d9a441,#e2703a,#d94141);border-radius:3px;width:170px;height:9px;margin:5px 0}#legend .ends{font-family:var(--mono);color:var(--dim);justify-content:space-between;display:flex}#planOpacity{z-index:4;background:var(--panel);border:1px solid var(--line);color:var(--dim);-webkit-user-select:none;user-select:none;border-radius:7px;align-items:center;gap:7px;padding:5px 9px;font-size:10.5px;display:flex;position:absolute;bottom:34px;right:12px}#planOpacity input{width:110px;accent-color:var(--accent2);cursor:ew-resize}#planOpacity b{font-family:var(--mono);color:var(--txt);text-align:right;min-width:30px}#viewhelp{color:var(--dim2);text-align:right;pointer-events:none;font-size:10.5px;line-height:1.6;position:absolute;bottom:12px;right:12px}#inspector{background:var(--panel);border-left:1px solid var(--line);flex:none;width:320px;overflow-y:auto}.sec{border-bottom:1px solid var(--line)}.sec>h3{letter-spacing:.7px;text-transform:uppercase;color:var(--dim);background:var(--panel2);cursor:pointer;justify-content:space-between;align-items:center;margin:0;padding:9px 12px;font-size:11px;font-weight:600;display:flex}.sec>h3 .chev{color:var(--dim2);font-size:10px}.sec .body{padding:10px 12px}.sec.collapsed .body{display:none}.row{align-items:center;gap:8px;margin-bottom:7px;display:flex}.row label{color:var(--dim);flex:0 0 104px;font-size:11.5px}.row .val{font-family:var(--mono);text-align:right;flex:1;font-size:12px}.sec select,.sec input[type=text],.sec input[type=number]{background:var(--bg);border:1px solid var(--line2);font-family:var(--mono);color:var(--txt);border-radius:5px;width:100%;padding:4px 7px;font-size:12px}.sec select:focus,.sec input:focus{border-color:var(--accent);outline:none}.row input,.row select{background:var(--bg);border:1px solid var(--line2);min-width:0;font-family:var(--mono);border-radius:5px;flex:1;padding:4px 7px;font-size:12px}.row input:focus,.row select:focus{border-color:var(--accent);outline:none}.row input[type=range]{padding:0}.row .unit{color:var(--dim2);flex:none;width:44px;font-size:10.5px}input.swatch{background:var(--bg);border:1px solid var(--line2);cursor:pointer;border-radius:5px;flex:none;width:44px;height:26px;padding:1px 2px}input.swatch.sm{width:28px;height:20px}.kv{border-bottom:1px dotted #202834;justify-content:space-between;padding:3px 0;font-size:12px;display:flex}.kv:last-child{border-bottom:0}.kv span:first-child{color:var(--dim)}.kv span:last-child{font-family:var(--mono)}.kv.hi span:last-child{color:var(--accent2)}.kv.bad span:last-child{color:var(--bad)}.kv.good span:last-child{color:var(--good)}.pill{background:var(--panel2);border:1px solid var(--line2);color:var(--dim);border-radius:10px;padding:1px 7px;font-size:10px;display:inline-block}.pill.bad{background:var(--badBg);border-color:var(--badBd);color:var(--badTx)}.pill.warn{background:var(--warnBg);border-color:var(--warnBd);color:var(--warnTx)}.pill.good{background:var(--goodBg);border-color:var(--goodBd);color:var(--goodTx)}.empty{color:var(--dim2);text-align:center;padding:16px 4px;font-size:12px;line-height:1.7}.warnlist{font-size:11.5px;line-height:1.5}.warnlist div{background:var(--noteBg);border-left:3px solid var(--warn);color:var(--noteTx);border-radius:5px;margin-bottom:5px;padding:5px 7px}.warnlist div.error{background:var(--errBg);border-left-color:var(--bad);color:var(--errTx)}.miniTable{border-collapse:collapse;width:100%;font-family:var(--mono);font-size:11px}.miniTable th{text-align:left;color:var(--dim2);border-bottom:1px solid var(--line);padding:3px 4px;font-weight:500}.miniTable td{border-bottom:1px solid #1a212b;padding:3px 4px}.miniTable tr.crit td{color:var(--accent2)}.miniTable td.num{text-align:right}.btnrow{gap:6px;margin-top:8px;display:flex}.btnrow .btn{text-align:center;flex:1}#statusbar{background:var(--panel);border-top:1px solid var(--line);height:26px;color:var(--dim);flex:none;align-items:center;gap:16px;padding:0 12px;font-size:11px;display:flex}#statusbar .mono{font-family:var(--mono)}#statusbar b{color:var(--txt);font-weight:500}#hint{color:var(--dim2)}#hint b{color:var(--accent2);font-weight:600}#overlay{z-index:50;background:#06090dd1;justify-content:center;align-items:center;padding:26px;display:flex;position:fixed;inset:0}#overlay.hidden{display:none}.sheet{background:var(--panel);border:1px solid var(--line2);border-radius:10px;flex-direction:column;width:min(1180px,100%);height:100%;display:flex;overflow:hidden;box-shadow:0 24px 70px #0009}.sheet header{border-bottom:1px solid var(--line);background:var(--panel2);align-items:center;gap:12px;padding:12px 16px;display:flex}.sheet header h2{margin:0;font-size:15px;font-weight:600}.sheet .content{flex:1;padding:16px 20px;overflow:auto}.sheet .tabs{gap:4px;display:flex}table.rep{border-collapse:collapse;width:100%;margin-bottom:20px;font-size:12px}table.rep th{text-align:left;border-bottom:1.5px solid var(--line2);color:var(--dim);text-transform:uppercase;letter-spacing:.4px;padding:6px 8px;font-size:11px;font-weight:600}table.rep td{font-family:var(--mono);border-bottom:1px solid #1a212b;padding:5px 8px;font-size:11.5px}table.rep td.t{font-family:var(--ui)}table.rep td.num{text-align:right}table.rep tr.crit{background:var(--rowSel)}table.rep tr.crit td{color:var(--accent2)}table.rep tfoot td{border-top:1.5px solid var(--line2);color:var(--txt);font-weight:600}h4.repH{color:var(--accent);letter-spacing:.3px;margin:22px 0 8px;font-size:13px}h4.repH:first-child{margin-top:0}.note{color:var(--dim);background:var(--panel2);border-left:3px solid var(--line2);border-radius:0 5px 5px 0;margin:6px 0 14px;padding:8px 10px;font-size:11.5px;line-height:1.6}.sheetGrid{grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px;display:grid}.cutcard{color:#1a1a1a;background:#fbfaf7;border-radius:8px;overflow:hidden}.cutcard .hd{background:#eae7e0;border-bottom:1px solid #d3cfc6;justify-content:space-between;align-items:baseline;padding:8px 11px;display:flex}.cutcard .hd b{font-size:12.5px}.cutcard .hd span{font-family:var(--mono);color:#5a5a5a;font-size:10.5px}.cutcard svg{background:#fbfaf7;width:100%;display:block}.cutcard .ft{font-family:var(--mono);color:#4a4a4a;border-top:1px solid #e2ded5;padding:7px 11px;font-size:10px;line-height:1.6}.setRow{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:7px 0;display:flex}.setRow label{color:var(--dim);flex:0 0 150px;font-size:12.5px}.setCtl{flex:1;align-items:center;gap:8px;display:flex}.setCtl select,.setCtl input[type=text],.setCtl input[type=number]{background:var(--bg);border:1px solid var(--line2);max-width:340px;font-family:var(--mono);color:var(--txt);border-radius:5px;flex:1;padding:5px 8px;font-size:12px}.setCtl .u{color:var(--dim2);font-size:11px}.setCtl .chk{color:var(--txt);align-items:center;gap:6px;font-size:12.5px;display:flex}.setHint{color:var(--dim2);max-width:520px;margin:-2px 0 6px 162px;font-size:11px;line-height:1.6}.sheet .content h4.repH:first-child{margin-top:0}.summaryGrid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:18px;display:grid}.card{background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:11px 13px}.card .k{color:var(--dim);text-transform:uppercase;letter-spacing:.5px;font-size:10.5px}.card .v{font-family:var(--mono);color:var(--accent2);margin-top:3px;font-size:19px}.card .s{color:var(--dim2);margin-top:2px;font-size:10.5px}@media print{#app,#topbar,#toolbar,#inspector,#statusbar{display:none!important}#overlay{background:#fff;padding:0;position:static}.sheet{box-shadow:none;background:#fff;border:0;height:auto}.sheet header,.sheet .tabs{display:none}.cutcard{break-inside:avoid;border:1px solid #ccc;margin-bottom:8px}.sheetGrid{grid-template-columns:1fr 1fr}}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
