/* Randevu modülü: yalnızca tema token'ları (--color-*, --radius, --space-*, --font-heading, --ease, --dur). Sabit renk yok. */
.bk{--bk-line:color-mix(in srgb,var(--color-text) 12%,var(--color-surface));--bk-edge:color-mix(in srgb,var(--color-text) 45%,var(--color-surface));--bk-soft:color-mix(in srgb,var(--color-primary) 10%,var(--color-surface));--bk-ring:color-mix(in srgb,var(--color-primary) 24%,transparent);--bk-muted:var(--color-muted);padding-top:clamp(24px,5vw,48px);padding-bottom:clamp(48px,8vw,80px)}
.bk [hidden]{display:none !important}
.bk-head h1{margin:0 0 var(--space-2);font-family:var(--font-heading);font-size:var(--text-h1);font-weight:500;line-height:1.15;letter-spacing:-.01em}
.bk-head p{margin:0;max-width:52ch}
.bk .muted{color:var(--bk-muted)}
.bk-small{font-size:.92rem;color:var(--bk-muted)}
.bk a{color:var(--color-primary);text-underline-offset:3px}
.bk-hp{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);border:0;white-space:nowrap}

/* ilerleme */
.bk-progress{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));list-style:none;margin:0 0 clamp(20px,4vw,32px);padding:0}
.bk-progress li{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--space-2);min-width:0;font-size:.8rem;line-height:1.2;text-align:center;color:var(--bk-muted)}
.bk-progress li::before{content:"";position:absolute;top:17px;left:-50%;width:100%;height:2px;background:var(--bk-line);z-index:0}
.bk-progress li:first-child::before{display:none}
.bk-dot{position:relative;z-index:1;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--color-surface);border:2px solid var(--bk-edge);font-weight:600;font-size:.9rem}
.bk-progress li.is-current{color:var(--color-text);font-weight:600}
.bk-progress li.is-current .bk-dot{border-color:var(--color-primary);background:var(--color-primary);color:var(--color-on-primary);box-shadow:0 0 0 4px var(--bk-ring)}
.bk-progress li.is-done .bk-dot{font-size:0;border-color:var(--color-primary);background:var(--bk-soft)}
.bk-progress li.is-done .bk-dot::after{content:"";position:absolute;left:50%;top:44%;width:6px;height:11px;border:solid var(--color-primary);border-width:0 2px 2px 0;transform:translate(-50%,-50%) rotate(45deg)}
.bk-progress li.is-done::before,.bk-progress li.is-current::before{background:var(--color-primary)}
.bk-progress li.is-skipped{opacity:.45}
@media(max-width:560px){.bk-plabel{font-size:.7rem}.bk-dot{width:32px;height:32px}.bk-progress li::before{top:15px}}

/* yerleşim */
.bk-layout{display:grid;gap:var(--space-5);grid-template-columns:minmax(0,1fr)}
@media(min-width:900px){.bk-layout{grid-template-columns:minmax(0,1fr) 320px;gap:var(--space-6);align-items:start}.bk-aside{position:sticky;top:calc(var(--nav-h) + var(--space-4))}}
.bk-form{position:relative;min-width:0}
.bk-aside-card{background:var(--color-surface);border:1px solid var(--bk-line);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--space-5)}
.bk-aside-card h2{margin:0 0 var(--space-3);font-family:var(--font-heading);font-size:1.15rem;font-weight:600}

/* adım kartları */
.bk-step{min-width:0;margin:0 0 var(--space-4);padding:clamp(18px,4vw,32px);border:1px solid var(--bk-line);border-radius:var(--radius);background:var(--color-surface);box-shadow:var(--shadow)}
.bk-step legend{float:left;width:100%;display:flex;align-items:center;gap:var(--space-3);padding:0;margin:0 0 var(--space-4);font-family:var(--font-heading);font-size:clamp(1.2rem,3vw,1.45rem);font-weight:600;line-height:1.25}
.bk-step legend:focus{outline:none}
.bk-step legend:focus-visible{outline:3px solid var(--color-accent);outline-offset:4px;border-radius:6px}
.bk-num{flex:none;width:32px;height:32px;border-radius:50%;background:var(--color-primary);color:var(--color-on-primary);display:inline-grid;place-items:center;font-family:var(--font-body);font-size:.95rem;font-weight:600}
.is-js .bk-step{display:none;margin-bottom:var(--space-3)}
.is-js .bk-step.is-active{display:block;animation:bkIn var(--dur,.2s) var(--ease)}
@keyframes bkIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.is-js .bk-step.is-active{animation:none}.bk-progress li,.bk-card-body,.bk-day,.bk-time{transition:none}}
.bk-js-only{display:none}
.is-js .bk-js-only{display:block}
.is-js .bk-nojs{display:none}
.is-js .bk-nav{display:flex}

