/* Book page — v3 surface styles.
   Chrome (nav/menu/footer/drawer) and tokens come from /assets/css/site.css. */

.book-voice { display: grid; gap: 16px; align-content: start; }

.form-hint { font-family: var(--f-mono); font-size: 12px; color: var(--dim); margin: 0; }

/* calendar <details> panel */
.book-cal { display: block; }
.book-cal__summary {
  cursor: pointer; list-style: none;
  display: flex; justify-content: space-between; align-items: center; gap: 12px;
  padding: 16px; font-weight: 500; font-size: 15px;
}
.book-cal__summary::-webkit-details-marker { display: none; }
.book-cal__summary::after { content: "+"; font-family: var(--f-mono); font-weight: 400; }
.book-cal[open] .book-cal__summary { border-bottom: 1px solid var(--ln); }
.book-cal[open] .book-cal__summary::after { content: "–"; }
.book-cal__summary:hover { background: var(--lime); color: var(--navy); }
.book-cal__body { padding: 16px; display: grid; gap: 14px; }
.book-cal__frame { border: 1px solid var(--ln); background: #fff; min-height: 36rem; }
.book-cal__frame iframe { width: 100%; height: 100%; min-height: 36rem; border: 0; display: block; }

/* demo form — hooks used by forms.js / site-forms.js */
.form { display: block; }
.alert { border: 1px solid var(--ln); padding: 12px 14px; font-size: 14px; margin-bottom: 14px; background: var(--bg); }
.alert--info { color: var(--dim); }
.alert--success { border-color: var(--blue); box-shadow: inset 4px 0 0 var(--lime); }
.alert--error { border-color: var(--red,#FE3D33); color: var(--red,#FE3D33); }
.form-error { display: block; padding: 0 14px 8px; font-family: var(--f-mono); font-size: 11px; color: var(--red,#FE3D33); }
.form-error:empty { display: none; }
.fld:has([aria-invalid="true"]) { box-shadow: inset 0 0 0 2px var(--red,#FE3D33); }
