/* Tour Single-Date Calendar */
.tour-cal-wrap { padding: 20px 20px 0; display: flex; gap: 40px; }
.tour-cal-month { flex: 1; min-width: 220px; }
.tour-cal-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.tour-cal-header .month-title { font-weight: 700; font-size: 0.97rem; text-align: center; flex: 1; }
.tour-cal-nav { background: none; border: 1.5px solid #dfe6e9; border-radius: 6px; width: 32px; height: 32px; cursor: pointer; font-size: 1.1rem; display: flex; align-items: center; justify-content: center; transition: all 0.15s; color: var(--primary); flex-shrink: 0; }
.tour-cal-nav:hover:not(:disabled) { background: var(--primary-light); border-color: var(--primary); }
.tour-cal-nav:disabled { opacity: 0.3; cursor: not-allowed; }

.tour-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 5px; }
.tour-cal-grid .day-name { text-align: center; font-size: 1.1rem; font-weight: 700; color: var(--text-light); padding: 4px 0 10px; }
.tour-cal-grid .day { text-align: center; padding: 8px 10px; border-radius: 6px; cursor: pointer; font-size: 1rem; transition: all 0.1s; position: relative; }
.tour-cal-grid .day:hover:not(.empty):not(.past):not(.unavailable) { background: var(--primary-light); color: var(--primary); font-weight: 600; }
.tour-cal-grid .day.empty { cursor: default; }
.tour-cal-grid .day.past { color: #ccc; cursor: not-allowed; }
.tour-cal-grid .day.unavailable { color: #ddd; cursor: not-allowed; text-decoration: line-through; }
.tour-cal-grid .day.today { font-weight: 700; color: var(--primary); }
.tour-cal-grid .day.selected { background: var(--primary); color: white; font-weight: 700; }
.tour-cal-grid .day .dot { position: absolute; bottom: 2px; left: 50%; transform: translateX(-50%); width: 4px; height: 4px; border-radius: 50%; background: var(--success); }

.tour-cal-footer { padding: 14px 20px; border-top: 1px solid #f1f2f6; margin-top: 14px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.tour-cal-hint { font-size: 1.1rem; color: var(--text-light); }
.tour-cal-actions { display: flex; gap: 8px; }
.tour-cal-clear { background: none; border: 1.5px solid #dfe6e9; border-radius: 7px; padding: 8px 16px; font-size: 1rem; cursor: pointer; color: var(--text-light); transition: all 0.15s; font-family: inherit; }
.tour-cal-clear:hover { border-color: var(--danger); color: var(--danger); }
.tour-cal-done { background: var(--primary); color: white; border: none; border-radius: 7px; padding: 8px 22px; font-size: 1rem; font-weight: 700; cursor: pointer; transition: background 0.15s; font-family: inherit; }
.tour-cal-done:hover { background: var(--primary-dark); }
.tour-cal-done:disabled { background: #ccc; cursor: not-allowed; }

@media (max-width: 640px) {
    .tour-cal-wrap { flex-direction: column !important; gap: 0 !important; padding: 0 !important; overflow-y: auto; flex: 1; max-height: calc(82vh - 120px); }
    .tour-cal-wrap .tour-cal-month { padding: 16px 16px 10px; border-bottom: 1px solid #f1f2f6; min-width: unset; }
    .tour-cal-wrap .tour-cal-month:last-child { border-bottom: none; }
    .tour-cal-footer { position: sticky; bottom: 0; background: white; z-index: 2; border-top: 2px solid #f1f2f6; }
    #tourCalRightWrap { display: none; }
}