: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:#ffffff;--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:#ffffff;--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:#ffffff;--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:#ffffff;--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:#ffffff;--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:#ffffff;--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{background:#fffffff7;color:#1a1c1f}: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}html,body{height:100%;margin:0;background:var(--bg);color:var(--txt);font-family:var(--ui);font-size:13px;overflow:hidden}button,input,select{font-family:inherit;font-size:inherit;color:inherit}#app{display:flex;flex-direction:column;height:100vh}#body{flex:1;display:flex;min-height:0}#topbar{display:flex;align-items:center;gap:10px;height:46px;padding:0 12px;background:var(--panel);border-bottom:1px solid var(--line);flex:none;overflow-x:auto;scrollbar-width:none}#topbar::-webkit-scrollbar{display:none}.brand{font-weight:650;letter-spacing:.2px;display:flex;align-items:center;gap:8px;white-space:nowrap;flex:none}.brand b{color:var(--accent)}.brand .ver{font-family:var(--mono);font-size:10px;color:var(--dim2);font-weight:400;padding:2px 6px;border:1px solid var(--line);border-radius:4px;margin-left:2px}.brand small{color:var(--dim2);font-weight:400}.sysTabs{display:flex;gap:4px;margin-left:6px}.pick{display:flex;align-items:center;gap:6px;background:var(--panel2);border:1px solid var(--line);border-radius:6px;padding:0 4px 0 8px}.pick .dot{width:9px;height:9px;border-radius:50%;flex:none;background:var(--accent)}.pick select{background:transparent;border:0;padding:6px 4px;font-family:inherit;font-size:inherit;color:var(--txt);min-width:132px}.pick select:focus{outline:none}#topbar select.btn{padding-right:6px}.sysTab{display:flex;align-items:center;gap:6px;padding:5px 10px;border-radius:6px;background:var(--panel2);border:1px solid var(--line);cursor:pointer;white-space:nowrap}.sysTab .dot{width:9px;height:9px;border-radius:50%}.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{display:flex;gap:6px;align-items:center}.btn{padding:6px 11px;border-radius:6px;background:var(--panel2);border:1px solid var(--line);cursor:pointer;white-space:nowrap}.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{display:flex;border:1px solid var(--line);border-radius:6px;overflow:hidden}.seg button{padding:5px 9px;white-space:nowrap;background:var(--panel2);border:0;cursor:pointer;border-right:1px solid var(--line)}.seg button:last-child{border-right:0}.seg button.on{background:var(--onBg);color:var(--onText)}#toolbar{width:56px;background:var(--panel);border-right:1px solid var(--line);display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 0;flex:none}.tool{width:40px;height:40px;border-radius:8px;background:transparent;border:1px solid transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--dim);position:relative}.tool:hover{background:var(--panel2);color:var(--txt)}.tool.on{background:var(--onBg);border-color:var(--onBorder);color:var(--onText)}.tool svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.tool .kbd{position:absolute;right:3px;bottom:1px;font-size:8px;color:var(--dim2)}.toolsep{width:28px;height:1px;background:var(--line);margin:4px 0}.levelBox{font-size:9.5px;color:var(--dim);text-align:center;line-height:1.3;padding:4px 2px;cursor:default}.levelBox.solo b{color:var(--accent);text-shadow:0 0 6px color-mix(in srgb,var(--accent) 45%,transparent)}.levelBox b{display:block;color:var(--accent2);font-family:var(--mono);font-size:11px}#viewport{flex:1;position:relative;min-width:0;overflow:hidden}#viewport canvas{display:block;width:100%;height:100%}.labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.lbl{position:absolute;transform:translate(-50%,-50%);background:#0d1117db;border:1px solid var(--line2);padding:2px 6px;border-radius:4px;font-family:var(--mono);font-size:10.5px;color:var(--txt);white-space:nowrap}.lbl.size{background:#1c4a7aeb;border-color:var(--onBorder);color:var(--onText)}.lbl.dim{color:var(--accent2)}.lbl.bad{background:#461414eb;border-color:#a33;color:#ffb3ab}.miniTable a{color:var(--accent);text-decoration:none}.miniTable a:hover{text-decoration:underline}#elevStrip{position:absolute;left:54px;top:10px;bottom:10px;width:104px;z-index:4;user-select:none;touch-action:none}#elevStrip .inner{position:absolute;inset:14px 0}#elevStrip .inner>*{position:absolute;pointer-events:none}#elevStrip .col{left:52px;width:26px;top:0;bottom:0;background:var(--panel2);border:1px solid var(--line2);border-radius:2px}#elevStrip .lvl{left:41px;width:48px;height:0;border-top:1px solid var(--dim2);opacity:.7}#elevStrip .lvl.on{border-top-color:var(--accent2);border-top-width:2px;opacity:1}#elevStrip .lvl.warm{border-top-color:var(--accent);opacity:1}#elevStrip .lvlHot{left:2px;right:2px;border:1px solid var(--accent);border-radius:3px;opacity:.75}#elevStrip .lbl{right:66px;transform:translateY(-50%);font-size:9.5px;font-family:var(--mono);color:var(--dim2);white-space:nowrap}#elevStrip .lbl.on{color:var(--accent2);font-weight:600}#elevStrip .band{left:39px;width:52px;background:var(--accent);opacity:.22;border-radius:2px}#elevStrip .bandEdge{left:37px;width:56px;height:0;border-top:1.5px solid var(--accent);opacity:.85}#elevStrip .soffit{left:39px;width:52px;height:0;border-top:1.4px dashed var(--dim);opacity:.9}#elevStrip .delta{left:79px;width:0;border-left:1px solid var(--accent2);opacity:.6}#elevStrip .plane{left:36px;width:44px;height:0;border-top:2px solid var(--accent2)}#elevStrip .plane .grip{position:absolute;right:-6px;top:-6px;width:11px;height:11px;border-radius:50%;background:var(--accent2);box-shadow:0 0 0 1.5px var(--bg);pointer-events:none}#elevStrip .plane .grip.on{width:14px;height:14px;right:-8px;top:-8px;box-shadow:0 0 0 1.5px var(--bg),0 0 0 5px color-mix(in srgb,var(--accent2) 35%,transparent)}#elevStrip #elevSoffit{position:absolute;left:0;margin-top:4px;display:flex;align-items:center;gap:4px;font-size:9.5px;color:var(--dim);white-space:nowrap;pointer-events:auto}#elevStrip #elevSoffit.off{display:none}#elevSoffitIn{width:52px;background:var(--panel2);border:1px solid var(--line2);border-radius:4px;padding:0 4px;font-size:10px;color:var(--txt);text-align:right}#elevSoffitIn:focus{outline:none;border-color:var(--onBorder)}.btn.icon{padding:4px 7px;display:inline-flex;align-items:center;justify-content:center}.btn.icon svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;display:block}.btn.icon:hover{color:var(--bad)}.hoverTip{position:fixed;left:0;top:0;z-index:60;pointer-events:none;opacity:0;background:var(--panel2);color:var(--txt);border:1px solid var(--line2);border-radius:6px;box-shadow:0 6px 20px #00000059;padding:7px 10px;font-size:11.5px;line-height:1.5;max-width:290px;transition:opacity .09s ease}.hoverTip.on{opacity:1}.hoverTip b{color:var(--accent2);font-weight:600}#tooltip{position:absolute;pointer-events:none;background:#0d1117f2;border:1px solid var(--line2);border-radius:6px;padding:7px 9px;font-family:var(--mono);font-size:11px;line-height:1.55;display:none;z-index:5;max-width:280px}#tooltip b{color:var(--accent2);font-family:var(--ui)}#legend{position:absolute;left:152px;bottom:12px;background:#151b24e6;border:1px solid var(--line);border-radius:7px;padding:8px 10px;font-size:11px;display:none}#legend .bar{height:9px;width:170px;border-radius:3px;margin:5px 0;background:linear-gradient(90deg,#2b6cb0,#2f9e6e,#d9a441,#e2703a,#d94141)}#legend .ends{display:flex;justify-content:space-between;font-family:var(--mono);color:var(--dim)}#viewhelp{position:absolute;right:12px;bottom:12px;font-size:10.5px;color:var(--dim2);text-align:right;line-height:1.6;pointer-events:none}#inspector{width:320px;background:var(--panel);border-left:1px solid var(--line);overflow-y:auto;flex:none}.sec{border-bottom:1px solid var(--line)}.sec>h3{margin:0;padding:9px 12px;font-size:11px;letter-spacing:.7px;text-transform:uppercase;color:var(--dim);background:var(--panel2);cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-weight:600}.sec>h3 .chev{color:var(--dim2);font-size:10px}.sec .body{padding:10px 12px}.sec.collapsed .body{display:none}.row{display:flex;align-items:center;gap:8px;margin-bottom:7px}.row label{flex:0 0 104px;color:var(--dim);font-size:11.5px}.row .val{flex:1;font-family:var(--mono);font-size:12px;text-align:right}.sec select,.sec input[type=text],.sec input[type=number]{background:var(--bg);border:1px solid var(--line2);border-radius:5px;padding:4px 7px;font-family:var(--mono);font-size:12px;color:var(--txt);width:100%}.sec select:focus,.sec input:focus{outline:none;border-color:var(--accent)}.row input,.row select{flex:1;min-width:0;background:var(--bg);border:1px solid var(--line2);border-radius:5px;padding:4px 7px;font-family:var(--mono);font-size:12px}.row input:focus,.row select:focus{outline:none;border-color:var(--accent)}.row input[type=range]{padding:0}.row .unit{color:var(--dim2);font-size:10.5px;width:44px;flex:none}input.swatch{padding:1px 2px;height:26px;width:44px;flex:none;background:var(--bg);border:1px solid var(--line2);border-radius:5px;cursor:pointer}input.swatch.sm{height:20px;width:28px}.kv{display:flex;justify-content:space-between;padding:3px 0;font-size:12px;border-bottom:1px dotted #202834}.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{display:inline-block;padding:1px 7px;border-radius:10px;font-size:10px;background:var(--panel2);border:1px solid var(--line2);color:var(--dim)}.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);font-size:12px;padding:16px 4px;text-align:center;line-height:1.7}.warnlist{font-size:11.5px;line-height:1.5}.warnlist div{padding:5px 7px;border-radius:5px;margin-bottom:5px;background:var(--noteBg);border-left:3px solid var(--warn);color:var(--noteTx)}.warnlist div.error{background:var(--errBg);border-left-color:var(--bad);color:var(--errTx)}.miniTable{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:11px}.miniTable th{text-align:left;color:var(--dim2);font-weight:500;padding:3px 4px;border-bottom:1px solid var(--line)}.miniTable td{padding:3px 4px;border-bottom:1px solid #1a212b}.miniTable tr.crit td{color:var(--accent2)}.miniTable td.num{text-align:right}.btnrow{display:flex;gap:6px;margin-top:8px}.btnrow .btn{flex:1;text-align:center}#statusbar{height:26px;background:var(--panel);border-top:1px solid var(--line);display:flex;align-items:center;gap:16px;padding:0 12px;font-size:11px;color:var(--dim);flex:none}#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{position:fixed;inset:0;background:#06090dd1;z-index:50;display:flex;align-items:center;justify-content:center;padding:26px}#overlay.hidden{display:none}.sheet{background:var(--panel);border:1px solid var(--line2);border-radius:10px;width:min(1180px,100%);height:100%;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 70px #0009}.sheet header{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line);background:var(--panel2)}.sheet header h2{margin:0;font-size:15px;font-weight:600}.sheet .content{flex:1;overflow:auto;padding:16px 20px}.sheet .tabs{display:flex;gap:4px}table.rep{width:100%;border-collapse:collapse;font-size:12px;margin-bottom:20px}table.rep th{text-align:left;padding:6px 8px;border-bottom:1.5px solid var(--line2);color:var(--dim);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.4px}table.rep td{padding:5px 8px;border-bottom:1px solid #1a212b;font-family:var(--mono);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);font-weight:600;color:var(--txt)}h4.repH{margin:22px 0 8px;font-size:13px;color:var(--accent);letter-spacing:.3px}h4.repH:first-child{margin-top:0}.note{color:var(--dim);font-size:11.5px;line-height:1.6;margin:6px 0 14px;padding:8px 10px;background:var(--panel2);border-left:3px solid var(--line2);border-radius:0 5px 5px 0}.sheetGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px}.cutcard{background:#fbfaf7;border-radius:8px;overflow:hidden;color:#1a1a1a}.cutcard .hd{display:flex;justify-content:space-between;align-items:baseline;padding:8px 11px;background:#eae7e0;border-bottom:1px solid #d3cfc6}.cutcard .hd b{font-size:12.5px}.cutcard .hd span{font-family:var(--mono);font-size:10.5px;color:#5a5a5a}.cutcard svg{display:block;width:100%;background:#fbfaf7}.cutcard .ft{padding:7px 11px;font-family:var(--mono);font-size:10px;color:#4a4a4a;border-top:1px solid #e2ded5;line-height:1.6}.setRow{display:flex;align-items:center;gap:12px;padding:7px 0;border-bottom:1px solid var(--line)}.setRow label{flex:0 0 150px;color:var(--dim);font-size:12.5px}.setCtl{flex:1;display:flex;align-items:center;gap:8px}.setCtl select,.setCtl input[type=text],.setCtl input[type=number]{flex:1;max-width:340px;background:var(--bg);border:1px solid var(--line2);border-radius:5px;padding:5px 8px;font-family:var(--mono);font-size:12px;color:var(--txt)}.setCtl .u{color:var(--dim2);font-size:11px}.setCtl .chk{display:flex;align-items:center;gap:6px;color:var(--txt);font-size:12.5px}.setHint{color:var(--dim2);font-size:11px;line-height:1.6;margin:-2px 0 6px 162px;max-width:520px}.sheet .content h4.repH:first-child{margin-top:0}.summaryGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:18px}.card{background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:11px 13px}.card .k{color:var(--dim);font-size:10.5px;text-transform:uppercase;letter-spacing:.5px}.card .v{font-family:var(--mono);font-size:19px;margin-top:3px;color:var(--accent2)}.card .s{color:var(--dim2);font-size:10.5px;margin-top:2px}@media print{#app,#topbar,#toolbar,#inspector,#statusbar{display:none!important}#overlay{position:static;background:#fff;padding:0}.sheet{border:0;box-shadow:none;height:auto;background:#fff}.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+0460-052F,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+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,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+1F00-1FFF}@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+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@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+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,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+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
