/* Shared catalogue: compact seat counts, three clear actions, full story dialog. */
.catalog-actions{display:flex;align-items:center;gap:6px}
.catalog-action{position:static;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;min-width:38px;flex-shrink:0;border:1px solid #d8e5e8;border-radius:50%;padding:0;background:#fff;color:#20414c;box-shadow:none;backdrop-filter:none;transition:background .18s,color .18s,transform .18s}
.catalog-action .icon{width:18px;height:18px;stroke-width:1.7}
.catalog-action:hover{background:#dffbfc;color:#007e8b;transform:translateY(-2px)}
.catalog-action:focus-visible{outline:3px solid #00d5df;outline-offset:3px}
.catalog-action.favorite[aria-pressed=true]{background:#d6f7f8;color:#007a88;border-color:#78d7dc}
.catalog-action.favorite[aria-pressed=true] .icon{fill:#8ce5e7}
.card-art>.catalog-actions{position:absolute;z-index:3;right:10px;bottom:10px;gap:6px;padding:5px;border-radius:28px;background:#10232d75;backdrop-filter:blur(14px);box-shadow:0 5px 18px #0003}
.card-art .catalog-action{background:#f7fcfcf2;border-color:#ffffffb3;color:#193b46}
.card-art .catalog-action:hover{background:#b5f6f6}
.card-art .card-badge{right:auto;max-width:calc(100% - 24px);pointer-events:none}
.card-art .art-open:focus-visible{outline-offset:-5px;border-radius:12px}
.catalog-seats{display:flex;align-items:center;gap:7px;margin-top:13px;flex-wrap:nowrap;min-width:0}
.catalog-seat{display:inline-flex;align-items:center;gap:5px;padding:6px 8px;border-radius:8px;font-size:12px;line-height:1.25;border:1px solid #dfe7ea;background:#edf2f4;color:#536b77;white-space:nowrap;min-width:0}
.catalog-seat .icon{width:16px;height:16px;stroke-width:1.8}
.catalog-seat b{font-size:14px;line-height:1;font-weight:800;font-variant-numeric:tabular-nums;color:#213f4d}
.catalog-seat small{font-size:10px;line-height:1.3}
.catalog-seat.open{color:#08717c;background:#e0f9f9;border-color:#b9ebed}
.catalog-seat.open b{color:#006e7b}
.catalog-seat.full{background:#f5eee4;border-color:#e7d9c3;color:#886231}
.catalog-seat-caption{font-size:10px;letter-spacing:.02em;color:#71818a;margin-top:12px}
.catalog-seat-caption+.catalog-seats{margin-top:5px}
.group-card .card-price-row,.script-card .card-price-row{margin-top:14px}
.group-card .card-title button,.script-card .card-title button{text-align:left}
.catalog-pick{cursor:default}
.catalog-pick-cover{background:none;padding:0;flex-shrink:0}
.catalog-pick h3 button{background:none;text-align:left;font:inherit;padding:0}
.catalog-pick .catalog-actions{margin-top:15px}
.catalog-pick .catalog-action{width:36px;height:36px;min-width:36px;background:#ffffffad}
.catalog-pick .catalog-action .icon{width:17px;height:17px}
#modal.catalog-dialog{width:min(1120px,calc(100vw - 64px));max-width:1120px;padding:0;border-radius:24px;background:#f8fafb;max-height:calc(100dvh - 48px);overflow:auto}
#modal.catalog-dialog .close-modal{position:sticky;top:16px;right:auto;margin:16px 18px -54px auto;display:flex;align-items:center;justify-content:center;z-index:6;background:#fff;color:#1a3541;box-shadow:0 3px 18px #0c2a3a20;border:1px solid #d9e4e8;width:38px;height:38px}
.catalog-detail-hero{display:grid;grid-template-columns:minmax(220px,.82fr) minmax(0,1.5fr);gap:38px;padding:38px;background:#fff;border-bottom:1px solid #e0e8ec}
.catalog-detail-poster{position:relative;isolation:isolate;overflow:hidden;border-radius:15px;min-height:360px;display:flex;align-items:center;justify-content:center;background:#09212d}
.catalog-detail-poster>div{position:absolute;inset:-20px;background-size:cover;background-position:center;filter:blur(16px) brightness(.45);z-index:-1}
.catalog-detail-poster>img{width:100%;height:100%;max-height:480px;object-fit:contain}
.catalog-detail-intro{padding:12px 8px 10px 0;align-self:center;min-width:0}
.catalog-detail-intro .modal-eyebrow{font-size:10px;letter-spacing:.22em;color:#198594;margin-bottom:12px}
.catalog-detail-intro .modal-heading{font-size:clamp(28px,3.4vw,43px);line-height:1.35;letter-spacing:-.025em;margin:0 0 18px;padding-right:28px}
.catalog-detail-intro .card-tags{gap:6px;font-size:12px}
.catalog-detail-intro .card-tags span{padding:4px 8px;background:#eef4f6;border-radius:5px}
.catalog-detail-facts{display:flex;gap:20px;flex-wrap:wrap;color:#536d78;font-size:13px;margin:22px 0}
.catalog-detail-facts>span{display:flex;align-items:center;gap:7px}
.catalog-detail-facts .icon{width:17px;height:17px}
.catalog-detail-prices{display:flex;align-items:center;flex-wrap:wrap;gap:18px 22px;padding:20px 0;border-top:1px solid #e1e9ed;border-bottom:1px solid #e1e9ed;margin-bottom:19px}
.catalog-detail-prices>div{display:flex;flex-direction:column;gap:6px}
.catalog-detail-prices>div+div{border-left:1px solid #e1e9ed;padding-left:22px}
.catalog-detail-prices span{font-size:11px;color:#70848f}
.catalog-detail-prices strong{font-size:34px;line-height:1;letter-spacing:-.04em;color:#163d4a}
.catalog-detail-prices strong small{font-size:13px;font-weight:500;letter-spacing:0}
.catalog-detail-prices b{font-size:17px;color:#425d69}
.catalog-detail-intro .catalog-seats{margin:12px 0 0}
.catalog-detail-intro .catalog-seat{padding:9px 12px;gap:7px}
.catalog-detail-intro .catalog-seat b{font-size:19px}
.catalog-detail-intro .catalog-seat small{font-size:12px}
.catalog-detail-intro .catalog-seat .icon{width:20px;height:20px}
.catalog-detail-primary{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-top:24px}
.catalog-detail-primary>.button{font-size:13px;min-height:46px;padding:12px 18px}
.catalog-detail-primary>.catalog-actions{margin-left:2px}
.catalog-view-groups{display:flex;gap:9px;align-items:center;margin-top:18px;color:#47727f;font-size:12px;background:none;padding:0}
.catalog-view-groups .icon{width:14px;height:14px;transform:rotate(90deg)}
.catalog-detail-body{padding:0 38px 34px}
.catalog-section{padding-top:32px}
.catalog-section+.catalog-section{border-top:1px solid #dfe8ed;margin-top:32px}
.catalog-section>.eyebrow,.catalog-section-heading .eyebrow{font-size:10px;letter-spacing:.18em;margin-bottom:7px;color:#63808c}
.catalog-section h3{font-size:23px;line-height:1.4;margin:0 0 18px;color:#173946}
.catalog-story>p:last-child{white-space:pre-line;line-height:2.1;font-size:15px;color:#435e6a;max-width:920px}
.catalog-section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}
.catalog-section-heading h3{margin-bottom:0}
.catalog-section-heading h3 span{font-size:14px;color:#718d97;font-weight:500;margin-left:7px}
.catalog-section-heading>span{font-size:12px;color:#6d8590}
.catalog-section-heading .button{font-size:12px;padding:10px 16px;min-height:42px}
.catalog-characters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px}
.catalog-character{min-width:0;background:#fff;border:1px solid #e1e9ed;border-radius:12px;overflow:hidden}
.catalog-character-image{position:relative;padding:0;background:#e6edef;display:block;width:100%}
.catalog-character-image>img{width:100%;height:260px;object-fit:contain}
.catalog-character-image>span{position:absolute;right:8px;bottom:8px;background:#ffffffeb;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;color:#365e6d}
.catalog-character-image .icon{width:14px;height:14px}
.catalog-character h4{font-size:14px;margin:12px 14px}
.catalog-character>p{font-size:12px;color:#627b87;padding:0 14px 14px;white-space:pre-line}
.catalog-group-list{display:flex;flex-direction:column;gap:12px}
.catalog-group-row{display:grid;grid-template-columns:minmax(160px,1.3fr) auto auto auto;gap:18px;align-items:center;background:#fff;border:1px solid #dde7ec;border-radius:13px;padding:18px 20px}
.catalog-group-row.selected{border-color:#52c7cf;background:#f4ffff;box-shadow:0 0 0 1px #52c7cf33}
.catalog-group-label{font-size:10px;color:#087a87;letter-spacing:.04em;background:#e0f6f7;border-radius:4px;padding:3px 6px}
.catalog-group-info h4{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:600;margin:9px 0 4px;line-height:1.65}
.catalog-group-info h4 .icon{width:15px;height:15px}
.catalog-group-info p{font-size:11px;color:#718690}
.catalog-group-row .catalog-seats{margin:0;gap:5px}
.catalog-group-row .catalog-seat{padding:6px}
.catalog-group-price{font-size:20px;white-space:nowrap;color:#194957;line-height:1.3}
.catalog-group-price small{font-size:10px;font-weight:500;color:#6b8490}
.catalog-group-price small:last-child{display:block;text-align:right}
.catalog-group-controls{display:flex;align-items:center;gap:7px}
.catalog-group-controls .button{font-size:12px;padding:10px 13px;min-height:40px}
.catalog-group-controls .catalog-action{width:36px;height:36px;min-width:36px}
.catalog-no-groups{display:flex;align-items:center;gap:18px;padding:27px;background:#eaf1f4;border:1px dashed #b8cdd7;border-radius:14px}
.catalog-no-groups>.icon{width:30px;height:30px;color:#278b99}
.catalog-no-groups h4{margin:0 0 5px;font-size:16px}
.catalog-no-groups p{font-size:13px;color:#5e7c88}
.catalog-no-groups .button{margin-left:auto;font-size:13px}
#modal.catalog-role-dialog{width:min(900px,calc(100vw - 40px));max-width:900px}
.catalog-role-large{width:100%;max-height:70dvh;object-fit:contain;margin:20px auto;background:#edf3f5;border-radius:12px}
@media(max-width:1100px){.catalog-detail-hero{gap:26px;padding:32px}.catalog-detail-body{padding:0 32px 30px}.catalog-group-row{grid-template-columns:minmax(150px,1fr) auto auto;gap:14px}.catalog-group-row .catalog-seats{grid-column:1}.catalog-group-price{grid-column:2;grid-row:1}.catalog-group-controls{grid-column:3;grid-row:1 / span 2}.catalog-characters{grid-template-columns:repeat(3,minmax(0,1fr))}.catalog-pick{gap:14px}.catalog-pick img{width:80px;height:130px}}
@media(max-width:760px){
  .card-art>.catalog-actions{right:7px;bottom:7px;padding:4px;gap:5px}
  .card-art .catalog-action{width:34px;height:34px;min-width:34px}
  .catalog-action .icon{width:17px;height:17px}
  .catalog-seats{gap:5px;margin-top:10px}
  .catalog-seat{padding:6px 5px;gap:4px;flex:1;justify-content:center}
  .catalog-seat .icon{width:14px;height:14px}
  .catalog-seat b{font-size:13px}
  .catalog-seat small{font-size:9px}
  .catalog-seat-caption{font-size:9px}
  .catalog-pick .catalog-actions{margin-top:12px;gap:7px}
  .catalog-pick .catalog-action{width:38px;height:38px;min-width:38px}
  #modal.catalog-dialog{width:calc(100vw - 20px);max-height:calc(100dvh - 24px);border-radius:20px}
  #modal.catalog-dialog .close-modal{top:12px;margin:12px 12px -50px auto}
  .catalog-detail-hero{grid-template-columns:110px minmax(0,1fr);gap:18px;padding:30px 20px 24px;align-items:start}
  .catalog-detail-poster{min-height:175px;max-height:240px;position:sticky;top:20px;border-radius:9px}
  .catalog-detail-poster>img{max-height:240px;min-height:175px}
  .catalog-detail-intro{padding:0}
  .catalog-detail-intro .modal-eyebrow{font-size:9px;letter-spacing:.16em;padding-right:30px;margin-bottom:8px}
  .catalog-detail-intro .modal-heading{font-size:25px;padding-right:14px;margin-bottom:13px}
  .catalog-detail-intro .card-tags{font-size:10px;gap:4px}
  .catalog-detail-intro .card-tags span{padding:2px 5px}
  .catalog-detail-facts{font-size:11px;gap:7px 12px;margin:14px 0}
  .catalog-detail-facts .icon{width:13px;height:13px}
  .catalog-detail-facts>span{gap:4px}
  .catalog-detail-prices{gap:13px;padding:14px 0;margin-bottom:13px}
  .catalog-detail-prices>div:first-child{width:100%}
  .catalog-detail-prices>div+div{padding:0;border:0}
  .catalog-detail-prices strong{font-size:29px}
  .catalog-detail-prices b{font-size:13px}
  .catalog-detail-prices span{font-size:10px}
  .catalog-detail-intro .catalog-seat{padding:7px 5px;gap:4px}
  .catalog-detail-intro .catalog-seat b{font-size:15px}
  .catalog-detail-intro .catalog-seat small{font-size:10px}
  .catalog-detail-intro .catalog-seat .icon{width:15px;height:15px}
  .catalog-detail-primary{margin-top:17px;gap:7px}
  .catalog-detail-primary>.button{font-size:11px;min-height:40px;padding:9px 11px;flex:1}
  .catalog-detail-primary>.catalog-actions{width:100%;gap:9px;margin:4px 0 0}
  .catalog-detail-primary .catalog-action{width:40px;height:40px;min-width:40px}
  .catalog-view-groups{font-size:10px;margin-top:14px;text-align:left}
  .catalog-detail-body{padding:0 20px 25px}
  .catalog-section{padding-top:25px}
  .catalog-section+.catalog-section{margin-top:25px}
  .catalog-section h3{font-size:21px;margin-bottom:15px}
  .catalog-story>p:last-child{font-size:14px;line-height:2}
  .catalog-section-heading{gap:10px;margin-bottom:17px}
  .catalog-section-heading h3{margin-bottom:0}
  .catalog-section-heading .button{font-size:11px;padding:8px 11px;min-height:38px}
  .catalog-characters{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .catalog-character-image>img{height:230px}
  .catalog-character h4{font-size:13px;margin:10px 12px}
  .catalog-group-row{grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:16px}
  .catalog-group-info{grid-column:1;grid-row:1}
  .catalog-group-info h4{font-size:12px}
  .catalog-group-price{grid-column:2;grid-row:1;font-size:20px;align-self:center;text-align:right}
  .catalog-group-row .catalog-seats{grid-column:1 / -1;grid-row:2;width:100%}.catalog-group-row .ex-seat-detail{grid-column:1 / -1;width:100%}
  .catalog-group-row .catalog-seat{padding:6px 10px;flex:none}
  .catalog-group-row .catalog-seat small{font-size:10px}
  .catalog-group-controls{grid-column:1 / -1;grid-row:3;justify-content:flex-end;padding-top:10px;border-top:1px solid #e2e9ec}
  .catalog-group-controls .button{flex:1;max-width:180px}
  .catalog-no-groups{padding:20px;flex-wrap:wrap;gap:13px}
  .catalog-no-groups>div{flex:1;min-width:170px}
  .catalog-no-groups h4{font-size:14px}
  .catalog-no-groups p{font-size:12px}
  .catalog-no-groups .button{margin-left:43px;font-size:12px}
}
@media(max-width:380px){.catalog-seat{gap:3px;padding:6px 4px}.catalog-seat .icon{width:12px;height:12px}.catalog-seat small{font-size:8px}.catalog-detail-hero{grid-template-columns:90px minmax(0,1fr);gap:13px;padding:30px 15px 22px}.catalog-detail-poster{min-height:145px}.catalog-detail-poster>img{min-height:145px}.catalog-detail-body{padding-left:15px;padding-right:15px}.catalog-character-image>img{height:200px}.catalog-detail-intro .catalog-seat small{font-size:9px}}
.catalog-seat-link{display:block;color:inherit;border-radius:14px}.catalog-seat-link:focus-visible{outline:3px solid var(--teal);outline-offset:3px}
.catalog-joined{display:inline-flex;align-items:center;gap:8px;padding:5px 5px 5px 14px;border-radius:999px;background:#dff5f4;color:#0b5557;font-weight:700;font-size:13px;white-space:nowrap}
.catalog-leave{width:36px;height:36px;min-width:36px;border-radius:50%;background:#fff;color:#0b5557;display:grid;place-items:center;font-size:14px;line-height:1;border:1px solid #b6e3e1}
.catalog-form-link{align-self:center;font-size:13px;color:inherit;opacity:.75;text-decoration:underline;text-underline-offset:3px}
/* Each full session is subdued independently; existing member controls remain readable. */
.catalog-session.is-full,.catalog-browse-session.is-full,.catalog-group-row.is-full{background:#f0f3f4;border-color:#dde4e7}
.catalog-session.is-full> :not(.catalog-session-footer),.catalog-browse-session.is-full>*,.catalog-group-row.is-full> :not(.catalog-group-controls){opacity:.6;filter:grayscale(.65)}
.catalog-session.is-full .catalog-session-price,.catalog-session.is-full .catalog-session-count{opacity:.6}
.catalog-session.is-full .catalog-joined,.catalog-group-row.is-full .catalog-joined{background:#dff5f4;color:#0b5557}

/* A session without a selected script has its own neutral, image-free cover. */
.catalog-placeholder{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:14px;background:linear-gradient(145deg,#e8eff1,#d9e4e9);color:#365c68;text-align:center;padding:24px;isolation:isolate}
.catalog-placeholder>.icon{width:48px;height:48px;opacity:.65}
.catalog-placeholder-title{font-size:clamp(20px,4vw,30px);font-weight:700;line-height:1.5;overflow-wrap:anywhere}
.catalog-placeholder-title{display:flex;flex-direction:column;align-items:center;gap:10px}
.catalog-placeholder-title>.icon{width:40px;height:40px;opacity:.65}
.catalog-placeholder-title>small{font-size:12px;font-weight:400}
.catalog-detail-poster.catalog-placeholder{min-height:240px;aspect-ratio:3 / 4}
.catalog-placeholder .catalog-actions{position:absolute;right:10px;bottom:10px}
/* Touch controls remain usable at the narrowest supported phone width. */
#groups button,#groups a.button,#groups .catalog-action,#groups .ex-seat-detail{min-height:44px;min-width:44px}
#groups .catalog-action{width:44px;height:44px;flex-shrink:0}
#groups .group-tabs{gap:10px;flex-wrap:wrap}
#groups .group-tabs button{padding-inline:4px}
#groups .card-title button{text-align:left}
#groups .card-title>a{display:inline-flex;align-items:center;min-height:44px;min-width:44px}
#modal.catalog-dialog button,#modal.catalog-dialog a.button,#modal.catalog-dialog .catalog-action,#modal.catalog-dialog .catalog-form-link{min-height:44px;min-width:44px}
#modal.catalog-dialog .catalog-action{width:44px;height:44px;flex-shrink:0}
#modal.catalog-dialog .catalog-form-link{display:inline-flex;align-items:center}
#modal.catalog-dialog .catalog-actions{flex-wrap:wrap}
@media(max-width:380px){.catalog-detail-poster.catalog-placeholder{min-height:160px;padding:12px}.catalog-detail-poster .catalog-placeholder-title{font-size:17px}#groups .group-tabs{gap:7px}#modal.catalog-dialog .catalog-detail-primary{min-width:0}#modal.catalog-dialog .catalog-detail-primary>.button{min-width:0;flex:1 1 100%}}
@media(max-width:700px){
 .catalog-detail-hero:has(.catalog-placeholder){grid-template-columns:minmax(0,1fr);gap:20px}
 .catalog-detail-poster.catalog-placeholder{position:static;width:100%;min-width:0;min-height:140px;max-height:none;aspect-ratio:auto;padding:18px}
 .catalog-detail-poster .catalog-placeholder-title{font-size:22px;gap:8px}
 .catalog-detail-poster .catalog-placeholder-title>.icon{width:28px;height:28px}
}
.catalog-session.is-full .catalog-leave,.catalog-group-row.is-full .catalog-leave{min-width:44px;min-height:44px}
.catalog-full{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:9px 12px;border:1px solid #d5dfe3;border-radius:8px;background:#e8eef0;color:#60747d;font-size:12px;font-weight:700;text-align:center}
/* A compact Monday-first calendar uses Hong Kong dates, with one independent day target. */
.catalog-date-filter{display:block;min-width:0;max-width:100%;margin:0 0 24px}
.catalog-date-filter[hidden]{display:none}
.catalog-calendar{width:100%;max-width:420px;border:1px solid #ccdce2;border-radius:14px;background:#f8fbfc;padding:14px;box-sizing:border-box}
.catalog-calendar header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;color:#1f3a6b}
.catalog-calendar header strong{font-size:18px}
.catalog-calendar header button{display:grid;place-items:center;width:36px;height:36px;min-width:36px;min-height:36px;border:1px solid #cadbe0;border-radius:9px;color:#1f3a6b;background:#fff;font-size:24px;line-height:1}
.catalog-calendar header button:disabled{opacity:.35;cursor:default}
.catalog-calendar-week,.catalog-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;text-align:center}
.catalog-calendar-week{margin-bottom:6px;color:#627682;font-size:12px}
#groups .catalog-calendar-day{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;min-height:44px;width:100%;padding:5px 1px;border:1px solid transparent;border-radius:8px;line-height:1.2}
.catalog-calendar-day b{font-size:15px}.catalog-calendar-day small{font-size:10px;white-space:nowrap}
.catalog-calendar-day.muted{background:#eef2f4;color:#7a8891;cursor:default}
.catalog-calendar-day.has-sessions{background:#d6f2f0;color:#174e56;border-color:#9bd5d2}
.catalog-calendar-day.today{outline:2px solid #1f3a6b;outline-offset:-2px}
.catalog-calendar-day[aria-pressed=true]{background:#1f3a6b;color:#fff;border-color:#1f3a6b}
.catalog-calendar button:focus-visible,[data-catalog-date]:focus-visible{outline:3px solid #00aebb;outline-offset:2px}
.catalog-calendar-empty{font-size:12px;color:#627682;margin:12px 0 0}
.catalog-calendar-selection{margin-top:12px;display:flex;align-items:center;flex-wrap:wrap;gap:12px}
.catalog-calendar-selection>[data-catalog-date]{min-width:44px;min-height:44px;padding:8px 14px;border:1px solid #cadbe0;border-radius:9px;background:#fff;color:#274d5a;font-size:13px}
.catalog-calendar-selection>[aria-pressed=true]{background:#153641;border-color:#153641;color:#fff}
.catalog-calendar-selection p{font-size:12px;color:#526a76;margin:0}
.catalog-chosen-date{font-size:24px;color:#1f3a6b;margin:0;line-height:1.4}
.catalog-session .catalog-discount-tag,.catalog-group-row .catalog-discount-tag{display:inline-flex;align-items:center;white-space:normal;overflow-wrap:anywhere;background:#fff0d1;color:#744514;border:1px solid #ead3a4;font-size:12px;line-height:1.5;padding:4px 7px;border-radius:6px}
@media(max-width:700px){.catalog-calendar{padding:10px}.catalog-calendar-week,.catalog-calendar-grid{gap:4px}.catalog-chosen-date{font-size:23px}.catalog-poster-card .catalog-session .catalog-session-heading>b,.catalog-group-info h4{font-size:16px;color:#1f3a6b;font-weight:800}.catalog-session .card-tags,.catalog-group-info .card-tags{display:flex;flex-wrap:wrap;gap:5px}}

/* One visible, independently selectable icon per seat, including narrow phones. */
.catalog-seats.catalog-seat-row{width:100%;max-width:100%;min-width:0;display:block}
.catalog-seats.catalog-seat-row .catalog-seat-map{display:grid;grid-template-columns:repeat(auto-fit,minmax(44px,1fr));gap:10px 8px;width:100%;max-width:calc(var(--seat-columns,6)*52px - 8px);padding:6px 0}
.catalog-seats.catalog-seat-row .catalog-seat-token{box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:4px;width:100%;min-width:44px;min-height:44px;height:auto;margin:0;padding:0;font:inherit;overflow:visible}
.catalog-seats.catalog-seat-row .catalog-player-avatar{box-sizing:border-box;flex:none;width:36px;min-width:36px;height:36px;max-width:none;border-radius:50%}
.catalog-seats.catalog-seat-row .taken .catalog-player-avatar{background:#e8f6ee;border:1.5px solid #81c59e;color:#26784e}
.catalog-seats.catalog-seat-row .vacant .catalog-player-avatar{background:#effcfd;border:2px solid #4aaab5;color:#087683}
.catalog-seats.catalog-seat-row .catalog-player-caption{font-size:10px;line-height:1.35;gap:3px}
.catalog-seats.catalog-seat-row .catalog-player-gender{font-size:14px;color:#274c60}
.catalog-seats.catalog-seat-row button.catalog-seat-token{cursor:pointer;border-radius:8px}
.catalog-seats.catalog-seat-row button.catalog-seat-token:hover .catalog-player-avatar{background:#d4f4f6;border-color:#087683}
.catalog-seats.catalog-seat-row button.catalog-seat-token:focus-visible{outline:3px solid #087683;outline-offset:3px}
.is-full .catalog-seats.catalog-seat-row .catalog-player-avatar{background:#e8ecef;border-color:#b4bec6;color:#76818a}

/* Deal categories stay visually separate from story tags on every session surface. */
.catalog-deal-labels{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 10px;min-width:0}
.catalog-deal-labels .catalog-discount-tag{display:inline-flex;align-items:center;max-width:100%;background:#fff0d1;color:#744514;border:1px solid #e6c687;border-radius:999px;padding:4px 10px;font-size:13px;font-weight:800;line-height:1.5;white-space:normal;overflow-wrap:anywhere}
.catalog-deal-filters{display:flex;flex-wrap:wrap;gap:8px;min-width:0;margin:0 0 20px}
.catalog-deal-filters button{min-height:44px;padding:8px 14px;border:1px solid #d4dce1;border-radius:999px;background:#fff;color:var(--navy);font-size:13px;font-weight:700;line-height:1.5}
.catalog-deal-filters button[aria-pressed=true]{background:var(--navy);border-color:var(--navy);color:#fff}
.catalog-deal-filters button:disabled{background:#e9edef;border-color:#dce2e6;color:#69767f;cursor:default}
.catalog-session-footer>.catalog-session-controls,.catalog-browse-session-controls{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;min-width:0}
.catalog-session .catalog-session-share,.catalog-group-controls .catalog-session-share,.catalog-browse-session .catalog-session-share{width:44px;min-width:44px;height:44px;background:#fff;border:1px solid #d5e1e5;border-radius:50%}
.catalog-poster-card .catalog-session-controls{grid-column:1/-1}
.catalog-browse-session-controls{margin-top:8px}
@media(max-width:700px){.catalog-deal-filters{gap:6px;margin-bottom:16px}.catalog-deal-filters button{padding:8px 11px;font-size:12px}.catalog-deal-labels{gap:5px;margin-bottom:8px}.catalog-deal-labels .catalog-discount-tag{font-size:12px;padding:4px 9px}.catalog-session-controls{justify-content:space-between;width:100%}.catalog-session-controls>.button{flex:1;justify-content:center}}
