:root{--font-mono: ui-monospace, "Cascadia Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;--err: #f87171;--ok-bg: rgba(34, 197, 94, .14);--ok-fg: #86efac;--drop-border: #57534e}:root[data-theme=light]{--err: #b91c1c;--ok-bg: rgba(22, 163, 74, .12);--ok-fg: #15803d;--drop-border: #b8b0a2}body.toolbody{background:var(--desk)}.toolpage{height:100%;display:flex;flex-direction:column}.toolbar-top{height:56px;flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 20px;background:var(--surface);border-bottom:1px solid var(--border)}.toolbar-top .left{display:flex;align-items:center;gap:12px;min-width:0}.toolbar-top .right{display:flex;align-items:center;gap:8px}.tool-title{font-weight:500}.help{width:34px;height:34px;border-radius:999px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-family:var(--font-display);font-size:17px;cursor:pointer}.tool-body{flex:1;min-height:0;display:flex}.tool-main{flex:1;min-width:0;overflow-y:auto}.tool-col{width:min(760px,100%);margin:0 auto;padding:32px 16px 40px;box-sizing:border-box;display:flex;flex-direction:column;gap:18px;container-type:inline-size}.tool-intro h1{font-size:34px}.tool-intro p{margin:6px 0 0;font-size:15px}.drop{display:flex;align-items:center;justify-content:center;gap:12px;min-height:64px;padding:10px 16px;border:1.5px dashed var(--drop-border);border-radius:14px;background:var(--surface);color:var(--text);font:inherit;font-size:14px;cursor:pointer;text-align:center;flex-wrap:wrap}.drop:hover{border-color:var(--accent)}.drop.over{border-color:var(--accent);background:var(--sel-bg)}.drop svg{color:var(--muted);flex:none}.drop-main{font-weight:500}.drop.big{min-height:170px;flex-direction:column;gap:6px}.drop.big .drop-main{font-family:var(--font-display);font-size:22px;font-weight:500}.files{display:flex;flex-direction:column;gap:8px}.range-hint{margin:0;font-size:12px;color:var(--muted)}.range-hint code,.mono{font-family:var(--font-mono)}.range-hint code{color:var(--text)}.frow{display:grid;grid-template-columns:22px 60px minmax(0,1fr) 190px 34px;grid-template-areas:"handle thumb meta range move" "handle thumb meta range del";column-gap:14px;row-gap:2px;align-items:center;padding:12px 14px;background:var(--surface);border:1px solid var(--border);border-radius:12px}.frow.dragging{opacity:.5}.frow.over-before{box-shadow:0 -3px 0 0 var(--accent)}.frow.over-after{box-shadow:0 3px 0 0 var(--accent)}.handle{grid-area:handle;color:var(--muted);font-size:18px;text-align:center;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.fthumb{grid-area:thumb;position:relative;width:60px;height:78px;background:#fff;border-radius:3px;overflow:hidden;box-shadow:0 2px 6px #00000059;display:flex;flex-direction:column}.fthumb .band{height:6px;flex:none}.fthumb img{flex:1;min-height:0;width:100%;object-fit:contain;display:block}.ftag{position:absolute;right:3px;bottom:3px;padding:0 3px;border-radius:2px;font-family:var(--font-mono);font-size:10px;font-weight:600;color:#44403c;background:#ffffffe6}.fmeta{grid-area:meta;display:flex;flex-direction:column;gap:4px;min-width:0}.fname{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fsub{font-size:12px;color:var(--muted)}.ferr{font-size:12px;color:var(--err)}.frange{grid-area:range;display:flex;flex-direction:column;gap:4px;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}.frange input{text-transform:none;letter-spacing:0;font-family:var(--font-mono);font-size:13px}.frange input.bad{border-color:var(--err)}.fmove{grid-area:move;display:flex;flex-direction:column;gap:2px}.fdel{grid-area:del}.frow .fmove .btn,.frow .fdel{width:30px;height:26px;padding:0;font-size:15px}.frow .fdel{color:var(--muted);font-size:17px}.frow .btn:disabled{opacity:.3}.frow.locked .handle{cursor:default;opacity:.35}@container (max-width: 620px){.frow{grid-template-columns:40px minmax(0,1fr) auto;grid-template-areas:"thumb meta del" "range range move";column-gap:12px;row-gap:10px;padding:12px}.handle{display:none}.fthumb{width:40px;height:52px}.fthumb .band{height:5px}.fmove{flex-direction:row;gap:8px;align-self:end}.frow .fmove .btn{width:44px;height:40px;border:1px solid var(--border);background:var(--bg)}.frow .fdel{justify-self:end;width:40px;height:40px;font-size:20px}.frange input{height:40px;font-size:14px}}@media(pointer:fine){@container (max-width: 620px){.frow{grid-template-areas:"thumb meta del" "handle range move"}.handle{display:flex;align-items:center;justify-content:center;align-self:end;height:40px}}}.vbar{display:flex;align-items:flex-end;justify-content:space-between;gap:8px;border-bottom:1px solid var(--border)}.vtabs{display:flex;gap:4px}.vundo{display:flex;gap:6px;padding-bottom:6px;margin-left:auto}.vundo .btn:disabled{opacity:.35}.vtab{height:42px;padding:0 16px;margin-bottom:-1px;border:none;border-bottom:2px solid transparent;background:transparent;color:var(--muted);font:inherit;font-size:14px;font-weight:600;display:inline-flex;align-items:center;gap:8px;cursor:pointer}.vtab:hover{color:var(--text)}.vtab[aria-selected=true]{color:var(--text);border-bottom-color:var(--accent)}.vcount{min-width:22px;height:20px;padding:0 6px;border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:12px;font-weight:500;display:inline-flex;align-items:center;justify-content:center}.view{display:flex;flex-direction:column;gap:12px;position:relative}.note{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--drop-border);border-radius:10px;background:var(--surface);font-size:13px;line-height:1.45}.note svg{flex:none;margin-top:1px;color:var(--accent)}.linkbtn{padding:0;border:none;background:transparent;color:var(--sel);font:inherit;font-weight:500;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.ptools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ptools .btn{font-size:13px}.ptools .btn:disabled{opacity:.4}.pselall{padding:0 12px 0 10px}.psel-count{font-size:13px;color:var(--muted);min-width:88px}.premove{color:var(--err)}.cbox{width:16px;height:16px;border-radius:4px;border:1.5px solid var(--muted);flex:none;display:inline-flex;align-items:center;justify-content:center;color:#fff}.cbox svg{display:none}.all .cbox,.some .cbox{background:var(--accent);border-color:var(--accent)}.all .cbox .ck,.some .cbox .dash{display:block}.phint{margin:0;min-height:20px;font-size:13px;color:var(--muted);display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}.hint-touch{display:none}@media(pointer:coarse){.hint-mouse{display:none}.hint-touch{display:inline}}.pempty{margin:0;padding:24px;text-align:center;color:var(--muted);border:1px solid var(--border-soft);border-radius:12px}.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:14px}.pcard{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 4px 6px;border-radius:12px;user-select:none;-webkit-user-select:none}.pcard.sel{background:var(--sel-bg);box-shadow:0 0 0 2px var(--accent)}.pcard.moving{opacity:.35}.pthumb{width:116px;height:116px;padding:0;border:none;border-radius:6px;background:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer}.pthumb:focus-visible{outline:2px solid var(--sel);outline-offset:2px}.pimg{display:block;max-width:112px;max-height:112px;background:#fff;border-top:5px solid transparent;box-shadow:0 2px 6px #00000059;transition:transform .18s ease;-webkit-user-drag:none}.pph{width:84px;height:108px;border-radius:3px;background:#fff;opacity:.85}.pcard:not(.loaded) .pimg{display:none}.pcard.loaded .pph{display:none}.pcard .cbox{position:absolute;top:5px;left:4px;width:20px;height:20px;border-radius:5px;background:var(--surface);border-color:var(--muted);pointer-events:none}.pcard.sel .cbox{background:var(--accent);border-color:var(--accent)}.pcard.sel .cbox .ck{display:block}.pacts{position:absolute;top:4px;right:4px;display:none;gap:4px}.pact{width:28px;height:28px;padding:0;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--text);display:inline-flex;align-items:center;justify-content:center;font:inherit;font-size:16px;line-height:1;cursor:pointer;box-shadow:0 2px 6px #00000040}.pact:hover{background:var(--surface-2)}.pact.pdel{color:var(--err)}#dlgReset{width:min(480px,94vw)}.dlg-start:focus{outline:none}@media(hover:hover)and (pointer:fine){.pcard:hover .pacts{display:flex}}body.pdragging .pacts{display:none!important}body.pdragging,body.pdragging *{cursor:grabbing!important}.plabel{display:flex;align-items:center;gap:6px;font-size:12px;white-space:nowrap}.ppos{font-weight:600}.pdot{width:7px;height:7px;border-radius:999px;flex:none}.ptag{font-family:var(--font-mono);color:var(--muted)}.pturn{color:var(--sel)}.pturn:empty{display:none}.pdrop{position:absolute;width:4px;border-radius:2px;background:var(--accent);pointer-events:none;z-index:2}.view.locked .pgrid{pointer-events:none;opacity:.7}.pbar{display:none}.tool-out{width:380px;flex:none;display:flex;flex-direction:column;min-height:0;background:var(--surface);border-left:1px solid var(--border)}.out-head{padding:20px 20px 12px;display:flex;flex-direction:column;gap:4px}.out-total{font-family:var(--font-display);font-size:30px;font-weight:500}.out-scroll{flex:1;min-height:0;overflow-y:auto;padding:4px 20px 16px}.tiles{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.tile{display:flex;flex-direction:column;align-items:center;gap:4px;padding:2px 0;border:none;border-radius:6px;background:transparent;color:inherit;font:inherit;cursor:pointer}.tile-box{width:60px;height:60px;display:flex;align-items:center;justify-content:center}.tile-ph{width:44px;height:57px;border-radius:2px;background:#fff;opacity:.85}.tile img{display:block;max-width:56px;max-height:56px;background:#fff;border-top:4px solid transparent;box-shadow:0 2px 5px #0006;transition:transform .18s ease}.tile:not(.loaded) img{display:none}.tile.loaded .tile-ph{display:none}.tile.sel img,.tile.sel .tile-ph{box-shadow:0 0 0 2px var(--accent)}.tile-label{font-family:var(--font-mono);font-size:10px;color:var(--muted);white-space:nowrap}.tiles-empty{margin:8px 0 0}.out-foot{padding:16px 20px 20px;border-top:1px solid var(--border-soft);display:flex;flex-direction:column;gap:10px}.btn.big{height:44px;font-size:15px;border-radius:10px}.done{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:10px;background:var(--ok-bg);color:var(--ok-fg);font-size:13px}.done svg{flex:none}.status{font-size:13px;color:var(--muted)}.status:empty{display:none}.status.err{color:var(--err)}.mbar{display:none}.help-body p{margin:8px 0;line-height:1.5}.help-body code{font-family:var(--font-mono)}@media(min-width:761px)and (max-width:1100px){.tool-out{width:300px}.out-head,.out-foot,.out-scroll{padding-left:16px;padding-right:16px}.tiles{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:760px){.toolpage{height:auto;min-height:100%;padding-bottom:calc(96px + env(safe-area-inset-bottom))}.toolbar-top{padding:0 14px}.tool-body{flex-direction:column}.tool-main{overflow:visible}.tool-col{padding:18px 16px 8px;gap:14px}.tool-intro h1{font-size:28px}.tool-intro p{font-size:14px}.tool-out{width:auto;border-left:none;background:transparent}.out-head{padding:6px 16px 8px}.out-total,.out-sub{display:none}.out-scroll{overflow-x:auto;overflow-y:hidden;padding:0 16px 8px}.tiles{display:flex;gap:8px}.tile{flex:none}.tile-box{width:44px;height:44px}.tile img{max-width:40px;max-height:40px;border-top-width:3px}.tile-ph{width:32px;height:42px}.tile-label{font-size:9px}.ptools .psel-count,.ptools .psep,.ptools .pact-desk{display:none}.ptools .btn{height:40px}.ptools .btn.icon{width:40px}.pgrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.pthumb{width:100px;height:100px}.pimg{max-width:96px;max-height:96px}.pph{width:72px;height:94px}body.picking .mbar{display:none}body.picking .toolpage{padding-bottom:calc(136px + env(safe-area-inset-bottom))}body.picking.toolbody .toast{bottom:calc(132px + env(safe-area-inset-bottom))}body.picking .pbar{display:flex;flex-direction:column;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:10;padding:10px 12px calc(14px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--border);box-shadow:0 -8px 20px #00000040}.pbar-head{display:flex;align-items:center;justify-content:space-between;font-weight:600}.pbar-head .linkbtn{height:32px;padding:0 8px;text-decoration:none}.pbar-acts{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}.pbar-acts .btn{height:54px;padding:0;flex-direction:column;gap:4px;font-size:11px;font-weight:500;border-radius:10px;background:var(--bg)}.pbar-acts .premove{color:var(--err)}.out-foot{border-top:none;padding:8px 16px 16px}.out-foot .btn-merge{display:none}.mbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:10;align-items:center;gap:12px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--border);box-shadow:0 -8px 20px #00000040}.mbar-text{flex:1;min-width:0;display:flex;flex-direction:column}.mbar-total{font-family:var(--font-display);font-size:20px;font-weight:500}.mbar-sub{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mbar-sub.ok{color:var(--ok-fg)}.mbar-sub.err{color:var(--err);white-space:normal;max-height:2.8em;overflow:hidden}body.toolbody .toast{bottom:calc(92px + env(safe-area-inset-bottom));max-width:calc(100vw - 32px)}.mbar .btn{height:48px;padding:0 18px}}
