/* The existing paper/card sheet, with one scrollable plan and a persistent confirmation row. */
.coach-room { z-index: 950; }
.coach-panel { position: relative; display: flex; flex-direction: column; width: min(960px, calc(100vw - 24px)); max-height: calc(100dvh - 24px - var(--safe-top, 0px)); margin: auto; background: var(--paper); color: var(--ink); border: 3px solid var(--ink); box-shadow: 6px 8px 0 #1b1a1744; }
.coach-head, .coach-footer { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 12px 16px; flex: 0 0 auto; }
.coach-head { border-bottom: 2px solid var(--ink); }
.coach-head h2 { margin: 0; font-size: 1.35rem; }
.coach-footer { justify-content: flex-end; border-top: 2px solid var(--ink); }
.coach-room .btn { min-height: 44px; white-space: normal; }
.coach-scroll { overflow: auto; overscroll-behavior: contain; min-height: 0; padding: 16px; font-size: 1rem; line-height: 1.45; }
.coach-intro { display: flow-root; }
.coach-intro p { margin: 0 0 12px; }
.coach-keeper { float: left; width: 124px; margin: 0 18px 12px 0; text-align: center; }
.coach-keeper .tw-card { width: 100%; }
.coach-keeper figcaption { font-weight: 700; margin-top: 8px; }
.coach-note { font-style: italic; }
.coach-budget { display: flex; gap: 12px; align-items: flex-end; flex-wrap: wrap; padding: 12px 0; border-top: 1px solid var(--ink); }
.coach-budget[hidden] { display: none; }
.coach-budget label { display: flex; flex-direction: column; gap: 4px; flex: 1 1 200px; }
.coach-budget input { min-height: 44px; font: inherit; color: var(--ink); background: var(--paper-2); border: 2px solid var(--ink); padding: 6px 10px; width: 100%; box-sizing: border-box; }
.coach-totals { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 24px; padding: 12px; background: var(--paper-2); border: 1px solid var(--ink); }
.coach-totals > div { display: flex; justify-content: space-between; gap: 14px; }
.coach-totals b { font-variant-numeric: tabular-nums; white-space: nowrap; }
.coach-family h3 { margin: 20px 0 8px; }
.coach-family ul, .coach-limits ul { list-style: none; padding: 0; margin: 0; }
.coach-action { display: grid; grid-template-columns: 1fr auto; column-gap: 12px; padding: 12px 0; border-top: 1px solid #1b1a1744; }
.coach-action > b, .coach-action p { grid-column: 1 / -1; }
.coach-action small { font-size: inherit; text-align: right; }
.coach-action p { margin: 4px 0 0; }
.coach-limits { margin-top: 16px; }
.coach-limits summary { cursor: pointer; min-height: 44px; padding: 10px 0; }
.coach-limits li { padding: 6px 0; }
.town-coach { position: absolute; z-index: 13; bottom: max(12px, env(safe-area-inset-bottom)); left: 50%; translate: -50% 0; max-width: calc(100% - 120px); min-height: 44px; white-space: normal; }
.garage-modes [data-coach-open] { margin-left: auto; }
@media(max-width: 600px) {
  .town-coach { left: auto; right: 12px; translate: none; max-width: min(140px, calc(100% - 180px)); }
  .coach-panel { width: calc(100vw - 12px); max-height: calc(100dvh - 12px - var(--safe-top, 0px)); }
  .coach-scroll, .coach-head, .coach-footer { padding: 12px; }
  .coach-keeper { width: 108px; margin-right: 12px; }
  .coach-totals { grid-template-columns: 1fr; }
  .coach-action { grid-template-columns: 1fr; }
  .coach-action small { text-align: left; }
  .coach-footer .btn { flex: 1; }
}
