.ir-layout{flex-direction:column;gap:2rem;display:flex}@media (width>=1024px){.ir-layout{flex-direction:row;align-items:flex-start}.ir-form-col{flex:1}.ir-preview-col{flex:0 0 340px;align-self:flex-start;position:sticky;top:90px}}.ir-upload-box{text-align:center;cursor:pointer;background:#f8fafc;border:2px dashed #cbd5e1;border-radius:16px;flex-direction:column;align-items:center;gap:1rem;padding:3rem 2rem;transition:all .2s;display:flex}.ir-upload-box:hover,.ir-upload-box.drag-active{background:#f0ecff;border-color:#553ffe}.ir-upload-icon{color:#553ffe;background:#fff;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;display:flex;box-shadow:0 4px 12px #553ffe26}.ir-upload-text{color:#0f172a;font-size:1.1rem;font-weight:600}.ir-upload-hint{color:#64748b;font-size:.9rem}.ir-source-info{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;align-items:center;gap:1rem;margin-bottom:2rem;padding:1rem;display:flex}.ir-source-thumb{object-fit:contain;background:#fff;border:1px solid #e2e8f0;border-radius:8px;width:60px;height:60px}.ir-source-details{flex:1}.ir-source-name{color:#0f172a;word-break:break-all;margin-bottom:.25rem;font-size:.95rem;font-weight:600}.ir-source-meta{color:#64748b;font-size:.85rem}.ir-remove-btn{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:.5rem;transition:all .2s}.ir-remove-btn:hover{color:#e11d48;background:#f1f5f9}.ir-section-title{color:#0f172a;align-items:center;gap:.5rem;margin-bottom:1rem;font-size:1.05rem;font-weight:700;display:flex}.ir-dimensions-grid{grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;margin-bottom:1.5rem;display:grid}.ir-field{flex-direction:column;gap:.4rem;display:flex}.ir-field label{color:#475569;font-size:.85rem;font-weight:600}.ir-input-group{align-items:center;display:flex;position:relative}.ir-input-group input{color:#0f172a;border:2px solid #e2e8f0;border-radius:10px;width:100%;padding:.75rem 2.5rem .75rem 1rem;font-family:inherit;font-size:1rem;font-weight:600;transition:border-color .2s}.ir-input-group input:focus{border-color:#553ffe;outline:none}.ir-input-unit{color:#94a3b8;font-size:.85rem;font-weight:600;position:absolute;right:1rem}.ir-lock-btn{color:#64748b;cursor:pointer;background:#f1f5f9;border:none;border-radius:8px;justify-content:center;align-items:center;width:40px;height:40px;margin-top:1.4rem;transition:all .2s;display:flex}.ir-lock-btn.locked{color:#fff;background:#553ffe}.ir-presets{flex-wrap:wrap;gap:.5rem;margin-bottom:2rem;display:flex}.ir-preset-btn{color:#475569;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:6px;padding:.5rem .75rem;font-size:.8rem;font-weight:600;transition:all .2s}.ir-preset-btn:hover{background:#f8fafc;border-color:#cbd5e1}.ir-export-grid{grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:2rem;display:grid}.ir-field select{color:#0f172a;background:#fff;border:2px solid #e2e8f0;border-radius:10px;outline:none;padding:.75rem 1rem;font-family:inherit;font-size:.95rem;font-weight:500}.ir-field select:focus{border-color:#553ffe}.ir-range{accent-color:#553ffe;width:100%;margin-top:.5rem}.ir-preview-box{background:#fff;border:1px solid #e2e8f0;border-radius:16px;flex-direction:column;gap:1.5rem;padding:1.5rem;display:flex}.ir-preview-area{aspect-ratio:1;background:repeating-conic-gradient(#f1f5f9 0% 25%,#fff 0% 50%) 50%/20px 20px;border:1px solid #e2e8f0;border-radius:12px;justify-content:center;align-items:center;width:100%;display:flex;overflow:hidden}.ir-preview-img{object-fit:contain;max-width:100%;max-height:100%}.ir-preview-placeholder{color:#94a3b8;flex-direction:column;align-items:center;gap:.5rem;font-size:.9rem;font-weight:500;display:flex}.ir-download-btn{color:#fff;cursor:pointer;background:linear-gradient(#897fff 0%,#4a3aff 100%);border:none;border-radius:10px;justify-content:center;align-items:center;gap:.5rem;width:100%;padding:.85rem;font-size:.95rem;font-weight:700;transition:all .2s;display:flex}.ir-download-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 20px #4a3aff40}.ir-download-btn:disabled{cursor:not-allowed;background:#cbd5e1}@media (width<=640px){.ir-dimensions-grid{grid-template-columns:1fr;gap:1rem}.ir-lock-btn{display:none}.ir-export-grid{grid-template-columns:1fr}}
