generated from pricelees/issue-pr-template
<!-- 제목 양식 --> <!-- [이슈번호] 작업 요약 (예시: [#10] Gitea 템플릿 생성) --> ## 📝 관련 이슈 및 PR **PR과 관련된 이슈 번호** - #44 ## ✨ 작업 내용 <!-- 어떤 작업을 했는지 알려주세요! --> - 매장 기능 도입 및 기존 기능에 적용 - 관리자 타입(본사, 매장, 전체) 분리 및 API별 적용 ## 🧪 테스트 <!-- 어떤 테스트를 생각했고 진행했는지 알려주세요! --> - 신규 기능 및 매장 기능 도입으로 수정된 기존 API 모두 통합 테스트 완료 ## 📚 참고 자료 및 기타 <!-- 참고한 자료, 또는 논의할 사항이 있다면 알려주세요! --> - 아직 미결제 예약 스케쥴링 작업 등 추가적인 작업이 필요하긴 하지만, 이 작업들은 배포 후 추가로 진행할 예정 - 다음 작업은 배포 + 초기 데이터 삽입 Reviewed-on: #45 Co-authored-by: pricelees <priceelees@gmail.com> Co-committed-by: pricelees <priceelees@gmail.com>
371 lines
7.1 KiB
CSS
371 lines
7.1 KiB
CSS
/* 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;
|
|
}
|