@font-face{font-family:"Archivo";font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(../fonts/archivo-latin-wdth-normal.woff2)format("woff2-variations"),url(../fonts/archivo-latin-wdth-normal.woff2)format("woff2");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}@font-face{font-family:"Archivo";font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(../fonts/archivo-latin-ext-wdth-normal.woff2)format("woff2-variations"),url(../fonts/archivo-latin-ext-wdth-normal.woff2)format("woff2");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}:root{--bg:#E9ECF1;--panel:#FFFFFF;--panel2:#F4F6F9;--ink:#151A26;--muted:#5E6679;--line:#DADFE7;--field:#FFFFFF;--stage:#262A33;--warn:#C2410C;--ok:#15803D;--err:#B91C1C;--on:#FFFFFF;--design:#2F5BEA;--cable:#D6337F;--export:#0E9466;--m:var(--design);--font:"Archivo","PingFang SC","Microsoft YaHei","Noto Sans SC","Helvetica Neue",Arial,system-ui,sans-serif;box-sizing:border-box;color-scheme:light;padding-top:env(safe-area-inset-top,0);padding-bottom:env(safe-area-inset-bottom,0)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#11141B;--panel:#1A1F2A;--panel2:#151A23;--ink:#E5E8EF;--muted:#9AA2B5;--line:#2B3243;--field:#12161F;--stage:#0C0E13;--warn:#FB923C;--ok:#4ADE80;--err:#F87171;--on:#0B0D14;--design:#7392FF;--cable:#F062A5;--export:#3CCB93;color-scheme:dark}}:root[data-theme=dark]{--bg:#11141B;--panel:#1A1F2A;--panel2:#151A23;--ink:#E5E8EF;--muted:#9AA2B5;--line:#2B3243;--field:#12161F;--stage:#0C0E13;--warn:#FB923C;--ok:#4ADE80;--err:#F87171;--on:#0B0D14;--design:#7392FF;--cable:#F062A5;--export:#3CCB93;color-scheme:dark}body[data-mode=design]{--m:var(--design)}body[data-mode=cable]{--m:var(--cable)}body[data-mode=export]{--m:var(--export)}body,html{height:100%}html{scroll-padding-top:env(safe-area-inset-top,0)}*,::after,::before{box-sizing:inherit}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:14px;line-height:1.45;display:grid;grid-template-rows:auto 1fr;font-variant-numeric:tabular-nums}button,input,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--m);outline-offset:2px}.brand,.top{align-items:center}.top{display:grid;grid-template-columns:auto 1fr auto;gap:14px;padding:0 14px;height:58px;background:var(--panel);border-bottom:1px solid var(--line)}.brand{display:flex;gap:10px;white-space:nowrap;font-size:21px;font-stretch:70%}.brand b{font-weight:850;letter-spacing:.02em}.brand span.pm{font-weight:500}.logo{display:grid;grid-template-columns:repeat(3,7px);grid-template-rows:repeat(2,7px)}.logo i,body[data-mode=cable] .pane[data-pane=cable],body[data-mode=design] .pane[data-pane=design],body[data-mode=export] .pane[data-pane=export]{display:block}.logo i:nth-child(1){background:#2f5bea}.logo i:nth-child(2){background:#d6337f}.logo i:nth-child(3){background:#0e9466}.logo i:nth-child(4){background:#f2a516}.logo i:nth-child(5){background:#7c4ddb}.logo i:nth-child(6){background:#10a3b8}.modes{justify-self:center;display:flex;gap:4px;background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:4px}.mode,.mode .n,.pchip svg{color:var(--muted)}.file,.mode,.pchip{display:flex;align-items:center}.mode{border:0;background:0 0;border-radius:7px;padding:7px 16px 7px 10px;cursor:pointer;gap:8px;font-weight:600}.mode .n{width:22px;height:22px;border-radius:6px;display:grid;place-items:center;font-size:12px;font-weight:800;background:var(--line)}.mode:hover{color:var(--ink)}.mode[aria-selected=true],.theme button[aria-pressed=true]{background:var(--panel);color:var(--ink);box-shadow:0 0 0 1px var(--line)}.mode[data-m=design][aria-selected=true] .n{background:var(--design);color:var(--on)}.mode[data-m=cable][aria-selected=true] .n{background:var(--cable);color:var(--on)}.mode[data-m=export][aria-selected=true] .n{background:var(--export);color:var(--on)}.file,.pchip{gap:6px}.pchip{gap:8px;border:1px solid var(--line);background:var(--field);border-radius:8px;padding:5px 10px;cursor:pointer;max-width:260px;min-width:0}.pchip:hover{border-color:var(--muted)}.pchip .pk{font-size:11px;color:var(--muted)}.pchip .pv{font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pchip .pv.empty{color:var(--warn);font-weight:600}.pchip svg{width:14px;height:14px;flex:none}.projsec{background:color-mix(in srgb,var(--m) 6%,transparent)}.plabel{font-size:13px;font-weight:700;color:var(--ink)}.pinput{font-size:16px!important;font-weight:650;padding:10px 12px!important;border-width:1.5px!important}.pinput:placeholder-shown{border-color:var(--m)!important}.pname{border:1px solid transparent;background:0 0;border-radius:6px;padding:6px 8px;width:190px;font-weight:600}.pname:hover{border-color:var(--line)}.pname:focus{border-color:var(--m);outline:0;background:var(--field)}.lang{background:var(--field);border-radius:7px;padding:6px;font-size:13px;cursor:pointer}.btn,.lang,.theme{border:1px solid var(--line)}.theme{display:flex;background:var(--panel2);border-radius:999px;padding:3px;gap:2px}.theme button{border:0;background:0 0;border-radius:999px;width:30px;height:26px;cursor:pointer;display:grid;place-items:center;color:var(--muted)}.theme svg{width:15px;height:15px}.btn{background:var(--field);border-radius:7px;padding:7px 12px;cursor:pointer;white-space:nowrap}.btn:hover{border-color:var(--muted)}.btn.primary{background:var(--m);color:var(--on);border-color:var(--m);font-weight:650}.btn.primary:hover{filter:brightness(1.07)}.btn.sm{padding:4px 10px;font-size:13px}.btn.ghost{border-color:transparent;background:0 0;color:var(--muted)}.btn.ghost:hover{color:var(--ink);background:var(--panel2)}.btn.wide{width:100%;padding:10px}.btn.go{background:color-mix(in srgb,var(--ok) 14%,var(--field));border-color:color-mix(in srgb,var(--ok) 40%,var(--line));color:var(--ok);font-weight:650}.btn.go:hover{background:color-mix(in srgb,var(--ok) 22%,var(--field))}.btn.danger{background:color-mix(in srgb,var(--err) 12%,var(--field));border-color:color-mix(in srgb,var(--err) 38%,var(--line));color:var(--err);font-weight:600}.btn.danger:hover{background:color-mix(in srgb,var(--err) 20%,var(--field))}.app{display:grid;grid-template-columns:320px minmax(0,1fr) 320px;min-height:0}.left,.right{overflow-y:auto;background:var(--panel);min-height:0}.left{border-right:1px solid var(--line)}.right{border-left:1px solid var(--line)}.pane,body[data-mode=export] #listSec{display:none}.pane-head{padding:16px 16px 6px;border-top:3px solid var(--m)}.pane-head h1{margin:0;font-size:22px;font-weight:800;font-stretch:72%;line-height:1.1}.pane-head p{margin:4px 0 0;color:var(--muted);font-size:13px}.sec{padding:14px 16px 16px;border-bottom:1px solid var(--line)}.sec:last-child{border-bottom:0}.sec h2{margin:0 0 10px;font-size:15px;font-weight:750;display:flex;align-items:baseline;justify-content:space-between;gap:8px}.sec h2 small{font-weight:500}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.field,.sec h2 small{font-size:12px;color:var(--muted)}.field{display:flex;flex-direction:column;gap:3px;min-width:0}.field input,.field select{background:var(--field);border:1px solid var(--line);border-radius:6px;padding:7px 8px;color:var(--ink);width:100%;min-width:0;font-size:14px}.field input:disabled{opacity:.6}.full{grid-column:1/-1}.note,.readout{color:var(--muted)}.readout{margin-top:10px;padding:10px 12px;border-radius:8px;background:var(--panel2);font-size:13px}.insp-empty b,.readout b{display:block;color:var(--ink)}.readout b{font-size:20px;font-weight:750;font-stretch:85%}.note{font-size:12px;margin:8px 0 0}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.chkline,.color{display:flex;gap:8px;margin-top:8px}.color{align-items:center;font-size:12px;color:var(--muted)}.color input{width:34px;height:26px;border:1px solid var(--line);border-radius:4px;padding:0;background:0 0;cursor:pointer}.chkline{align-items:flex-start;font-size:13px;cursor:pointer}.chkline input{margin-top:3px;accent-color:var(--m)}.w{color:var(--warn)}.g{color:var(--ok)}.opt span,.stat span,.tag{font-size:11px;color:var(--muted)}.list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;max-height:34vh;overflow-y:auto}.empty{color:var(--muted);font-size:13px;padding:4px 0}.it{display:grid;grid-template-columns:14px 1fr auto;gap:8px;align-items:center;padding:6px 8px;border-radius:7px;cursor:pointer}.it:hover,.ports tr[data-sid]:hover td{background:var(--panel2)}.it.sel{background:color-mix(in srgb,var(--m) 14%,transparent)}.it .chip{width:14px;height:14px;border-radius:3px;background:linear-gradient(135deg,var(--c1) 50%,var(--c2) 50%)}.it .nm{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.insp-empty,.it .mt,.opt .pp small{font-size:11px;color:var(--muted)}.it .mt{text-align:right;white-space:nowrap}.insp-empty{padding:18px 16px;font-size:13px}.insp-empty b{font-size:15px;margin-bottom:4px}.nameinp,.nums input,.nums2 input,.rot input[type=number]{border:1px solid var(--line);background:var(--field);width:100%}.nameinp{border-radius:7px;padding:8px 10px;font-weight:700;font-size:16px}.swatches{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.seg button,.swatch{border-radius:6px;cursor:pointer}.swatch{aspect-ratio:1.5;border:2px solid transparent;background:linear-gradient(135deg,var(--c1) 50%,var(--c2) 50%);padding:0}.swatch[aria-pressed=true]{border-color:var(--ink);box-shadow:0 0 0 2px var(--panel) inset}.nums{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.nums label,.nums2 label,.rot label{display:flex;flex-direction:column;font-size:11px;color:var(--muted)}.nums2,.rot{display:grid;grid-template-columns:1fr 1fr;gap:8px 10px}.nums input,.nums2 input,.rot input[type=number]{border-radius:6px;padding:6px 8px;min-width:0;font-size:13px}.nums input,.rot input[type=number]{padding:5px 6px}.rot{grid-template-columns:1fr 60px;gap:8px;align-items:end}.rot input[type=range]{width:100%;accent-color:var(--m)}.logo-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.logo-row img,.seg{border:1px solid var(--line)}.logo-row img{width:48px;height:32px;object-fit:contain;background:repeating-conic-gradient(#8883 0 25%,transparent 0 50%)0 0/8px 8px;border-radius:5px}.logo-row input[type=range]{flex:1;min-width:80px;accent-color:var(--m)}.seg{display:grid;grid-template-columns:1fr 1fr;background:var(--panel2);border-radius:8px;padding:3px;gap:3px}.seg button{border:0;background:0 0;padding:6px;color:var(--muted)}.seg button[aria-pressed=true]{background:var(--panel);color:var(--ink);font-weight:650;box-shadow:0 0 0 1px var(--line)}.opts{display:flex;flex-direction:column;gap:5px;margin-top:10px}.opt{text-align:left;border:1px solid var(--line);background:var(--field);border-radius:8px;padding:8px 10px;cursor:pointer;display:grid;grid-template-columns:1fr auto;gap:2px 8px}.opt:hover{border-color:var(--muted)}.opt.cur{border-color:var(--m);box-shadow:inset 0 0 0 1px var(--m)}.opt b,.seg button{font-size:13px}.opt .pp{grid-row:1/3;grid-column:2;align-self:center;font-size:18px;font-weight:800;font-stretch:80%;color:var(--ink)}.opt .pp small{font-weight:500;margin-left:2px}.best{display:inline-block;font-size:10px;font-weight:700;color:var(--on);background:var(--m);border-radius:4px;padding:0 5px;margin-left:6px;vertical-align:1px}.stats{display:grid;grid-template-columns:1fr 1fr;gap:8px}.compare,.stat{border-radius:8px}.stat{background:var(--panel2);padding:8px 10px}.stat span{font-size:12px;display:block}.stat b{font-size:18px;font-weight:750;font-stretch:85%}.compare{margin-top:10px;border:1px dashed var(--m);padding:10px 12px;font-size:13px}.compare b{font-size:15px}.ports{width:100%;border-collapse:collapse;font-size:12px}.ports td,.ports th{border-bottom:1px solid var(--line)}.ports th{text-align:left;color:var(--muted);font-weight:500;padding:3px 4px}.ports td{padding:5px 4px;vertical-align:top}.ports td:last-child,.ports th:last-child{text-align:right}.ports tr[data-sid]{cursor:pointer}.bar,.dot{border-radius:2px}.dot{display:inline-block;width:9px;height:9px;margin-right:5px}.bar{height:4px;background:var(--panel2);overflow:hidden;margin-top:3px;min-width:44px}.bar i{display:block;height:100%}.card,.prof{border:1px solid var(--line)}.card{border-radius:10px;padding:14px;margin:12px 16px;display:flex;flex-direction:column;gap:8px}.card h3{margin:0;font-size:16px;font-weight:750}.card p{margin:0;font-size:13px;color:var(--muted)}.prof{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;align-items:start;border-radius:8px;padding:9px 10px;cursor:pointer}.prof:has(input:checked){border-color:var(--m);background:color-mix(in srgb,var(--m) 7%,transparent)}.prof input{grid-row:1/3;margin-top:3px}.prof b{font-size:13px;letter-spacing:.04em}.prof span{font-size:12px}.prof .view{font-size:10px;font-weight:700;border-radius:4px;padding:1px 6px;margin-left:6px;color:#fff;letter-spacing:0;vertical-align:1px}.v-front{background:#2f5bea}.v-rear{background:#e0621a}.radio label{display:flex;gap:8px;align-items:center;cursor:pointer}.chk input,.prof input,.radio input{accent-color:var(--m)}.ov dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0;font-size:13px}.ov dt,.prof span{color:var(--muted)}.ov dd{margin:0;font-weight:600;text-align:right}.checks,.radio{display:flex;flex-direction:column;gap:6px;font-size:13px}.stage-wrap{display:grid;grid-template-rows:auto 1fr auto;min-width:0;min-height:0;background:var(--stage)}.toolbar{display:flex;gap:4px;align-items:center;padding:7px 10px;flex-wrap:wrap;background:var(--panel);border-bottom:1px solid var(--line)}.toolbar .sep{width:1px;height:22px;background:var(--line);margin:0 6px}.tb{border:1px solid transparent;background:0 0;border-radius:6px;padding:5px 9px;cursor:pointer;min-width:32px;color:var(--ink)}.tb:hover{background:var(--panel2);border-color:var(--line)}.tb:disabled{opacity:.35;cursor:default;background:0 0;border-color:transparent}.zoom{min-width:48px;text-align:center;font-size:13px;color:var(--muted)}.chk,.eseg button{border-radius:6px;cursor:pointer;color:var(--muted);display:flex;align-items:center;gap:5px}.chk{font-size:13px;user-select:none;padding:4px 6px}.chk:hover{background:var(--panel2);color:var(--ink)}.chk.cablechk,.chkline.cabline{font-weight:650;border:1px solid var(--line)}.chk.cablechk{color:var(--ink)}.chk.cablechk input,.chkline.cabline input{accent-color:var(--cable)}.chkline.cabline{border-radius:6px;padding:4px 8px;align-self:flex-start}.spacer{flex:1}.canvas-box{position:relative;min-height:0}#fx,#stage{position:absolute;inset:0;width:100%;height:100%;display:block}#stage{touch-action:none}#fx{pointer-events:none}.editbar{position:absolute;left:50%;top:12px;transform:translateX(-50%);display:none;gap:10px;align-items:center;background:var(--panel);color:var(--ink);border:1px solid var(--m);border-radius:10px;padding:8px 10px 8px 14px;font-size:13px;box-shadow:0 8px 28px rgba(0,0,0,.35);max-width:calc(100% - 24px);flex-wrap:wrap}.editbar.on,.eseg{display:flex}.editbar .msg{flex:1 1 220px;min-width:180px}.eseg{gap:2px;background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:2px}.eseg button{border:0;background:0 0;padding:5px 9px;font-size:12.5px}.eseg button[aria-pressed=true]{background:var(--m);color:var(--on);font-weight:650}.eseg svg,.formbtns svg{width:16px;height:16px}.egroup,.formbtns{display:flex;gap:6px}.egroup{align-items:center;flex-wrap:wrap}.egroup .lb{font-size:11px;color:var(--muted)}.formbtns{flex-direction:column;margin-top:8px}.formbtns .btn{text-align:left;display:flex;align-items:center;gap:8px}.formbtns svg{flex:none}.legend{position:absolute;right:12px;top:12px;background:rgba(12,14,19,.8);color:#e5e8ef;border-radius:8px;padding:8px 10px;font-size:12px;display:none;max-width:260px;pointer-events:none}.legend b,.legend.on{display:block}.legend b{margin-bottom:4px}.statusbar{display:flex;gap:18px;align-items:center;padding:7px 14px;background:var(--panel);border-top:1px solid var(--line);font-size:12px;color:var(--muted);flex-wrap:wrap;min-height:34px}.statusbar b{color:var(--ink);font-weight:700}.statusbar .warnchip{color:var(--warn);font-weight:600}.statusbar .okchip{color:var(--ok);font-weight:600}.statusbar .push{margin-left:auto}.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0));transform:translateX(-50%) translateY(20px);opacity:0;background:var(--ink);color:var(--panel);padding:9px 14px;border-radius:8px;font-size:13px;transition:opacity .2s,transform .2s;pointer-events:none;z-index:10;max-width:90vw}.toast.on{opacity:1;transform:translateX(-50%) translateY(0)}@media (max-width:1240px){.app{grid-template-columns:290px minmax(0,1fr) 290px}.pname{width:130px}}@media (max-width:1040px){.top,body{height:auto}body{display:block}.top{grid-template-columns:1fr;padding:10px 12px;gap:8px}.modes{justify-self:stretch}.mode{flex:1;justify-content:center}.file{flex-wrap:wrap}.pchip{flex:1;max-width:none}.app{display:flex;flex-direction:column}.stage-wrap{order:-1;height:64vh}.left,.right{border:0;overflow:visible;border-top:1px solid var(--line)}.list{max-height:none}}@media (prefers-reduced-motion:reduce){.toast{transition:none}}