/* The day sheet (A-11): the organiser's DAY SHEET tab, its share dialog and the guest list.
   A vertical timeline with fixed-width times; kinds carry a glyph + word and a colour as a second cue only
   (travel blue, production amber, set lime, hotel violet). Print: black on white, no colour carries meaning,
   timeline + contacts first, acts from a new page. The no-login /sheet/ page has its own copy in sheet/sheet.css. */

.ds-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.ds-tab__heading { align-items: flex-start; gap: 16px; flex-wrap: wrap; }
.ds-tab__actions { flex-wrap: wrap; gap: 8px; }

.ds { color: #f8f8f8; display: flex; flex-direction: column; gap: 18px; max-width: 960px; }
.ds h2, .ds h3, .ds h4 { margin: 0; color: #f8f8f8; }
.ds__title { font-size: 1.4rem; font-weight: 600; }
.ds__head { display: flex; flex-direction: column; gap: 4px; }
.ds__dateline { margin: 0; font-weight: 500; }
.ds__live { margin: 0; display: flex; align-items: center; gap: 8px; color: #d8d8d8; font-size: .9rem; }
.ds__dot { width: 8px; height: 8px; border-radius: 50%; background: #C1FE01; flex: 0 0 auto; }
.ds__muted { color: #a7a8a3; margin: 0; font-size: .88rem; }
.ds__only { display: inline-block; margin-left: 8px; padding: 2px 8px; border: 1px solid #fba419; border-radius: 999px; color: #fba419; font-size: .66rem; letter-spacing: .08em; text-transform: uppercase; font-weight: 600; vertical-align: middle; }

.ds__warnings { border-left: 3px solid #fba419; background: rgba(251, 164, 25, .08); border-radius: 8px; padding: 10px 14px; }
.ds__warnings ul { margin: 6px 0 0; padding-left: 18px; }

.ds__tbc { border: 1px solid #fba419; border-radius: 14px; padding: 12px 14px; }
.ds__tbc h3 { font-size: 1rem; color: #fba419; }
.ds__tbc ul { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.ds__tbc li { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 36px; border-bottom: 1px solid #2c2d2e; }
.ds__tbc li:last-child { border-bottom: 0; }
.ds__fix { color: #f8f8f8; font-size: .75rem; letter-spacing: .08em; font-weight: 600; text-decoration: underline; white-space: nowrap; }

.ds__day { display: flex; flex-direction: column; gap: 6px; }
.ds__dayhead { font-size: .78rem !important; letter-spacing: .1em; text-transform: uppercase; color: #a7a8a3 !important; font-weight: 600; }
.ds__timeline { list-style: none; margin: 0; padding: 0; position: relative; }
.ds__timeline li {
  display: grid; grid-template-columns: 7.5rem 7.5rem 1fr auto; gap: 10px; align-items: baseline;
  padding: 9px 0 9px 12px; border-bottom: 1px solid #2c2d2e; border-left: 3px solid #3a3c3d;
}
.ds__time { font-variant-numeric: tabular-nums; font-weight: 600; white-space: nowrap; }
.ds__kind { display: inline-flex; gap: 6px; align-items: center; font-size: .78rem; letter-spacing: .04em; color: #a7a8a3; }
.ds__kind .ds__mark { width: 1rem; height: 1rem; font-size: 1rem; flex: 0 0 auto; fill: currentColor; }
.ds__what { display: flex; flex-direction: column; gap: 2px; min-width: 0; overflow-wrap: anywhere; }
.ds__what small { color: #a7a8a3; font-size: .82rem; }
.ds__stage { font-size: .8rem; color: #bdbdbd; white-space: nowrap; }
.ds__row--travel { border-left-color: #6ec6ff !important; }
.ds__row--travel .ds__kind { color: #6ec6ff; }
.ds__row--production { border-left-color: #fba419 !important; }
.ds__row--production .ds__kind { color: #fba419; }
.ds__row--set { border-left-color: #C1FE01 !important; }
.ds__row--set .ds__kind { color: #C1FE01; }
.ds__row--hotel { border-left-color: #c39bff !important; }
.ds__row--hotel .ds__kind { color: #c39bff; }
.ds__row--tbc .ds__time { color: #fba419; font-style: italic; }

.ds__cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; margin-top: 8px; }
.ds__card { display: flex; flex-direction: column; gap: 2px; padding: 12px 14px; border: 1px solid #3a3c3d; border-radius: 14px; background: #1f1f1f; }
.ds__card a { color: #f8f8f8; font-variant-numeric: tabular-nums; min-height: 32px; display: inline-flex; align-items: center; }

.ds__dl { margin: 8px 0 0; display: grid; grid-template-columns: max-content 1fr; gap: 6px 14px; }
.ds__dl dt { color: #a7a8a3; }
.ds__dl dd { margin: 0; overflow-wrap: anywhere; }
.ds__hotels p { margin: 6px 0 0; }

.ds__acts { display: flex; flex-direction: column; gap: 12px; }
.ds__act { border: 1px solid #3a3c3d; border-radius: 14px; padding: 12px 14px; background: #1f1f1f; }
.ds__acthead { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; }
.ds__acthead h4 { font-size: 1.05rem; font-weight: 600; }
.ds__acthead .ds__fix { margin-left: auto; }
.ds__actlist { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.ds__actlist .ds__time { display: inline-block; min-width: 7.5rem; }
.ds__acttbc { margin: 8px 0 0; color: #fba419; font-size: .88rem; }
.ds__private { margin-top: 10px; padding: 8px 12px; border: 1px dashed #fba419; border-radius: 10px; }
.ds__private .ds__only { margin-left: 0; }
.ds__private p { margin: 6px 0 0; }
.ds__footer { color: #a7a8a3; font-size: .8rem; }

@media (max-width: 600px) {
  .ds__timeline li { grid-template-columns: 6.4rem 1.4rem 1fr; }
  .ds__timeline .ds__time { white-space: normal; }
  .ds__kindword { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .ds__stage { grid-column: 3; }
  .ds__actlist .ds__time { min-width: 5.6rem; }
}

/* Share dialog */
.ds-share { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.ds-share__row { display: flex; flex-direction: column; gap: 8px; padding: 12px 0; border-bottom: 1px solid #3a3c3d; }
.ds-share__who { display: flex; flex-direction: column; gap: 2px; }
.ds-share__actions .btn-sm { min-height: 40px; max-width: none; }
/* A link that ran out (decision C): listed so the organiser sees it ended, greyed, never copyable. */
.ds-share__expired { color: #8a8a8a; font-size: .82rem; }

/* Guest list */
.gl { display: flex; flex-direction: column; gap: 12px; padding: 14px; border: 1px solid #3a3c3d; border-radius: 14px; margin-bottom: 18px; color: #f8f8f8; }
.gl h3 { margin: 0; font-size: 1.05rem; color: #f8f8f8; }
.gl__head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.gl__filter { max-width: 22rem; }
.gl__over { margin: 0; padding-left: 18px; color: #fba419; }
.gl__scroll { overflow-x: auto; }
.gl__table { width: 100%; border-collapse: collapse; font-size: .92rem; }
.gl__table th { text-align: left; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: #a7a8a3; font-weight: 600; padding: 6px 8px; border-bottom: 1px solid #3a3c3d; }
.gl__table td { padding: 8px; border-bottom: 1px solid #2c2d2e; vertical-align: middle; overflow-wrap: anywhere; }
.gl__actions { white-space: nowrap; text-align: right; }
.gl__actions .btn-sm { min-height: 36px; max-width: none; margin-left: 6px; }
.gl__form { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.gl__form input[type="text"] { flex: 1 1 12rem; }
.gl__form input[type="number"] { width: 5rem; }
.gl__form input, .gl__form select {
  min-height: 44px; padding: 8px 10px; border: 1px solid #3a3c3d; border-radius: 10px; background: #171717; color: #f8f8f8; font: inherit; color-scheme: dark;
}
.gl__add { display: flex; flex-direction: column; gap: 6px; }

/* ── Print: black on white. gigevatePrintSection (scripts.js) prints one section only; Ctrl+P prints the page
   with the same black-and-white rules. ── */
@media print {
  @page { size: A4; margin: 12mm; }
  body.gv-print-only { background: #fff !important; }
  /* Everything that neither is, holds, nor sits inside the printed section disappears. */
  body.gv-print-only *:not(.gv-print-root):not(.gv-print-root *):not(:has(.gv-print-root)) { display: none !important; }
  /* Without :has() (Firefox before 121) the rule above is dropped whole. gigevatePrintSection also marks the path
     to the section (.gv-print-path) and everything beside it (.gv-print-hide), so those browsers print the sheet only. */
  body.gv-print-only .gv-print-hide { display: none !important; }
  body.gv-print-only .gv-print-path {
    margin: 0 !important; padding: 0 !important; border: 0 !important; box-shadow: none !important; background: #fff !important;
    max-width: none !important; width: auto !important; position: static !important; overflow: visible !important; transform: none !important;
  }
  body.gv-print-only *:has(.gv-print-root) {
    margin: 0 !important; padding: 0 !important; border: 0 !important; box-shadow: none !important; background: #fff !important;
    max-width: none !important; width: auto !important; position: static !important; overflow: visible !important; transform: none !important;
  }
  .ds, .gl { background: #fff !important; color: #000 !important; font-size: 10pt; max-width: none; border: 0 !important; padding: 0 !important; }
  .ds h2, .ds h3, .ds h4, .gl h3 { color: #000 !important; }
  .ds a, .gl a { color: #000 !important; text-decoration: none; }
  .no-print, .mud-appbar, .mud-drawer, .mud-overlay, .team-working-as-banner { display: none !important; }
  .ds__muted, .ds__live, .ds__dayhead, .ds__kind, .ds__what small, .ds__stage, .ds__dl dt, .ds__footer, .gl__table th { color: #333 !important; }
  .ds__dot { display: none; }
  .ds__tbc, .ds__act, .ds__card { border-color: #000 !important; background: #fff !important; }
  .ds__tbc h3, .ds__acttbc, .ds__row--tbc .ds__time { color: #000 !important; }
  .ds__row--tbc .ds__time { font-style: italic; }
  .ds__timeline li { border-left: 0 !important; padding: 3pt 0; border-bottom: .5pt solid #999; break-inside: avoid; grid-template-columns: 9.5rem 6rem 1fr auto; }
  .ds__timeline .ds__time { white-space: normal !important; }
  .ds__row--travel .ds__kind, .ds__row--production .ds__kind, .ds__row--set .ds__kind, .ds__row--hotel .ds__kind { color: #000 !important; }
  .ds__kindword { position: static !important; width: auto !important; height: auto !important; clip: auto !important; }
  .ds__dayhead { break-after: avoid; }
  .ds__contacts, .ds__venue, .ds__hotels { break-inside: avoid; }
  .ds__cards { grid-template-columns: repeat(3, 1fr); }
  .ds__acts { break-before: page; }
  .ds__act { break-inside: avoid; border-width: 0 0 0 0 !important; border-top: 1pt solid #000 !important; border-radius: 0; padding: 4pt 0 0; }
  .gl__table td, .gl__table th { border-bottom: .5pt solid #999; color: #000 !important; }
  .gl__table tr { break-inside: avoid; }
  .gl__scroll { overflow: visible; }
}
