/* PRTY OS — Create Event. Screen-specific layout only; components.css owns every component. */

/* ---------- Stepper ---------- */
.ce-stepper { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid var(--line); border-radius: var(--r-3); background: var(--surface); overflow: hidden; margin-bottom: var(--s-6); }
.ce-stepper__step { position: relative; display: flex; align-items: center; gap: var(--s-3); min-width: 0; padding: 12px var(--s-4); text-align: left; border-left: 1px solid var(--line-soft); transition: background var(--dur-1); }
.ce-stepper__step:first-child { border-left: 0; }
.ce-stepper__step:hover { background: var(--hover); }
.ce-stepper__step.is-active { background: var(--surface-2); }
.ce-stepper__step.is-active::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--text); }
.ce-stepper__num { width: 24px; height: 24px; border-radius: 50%; flex-shrink: 0; display: grid; place-items: center; font: 600 var(--fs-11)/1 var(--font); color: var(--text-3); box-shadow: inset 0 0 0 1px var(--line-strong); font-variant-numeric: tabular-nums; transition: background var(--dur-2) var(--ease), color var(--dur-2) var(--ease); }
.ce-stepper__num .icon { stroke-width: 2.5; }
.ce-stepper__step.is-done .ce-stepper__num { background: color-mix(in srgb, var(--green) 16%, transparent); color: var(--green); box-shadow: none; }
.ce-stepper__step.is-active .ce-stepper__num { background: var(--inverse); color: var(--on-inverse); box-shadow: none; }
.ce-stepper__text { display: flex; flex-direction: column; min-width: 0; line-height: 1.3; }
.ce-stepper__label { font-weight: 500; color: var(--text-2); white-space: nowrap; }
.ce-stepper__step.is-active .ce-stepper__label { color: var(--text); }
.ce-stepper__sub { font-size: var(--fs-12); color: var(--text-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-variant-numeric: tabular-nums; }
@media (max-width: 720px) {
  .ce-stepper { margin-bottom: var(--s-4); }
  .ce-stepper__step { padding: 10px var(--s-2); gap: var(--s-2); flex-direction: column; align-items: flex-start; }
  .ce-stepper__sub { display: none; }
  .ce-stepper__label { font-size: var(--fs-12); white-space: normal; }
}

/* ---------- Layout: main + sticky Event Forecast column ---------- */
.ce-layout { display: grid; grid-template-columns: minmax(0, 1fr) 288px; gap: var(--s-6); align-items: start; }
/* No sidebar (production V1: the big "Event Finances" sidebar was removed — its numbers live in the Event Plan &
   P&L sheet's own bottom P&L totals panel instead). The wizard uses the full width the sidebar used to take. */
.ce-layout--wide { display: block; }
.ce-layout--wide .ce-main { width: 100%; }
.ce-main { min-width: 0; }
.ce-stack { display: flex; flex-direction: column; gap: var(--s-4); min-width: 0; }
.ce-summary { position: sticky; top: var(--s-5); display: flex; flex-direction: column; gap: var(--s-2); min-width: 0; }

/* Step 2 — the shared Event Plan & P&L sheet, embedded in the wizard exactly as it renders post-creation. */
.ce-plan { display: flex; flex-direction: column; gap: var(--s-4); min-width: 0; }
.ce-plan__hint { padding: var(--s-2) 0; }
.ce-setup-locked { padding: var(--s-4); }

/* Compact bottom summary bar (replaces the old sticky dock tied to the removed EventForecast sidebar) */
.ce-summarybar { position: sticky; bottom: 0; z-index: 7; margin-top: var(--s-6); background: var(--bg); border-top: 1px solid var(--line); display: flex; align-items: center; gap: var(--s-5); flex-wrap: wrap; padding: var(--s-3) 0; }
.ce-summarybar__fig { display: inline-flex; align-items: baseline; gap: 6px; white-space: nowrap; font-size: var(--fs-13); }
.ce-summarybar__fig em { font-style: normal; color: var(--text-3); font-weight: 400; }
.ce-summarybar__actions { display: flex; align-items: center; gap: var(--s-3); margin-left: auto; }
@media (max-width: 720px) {
  .ce-summarybar { flex-direction: column; align-items: stretch; gap: var(--s-2); }
  .ce-summarybar__actions { margin-left: 0; justify-content: space-between; }
}
.ce-block { width: 100%; }
.ce-center { text-align: center; }
@media (max-width: 1100px) {
  .ce-layout { grid-template-columns: minmax(0, 1fr); }
  .ce-summary { display: none !important; }
}

/* Identity card (top of the sticky column) */
.ce-id { display: flex; flex-direction: column; gap: 10px; padding: var(--s-4); }
.ce-id__title { font-size: var(--fs-16); font-weight: 600; letter-spacing: -0.01em; line-height: 1.3; overflow-wrap: anywhere; }
.ce-id__lines { display: flex; flex-direction: column; gap: 6px; font-size: var(--fs-12); color: var(--text-2); min-width: 0; }

/* ---------- Basics form ---------- */
.ce-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-4) var(--s-5); align-items: start; }
.ce-span-2 { grid-column: 1 / -1; }
.ce-form__trio { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: var(--s-3); }
.ce-form__trio .timeinput { width: 100%; }
.ce-timehint { margin-top: 6px; }
.ce-field__top { display: flex; align-items: center; justify-content: space-between; gap: var(--s-2); min-height: 18px; }
.ce-suggested { display: inline-flex; align-items: center; gap: 4px; font-size: var(--fs-11); color: var(--text-3); font-weight: 500; animation: fade-in var(--dur-2) var(--ease); }
.ce-suggested .icon { color: var(--text-2); }
.ce-clashes { display: flex; flex-direction: column; gap: var(--s-2); margin-top: var(--s-4); }
.ce-clear { display: flex; align-items: center; gap: 6px; margin-top: var(--s-4); font-size: var(--fs-12); color: var(--text-3); }
.ce-clear .icon { color: var(--green); }
.ce-hint { display: flex; align-items: center; gap: var(--s-3); padding: var(--s-4); }
.ce-hint > .icon { color: var(--text-3); }
@media (max-width: 720px) {
  .ce-form { grid-template-columns: minmax(0, 1fr); }
  .ce-form input[type="date"], .ce-form .input:not(.input--sm) { min-height: 40px; }
  .ce-hint { flex-wrap: wrap; }
}

