/* Gang sheet builder */
.builder{display:grid;grid-template-columns:400px 1fr;gap:24px;padding-top:28px;padding-bottom:120px;align-items:start}
@media (max-width:980px){.builder{grid-template-columns:1fr}}
.panel{display:flex;flex-direction:column;gap:16px}
.blk{background:var(--ink-2);border:1px solid var(--line);border-radius:var(--r);padding:18px;display:flex;flex-direction:column;gap:12px}
.blk-h{font-weight:900;font-size:19px;display:flex;align-items:center;gap:10px}
.num{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--m);font-size:16px}
.blk:nth-child(2) .num{background:var(--c);color:var(--ink)}
.blk:nth-child(3) .num{background:var(--y);color:var(--ink)}
.width-pick{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.wopt{display:flex;flex-direction:column;gap:2px;padding:14px;border-radius:14px;border:2px solid var(--line);background:var(--ink-3);cursor:pointer;color:#fff;font:inherit;text-align:left}
.wopt b{font-size:20px;font-weight:900}
.wopt small{color:var(--text-2);font-weight:600;font-size:13px}
.wopt.on{border-color:var(--c);box-shadow:var(--glow-c)}
.wopt.wide.on{border-color:var(--y);box-shadow:0 0 0 1px rgba(255,223,0,.6),0 8px 30px rgba(255,223,0,.2)}
.wopt.wide b{color:var(--y)}
.drop{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;padding:22px 14px;border:2px dashed #3a3a46;border-radius:14px;text-align:center;cursor:pointer;transition:.15s}
.drop:hover,.drop.over{border-color:var(--c);background:rgba(0,173,239,.06)}
.drop input{position:absolute;inset:0;opacity:0;cursor:pointer}
.drop-ic{width:52px;height:52px;border-radius:50%;background:var(--c);color:var(--ink);display:grid;place-items:center;font-size:24px;font-weight:900}
.drop b{font-size:19px}
.drop small{color:var(--text-3);font-weight:600}
.items{display:flex;flex-direction:column;gap:10px}
.item{display:grid;grid-template-columns:64px 1fr;gap:12px;padding:12px;border-radius:14px;background:var(--ink-3);border:2px solid transparent}
.item.sel{border-color:var(--c)}
.item .th{width:64px;height:64px;border-radius:10px;background:repeating-conic-gradient(#2c2c35 0 25%,#202027 0 50%) 0 0/12px 12px;display:grid;place-items:center;overflow:hidden}
.item .th img{max-width:100%;max-height:100%}
.item .nm{font-weight:800;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.item .ctrls{display:flex;gap:8px;margin-top:6px;align-items:end;flex-wrap:wrap}
.item .ctrls label{display:flex;flex-direction:column;gap:2px;font-size:12px;font-weight:700;color:var(--text-3)}
.item .ctrls input{min-height:42px;width:68px;padding:0 10px;font-size:16px}
.item .x{background:none;border:0;color:var(--text-3);font-size:22px;cursor:pointer;min-height:42px;padding:0 6px}
.light{display:flex;gap:8px;align-items:flex-start;font-size:14px;font-weight:700;margin-top:8px;line-height:1.35}
.light i{flex:0 0 12px;height:12px;border-radius:50%;margin-top:3px}
.light.g i{background:var(--ok);box-shadow:0 0 10px var(--ok)} .light.g{color:#9af0c1}
.light.y i{background:var(--warn);box-shadow:0 0 10px var(--warn)} .light.y{color:#ffd58a}
.light.r i{background:var(--bad);box-shadow:0 0 10px var(--bad)} .light.r{color:#ff9aa4}
.fix{background:none;border:1px solid currentColor;color:inherit;border-radius:8px;font:800 13px var(--font);padding:4px 8px;margin-left:4px;cursor:pointer}
.row2{display:flex;gap:10px;align-items:end}
.row2 .btn{flex:1}
.chk{display:flex;gap:10px;align-items:center;font-weight:700;font-size:15px;cursor:pointer}
.chk input{width:22px;height:22px;min-height:0;accent-color:var(--c)}
.hint{color:var(--text-3);font-size:14px}
.muted{color:var(--text-3);font-weight:600}

.stage{position:sticky;top:88px;display:flex;flex-direction:column;gap:14px}
@media (max-width:980px){.stage{position:static}}
.stage-top{display:flex;justify-content:space-between;align-items:center;font-size:18px}
.zoom{display:flex;gap:8px}
.sheet-scroll{background:#0b0b0d;border:1px solid var(--line);border-radius:var(--r);padding:16px;max-height:62vh;overflow:auto;-webkit-overflow-scrolling:touch}
.sheet{position:relative;margin:0 auto;background:repeating-conic-gradient(#25252c 0 25%,#1c1c21 0 50%) 0 0/20px 20px;border-radius:4px;box-shadow:0 0 0 1px #34343f,0 0 40px rgba(0,173,239,.12);touch-action:none}
.sheet .empty{position:absolute;inset:0;display:grid;place-items:center;text-align:center;color:var(--text-3);font-weight:700;padding:20px}
.ruler{position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px);}
.pc{position:absolute;cursor:grab;outline:1px dashed rgba(255,255,255,.25);touch-action:none;user-select:none;-webkit-user-select:none}
.pc img{width:100%;height:100%;pointer-events:none;-webkit-user-drag:none}
.pc.sel{outline:2px solid var(--c);box-shadow:0 0 18px rgba(0,173,239,.5);z-index:2}
.pc.bad{outline:2px solid var(--bad);box-shadow:0 0 18px rgba(255,77,94,.6)}
.pc .tag{position:absolute;left:0;top:-22px;background:var(--c);color:var(--ink);font-size:11px;font-weight:800;padding:2px 6px;border-radius:6px;white-space:nowrap;display:none}
.pc.sel .tag{display:block}
.warn-box{background:rgba(255,77,94,.1);border:1px solid rgba(255,77,94,.4);color:#ff9aa4;border-radius:12px;padding:12px 14px;font-weight:700;font-size:15px}
.summary{background:var(--ink-2);border:1px solid var(--line);border-radius:var(--r);padding:18px;display:flex;flex-direction:column;gap:10px}
.sum-row{display:flex;justify-content:space-between;gap:12px;color:var(--text-2);font-weight:600}
.sum-row b{color:#fff}
.sum-row.total{font-size:22px;border-top:1px solid var(--line);padding-top:10px;margin-top:4px}
.sum-row.total b{font-size:30px;font-weight:900}
.mob-only{display:none}
@media (max-width:980px){.mob-only{display:block}.summary .btn-m{display:none}}
