/* General Container */ .my-reservation-container-v2 { max-width: 800px; margin: 40px auto; padding: 20px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; background-color: #f4f6f8; border-radius: 16px; } .my-reservation-container-v2 h1 { font-size: 28px; font-weight: 700; color: #333d4b; margin-bottom: 30px; } /* Error Message */ .error-message-v2 { color: #d9534f; background-color: #f2dede; border: 1px solid #ebccd1; padding: 15px; border-radius: 8px; text-align: center; } /* Reservation List */ .reservation-list-v2 { display: flex; flex-direction: column; gap: 15px; } /* Reservation Summary Card */ .reservation-summary-card-v2 { background-color: #ffffff; border-radius: 12px; padding: 20px; display: flex; justify-content: space-between; align-items: center; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06); transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out; } .reservation-summary-card-v2:hover { transform: translateY(-3px); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); } .summary-subdetails-v2 { display: flex; flex-direction: column; margin: 0px; gap: 0px; } .summary-store-name-v2 { font-size: 16px; font-weight: bold; color: #505a67; margin: 0 0 5px 0; } .summary-details-v2 { display: flex; flex-direction: column; gap: 10px; } .summary-theme-name-v2 { font-size: 20px; font-weight: 700; color: #333d4b; margin: 0; } .summary-datetime-v2 { font-size: 16px; color: #505a67; margin-bottom: 5px; } /* --- Status Badge --- */ .card-status-badge { position: absolute; top: 30px; right: 10px; padding: 3px 10px; border-radius: 12px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; } /* --- Card Status Styles --- */ .reservation-summary-card-v2 { position: relative; /* For badge positioning */ } /* Confirmed (Upcoming) */ .reservation-summary-card-v2.status-confirmed { border-left: 5px solid #28a745; /* Green accent */ } .status-confirmed .card-status-badge { background-color: #28a745; color: white; } /* Completed (Past) */ .reservation-summary-card-v2.status-completed { background-color: #f8f9fa; border-left: 5px solid #6c757d; /* Gray accent */ } .reservation-summary-card-v2.status-completed .summary-theme-name-v2, .reservation-summary-card-v2.status-completed .summary-datetime-v2 { color: #6c757d; } .reservation-summary-card-v2.status-completed .detail-button-v2 { background-color: #6c757d; } .status-completed .card-status-badge { background-color: #6c757d; color: white; } /* Canceled */ .reservation-summary-card-v2.status-canceled { background-color: #f8f9fa; border-left: 5px solid #dc3545; /* Red accent */ opacity: 0.7; } .reservation-summary-card-v2.status-canceled .summary-theme-name-v2, .reservation-summary-card-v2.status-canceled .summary-datetime-v2 { color: #6c757d; text-decoration: line-through; } .reservation-summary-card-v2.status-canceled .detail-button-v2 { background-color: #6c757d; } .status-canceled .card-status-badge { background-color: #dc3545; color: white; } /* Pending */ .reservation-summary-card-v2.status-pending { border-left: 5px solid #ffc107; /* Yellow accent */ } .status-pending .card-status-badge { background-color: #ffc107; color: #212529; } /* Detail Button */ .detail-button-v2 { background-color: #007bff; color: white; border: none; border-radius: 8px; padding: 10px 20px; font-size: 16px; font-weight: 600; cursor: pointer; transition: background-color 0.2s; } .detail-button-v2:hover { background-color: #0056b3; } .detail-button-v2:disabled { background-color: #cdd3d8; cursor: not-allowed; } /* Modal Styles */ .modal-overlay-v2 { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(0, 0, 0, 0.6); display: flex; justify-content: center; align-items: center; z-index: 1000; } .modal-content-v2 { background: #ffffff !important; padding: 30px !important; border-radius: 16px !important; width: 90% !important; max-width: 500px !important; position: relative !important; box-shadow: 0 5px 15px rgba(0,0,0,0.3) !important; animation: slide-up 0.3s ease-out !important; max-height: 90vh !important; /* Prevent modal from being too tall */ overflow-y: auto !important; /* Allow scrolling for long content */ } @keyframes slide-up { from { transform: translateY(20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } } .modal-close-button-v2 { position: absolute; top: 15px; right: 15px; background: none; border: none; font-size: 24px; cursor: pointer; color: #8492a6; } .modal-content-v2 h2 { margin-top: 0; margin-bottom: 25px; color: #333d4b; font-size: 24px; } .modal-section-v2 { margin-bottom: 20px; padding-bottom: 20px; border-bottom: 1px solid #e5e8eb; } .modal-section-v2:last-child { border-bottom: none; } .modal-section-v2 h3 { font-size: 18px; color: #333d4b; margin-top: 0; margin-bottom: 15px; } .modal-section-v2 p { margin: 0 0 10px; color: #505a67; } .cancellation-section-v2 { background-color: #fcf2f2; padding: 15px; border-radius: 8px; border: 1px solid #f0d1d1; } .cancellation-section-v2 h3 { color: #c9302c; } /* Modal Actions & Cancellation View */ .modal-actions-v2 { display: flex; justify-content: flex-end; gap: 10px; margin-top: 30px; } .modal-actions-v2 button { border: none; border-radius: 8px; padding: 12px 20px; font-size: 16px; font-weight: 600; cursor: pointer; transition: background-color 0.2s, color 0.2s; } .cancel-button-v2 { background-color: #e53e3e; color: white; width: 100%; } .cancel-button-v2:hover { background-color: #c53030; } .back-button-v2 { background-color: #e9ecef; color: #495057; } .back-button-v2:hover { background-color: #dee2e6; } .cancel-submit-button-v2 { background-color: #007bff; color: white; } .cancel-submit-button-v2:hover { background-color: #0056b3; } .cancel-submit-button-v2:disabled, .back-button-v2:disabled { background-color: #cdd3d8; cursor: not-allowed; } .cancellation-view-v2 h3 { font-size: 18px; color: #333d4b; margin-bottom: 15px; } .cancellation-summary-v2 { background-color: #f8f9fa; border-radius: 8px; padding: 15px; margin-bottom: 20px; } .cancellation-summary-v2 p { margin: 0 0 8px; } .cancellation-summary-v2 p:last-child { margin: 0; } .cancellation-reason-textarea-v2 { width: 100%; padding: 10px; border: 1px solid #ced4da; border-radius: 8px; font-size: 16px; line-height: 1.5; resize: vertical; box-sizing: border-box; /* Ensures padding doesn't add to width */ } .cancellation-reason-textarea-v2:focus { outline: none; border-color: #007bff; box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.25); } /* Added for modal info alignment */ .modal-info-grid p { display: flex; align-items: flex-start; margin: 0.6rem 0; line-height: 1.5; } .modal-info-grid p strong { flex: 0 0 130px; /* fixed width for labels */ font-weight: 600; } .modal-info-grid p span { flex: 1; }