/* hizmet ve uzman kartları */
.bk-group h3{margin:0 0 var(--space-3);font-size:.9rem;font-weight:600;color:var(--bk-muted)}
.bk-group + .bk-group{margin-top:var(--space-5)}
.bk-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:var(--space-3)}
.bk-staff{grid-template-columns:repeat(auto-fill,minmax(min(100%,150px),1fr))}
.bk-card{position:relative;display:block;cursor:pointer}
.bk-card input{position:absolute;z-index:1;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.bk-card-body{position:relative;display:flex;flex-direction:column;gap:var(--space-1);height:100%;min-height:72px;padding:var(--space-4) 44px var(--space-4) var(--space-4);border:1.5px solid var(--bk-edge);border-radius:var(--radius);background:var(--color-surface);transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
.bk-card-body::before{content:"";position:absolute;top:var(--space-4);right:var(--space-4);width:20px;height:20px;border-radius:50%;border:2px solid var(--bk-edge);background:var(--color-surface)}
.bk-card:hover .bk-card-body{border-color:var(--color-primary)}
.bk-card:active .bk-card-body{transform:scale(.99)}
.bk-card input:checked + .bk-card-body{border-color:var(--color-primary);background:var(--bk-soft);box-shadow:0 0 0 3px var(--bk-ring)}
.bk-card input:checked + .bk-card-body::before{border-color:var(--color-primary);box-shadow:inset 0 0 0 4px var(--color-primary)}
.bk-card input:focus-visible + .bk-card-body{outline:3px solid var(--color-accent);outline-offset:2px}
.bk-card b{font-size:1.02rem;font-weight:600;line-height:1.35;overflow-wrap:anywhere}
.bk-card small{color:var(--bk-muted);line-height:1.4}
.bk-card em{margin-top:auto;padding-top:var(--space-1);font-style:normal;font-size:.92rem;font-weight:600;color:var(--color-primary)}
.bk-staff-card .bk-card-body{align-items:center;text-align:center;padding:var(--space-5) var(--space-3)}
.bk-staff-card .bk-card-body::before{top:var(--space-2);right:var(--space-2)}
.bk-avatar{width:56px;height:56px;margin-bottom:var(--space-1);border-radius:50%;object-fit:cover;display:grid;place-items:center;background:var(--bk-soft);color:var(--color-primary);font-family:var(--font-heading);font-weight:600;font-size:1.3rem}

/* takvim ve saatler */
@media(min-width:700px){.is-js .bk-picker{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-6);align-items:start}.bk-picker .bk-times{margin-top:0}}
.bk-cal{padding:var(--space-3);border:1px solid var(--bk-line);border-radius:var(--radius);background:var(--color-bg);max-width:420px;width:100%;margin:0 auto}
.bk-cal.is-loading{opacity:.92}
.bk-cal-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-3)}
.bk-cal-title{font-weight:600;font-size:1.05rem;text-align:center}
.bk-cal-nav{flex:none;width:44px;height:44px;border-radius:50%;border:1.5px solid var(--bk-edge);background:var(--color-surface);color:var(--color-text);font:inherit;font-size:1.25rem;line-height:1;cursor:pointer;transition:border-color var(--dur) var(--ease)}
.bk-cal-nav:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}
.bk-cal-nav:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}
.bk-cal-nav:disabled{opacity:.35;cursor:not-allowed}
.bk-cal table{width:100%;border-collapse:separate;border-spacing:4px;table-layout:fixed}
.bk-cal th{padding:var(--space-1) 0;font-size:.75rem;font-weight:600;color:var(--bk-muted)}
.bk-cal td{padding:0;text-align:center}
.bk-day{position:relative;width:100%;min-height:44px;aspect-ratio:1;padding:0;border:1.5px solid transparent;border-radius:10px;background:transparent;color:var(--color-text);font:inherit;font-variant-numeric:tabular-nums;cursor:pointer;display:grid;place-items:center;transition:background var(--dur) var(--ease)}
.bk-day:hover:not([aria-disabled=true]):not([aria-selected=true]){background:var(--bk-soft)}
.bk-day:focus-visible{outline:3px solid var(--color-accent);outline-offset:1px}
.bk-day[aria-disabled=true]{color:var(--bk-muted);opacity:.4;cursor:not-allowed;text-decoration:line-through;text-decoration-thickness:1px}
.bk-day.is-today{box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--color-accent) 75%,var(--color-text));font-weight:700}
.bk-day.has-slots::after{content:"";position:absolute;bottom:5px;left:50%;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;background:var(--color-primary)}
.bk-cal .bk-day[aria-selected=true],.bk-cal .bk-day[aria-selected=true]:hover{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary);font-weight:700}
.bk-cal .bk-day[aria-selected=true]::after{background:var(--color-on-primary)}
.bk-cal.is-loading .bk-day{opacity:.5}
.bk-times{margin-top:var(--space-5)}
.bk-times h3{margin:0 0 var(--space-3);font-family:var(--font-heading);font-size:1.1rem;font-weight:600}
.bk-time-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2)}
@media(min-width:560px){.bk-time-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.bk-time{min-height:48px;padding:0 var(--space-2);border:1.5px solid var(--bk-edge);border-radius:12px;background:var(--color-surface);color:var(--color-text);font:inherit;font-weight:500;font-variant-numeric:tabular-nums;cursor:pointer;transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease)}
.bk-time:hover{border-color:var(--color-primary)}
.bk-time:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}
.bk-time[aria-pressed=true]{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary);font-weight:700}

