.ip-tool{max-width:960px}
.ip-tool .conv-input:focus-visible+.conv-drop{outline:3px solid rgba(102,126,234,.35);outline-offset:2px}
.ip-work{text-align:left}
.ip-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}
.ip-count{color:#3c4858;font-size:16px;font-weight:700}
.ip-tool .ip-add{display:inline-flex;align-items:center;justify-content:center;margin:0;cursor:pointer;background:#fff;background-image:none;color:#667eea;box-shadow:inset 0 0 0 2px rgba(102,126,234,.55)}
.ip-tool .ip-add:hover{background:rgba(102,126,234,.08);background-image:none}
.ip-hint{margin:6px 0 12px;color:#8492a6;font-size:13px}
.ip-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;margin:0;padding:0;list-style:none}
.ip-item{position:relative;display:flex;flex-direction:column;border:1px solid #e9ecef;border-radius:12px;background:#fafbff;overflow:hidden;cursor:grab;transition:box-shadow .15s,opacity .15s}
.ip-item:hover{box-shadow:0 6px 18px rgba(60,72,88,.12)}
.ip-item.is-dragging{opacity:.4}
.ip-thumb{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:1/1;padding:12px;background:#fff}
.ip-thumb img{max-width:100%;max-height:100%;object-fit:contain;box-shadow:0 1px 5px rgba(0,0,0,.18);transition:transform .2s;pointer-events:none}
.ip-num{position:absolute;top:6px;left:6px;min-width:24px;height:24px;padding:0 7px;border-radius:12px;background:#667eea;color:#fff;font-size:12px;font-weight:700;line-height:24px;text-align:center}
.ip-bar{display:flex;justify-content:center;gap:4px;padding:6px 6px 2px}
.ip-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:0;border-radius:8px;background:#eef0f7;color:#5a6478;cursor:pointer}
.ip-btn:hover{background:#e2e6f3;color:#343a40}
.ip-btn:disabled{opacity:.35;cursor:default}
.ip-btn svg{width:16px;height:16px}
.ip-btn.ip-remove:hover{background:#fde8e6;color:#c0392b}
.ip-name{padding:2px 10px 8px;overflow:hidden;color:#8492a6;font-size:12px;text-align:center;white-space:nowrap;text-overflow:ellipsis}
.ip-options{margin-top:18px}
.ip-options select:disabled{opacity:.5;cursor:not-allowed}
.ip-tool.is-busy .ip-work{opacity:.6;pointer-events:none}
@media (max-width:576px){.ip-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ip-options{flex-direction:column;align-items:stretch}.ip-opt select{width:100%}.ip-tool .ip-add{width:100%;text-align:center}}