.ce-venue { display: flex; align-items: center; gap: 10px; min-height: 34px; padding: 5px 6px 5px 8px; border: 1px solid var(--line-strong); border-radius: var(--r-2); background: var(--surface); animation: fade-in var(--dur-2) var(--ease); }

/* ---------- Timetable setup card ---------- */
.ce-setup__head { display: flex; align-items: flex-start; gap: var(--s-3); padding: var(--s-4); border-bottom: 1px solid var(--line-soft); }
.ce-setup__icon { width: 32px; height: 32px; border-radius: var(--r-2); background: var(--surface-3); color: var(--text-2); display: grid; place-items: center; flex-shrink: 0; }
.ce-setup__opts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ce-setup__opts.is-two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ce-setup__opt { display: flex; flex-direction: column; gap: 6px; min-width: 0; padding: var(--s-4); border-left: 1px solid var(--line-soft); transition: background var(--dur-2) var(--ease); }
.ce-setup__opt:first-child { border-left: 0; }
.ce-setup__opt.is-active { background: var(--surface-2); box-shadow: inset 0 2px 0 var(--text); }
.ce-setup__opthead { display: flex; align-items: center; justify-content: space-between; gap: var(--s-2); min-height: 22px; }
.ce-setup__optbody { display: flex; flex-direction: column; gap: var(--s-2); flex: 1; margin-top: 4px; }
.ce-setup__optfoot { display: flex; margin-top: var(--s-2); min-width: 0; }
.ce-setup__optfoot .btn { max-width: 100%; white-space: normal; height: auto; min-height: var(--h-ctl); padding-block: 5px; text-align: left; line-height: 1.3; }
.ce-setup__basis { display: flex; align-items: center; gap: var(--s-2); min-width: 0; }
.ce-setup__basis .select { flex: 1; min-width: 0; }
.ce-setup__check { display: flex; align-items: center; gap: var(--s-2); cursor: pointer; color: var(--text-2); }
.ce-setup__blank { padding: 6px 0; }
.ce-preview { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; border-left: 1px solid var(--line); }
.ce-preview__row { display: flex; justify-content: space-between; gap: var(--s-2); padding: 3px 0 3px 10px; font-size: var(--fs-12); color: var(--text-2); white-space: nowrap; }
.ce-preview__row > span:last-child { overflow: hidden; text-overflow: ellipsis; }
.ce-setup__sugs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--line-soft); }
.ce-fig { display: flex; flex-direction: column; gap: 4px; min-width: 0; padding: 12px var(--s-4); border-left: 1px solid var(--line-soft); }
.ce-fig:first-child { border-left: 0; }
.ce-fig__label { font-size: var(--fs-11); color: var(--text-3); text-transform: uppercase; letter-spacing: 0.07em; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ce-fig__value { font-size: var(--fs-14); font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ce-fig__sub { font-size: var(--fs-12); color: var(--text-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 1280px) {
  .ce-setup__sugs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ce-fig:nth-child(odd) { border-left: 0; }
  .ce-fig:nth-child(n+3) { border-top: 1px solid var(--line-soft); }
}
@media (max-width: 900px) {
  .ce-setup__opts, .ce-setup__opts.is-two { grid-template-columns: minmax(0, 1fr); }
  .ce-setup__opt { border-left: 0; border-top: 1px solid var(--line-soft); }
  .ce-setup__opt:first-child { border-top: 0; }
  .ce-setup__optfoot .btn { --btn-h: 38px; }
}

/* ---------- Timetable step ---------- */
.ce-budgetbar {
  position: sticky; top: 0; z-index: 6;
  display: flex; align-items: center; gap: var(--s-6); flex-wrap: wrap;
  padding: 10px var(--s-4);
  background: var(--surface-2);
  border: 1px solid var(--line-strong); border-radius: var(--r-3);
}
.ce-budgetbar__main { display: flex; align-items: baseline; gap: var(--s-3); }
.ce-budgetbar__label { font-size: var(--fs-11); color: var(--text-3); text-transform: uppercase; letter-spacing: 0.07em; font-weight: 500; }
.ce-budgetbar__value { font-size: var(--fs-20); font-weight: 600; letter-spacing: -0.02em; }
.ce-budgetbar__parts { display: flex; flex-wrap: wrap; gap: 4px var(--s-5); margin-left: auto; font-size: var(--fs-12); color: var(--text-2); }
.ce-budgetbar__parts em, .ce-actions__mid em, .ce-dock__fig em { font-style: normal; color: var(--text-3); margin-right: 6px; }
@media (max-width: 720px) { .ce-budgetbar__parts span:nth-child(n+3) { display: none; } .ce-budgetbar { gap: var(--s-3); } }

.ce-context-line { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 4px var(--s-4); padding: 0 2px; }
.ce-stage__head { gap: var(--s-3); }
.ce-stage__name { min-width: 120px; font-weight: 600; }
.ce-stage__name .inline-edit { margin: 0 -8px; }

/* Artist cost table. Container-driven so it adapts to the main column, not the viewport:
   ≥1180px one aligned line per set · 640–1180px two lines (identity & time / costs) · <640px stacked card */
.ce-tt { container-type: inline-size; }
.ce-row {
  display: grid; align-items: center; column-gap: var(--s-2); row-gap: 6px;
  padding: 8px var(--s-4); border-bottom: 1px solid var(--line-soft);
  grid-template-columns: minmax(120px, 1fr) minmax(72px, 88px) minmax(182px, 208px) minmax(58px, 80px) minmax(60px, 80px) minmax(72px, 84px) 28px;
  grid-template-areas:
    "artist artist time   time   status status remove"
    "ctx    fee    bfee   travel hotel  total  .";
}
.ce-row > * { min-width: 0; }
.ce-row__artist { grid-area: artist; display: flex; align-items: center; gap: var(--s-2); }
.ce-row__artist .aselect { flex: 1; min-width: 0; }
.ce-row__time { grid-area: time; }
.ce-row__status { grid-area: status; display: flex; align-items: center; }
.ce-row__fee { grid-area: fee; }
.ce-row__bfee { grid-area: bfee; }
.ce-row__travel { grid-area: travel; }
.ce-row__hotel { grid-area: hotel; }
.ce-row__total { grid-area: total; text-align: right; font-weight: 600; }
.ce-row__remove { grid-area: remove; display: flex; justify-content: flex-end; }
.ce-row__ctx { grid-area: ctx; align-self: center; }
.ce-row__hl { flex-shrink: 0; font-size: var(--fs-10); font-weight: 600; text-transform: uppercase; letter-spacing: 0.07em; color: var(--text-3); padding: 2px 5px; border: 1px solid var(--line-strong); border-radius: var(--r-1); }
.ce-row .settime { flex-wrap: nowrap; align-items: center; gap: var(--s-2); }
.ce-row .settime__l { display: none; }
.ce-row .bfee__sel { width: 118px; }
.ce-row .bfee__val { min-width: 56px; }
.ce-row .bfee { width: 100%; justify-content: space-between; }
.ce-row .ce-num { width: 100%; }
.ce-row:not(.ce-row--head) { animation: rise-in var(--dur-3) var(--ease) both; }
.ce-row:not(.ce-row--head):hover { background: var(--hover); }
.ce-row.is-headliner .ce-row__total { color: var(--text); }
.ce-row--head {
  padding-top: 6px; padding-bottom: 6px; row-gap: 2px;
  background: var(--bg-2);
  font-size: var(--fs-11); color: var(--text-3); text-transform: uppercase; letter-spacing: 0.06em; font-weight: 500; white-space: nowrap;
}
.ce-row--head .ce-row__total { font-weight: 500; }
.ce-th-time, .ce-th-bfee { display: flex; gap: var(--s-2); }
.ce-th-time > span:nth-child(1), .ce-th-time > span:nth-child(2) { width: 64px; }
.ce-th-bfee > span:first-child { width: 128px; }
.ce-context { display: flex; flex-wrap: wrap; gap: 0 5px; font-size: var(--fs-12); color: var(--text-3); line-height: 1.45; }

@container (min-width: 1180px) {
  .ce-row {
    grid-template-columns: minmax(160px, 1fr) 240px 116px 88px 208px 80px 80px 84px 28px;
    grid-template-areas:
      "artist time status fee bfee travel hotel total remove"
      "ctx    ctx  ctx    ctx ctx  ctx    ctx   ctx   ctx";
  }
  .ce-row--head { grid-template-areas: "artist time status fee bfee travel hotel total remove"; }
  .ce-row__ctx:empty { display: none; }
}
@container (max-width: 639px) {
  .ce-row {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 38px;
    grid-template-areas:
      "artist artist remove"
      "time   time   time"
      "status total  total"
      "fee    fee    fee"
      "bfee   bfee   bfee"
      "travel hotel  hotel"
      "ctx    ctx    ctx";
    padding: 12px var(--s-4); row-gap: 10px;
  }
  .ce-row--head { display: none; }
  .ce-row .settime__l { display: block; }
  .ce-row .settime { align-items: flex-end; }
  .ce-row [data-label] { display: flex; align-items: center; justify-content: space-between; gap: var(--s-3); }
  .ce-row [data-label]::before { content: attr(data-label); font-size: var(--fs-12); color: var(--text-3); text-transform: none; letter-spacing: 0; font-weight: 400; white-space: nowrap; }
  .ce-row .ce-num { width: 140px; }
  .ce-row__travel .ce-num, .ce-row__hotel .ce-num { width: 96px; }
  .ce-row__total { font-size: var(--fs-14); }
  .ce-row .input--sm, .ce-row .select.input--sm { height: 38px; font-size: var(--fs-13); }
  .ce-row__remove .btn { --btn-h: 38px; }
}

.ce-add { display: flex; align-items: center; gap: var(--s-3); padding: 10px var(--s-4); flex-wrap: wrap; }
.ce-add__select { flex: 1; min-width: 200px; max-width: 420px; }

/* ---------- Number input (money / quantities) ---------- */
.ce-num { position: relative; display: inline-flex; align-items: center; width: 100%; }
.ce-num .input { width: 100%; text-align: right; }
.ce-num.has-sym .input { padding-left: 20px; }
.ce-num__sym { position: absolute; left: 8px; font-size: var(--fs-12); color: var(--text-4); pointer-events: none; }

/* ---------- Budget & tickets ---------- */
.ce-budget-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: var(--s-4); align-items: start; }
@media (max-width: 1400px) { .ce-budget-grid { grid-template-columns: minmax(0, 1fr); } }

/* Spreadsheet-style rows (COST | NET | VAT | GROSS) */
.ce-grid { display: flex; flex-direction: column; }
.ce-grow { display: grid; align-items: center; column-gap: var(--s-3); min-height: 40px; padding: 4px var(--s-4); border-bottom: 1px solid var(--line-soft); }
.ce-grow > * { min-width: 0; }
.ce-grow .r { text-align: right; justify-self: stretch; }
.ce-grid--costs .ce-grow { grid-template-columns: minmax(140px, 1fr) 112px 88px 96px 28px; }
.ce-grid--tiers .ce-grow { grid-template-columns: minmax(100px, 1fr) 96px 88px 88px 88px 28px; }
.ce-grid--rev .ce-grow { grid-template-columns: minmax(120px, 1fr) 120px 28px; }
.ce-grow--head { min-height: 30px; background: var(--bg-2); font-size: var(--fs-11); color: var(--text-3); text-transform: uppercase; letter-spacing: 0.06em; font-weight: 500; white-space: nowrap; }
.ce-grow--section { min-height: 34px; background: var(--bg-2); font-size: var(--fs-12); font-weight: 600; color: var(--text-2); }
.ce-grow--total { min-height: 42px; font-weight: 600; border-bottom: 0; border-top: 1px solid var(--line); }
.ce-grow.is-derived { color: var(--text-2); font-size: var(--fs-12); min-height: 32px; }
.ce-grow__label { display: flex; align-items: center; gap: var(--s-2); }
.ce-grow__label .input { flex: 1; min-width: 0; }
.ce-grow__src { white-space: nowrap; flex-shrink: 0; max-width: 110px; overflow: hidden; text-overflow: ellipsis; }
.ce-grow__x { display: flex; justify-content: flex-end; }
.ce-grow .vatsel { width: 100%; }
.ce-quick { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; padding: 6px var(--s-4) 8px; border-bottom: 1px solid var(--line-soft); }
.ce-addline { display: inline-flex; align-items: center; gap: 3px; height: 24px; padding: 0 8px; border-radius: var(--r-1); color: var(--text-3); font-size: var(--fs-12); font-weight: 500; transition: background var(--dur-1), color var(--dur-1); }
.ce-addline:hover { background: var(--hover); color: var(--text); }
.ce-addline--chip { border: 1px dashed var(--line-strong); }
.ce-muted-row { padding: 12px var(--s-4); }
.ce-forecastline { display: flex; align-items: center; flex-wrap: wrap; gap: var(--s-3); padding: 10px var(--s-4); border-top: 1px solid var(--line-soft); }
.ce-forecastline .ce-num { width: 96px; }

@media (max-width: 720px) {
  .ce-grow { row-gap: 6px; padding: 8px var(--s-4); }
  .ce-grid--costs .ce-grow:not(.ce-grow--section):not(.ce-grow--head) { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) 38px; }
  .ce-grid--costs .ce-grow:not(.ce-grow--section):not(.ce-grow--head) > :first-child { grid-column: 1 / 4; }
  .ce-grid--costs .ce-grow--section { grid-template-columns: minmax(0, 1fr) auto 0 auto 28px; }
  .ce-grid--tiers .ce-grow { grid-template-columns: repeat(4, minmax(0, 1fr)) 38px; }
  .ce-grid--tiers .ce-grow > :first-child { grid-column: 1 / 5; }
  .ce-grid--tiers .ce-grow--total > :nth-child(2) { display: none; }
  .ce-grid--tiers .ce-grow--total > :last-child { display: none; }
  .ce-grow--head { display: none !important; }
  .ce-grow [data-label] { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; }
  .ce-grow .r[data-label] { align-items: flex-end; }
  .ce-grow [data-label]::before { content: attr(data-label); font-size: var(--fs-11); color: var(--text-3); font-weight: 400; }
  .ce-grow .ce-num, .ce-grow .vatsel { width: 100%; }
  .ce-grow .input--sm, .ce-grow .select.input--sm { height: 38px; font-size: var(--fs-13); }
  .ce-grow__x { grid-column: -2 / -1; grid-row: 1; }
  .ce-grow__x .btn { --btn-h: 38px; }
  .ce-addline { height: 32px; }
}

/* ---------- Bottom dock: forecast bar (tablet/mobile) + step actions ---------- */
.ce-dock {
  position: sticky; bottom: 0; z-index: 7;
  margin-top: var(--s-6);
  background: var(--bg);
  border-top: 1px solid var(--line);
}
.ce-dock__panel { display: none; }
.ce-dock__sum { display: none; }
.ce-actions { display: flex; align-items: center; gap: var(--s-3); padding: var(--s-3) 0; }
.ce-actions__mid { flex: 1; min-width: 0; display: flex; justify-content: center; flex-wrap: wrap; gap: 2px var(--s-5); font-size: var(--fs-12); color: var(--text-2); }

@media (max-width: 1100px) {
  .ce-dock { margin-left: calc(var(--page-pad) * -1); margin-right: calc(var(--page-pad) * -1); padding: 0 var(--page-pad) env(safe-area-inset-bottom, 0px); }
  .ce-dock__sum {
    display: flex; align-items: center; gap: var(--s-5); width: 100%; min-height: 44px;
    padding: 8px 2px; border-bottom: 1px solid var(--line-soft); text-align: left; font-size: var(--fs-13);
  }
  .ce-dock__fig { display: inline-flex; align-items: baseline; white-space: nowrap; font-weight: 600; }
  .ce-dock__fig em { font-weight: 400; font-size: var(--fs-12); }
  .ce-dock__more { margin-left: auto; display: inline-flex; align-items: center; gap: 4px; font-size: var(--fs-12); color: var(--text-3); }
  .ce-dock.is-open .ce-dock__panel { display: block; max-height: min(60vh, 520px); overflow-y: auto; padding-top: var(--s-3); animation: rise-in var(--dur-2) var(--ease) both; }
  .ce-actions__mid { display: none; }
  .ce-actions { justify-content: space-between; }
}
@media (max-width: 720px) {
  .ce-dock__sum { gap: var(--s-4); }
  .ce-actions { padding: 10px 0; }
  .ce-actions .btn { --btn-h: 40px; }
}

/* Narrow two-line rows: keep the artist cell on one line so actions never collide with the time inputs */
.ce-row__artist { overflow: hidden; }
.ce-row__artist .aselect.row { flex-wrap: nowrap; min-width: 0; }
.ce-row__artist .linked { min-width: 0; }
.ce-row__artist .aselect__name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.ce-row__artist .linked .icon { display: none; }
.ce-row__artist .aselect.row .btn { flex-shrink: 0; }

/* Ticketing platforms mini-table + per-tier platform select (production V1 addition) */
.ce-platforms { padding: 8px var(--s-4); border-bottom: 1px solid var(--line-soft); display: flex; flex-direction: column; gap: 6px; }
.ce-platforms__head { text-transform: uppercase; letter-spacing: 0.06em; font-weight: 500; }
.ce-platforms__row { display: flex; align-items: center; gap: var(--s-4); flex-wrap: wrap; }
.ce-platforms__row label { display: inline-flex; align-items: center; gap: 6px; }
.ce-platforms__row .ce-num { width: 64px; }
.ce-platforms__total { padding-top: 4px; border-top: 1px dashed var(--line-soft); }
.ce-tier__platform { margin-top: 4px; width: auto; max-width: 130px; }

/* Lineup intent is separate from event and per-artist booking statuses. */
.ce-lineup-plan { overflow: hidden; }
.ce-lineup-plan__grid { display: grid; grid-template-columns: repeat(4, minmax(140px, 1fr)); gap: var(--s-3); padding: var(--s-4); }
.ce-lineup-plan__action { display: flex; align-items: center; justify-content: space-between; gap: var(--s-3); padding: 0 var(--s-4) var(--s-4); }
.ce-row__role { width: 100%; margin-bottom: 4px; color: var(--text-3); }
@media (max-width: 900px) { .ce-lineup-plan__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) {
  .ce-lineup-plan__grid { grid-template-columns: minmax(0, 1fr); }
  .ce-lineup-plan__action { align-items: stretch; flex-direction: column; }
}
