/*
 * Adanacar tarih-saat seçici görünümü (tarih-saat.js). flatpickr'ın kendi CSS'inden sonra yüklenir.
 * Renkler değişkenlerle gelir: site (rezervasyon.css) ve panel (admin-theme.css) kendi değerlerini verir.
 */
/* Değişkenler (varsayılanları var() içinde): --ts-yuzey, --ts-metin, --ts-soluk, --ts-cizgi, --ts-hover, --ts-vurgu,
   --ts-vurgu-metin, --ts-isaret, --ts-yaricap, --ts-golge. */

/* ---------------------------------------------------------------- girdi */
.ac-ts-girdi { cursor: pointer; }
.ac-ts-girdi[readonly] { background-color: var(--bs-body-bg, #fff); }

/* ---------------------------------------------------------------- takvim */
.flatpickr-calendar.ac-ts-takvim {
  width: 308px; padding: 10px; border: 1px solid var(--ts-cizgi, #e4e4e8); border-radius: var(--ts-yaricap, 12px);
  background: var(--ts-yuzey, #fff); color: var(--ts-metin, #16161a); box-shadow: var(--ts-golge, 0 18px 48px -12px rgb(16 16 24 / .28), 0 2px 6px rgb(16 16 24 / .08)); font: inherit;
}
.flatpickr-calendar.ac-ts-takvim::before, .flatpickr-calendar.ac-ts-takvim::after { display: none; }
.flatpickr-calendar.ac-ts-takvim.open { animation: ac-ts-ac .16s cubic-bezier(.2, .8, .2, 1); }
@keyframes ac-ts-ac { from { opacity: 0; transform: translateY(-4px) scale(.98); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .flatpickr-calendar.ac-ts-takvim.open { animation: none; } }

.ac-ts-takvim .flatpickr-months { align-items: center; margin-bottom: 4px; }
.ac-ts-takvim .flatpickr-months .flatpickr-month { height: 40px; color: var(--ts-metin, #16161a); fill: var(--ts-metin, #16161a); }
.ac-ts-takvim .flatpickr-current-month { display: flex; align-items: center; justify-content: center; gap: 6px; height: 40px; padding: 0; font-size: 15px; font-weight: 700; }
.ac-ts-takvim .flatpickr-current-month .cur-month { margin: 0; font-weight: 700; }
.ac-ts-takvim .flatpickr-current-month input.cur-year { font-weight: 700; }
.ac-ts-takvim .flatpickr-months .flatpickr-prev-month, .ac-ts-takvim .flatpickr-months .flatpickr-next-month {
  position: static; display: grid; place-items: center; width: 36px; height: 36px; padding: 0; border-radius: 50%; color: var(--ts-metin, #16161a);
}
.ac-ts-takvim .flatpickr-months .flatpickr-prev-month:hover, .ac-ts-takvim .flatpickr-months .flatpickr-next-month:hover { background: var(--ts-hover, #f3f3f5); color: var(--ts-metin, #16161a); }
.ac-ts-takvim .flatpickr-months .flatpickr-disabled { opacity: .25; }
.ac-ts-yil {
  height: 30px; padding: 0 22px 0 8px; border: 1px solid var(--ts-cizgi, #e4e4e8); border-radius: 8px; background-color: var(--ts-yuzey, #fff);
  color: var(--ts-metin, #16161a); font: inherit; font-size: 14px; font-weight: 700; cursor: pointer;
}

.ac-ts-takvim .flatpickr-innerContainer, .ac-ts-takvim .flatpickr-rContainer, .ac-ts-takvim .flatpickr-days, .ac-ts-takvim .dayContainer { width: 286px; min-width: 286px; max-width: 286px; }
.ac-ts-takvim span.flatpickr-weekday { color: var(--ts-soluk, #6b6b73); font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.ac-ts-takvim .flatpickr-day {
  max-width: 40px; height: 38px; line-height: 36px; margin: 1px 0; border: 1px solid transparent; border-radius: 10px;
  color: var(--ts-metin, #16161a); font-size: 14px; font-weight: 600;
}
.ac-ts-takvim .flatpickr-day:hover, .ac-ts-takvim .flatpickr-day:focus { background: var(--ts-hover, #f3f3f5); border-color: transparent; }
.ac-ts-takvim .flatpickr-day.today { border-color: var(--ts-cizgi, #e4e4e8); }
.ac-ts-takvim .flatpickr-day.today::after {
  content: ""; position: absolute; left: 50%; bottom: 5px; width: 4px; height: 4px; margin-left: -2px; border-radius: 50%; background: var(--ts-isaret, #c8102e);
}
.ac-ts-takvim .flatpickr-day { position: relative; }
.ac-ts-takvim .flatpickr-day.selected, .ac-ts-takvim .flatpickr-day.selected:hover, .ac-ts-takvim .flatpickr-day.selected:focus {
  background: var(--ts-vurgu, #16161a); border-color: var(--ts-vurgu, #16161a); color: var(--ts-vurgu-metin, #fff);
}
.ac-ts-takvim .flatpickr-day.selected.today::after { background: var(--ts-vurgu-metin, #fff); }
.ac-ts-takvim .flatpickr-day.flatpickr-disabled, .ac-ts-takvim .flatpickr-day.flatpickr-disabled:hover { text-decoration: none; border-color: transparent; color: var(--ts-soluk, #6b6b73); opacity: .35; background: none; }
.ac-ts-takvim .flatpickr-day.prevMonthDay, .ac-ts-takvim .flatpickr-day.nextMonthDay { color: var(--ts-soluk, #6b6b73); opacity: .5; }

/* tarih + saat: flatpickr'ın saat çarkı yerine saat şeridi */
.ac-ts-takvim--saatli .flatpickr-time { display: none !important; }
.ac-ts-serit {
  display: flex; gap: 6px; margin: 8px -10px 0; padding: 10px 10px 4px; border-top: 1px solid var(--ts-cizgi, #e4e4e8);
  overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: thin;
}
.ac-ts-serit .ac-ts-saat__dilim { flex: 0 0 auto; scroll-snap-align: center; }

/* kısayollar */
.ac-ts-alt { display: flex; gap: 6px; margin: 8px -10px -10px; padding: 8px 10px; border-top: 1px solid var(--ts-cizgi, #e4e4e8); }
.ac-ts-kisa {
  height: 32px; padding: 0 12px; border: 1px solid var(--ts-cizgi, #e4e4e8); border-radius: 999px; background: var(--ts-yuzey, #fff);
  color: var(--ts-metin, #16161a); font: inherit; font-size: 13px; font-weight: 600; cursor: pointer;
  transition: background-color .15s ease, border-color .15s ease;
}
.ac-ts-kisa:hover:not(:disabled) { background: var(--ts-hover, #f3f3f5); border-color: var(--ts-soluk, #6b6b73); }
.ac-ts-kisa--temizle { margin-left: auto; color: var(--ts-soluk, #6b6b73); }
.ac-ts-kisa:disabled { opacity: .4; cursor: not-allowed; }

/* ---------------------------------------------------------------- saat dilimleri */
.ac-ts-saat {
  position: fixed; z-index: 1090; max-height: 320px; padding: 8px 10px 10px; overflow-y: auto; overscroll-behavior: contain;
  border: 1px solid var(--ts-cizgi, #e4e4e8); border-radius: var(--ts-yaricap, 12px); background: var(--ts-yuzey, #fff); color: var(--ts-metin, #16161a);
  box-shadow: var(--ts-golge, 0 18px 48px -12px rgb(16 16 24 / .28), 0 2px 6px rgb(16 16 24 / .08)); font-size: 14px; animation: ac-ts-ac .16s cubic-bezier(.2, .8, .2, 1);
}
.ac-ts-saat[hidden] { display: none; }
.ac-ts-saat.is-alt {
  inset: auto 0 0 0; max-height: min(60vh, 420px); border-radius: 18px 18px 0 0; padding: 14px 14px calc(14px + env(safe-area-inset-bottom));
}
.ac-ts-saat.is-alt::before { content: ""; display: block; width: 40px; height: 4px; margin: -4px auto 10px; border-radius: 4px; background: var(--ts-cizgi, #e4e4e8); }
.ac-ts-saat__grup + .ac-ts-saat__grup { margin-top: 8px; }
.ac-ts-saat__baslik {
  position: sticky; top: -8px; z-index: 1; box-shadow: 0 6px 6px -6px rgb(0 0 0 / .12); display: block; margin: 0 -10px 6px; padding: 6px 10px 4px; background: var(--ts-yuzey, #fff);
  color: var(--ts-soluk, #6b6b73); font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
}
.ac-ts-saat__izgara { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.ac-ts-saat__dilim {
  height: 36px; min-width: 64px; padding: 0 8px; border: 1px solid var(--ts-cizgi, #e4e4e8); border-radius: 10px; background: var(--ts-yuzey, #fff);
  color: var(--ts-metin, #16161a); font: inherit; font-size: 14px; font-weight: 600; font-variant-numeric: tabular-nums; cursor: pointer;
  transition: background-color .12s ease, border-color .12s ease, color .12s ease;
}
.ac-ts-saat__dilim:hover:not(:disabled), .ac-ts-saat__dilim.is-odak { background: var(--ts-hover, #f3f3f5); border-color: var(--ts-soluk, #6b6b73); }
.ac-ts-saat__dilim[aria-selected="true"], .ac-ts-saat__dilim[aria-selected="true"]:hover { background: var(--ts-vurgu, #16161a); border-color: var(--ts-vurgu, #16161a); color: var(--ts-vurgu-metin, #fff); }
.ac-ts-saat__dilim:disabled { opacity: .3; cursor: not-allowed; text-decoration: line-through; }
@media (prefers-reduced-motion: reduce) { .ac-ts-saat { animation: none; } }
.ac-ts-saat.is-alt .ac-ts-saat__baslik { top: -14px; margin: 0 -14px 6px; padding: 8px 14px 4px; }