/* alanlar */
.bk-field{display:block;margin-bottom:var(--space-4);font-weight:600;line-height:1.4}
.bk-field input,.bk-field textarea{display:block;width:100%;min-height:48px;margin-top:var(--space-2);padding:var(--space-3);font:inherit;font-weight:400;color:var(--color-text);background:var(--color-bg);border:1.5px solid var(--bk-edge);border-radius:var(--radius)}
.bk-field textarea{min-height:104px;resize:vertical}
.bk-field input:focus,.bk-field textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--bk-ring)}
.bk-field input:focus-visible,.bk-field textarea:focus-visible{outline:3px solid var(--color-accent);outline-offset:1px}
.bk-field.is-invalid input,.bk-field.is-invalid textarea{border-color:var(--color-primary);border-width:2px;background:var(--bk-soft)}
.bk-field .muted{font-weight:400}
.bk-check{display:flex;gap:var(--space-3);align-items:flex-start;margin:var(--space-3) 0;padding:var(--space-1) 0;line-height:1.5}
.bk-check input{flex:none;width:22px;height:22px;margin:2px 0 0;accent-color:var(--color-primary)}
.bk-check.is-invalid{padding-left:var(--space-3);box-shadow:inset 3px 0 0 var(--color-primary)}

/* özet */
.bk-sum{display:grid;margin:0 0 var(--space-4)}
.bk-sum > div{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-4);padding:var(--space-2) 0;border-bottom:1px solid var(--bk-line)}
.bk-sum > div:first-child{padding-top:0}
.bk-sum > div:last-child{border-bottom:0}
.bk-sum dt{flex:none;color:var(--bk-muted)}
.bk-sum dd{min-width:0;margin:0;text-align:right;font-weight:600;overflow-wrap:anywhere}
.bk-status{display:inline-block;padding:2px 12px;border-radius:999px;background:var(--bk-soft);color:var(--color-text);font-size:.88rem;font-weight:600}
.bk-status-pending{background:color-mix(in srgb,var(--color-accent) 22%,var(--color-surface))}
.bk-status-cancelled{background:var(--bk-line);color:var(--bk-muted)}

