/* ChurchBright Church TV: the weekly schedule page (/channel/schedule). Sits in the dark TV band (.mx-tvband from channel.css) and prints as a clean
   black-on-white, two-column sheet for a bulletin. Category colours arrive as --cat on each row (see media_tv_categories()). */
.mx-wk-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px; flex-wrap: wrap; margin-bottom: 18px; }
.mx-wk-h1 { margin: 0 0 4px; }
.mx-wk-sub { margin: 0; color: var(--tv-muted, #94a3b8); font-size: 14px; }
.mx-wk-actions, .mx-wk-cta { display: flex; flex-wrap: wrap; gap: 8px; }
.mx-wk-tabs { display: flex; gap: 8px; overflow-x: auto; padding: 2px 0 12px; scrollbar-width: thin; -webkit-overflow-scrolling: touch; }
.mx-wk-tab { flex: 0 0 auto; display: grid; justify-items: center; min-width: 74px; padding: 8px 12px; border-radius: 10px; border: 1px solid var(--tv-border, rgba(255, 255, 255, .12)); background: rgba(255, 255, 255, .05); text-decoration: none; color: #fff !important; font-weight: 700; font-size: 13.5px; }
.mx-wk-tab small { font-weight: 500; color: var(--tv-muted, #94a3b8); font-size: 12px; }
.mx-wk-tab:hover, .mx-wk-tab:focus-visible { border-color: var(--tv-accent-edge, #818cf8); outline: none; }
.mx-wk-days { display: grid; gap: 22px; }
.mx-wk-day { scroll-margin-top: 80px; }
.mx-wk-dayh { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin: 0 0 8px; font-size: 20px; }
.mx-wk-dayh small { font-size: 13px; font-weight: 500; color: var(--tv-muted, #94a3b8); }
.mx-wk-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.mx-wk-item { display: grid; grid-template-columns: 82px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 10px; background: var(--tv-surface, #151b2b); border: 1px solid var(--tv-border, rgba(255, 255, 255, .12)); border-left: 4px solid var(--cat, #4f7df3); }
.mx-wk-item.is-show { background: color-mix(in srgb, var(--cat, #4f7df3) 14%, var(--tv-surface, #151b2b)); }
.mx-wk-time { font-variant-numeric: tabular-nums; font-weight: 800; font-size: 14px; color: var(--tv-accent-text, #c7d2fe); white-space: nowrap; }
.mx-wk-main { display: grid; gap: 3px; min-width: 0; }
.mx-wk-title { font-weight: 700; color: #fff; overflow-wrap: anywhere; }
.mx-wk-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; font-size: 12.5px; color: var(--tv-muted, #94a3b8); }
.mx-wk-cat { display: inline-flex; align-items: center; gap: 6px; }
.mx-wk-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--cat, #4f7df3); flex: 0 0 9px; }
.mx-wk-show { font-weight: 700; color: #e2e8f0; }
.mx-wk-none, .mx-wk-note { margin: 0; color: var(--tv-muted, #94a3b8); font-size: 14px; }
.mx-wk-note { margin-top: 18px; }
.mx-wk-cta { margin-top: 20px; }
.mx-wk-remind { justify-self: end; }
.mx-wk-remind summary { list-style: none; cursor: pointer; }
.mx-wk-remind summary::-webkit-details-marker { display: none; }
.mx-wk-remind-form { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-top: 8px; }
.mx-wk-remind-form .input { min-height: 34px; max-width: 220px; }
.mx-wk-print-foot { display: none; }
.mx-wk [hidden] { display: none !important; }
/* Sticky day bar: day tabs and category chips */
.mx-wk-bar { position: sticky; top: 0; z-index: 5; margin: 0 -16px 16px; padding: 10px 16px 4px; background: rgba(7, 10, 18, .78); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border-radius: 0 0 12px 12px; }
.mx-wk-tabs { padding: 2px 0 10px; scrollbar-width: none; }
.mx-wk-tabs::-webkit-scrollbar { display: none; }
.mx-wk-tab { min-height: 44px; align-content: center; transition: border-color .15s, background .15s; }
.mx-wk-tab.is-active { background: #fff; border-color: #fff; color: #0b1020 !important; }
.mx-wk-tab.is-active small { color: #334155; }
.mx-wk-chips { display: flex; gap: 8px; overflow-x: auto; padding: 0 0 8px; scrollbar-width: none; }
.mx-wk-chips::-webkit-scrollbar { display: none; }
.mx-wk-dayh { padding-bottom: 8px; border-bottom: 1px solid var(--tv-border, rgba(255, 255, 255, .12)); margin-bottom: 10px; }
.mx-wk-item { transition: opacity .25s, border-color .15s, background .15s; }
.mx-wk-item:hover { border-color: rgba(255, 255, 255, .28); border-left-color: var(--cat, #4f7df3); }
.mx-wk-item.is-dim { opacity: .25; }
.mx-wk-item.is-live { background: linear-gradient(90deg, rgba(239, 68, 68, .22), var(--tv-surface, #151b2b) 60%); }
.mx-wk-cat .mx-tag { vertical-align: baseline; }
.mx-wk-remind summary { display: inline-flex; min-height: 38px; }
.mx-wk-remind.is-on summary { background: var(--mx-accent, #4f46e5); border-color: #fff; }
.mx-wk-remind[open] .mx-wk-remind-form { padding: 8px 0 2px; }
.mx-wk-remind-form .input { background: #0b0f1a; color: #fff; border: 1px solid rgba(255, 255, 255, .3); border-radius: 10px; padding: 0 12px; min-height: 40px; font-size: 16px; }
.mx-wk-privacy { flex-basis: 100%; color: var(--tv-muted, #94a3b8); font-size: 12px; }
.mx-wk-day:target .mx-wk-dayh { color: #fff; }
.mx-wk-page .mx-btn { min-height: 44px; }
@media (prefers-reduced-motion: reduce) { .mx-wk-item, .mx-wk-tab { transition: none; } }
@media (max-width: 640px) {
  .mx-wk-bar { margin: 0 -12px 12px; padding: 8px 12px 2px; }
  .mx-wk-item { grid-template-columns: 70px minmax(0, 1fr); }
  .mx-wk-remind { grid-column: 1 / -1; justify-self: start; }
}
@media print {
  @page { margin: 14mm; }
  /* Chrome off: site header, footer, app tabs and every control. */
  .ws-header, .ws-footer, .ws-topbar, .ws-nav, body > header, body > footer, .mx-appbar, .mx-tabbar, .mx-tabs, .cb-cookie, [data-wk-noprint], .mx-wk-tabs, .mx-wk-remind { display: none !important; }
  html, body, .ws, .ws-wrap, main, .mx-page { background: #fff !important; color: #000 !important; }
  .ws-wrap { padding: 0 !important; }
  .mx-tvband, .mx-tvband--bleed, .mx-tvband--box { background: #fff !important; color: #000 !important; width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important; border-radius: 0 !important; color-scheme: light; }
  .mx-tvband-in { max-width: none; padding: 0; }
  .mx-tvband h1, .mx-tvband h2, .mx-tvband .mx-h1, .mx-tvband .mx-h2 { color: #000 !important; }
  .mx-wk-sub, .mx-wk-dayh small, .mx-wk-meta, .mx-wk-none, .mx-wk-note { color: #333 !important; }
  .mx-wk-days { display: block; column-count: 2; column-gap: 12mm; }
  .mx-wk-day { break-inside: avoid; page-break-inside: avoid; margin: 0 0 6mm; }
  .mx-wk-list { gap: 0; }
  .mx-wk-item, .mx-wk-item.is-show { display: grid; grid-template-columns: 17mm minmax(0, 1fr); background: #fff !important; border: 0; border-bottom: 1px solid #bbb; border-left: 3px solid #000; border-radius: 0; padding: 1.4mm 2mm; break-inside: avoid; }
  .mx-wk-time, .mx-wk-title, .mx-wk-show { color: #000 !important; }
  .mx-wk-dot { background: #000 !important; border-radius: 0; }
  .mx-wk-dayh { font-size: 14pt; border-bottom: 2px solid #000; padding-bottom: 1mm; }
  .mx-wk-head { margin-bottom: 6mm; }
  .mx-wk-h1 { font-size: 20pt; }
  .mx-wk-bar, .mx-wk-chips, .mx-tvtoast { display: none !important; }
  .mx-wk-item.is-dim { opacity: 1; }
  .mx-tag, .mx-tag.is-live { background: none !important; border: 0 !important; padding: 0 !important; color: #000 !important; font-size: 8.5pt; text-transform: uppercase; letter-spacing: .04em; }
  .mx-tag-dot { display: none !important; }
  .mx-wk-meta { color: #333 !important; }
  .mx-wk-print-foot { display: block; margin-top: 6mm; font-size: 9pt; color: #333; text-align: center; }
}
.mx-wk-page:not(.mx-in-app) .mx-wk-bar { top: 72px; }
.mx-wk-day { scroll-margin-top: 150px; }
