/* Hallmark · pre-emit critique: P4 H4 E4 S5 R4 V4
 * Shared companion. Uses the site's existing brand tokens; function supplies the visual interest. */
:root {
  --pb-shade: rgb(18 38 27 / .48); --pb-rule: rgb(18 38 27 / .18); --pb-soft: rgb(18 38 27 / .06);
  --pb-white: #fff; --pb-print-ink: #111; --pb-focus: #126bce;
  --pb-ease: cubic-bezier(.16, 1, .3, 1); --pb-duration: 180ms;
}
html, body { overflow-x: clip; }
body { padding-bottom: 106px; }
[hidden] { display: none !important; }
.pb-button, .pb-text-button, .pb-close, .pb-dock button, .pb-dock a, .pb-drawer button { font: 800 .9rem var(--body); color: var(--ink); }
.pb-button { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; padding: 9px 14px; gap: 8px; border: 2px solid var(--ink); border-radius: 12px; background: var(--card); text-decoration: none; cursor: pointer; white-space: nowrap; }
.pb-button:hover { background: var(--band); color: var(--ink); }
.pb-primary { background: var(--orange); box-shadow: 0 3px 0 var(--ink); }
.pb-primary:hover { background: var(--yellow); }
.pb-button:active { transform: translateY(2px); }
.pb-text-button { border: 0; background: transparent; cursor: pointer; min-height: 44px; text-decoration: underline; text-underline-offset: 3px; padding: 6px; }
button:disabled, .pb-button:disabled { opacity: .48; cursor: not-allowed; transform: none; box-shadow: none; }
:where(button, input, textarea, select, a, summary):focus-visible { outline: 3px solid var(--pb-focus); outline-offset: 3px; }
.pb-eyebrow { font: 700 .7rem var(--mono); letter-spacing: .08em; margin: 0 0 8px; }
.pb-empty { text-align: center; padding: 28px 16px; }
.pb-empty p { font-size: .93rem; color: var(--muted); }
.pb-empty .pb-button { margin: 4px; }
.pb-close { position: absolute; top: 12px; right: 12px; border: 2px solid var(--ink); border-radius: 50%; width: 44px; height: 44px; cursor: pointer; background: var(--card); font-size: 1.5rem; z-index: 1; }
.pb-close:hover { background: var(--yellow); }
.pb-dock { position: fixed; z-index: 30; bottom: max(16px, env(safe-area-inset-bottom)); left: 50%; transform: translateX(-50%); width: min(430px, calc(100% - 24px)); display: flex; align-items: center; gap: 4px; padding: 6px 10px; background: var(--card); border: 3px solid var(--ink); border-radius: 18px; box-shadow: 0 5px 0 var(--ink); }
.pb-dock button { background: transparent; border: 0; min-height: 44px; cursor: pointer; border-radius: 8px; padding: 6px 10px; }
.pb-dock button:hover, .pb-dock a:hover { background: var(--band); }
#pb-dock-open { display: flex; align-items: center; flex: 1; gap: 10px; text-align: left; min-width: 0; }
.pb-dock-icon { background: var(--orange); border-radius: 8px; font-size: 1.5rem; line-height: 1; padding: 8px; }
.pb-dock strong { display: block; white-space: nowrap; }
.pb-dock small { display: block; font-size: .72rem; color: var(--muted); max-width: 165px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#pb-dock-count { background: var(--ink); color: var(--card); font-size: .72rem; border-radius: 6px; padding: 2px 6px; }
.pb-dock a { padding: 10px 7px; text-decoration: none; border-radius: 8px; }
.pb-drawer { inset: 0 0 0 auto; margin: 0 0 0 auto; width: min(500px, 100%); max-width: 100%; height: 100dvh; max-height: 100dvh; padding: 0; background: var(--bg); color: var(--ink); border: 0; border-left: 3px solid var(--ink); overflow: hidden; }
.pb-drawer[open] { display: flex; flex-direction: column; }
.pb-drawer::backdrop, .pb-preview-dialog::backdrop { background: var(--pb-shade); }
.pb-drawer-top { position: relative; padding: 24px 24px 16px; background: var(--band); border-bottom: 2px solid var(--ink); }
.pb-drawer h2 { margin: 12px 40px 8px 0; font-size: 1.7rem; overflow-wrap: anywhere; }
.pb-drawer-top p:last-child { font-size: .9rem; margin: 0; }
#pb-drawer-list { flex: 1; min-height: 60px; overflow-y: auto; padding: 12px 20px; }
.pb-drawer-play { display: flex; align-items: center; gap: 10px; padding: 12px 0; border-bottom: 1px solid var(--pb-rule); }
.pb-drawer-play > b { width: 22px; flex: none; font: 700 1rem var(--mono); }
.pb-mini-field { width: 68px; flex: none; }
.pb-drawer-play > div:not(.pb-mini-field) { flex: 1; min-width: 0; }
.pb-drawer-play a { color: var(--ink); font-size: .95rem; overflow-wrap: anywhere; }
.pb-drawer-play small { display: block; color: var(--muted); font-size: .74rem; }
.pb-drawer-play button { width: 44px; min-height: 44px; flex: none; border: 1px solid var(--pb-rule); border-radius: 8px; background: var(--card); cursor: pointer; }
.pb-drawer-actions { padding: 12px 20px max(16px, env(safe-area-inset-bottom)); border-top: 2px solid var(--ink); background: var(--card); }
.pb-drawer-actions > .pb-button { margin-bottom: 8px; }
.pb-drawer-print { display: flex; gap: 6px; flex-wrap: wrap; }
.pb-drawer-print .pb-button { flex: 1; font-size: .78rem; padding: 8px; }
#pb-drawer-status { font-weight: 800; font-size: .85rem; margin: 4px 0; }
/* A compact bound-book tray stays with the coach across the site. */
.pb-dock { background:#183b34; color:#fffdf5; border:1px solid #183b34; border-radius:4px; padding:7px; box-shadow:0 6px 20px rgb(18 38 27 / .18); }
.pb-dock button,.pb-dock a { color:#fffdf5; border-radius:2px; font-size:.78rem; }
.pb-dock button:hover,.pb-dock a:hover { background:#31594c; }
.pb-dock-icon { background:transparent; color:#ff956b; border-radius:0; padding:2px; display:flex; }
.pb-dock small { color:#b9cabc; font-size:.65rem; }
#pb-dock-count { background:#d9ee91; color:#183b34; border-radius:2px; font:900 .7rem var(--body); }
#pb-dock-print { background:#ff733b; color:#183b34; min-width:67px; }
#pb-dock-print:hover { background:#ff956b; }
.pb-drawer { background:#f2f0e7; border-left:6px solid #183b34; }
.pb-drawer-top { background:#183b34; color:#fffdf5; border-bottom:0; padding:28px 24px 22px; }
.pb-drawer h2 { font:900 1.9rem/1.15 var(--body); letter-spacing:-.04em; }
.pb-drawer-top .pb-eyebrow { color:#d9ee91; }
.pb-drawer-top .pb-close { border-radius:2px; border-width:1px; }
.pb-drawer-play { border-bottom:1px solid #c9cec3; }
.pb-drawer-play > b { color:#183b34; }
.pb-drawer-play button,.pb-drawer .pb-button { border-radius:2px; border-width:1px; }
.pb-drawer .pb-primary { background:#ff733b; box-shadow:none; }
.pb-drawer-actions { border-top:1px solid #183b34; background:#fffdf5; }
.pb-paper { color: var(--pb-print-ink); background: var(--pb-white); padding: 20px; }
.pb-paper-head { border-bottom: 2px solid var(--pb-print-ink); margin-bottom: 16px; padding-bottom: 8px; }
.pb-paper-head h2 { font: 800 1.5rem var(--body); margin: 0; }
.pb-paper-head p { margin: 4px 0; font-size: .72rem; }
.pb-paper-grid { display: grid; gap: 16px; }
.pb-paper-play { min-width: 0; break-inside: avoid; border: 1px solid var(--pb-rule); padding: 10px; }
.pb-paper-play h3 { font: 900 .92rem var(--body); margin: 0 0 8px; }
.pb-paper-play h3 b { display: inline-block; background: var(--pb-print-ink); color: var(--pb-white); padding: 2px 6px; margin-right: 4px; }
.pb-paper-play h4 { font: 900 .86rem var(--body); margin: 10px 0 4px; }
.pb-paper-play p, .pb-paper-play li { font: 500 .8rem/1.45 var(--body); margin: 6px 0; }
.pb-paper-play ol, .pb-paper-play ul { padding-left: 18px; margin: 4px 0; }
.pb-paper-wrist .pb-paper-grid, .pb-paper-call .pb-paper-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pb-paper-book .play-svg { max-width: 430px; margin: auto; }
#pb-print-root { display: none; }
@media (max-width: 359px) { .pb-dock { padding: 4px; gap: 0; } .pb-dock-icon { display: none; } .pb-drawer-print .pb-button { flex: 0 1 auto; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; } }
@media print {
  body { padding: 0 !important; }
  .pb-dock, .pb-drawer, .pb-preview-dialog { display: none !important; }
  body.pb-printing > :not(#pb-print-root) { display: none !important; }
  body.pb-printing #pb-print-root { display: block !important; }
  body.pb-printing { background: var(--pb-white); }
  .pb-paper { padding: 0; }
  .pb-paper svg { width: 100%; height: auto; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .pb-paper h2 { font-size: 20pt; }
  .pb-paper h3 { font-size: 12pt; }
  .pb-paper p, .pb-paper li { font-size: 10pt; }
  .pb-paper-book .pb-paper-play { break-after: page; border: 0; }
  .pb-paper-book .pb-paper-play:last-child { break-after: auto; }
  .pb-paper-book .play-svg { max-width: 3.8in; }
  .pb-paper-wrist .pb-paper-grid { grid-template-columns: repeat(2, 3.1in); gap: .15in; }
  .pb-paper-wrist .pb-paper-play { padding: .05in; border: 1px dashed var(--pb-print-ink); }
  .pb-paper-wrist .pb-paper-play h3 { font-size: 9pt; }
  .pb-paper-call .pb-paper-play p { font-size: 8pt; }
  @page { size: letter; margin: .45in; }
}
