.gs-wrap{display:flex;flex-direction:column;gap:.85rem}.gs-wrap [hidden]{display:none}.gs-drop{position:relative;border:2px dashed var(--color-border);border-radius:var(--radius-md);padding:2rem 1rem;text-align:center;cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast);background:var(--color-bg-secondary)}.gs-drop:hover,.gs-drop.drag-over{border-color:var(--color-primary);background:var(--color-surface)}.gs-drop:focus-visible{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 4px var(--color-primary-light)}.gs-drop-inner{display:flex;flex-direction:column;align-items:center;gap:.4rem;color:var(--color-text-secondary);pointer-events:none}.gs-drop-inner p{margin:0;font-size:.95rem}.gs-drop-inner .gs-hint{font-size:.8rem}.gs-file-input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.gs-progress{width:100%;height:8px;accent-color:var(--color-primary)}.gs-limit{display:flex;flex-direction:column;gap:.6rem;padding:.85rem 1rem;border-radius:var(--radius-md);background:var(--color-bg-secondary);box-shadow:inset 0 0 0 1px color-mix(in oklch,var(--color-danger) 45%,transparent)}.gs-limit-msg{margin:0;font-size:.88rem;color:var(--color-text)}.gs-limit-cmd-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.gs-limit-cmd{font-family:var(--font-mono);font-size:.85rem;padding:.35rem .6rem;border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);box-shadow:inset 0 0 0 1px var(--color-border-soft);overflow-wrap:anywhere}.gs-workspace{display:flex;flex-direction:column;gap:.85rem}.gs-info{display:flex;flex-wrap:wrap;gap:.5rem;margin:0}.gs-info-item{flex:1 1 120px;padding:.5rem .75rem;border-radius:var(--radius-md);background:var(--color-bg-secondary);box-shadow:inset 0 0 0 1px var(--color-border-soft)}.gs-info-item dt{font-size:.75rem;font-weight:700;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em}.gs-info-item dd{margin:.15rem 0 0;font-family:var(--font-mono);font-size:.9rem;color:var(--color-text)}.gs-select{display:flex;flex-direction:column;gap:.5rem}.gs-select-row,.gs-range-row{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem .6rem;font-size:.88rem;color:var(--color-text-secondary)}.gs-selected-count{font-weight:700;color:var(--color-text);margin-right:auto}.gs-num{width:5.5rem}.gs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:.6rem;max-height:560px;overflow:auto;padding:.3rem;border-radius:var(--radius-md);background:var(--color-bg-secondary);box-shadow:inset 0 0 0 1px var(--color-border-soft)}.gs-cell{display:flex;flex-direction:column;gap:.3rem;padding:.35rem;border-radius:var(--radius-md);background:var(--color-surface);box-shadow:inset 0 0 0 1px var(--color-border-soft)}.gs-cell.is-selected{box-shadow:inset 0 0 0 2px var(--color-primary)}.gs-thumb{position:relative;display:block;width:100%;padding:0;border:0;border-radius:var(--radius-sm);background:none;cursor:pointer}.gs-thumb:focus-visible{outline:none;box-shadow:0 0 0 1px var(--color-primary),0 0 0 4px var(--color-primary-light)}.gs-thumb-box{display:flex;align-items:center;justify-content:center;aspect-ratio:1;overflow:hidden;border-radius:var(--radius-sm);background:repeating-conic-gradient(color-mix(in oklch,var(--color-text-muted) 22%,transparent) 0% 25%,transparent 0% 50%) 0 0 / 12px 12px;transition:opacity var(--transition-fast)}.gs-cell:not(.is-selected) .gs-thumb-box{opacity:.45}.gs-thumb-canvas{display:block;width:100%;height:100%;object-fit:contain}.gs-thumb-canvas.gs-pixelated{image-rendering:pixelated}.gs-check{position:absolute;top:.3rem;right:.3rem;display:none;align-items:center;justify-content:center;width:1.3rem;height:1.3rem;border-radius:50%;background:var(--color-primary);color:var(--color-primary-contrast);box-shadow:var(--shadow-subtle)}.gs-cell.is-selected .gs-check{display:flex}.gs-cell-foot{display:flex;align-items:center;justify-content:space-between;gap:.3rem}.gs-cell-meta{display:flex;flex-direction:column;font-family:var(--font-mono);font-size:.72rem;line-height:1.3;color:var(--color-text-secondary)}.gs-cell-no{font-weight:700;color:var(--color-text)}.gs-cell-dl:disabled{opacity:.5;cursor:default}.gs-panel{display:flex;flex-direction:column;gap:.75rem;padding:.9rem 1rem;border-radius:var(--radius-md);background:var(--color-bg-secondary);box-shadow:inset 0 0 0 1px var(--color-border-soft)}.gs-panel-title{margin:0;font-family:var(--font-sans);font-size:.95rem;font-weight:760;color:var(--color-text)}.gs-export-row,.gs-sprite-row{display:flex;align-items:flex-end;flex-wrap:wrap;gap:.6rem 1rem}.gs-field{display:flex;flex-direction:column;gap:.3rem}.gs-select-input{width:auto;min-width:6rem}.gs-jpg-opts{display:flex;align-items:flex-end;flex-wrap:wrap;gap:.6rem 1rem;flex:1 1 280px}.gs-quality-label{display:flex;flex-direction:column;gap:.3rem;flex:0 0 auto;font-size:.85rem;font-weight:600;color:var(--color-text-secondary)}.gs-quality-label strong{font-family:var(--font-mono);color:var(--color-text)}.gs-jpg-opts input[type=range]{flex:1 1 160px}.gs-bg-field input[type=color]{width:2.6rem;height:2.3rem;padding:.15rem;border:0;border-radius:var(--radius-sm);background:var(--color-surface);box-shadow:inset 0 0 0 1px var(--color-border-soft);cursor:pointer}.gs-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.gs-sprite-out{display:flex;flex-direction:column;gap:.6rem}.gs-sprite-meta{margin:0;font-family:var(--font-mono);font-size:.8rem;color:var(--color-text-secondary)}.gs-sprite-preview{max-height:360px;overflow:auto;border-radius:var(--radius-md);background:repeating-conic-gradient(color-mix(in oklch,var(--color-text-muted) 22%,transparent) 0% 25%,transparent 0% 50%) 0 0 / 16px 16px;box-shadow:inset 0 0 0 1px var(--color-border-soft)}.gs-sprite-preview img{display:block;max-width:100%;height:auto}.gs-json{min-height:160px}@media(max-width:640px){.gs-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));max-height:60vh}.gs-info-item{flex-basis:calc(50% - .25rem)}.gs-actions .btn-primary,.gs-actions .btn-secondary,.gs-actions .btn-ghost{flex:1 1 45%}.gs-sprite-row .btn-secondary,.gs-range-row .btn-secondary{flex:1 1 100%}.gs-num{width:4.5rem}}
