.ticket-only { display:none; }

.ticket-button {
  align-items:center;
  justify-content:center;
  border:1px solid var(--paper);
  border-radius:999px;
  color:var(--paper);
  background:var(--ink);
  box-shadow:0 2px 8px rgba(0,0,0,.24);
  font:600 9px/1 var(--mono);
  letter-spacing:.07em;
  text-decoration:none;
  text-transform:uppercase;
  white-space:nowrap;
}

.has-ticket-interest .ticket-button { display:inline-flex; }
.ticket-button:hover { color:var(--ink); background:var(--paper); border-color:var(--ink); }
.ticket-button:focus-visible { outline:3px solid var(--first); outline-offset:3px; }
.ticket-button-row { width:34px; min-width:34px; height:34px; flex:0 0 34px; font-size:7px; }
.ticket-button-hero { position:absolute; z-index:2; left:10px; bottom:10px; min-width:104px; height:42px; padding:0 13px; }

.ticketed-marker {
  min-height:22px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 8px;
  border:1px solid var(--ink);
  border-radius:999px;
  color:var(--paper);
  background:var(--ink);
  font:600 7px/1 var(--mono);
  letter-spacing:.07em;
  text-transform:uppercase;
  white-space:nowrap;
}
.ticketed-marker.is-trying {
  color:white;
  background:#c23b31;
  border-color:#7f201b;
}

