/* "Broneeri kõne" hüpikaken — kasutab app.css tokeneid (--accent, --ink, --paper …) */
.bk{ position:fixed; inset:0; z-index:200; display:flex; align-items:center; justify-content:center; padding:clamp(12px,4vw,40px); }
.bk[hidden], .bk [hidden]{ display:none !important; }
.bk__backdrop{ position:absolute; inset:0; background:rgba(17,19,24,.55); backdrop-filter:blur(3px); }
.bk__panel{
  position:relative; width:min(680px,100%); max-height:92vh; overflow-y:auto;
  background:var(--paper); border:1px solid var(--ink); border-radius:var(--radius);
  box-shadow:0 60px 120px -40px rgba(17,19,24,.5);
  animation:bk-in .28s var(--ease-out);
}
@keyframes bk-in{ from{ opacity:0; transform:translateY(16px) scale(.98); } to{ opacity:1; transform:none; } }
.bk__x{
  position:absolute; top:12px; right:12px; width:36px; height:36px; z-index:2;
  border:1px solid var(--line); border-radius:var(--radius); background:var(--white);
  font-size:.95rem; cursor:pointer; transition:border-color .2s,background .2s;
}
.bk__x:hover{ border-color:var(--ink); background:var(--paper-2); }
.bk__inner{ padding:clamp(22px,4vw,40px); }

.bk__eyebrow{
  font-family:var(--f-mono); font-size:var(--fs-mono); letter-spacing:.16em;
  text-transform:uppercase; color:var(--accent); display:flex; align-items:center; gap:var(--s3);
}
.bk__eyebrow::before{ content:""; width:20px; height:2px; background:var(--accent); }
.bk__title{ font-family:var(--f-display); font-weight:700; font-size:clamp(1.5rem,3.6vw,2.1rem); letter-spacing:-.02em; margin-top:var(--s3); line-height:1.1; }

/* ---- Kalender ---- */
.bk__cal{ margin-top:var(--s6); }
.bk__wknav{ display:flex; align-items:center; gap:var(--s3); }
.bk__arrow{
  width:38px; height:38px; border:1px solid var(--line); border-radius:var(--radius);
  background:var(--white); font-size:1.2rem; line-height:1; cursor:pointer;
}
.bk__arrow:hover{ border-color:var(--ink); }
.bk__arrow:disabled{ opacity:.35; cursor:default; }
.bk__wklabel{ flex:1; text-align:center; font-family:var(--f-mono); font-size:.9rem; }

.bk__grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:6px; margin-top:var(--s4); }
.bk__grid[aria-busy="true"]{ opacity:.4; pointer-events:none; }
.bk__col{ display:flex; flex-direction:column; gap:5px; }
.bk__dh{ text-align:center; padding:6px 2px; border-bottom:2px solid var(--ink); margin-bottom:2px; }
.bk__dh.is-today{ border-bottom-color:var(--accent); }
.bk__dh span{ display:block; font-family:var(--f-mono); font-size:.62rem; text-transform:uppercase; letter-spacing:.06em; color:var(--ink-3); }
.bk__dh b{ display:block; font-size:1rem; margin-top:1px; }

.bk__slot{
  display:flex; flex-direction:column; align-items:center; gap:2px; text-align:center;
  padding:10px 4px; border:1px solid var(--line); border-radius:var(--radius);
  background:var(--white); font:inherit;
}
.bk__slot span{ font-family:var(--f-mono); font-size:.6rem; color:var(--ink-2); letter-spacing:.02em; }
.bk__slot em{ font-family:var(--f-mono); font-size:.6rem; font-style:normal; text-transform:uppercase; letter-spacing:.05em; }
.bk__slot--free{ cursor:pointer; border-style:dashed; transition:border-color .15s,transform .15s,background .15s; }
.bk__slot--free em{ color:var(--accent); }
.bk__slot--free:hover{ border-color:var(--accent); border-style:solid; background:var(--accent-wash); transform:translateY(-1px); }
.bk__slot--x{ background:var(--paper-2); color:var(--ink-3); }
.bk__slot--x em{ color:var(--ink-3); }

.bk__legend{ margin-top:var(--s4); font-family:var(--f-mono); font-size:.68rem; color:var(--ink-2); }
.bk__lg{ display:inline-block; width:11px; height:11px; border-radius:2px; vertical-align:-1px; }
.bk__lg--free{ border:1px dashed var(--accent); }
.bk__lg--x{ background:var(--paper-3); }

/* ---- Vorm ---- */
.bk__form{ margin-top:var(--s5); display:flex; flex-direction:column; gap:var(--s4); }
.bk__back{ align-self:flex-start; background:none; border:none; color:var(--accent); font-family:var(--f-mono); font-size:.75rem; cursor:pointer; }
.bk__picked{ font-family:var(--f-mono); font-size:.85rem; padding:10px 14px; background:var(--paper-2); border-left:3px solid var(--accent); }
.bk__field{ display:flex; flex-direction:column; gap:6px; font-family:var(--f-mono); font-size:.72rem; text-transform:uppercase; letter-spacing:.07em; color:var(--ink-2); }
.bk__req{ color:var(--accent); }
.bk__field input, .bk__field textarea{
  font:inherit; font-family:var(--f-sans); font-size:1rem; text-transform:none; letter-spacing:normal;
  padding:12px 14px; background:var(--white); border:1px solid var(--line); border-radius:var(--radius); color:var(--ink);
}
.bk__field input:focus, .bk__field textarea:focus{ outline:2px solid var(--accent); outline-offset:1px; border-color:transparent; }
.bk__field textarea{ resize:vertical; }
.bk__two{ display:grid; grid-template-columns:1fr 1fr; gap:var(--s4); }
.bk__hp{ position:absolute; left:-9999px; width:1px; height:1px; opacity:0; }
.bk__err{ color:#c0392b; font-family:var(--f-mono); font-size:.82rem; }
.bk__submit{
  font-family:var(--f-mono); font-size:.82rem; letter-spacing:.04em; text-transform:uppercase;
  padding:15px 24px; background:var(--ink); color:var(--paper); border:1px solid var(--ink);
  border-radius:var(--radius); cursor:pointer; transition:background .2s,color .2s;
}
.bk__submit:hover{ background:var(--accent); border-color:var(--accent); color:#fff; }
.bk__submit:disabled{ opacity:.55; cursor:default; }
.bk__note{ font-family:var(--f-mono); font-size:.72rem; color:var(--ink-3); }

/* ---- Valmis ---- */
.bk__done{ margin-top:var(--s6); text-align:center; display:flex; flex-direction:column; align-items:center; gap:var(--s3); }
.bk__check{
  width:54px; height:54px; display:grid; place-items:center; border-radius:50%;
  background:var(--accent); color:#fff; font-size:1.5rem;
}
.bk__done h3{ font-family:var(--f-display); font-weight:700; font-size:1.25rem; }
.bk__done p{ color:var(--ink-2); max-width:32ch; }
.bk__done .bk__submit{ margin-top:var(--s3); }

@media (max-width:560px){
  .bk__grid{ grid-template-columns:1fr; gap:4px; }
  .bk__col{ display:grid; grid-template-columns:auto 1fr 1fr 1fr; align-items:stretch; gap:4px; }
  .bk__dh{ border-bottom:none; border-right:2px solid var(--ink); display:flex; flex-direction:column; justify-content:center; margin:0; padding:0 8px 0 0; }
  .bk__two{ grid-template-columns:1fr; }
}
