:root {
  --ink: #172235;
  --muted: #64748b;
  --subtle: #94a3b8;
  --line: #e2e8f0;
  --surface: #ffffff;
  --canvas: #f6f8fb;
  --navy: #15253f;
  --navy-soft: #203555;
  --accent: #1b8a83;
  --accent-dark: #126b66;
  --accent-soft: #e5f4f2;
  --danger: #b42318;
  --danger-soft: #fef0ef;
  --warning: #9a6700;
  --warning-soft: #fff8e5;
  --shadow: 0 8px 24px rgba(15, 31, 53, 0.06);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--canvas);
  font-synthesis: none;
}

* { box-sizing: border-box; }
body { margin: 0; background: var(--canvas); color: var(--ink); line-height: 1.5; }
a { color: var(--accent-dark); text-decoration: none; }
a:hover { text-decoration: underline; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid rgba(27, 138, 131, 0.35);
  outline-offset: 2px;
}

.app-shell { min-height: 100vh; }
.topbar {
  min-height: 72px; display: flex; align-items: center; gap: 28px;
  padding: 0 32px; color: #fff; background: var(--navy);
}
.brand { display: inline-flex; align-items: center; gap: 11px; color: #fff; min-width: 205px; }
.brand:hover { text-decoration: none; }
.brand-mark {
  display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px;
  color: var(--navy); background: #8ed8cf; font-weight: 800; font-size: 18px;
}
.brand strong, .brand small { display: block; line-height: 1.1; }
.brand strong { font-size: 16px; letter-spacing: .01em; }
.brand small { margin-top: 3px; color: #aebbd0; font-size: 11px; letter-spacing: .13em; text-transform: uppercase; }
.context-strip { display: flex; align-items: center; gap: 9px; color: #d9e3f1; font-size: 14px; }
.context-label { color: #91a3be; font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.context-divider { color: #607795; }
.user-strip { display: flex; align-items: center; gap: 11px; margin-left: auto; color: #d9e3f1; font-size: 13px; }
.context-settings { color: #d9e3f1; font-size: 12px; }
.context-settings:hover { color: #fff; text-decoration: underline; }
.user-name { max-width: 210px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.badge, .status {
  display: inline-flex; align-items: center; border-radius: 999px; font-size: 11px;
  font-weight: 700; letter-spacing: .03em; line-height: 1; white-space: nowrap;
}
.badge { padding: 6px 9px; }
.badge--dev { color: #d5f7ef; border: 1px solid rgba(142, 216, 207, .3); background: rgba(142, 216, 207, .12); }
.badge--staging { color: #fff7ed; border: 1px solid rgba(251, 146, 60, .65); background: #9a3412; }

.app-layout { display: flex; min-height: calc(100vh - 72px); }
.sidebar {
  display: flex; flex: 0 0 228px; flex-direction: column; justify-content: space-between;
  padding: 27px 14px; background: var(--surface); border-right: 1px solid var(--line);
}
.sidebar nav { display: grid; gap: 5px; }
.nav-link {
  display: flex; align-items: center; gap: 12px; padding: 11px 13px; border-radius: 8px;
  color: #53647b; font-size: 14px; font-weight: 650;
}
.nav-link:hover { color: var(--ink); background: #f1f5f9; text-decoration: none; }
.nav-link.is-active { color: var(--accent-dark); background: var(--accent-soft); }
.nav-icon { display: inline-grid; place-items: center; width: 21px; color: currentColor; font-size: 14px; font-weight: 800; }
.sidebar-footer { display: flex; align-items: center; gap: 8px; padding: 13px; color: var(--subtle); font-size: 12px; }
.status-dot { width: 7px; height: 7px; border-radius: 50%; background: #42b883; box-shadow: 0 0 0 3px #e5f6ed; }
.main-content { flex: 1; min-width: 0; padding: 36px 42px 64px; }
.content-frame { width: min(1180px, 100%); margin: 0 auto; }

.page-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.legacy-download-tabs { margin: -10px 0 24px; border-bottom: 1px solid var(--line); }
.legacy-download-tabs__list { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 4px 0 0; list-style: none; }
.legacy-download-tabs__link { display: inline-flex; align-items: center; min-height: 36px; padding: 7px 12px; color: var(--muted); border-radius: 7px 7px 0 0; font-size: 13px; font-weight: 700; }
.legacy-download-tabs__link:hover { color: var(--ink); background: #f1f5f9; text-decoration: none; }
.legacy-download-tabs__link:focus-visible { position: relative; z-index: 1; }
.legacy-download-tabs__link.is-active { color: var(--accent-dark); background: var(--accent-soft); box-shadow: inset 0 -2px 0 var(--accent); }
.breadcrumbs { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 10px; color: var(--muted); font-size: 12px; }
.breadcrumbs span { color: var(--subtle); }
h1, h2, h3 { margin: 0; color: var(--ink); letter-spacing: -.025em; }
h1 { font-size: clamp(26px, 3vw, 34px); line-height: 1.15; }
h2 { font-size: 18px; line-height: 1.3; }
h3 { font-size: 14px; }
.page-intro { margin: 8px 0 0; color: var(--muted); font-size: 14px; }
.page-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; }

.panel { margin-bottom: 22px; padding: 24px; background: var(--surface); border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow); }
.panel--compact { padding: 18px 20px; }
.section-header { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 16px; }
.section-header h2 { display: flex; align-items: center; gap: 9px; }
.section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 18px; }
.section-heading p { margin: 5px 0 0; color: var(--muted); font-size: 13px; }
.section-count { color: var(--subtle); font-size: 12px; font-weight: 600; }
.section-rule { margin: 26px 0; border: 0; border-top: 1px solid var(--line); }
.home-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.home-card { display: flex; flex-direction: column; min-height: 150px; padding: 21px; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow); }
.home-card:hover { border-color: #a9d9d4; text-decoration: none; transform: translateY(-1px); }
.home-card__eyebrow { color: var(--accent-dark); font-size: 11px; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.home-card h2 { margin-top: 10px; }
.home-card p { margin: 7px 0 0; color: var(--muted); font-size: 13px; }
.home-card__link { margin-top: auto; padding-top: 18px; font-size: 13px; font-weight: 700; }
.workbench { display: grid; gap: 18px; margin-bottom: 24px; }
.workbench-group-label { margin: 16px 0 8px; color: var(--muted); font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.work-panel { margin-bottom: 0; }
.work-panel--attention { border-color: #b9ded9; }
.work-list { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.work-item { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 15px 0; border-top: 1px solid #edf1f5; }
.work-item:first-child { padding-top: 0; border-top: 0; }
.work-item:last-child { padding-bottom: 0; }
.work-item__body { min-width: 0; }
.work-item__heading { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; }
.work-item__heading h3 { font-size: 14px; }
.work-item__context { margin: 3px 0 0; color: var(--ink); font-size: 13px; }
.work-item__reason { margin: 5px 0 0; color: var(--muted); font-size: 12px; }
.work-item__meta { margin: 6px 0 0; color: var(--subtle); font-size: 12px; font-weight: 700; }
.work-item__action { flex: 0 0 auto; align-self: center; }
.status--actionable { color: #11645f; background: #e4f5f1; }
.status--waiting, .status--blocked { color: #8a5700; background: #fff5d6; }
.status--coming_up { color: #285a84; background: #e8f1fb; }
.workbench-clear { margin: 0; }
.workbench-context { margin-top: 0; }
.home-grid--secondary { margin-top: 0; }

.context-card { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.meta-list { display: grid; grid-template-columns: minmax(115px, .35fr) 1fr; gap: 10px 20px; margin: 0; }
.meta-list dt { color: var(--muted); font-size: 12px; font-weight: 650; }
.meta-list dd { margin: 0; color: var(--ink); font-size: 14px; overflow-wrap: anywhere; }
.meta-list--wide { grid-template-columns: 150px 1fr; }
.meta-list dd .muted { color: var(--muted); }

.filter-bar { display: flex; align-items: end; flex-wrap: wrap; gap: 12px; margin-bottom: 20px; padding: 15px; background: #f8fafc; border: 1px solid var(--line); border-radius: 10px; }
.field { display: grid; gap: 6px; min-width: 150px; }
.field--search { flex: 1 1 280px; }
label, .field-label { color: #40516a; font-size: 12px; font-weight: 700; }
input, select, textarea {
  width: 100%; box-sizing: border-box; color: var(--ink); background: #fff;
  border: 1px solid #cbd5e1; border-radius: 7px; font: inherit; font-size: 14px;
}
input, select { height: 40px; padding: 0 11px; }
textarea { min-height: 96px; padding: 10px 11px; resize: vertical; }
input::placeholder { color: #a2afbe; }
.colour-control { display: flex; align-items: center; gap: 10px; }
.colour-control input[type="color"] { width: 46px; height: 40px; padding: 3px; cursor: pointer; }
.colour-control input[type="text"] { flex: 1; }
button, .button {
  display: inline-flex; align-items: center; justify-content: center; min-height: 40px;
  padding: 0 15px; color: #fff; background: var(--accent-dark); border: 1px solid var(--accent-dark);
  border-radius: 7px; font: inherit; font-size: 13px; font-weight: 750; cursor: pointer;
}
button:hover, .button:hover { background: #0e5a56; text-decoration: none; }
.button--secondary { color: #40516a; background: #fff; border-color: #cbd5e1; }
.button--secondary:hover { color: var(--ink); background: #f8fafc; }
.button--quiet { min-height: 34px; padding: 0 11px; color: var(--accent-dark); background: transparent; border-color: transparent; }
.result-summary { margin: 0 0 10px; color: var(--muted); font-size: 13px; }
.result-count { margin: 5px 0 0; color: var(--muted); font-size: 13px; }
.filter-panel { padding-bottom: 4px; }
.filter-panel .filter-bar { margin-bottom: 0; }
.filter-field { flex: 1 1 300px; }
.filter-field--small { flex: 0 1 180px; }
.table-primary { color: var(--ink); font-weight: 750; }

.questionnaire-document-upload { display: grid; gap: 10px; margin-top: 8px; }
.questionnaire-dropzone { display: grid; gap: 3px; min-height: 72px; align-content: center; justify-items: center; padding: 14px 18px; color: var(--ink); background: #fbfdff; border: 1px dashed #9aaabd; border-radius: 9px; cursor: pointer; text-align: center; }
.questionnaire-dropzone span { color: var(--muted); font-size: 13px; font-weight: 400; }
.questionnaire-dropzone:hover, .questionnaire-dropzone--active { color: var(--accent-dark); background: var(--accent-soft); border-color: var(--accent); }
.questionnaire-dropzone:focus-visible { outline: 3px solid rgba(27, 138, 131, .28); outline-offset: 2px; }
.questionnaire-upload-status { min-height: 17px; margin: 0; color: var(--accent-dark); font-size: 12px; font-weight: 650; }
.questionnaire-uploaded-heading { margin: 7px 0 0; color: var(--ink); font-size: 13px; }
.questionnaire-file-list { display: grid; gap: 8px; padding-left: 0; list-style: none; }
.questionnaire-file-list li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 0; border-bottom: 1px solid #e4e9ef; }
.questionnaire-file-list li > div { display: grid; gap: 2px; }

.table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 9px; }
table { width: 100%; min-width: 650px; border-collapse: collapse; font-size: 13px; }
th { padding: 12px 14px; color: var(--muted); background: #f8fafc; border-bottom: 1px solid var(--line); font-size: 11px; font-weight: 750; letter-spacing: .07em; text-align: left; text-transform: uppercase; white-space: nowrap; }
td { padding: 14px; border-bottom: 1px solid #edf1f5; vertical-align: middle; }
tbody tr:last-child td { border-bottom: 0; }
tbody tr:hover { background: #fbfdfd; }
.primary-cell a { color: var(--ink); font-weight: 700; }
.primary-cell a:hover { color: var(--accent-dark); }
.secondary-cell { display: block; margin-top: 2px; color: var(--muted); font-size: 12px; }
.status { padding: 6px 9px; color: #496075; background: #eef2f6; text-transform: capitalize; }
.status--active, .status--confirmed, .status--available { color: #11645f; background: #e4f5f1; }
.status--inactive, .status--draft, .status--open { color: #596a80; background: #eef2f6; }
.status--archived, .status--cancelled, .status--closed { color: #7d4b4b; background: #f8eaea; }
.status--historical { color: #496075; background: #eef2f6; }
.selection-list { display: grid; gap: 7px; min-width: 210px; }
.selection-row { display: flex; align-items: center; gap: 8px; padding: 7px 9px; color: var(--ink); background: #fbfdff; border: 1px solid var(--line); border-radius: 7px; cursor: pointer; font-size: 12px; }
.selection-row:has(input:checked) { color: var(--accent-dark); background: var(--accent-soft); border-color: #a9d9d4; }
.selection-row input { accent-color: var(--accent); }
.status--scheduled { color: #285a84; background: #e8f1fb; }
.status--large { margin-top: 5px; padding: 8px 11px; font-size: 12px; }

.booking-journey { display: flex; align-items: center; gap: 18px; margin: 0 0 16px; padding: 0 2px; }
.booking-journey > .eyebrow { flex: 0 0 auto; margin: 0; }
.booking-stepper { display: flex; align-items: center; flex: 1 1 auto; min-width: 0; margin: 0; padding: 0; list-style: none; }
.booking-stepper__item { display: flex; align-items: center; flex: 1 1 0; min-width: 0; color: var(--muted); font-size: 13px; }
.booking-stepper__item:not(:last-child)::after { content: ""; flex: 1 1 auto; height: 1px; min-width: 18px; margin: 0 10px; background: var(--line); }
.booking-stepper__marker { display: grid; place-items: center; flex: 0 0 22px; width: 22px; height: 22px; color: var(--muted); background: var(--surface); border: 1px solid #cbd5e1; border-radius: 50%; font-size: 12px; font-weight: 800; }
.booking-stepper__label { margin-left: 7px; white-space: nowrap; }
.booking-stepper__item--completed { color: var(--ink); }
.booking-stepper__item--completed .booking-stepper__marker { color: #166534; border-color: #86efac; background: #f0fdf4; }
.booking-stepper__item--current { color: var(--ink); font-weight: 750; }
.booking-stepper__item--current .booking-stepper__marker { color: #fff; border-color: var(--accent); background: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
.booking-stepper__item--blocked { color: #92400e; font-weight: 700; }
.booking-stepper__item--blocked .booking-stepper__marker { color: #92400e; border-color: #f59e0b; background: #fffbeb; }
.wizard-route { display: flex; align-items: flex-start; width: 100%; margin: 0 0 30px; padding: 0 0 22px; list-style: none; border-bottom: 1px solid var(--line); }
.wizard-route__segment { flex: 0 1 28px; min-width: 12px; height: 3px; margin: 14px 3px 0; background: #cbd5e1; z-index: 0; }
.wizard-station { display: grid; justify-items: center; gap: 6px; min-width: 0; color: var(--muted); text-align: center; z-index: 1; }
.wizard-station__marker { display: grid; place-items: center; width: 30px; height: 30px; color: var(--muted); background: #fff; border: 3px solid #cbd5e1; border-radius: 50%; font-weight: 800; }
.wizard-station__label { max-width: 110px; color: var(--ink); font-size: .73rem; line-height: 1.2; }
.wizard-station__state { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.wizard-station--current .wizard-station__state { position: static; width: auto; height: auto; margin: 0; overflow: visible; clip: auto; white-space: normal; color: var(--ink); font-size: .72rem; font-weight: 700; }
.wizard-station--current .wizard-station__marker { color: #fff; background: var(--accent); border-color: var(--accent); box-shadow: 0 0 0 4px var(--accent-soft); }
.wizard-station--current .wizard-station__label, .wizard-station--current .wizard-station__state { color: var(--ink); font-weight: 700; }
.wizard-station--complete .wizard-station__marker { color: #166534; background: #dcfce7; border-color: #22c55e; }
.wizard-station--complete .wizard-station__state { color: #166534; font-weight: 700; }
.wizard-route__segment--complete { background: #22c55e; }
.performance-row { margin: 0; padding: 18px 20px 15px; background: #f8fafc; border: 1px solid #cbd5e1; border-radius: 10px; }
.performance-row legend { padding: 0 7px; color: var(--ink); font-size: 15px; font-weight: 800; }
.performance-row .field { margin-bottom: 0; }
.form-panel { max-width: 860px; padding: 28px 30px 30px; border-color: #d4dde8; box-shadow: 0 10px 28px rgba(15, 31, 53, 0.08); }
.wizard-section { margin: 0; }
.wizard-section--venue { padding-bottom: 28px; border-bottom: 1px solid var(--line); }
.wizard-section--performances { padding-top: 27px; }
.wizard-section h2, .wizard-section h3 { margin: 0 0 15px; color: var(--ink); }
.wizard-section h2 { font-size: 20px; letter-spacing: -.01em; }
.wizard-section h3 { font-size: 17px; }
.wizard-section--performances #performances { display: grid; gap: 13px; }
.booking-venue-field { max-width: 620px; margin: 0; padding: 16px 18px; background: #f8fafc; border: 1px solid #cbd5e1; border-radius: 10px; }
.booking-venue-field label { color: var(--ink); font-size: 13px; }
.booking-venue-field .selected-entity { min-height: 42px; padding: 10px 12px; background: #fff; border: 1px solid #b8c5d4; border-radius: 7px; font-weight: 750; }
.booking-venue-field button { width: max-content; }
.combined-entity-picker { max-width: 620px; margin: 0; padding: 18px; background: #f8fafc; border: 1px solid #cbd5e1; border-radius: 10px; }
.combined-entity-picker .selected-entity { min-height: 58px; padding: 13px 14px; background: #fff; border-color: #b8c5d4; }
.combined-entity-picker .selected-entity strong { color: var(--ink); font-size: 15px; }
.combined-entity-picker > button { width: max-content; margin-top: 10px; }
.wizard-section--performances > #add-performance { margin-top: 16px; }
.wizard-section .form-actions { margin-top: 30px; }
.wizard-section .form-actions .button--primary { min-width: 190px; }
.form-panel > .form-stack > h2 { margin: 0 0 18px; color: var(--ink); font-size: 20px; }
.form-panel > .form-stack > .field { margin-bottom: 18px; }
.selectable-check-row { display: flex; align-items: flex-start; gap: 12px; width: 100%; box-sizing: border-box; margin-bottom: 10px; padding: 14px 16px; background: #f8fafc; border: 1px solid var(--line); border-radius: 9px; cursor: pointer; }
.selectable-check-row:hover { background: #f1f7f7; border-color: #9ccac6; }
.selectable-check-row:focus-within { outline: 3px solid rgba(27, 138, 131, 0.28); outline-offset: 2px; }
.selectable-check-row input[type="checkbox"] { flex: 0 0 auto; width: 17px; height: 17px; margin: 2px 0 0; accent-color: var(--accent); }
.selectable-check-row__copy { display: grid; gap: 3px; min-width: 0; }
.selectable-check-row__copy strong { color: var(--ink); }
.selectable-check-row__copy .muted { line-height: 1.4; }
.selectable-check-row:has(input:checked) { background: var(--accent-soft); border-color: var(--accent); }
.wizard-footer { align-items: center; justify-content: space-between; width: 100%; }
.wizard-footer__primary { display: flex; align-items: center; justify-content: flex-end; gap: 10px; }
.wizard-station__link { display: grid; justify-items: center; gap: 6px; min-width: 100%; padding: 0 5px; color: inherit; border-radius: 8px; }
.wizard-station__link:hover { text-decoration: none; }
.wizard-station__link:focus-visible { outline: 3px solid rgba(27, 138, 131, 0.35); outline-offset: 3px; }
.wizard-placeholder { max-width: 620px; padding: 24px; background: #f8fafc; border: 1px solid #cbd5e1; border-radius: 10px; }
.wizard-placeholder h2 { margin: 0 0 8px; }
.wizard-placeholder p:last-child { margin-bottom: 0; color: var(--muted); }
.wizard-review { display: grid; gap: 18px; }
.wizard-review > .page-intro { margin: -6px 0 0; }
.review-section { margin: 0; }
.review-section .section-heading { align-items: center; }
.review-section > h3 { margin: 0 0 14px; font-size: 16px; line-height: 1.3; }
.review-section .summary-list span { color: var(--muted); }
.review-section .summary-list li { align-items: flex-start; flex-direction: column; gap: 3px; }
.review-section .summary-list__item { padding: 11px 0; border-bottom: 1px solid var(--line); }
.review-section .summary-list__item:last-child { border-bottom: 0; }
@media (max-width: 850px) { .wizard-route { display: grid; grid-template-columns: 30px minmax(0, 1fr); grid-template-rows: repeat(11, auto); gap: 0 10px; } .wizard-station { grid-column: 1 / -1; grid-template-columns: 30px minmax(0, 1fr); justify-items: start; text-align: left; } .wizard-station__link { grid-template-columns: 30px minmax(0, 1fr); justify-items: start; width: 100%; } .wizard-station__state { grid-column: 2; } .wizard-route__segment { grid-column: 1; width: 3px; min-width: 3px; height: 18px; margin: 0 0 0 13px; } .wizard-station__label { max-width: none; } }
.next-action { align-items: center; display: flex; gap: 24px; justify-content: space-between; margin-bottom: 22px; }
.next-action h2 { margin: 0 0 5px; }
.next-action p { color: #475569; margin: 0; }
@media (max-width: 800px) { .next-action { align-items: flex-start; flex-direction: column; gap: 14px; } }

.pagination { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 18px; color: var(--muted); font-size: 13px; }
.pagination a { font-weight: 700; }
.empty-state { padding: 42px 20px; color: var(--muted); text-align: center; }
.empty-state strong { display: block; margin-bottom: 5px; color: var(--ink); font-size: 15px; }
.notice { margin: 0 0 20px; padding: 12px 15px; border: 1px solid; border-radius: 8px; font-size: 13px; }
.notice--success { color: #126b66; background: var(--accent-soft); border-color: #a8dcd6; }
.notice--error { color: var(--danger); background: var(--danger-soft); border-color: #f2b8b4; }
.error-list { margin: 0; padding-left: 19px; }
.notice ul { margin: 7px 0 0; padding-left: 19px; }

.contact-list { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.contact-item { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 13px 14px; border: 1px solid var(--line); border-radius: 8px; }
.contact-main { min-width: 0; }
.contact-name { display: block; font-size: 14px; font-weight: 700; }
.contact-details { display: block; margin-top: 3px; color: var(--muted); font-size: 12px; }
.contact-actions { flex: 0 0 auto; }
.client-response-progress { display: flex; flex-wrap: wrap; align-items: center; gap: 0; margin: 0; padding: 0; list-style: none; }
.client-response-progress__step { display: inline-flex; align-items: center; color: var(--muted); font-size: 13px; }
.client-response-progress__step:not(:last-child)::after { margin: 0 9px; color: var(--subtle); content: "→"; }
.client-response-progress__step--complete { color: #126b66; font-weight: 700; }
.client-response-progress__step--current { color: var(--ink); font-weight: 750; }
.client-engagement__contact { display: block; margin-top: 8px; color: var(--muted); font-size: 13px; }
.calendar-panel { max-width: 1180px; }
.calendar-toolbar { display: flex; align-items: center; justify-content: center; gap: 18px; margin-bottom: 18px; }
.calendar-toolbar h2 { min-width: 190px; text-align: center; }
.calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.calendar-day-name { padding: 10px; color: var(--muted); background: #f8fafc; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); font-size: 11px; font-weight: 750; letter-spacing: .07em; text-align: center; text-transform: uppercase; }
.calendar-day { min-height: 148px; padding: 9px; background: #fff; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.calendar-day > time { display: block; margin-bottom: 7px; color: var(--muted); font-size: 12px; font-weight: 700; }
.calendar-day--outside { background: #f8fafc; }
.calendar-day--outside > time { color: var(--subtle); }
.calendar-event { display: grid; gap: 2px; margin: 0 0 6px; padding: 7px 8px; color: var(--ink); background: var(--accent-soft); border-left: 3px solid var(--accent); border-radius: 5px; font-size: 11px; }
.calendar-event:hover { text-decoration: none; filter: brightness(.98); }
.calendar-event strong { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.calendar-event span, .calendar-event small { color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.calendar-event em { color: #9a6700; font-size: 10px; font-style: normal; font-weight: 750; text-transform: capitalize; }
.calendar-event--postponed { background: #fff8e6; border-left-color: #d97706; }
.calendar-event--cancelled { color: #7d4b4b; background: #f8eaea; border-left-color: #b45309; opacity: .75; text-decoration: line-through; }
.calendar-event--completed { background: #eef2f6; border-left-color: #94a3b8; }
.feed-url { width: 100%; margin-top: 8px; }
@media (max-width: 800px) {
  .calendar-day { min-height: 104px; padding: 6px; }
  .calendar-event { padding: 5px; }
  .calendar-event small { display: none; }
  .calendar-day-name { padding: 7px 3px; font-size: 9px; }
}

.form-panel { max-width: none; }
.form-panel > .form-stack { max-width: 1040px; }
.form-stack { display: grid; gap: 0; }
.commercial-agreement-form[data-selected-model="fixed_price"] [data-commercial-field="minimum_sales"],
.commercial-agreement-form[data-selected-model="fixed_price"] [data-commercial-field="per_performer"],
.commercial-agreement-form[data-selected-model="minimum_sales"] [data-commercial-field="fixed_price"],
.commercial-agreement-form[data-selected-model="minimum_sales"] [data-commercial-field="per_performer"],
.commercial-agreement-form[data-selected-model="per_performer"] [data-commercial-field="fixed_price"],
.commercial-agreement-form[data-selected-model="per_performer"] [data-commercial-field="minimum_sales"] { display: none !important; }
.commercial-agreement-form [data-commercial-field][hidden] { display: none !important; }
.commercial-agreement-form #agreed_minimum_sales_amount,
.commercial-agreement-form label[for="agreed_minimum_sales_amount"] { display: none !important; }
.commercial-agreement-form { display: flex; flex-direction: column; }
.commercial-agreement-form > label[for="commercial_model"] { order: 1; }
.commercial-agreement-form > #commercial_model { order: 2; }
.commercial-agreement-form > [data-commercial-field],
.commercial-agreement-form > .minimum-sales-inputs { order: 3; }
.commercial-agreement-form > .muted,
.commercial-agreement-form > .form-actions { order: 4; }
.commercial-agreement-form [data-commercial-field="minimum_sales"] .form-table { display: grid; gap: 0; margin-top: 10px; }
.commercial-agreement-form [data-commercial-field="minimum_sales"] .form-table__row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(110px, 150px); align-items: center; gap: 16px; padding: 9px 0; border-bottom: 1px solid var(--line); }
.commercial-agreement-form [data-commercial-field="minimum_sales"] .form-table__row--heading { padding: 0 0 7px; color: var(--muted); font-size: 12px; font-weight: 700; }
.commercial-agreement-form [data-commercial-field="minimum_sales"] .form-table__row > span:nth-child(3),
.commercial-agreement-form [data-commercial-field="minimum_sales"] input[name^="minimum_sales_credit_"] { display: none; }
.commercial-agreement-form [data-commercial-field="minimum_sales"] input[name^="customer_price_"] { width: 10ch; min-width: 0; }
.commercial-agreement-form [data-commercial-field="minimum_sales"] .form-table__row > span:first-child { display: flex; align-items: center; gap: 9px; min-width: 0; }
.commercial-agreement-form [data-commercial-field="minimum_sales"] input[type="checkbox"] { width: 16px; height: 16px; margin: 0; accent-color: var(--accent); }
.required { margin-left: 5px; color: var(--muted); font-size: 10px; font-weight: 600; text-transform: uppercase; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 17px 16px; }
.form-grid .field--full { grid-column: 1 / -1; }
.form-actions { display: flex; gap: 10px; margin-top: 24px; padding-top: 19px; border-top: 1px solid var(--line); }
.form-hint { margin: -3px 0 2px; color: var(--muted); font-size: 12px; }
.form-intro { margin: 0 0 2px; color: var(--muted); }
.invitation-access { display: grid; gap: 8px; margin: 0; padding: 0; border: 0; }
.invitation-access legend { margin-bottom: 2px; color: var(--ink); font-size: 12px; font-weight: 700; }
.invitation-access__option { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 11px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 9px; cursor: pointer; }
.invitation-access__option:hover, .invitation-access__option:has(input:checked) { background: var(--accent-soft); border-color: var(--accent); }
.invitation-access__option input { margin-top: 3px; accent-color: var(--accent); }
.invitation-access__option span { display: grid; gap: 3px; }
.invitation-access__option small { color: var(--muted); font-size: 12px; line-height: 1.45; }
.copyable-value { display: flex; align-items: stretch; width: 100%; }
.copyable-value input { min-width: 0; margin: 0; border-radius: 7px 0 0 7px; }
.copyable-value__button { display: inline-flex; align-items: center; justify-content: center; width: 44px; flex: 0 0 44px; padding: 0; color: var(--ink); background: #f8fafc; border: 1px solid var(--line); border-left: 0; border-radius: 0 7px 7px 0; cursor: pointer; font-size: 18px; }
.copyable-value__button:hover { color: var(--accent); background: var(--accent-soft); }
.copyable-value__button:focus-visible { position: relative; z-index: 1; outline: 3px solid rgba(27, 138, 131, 0.3); outline-offset: 2px; }
.copyable-value__status { display: block; min-height: 18px; margin-top: 5px; color: var(--accent); font-size: 12px; font-weight: 700; }
.client-body { background: #f8fafc; }
.client-shell { min-height: 100vh; }
.client-header { display: flex; align-items: center; justify-content: space-between; gap: 20px; max-width: 1080px; margin: 0 auto; padding: 22px 28px; }
.client-nav { display: flex; align-items: center; gap: 16px; }
.client-nav a { color: var(--client-brand-accent-dark, var(--accent-dark)); font-size: 13px; font-weight: 700; }
.client-brand { display: inline-flex; align-items: center; gap: 10px; color: var(--client-brand-accent, var(--ink)); }
.client-brand img { display: block; width: 34px; height: 34px; object-fit: contain; }
.client-brand:hover { text-decoration: none; }
.client-brand img { max-width: 180px; max-height: 44px; width: auto; height: auto; }
.brand-logo-preview { display: flex; align-items: center; min-height: 64px; margin: 8px 0 12px; padding: 10px 14px; background: #f8fafc; border: 1px solid var(--line); border-radius: 8px; }
.brand-logo-preview img { display: block; max-width: 260px; max-height: 72px; width: auto; height: auto; }
.client-brand > span:last-child { display: grid; gap: 1px; }
.client-brand small { color: var(--muted); font-size: 11px; }
.client-main { width: min(760px, calc(100% - 32px)); margin: 34px auto 70px; }
.client-page-header { margin: 0 0 22px; }
.client-page-header h1 { margin-top: 5px; }
.client-back { display: inline-block; margin-bottom: 22px; font-size: 13px; font-weight: 700; }
.client-booking-list, .client-resource-list, .client-communications { display: grid; gap: 12px; margin-bottom: 22px; }
.client-booking-card { display: flex; justify-content: space-between; gap: 18px; padding: 21px 22px; color: var(--ink); background: #fff; border: 1px solid #d4dde8; border-radius: 12px; box-shadow: 0 8px 22px rgba(15,31,53,.05); }
.client-booking-card:hover { border-color: var(--accent); text-decoration: none; transform: translateY(-1px); }
.client-booking-card h2 { margin: 3px 0 4px; font-size: 19px; }
.client-booking-card p { margin: 0; color: var(--muted); font-size: 13px; }
.client-booking-meta { display: grid; align-content: center; justify-items: end; gap: 2px; min-width: 190px; color: var(--muted); font-size: 13px; text-align: right; }
.client-booking-meta strong { color: var(--ink); }
.client-booking-arrow { margin-top: 7px; color: var(--accent-dark); font-size: 20px; }
.client-resource { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 13px 14px; border: 1px solid var(--line); border-radius: 9px; }
.client-resource > div, .client-resource span, .client-review > div { display: grid; gap: 3px; }
.client-resource span, .client-review span { color: var(--muted); font-size: 13px; }
.client-review { display: grid; gap: 10px; padding: 15px; border: 1px solid var(--line); border-radius: 9px; }
.client-review p { margin: 4px 0 0; color: var(--muted); }
.client-review-note { padding-top: 10px; border-top: 1px solid var(--line); font-size: 12px !important; }
.client-video-card { padding-bottom: 24px; }
.client-video-notice { margin: 0 0 16px; color: #475569; }
.client-video-note { margin: 12px 0 0; color: var(--muted); font-size: 12px; }
.client-player-shell { overflow: hidden; background: #101827; border-radius: 10px; }
.client-player-shell .video-js { width: 100%; min-height: 260px; }
.client-review-section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.client-review-section-heading h2 { margin-top: 0; }
.client-note-form { display: grid; gap: 8px; margin: 18px 0; padding: 16px; background: #f8fafc; border: 1px solid var(--line); border-radius: 10px; }
.client-note-form textarea { width: 100%; min-height: 86px; resize: vertical; }
.client-review-notes { display: grid; gap: 9px; margin: 18px 0 0; padding: 0; list-style: none; }
.client-review-note-link { display: grid; width: 100%; gap: 4px; padding: 13px 14px; color: var(--ink); text-align: left; background: #fff; border: 1px solid var(--line); border-radius: 9px; cursor: pointer; }
.client-review-note-link:hover, .client-review-note-link:focus-visible { border-color: var(--accent); background: var(--accent-soft); }
.client-review-note-link strong { color: var(--accent-dark); }
.client-review-note-link small { color: var(--muted); }
.client-signoff { margin-top: 16px; padding: 14px; border: 1px solid var(--line); border-radius: 9px; }
.client-signoff summary { color: var(--accent-dark); font-weight: 700; cursor: pointer; }
.client-signoff form { display: grid; gap: 14px; margin-top: 14px; }
.client-confirm-row { display: flex; align-items: flex-start; gap: 9px; }
.client-confirm-row input { margin-top: 3px; accent-color: var(--accent); }
.client-communications article { padding: 15px; border-top: 1px solid var(--line); }
.client-communications h3 { margin: 3px 0 8px; font-size: 15px; }
.client-communication-date { margin: 0; color: var(--muted); font-size: 12px; }
.client-card, .client-confirmation { padding: 30px; background: #fff; border: 1px solid #d4dde8; border-radius: 12px; box-shadow: 0 10px 28px rgba(15, 31, 53, 0.08); }
.client-card--compact { margin-bottom: 18px; }
.client-card--narrow { max-width: 620px; margin: 0 auto; }
.client-card h1, .client-confirmation h1 { margin: 0 0 9px; color: var(--ink); }
.client-card h2 { margin: 28px 0 10px; color: var(--ink); font-size: 18px; }
.client-context, .client-lead { color: #475569; }
.client-version { margin: 22px 0 8px; font-weight: 700; }
.client-access { padding: 12px 14px; color: #126b66; background: var(--accent-soft); border-radius: 8px; }
.client-actions { margin-top: 22px; }
.client-terms { margin: 24px 0 28px; padding: 20px; border: 1px solid var(--line); border-radius: 12px; background: #f8fafc; }
.client-terms h2 { margin: 0 0 8px; font-size: 18px; }
.client-terms p { margin: 0 0 16px; color: var(--muted); }
.client-summary { display: grid; gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: 12px; overflow: hidden; margin: 24px 0; }
.client-summary-section { background: #fff; padding: 18px 20px; }
.client-summary-section h2 { margin: 0 0 13px; font-size: 16px; }
.client-questionnaire-card .client-summary-section { margin-top: 18px; border: 1px solid var(--line); border-radius: 10px; }
.client-questionnaire-card .client-summary-section h2 { margin-bottom: 18px; }
.client-questionnaire { display: grid; gap: 16px; }
.client-questionnaire .questionnaire-field { gap: 7px; margin: 0; padding: 0 0 18px; border-bottom: 1px solid #e4e9ef; }
.client-questionnaire .questionnaire-field--invalid { border-bottom-color: #b42318; }
.client-questionnaire .field-error { margin: 0; color: #b42318; font-weight: 600; }
.client-questionnaire .questionnaire-field:last-child { padding-bottom: 0; border-bottom: 0; }
.questionnaire-label { display: flex; align-items: baseline; gap: 6px; color: var(--ink); font-size: 14px; font-weight: 700; line-height: 1.4; }
.choice-list { display: grid; gap: 3px; margin-top: 2px; }
.choice-option { display: inline-flex; align-items: center; gap: 7px; width: fit-content; min-height: 28px; padding: 3px 7px 3px 3px; color: var(--ink); font-size: 14px; font-weight: 500; border-radius: 6px; cursor: pointer; }
.choice-option:hover { background: var(--accent-soft); }
.choice-option input[type="radio"], .choice-option input[type="checkbox"] { appearance: auto; width: 16px; height: 16px; min-width: 16px; margin: 0; padding: 0; accent-color: var(--accent); }
.autosave-status { margin: 0; color: var(--muted); font-size: 12px; }
.client-questionnaire-list, .questionnaire-config-list { display: grid; gap: 9px; }
.client-questionnaire-link, .questionnaire-config-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 13px 14px; border: 1px solid var(--line); border-radius: 9px; }
.client-questionnaire-link > div { display: grid; gap: 3px; }
.client-questionnaire-link span { color: var(--muted); font-size: 13px; }
.questionnaire-config-row { align-items: start; grid-template-columns: minmax(0, 1fr) minmax(250px, 1fr) auto; }
.questionnaire-config-row--disabled { background: #f8fafc; opacity: .82; }
.questionnaire-config-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 8px; }
.questionnaire-config-form label { display: grid; gap: 5px; }
.questionnaire-answers > .field-help { margin-top: -4px; }
.questionnaire-answer-section { margin-top: 22px; }
.questionnaire-answer-section h3 { margin: 0; padding-bottom: 9px; color: var(--ink); font-size: 15px; }
.questionnaire-answer-row { display: grid; grid-template-columns: minmax(220px, .8fr) minmax(0, 1.5fr); gap: 14px; padding: 12px 0; border-top: 1px solid #e4e9ef; }
.questionnaire-answer-question { color: var(--ink); font-weight: 700; line-height: 1.4; }
.questionnaire-answer-question .muted { display: inline-block; margin-left: 6px; font-size: 11px; font-weight: 600; }
.questionnaire-answer-value { color: #40516a; white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.5; }
.questionnaire-answer-row--empty .questionnaire-answer-question { color: #64748b; font-weight: 600; }
.questionnaire-answer-files { display: grid; gap: 4px; margin: 8px 0 0; padding-left: 18px; }
@media (max-width: 700px) { .questionnaire-answer-row { grid-template-columns: 1fr; gap: 5px; } }
.client-details { display: grid; grid-template-columns: minmax(10rem, .8fr) 1.5fr; gap: 8px 16px; margin: 0; }
.client-details dt { color: var(--muted); }
.client-details dd { margin: 0; font-weight: 600; }
.client-performance-list, .client-product-list, .client-deliverable-list { display: grid; gap: 10px; }
.client-performance, .client-product, .client-deliverable { display: grid; gap: 2px; }
.client-performance span, .client-product span, .client-deliverable span { color: var(--muted); }
.client-product { padding: 10px 12px; border: 1px solid var(--line); border-radius: 8px; }
.client-acceptance { display: grid; gap: 14px; margin-top: 30px; padding-top: 22px; border-top: 1px solid var(--line); }
.client-decision { margin-top: 24px; padding-top: 22px; border-top: 1px solid var(--line); }
.client-decision h2 { margin: 0 0 14px; }
.client-decision__choices { display: grid; gap: 10px; }
.client-decision__choices label { display: flex; flex-direction: row; align-items: center; justify-content: flex-start; gap: 11px; width: 100%; box-sizing: border-box; padding: 16px 18px; border: 1px solid var(--line); border-radius: 8px; cursor: pointer; text-align: left; }
.client-decision__choices label:has(input:checked) { border-color: var(--accent); background: var(--accent-soft); }
.client-decision__choices input { width: auto; height: auto; padding: 0; accent-color: var(--accent); flex: 0 0 auto; margin: 0; }
.client-acceptance, .client-alternatives { display: none; }
.client-acceptance.client-choice-visible, .client-alternatives.client-choice-visible { display: grid; }
.client-alternatives { gap: 16px; margin-top: 22px; padding-top: 22px; border-top: 1px solid var(--line); }
.client-alternative { padding: 18px; border: 1px solid var(--line); border-radius: 10px; background: #f8fafc; }
.client-alternative--decline { padding: 0; background: transparent; border: 0; }
.client-alternative h2 { margin: 0 0 7px; font-size: 16px; }
.client-alternative p { color: var(--muted); }
.client-alternative form { display: grid; gap: 10px; }
.client-acceptance-comments { display: grid; gap: 10px; }
.client-acceptance-comments textarea, #changes-reason, #decline-reason { display: block; width: 100%; min-height: 96px; box-sizing: border-box; padding: 10px 11px; color: var(--ink); background: #fff; border: 1px solid #cbd5e1; border-radius: 7px; font: inherit; font-size: 14px; resize: vertical; }
.client-acceptance-comments textarea:focus, #changes-reason:focus, #decline-reason:focus { outline: 2px solid var(--accent); outline-offset: 1px; }
.client-alternative__decline-toggle, .client-alternative__decline-toggle:visited { min-height: 0; padding: 0; color: #b42318; background: transparent !important; border: 0; cursor: pointer; font: inherit; text-align: left; text-decoration: underline; text-underline-offset: 3px; }
.client-alternative__decline-toggle:hover { color: #8f1d14; background: transparent !important; text-decoration: underline; }
.client-alternative__decline-toggle:focus-visible { color: #8f1d14; background: transparent !important; outline: 2px solid #8f1d14; outline-offset: 3px; }
.client-alternative__decline-toggle:active { color: #761711; background: transparent !important; }
.client-alternative--decline form { display: none; }
.client-alternative--decline form.client-choice-visible { display: grid; }
.client-acceptance p { margin: 0; color: #475569; }
.client-declaration { display: flex; align-items: flex-start; gap: 10px; font-size: 14px; line-height: 1.45; }
.client-acceptance-confirmation { display: grid; grid-template-columns: 16px minmax(0, 1fr); align-items: start; column-gap: 10px; width: 100%; box-sizing: border-box; }
.client-acceptance-confirmation input { width: 16px; height: 16px; margin: 3px 0 0; }
.client-declaration input { margin-top: 3px; accent-color: var(--accent); }
.client-confirmation { margin-bottom: 18px; color: #126b66; background: var(--accent-soft); border-color: #a8dcd6; }
.communication-body { white-space: pre-wrap; margin: 0; font: inherit; line-height: 1.55; color: var(--ink); }
.client-confirmation p:last-child { margin-bottom: 0; }
@media (max-width: 700px) { .questionnaire-config-row { grid-template-columns: 1fr; } .questionnaire-config-form { grid-template-columns: 1fr; } .client-questionnaire-link { grid-template-columns: 1fr; } }
@media (max-width: 600px) { .client-header { align-items: flex-start; padding: 18px 16px; } .client-nav { align-items: flex-end; flex-direction: column; gap: 8px; } .client-main { width: min(100% - 20px, 760px); margin-top: 20px; } .client-card, .client-confirmation { padding: 22px 18px; } .client-booking-card, .client-resource { display: grid; } .client-booking-meta { justify-items: start; min-width: 0; text-align: left; } .client-booking-arrow { display: none; } }
@media (max-width: 600px) { .client-review-section-heading { display: grid; } .client-review-section-heading .button { width: 100%; } .client-player-shell .video-js { min-height: 190px; } }
.field-label { display: block; margin-bottom: 7px; color: var(--ink); font-size: 12px; font-weight: 700; }
.entity-picker__current { display: inline-block; min-width: 190px; margin: 0 8px 9px 0; color: var(--ink); font-weight: 700; }
.entity-picker__dialog { width: min(1120px, calc(100% - 30px)); max-width: 1120px; height: min(70vh, 760px); max-height: 86vh; padding: 0; color: var(--ink); border: 0; border-radius: 12px; box-shadow: 0 22px 70px rgb(15 23 42 / 28%); }
.entity-picker__dialog::backdrop { background: rgb(15 23 42 / 45%); }
.admin-modal { width: min(620px, calc(100% - 30px)); max-width: 620px; max-height: min(86vh, 760px); padding: 0; color: var(--ink); border: 0; border-radius: 12px; box-shadow: 0 22px 70px rgb(15 23 42 / 28%); }
.admin-modal::backdrop { background: rgb(15 23 42 / 45%); }
.admin-modal__inner { max-height: min(86vh, 760px); padding: 23px; overflow-y: auto; }
.admin-modal__inner .section-heading { margin-bottom: 18px; }
.admin-modal__inner .section-heading h2 { margin: 0; }
.admin-modal__close { flex: 0 0 38px; width: 38px; min-width: 38px; height: 38px; min-height: 38px; padding: 0; color: var(--muted); background: #f8fafc; border: 1px solid var(--line); border-radius: 50%; font-size: 24px; font-weight: 400; line-height: 1; }
.admin-modal__close:hover { color: var(--ink); background: #eef2f6; border-color: #b8c5d4; }
.admin-modal__close:focus-visible { color: var(--ink); background: #fff; outline: 3px solid rgba(27, 138, 131, 0.35); outline-offset: 2px; }
.admin-modal__inner .form-actions { margin-top: 18px; }
.entity-picker__dialog-inner { display: flex; flex-direction: column; height: 100%; padding: 23px; }
.entity-picker__dialog-inner > [data-picker-search-state]:not([hidden]), .entity-picker__dialog-inner > [data-picker-create-state]:not([hidden]) { display: flex; flex: 1 1 auto; flex-direction: column; min-height: 0; }
.entity-picker__dialog [data-picker-search-state] > label { display: block; margin: 0 0 8px; }
.entity-picker__dialog [data-picker-search-state] > input { display: block; width: 100%; flex: 0 0 auto; }
.entity-picker__results { display: grid; align-content: start; gap: 6px; width: 100%; min-height: 260px; margin: 14px 0 18px; overflow-y: auto; flex: 1 1 auto; }
.entity-picker__result { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr) auto; align-items: center; gap: 18px; padding: 9px 13px; color: var(--ink); text-align: left; background: #fff; border: 1px solid var(--line); border-radius: 8px; cursor: pointer; }
.entity-picker__result:focus-within, .entity-picker__result:hover { background: var(--accent-soft); border-color: var(--accent); }
.merge-candidate { grid-template-columns: auto minmax(0, 1fr); gap: 11px; padding: 12px 14px; }
.merge-candidate[data-selected="true"] { background: var(--accent-soft); border-color: var(--accent); }
.merge-candidate__checkbox { appearance: none; width: 17px; height: 17px; margin: 0; border: 1.5px solid #8b9bad; border-radius: 4px; background: #fff; cursor: pointer; }
.merge-candidate__checkbox:checked { position: relative; border-color: var(--accent); background: var(--accent); }
.merge-candidate__checkbox:checked::after { content: "✓"; position: absolute; inset: -2px 0 0; color: #fff; font-size: 14px; font-weight: 800; text-align: center; }
.merge-candidate__checkbox:focus-visible { outline: 3px solid rgba(27, 138, 131, 0.28); outline-offset: 2px; }
.entity-picker__result-info { display: grid; gap: 3px; min-width: 0; }
.entity-picker__result-info strong, .entity-picker__result-info span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.entity-picker__result-info span { color: var(--muted); font-size: 12px; }
.entity-picker__result .button { width: max-content; min-width: 64px; justify-self: end; flex: 0 0 auto; white-space: nowrap; }
.entity-picker__prompt { margin: 24px 0; color: var(--muted); text-align: center; }
.filter-links { display: flex; gap: 4px; margin: 12px 0 14px; }
.filter-links a { padding: 5px 9px; color: var(--muted); border-radius: 6px; font-size: 13px; }
.filter-links a:hover, .filter-links a.is-active { color: var(--ink); background: var(--accent-soft); text-decoration: none; }
.combined-picker .entity-picker__dialog-inner { gap: 12px; }
.combined-picker .entity-picker__results { min-height: 0; max-height: 280px; flex: 0 1 auto; }
.combined-picker h3 { margin: 4px 0 0; }
.combined-picker__organisation { margin: 2px 0 4px; font-weight: 700; }
.combined-entity-picker .selected-entity { display: grid; gap: 4px; min-height: 44px; padding: 11px 13px; border: 1px solid var(--line); border-radius: 8px; background: #f8fafc; }
.combined-entity-picker .selected-entity span { color: var(--muted); font-size: 13px; }
.performance-row .entity-picker { display: none; }

.detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, .42fr); gap: 22px; align-items: start; }
.detail-main, .detail-side { min-width: 0; }
.detail-side .panel { position: sticky; top: 20px; }
.detail-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(250px, .42fr); gap: 22px; align-items: start; }
.context-panel { background: #f8fafc; box-shadow: none; }
.context-panel h2 { margin-top: 3px; }
.metadata { display: grid; grid-template-columns: 145px 1fr; gap: 11px 18px; margin: 0; }
.metadata dt { color: var(--muted); font-size: 12px; font-weight: 700; }
.metadata dd { margin: 0; font-size: 14px; overflow-wrap: anywhere; }
.detail-note { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line); }
.detail-note p { margin: 7px 0 0; color: var(--muted); font-size: 14px; white-space: pre-wrap; }
.two-column-sections { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.booking-detail-group { margin: 0 0 18px; padding: 18px 20px 20px; background: var(--surface); border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow); }
.booking-detail-group__heading { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; margin: 0 0 8px; }
.booking-detail-group__heading h2 { margin: 0; font-size: 18px; }
.booking-detail-group__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; align-items: start; }
.booking-detail-group__grid > .panel { min-width: 0; margin-bottom: 0; padding: 16px 18px; background: #f8fafc; border-color: #e3e8ee; box-shadow: none; }
.booking-detail-group__grid > .panel .section-heading { margin-bottom: 10px; }
.inactive-row { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 14px; padding: 9px 0 2px; color: var(--muted); border-top: 1px solid var(--line); font-size: 13px; }
.inactive-row strong { color: var(--ink); }
.inactive-row a { margin-left: auto; }
.two-column-sections > .panel { min-width: 0; margin-bottom: 0; padding: 18px 20px; }
.booking-detail-group__grid--pre-production > .panel:has(.empty-state) { min-height: 0; }
.booking-detail-group__grid--event-venue > .panel { min-height: 0; }
.booking-detail-group--evidence { margin-top: 2px; }
.commercial-contract-card__primary { margin: 0; font-size: 16px; font-weight: 700; }
.commercial-contract-card__primary-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.commercial-contract-card__primary-row .form-actions { margin: 0; flex: 0 0 auto; }
.commercial-contract-card__subsection { margin-top: 16px; padding-top: 13px; border-top: 1px solid var(--line); }
.commercial-contract-card__subsection .subsection-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.commercial-contract-card__subsection h3 { margin: 0; font-size: 14px; }
.commercial-contract-card__subsection .metadata { margin-top: 10px; }
.booking-agreement-evidence { margin: 0; padding: 14px 0 0; background: transparent; border-top: 1px solid var(--line); box-shadow: none; }
.booking-agreement-response .section-heading { margin-bottom: 10px; }
.client-agreement-summary { padding: 0 0 10px; border-bottom: 1px solid var(--line); }
.client-agreement-summary .status { display: inline-block; margin-bottom: 6px; }
.client-agreement-summary p { margin: 3px 0 0; }
.booking-detail-group--agreement .booking-detail-group__grid > .panel { min-height: 0; }
.booking-detail-group--agreement .booking-detail-group__grid { grid-template-columns: 1fr; }
.booking-detail-group--agreement .review-section { margin: 0; }
.booking-detail-group--agreement .review-section h3 { margin-top: 0; }
@media (max-width: 700px) {
  .commercial-contract-card__primary-row { display: block; }
  .commercial-contract-card__primary-row .form-actions { margin-top: 12px; }
}
.summary-list { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.summary-list li { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; padding: 11px 0; border-bottom: 1px solid var(--line); }
.summary-list li:last-child { border-bottom: 0; }
.summary-list small { flex-basis: 100%; color: var(--muted); font-size: 12px; }
.production-performance-panel { margin-bottom: 18px; }
.production-performance { padding: 12px 0; border-top: 1px solid var(--line); }
.production-performance:first-of-type { border-top: 0; }
.production-performance h3 { margin: 0; font-size: 15px; }
.production-performance > p { margin: 4px 0 10px; }
.production-performance__row { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 8px 0; border-top: 1px solid var(--line); }
.production-performance__row > div { display: grid; gap: 2px; min-width: 0; }
.production-performance__row span, .production-performance__row small { color: var(--muted); font-size: 13px; }
.production-performance__row small { display: block; font-size: 12px; }
.compact-summary { gap: 0; margin-top: 8px; }
.compact-summary li { padding: 6px 0; }
.booking-operational-summary { margin-bottom: 18px; padding: 20px 22px; background: var(--surface); border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow); }
.booking-operational-summary .section-heading { margin-bottom: 14px; }
.booking-operational-summary h2 { margin: 0; }
.booking-summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px 20px; margin: 0; }
.booking-summary-grid > div { min-width: 0; padding-right: 12px; border-right: 1px solid var(--line); }
.booking-summary-grid > div:nth-child(4n) { padding-right: 0; border-right: 0; }
.booking-summary-grid dt { margin-bottom: 3px; color: var(--muted); font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.booking-summary-grid dd { margin: 0; color: var(--ink); font-size: 14px; font-weight: 650; overflow-wrap: anywhere; }
.booking-summary-grid dd small { display: block; margin-top: 3px; color: var(--muted); font-size: 12px; font-weight: 400; }
.booking-hub-nav { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; padding: 8px 0; border-bottom: 1px solid var(--line); }
.booking-hub-nav a { padding: 6px 10px; color: var(--ink); font-size: 13px; font-weight: 650; text-decoration: none; border-radius: 6px; }
.booking-hub-nav a:hover, .booking-hub-nav a:focus-visible { background: var(--surface-muted); color: var(--accent); }
.booking-hub-next { margin-bottom: 18px; }
.booking-hub-next .section-heading { align-items: center; }
.booking-hub-next h2 { margin: 0; }
.booking-hub-header { margin-bottom: 14px; }
.booking-hub-nav--sections { margin-bottom: 22px; }
.booking-hub-nav--sections a { border: 1px solid transparent; }
.booking-hub-nav--sections a.is-active { color: var(--accent-dark); background: var(--accent-soft); border-color: #a9d9d4; }
.booking-hub-overview { display: grid; gap: 18px; }
.booking-next-action { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 24px 26px; background: var(--surface); border: 1px solid #a9d9d4; border-left: 5px solid var(--accent); border-radius: 12px; box-shadow: var(--shadow); }
.booking-next-action h2 { margin: 2px 0 6px; }
.booking-next-action p:last-child { max-width: 720px; margin: 0; color: var(--muted); }
.booking-overview-facts, .booking-overview-attention, .booking-hub-section { padding: 22px 24px; background: var(--surface); border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow); }
.booking-facts-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.booking-facts-grid > div { min-width: 0; padding-right: 16px; border-right: 1px solid var(--line); }
.booking-facts-grid > div:last-child { padding-right: 0; border-right: 0; }
.booking-facts-grid dt, .production-status-grid dt { margin-bottom: 4px; color: var(--muted); font-size: 11px; font-weight: 750; letter-spacing: .05em; text-transform: uppercase; }
.booking-facts-grid dd, .production-status-grid dd { margin: 0; color: var(--ink); font-size: 14px; font-weight: 650; overflow-wrap: anywhere; }
.booking-facts-grid small { display: block; margin-top: 4px; color: var(--muted); font-size: 12px; font-weight: 400; }
.booking-hub-section > .section-heading { margin-bottom: 18px; }
.job-info-booking-summary { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.job-info-performance-list, .production-hub-list { display: grid; gap: 14px; margin-top: 18px; }
.job-info-performance, .production-hub-performance, .hub-subsection { padding: 16px 18px; background: #fbfdff; border: 1px solid var(--line); border-radius: 9px; }
.job-info-performance h3, .production-hub-performance h3, .hub-subsection h3 { margin: 0; }
.job-info-performance p { margin: 8px 0; }
.production-status-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 14px 0 0; padding-top: 12px; border-top: 1px solid var(--line); }
.hub-subsection { margin-top: 16px; }
.hub-subsection > .section-heading { margin-bottom: 10px; }
.booking-history__adoption { margin-top: 16px; }
.historical-adoption-form { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); }
.historical-adoption-form summary { color: var(--accent-dark); cursor: pointer; font-weight: 700; }
@media (max-width: 820px) { .booking-facts-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .booking-facts-grid > div:nth-child(2n) { padding-right: 0; border-right: 0; } .job-info-booking-summary { grid-template-columns: 1fr; } }
@media (max-width: 620px) { .booking-next-action { align-items: flex-start; flex-direction: column; padding: 20px; } .booking-overview-facts, .booking-overview-attention, .booking-hub-section { padding: 18px; } .booking-facts-grid { grid-template-columns: 1fr; } .booking-facts-grid > div, .booking-facts-grid > div:nth-child(2n) { padding: 0 0 12px; border-right: 0; border-bottom: 1px solid var(--line); } .booking-facts-grid > div:last-child { padding-bottom: 0; border-bottom: 0; } .production-status-grid { grid-template-columns: 1fr; } }
.booking-job-info__booking { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; }
.booking-job-info__performances { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 16px; }
.booking-job-info__performances h3 { margin-top: 0; }
.booking-job-info__performances .detail-note { margin: 0; }
.booking-job-info__performances .compact-list { margin: 8px 0; }
@media (max-width: 720px) { .booking-job-info__booking, .booking-job-info__performances { grid-template-columns: 1fr; } }
.booking-attention { padding: 18px 20px; }
.booking-attention .section-heading { margin-bottom: 10px; }
.attention-list { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }
.attention-list li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 9px 16px; padding: 7px 0; border-bottom: 1px solid var(--line); }
.attention-list li:last-child { border-bottom: 0; }
.attention-list a { margin-left: auto; font-size: 13px; }
.compact-positive-state { margin: 0 0 18px; padding: 9px 13px; color: var(--muted); background: #f8fafc; border: 1px solid var(--line); border-radius: 8px; font-size: 13px; }
.next-action { padding: 18px 20px; }
.panel:has([data-testid="publication-empty"]) { display: none; }
.panel:has(#communication-schedule-heading) { padding: 18px 20px; }
.panel:has(#communication-schedule-heading) .empty-state { padding: 14px 10px; text-align: left; }
.panel:has(#contract-communication-heading) { padding: 16px 20px; }

@media (max-width: 920px) { .booking-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .booking-summary-grid > div:nth-child(2n) { padding-right: 0; border-right: 0; } .booking-summary-grid > div:nth-child(4n) { padding-right: 0; border-right: 0; } }
@media (max-width: 560px) { .booking-operational-summary { padding: 17px; } .booking-summary-grid { grid-template-columns: 1fr; gap: 11px; } .booking-summary-grid > div, .booking-summary-grid > div:nth-child(2n), .booking-summary-grid > div:nth-child(4n) { padding: 0 0 10px; border-right: 0; border-bottom: 1px solid var(--line); } .booking-summary-grid > div:last-child { padding-bottom: 0; border-bottom: 0; } .attention-list a { margin-left: 0; flex-basis: 100%; } }
@media (max-width: 900px) { .booking-journey { align-items: flex-start; flex-direction: column; gap: 8px; } .booking-stepper { width: 100%; } }
@media (max-width: 620px) { .booking-stepper { display: grid; gap: 0; grid-template-columns: 22px minmax(0, 1fr); } .booking-stepper__item { display: contents; } .booking-stepper__item:not(:last-child)::after { display: block; grid-column: 1; width: 1px; height: 14px; min-width: 0; margin: 0 0 0 10px; } .booking-stepper__marker { grid-column: 1; grid-row: auto; } .booking-stepper__label { grid-column: 2; margin: 0 0 10px 8px; white-space: normal; align-self: center; } }
body:has(#operational-summary-heading) .page-header { margin-bottom: 14px; }
body:has(#operational-summary-heading) .page-header .eyebrow { display: none; }
body:has(#operational-summary-heading) .page-header .page-intro { margin-bottom: 2px; }
body:has(#operational-summary-heading) .page-header > div:first-child > .muted { display: inline-block; font-size: 12px; }
.auth-page { display: grid; place-items: center; min-height: 52vh; }
.auth-card { width: min(480px, 100%); }
.auth-card h1 { margin-bottom: 10px; }
.auth-card > p:not(.eyebrow) { color: var(--muted); font-size: 14px; }
.auth-card .notice { margin-top: 18px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

@media (max-width: 820px) {
  .topbar { flex-wrap: wrap; gap: 12px 20px; padding: 14px 20px; }
  .brand { min-width: 0; }
  .context-strip { order: 3; flex-basis: 100%; }
  .user-strip { margin-left: auto; }
  .app-layout { display: block; }
  .sidebar { padding: 9px 12px; border-right: 0; border-bottom: 1px solid var(--line); }
  .sidebar nav { display: flex; overflow-x: auto; gap: 4px; }
  .nav-link { flex: 0 0 auto; padding: 9px 12px; }
  .sidebar-footer { display: none; }
  .main-content { padding: 25px 18px 45px; }
  .page-header { display: block; }
  .page-actions { margin-top: 17px; }
  .context-card, .detail-layout, .detail-grid, .two-column-sections, .booking-detail-group__grid { grid-template-columns: 1fr; }
  .detail-side .panel { position: static; }
  .work-item { display: grid; gap: 8px; }
  .work-item__action { justify-self: start; }
}
@media (max-width: 560px) {
  .topbar { min-height: 64px; }
  .user-name { max-width: 125px; }
  .page-header { margin-bottom: 21px; }
  .panel { padding: 17px; }
  .home-grid, .form-grid { grid-template-columns: 1fr; }
  .form-grid .field--full { grid-column: auto; }
  .field--wide { grid-column: auto; }
  .meta-list, .meta-list--wide { grid-template-columns: 1fr; gap: 3px; }
  .meta-list dt:not(:first-child) { margin-top: 8px; }
  .filter-bar { align-items: stretch; }
  .field, .field--search { min-width: 100%; }
  .filter-bar button { width: 100%; }
  .metadata { grid-template-columns: 1fr; gap: 3px; }
  .wizard-footer { align-items: stretch; flex-wrap: wrap; }
  .wizard-footer > .button, .wizard-footer > span { flex: 1 1 100%; }
  .wizard-footer__primary { width: 100%; flex-wrap: wrap; justify-content: flex-end; }
  .wizard-footer__primary .button { flex: 0 1 auto; }
  .metadata dt:not(:first-child) { margin-top: 8px; }
  .entity-picker__dialog { width: calc(100% - 18px); height: 82vh; max-height: 90vh; }
  .entity-picker__dialog-inner { padding: 17px; }
  .entity-picker__results { min-height: 180px; }
  .entity-picker__result { grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
  .entity-picker__result-info { grid-column: 1; }
  .entity-picker__result .button { grid-column: 2; grid-row: 1; }
}
