.bk{font:16px/1.5 var(--sans);color:var(--ink);padding:18px 18px 20px}
.bk-h{font:700 18px/1.3 var(--sans);margin:0 0 10px}
.bk-tz{display:block;font-size:13.5px;color:var(--muted);margin:0 0 14px}
.bk-tz select{font:inherit;font-size:16px;color:var(--link);background:none;border:0;padding:10px 2px;margin:-10px 0;cursor:pointer;max-width:72%}
.bk-day,.bk-time,.bk-btn,.bk-back{font:inherit;color:inherit;cursor:pointer}
.bk-day{display:flex;flex-direction:column;align-items:center;gap:1px;padding:10px 4px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}
.bk-day b{font:600 13px var(--mono);text-transform:uppercase;color:var(--muted)}
.bk-day span{font-weight:600;font-size:16px}
.bk-day i{font-style:normal;font-size:12px;color:var(--muted)}
.bk-times{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px}
.bk-time{min-height:52px;padding:8px;border:1.5px solid var(--accent-deep);border-radius:12px;background:var(--bg);color:var(--accent-deep);font-weight:600;font-size:17px;display:flex;flex-direction:column;align-items:center;justify-content:center}
.bk-time span{font-weight:400;font-size:12px;color:var(--muted)}
.bk-day:hover,.bk-time:hover{border-color:var(--accent);background:var(--soft)}
.bk-day:focus-visible,.bk-time:focus-visible,.bk-btn:focus-visible,.bk-back:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.bk-back{background:none;border:0;padding:12px 0;margin:-8px 0 2px;min-height:44px;color:var(--link);font-weight:500}
.bk-sum{margin:0 0 14px}.bk-sum span{color:var(--muted);font-size:14px}
.bk-form label{display:block;font-weight:500;font-size:14px;margin:0 0 12px}
.bk-form small{font-weight:400;color:var(--muted)}
.bk-form input,.bk-form textarea{display:block;width:100%;margin-top:5px;font:16px/1.4 var(--sans);color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:11px 12px}
.bk-form input:focus,.bk-form textarea:focus{outline:2px solid var(--accent);border-color:transparent}
.bk-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0}
.bk-meta{font:500 13px var(--mono);color:var(--muted);margin:4px 0 12px;text-wrap:balance}
.bk-go{display:flex;align-items:center;justify-content:center;width:100%;min-height:52px;border:0;border-radius:12px;background:var(--accent-deep);color:var(--accent-ink);font:600 16px var(--sans);text-decoration:none;cursor:pointer}
.bk-go:disabled{opacity:.6;cursor:wait}
.bk-links{display:flex;flex-direction:column;gap:10px;align-items:stretch;margin:14px 0}
.bk-links a:not(.bk-go){color:var(--link);text-align:center}
.bk-btn{min-height:48px;border:1px solid var(--line);border-radius:12px;background:var(--bg);font-weight:600}
.bk-danger{color:#b42318;border-color:#f1c4bf}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .bk-danger{color:#f87171;border-color:#5b2a2a}}
.bk-ok{font:700 20px var(--sans);color:#15803d;margin:0 0 8px}
.bk-err,.bk-warn{font-size:14px;border-radius:10px;padding:9px 12px;margin:0 0 12px}
.bk-err{background:#fde8e6;color:#9b1c1c}.bk-warn{background:var(--soft);color:var(--ink)}
.bk-fail,.bk-load,.bk-small{color:var(--muted);font-size:14.5px}
.bk-fail a{color:var(--link)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .bk-ok{color:#4ade80}:root:not([data-theme="light"]) .bk-err{background:#3b1513;color:#fca5a5}}
/* шторка на телефоне */
.bk-sheet-bg{position:fixed;inset:0;z-index:95;background:rgba(12,13,16,.5)}
.bk-sheet{position:fixed;left:0;right:0;bottom:0;z-index:96;max-height:92vh;max-height:92svh;overflow:auto;background:var(--bg);border-radius:20px 20px 0 0;padding:6px 0 calc(10px + env(safe-area-inset-bottom,0px));box-shadow:0 -10px 40px rgba(0,0,0,.25)}
.bk-sheet[hidden],.bk-sheet-bg[hidden]{display:none}
.bk-sheet-x{position:sticky;top:0;float:right;margin:6px 10px 0 0;width:44px;height:44px;border:0;border-radius:50%;background:var(--soft);color:var(--muted);font:500 22px/1 var(--sans);cursor:pointer;z-index:1}
@media (min-width:640px){.bk-sheet{left:50%;right:auto;bottom:auto;top:50%;transform:translate(-50%,-50%);width:min(520px,94vw);max-height:88vh;border-radius:20px}}
.bk-side{background:var(--bg)}
@media (min-width:1200px){#bk-side{flex:0 1 auto;min-height:0;overflow:auto;border:1px solid var(--line);border-radius:16px}}

/* календарь: месяц → неделя */
.bk-mh{display:flex;align-items:center;justify-content:space-between;margin:0 0 6px}
.bk-mh b{font-size:15px;text-transform:capitalize}
.bk-nav,.bk-month{font:inherit;cursor:pointer;background:none;border:0}
.bk-nav{width:44px;height:44px;border-radius:50%;color:var(--link);font-size:20px;line-height:1}
.bk-nav:hover:not(:disabled){background:var(--soft)}.bk-nav:disabled{color:var(--line);cursor:default}
.bk-month{font-weight:600;font-size:14px;color:var(--ink);padding:7px 14px;min-height:44px;border-radius:999px;background:var(--soft);border:1px solid var(--line)}
.bk-month::first-letter{text-transform:uppercase}
.bk-month span{color:var(--link)}
.bk-month:hover{border-color:var(--accent)}
.bk-wd,.bk-grid{display:grid;grid-template-columns:repeat(7,1fr);text-align:center}
.bk-wd span{font:600 11.5px var(--mono);text-transform:uppercase;color:var(--muted);padding:4px 0}
.bk-c{width:40px;height:40px;margin:2px auto;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14.5px;color:var(--muted);opacity:.55}
button.bk-c{opacity:1;border:0;cursor:pointer;font:700 14.5px var(--sans);color:var(--accent-deep);background:#fbeee8;background:color-mix(in srgb,var(--accent) 12%,var(--bg))}
button.bk-c:hover{background:#f6dccf;background:color-mix(in srgb,var(--accent) 22%,var(--bg))}
button.bk-c.on{background:var(--accent-deep);color:var(--accent-ink)}
button.bk-c:focus-visible,.bk-nav:focus-visible,.bk-month:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.bk-out{visibility:hidden}
.bk-grid{animation:bkIn .18s ease-out}
.bk-week{padding:0 0 4px;border-bottom:1px solid var(--line)}
@keyframes bkIn{from{opacity:.3;transform:translateY(-4px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.bk-grid{animation:none}}
.bk-hint{margin:10px 0 0;text-align:center}
.bk-dl{font-weight:600;margin:12px 0 10px}.bk-dl span{font-weight:400;font-size:13px;color:var(--muted)}
@media (max-width:360px){.bk-c{width:36px;height:36px}}
.bk-note{font-size:14px;background:color-mix(in srgb,#16a34a 12%,var(--bg));color:var(--ink);border-radius:10px;padding:9px 12px;margin:0 0 12px}
.bk-was{margin:0 0 6px;color:var(--muted);font-size:14.5px}.bk-was s{text-decoration-thickness:1.5px}
.bk-links .bk-back{text-align:center;margin:0}
.bk-grid{touch-action:pan-y}
/* форма на телефоне: шторка на весь экран, чтобы клавиатура iOS не закрывала поля и не дёргала страницу */
@media (max-width:639px){.bk-sheet:has(.bk-form),.bk-sheet:has(.bk-done){top:0;max-height:none;min-height:0!important;border-radius:0;padding-top:env(safe-area-inset-top,0px);overscroll-behavior:contain}}
.bk-sheet{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
/* поле с ошибкой, подсказка опечатки, ссылка-кнопка */
.bk-form input[aria-invalid="true"]{border-color:#c2410c;box-shadow:0 0 0 1px #c2410c}
.bk-ferr{margin:-6px 0 12px}
.bk-sug{font-size:14px;margin:-6px 0 12px;color:var(--muted)}
.bk-link{font:inherit;color:var(--link);background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.bk-fix{margin:0 0 12px}
.bk-fix label{display:block;font-weight:500;font-size:14px;margin:0 0 10px}
.bk-fix input{display:block;width:100%;margin-top:5px;font:16px/1.4 var(--sans);color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:11px 12px}
/* ручка шторки */
.bk-sheet::before{content:"";display:block;width:40px;height:5px;border-radius:3px;background:var(--line);margin:4px auto 0}
.bk-sheet:has(.bk-form)::before,.bk-sheet:has(.bk-done)::before{display:none}
.bk-note{background:#e9f7ee}
.bk-form textarea::placeholder{font-size:14px;line-height:1.45}
.bk-form input::placeholder,.bk-form textarea::placeholder,.bk-fix input::placeholder{color:var(--muted);opacity:.7}

.bk-sheet-x:focus:not(:focus-visible){outline:none}.bk-sheet-x:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.bk-sheet:focus{outline:none}
@media (min-width:640px){.bk-sheet::before{display:none}.bk-sheet{padding-top:10px}}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .bk-sheet{--bg:#181b21;--soft:#23272f;border-top:1px solid var(--line)}:root:not([data-theme="light"]) .bk-sheet-bg{background:rgba(0,0,0,.62)}}
:root[data-theme="dark"] .bk-sheet{--bg:#181b21;--soft:#23272f;border-top:1px solid var(--line)}:root[data-theme="dark"] .bk-sheet-bg{background:rgba(0,0,0,.62)}
.bk-sum span{display:block;margin-top:2px}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .bk-sheet-x{background:#262a32}}:root[data-theme="dark"] .bk-sheet-x{background:#262a32}
/* перелистывание недель и месяцев: новая сетка въезжает со стороны листания */
@keyframes bkInR{from{transform:translateX(42%);opacity:0}to{transform:none;opacity:1}}
@keyframes bkInL{from{transform:translateX(-42%);opacity:0}to{transform:none;opacity:1}}
@keyframes bkInF{from{opacity:0}to{opacity:1}}
.bk-grid.bk-in-r{animation:bkInR .24s cubic-bezier(.2,.8,.2,1)}
.bk-grid.bk-in-l{animation:bkInL .24s cubic-bezier(.2,.8,.2,1)}
.bk-in-f{animation:bkInF .24s ease-out}
.bk-grid{will-change:transform}
.bk-side,#bk-sheet-body,#bk-manage{overflow-x:clip}
@media (prefers-reduced-motion:reduce){.bk-grid.bk-in-r,.bk-grid.bk-in-l{animation:bkInF .2s ease-out}}
/* в форме нажимаются только сами поля: тап по подписи или пустому месту рядом не вызывает клавиатуру и рывки шторки */
.bk-form label{pointer-events:none;-webkit-tap-highlight-color:transparent}
.bk-form label input,.bk-form label textarea,.bk-form label a,.bk-form label button{pointer-events:auto}
/* экран «Вы записаны»: сверху итог, кнопки внизу под пальцем */
.bk-ok{display:flex;align-items:center;gap:10px;font-size:22px;margin:0 0 14px;padding-right:52px}
.bk-ok svg{width:30px;height:30px;flex:none}
.bk-done .bk-sum{background:var(--soft);border-radius:14px;padding:14px 16px;margin:0 0 18px;font-size:17px}
.bk-done p{margin:0 0 14px}
.bk-done .bk-links{margin:22px 0 0;gap:4px}
.bk-done .bk-links a:not(.bk-go){display:flex;align-items:center;justify-content:center;min-height:44px}
@media (max-width:639px){
  .bk-sheet:not([hidden]):has(.bk-done){display:flex;flex-direction:column}
  .bk-sheet:has(.bk-done) .bk-sheet-x{position:sticky;top:6px;align-self:flex-end;margin:6px 10px -50px 0;flex:none}
  #bk-sheet-body:has(.bk-done){flex:1 0 auto;display:flex;flex-direction:column;padding-top:22px}
  .bk-done{flex:1 0 auto;display:flex;flex-direction:column}
  .bk-done .bk-links{margin-top:auto;padding-top:22px}
}
