body { margin: 0; padding: 0; font-family: "Inter", "Lucida Grande", Helvetica, Arial, sans-serif; background: #eaeaea; color: #222; } .calendar-container { max-width: 1100px; margin: 40px auto; background: #fff; border-radius: 6px; box-shadow: 0 2px 16px rgba(0, 0, 0, 0.07); padding-bottom: 40px; } .calendar-header { background: #04316a; color: #fff; font-size: 2rem; font-weight: 700; padding: 28px 32px; border-radius: 6px 6px 0 0; letter-spacing: 0.01em; } .calendar-content { padding: 32px 32px 0 32px; } .calendar-labels { margin-bottom: 32px; } .calendar-label-main { font-size: 1.15rem; font-weight: 600; margin-bottom: 8px; } .calendar-label-duration { font-size: 1rem; margin-bottom: 8px; } .calendar-label-duration span { font-weight: 400; } .calendar-label-timezone { font-size: 1rem; margin-bottom: 8px; } .timezone-btn { background: none; border: none; color: #888; font-weight: 500; cursor: pointer; text-decoration: underline; font-size: 1rem; margin-left: 8px; } /* Modal Overlay */ .modal-overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.7); display: flex; align-items: center; justify-content: center; z-index: 1000; } .modal-content { background: #fff; border-radius: 8px; padding: 32px 40px; min-width: 340px; max-width: 90vw; box-shadow: 0 4px 32px rgba(0, 0, 0, 0.15); display: flex; flex-direction: column; align-items: center; } .modal-title { font-size: 1.2rem; font-weight: 700; margin-bottom: 18px; letter-spacing: 0.04em; } .modal-format-switch { margin-bottom: 18px; font-size: 0.98rem; display: flex; gap: 16px; } .timezone-groups { display: flex; flex-wrap: wrap; gap: 32px 48px; justify-content: center; } .timezone-group { min-width: 180px; } .timezone-group-title { font-size: 0.98rem; font-weight: 600; margin-bottom: 8px; color: #04316a; } .timezone-option { display: block; margin-bottom: 8px; font-size: 0.97rem; cursor: pointer; } /* Calendar Table */ .calendar-table-wrapper { overflow-x: auto; margin-bottom: 24px; } .calendar-table { width: 100%; border-collapse: separate; border-spacing: 0; background: #fff; } .calendar-table th, .calendar-table td { text-align: center; padding: 8px 0; min-width: 120px; } .calendar-table th { font-size: 1rem; font-weight: 600; color: #04316a; border-bottom: 2px solid #eaeaea; padding-bottom: 12px; } .calendar-day-label { font-size: 1.05rem; font-weight: 600; } .calendar-date-label { font-size: 0.98rem; color: #888; font-weight: 400; } .calendar-slot-btn { background: #f5f8fa; border: 1px solid #dbe6f3; border-radius: 5px; color: #04316a; font-size: 1rem; padding: 7px 0; width: 90%; margin: 0 auto; cursor: pointer; transition: background 0.15s, border 0.15s; font-weight: 500; } .calendar-slot-btn:hover { background: #e6f0ff; border-color: #04316a; } .calendar-table td { border-bottom: 1px solid #f0f0f0; height: 44px; } .calendar-week-nav { display: flex; justify-content: flex-end; gap: 18px; margin-top: 12px; font-size: 1rem; } .calendar-week-nav a { color: #04316a; text-decoration: underline; font-weight: 500; cursor: pointer; } /* Booking Form */ .booking-form { max-width: 420px; margin: 0 auto; display: flex; flex-direction: column; gap: 18px; } .form-error { color: red; font-size: 0.9rem; font-weight: 500; margin-top: 4px; } .form-group { display: flex; flex-direction: column; gap: 6px; } .form-group label { font-weight: 600; font-size: 1rem; color: #222; } .form-group input, .form-group textarea { border: 1px solid #dbe6f3; border-radius: 5px; padding: 8px 10px; font-size: 1rem; font-family: inherit; background: #f5f8fa; resize: none; } .form-group textarea { min-height: 70px; } .form-submit-btn { background: #04316a; color: #fff; border: none; border-radius: 5px; font-size: 1.08rem; font-weight: 600; padding: 10px 0; margin-top: 10px; cursor: pointer; transition: background 0.15s; } .form-submit-btn:hover { background: #0050b3; } /* Success Message */ .success-message { text-align: center; font-size: 1.15rem; font-weight: 500; margin-top: 60px; } /* Responsive Styles */ @media (max-width: 900px) { .calendar-container { max-width: 98vw; margin: 16px auto; } .calendar-content { padding: 18px 6vw 0 6vw; } .modal-content { padding: 18px 8vw; } .calendar-table th, .calendar-table td { min-width: 80px; font-size: 0.98rem; } } @media (max-width: 600px) { .calendar-header { font-size: 1.2rem; padding: 18px 10px; } .calendar-content { padding: 10px 2vw 0 2vw; } .modal-content { min-width: 90vw; padding: 10px 2vw; } .calendar-table th, .calendar-table td { min-width: 60px; font-size: 0.93rem; padding: 4px 0; } .booking-form { max-width: 98vw; } }