/* --- Professional Design Base --- */
.irp-main-container { max-width: 800px; margin: 40px auto; background: #fff; padding: 40px; border-radius: 12px; border: 1px solid #e0e0e0; font-family: 'Segoe UI', Arial, sans-serif; box-shadow: 0 4px 15px rgba(0,0,0,0.05); }

/* --- Professional Tooltips (New) --- */
.irp-tooltip { position: relative; cursor: help; }
.irp-tooltip::after {
    content: attr(data-tip);
    position: absolute; bottom: 125%; left: 50%; transform: translateX(-50%);
    background: #222; color: #fff; padding: 10px; border-radius: 6px; font-size: 12px; font-weight: 400; width: 250px; text-align: center; visibility: hidden; opacity: 0; transition: 0.3s; z-index: 100; box-shadow: 0 5px 15px rgba(0,0,0,0.2);
}
.irp-tooltip:hover::after { visibility: visible; opacity: 1; }

/* Stepper */
.irp-stepper { display: flex; justify-content: space-between; margin-bottom: 40px; position: relative; }
.irp-stepper::before { content: ""; position: absolute; top: 20px; left: 10%; width: 80%; height: 2px; background: #e0e0e0; z-index: 1; }
.stepper-item { position: relative; z-index: 2; text-align: center; flex: 1; }
.step-counter { width: 40px; height: 40px; background: #fff; border: 2px solid #e0e0e0; border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto 10px; font-weight: bold; color: #999; }
.stepper-item.active .step-counter { border-color: #007bff; color: #007bff; background: #f0f7ff; }
.stepper-item.completed .step-counter { background: #007bff; border-color: #007bff; color: #fff; }

/* Dropzone & Editor */
.irp-drop-zone { border: 2px dashed #3b82f6; background: #f8faff; padding: 50px; text-align: center; border-radius: 12px; cursor: pointer; }
.irp-bg-preview-box { display: inline-block; padding: 15px; border: 1px solid #ddd; border-radius: 10px; background: #fff; transition: background 0.3s; }
.irp-bg-preview-box img { max-width: 200px; display: block; }
.irp-close-btn { position: absolute; top: -15px; right: 35%; background: #ff4d4d; color: white; width: 26px; height: 26px; border-radius: 50%; cursor: pointer; text-align: center; line-height: 24px; font-weight: bold; }

.irp-settings-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 25px; margin-top: 30px; border-top: 1px solid #eee; padding-top: 30px; }
.irp-group label { display: block; font-weight: 600; font-size: 14px; margin-bottom: 8px; color: #444; }
.irp-group input, .irp-group select { width: 100%; padding: 10px; border: 1px solid #ccc; border-radius: 6px; }

.irp-flex-row { display: flex; align-items: center; gap: 10px; }
.irp-lock { cursor: pointer; padding: 8px; background: #fff; border: 1px solid #ccc; border-radius: 6px; font-size: 18px; }
.irp-lock.active { background: #007bff; color: white; border-color: #007bff; }

/* Color Picker */
.irp-color-picker-wrapper { display: flex; align-items: center; gap: 12px; border: 1px solid #ccc; padding: 6px 12px; border-radius: 6px; background: #fff; }
.irp-color-preview { width: 28px; height: 28px; border-radius: 50%; border: 1px solid #ddd; cursor: pointer; }
.irp-color-input { border: none !important; font-family: monospace; width: 85px !important; font-weight: bold; outline: none; }

/* Buttons & Results */
.irp-submit-button { background: #007bff; color: white; width: 100%; border: none; padding: 16px; border-radius: 8px; font-size: 18px; font-weight: bold; cursor: pointer; margin-top: 25px; display: flex; align-items: center; justify-content: center; gap: 10px; }
.irp-spinner { border: 3px solid rgba(255, 255, 255, 0.3); border-radius: 50%; border-top: 3px solid #fff; width: 20px; height: 20px; animation: spin 1s linear infinite; display: none; }
.irp-submit-button.processing .irp-spinner { display: block; }
@keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

.irp-result-card { background: #fff; padding: 40px; text-align: center; border-top: 1px solid #eee; margin-top: 40px; }
.irp-result-card h1 { font-size: 48px; font-weight: 300; margin-bottom: 30px; color: #222; }
.irp-final-card img { max-width: 250px; border-radius: 12px; border: 1px solid #eee; box-shadow: 0 4px 10px rgba(0,0,0,0.1); }