.ticketed-showcase {
  border-top:2px solid var(--ink);
  background:#f7ebc9;
}
.ticketed-showcase-head {
  min-height:48px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:10px 16px;
  color:var(--paper);
  background:var(--ink);
}
.ticketed-showcase-head b {
  font:650 10px/1 var(--mono);
  letter-spacing:.1em;
  text-transform:uppercase;
}
.ticketed-showcase-head span {
  color:#f1dfaa;
  font:500 8px/1.25 var(--mono);
  letter-spacing:.05em;
  text-align:right;
  text-transform:uppercase;
}
.ticketed-showcase-list { background:#9b7424; }
.ticketed-promoted > summary,
.ticketed-promoted > summary:hover {
  min-height:94px;
  background:#f1dfaa;
  box-shadow:inset 6px 0 0 #9b7424;
}
.ticketed-promoted > .backup-detail { background:#f7ebc9; }
.ticketed-promoted + .ticketed-promoted { border-top:1px solid #9b7424; }

.master-item.plan-could-add > summary,
.master-item.plan-could-add > summary:hover {
  min-height:118px;
  background:#f5f1e8;
  box-shadow:inset 6px 0 0 var(--ink);
}
.master-item.plan-could-add > .master-detail { background:#f0ebe2; }
.master-item.plan-could-add .master-copy > small { display:none; }
.could-add-marker {
  min-height:22px;
  display:inline-flex;
  align-items:center;
  padding:0 8px;
  border:1px solid var(--ink);
  border-radius:999px;
  color:var(--paper);
  background:var(--ink);
  font:600 7px/1 var(--mono);
  letter-spacing:.07em;
  text-transform:uppercase;
  white-space:nowrap;
}
.plan-rationale {
  min-width:0;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:start;
  gap:5px 8px;
  color:var(--ink);
  font-size:11px;
  line-height:1.35;
}
.plan-rationale b {
  padding-top:2px;
  font:650 7px/1 var(--mono);
  letter-spacing:.08em;
  text-transform:uppercase;
  white-space:nowrap;
}
.plan-rationale > span {
  display:-webkit-box;
  overflow:hidden;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}
.plan-rationale > span > strong {
  font:650 9px/1.35 var(--mono);
  letter-spacing:.035em;
  text-transform:uppercase;
}
.plan-voting-row {
  min-width:0;
  min-height:32px;
  display:flex;
  align-items:center;
  gap:8px;
}
.quick-vote-host { display:inline-flex; flex:0 0 auto; }
.quick-vote-button {
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid var(--ink);
  border-radius:50%;
  color:var(--ink);
  background:var(--paper);
  font:600 17px/1 var(--sans);
  cursor:pointer;
}
.quick-vote-button:hover { color:var(--paper); background:var(--ink); }
.quick-vote-button:focus-visible { position:relative; z-index:2; outline:3px solid var(--first); outline-offset:2px; }
.quick-vote-button[aria-pressed="true"] {
  color:var(--person-ink);
  background:var(--person-color);
  box-shadow:0 0 0 2px var(--paper),0 0 0 3px var(--ink);
}
.quick-vote-button:disabled { cursor:wait; opacity:.58; }
.plan-voting-row > .pick-summary-host { min-width:0; flex:1; }
.plan-voting-row .pick-glances { width:auto; display:flex; flex-wrap:wrap; align-items:center; gap:5px; }
.plan-voting-row .pick-glance { width:auto; display:flex; gap:6px; }
.plan-voting-row .pick-note-preview { max-width:240px; }
.plan-voting-row .pick-glances.is-empty small {
  color:var(--muted);
  font:500 8px/1.2 var(--mono);
  letter-spacing:.04em;
  text-transform:uppercase;
}
.plan-slot {
  border-top:3px solid var(--ink);
  background:#f5f1e8;
}
.plan-slot-head {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px 20px;
  align-items:end;
  padding:14px 16px;
  color:var(--paper);
  background:var(--ink);
}
.plan-slot-head > div:first-child { min-width:0; }
.plan-slot-head small {
  color:#d9d1c3;
  font:600 8px/1 var(--mono);
  letter-spacing:.11em;
}
.plan-slot-head h3 {
  margin:5px 0 0;
  font:650 29px/1 var(--serif);
  letter-spacing:-.025em;
}
.plan-slot-head > div:nth-child(2) { display:grid; gap:5px; text-align:right; }
.plan-slot-head b { font:650 9px/1 var(--mono); letter-spacing:.09em; }
.plan-slot-head span { color:#d9d1c3; font:500 9px/1.25 var(--mono); text-transform:uppercase; }
.plan-slot-head p {
  grid-column:1 / -1;
  max-width:760px;
  margin:3px 0 0;
  color:#d9d1c3;
  font:400 10px/1.4 var(--mono);
}
.plan-slot-list { display:grid; background:#e9e4d9; }
.plan-slot .master-item.plan-could-add > summary,
.plan-slot .master-item.plan-could-add > summary:hover { box-shadow:inset 5px 0 0 var(--ink); }
.lineup-audit {
  display:grid;
  grid-template-columns:1fr 1fr;
  border-right:1px solid var(--ink);
  border-bottom:1px solid var(--ink);
  border-left:1px solid var(--ink);
  background:rgba(255,255,255,.2);
}
.lineup-audit p {
  min-width:0;
  display:grid;
  gap:7px;
  margin:0;
  padding:14px 16px;
}
.lineup-audit p + p { border-left:1px solid var(--ink); background:var(--ink); color:var(--paper); }
.lineup-audit b { font:650 8px/1 var(--mono); letter-spacing:.09em; text-transform:uppercase; }
.lineup-audit span { font:500 10px/1.45 var(--mono); }
.plan-other-drawer {
  border-top:3px solid var(--ink);
  background:#ddd6c8;
}
.plan-other-drawer > summary {
  min-height:72px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 38px;
  align-items:center;
  gap:16px;
  padding:12px 14px 12px 16px;
  cursor:pointer;
  list-style:none;
  background:#ddd6c8;
}
.plan-other-drawer > summary::-webkit-details-marker { display:none; }
.plan-other-drawer > summary:hover { background:#d4ccbc; }
.plan-other-drawer > summary:focus-visible { outline:3px solid var(--ink); outline-offset:-3px; }
.plan-other-copy { min-width:0; display:grid; gap:6px; }
.plan-other-copy b { font:650 11px/1 var(--mono); letter-spacing:.08em; text-transform:uppercase; }
.plan-other-copy small { color:var(--muted); font:400 9px/1.25 var(--mono); letter-spacing:.04em; text-transform:uppercase; }
.plan-other-drawer > summary > i {
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border:1px solid var(--ink);
  border-radius:50%;
  font:400 23px/1 var(--sans);
  font-style:normal;
  transition:transform .18s ease;
}
.plan-other-drawer[open] > summary > i { transform:rotate(45deg); }
.plan-other-list { display:grid; border-top:1px solid var(--ink); background:#e9e4d9; }
.plan-other-list > .master-item:last-child { border-bottom:0; }
.plan-subdrawer {
  border-top:1px solid var(--ink);
  background:#d8d2c6;
}
.plan-subdrawer > summary {
  min-height:62px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 34px;
  align-items:center;
  gap:14px;
  padding:10px 14px 10px 16px;
  cursor:pointer;
  list-style:none;
  background:#d8d2c6;
}
.plan-subdrawer > summary::-webkit-details-marker { display:none; }
.plan-subdrawer > summary:hover { background:#cec7ba; }
.plan-subdrawer > summary:focus-visible { outline:3px solid var(--ink); outline-offset:-3px; }
.plan-subdrawer-copy { min-width:0; display:grid; gap:5px; }
.plan-subdrawer-copy b { font:650 9px/1 var(--mono); letter-spacing:.08em; text-transform:uppercase; }
.plan-subdrawer-copy small { color:var(--muted); font:400 8px/1.25 var(--mono); letter-spacing:.04em; text-transform:uppercase; }
.plan-subdrawer > summary > i {
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  border:1px solid var(--ink);
  border-radius:50%;
  font:400 20px/1 var(--sans);
  font-style:normal;
  transition:transform .18s ease;
}
.plan-subdrawer[open] > summary > i { transform:rotate(45deg); }
.plan-subdrawer-list { display:grid; border-top:1px solid var(--ink); }
.plan-conflicts-drawer { margin-top:8px; border-top:3px solid #746e65; background:#c9c3b8; }
.plan-conflicts-drawer > summary { background:#c9c3b8; }
.plan-conflicts-drawer .plan-subdrawer-list { opacity:.8; }
.master-item.plan-could-add .ticket-button { display:inline-flex; }
.master-item.plan-could-add.has-ticket-button > summary {
  grid-template-columns:58px 132px 92px minmax(0,1fr) minmax(110px,150px) 76px;
}
.master-item.plan-could-add.has-ticket-button > summary .row-actions { flex-wrap:wrap; max-width:76px; }

.hero-pick.has-tickets,
.hero-pick.has-tickets:hover,
.hero-pick.has-tickets:focus-within {
  background:#f1dfaa;
  box-shadow:inset 0 0 0 2px #9b7424;
}
.backup-item.has-tickets > summary,
.backup-item.has-tickets > summary:hover,
.master-item.has-tickets > summary,
.master-item.has-tickets > summary:hover {
  background:#f1dfaa;
  box-shadow:inset 0 0 0 2px #9b7424;
}
.backup-item.has-tickets > .backup-detail,
.master-item.has-tickets > .master-detail {
  background:#f7ebc9;
}
.ticketed-showcase .backup-item.ticketed-promoted > summary,
.ticketed-showcase .backup-item.ticketed-promoted > summary:hover {
  box-shadow:inset 6px 0 0 #9b7424;
}

.ticket-clash-marker,
.schedule-conflict-marker,
.other-showing-marker {
  min-height:20px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 7px;
  border:1px solid var(--ink);
  border-radius:999px;
  font:600 7px/1 var(--mono);
  letter-spacing:.06em;
  text-transform:uppercase;
  white-space:nowrap;
}
.ticket-clash-marker { color:white; background:#a12f27; }
.schedule-conflict-marker { color:var(--ink); background:#ddd6c8; }
.other-showing-marker {
  gap:5px;
  color:var(--ink);
  background:#f3efe6;
}
.other-showing-marker b { font:inherit; }
.other-showing-marker span { color:#5f5a51; font:500 7px/1 var(--mono); }

.hero-pick.has-tickets.has-ticket-clash,
.backup-item.has-tickets.has-ticket-clash > summary,
.master-item.has-tickets.has-ticket-clash > summary {
  box-shadow:inset 0 0 0 3px #a12f27;
}

.backup-item.has-schedule-conflict > summary {
  min-height:62px;
  grid-template-columns:58px minmax(0,1fr) 34px;
  background:#e3ded3;
}
.backup-item.has-schedule-conflict.has-trailer > summary,
.backup-item.has-schedule-conflict.has-ticket-button > summary {
  grid-template-columns:58px minmax(0,1fr) 76px;
}
.backup-item.has-schedule-conflict > summary > .film-thumb,
.backup-item.has-schedule-conflict .backup-summary-copy > small { display:none; }
.backup-item.has-schedule-conflict .backup-summary-copy { padding-block:8px; }

.master-item.has-schedule-conflict > summary {
  min-height:62px;
  grid-template-columns:58px 92px minmax(0,1fr) 34px;
  background:#e3ded3;
}
.master-item.has-schedule-conflict.has-trailer > summary,
.master-item.has-schedule-conflict.has-ticket-button > summary {
  grid-template-columns:58px 92px minmax(0,1fr) 76px;
}
.master-item.has-schedule-conflict > summary > .film-thumb,
.master-item.has-schedule-conflict .master-copy > small,
.master-item.has-schedule-conflict .master-venue { display:none; }
.master-item.has-schedule-conflict .master-copy { padding-block:8px; }

.schedule-conflict-feature {
  border-bottom:1px solid var(--line);
  background:#ddd6c8;
}
.schedule-conflict-feature > summary {
  min-height:82px;
  display:grid;
  grid-template-columns:58px 132px minmax(0,1fr) 34px;
  align-items:stretch;
  padding-right:14px;
  cursor:pointer;
  list-style:none;
  background:#e3ded3;
}
.schedule-conflict-feature > summary::-webkit-details-marker { display:none; }
.schedule-conflict-feature > summary:hover { background:#d9d3c7; }
.schedule-conflict-feature > summary:focus-visible { outline:3px solid var(--ink); outline-offset:-3px; }
.schedule-conflict-rail {
  display:grid;
  place-items:center;
  color:white;
  background:var(--ink);
  font:500 8px/1 var(--mono);
  letter-spacing:.08em;
  text-transform:uppercase;
  writing-mode:vertical-rl;
  transform:rotate(180deg);
}
.schedule-conflict-thumb { display:block; width:100%; height:100%; min-height:82px; object-fit:cover; border-inline:1px solid var(--line); }
.schedule-conflict-copy { min-width:0; display:grid; align-content:center; gap:5px; padding:9px 12px; }
.schedule-conflict-copy small { color:var(--muted); font:500 8px/1.2 var(--mono); letter-spacing:.05em; text-transform:uppercase; }
.schedule-conflict-copy strong { font:650 20px/1.05 var(--serif); overflow-wrap:anywhere; }
.schedule-conflict-time { color:var(--muted); font:500 9px/1.2 var(--mono); }
.schedule-conflict-icon { width:34px; height:34px; display:grid; place-items:center; align-self:center; border:1px solid var(--ink); border-radius:50%; font:400 22px/1 var(--sans); font-style:normal; transition:transform .18s ease; }
.schedule-conflict-feature[open] > summary .schedule-conflict-icon { transform:rotate(45deg); }
.schedule-conflict-feature > .hero-pick { border-top:1px solid var(--ink); }

.backup-item.has-ticket-interest.has-ticket-button > summary {
  grid-template-columns:58px 132px minmax(0,1fr) 76px;
}
.backup-item.has-ticket-interest.has-ticket-button.has-trailer > summary {
  grid-template-columns:58px 132px minmax(0,1fr) 76px;
}
.master-item.has-ticket-interest.has-ticket-button > summary {
  grid-template-columns:58px 132px 92px minmax(0,1fr) minmax(110px,150px) 76px;
}
.master-item.has-ticket-interest.has-ticket-button.has-trailer > summary {
  grid-template-columns:58px 132px 92px minmax(0,1fr) minmax(110px,150px) 76px;
}
.has-ticket-interest.has-ticket-button > summary .row-actions { flex-wrap:wrap; max-width:76px; }

/* Conflict rows stay condensed even when a TIFFtie star makes the TIX action visible. */
.backup-item.has-schedule-conflict.has-ticket-button > summary {
  grid-template-columns:58px minmax(0,1fr) 76px;
}
.master-item.has-schedule-conflict.has-ticket-button > summary {
  grid-template-columns:58px 92px minmax(0,1fr) 76px;
}

.has-ticket-interest .ticket-showings { display:grid; }
.ticket-showings {
  gap:8px;
  margin:14px 0;
  padding:11px;
  border:1px solid var(--ink);
  background:rgba(255,255,255,.36);
}
.ticket-showings > b { font:600 8px/1 var(--mono); letter-spacing:.09em; }
.ticket-showings-list { display:grid; gap:1px; background:var(--line); }
.ticket-showing-link {
  min-width:0;
  min-height:42px;
  display:grid;
  grid-template-columns:minmax(120px,auto) minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  padding:8px 10px;
  color:var(--ink);
  background:var(--paper);
  font:500 9px/1.25 var(--mono);
  text-decoration:none;
}
.ticket-showing-link span { white-space:nowrap; }
.ticket-showing-link small { min-width:0; overflow:hidden; color:var(--muted); font:500 8px/1.25 var(--mono); text-overflow:ellipsis; text-transform:uppercase; white-space:nowrap; }
.ticket-showing-link i { font:400 14px/1 var(--sans); font-style:normal; }
.ticket-showing-link:hover { color:var(--paper); background:var(--ink); }
.ticket-showing-link:hover small { color:var(--paper); }
.ticket-showing-link:focus-visible { position:relative; z-index:1; outline:3px solid var(--first); outline-offset:1px; }
.ticket-showing-link.is-ticketed,
.ticket-showing-link.is-ticketed:hover {
  color:var(--ink);
  background:#f1dfaa;
  cursor:default;
}
.ticket-showing-link.is-ticketed small,
.ticket-showing-link.is-ticketed:hover small { color:#5f5540; }
.ticket-showing-link.is-trying,
.ticket-showing-link.is-trying:hover { box-shadow:inset 4px 0 0 #c23b31; }

@media (max-width:690px) {
  .ticketed-showcase-head { align-items:flex-start; flex-direction:column; gap:5px; padding-inline:12px; }
  .ticketed-showcase-head span { text-align:left; }
  .ticketed-promoted > summary { min-height:82px; }
  .master-item.plan-could-add > summary,
  .master-item.plan-could-add .film-thumb { min-height:138px; }
  .master-item.plan-could-add .master-copy { padding-bottom:34px; }
  .plan-rationale { grid-template-columns:1fr; font-size:10px; }
  .plan-rationale > span { -webkit-line-clamp:3; }
  .lineup-audit { grid-template-columns:1fr; }
  .lineup-audit p + p { border-top:1px solid var(--ink); border-left:0; }
  .plan-other-drawer > summary { min-height:70px; padding-inline:12px; }
  .plan-slot-head { grid-template-columns:1fr; align-items:start; padding-inline:12px; }
  .plan-slot-head > div:nth-child(2) { text-align:left; }
  .plan-slot-head p { grid-column:1; }
  .plan-subdrawer > summary { padding-inline:12px 9px; }
  .other-showing-marker { align-items:flex-start; flex-direction:column; gap:3px; padding-block:5px; }
  .master-item.plan-could-add.has-ticket-button > summary {
    grid-template-columns:52px 86px minmax(0,1fr) 76px;
  }
  .backup-item.has-ticket-interest.has-ticket-button > summary {
    grid-template-columns:52px 86px minmax(0,1fr) 76px;
  }
  .backup-item.has-ticket-interest.has-ticket-button.has-trailer > summary {
    grid-template-columns:52px 86px minmax(0,1fr) 76px;
  }
  .master-item.has-ticket-interest.has-ticket-button > summary {
    grid-template-columns:52px 86px minmax(0,1fr) 76px;
  }
  .master-item.has-ticket-interest.has-ticket-button.has-trailer > summary {
    grid-template-columns:52px 86px minmax(0,1fr) 76px;
  }
  .ticket-showing-link { grid-template-columns:1fr auto; gap:5px 10px; }
  .ticket-showing-link small { grid-column:1; white-space:normal; }
  .ticket-showing-link i { grid-column:2; grid-row:1 / span 2; }
  .backup-item.has-schedule-conflict > summary { grid-template-columns:52px minmax(0,1fr) 34px; }
  .backup-item.has-schedule-conflict.has-trailer > summary,
  .backup-item.has-schedule-conflict.has-ticket-button > summary { grid-template-columns:52px minmax(0,1fr) 76px; }
  .master-item.has-schedule-conflict > summary { grid-template-columns:52px minmax(0,1fr) 34px; }
  .master-item.has-schedule-conflict.has-trailer > summary,
  .master-item.has-schedule-conflict.has-ticket-button > summary { grid-template-columns:52px minmax(0,1fr) 76px; }
  .master-item.has-schedule-conflict .master-time { display:none; }
  .master-item.has-schedule-conflict .master-copy { grid-column:2; padding:8px 9px; }
  .schedule-conflict-feature > summary { min-height:72px; grid-template-columns:52px 86px minmax(0,1fr) 34px; padding-right:8px; }
  .schedule-conflict-thumb { min-height:72px; }
  .schedule-conflict-copy { padding-inline:9px; }
  .schedule-conflict-copy strong { font-size:18px; }
}

@media print {
  .ticket-button,.ticket-showings,.quick-vote-host { display:none!important; }
  .hero-pick.has-tickets,
  .backup-item.has-tickets > summary,
  .master-item.has-tickets > summary {
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
  .schedule-conflict-feature > summary { display:none; }
  .schedule-conflict-feature > .hero-pick { display:grid; }
  .ticketed-showcase-head { color:var(--ink); background:#f1dfaa; }
  .ticketed-showcase-head span { color:#5f5540; }
}
