/* The owners' booking page, book.growthandember.com: hard-edged like Russ's page, one action colour. */
html, body { margin: 0; }
body { font: 16px/1.45 system-ui, "Segoe UI", Roboto, Arial, sans-serif; color: var(--ge-black); background: var(--ge-white); }
* { box-sizing: border-box; box-shadow: none !important; }
[hidden] { display: none !important; }
.bk-root { max-width: 720px; margin: 0 auto; padding: 24px 16px 48px; }
.bk-brand { font-weight: 800; letter-spacing: 0.02em; border-bottom: 2px solid var(--ge-black); padding-bottom: 8px; margin-bottom: 16px; }
h1 { font-size: 26px; margin: 0 0 8px; line-height: 1.2; }
.bk-lead { margin: 0 0 16px; }
.bk-test { display: inline-block; border: 2px solid var(--ge-black); padding: 2px 8px; font-size: 13px; font-weight: 800; margin-bottom: 12px; }
.bk-field { display: flex; flex-direction: column; gap: 4px; margin: 0 0 12px; }
.bk-field label { font-size: 14px; color: var(--ge-grey-3); }
.bk-field input, .bk-field select { min-height: 48px; border: var(--ge-line); padding: 0 10px; font: inherit; background: var(--ge-white); }
.bk-days { display: flex; flex-direction: column; gap: 10px; margin: 12px 0 16px; }
.bk-step { font-size: 14px; color: var(--ge-grey-3); }
.bk-day-name { font-weight: 700; font-size: 18px; border-top: 2px solid var(--ge-black); padding-top: 10px; margin-top: 4px; }

/* The day choice: a week grid, Monday first. A day with no free time is shown but cannot be picked. */
.bk-daygrid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.bk-dow { font-size: 12px; color: var(--ge-grey-3); text-align: center; padding-bottom: 2px; }
.bk-daypick { min-height: 52px; min-width: 0; padding: 4px 0; border: var(--ge-line); background: var(--ge-white); font: inherit; cursor: pointer; transition: none;
  display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1.1; }
.bk-daypick:hover:not(:disabled) { background: var(--ge-grey-1); }
.bk-daypick[aria-pressed="true"], .bk-daypick:active:not(:disabled) { background: var(--ge-black); color: var(--ge-white); }
.bk-daypick:disabled { color: var(--ge-grey-3); border-color: var(--ge-grey-2); background: var(--ge-grey-1); cursor: default; text-decoration: line-through; }
.bk-daypick-num { font-weight: 700; font-size: 17px; font-variant-numeric: tabular-nums; }
.bk-daypick-mon { font-size: 12px; }

/* The chosen day's times in four parts: night, morning, afternoon, evening. */
.bk-parts { display: flex; flex-direction: column; gap: 12px; }
.bk-part { border-top: 1px solid var(--ge-grey-2); padding-top: 8px; }
.bk-part-name { display: flex; align-items: baseline; gap: 10px; margin-bottom: 6px; }
.bk-part-name span { font-size: 13px; color: var(--ge-grey-3); font-variant-numeric: tabular-nums; }
.bk-none { margin: 0; font-size: 14px; color: var(--ge-grey-3); }
.bk-slots { display: grid; grid-template-columns: repeat(auto-fill, minmax(76px, 1fr)); gap: 6px; }
.bk-slot { min-height: 48px; min-width: 0; border: var(--ge-line); background: var(--ge-white); font: inherit; font-variant-numeric: tabular-nums; cursor: pointer; transition: none; }
.bk-slot:hover { background: var(--ge-grey-1); }
.bk-slot[aria-pressed="true"], .bk-slot:active { background: var(--ge-black); color: var(--ge-white); }
.bk-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
.bk-actions .ge-button { min-height: 48px; font-weight: 700; }
.bk-note { padding: 10px 12px; border-left: 4px solid var(--ge-black); background: var(--ge-grey-1); margin: 12px 0; }
.bk-error { border-left-color: var(--ge-record); color: var(--ge-record); background: var(--ge-white); font-weight: 600; }
.bk-done { border: 2px solid var(--ge-black); padding: 16px; margin: 12px 0; }
.bk-done a { word-break: break-all; }
.bk-hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

button:focus-visible { outline: 3px solid var(--ge-action); outline-offset: -3px; }
.bk-actions { position: sticky; bottom: 0; z-index: 2; background: var(--ge-white); border-top: 1px solid var(--ge-black); padding: 12px 0; }
.bk-actions .ge-button { white-space: normal; text-align: left; }

/* The shared grey hover would leave a white label on pale grey: action and record buttons keep their own colour, a shade darker. */
.ge-button--action:hover:not(:disabled) { background: var(--ge-action); filter: brightness(0.85); }
.ge-button--record:hover:not(:disabled) { background: var(--ge-record); filter: brightness(0.85); }
