/* Demo tools, guided tour and the printable invoice. */
.demo-dock { position: fixed; left: 1rem; bottom: 1rem; z-index: 1040; }
.demo-fab { border-radius: 2rem; padding: .55rem .9rem; font-weight: 600; }
.demo-panel { position: absolute; left: 0; bottom: 3.4rem; width: min(390px, calc(100vw - 2rem)); max-height: calc(100vh - 12rem); overflow-y: auto; }
.demo-label { font-size: .7rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--bs-secondary-color); margin-bottom: .35rem; }
#content { padding-bottom: 5rem; }
/* The dock sits over the bottom-left corner, where the sticky booking footer keeps its Back button. */
@media (max-width: 575.98px) { .book-foot { bottom: 3.75rem; } }
@media (min-width: 576px) { .book-foot { padding-left: 10rem; } }

.tour-spot { position: fixed; z-index: 1060; border-radius: .5rem; box-shadow: 0 0 0 100vmax rgba(var(--db-ink-rgb), .6), 0 0 0 3px var(--bs-app-theme); pointer-events: none; }
.tour-dim { position: fixed; inset: 0; z-index: 1060; background: rgba(var(--db-ink-rgb), .6); pointer-events: none; }
.tour-pop { position: fixed; z-index: 1063; }
/* The call the tour rings in must stay usable above the dim. */
body.tour-on .call-panel { z-index: 1062; }
@media (prefers-reduced-motion: no-preference) {
    .tour-spot { transition: top .2s, left .2s, width .2s, height .2s; }
}

.print-sheet { display: none; }
.invoice-doc { background: #fff; color: var(--bs-body-color); border: 1px solid var(--bs-border-color); border-radius: .5rem; padding: 1.75rem; font-size: 13px; }
.invoice-doc h3 { font-size: 1.25rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--db-navy); margin: 0; }
.invoice-doc table { width: 100%; }
.invoice-doc th { font-size: 11px; text-transform: uppercase; letter-spacing: .05em; color: var(--bs-secondary-color); font-weight: 600; border-bottom: 2px solid var(--db-navy); padding: .4rem 0; }
.invoice-doc td { padding: .4rem 0; border-bottom: 1px solid var(--bs-border-color); vertical-align: top; }
.invoice-doc .num { text-align: right; white-space: nowrap; }
.invoice-doc .total td { border-bottom: 0; font-weight: 700; font-size: 14px; }
.invoice-doc .meta { color: var(--bs-secondary-color); }
.csv-raw { background: var(--db-navy-active); color: var(--db-sky); border-radius: .5rem; padding: 1rem; font-size: 12px; line-height: 1.55; overflow-x: auto; max-height: 55vh; white-space: pre; }
.csv-raw .col6 { background: rgba(var(--db-green-rgb), .35); border-radius: 3px; }

@media print {
    body.print-doc { background: #fff !important; }
    body.print-doc > *:not(.print-sheet) { display: none !important; }
    body.print-doc .print-sheet { display: block; }
    body.print-doc .invoice-doc { border: 0; padding: 0; }
    .demo-dock, .tour-spot, .tour-dim, .tour-pop { display: none !important; }
}
