/**
 * Restaurant Reservation Manager Pro - Premium & Multi-container Styles
 * Version: 1.0.1
 */

@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600&display=swap');

.rrmp-main-container {
    max-width: 1000px;
    margin: 40px auto;
    font-family: 'Outfit', sans-serif;
    box-sizing: border-box !important;
}

/* THE FORM CONTAINER */
.rrmp-premium-wrapper {
    padding: 60px;
    background: #ffffff;
    border-radius: 20px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.06);
    color: #2d3436;
    border: 1px solid #f0f0f0;
    box-sizing: border-box !important;
}

.rrmp-premium-wrapper .rrmp-header {
    margin-bottom: 50px;
    text-align: center;
}

.rrmp-premium-wrapper .rrmp-title { font-size: 36px; font-weight: 600; color: #2d3436; margin: 0 0 15px 0; line-height: 1.1; }
.rrmp-premium-wrapper .rrmp-subtitle { color: #636e72; font-size: 18px; margin: 0; }
.rrmp-form-section { margin-bottom: 35px; }
.rrmp-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; margin-bottom: 25px; }
.rrmp-label { display: block; font-weight: 500; font-size: 15px; margin-bottom: 12px; color: #333; }
.rrmp-label .required { color: #ff4757; }

/* INPUTS REFINED */
.rrmp-premium-wrapper input,
.rrmp-premium-wrapper select,
.rrmp-premium-wrapper textarea {
    width: 100% !important;
    min-height: 52px !important;
    padding: 5px 20px !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 14px !important;
    font-size: 16px !important;
    line-height: 40px !important;
    background-color: #f8fafc !important;
    transition: all 0.3s ease !important;
    outline: none !important;
    appearance: none !important;
    color: #2d3436 !important;
    box-sizing: border-box !important;
}

.rrmp-premium-wrapper select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2364748b'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'%3E%3C/path%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 18px center !important;
    background-size: 20px !important;
}

.rrmp-premium-wrapper textarea { min-height: 150px !important; line-height: 1.6 !important; padding-top: 15px !important; }

.rrmp-footer { display: flex; justify-content: space-between; align-items: center; margin-top: 45px; border-top: 1px solid #f1f5f9; padding-top: 35px; }

.rrmp-btn-primary {
    padding: 0 50px !important;
    height: 56px !important;
    line-height: 56px !important;
    background-color: #ff5722 !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 16px !important;
    font-size: 17px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    box-shadow: 0 4px 14px rgba(255, 87, 34, 0.3) !important;
}

.rrmp-btn-secondary { padding: 0 30px !important; height: 50px !important; line-height: 50px !important; background-color: #f1f5f9 !important; color: #475569 !important; border: none !important; border-radius: 14px !important; font-size: 15px !important; }

/* THE LOADING BOX STYLES */
.rrmp-loading-wrapper {
    background: #ffffff;
    padding: 80px 50px;
    border-radius: 20px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.06);
    text-align: center;
    border: 1px solid #f0f0f0;
    box-sizing: border-box !important;
}

.rrmp-spinner {
    width: 60px;
    height: 60px;
    border: 5px solid #f3f3f3;
    border-top: 5px solid #ff5722;
    border-radius: 50%;
    margin: 0 auto 30px auto;
    animation: rrmp-spin 0.8s linear infinite;
}

@keyframes rrmp-spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

.rrmp-loading-text {
    font-size: 28px;
    font-weight: 600;
    color: #2d3436;
    margin-bottom: 10px;
}

.rrmp-loading-subtext {
    font-size: 16px;
    color: #636e72;
}

/* THE SUCCESS BOX STYLES */
.rrmp-success-wrapper {
    background: #ffffff;
    padding: 70px;
    border-radius: 24px;
    box-shadow: 0 20px 50px rgba(5, 150, 105, 0.12);
    text-align: center;
    border: 2px solid #ecfdf5;
    box-sizing: border-box !important;
}

.rrmp-success-icon { width: 90px; height: 90px; background: #d1fae5; color: #059669; border-radius: 50%; margin: 0 auto 35px auto; display: flex; align-items: center; justify-content: center; }
.rrmp-success-icon svg { width: 50px; height: 50px; }
.rrmp-success-title { font-size: 40px; font-weight: 600; color: #065f46; margin-bottom: 15px; }
.rrmp-success-subtitle { font-size: 18px; color: #6b7280; margin-bottom: 45px; }
.rrmp-success-details-grid { display: flex; justify-content: center; gap: 50px; background: #f9fafb; border-radius: 20px; padding: 35px; border: 1px solid #f3f4f6; margin-bottom: 45px; flex-wrap: wrap; }
.rrmp-success-item .label { display: block; font-size: 13px; color: #6b7280; margin-bottom: 8px; text-transform: uppercase; }
.rrmp-success-item .value { font-size: 20px; font-weight: 600; color: #111827; }

.rrmp-success-email-alert { padding-bottom: 40px; }
.rrmp-success-email-alert p { font-size: 15px; color: #374151; margin-bottom: 5px; }
.rrmp-success-email-alert strong { font-size: 18px; color: #059669; font-weight: 600; }

.rrmp-success-btn { padding: 0 45px !important; height: 56px !important; line-height: 56px !important; background-color: #059669 !important; color: white !important; border: none !important; border-radius: 16px !important; font-size: 18px !important; font-weight: 600 !important; cursor: pointer !important; }

/* Mobile responsive fixes */
@media (max-width: 900px) {
    .rrmp-grid { grid-template-columns: repeat(2, 1fr) !important; }
}

@media (max-width: 600px) {
    .rrmp-premium-wrapper, .rrmp-loading-wrapper, .rrmp-success-wrapper { padding: 30px !important; }
    .rrmp-grid { grid-template-columns: 1fr !important; gap: 20px !important; }
    .rrmp-footer { flex-direction: column-reverse !important; gap: 20px !important; }
    .rrmp-btn-primary, .rrmp-btn-secondary, .rrmp-success-btn { width: 100% !important; }
    .rrmp-success-details-grid { flex-direction: column; gap: 20px; }
}
