@font-face{font-family:Roboto;font-weight:300;font-style:normal;font-display:swap;src:url(./Roboto-Light.Dwz7nuwl.ttf)format("truetype")}@font-face{font-family:Roboto;font-weight:400;font-style:normal;font-display:swap;src:url(./Roboto-Regular.CmjnF39D.ttf)format("truetype")}@font-face{font-family:Roboto;font-weight:500;font-style:normal;font-display:swap;src:url(./Roboto-Medium.BzTpVR6v.ttf)format("truetype")}@font-face{font-family:Roboto;font-weight:700;font-style:normal;font-display:swap;src:url(./Roboto-Bold.0vjaqapF.ttf)format("truetype")}@font-face{font-family:Roboto;font-weight:900;font-style:normal;font-display:swap;src:url(./Roboto-Black.ClahXRed.ttf)format("truetype")}:root{--brand:#e30613;--brand-dark:#b91c1c;--brand-text:#e30613;--brand-soft:#fdeae3;--night:#111827;--bg:#fff0ee;--bg-neutral:#f9fafb;--surface:#fff;--line:#f0e3e0;--text:#241a18;--muted:#8a8581;--ok:#2e9e6b;--ok-bg:#e6f4ec;--warn:#ef7c1a;--warn-bg:#fdf1e3;--err:#b71c1c;--err-bg:#fdeae7;--info:#1565c0;--solar:#f5a623;--grid:#4a90e2;--heat:#f4511e;--shadow-card:0 10px 26px -16px #78281e14, 0 2px 6px -3px #78281e1a;--radius-sm:8px;--radius:12px;--radius-lg:18px;--tap:44px;--control:52px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--font-ui:Roboto, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "Cascadia Code", Consolas, monospace;--type-display-size:72px;--type-display-weight:700;--type-display-line:1.25;--type-headline-size:60px;--type-headline-weight:700;--type-headline-line:1.25;--type-title-size:22px;--type-title-weight:700;--type-title-line:1.25;--type-h2-size:18px;--type-h2-weight:700;--type-h2-line:1.3;--type-body-size:16px;--type-body-weight:400;--type-body-line:1.5;--type-button-size:16px;--type-button-weight:600;--type-button-line:1.25;--type-small-size:13px;--type-small-weight:400;--type-small-line:1.4;--type-label-size:12px;--type-label-weight:700;--type-label-line:1.2;--type-metric-size:44px;--type-metric-weight:300;--type-metric-line:1.1;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-skin=site]{--brand-soft:#fee2e2;--bg:#fff;--bg-neutral:#f9fafb;--line:#e5e7eb;--text:#1f2937;--muted:#6b7280;--radius-sm:4px;--radius:8px;--radius-lg:16px;--shadow-card:0 1px 3px #0000001a, 0 1px 2px #0000000f}:root[data-theme=dark]{--brand:#e30613;--brand-dark:#ff6b63;--brand-text:#ff6b63;--brand-soft:#3a1c18;--night:#111827;--bg:#121212;--bg-neutral:#1c1c1e;--surface:#2a2a2d;--line:#3a3a3e;--text:#f2f2f2;--muted:#a0a0a5;--ok:#4cc38a;--ok-bg:#12301f;--warn:#f0a860;--warn-bg:#33240f;--err:#f07a6b;--err-bg:#3a1814;--info:#64a8f0;--solar:#f5a623;--grid:#6aa8f0;--heat:#ff7043;--shadow-card:0 2px 8px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root{--solar-ink:#3a2a00;--solar-soft:color-mix(in srgb,var(--solar) 22%,var(--surface));--info-soft:color-mix(in srgb,var(--info) 10%,var(--surface));--on-fill:#fff;--line-strong:color-mix(in srgb,var(--text) 16%,var(--surface));--stage:#172230;--stage-2:#101a26;--stage-grid:#ffffff0e;--on-stage:#dfe8f0;--on-stage-dim:#9fb0bf}:root[data-theme=dark]{--on-fill:#0d1b2a}*{box-sizing:border-box}html,body{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.45}.approot{flex-direction:column;height:100dvh;display:flex;overflow:hidden}[hidden]{display:none!important}.topbar{background:var(--surface);border-bottom:1px solid var(--line);z-index:40;flex-wrap:wrap;flex:none;align-items:center;gap:12px;min-height:56px;padding:6px 16px;display:flex;position:relative}.brand{align-items:center;gap:10px;min-width:0;display:flex}.topbar .spacer{flex:1}.proj-inline{min-width:0;line-height:1.15;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:9px;flex-direction:column;align-items:flex-start;padding:3px 8px;display:flex}.proj-inline:hover:not(:disabled){border-color:var(--line-strong);background:var(--bg-neutral)}.proj-inline:disabled{cursor:default}.proj-inline:focus-visible{outline:2px solid var(--info);outline-offset:1px}.proj-inline .pn{white-space:nowrap;text-overflow:ellipsis;max-width:30vw;font-size:13px;font-weight:700;overflow:hidden}.proj-inline .pt{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;text-overflow:ellipsis;max-width:30vw;font-size:10.5px;overflow:hidden}.tabs{background:var(--surface);border-bottom:1px solid var(--line);flex:none;align-items:flex-end;gap:2px;height:42px;padding:0 16px;display:flex}.tab{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:7px;padding:9px 16px;font-size:13px;font-weight:600;display:flex}.tab:hover{color:var(--text)}.tab.on{color:var(--text);border-bottom-color:var(--solar)}.tab svg{width:15px;height:15px}.main{flex:1;min-height:0;position:relative;overflow:hidden}.btn{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--line-strong);cursor:pointer;white-space:nowrap;border-radius:8px;align-items:center;gap:7px;padding:7px 12px;font-size:13px;font-weight:600;transition:background .12s,border-color .12s,transform 40ms;display:inline-flex}.btn:hover{background:var(--bg-neutral);border-color:var(--muted)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:focus-visible{outline:2px solid var(--info);outline-offset:2px}.btn--primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn--primary:hover{background:var(--brand-dark);border-color:var(--brand-dark)}.btn--ghost{background:0 0;border-color:#0000}.btn--ghost:hover{background:var(--bg-neutral)}.btn--sm{padding:5px 9px;font-size:12px}.btn svg{width:15px;height:15px}.seg button:disabled{opacity:.4;cursor:not-allowed}.app{grid-template-rows:minmax(0,1fr);grid-template-columns:290px minmax(0,1fr) 350px;height:100%;display:grid}.panel{background:var(--surface);flex-direction:column;height:100%;min-height:0;display:flex;overflow:hidden}.panel--left{border-right:1px solid var(--line)}.panel--right{border-left:1px solid var(--line)}.panel__scroll{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;flex-direction:column;flex:auto;gap:16px;height:calc(100dvh - 98px);min-height:0;padding:16px;display:flex;overflow-y:scroll}.panel__scroll::-webkit-scrollbar{width:12px}.panel__scroll::-webkit-scrollbar-thumb{background:var(--line-strong);border:3px solid var(--surface);border-radius:8px}.panel__scroll::-webkit-scrollbar-thumb:hover{background:var(--muted)}.panel__scroll::-webkit-scrollbar-track{background:0 0}.panel.ro :is(button,input,select,textarea):not(.roact){opacity:.5;pointer-events:none}.group{flex-direction:column;gap:10px;display:flex}.group__title{text-transform:uppercase;letter-spacing:.09em;color:var(--muted);align-items:center;gap:8px;font-size:11px;font-weight:700;display:flex}.group__title:after{content:"";background:var(--line);flex:1;height:1px}.tools{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.tool{border:1px solid var(--line);background:var(--bg-neutral);cursor:pointer;border-radius:9px;flex-direction:column;align-items:center;gap:3px;padding:7px 3px 5px;transition:all .12s;display:flex;position:relative}.tool:hover{border-color:var(--muted)}.tool svg{width:19px;height:19px;color:var(--muted)}.tool span{font-size:9.5px;font-weight:600;line-height:1}.tool kbd{font-family:var(--font-mono);color:var(--muted);border:1px solid var(--line);background:var(--surface);border-radius:3px;padding:0 2px;font-size:8px;position:absolute;top:3px;right:4px}.tool.active{background:var(--solar-soft);border-color:var(--solar);box-shadow:inset 0 0 0 1px var(--solar)}.tool.active svg,.tool.active span{color:var(--text)}.tool:disabled{opacity:.3;cursor:not-allowed}.tool:disabled:hover{border-color:var(--line)}.seg--mode button{padding:9px 4px;font-size:12.5px}.seg--mode button.on{background:var(--solar);color:var(--solar-ink)}.field{flex-direction:column;gap:4px;display:flex}.field>label,.field>span,label.field>span:first-child{color:var(--muted);font-size:11.5px;font-weight:600}.field .row{gap:8px;display:flex}input[type=number],input[type=text],select{font:inherit;border:1px solid var(--line-strong);background:var(--surface);width:100%;color:var(--text);border-radius:8px;padding:7px 9px;font-size:13px}input[type=number],input[type=text]{font-family:var(--font-mono)}input:focus,select:focus{outline:2px solid var(--info);outline-offset:-1px;border-color:var(--info)}input[type=range]{width:100%;accent-color:var(--solar)}.seg{border:1px solid var(--line-strong);border-radius:8px;display:flex;overflow:hidden}.seg button{font:inherit;background:var(--surface);color:var(--muted);cursor:pointer;border:0;border-right:1px solid var(--line);flex:1;justify-content:center;align-items:center;gap:7px;padding:7px 4px;font-size:12.5px;font-weight:600;display:inline-flex}.seg button:last-child{border-right:0}.seg button.on{background:var(--info);color:var(--on-fill)}.plist{flex-direction:column;gap:7px;display:flex}.pitem{border:1px solid var(--line);background:var(--bg-neutral);cursor:pointer;border-radius:9px;align-items:center;gap:9px;padding:8px 9px;transition:all .12s;display:flex}.pitem:hover{border-color:var(--muted)}.pitem.active{border-color:var(--solar);background:var(--surface);box-shadow:0 0 0 1px var(--solar),var(--shadow-card)}.swatch{border:1px solid #00000026;border-radius:5px;flex:none;width:15px;height:15px}.pitem .nm{flex:1;min-width:0}.pitem .nm input{padding:3px 6px;font-size:12px}.pitem .meta{font-family:var(--font-mono);color:var(--muted);flex:none;font-size:11px}.pitem .x{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:5px;padding:2px 4px;line-height:1}.pitem .x:hover{color:var(--err);background:var(--err-bg)}.acc{border:1px solid var(--line);background:var(--surface);border-radius:10px;overflow:hidden}.acc>summary{cursor:pointer;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);background:var(--bg-neutral);-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:11px 12px;font-size:11px;font-weight:700;list-style:none;display:flex}.acc>summary::-webkit-details-marker{display:none}.acc>summary:after{content:"▸";color:var(--muted);margin-left:auto;font-size:12px;transition:transform .15s}.acc[open]>summary:after{transform:rotate(90deg)}.acc[open]>summary{color:var(--text)}.acc>.acc-body{border-top:1px solid var(--line);flex-direction:column;gap:10px;padding:12px;display:flex}.sub{border:1px dashed var(--line-strong);background:var(--bg-neutral);border-radius:8px}.sub>summary{cursor:pointer;color:var(--muted);-webkit-user-select:none;user-select:none;padding:7px 10px;font-size:11.5px;font-weight:600;list-style:none}.sub>summary::-webkit-details-marker{display:none}.sub>summary:before{content:"＋ ";color:var(--muted)}.sub[open]>summary:before{content:"− "}.sub>.sub-body{flex-direction:column;gap:7px;padding:0 10px 10px;display:flex}.grid2{grid-template-columns:1fr 1fr;gap:8px;display:grid}.grid2 .btn{justify-content:center}.filename{font-family:var(--font-mono);color:var(--muted);background:var(--bg-neutral);border:1px solid var(--line);text-overflow:ellipsis;white-space:nowrap;border-radius:7px;padding:5px 9px;font-size:11px;overflow:hidden}.stage{background:var(--stage);min-width:0;position:relative;overflow:hidden}.board{touch-action:none;cursor:crosshair;background:radial-gradient(120% 120% at 50% 0%,var(--stage) 0%,var(--stage-2) 100%);width:100%;height:100%;display:block}.stage[data-tool=select] .board{cursor:default}.stage[data-tool=pan] .board{cursor:grab}.stage.panning .board{cursor:grabbing}.stage.bgadjust .board{cursor:move}.roofbar{z-index:7;position:absolute;top:14px;left:50%;transform:translate(-50%)}.hud{z-index:5;align-items:center;gap:8px;display:flex;position:absolute;bottom:14px;left:14px}.hud .zbtn{background:color-mix(in srgb,var(--night) 82%,transparent);width:34px;height:34px;color:var(--on-stage);cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid #ffffff1f;border-radius:9px;place-items:center;font-size:18px;font-weight:600;display:grid}.hud .zbtn:hover{background:color-mix(in srgb,var(--on-stage) 14%,var(--night))}.hud .zlvl{font-family:var(--font-mono);color:var(--on-stage-dim);text-align:center;background:color-mix(in srgb,var(--night) 82%,transparent);border:1px solid #ffffff1a;border-radius:8px;min-width:52px;padding:7px 4px;font-size:12px}.status{z-index:6;color:var(--on-stage);background:color-mix(in srgb,var(--night) 90%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;pointer-events:none;text-align:center;border:1px solid #ffffff1a;border-radius:20px;max-width:80%;padding:7px 13px;font-size:12.5px;transition:opacity .25s;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.status.show{opacity:1}.empty{color:var(--on-stage-dim);text-align:center;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:24px;display:flex;position:absolute;inset:0}.empty svg{opacity:.5;width:54px;height:54px}.empty h2{color:var(--on-stage);margin:0;font-size:17px;font-weight:700}.empty p{max-width:340px;margin:0;font-size:13px;line-height:1.6}.stats{grid-template-columns:1fr 1fr;gap:8px;display:grid}.stat{background:var(--bg-neutral);border:1px solid var(--line);border-radius:9px;padding:9px 10px}.stat b{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:20px;font-weight:700;line-height:1.1;display:block}.stat span{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:10.5px}.warnline{color:var(--err);background:var(--err-bg);border:1px solid var(--err);border-radius:8px;align-items:center;gap:8px;padding:8px 10px;font-size:12px;display:flex}.tree{flex-direction:column;gap:8px;display:flex}.pnode{border:1px solid var(--line);background:var(--surface);border-radius:10px;overflow:hidden}.pnode>summary{cursor:pointer;background:var(--bg-neutral);align-items:center;gap:9px;padding:9px 11px;list-style:none;display:flex}.pnode>summary::-webkit-details-marker{display:none}.pnode .pname{font-size:13px;font-weight:700}.pnode .pmeta{font-family:var(--font-mono);color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto;font-size:11.5px}.pnode .pbody{flex-direction:column;gap:8px;padding:8px 11px 10px;display:flex}.ondline{border:1px solid var(--line);background:var(--bg-neutral);border-radius:8px;padding:7px 9px}.ondline .oh{align-items:center;gap:7px;font-size:12px;display:flex}.ondline .oh b{font-family:var(--font-mono)}.ondline .om{color:var(--muted);margin-top:2px;font-size:11px}.tag{text-transform:uppercase;letter-spacing:.04em;background:var(--surface);border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:2px 6px;font-size:9.5px}.snode{align-items:baseline;gap:8px;padding:3px 0 0;font-size:11.5px;display:flex}.snode .sn{font-family:var(--font-mono);color:var(--info);flex:none;font-weight:700}.snode .so{font-family:var(--font-mono);color:var(--muted);word-break:break-word;text-align:right;margin-left:auto;font-size:10.5px}.empty-node{color:var(--muted);font-size:12px;font-style:italic}.tbl{border-collapse:collapse;width:100%;font-size:12.5px}.tbl th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-bottom:1px solid var(--line);background:var(--surface);padding:6px 8px;font-size:10.5px;font-weight:700;position:sticky;top:0}.tbl td{border-bottom:1px solid var(--line);vertical-align:top;padding:7px 8px}.tbl td.num,.tbl th.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:right}.tbl tr.warn td{background:var(--err-bg)}.chip{font-weight:700;font-family:var(--font-mono);align-items:center;gap:6px;display:inline-flex}.chip .swatch{border-radius:4px;width:12px;height:12px}.tblwrap{border:1px solid var(--line);border-radius:10px;overflow:auto}.mini{color:var(--muted);margin:0;font-size:11.5px}.listing{background:var(--bg);height:100%;min-height:0;padding:22px;overflow:auto}.listing .wrap{flex-direction:column;gap:20px;max-width:1180px;margin:0 auto;display:flex}.lcard{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-card);border-radius:12px;padding:16px 18px}.lcard .lh{align-items:center;gap:10px;margin-bottom:12px;display:flex}.lcard h2{margin:0;font-size:14px;font-weight:700}.lcard .lcount{font-family:var(--font-mono);color:var(--muted);font-size:12px}.ltblwrap{overflow-x:auto}.ltbl{border-collapse:collapse;width:100%;font-size:12.5px}.ltbl th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-bottom:2px solid var(--line);white-space:nowrap;padding:8px;font-size:10px;font-weight:700}.ltbl td{border-bottom:1px solid var(--line);vertical-align:middle;padding:5px 8px}.ltbl td.num,.ltbl th.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:right}.ltbl input,.ltbl select{min-width:90px;padding:5px 7px;font-size:12px}.ltbl input.sn{min-width:130px}.ltbl tr.warn td{background:var(--err-bg)}.ltbl .muted{color:var(--muted)}.modal-scrim{background:color-mix(in srgb,var(--night) 50%,transparent);z-index:60;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:14px;width:min(480px,100%);max-height:92vh;padding:22px;overflow:auto;box-shadow:0 24px 70px #00000059}.modal h3{margin:0;font-size:17px;font-weight:700}.modal .group{margin-top:16px}.presets{flex-direction:column;gap:8px;display:flex}.preset{text-align:left;border:1px solid var(--line);background:var(--bg-neutral);cursor:pointer;font:inherit;border-radius:10px;flex-direction:column;gap:1px;padding:10px 12px;transition:all .12s;display:flex}.preset:hover{border-color:var(--solar);background:var(--surface)}.preset b{color:var(--text);font-size:13px}.preset span{color:var(--muted);font-size:11.5px}.lotstr{align-items:center;gap:8px;margin-bottom:8px;display:flex}.lotstr .lbl{width:64px;color:var(--muted);flex:none;font-size:12.5px}.lotstr input{width:80px}.modal-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:20px;display:flex}.ptypes{grid-template-columns:1fr 1fr;gap:8px;display:grid}.ptype{text-align:left;border:1px solid var(--line);background:var(--bg-neutral);cursor:pointer;font:inherit;border-radius:10px;flex-direction:column;gap:2px;padding:11px 12px;display:flex}.ptype:hover{border-color:var(--muted)}.ptype.on{border-color:var(--solar);background:var(--surface);box-shadow:inset 0 0 0 1px var(--solar)}.ptype b{color:var(--text);font-size:13px}.ptype span{color:var(--muted);font-size:11px}.check{align-items:center;gap:8px;margin-top:8px;font-size:12.5px;display:flex}.check input{width:auto}.dbody textarea{width:100%;height:220px;font-family:var(--font-mono);border:1px solid var(--line-strong);resize:vertical;white-space:pre;background:var(--bg-neutral);color:var(--text);border-radius:8px;padding:8px;font-size:11px;overflow:auto}.dbody img{border:1px solid var(--line);border-radius:8px;max-width:100%;display:block}.mob-tabs{display:none}@media (width<=1040px){.app{grid-template-columns:1fr}.panel--left,.panel--right{z-index:55;background:var(--surface);width:min(350px,88vw);transition:transform .22s;position:fixed;top:0;bottom:0;left:0;transform:translate(-105%);box-shadow:0 0 40px #00000040}.panel--right{left:auto;right:0;transform:translate(105%)}.panel--left.open,.panel--right.open{transform:translate(0)}.mob-tabs{gap:8px;display:flex}.scrim{background:color-mix(in srgb,var(--night) 35%,transparent);z-index:50;position:fixed;inset:0}}@media (width<=760px){.topbar{gap:7px;padding:6px 10px}.proj-inline{display:none}.btn.btn--sm{padding:6px 9px}}@page{size:A4 portrait;margin:12mm}@media print{.topbar,.stepbar,.detailbar,.toast,.hud,.dpad,.panel--left,.panel--right{display:none!important}.approot{height:auto;overflow:visible}.main{position:static;overflow:visible}}
