/* Plus Jakarta Sans (variable 400–800), kendi sunucumuzdan — harici istek ve render engeli yok. Lisans: SIL OFL 1.1 */
@font-face { font-family: 'Plus Jakarta Sans'; font-style: normal; font-weight: 400 800; font-display: swap; src: url('/fonts/plus-jakarta-sans-latin-ext.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Plus Jakarta Sans'; font-style: normal; font-weight: 400 800; font-display: swap; src: url('/fonts/plus-jakarta-sans-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* Vaktimce marka tokenları (spec: renk paleti) */
:root {
  --vk-navy: #111827;
  --vk-navy-2: #1F2937;
  --vk-teal: #14B8A6;
  --vk-teal-600: #0D9488;
  --vk-teal-700: #0F766E;
  --vk-teal-50: #F0FDFA;
  --vk-teal-100: #CCFBF1;
  --vk-sky: #3B82F6;
  --vk-sky-50: #EFF6FF;
  --vk-bg: #F8FAFC;
  --vk-white: #FFFFFF;
  --vk-border: #E5E7EB;
  --vk-muted: #64748B;
  --vk-text: #111827;
  --vk-success: #10B981;
  --vk-warning: #F59E0B;
  --vk-danger: #EF4444;

  --vk-radius-sm: 10px;
  --vk-radius: 14px;
  --vk-radius-lg: 20px;
  --vk-radius-xl: 28px;
  --vk-shadow-sm: 0 1px 2px rgba(17, 24, 39, .05);
  --vk-shadow: 0 4px 16px -4px rgba(17, 24, 39, .08), 0 2px 4px -2px rgba(17, 24, 39, .04);
  --vk-shadow-lg: 0 24px 48px -12px rgba(17, 24, 39, .18);
  --vk-font: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

  /* Bootstrap eşlemesi */
  --bs-primary: var(--vk-teal);
  --bs-primary-rgb: 20, 184, 166;
  --bs-link-color: var(--vk-teal-700);
  --bs-link-color-rgb: 15, 118, 110;
  --bs-link-hover-color: var(--vk-teal-600);
  --bs-body-font-family: var(--vk-font);
  --bs-body-color: var(--vk-text);
  --bs-body-bg: var(--vk-bg);
  --bs-border-color: var(--vk-border);
  --bs-secondary-color: var(--vk-muted);
  --bs-border-radius: var(--vk-radius-sm);
  --bs-border-radius-lg: var(--vk-radius);
  --bs-focus-ring-color: rgba(20, 184, 166, .25);
}

body { font-family: var(--vk-font); color: var(--vk-text); background: var(--vk-bg); -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, h5, .h1, .h2, .h3, .h4, .h5 { color: var(--vk-navy); font-weight: 750; letter-spacing: -.02em; }
.text-muted, .text-secondary { color: var(--vk-muted) !important; }
.text-teal { color: var(--vk-teal-700) !important; }
.text-navy { color: var(--vk-navy) !important; }
.bg-teal-50 { background: var(--vk-teal-50) !important; }
.bg-navy { background: var(--vk-navy) !important; }

.btn { font-weight: 600; border-radius: var(--vk-radius-sm); padding: .6rem 1.15rem; transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease; }
.btn:active { transform: translateY(1px); }
.btn-lg { padding: .85rem 1.5rem; font-size: 1.05rem; border-radius: 12px; }
.btn-sm { padding: .35rem .75rem; }
.btn-primary { --bs-btn-bg: var(--vk-teal); --bs-btn-border-color: var(--vk-teal); --bs-btn-hover-bg: var(--vk-teal-600); --bs-btn-hover-border-color: var(--vk-teal-600);
  --bs-btn-active-bg: var(--vk-teal-700); --bs-btn-active-border-color: var(--vk-teal-700); --bs-btn-disabled-bg: var(--vk-teal); --bs-btn-disabled-border-color: var(--vk-teal); --bs-btn-color: #fff; --bs-btn-hover-color: #fff; }
.btn-primary:hover { box-shadow: 0 8px 20px -6px rgba(20, 184, 166, .55); }
.btn-dark { --bs-btn-bg: var(--vk-navy); --bs-btn-border-color: var(--vk-navy); --bs-btn-hover-bg: var(--vk-navy-2); --bs-btn-hover-border-color: var(--vk-navy-2); }
.btn-outline-primary { --bs-btn-color: var(--vk-teal-700); --bs-btn-border-color: var(--vk-teal); --bs-btn-hover-bg: var(--vk-teal); --bs-btn-hover-border-color: var(--vk-teal); --bs-btn-active-bg: var(--vk-teal-600); }
.btn-light { --bs-btn-bg: #fff; --bs-btn-border-color: var(--vk-border); --bs-btn-hover-bg: var(--vk-bg); --bs-btn-hover-border-color: #CBD5E1; }
.btn-sky { background: var(--vk-sky); border-color: var(--vk-sky); color: #fff; }
.btn-sky:hover { background: #2563EB; color: #fff; }

.form-control, .form-select { border-radius: var(--vk-radius-sm); border-color: var(--vk-border); padding: .65rem .9rem; }
.form-control:focus, .form-select:focus { border-color: var(--vk-teal); box-shadow: 0 0 0 .2rem rgba(20, 184, 166, .18); }
.form-check-input:checked { background-color: var(--vk-teal); border-color: var(--vk-teal); }
.form-check-input:focus { box-shadow: 0 0 0 .2rem rgba(20, 184, 166, .2); border-color: var(--vk-teal); }
.form-label { font-weight: 600; font-size: .9rem; color: var(--vk-navy); }
.form-text { color: var(--vk-muted); }

.card { border: 1px solid var(--vk-border); border-radius: var(--vk-radius); box-shadow: var(--vk-shadow-sm); }
.badge { font-weight: 600; border-radius: 999px; padding: .4em .7em; }
.alert { border-radius: var(--vk-radius-sm); }
a { text-underline-offset: 3px; }
:focus-visible { outline: 2px solid var(--vk-teal); outline-offset: 2px; }

.status-badge { display: inline-flex; align-items: center; gap: .35rem; font-size: .78rem; font-weight: 600; padding: .25rem .6rem; border-radius: 999px; white-space: nowrap; }
.status-badge::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.status-Pending { background: #FEF3C7; color: #92400E; }
.status-Confirmed { background: var(--vk-teal-100); color: var(--vk-teal-700); }
.status-Completed { background: #DCFCE7; color: #166534; }
.status-Cancelled, .status-Rejected { background: #FEE2E2; color: #991B1B; }
.status-NoShow { background: #F3E8FF; color: #6B21A8; }
.status-Rescheduled { background: var(--vk-sky-50); color: #1D4ED8; }

.brand-wordmark { font-weight: 800; letter-spacing: -.04em; color: var(--vk-navy); }
.brand-wordmark span { color: var(--vk-teal); }

@media (prefers-reduced-motion: reduce) { * { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }

/* Mobilde büyük gutter'lar container padding'ini aşıp yatay kaydırma yaratmasın */
@media (max-width: 767.98px) { .row.g-5, .row.gx-5 { --bs-gutter-x: 1.5rem; } }

/* Hata yokken asp-validation-summary boş bir kutu basar; .alert sınıfıyla kırmızı kutu olarak görünmesin */
.validation-summary-valid { display: none !important; }
.validation-summary-errors ul { margin: 0; padding-left: 1.1rem; }
.field-validation-error { display: block; margin-top: .25rem; }