/* düğmeler ve hata */
.bk .btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:var(--space-3) var(--space-5);font-weight:600;text-align:center}
.bk .btn[disabled]{opacity:.55;cursor:wait}
.bk-submit{width:100%;min-height:52px;font-size:1.05rem}
.bk .bk-btn-ghost{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:var(--space-3) var(--space-5);border:1.5px solid var(--bk-edge);border-radius:var(--radius-btn);background:transparent;color:var(--color-text);font:inherit;font-weight:600;text-decoration:none;cursor:pointer;transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease)}
.bk .bk-btn-ghost:hover{border-color:var(--color-primary);color:var(--color-primary)}
.bk .bk-btn-ghost:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}
.bk .btn:active,.bk .bk-btn-ghost:active{transform:scale(.98)}
.bk-nav{justify-content:space-between;align-items:center;gap:var(--space-3);margin-top:var(--space-2)}
.bk-nav .btn{min-width:140px}
@media(max-width:899px){.is-js .bk-nav{position:sticky;bottom:0;z-index:5;margin:0 calc(var(--space-1) * -1);padding:var(--space-3) var(--space-1) calc(var(--space-3) + env(safe-area-inset-bottom));background:var(--color-bg);box-shadow:0 -1px 0 var(--bk-line)}}
.bk-error{display:none;margin:0 0 var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius);border-left:4px solid var(--color-primary);background:color-mix(in srgb,var(--color-primary) 9%,var(--color-surface));color:var(--color-text);font-weight:600}
.bk-error.is-shown{display:block}

/* sonuç sayfaları */
.bk-result{display:flex;justify-content:center}
.bk-result-card{width:100%;max-width:560px;padding:clamp(24px,5vw,40px) clamp(20px,4vw,32px);background:var(--color-surface);border:1px solid var(--bk-line);border-radius:var(--radius);box-shadow:var(--shadow);text-align:center}
.bk-result h1{margin:0 0 var(--space-2);font-family:var(--font-heading);font-size:clamp(1.6rem,4vw,2rem);font-weight:500;line-height:1.2}
.bk-result-card p{margin:0 0 var(--space-2)}
.bk-result-card .bk-sum{text-align:left;margin-top:var(--space-5)}
.bk-tick{position:relative;width:72px;height:72px;margin:0 auto var(--space-4);border-radius:50%;background:var(--color-primary);animation:bkPop .45s var(--ease) both}
.bk-tick::after{content:"";position:absolute;left:50%;top:44%;width:14px;height:28px;border:solid var(--color-on-primary);border-width:0 4px 4px 0;transform:translate(-50%,-55%) rotate(45deg)}
@keyframes bkPop{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.bk-tick{animation:none}}
.bk-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:center;margin:var(--space-5) 0 var(--space-3)}

/* Randevu sayfasında kendi alt çubuğu (Geri/İleri) var; genel mobil hızlı erişim çubuğu onu örtmesin */
@media(max-width:699.98px){.mbar{display:none}body{padding-bottom:0}}

/* Kayan (float) başlığın yanına grid/flex kapsayıcıların 0 genişlikte sıkışmasını önler (tarih-saat adımı) */
.bk-step>*:not(legend){clear:both}

/* Tek seçim netliği: seçili kart onay işaretiyle, diğerleri hafif soluk */
.bk-hint{margin:0 0 var(--space-4);font-size:.92rem;color:var(--bk-muted)}
.bk-cal-who{margin:0 0 var(--space-3);font-family:var(--font-heading);font-size:1.05rem;font-weight:600;text-align:center}
.bk-card input:checked + .bk-card-body::before{content:"\2713";display:grid;place-items:center;color:var(--color-on-primary);font-size:.8rem;font-weight:700;line-height:1;background:var(--color-primary);box-shadow:none}
.bk-cards:has(input:checked) .bk-card input:not(:checked) + .bk-card-body{opacity:.66}
.bk-cards:has(input:checked) .bk-card input:not(:checked) + .bk-card-body:hover{opacity:1}
.bk-card input:checked + .bk-card-body b::after{content:"Seçildi";margin-left:8px;padding:2px 9px;border-radius:999px;background:var(--color-primary);color:var(--color-on-primary);font-size:.7rem;font-weight:600;letter-spacing:.04em;vertical-align:middle}
